qms-angular 1.1.65 → 1.1.67

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.
@@ -80,6 +80,7 @@ export class QMSBPMNComponent {
80
80
  appIconService.registerFileWordIcon(iconRegistry, domSanitizer);
81
81
  appIconService.registerFilePdfIcon(iconRegistry, domSanitizer);
82
82
  appIconService.registerFileIcon(iconRegistry, domSanitizer);
83
+ appIconService.registerComplianceIcon(iconRegistry, domSanitizer);
83
84
  }
84
85
  onMessage(event) {
85
86
  switch (event.data) {
@@ -330,10 +331,14 @@ export class QMSBPMNComponent {
330
331
  this.currentChoseAnchorOfDocumentId = documentId;
331
332
  this.onGetAnchorForDocument.emit(documentId);
332
333
  }
333
- changeDocumentAnchorForShape(anchor) {
334
+ changeDocumentAnchorForShape(anchorId) {
335
+ const idxAnchor = this.anchors.findIndex((anchor) => { return anchor.value === anchorId; });
336
+ if (idxAnchor === -1) {
337
+ return;
338
+ }
334
339
  const changeDocumentAnchor = new ChangeDocumentAnchorForShapeEventModel();
335
- changeDocumentAnchor.anchorId = anchor.value;
336
- changeDocumentAnchor.anchorName = anchor.anchorValue;
340
+ changeDocumentAnchor.anchorId = anchorId;
341
+ changeDocumentAnchor.anchorName = this.anchors[idxAnchor].anchorValue;
337
342
  changeDocumentAnchor.documentId = this.currentChoseAnchorOfDocumentId;
338
343
  this.onChangeDocumentAnchorForShape.emit(changeDocumentAnchor);
339
344
  }
@@ -350,12 +355,18 @@ export class QMSBPMNComponent {
350
355
  const filterValue = value.toLowerCase();
351
356
  return this.anchors.filter(anchor => anchor.viewValue.toLowerCase().includes(filterValue));
352
357
  }
358
+ isShowAddConnectionTab() {
359
+ if (window[FlowChartConst.SELECTED_SHAPE_ID]) {
360
+ return true;
361
+ }
362
+ return false;
363
+ }
353
364
  }
354
365
  QMSBPMNComponent.decorators = [
355
366
  { type: Component, args: [{
356
367
  selector: 'qms-bpmn',
357
- template: "<div class=\"qms-bpmn-container\">\n <div id=\"bpmn\" class=\"bpmn__editor\">\n <div id=\"toolbarpanel\">\n <div *ngIf=\"editMode !== flowchartViewMode.View\" id=\"toolbar-container\" [class.disabled]=\"isDisableToolbar()\">\n </div>\n </div>\n <div id=\"leftpanel\" class=\"full-screen-bpmn-editor_panel\">\n <div id=\"paperpanel\" class=\"full-screen-bpmn-editor_paperpanel\">\n <div id=\"paper-container\"></div>\n </div>\n <div id=\"stencilpanel\">\n <mat-expansion-panel *ngIf=\"editMode !== flowchartViewMode.View\" id=\"panel-stencil-container\"\n [expanded]=\"expandedPanel\" (click)=\"expandPanel()\">\n <mat-expansion-panel-header>\n <mat-panel-title> </mat-panel-title>\n </mat-expansion-panel-header>\n <div id=\"stencil-container\"></div>\n </mat-expansion-panel>\n </div>\n </div>\n <div id=\"rightpanel\" class=\"full-screen-bpmn-editor_panel\">\n <mat-tab-group mat-stretch-tabs mat-align-tabs=\"center\" (selectedTabChange)=\"onTabChange($event)\"\n [(selectedIndex)]=\"selectedTabIndex\">\n <mat-tab [label]=\"LANG.BPMN.PROPERTIES\" id=\"qmsckeditor_bpmn_properties\">\n <div id=\"inspector-container\"></div>\n </mat-tab>\n <mat-tab [label]=\"LANG.BPMN.CONNECTION\" id=\"qmsckeditor_bpmn_connection\" [disabled]=\"disabledConnectionTab\">\n <ng-container *ngIf=\"QMSBPMNConfig.addConnectionType === bpmnAddConnectionType.MultiConnection && isShowConnectType()\">\n <ng-container *ngIf=\"!QMSBPMNConfig.showShapeConnectionValue\">\n <ng-container *ngTemplateOutlet=\"noResult\">\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"QMSBPMNConfig.showShapeConnectionValue\">\n <ng-container *ngTemplateOutlet=\"haveResult\">\n </ng-container>\n </ng-container>\n </ng-container>\n <mat-expansion-panel id=\"qmsckeditor_bpmn_connection_panel\" [expanded]=\"true\" (opened)=\"(true)\"\n (closed)=\"(false)\" hideToggle style=\"position: relative;height: 100%;\" \n *ngIf=\"QMSBPMNConfig.addConnectionType === bpmnAddConnectionType.SingleConnection && isSelectedView()\">\n <div id=\"connection-container\" *ngIf=\"isShowConnectType()\">\n <div class=\"shape__connect-type\" *ngIf=\"!QMSBPMNConfig.showShapeConnectionValue\">\n <h3 class=\"shape-connect__select-label\">{{ LANG.BPMN.CHOOSE_CONNECTION_TYPE }}</h3>\n <mat-radio-group [(ngModel)]=\"selectedValue\" name=\"connectType\"\n (ngModelChange)=\"selectConnectType($event)\" aria-label=\"Select an option\" class=\"mt-3\">\n <div *ngFor=\"let type of QMSBPMNConfig.connectTypes\">\n <mat-radio-button [value]=\"type.value\" qms-group-options color=\"default\" *ngIf=\"type.canConnect\">\n <span class=\"text-label title\">{{ type.viewValue }}</span>\n <small class=\"text-help\">{{ type.description }}</small>\n </mat-radio-button>\n </div>\n </mat-radio-group>\n </div>\n <div *ngIf=\"shapeModel && QMSBPMNConfig.showShapeConnectionValue && editMode !== flowchartViewMode.View\"\n class=\"ml-4 mr-4 mt-2\">\n <ng-container *ngIf=\"shapeModel.shape?.connectionTypeId === shapeFlowChartConnectionType.Activity\">\n <span class=\"shape-connect__label\"> {{ LANG.BPMN.CONNECTION_TYPE.CONNECTED_ACTIVITY }}</span>\n <mat-card class=\"col-12 col-md-12 mt-2\">\n <div class=\"row\">\n <div class=\"col-9 title\" style=\"word-wrap: break-word\">\n {{ shapeModel.description.title }}\n </div>\n <div class=\"col-1\" style=\"cursor: pointer\">\n <mat-icon (click)=\"openActivity()\">edit</mat-icon>\n </div>\n <div class=\"col-1\" style=\"cursor: pointer\">\n <mat-icon (click)=\"deleteConnection(shapeModel.shape.connectionTypeId)\">close</mat-icon>\n </div>\n </div>\n </mat-card>\n </ng-container>\n <ng-container *ngIf=\"shapeModel.shape?.connectionTypeId !== shapeFlowChartConnectionType.Activity\">\n <span class=\"shape-connect__label\"> {{ QMSBPMNConfig.shapeConnectLabel }}</span>\n <mat-form-field appearance=\"fill\" class=\"mt-3 connect-link\"\n *ngIf=\"shapeModel.relatedItem.itemType == relatedItemType.document\" qms-form qms-select-input>\n <mat-label *ngIf=\"!QMSBPMNConfig.isAnchorLoading\">{{\n LANG.BPMN.CHOOSE_ANCHOR_IN_TEXT\n }}</mat-label>\n <mat-label *ngIf=\"QMSBPMNConfig.isAnchorLoading\">\n <div class=\"d-flex align-items-center\">\n <span>{{ LANG.LOADING }}</span>\n <mat-spinner class=\"spinner\" diameter=\"20\"></mat-spinner>\n </div>\n </mat-label>\n <mat-select [(ngModel)]=\"anchorValue\" name=\"anchorType\" qms-select\n (ngModelChange)=\"changeShapeAnchor($event)\" panelClass=\"connection-size select-tiny-margin\"\n disableOptionCentering>\n <mat-option *ngFor=\"let anchor of anchors\" [value]=\"anchor.anchorValue\">\n {{ anchor.viewValue }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n <button *ngIf=\"shapeModel.relatedItem.itemType == relatedItemType.document\"\n (click)=\"reloadAnchorDocument()\" type=\"button\" qms-btn-text class=\"reload-anchor\"\n [class.disabled]=\"QMSBPMNConfig.isAnchorLoading\">\n <mat-icon>refresh</mat-icon> {{ LANG.BPMN.RELOAD_ANCHORS }}\n </button>\n <mat-form-field class=\"connect-link\" appearance=\"fill\" style=\"margin-left: 0px;\"\n [ngStyle]=\"{ 'margin-top': shapeModel.relatedItem.itemType != relatedItemType.document ? '0px' : '15px' }\"\n qms-form qms-select-input>\n <mat-label>{{ LANG.BPMN.CONNECTION_TYPE.OPTION_FOR_OPENING }}</mat-label>\n <mat-select [(ngModel)]=\"targetValue\" name=\"processTargetType\" qms-select\n (ngModelChange)=\"changeShapeTartget($event)\" panelClass=\"connection-size select-tiny-margin\"\n disableOptionCentering>\n <mat-option *ngFor=\"let target of targets\" [value]=\"target.value\">\n {{ target.viewValue }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n <div class=\"shape-connect__item-card mt-2\">\n <ng-container\n *ngIf=\"shapeModel.shape?.connectionTypeId === shapeFlowChartConnectionType.Link, else notLinkConnection\">\n <div>\n <mat-icon>link</mat-icon>\n </div>\n <div class=\"shape-connect__content\">\n <div class=\"col-12 title link-title\">\n {{ shapeModel.link.link }}\n </div>\n </div>\n </ng-container>\n <ng-template #notLinkConnection>\n <qms-list-item type=\"image-square\">\n <mat-icon *ngIf=\"shapeModel.relatedItem.SVGIcon\" leading-icon type=\"image-square\"\n [svgIcon]=\"shapeModel.relatedItem.SVGIcon\"></mat-icon>\n <mat-icon *ngIf=\"shapeModel.relatedItem.matIcon\" leading-icon\n type=\"image-square\">{{shapeModel.relatedItem.matIcon}}</mat-icon>\n <div qms-list-header>\n <div qms-line type=\"subtitle\" class=\"search__option-name\">\n <div *ngIf=\"shapeModel.relatedItem.parentName\" class=\"caption\">\n {{ shapeModel.relatedItem.parentName }}\n </div>\n <span class=\"cursor\">{{ shapeModel.relatedItem.itemName }}</span>\n </div>\n </div>\n <div qms-line color=\"default-subtitle\"\n *ngIf=\"\n (shapeModel.relatedItem.itemType === relatedItemType.document ||\n shapeModel.relatedItem.itemType === relatedItemType.process || \n shapeModel.relatedItem.itemType === relatedItemType.processInterconnected)\">\n <ng-container *ngIf=\"shapeModel.relatedItem.displayId\">\n ID: {{ shapeModel.relatedItem.displayId }}\n {{ shapeModel.relatedItem.statusName ? ', ' + shapeModel.relatedItem.statusName : ''}}\n </ng-container>\n </div>\n <div qms-line color=\"default-subtitle\" *ngIf=\"shapeModel.relatedItem.itemType === relatedItemType.compliance && \n shapeModel.relatedItem.breadcrumbs && \n shapeModel.relatedItem.breadcrumbs.length > 0\">\n <qms-breadcrumb class=\"breadcrumb-container\" type=\"table\" numDisplayItem=\"2\"\n [nodes]=\"shapeModel.relatedItem.breadcrumbs\">\n </qms-breadcrumb>\n </div>\n </qms-list-item>\n </ng-template>\n <button type=\"button\" qms-btn-icon color=\"light\" class=\"item-card__delete-btn\"\n (click)=\"deleteConnection(shapeModel.shape.connectionTypeId)\">\n <mat-icon>close</mat-icon>\n </button>\n </div>\n </ng-container>\n </div>\n </div>\n </mat-expansion-panel>\n </mat-tab>\n </mat-tab-group>\n </div>\n </div>\n</div>\n\n<ng-template #noResult>\n <div class=\"no-result-connection\">\n <svg width=\"200\" height=\"160\" viewBox=\"0 0 200 160\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M104 144.5C132.167 144.5 155 121.667 155 93.5C155 65.3335 132.167 42.5 104 42.5C75.8335 42.5 53 65.3335 53 93.5C53 121.667 75.8335 144.5 104 144.5Z\"\n fill=\"#FAFAFA\" />\n <path\n d=\"M32 129.5C41.9411 129.5 50 121.441 50 111.5C50 101.559 41.9411 93.5 32 93.5C22.0589 93.5 14 101.559 14 111.5C14 121.441 22.0589 129.5 32 129.5Z\"\n fill=\"#FAFAFA\" />\n <path\n d=\"M41 84.5C45.9706 84.5 50 80.4706 50 75.5C50 70.5294 45.9706 66.5 41 66.5C36.0294 66.5 32 70.5294 32 75.5C32 80.4706 36.0294 84.5 41 84.5Z\"\n fill=\"#FAFAFA\" />\n <path\n d=\"M164 129.5C168.971 129.5 173 125.471 173 120.5C173 115.529 168.971 111.5 164 111.5C159.029 111.5 155 115.529 155 120.5C155 125.471 159.029 129.5 164 129.5Z\"\n fill=\"#FAFAFA\" />\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M68.8428 39.6674L73.4284 39.1577L68.8428 39.6674Z\"\n fill=\"white\" />\n <path\n d=\"M68.7008 38.4256C68.0146 38.5018 67.522 39.1197 67.6004 39.8055C67.6789 40.4914 68.2988 40.9856 68.9849 40.9093L68.7008 38.4256ZM73.5705 40.3996C74.2566 40.3233 74.7493 39.7055 74.6708 39.0196C74.5923 38.3337 73.9725 37.8396 73.2864 37.9158L73.5705 40.3996ZM68.9849 40.9093L73.5705 40.3996L73.2864 37.9158L68.7008 38.4256L68.9849 40.9093Z\"\n fill=\"#616161\" />\n <path opacity=\"0.3\" fill-rule=\"evenodd\" clip-rule=\"evenodd\"\n d=\"M121.14 37.7692L129.56 99.2529L130.317 105.421C130.561 107.408 129.167 109.215 127.203 109.456L74.7613 115.895C72.7978 116.136 71.0082 114.72 70.7642 112.733L62.6142 46.3568C62.4795 45.2605 63.2592 44.2626 64.3555 44.128L70.8431 43.3314\"\n fill=\"#616161\" />\n <path\n d=\"M77.9219 23.5C77.9219 21.9812 79.1531 20.75 80.6719 20.75H126.229C126.958 20.75 127.657 21.0395 128.173 21.5549L141.616 34.9898C142.132 35.5056 142.422 36.2053 142.422 36.9349V99.5C142.422 101.019 141.191 102.25 139.672 102.25H80.6719C79.1531 102.25 77.9219 101.019 77.9219 99.5V23.5Z\"\n fill=\"#FAFAFA\" stroke=\"#616161\" stroke-width=\"2.5\" />\n <path d=\"M126.672 21.9028V33.5C126.672 35.1569 128.015 36.5 129.672 36.5H137.605\" stroke=\"#616161\"\n stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\n <path d=\"M88 87.5H114M88 36.5H114H88ZM88 48.5H131H88ZM88 61.5H131H88ZM88 74.5H131H88Z\" stroke=\"#616161\"\n stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\n </svg>\n <span>{{ LANG.BPMN.NO_CONNECTIONS }}</span>\n <div [matMenuTriggerFor]=\"menu\">\n <button qms-btn-outlined class=\"button-add\">\n <mat-icon class=\"add-icon\">add</mat-icon> {{ LANG.QMSCKEDITOR.ADD }}\n </button>\n <mat-menu #menu=\"matMenu\" class=\"group-action-member menu-action\">\n <ng-container *ngFor=\"let type of QMSBPMNConfig.connectTypes\">\n <button type=\"button\" mat-menu-item *ngIf=\"type.canConnect\" (click)=\"selectConnectTypeForShape(type)\">\n <mat-icon class=\"material-icons-outlined\" *ngIf=\"type.icon\">\n {{ type.icon }}\n </mat-icon>\n <span>{{ type.viewValue }}</span>\n </button>\n </ng-container>\n </mat-menu>\n </div>\n </div>\n</ng-template>\n\n<ng-template #haveResult>\n <div class=\"have-result-connection\">\n <div [matMenuTriggerFor]=\"menu\">\n <button qms-btn-outlined class=\"button-add\">\n <mat-icon class=\"add-icon\">add</mat-icon> {{ LANG.QMSCKEDITOR.ADD }}\n </button>\n <mat-menu #menu=\"matMenu\" class=\"group-action-member menu-action\">\n <div *ngFor=\"let type of QMSBPMNConfig.connectTypes\">\n <button type=\"button\" mat-menu-item *ngIf=\"type.canConnect\" (click)=\"selectConnectTypeForShape(type)\">\n <mat-icon class=\"material-icons-outlined\" *ngIf=\"type.icon\">\n {{ type.icon }}\n </mat-icon>\n <span>{{ type.viewValue }}</span>\n </button>\n </div>\n </mat-menu>\n </div>\n <div class=\"button-add\">\n\n <ng-container *ngIf=\"shapeConnectionDetailModel?.description?.description?.length\">\n <mat-accordion class=\"example-headers-align content-item-container\">\n <mat-expansion-panel qms-expansion>\n <mat-expansion-panel-header qms-expansion-header class=\"mat-expansion-panel-header\">\n <div class=\"connection-content-body\">\n <div qms-line color=\"default-subtitle\"> {{ LANG.QMSCKEDITOR.DESCRIPTION }}\n </div>\n <button type=\"button\" qms-btn-icon color=\"light\" class=\"edit-icon description-edit\"\n *ngIf=\"QMSBPMNConfig.shapeConnectionActionModel.length\" [matMenuTriggerFor]=\"descriptionAction\"\n (click)=\"openConnectionActionDropdown($event)\">\n <mat-icon>more_vert</mat-icon>\n </button>\n <mat-menu #descriptionAction=\"matMenu\" class=\"group-action-member menu-action\">\n <ng-container *ngFor=\"let action of QMSBPMNConfig.shapeConnectionActionModel\">\n <button type=\"button\" mat-menu-item\n (click)=\"selectShapeDescriptionConnectionAction(action.actionType)\">\n <span> {{ action.actionName }} </span>\n </button>\n </ng-container>\n </mat-menu>\n </div>\n </mat-expansion-panel-header>\n <mat-label class=\"ck-content\" [innerHTML]=\"shapeConnectionDetailModel.description.description\"></mat-label>\n </mat-expansion-panel>\n </mat-accordion>\n </ng-container>\n\n <ng-container *ngIf=\"shapeConnectionDetailModel?.fields?.length\">\n <ng-container *ngFor=\"let field of shapeConnectionDetailModel.fields\">\n <mat-accordion class=\"example-headers-align content-item-container\" *ngIf=\"field.content?.length\">\n <mat-expansion-panel qms-expansion>\n <mat-expansion-panel-header qms-expansion-header class=\"mat-expansion-panel-header\">\n <div class=\"connection-content-body\">\n <div qms-line color=\"default-subtitle\"> {{ field.name }}\n </div>\n <button type=\"button\" qms-btn-icon color=\"light\" class=\"edit-icon description-edit\"\n *ngIf=\"QMSBPMNConfig.shapeConnectionActionModel.length\" [matMenuTriggerFor]=\"fieldAction\"\n (click)=\"openConnectionActionDropdown($event)\">\n <mat-icon>more_vert</mat-icon>\n </button>\n <mat-menu #fieldAction=\"matMenu\" class=\"group-action-member menu-action\">\n <ng-container *ngFor=\"let action of QMSBPMNConfig.shapeConnectionActionModel\">\n <button type=\"button\" mat-menu-item\n (click)=\"selectShapeFieldConnectionAction(field, action.actionType)\">\n <span> {{ action.actionName }} </span>\n </button>\n </ng-container>\n </mat-menu>\n </div>\n </mat-expansion-panel-header>\n <mat-label class=\"ck-content\" [innerHTML]=\"field.content\"></mat-label>\n </mat-expansion-panel>\n </mat-accordion>\n </ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"shapeConnectionDetailModel?.documentAndProcess?.length\">\n <mat-accordion class=\"example-headers-align connection-item-container\">\n <mat-expansion-panel qms-expansion>\n <mat-expansion-panel-header qms-expansion-header class=\"mat-expansion-panel-header\">\n <div class=\"connection-content-body\">\n <div qms-line color=\"default-subtitle\"> {{ LANG.BPMN.DOCUMENT_PROCESS }}\n </div>\n <qms-badges class=\"mr-5 qms-badges-container\" [color]=\"'brown'\" [type]=\"'1'\"\n [contents]=\"shapeConnectionDetailModel?.documentAndProcess?.length\" [size]=\"'large'\"></qms-badges>\n </div>\n </mat-expansion-panel-header>\n\n <ng-container *ngTemplateOutlet=\"changeShapeTarget\">\n </ng-container>\n\n <ng-container *ngFor=\"let connection of shapeConnectionDetailModel.documentAndProcess\">\n <div class=\"related-item-wrapper\">\n <qms-list-item type=\"image-square\">\n <mat-icon *ngIf=\"connection.relatedItem.SVGIcon\" leading-icon type=\"image-square\"\n [svgIcon]=\"connection.relatedItem.SVGIcon\"></mat-icon>\n <mat-icon *ngIf=\"connection.relatedItem.matIcon\" leading-icon\n type=\"image-square\">{{connection.relatedItem.matIcon}}</mat-icon>\n <div qms-list-header>\n <div qms-line type=\"subtitle\" class=\"search__option-name\">\n <span class=\"cursor\">{{ connection.relatedItem.itemName }}</span>\n </div>\n </div>\n <div qms-line color=\"default-subtitle\">\n <ng-container *ngIf=\"connection.relatedItem.displayId\">\n ID: {{ connection.relatedItem.displayId }}\n {{ connection.relatedItem.statusName ? ', ' + connection.relatedItem.statusName : ''}}\n </ng-container>\n </div>\n </qms-list-item>\n\n <mat-form-field qms-form appearance=\"fill\" class=\"full-width col-12 custom-mat-form-field\"\n *ngIf=\"connection.relatedItem.itemType == itemType.document\"\n [qms-tool-tip]=\"connection.anchorDocument.anchorValue\" mode=\"dark\" position=\"top\">\n <mat-icon [ngClass]=\"{'active-anchor': connection.anchorDocument?.anchorValue?.length > 0}\"\n (click)=\"getAnchorForDocument(connection.relatedItem.displayId)\">anchor</mat-icon>\n <mat-select qms-select [formControl]=\"anchorIdCtrl\" [(ngModel)]=\"connection.anchorDocument.id\"\n panelClass=\"qms-select-panel\" disableOptionCentering\n (valueChange)=\"changeDocumentAnchorForShape($event)\">\n\n <mat-option>\n <ngx-mat-select-search [formControl]=\"anchorIdFilterCtrl\" [placeholderLabel]=\"LANG.SEARCH\">\n </ngx-mat-select-search>\n </mat-option>\n\n <mat-option *ngFor=\"let anchor of (filteredAnchors | async)\" [value]=\"anchor\">\n {{ anchor.viewValue }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n\n <button type=\"button\" qms-btn-icon color=\"light\" class=\"item-card__delete-btn\"\n (click)=\"removeRelatedItemForShape(connection.relatedItem, shapeFlowChartConnectionType.DocumentOrProcess)\">\n <mat-icon>close</mat-icon>\n </button>\n </div>\n </ng-container>\n </mat-expansion-panel>\n </mat-accordion>\n </ng-container>\n\n <ng-container *ngIf=\"shapeConnectionDetailModel?.shapeLink?.length\">\n <mat-accordion class=\"example-headers-align connection-item-container\">\n <mat-expansion-panel qms-expansion>\n <mat-expansion-panel-header qms-expansion-header class=\"mat-expansion-panel-header\">\n <div class=\"connection-content-body\">\n <div qms-line color=\"default-subtitle\"> {{ LANG.BPMN.LINK }}\n </div>\n <qms-badges class=\"mr-5 qms-badges-container\" [color]=\"'brown'\" [type]=\"'1'\"\n [contents]=\"shapeConnectionDetailModel?.shapeLink?.length\" [size]=\"'large'\"></qms-badges>\n </div>\n </mat-expansion-panel-header>\n\n <ng-container *ngTemplateOutlet=\"changeShapeTarget\">\n </ng-container>\n\n <ng-container *ngFor=\"let link of shapeConnectionDetailModel.shapeLink\">\n <div class=\"related-item-wrapper\">\n <qms-list-item type=\"image-square\">\n <mat-icon leading-icon type=\"image-square\">link</mat-icon>\n <div qms-list-header>\n <div qms-line type=\"subtitle\" class=\"search__option-name\">\n <span class=\"cursor\">{{ link.link }}</span>\n </div>\n </div>\n </qms-list-item>\n <button type=\"button\" qms-btn-icon color=\"light\" class=\"item-card__delete-btn\"\n (click)=\"removeRelatedLinkForShape(link, shapeFlowChartConnectionType.Link)\">\n <mat-icon>close</mat-icon>\n </button>\n </div>\n </ng-container>\n\n\n </mat-expansion-panel>\n </mat-accordion>\n </ng-container>\n\n <ng-container *ngIf=\"shapeConnectionDetailModel?.checklist?.length\">\n <mat-accordion class=\"example-headers-align connection-item-container\">\n <mat-expansion-panel qms-expansion>\n <mat-expansion-panel-header qms-expansion-header class=\"mat-expansion-panel-header\">\n <div class=\"connection-content-body\">\n <div qms-line color=\"default-subtitle\"> {{ LANG.BPMN.CHECKLIST }}\n </div>\n <qms-badges class=\"mr-5 qms-badges-container\" [color]=\"'brown'\" [type]=\"'1'\"\n [contents]=\"shapeConnectionDetailModel?.checklist?.length\" [size]=\"'large'\"></qms-badges>\n </div>\n </mat-expansion-panel-header>\n\n <ng-container *ngTemplateOutlet=\"changeShapeTarget\">\n </ng-container>\n\n <ng-container *ngFor=\"let connection of shapeConnectionDetailModel.checklist\">\n <div class=\"related-item-wrapper\">\n <qms-list-item type=\"image-square\">\n <mat-icon *ngIf=\"connection.SVGIcon\" leading-icon type=\"image-square\"\n [svgIcon]=\"connection.SVGIcon\"></mat-icon>\n <mat-icon *ngIf=\"connection.matIcon\" leading-icon\n type=\"image-square\">{{connection.matIcon}}</mat-icon>\n <div qms-list-header>\n <div qms-line type=\"subtitle\" class=\"search__option-name\">\n <span class=\"cursor\">{{ connection.itemName }}</span>\n </div>\n </div>\n <div qms-line color=\"default-subtitle\">\n <ng-container *ngIf=\"connection.displayId\">\n ID: {{ connection.displayId }}\n {{ connection.statusName ? ', ' + connection.statusName : ''}}\n </ng-container>\n </div>\n </qms-list-item>\n <button type=\"button\" qms-btn-icon color=\"light\" class=\"item-card__delete-btn\"\n (click)=\"removeRelatedItemForShape(connection, shapeFlowChartConnectionType.Checklist)\">\n <mat-icon>close</mat-icon>\n </button>\n </div>\n </ng-container>\n </mat-expansion-panel>\n </mat-accordion>\n </ng-container>\n\n <ng-container *ngIf=\"shapeConnectionDetailModel?.deviation?.length\">\n <mat-accordion class=\"example-headers-align connection-item-container\">\n <mat-expansion-panel qms-expansion>\n <mat-expansion-panel-header qms-expansion-header class=\"mat-expansion-panel-header\">\n <div class=\"connection-content-body\">\n <div qms-line color=\"default-subtitle\"> {{ LANG.BPMN.DEVIATION }}\n </div>\n <qms-badges class=\"mr-5 qms-badges-container\" [color]=\"'brown'\" [type]=\"'1'\"\n [contents]=\"shapeConnectionDetailModel?.deviation?.length\" [size]=\"'large'\"></qms-badges>\n </div>\n </mat-expansion-panel-header>\n\n <ng-container *ngTemplateOutlet=\"changeShapeTarget\">\n </ng-container>\n\n <ng-container *ngFor=\"let connection of shapeConnectionDetailModel.deviation\">\n <div class=\"related-item-wrapper\">\n <qms-list-item type=\"image-square\">\n <mat-icon *ngIf=\"connection.SVGIcon\" leading-icon type=\"image-square\"\n [svgIcon]=\"connection.SVGIcon\"></mat-icon>\n <mat-icon *ngIf=\"connection.matIcon\" leading-icon\n type=\"image-square\">{{connection.matIcon}}</mat-icon>\n <div qms-list-header>\n <div qms-line type=\"subtitle\" class=\"search__option-name\">\n <span class=\"cursor\">{{ connection.itemName }}</span>\n </div>\n </div>\n <div qms-line color=\"default-subtitle\">\n <ng-container *ngIf=\"connection.displayId\">\n ID: {{ connection.displayId }}\n {{ connection.statusName ? ', ' + connection.statusName : ''}}\n </ng-container>\n </div>\n </qms-list-item>\n <button type=\"button\" qms-btn-icon color=\"light\" class=\"item-card__delete-btn\"\n (click)=\"removeRelatedItemForShape(connection, shapeFlowChartConnectionType.Deviation)\">\n <mat-icon>close</mat-icon>\n </button>\n </div>\n </ng-container>\n </mat-expansion-panel>\n </mat-accordion>\n </ng-container>\n\n <ng-container *ngIf=\"shapeConnectionDetailModel?.risk?.length\">\n <mat-accordion class=\"example-headers-align connection-item-container\">\n <mat-expansion-panel qms-expansion>\n <mat-expansion-panel-header qms-expansion-header class=\"mat-expansion-panel-header\">\n <div class=\"connection-content-body\">\n <div qms-line color=\"default-subtitle\"> {{ LANG.BPMN.RISK_ANALYSIS }}\n </div>\n <qms-badges class=\"mr-5 qms-badges-container\" [color]=\"'brown'\" [type]=\"'1'\"\n [contents]=\"shapeConnectionDetailModel?.risk?.length\" [size]=\"'large'\"></qms-badges>\n </div>\n </mat-expansion-panel-header>\n\n <ng-container *ngTemplateOutlet=\"changeShapeTarget\">\n </ng-container>\n\n <ng-container>\n <div class=\"related-list__content\"\n *ngIf=\"shapeConnectionDetailModel?.riskData?.data && shapeConnectionDetailModel?.riskData?.data.length\">\n <qms-risk-list [data]=\"shapeConnectionDetailModel?.riskData\"\n (updateData)=\"onUpdateDataOther($event)\"></qms-risk-list>\n </div>\n </ng-container>\n </mat-expansion-panel>\n </mat-accordion>\n </ng-container>\n \n <ng-container *ngIf=\"shapeConnectionDetailModel?.attachment?.length\">\n <mat-accordion class=\"example-headers-align connection-item-container\">\n <mat-expansion-panel qms-expansion>\n <mat-expansion-panel-header qms-expansion-header class=\"mat-expansion-panel-header\">\n <div class=\"description-header\">\n <div qms-line color=\"default-subtitle\"> {{ LANG.QMSCKEDITOR.ATTACHMENT }}\n </div>\n <qms-badges class=\"mr-5 qms-badges-container\" [color]=\"'brown'\" [type]=\"'1'\" [contents]=\"shapeConnectionDetailModel?.attachment?.length\" [size]=\"'large'\"></qms-badges>\n </div>\n </mat-expansion-panel-header>\n <ng-container>\n <div class=\"activity-attachment__attachment-list\">\n <div *ngFor=\"let file of shapeConnectionDetailModel?.attachment; let i = index\"\n class=\"custom-attachment-margin custom-image\">\n <qms-list-item type=\"image-rect\">\n <div leading-icon>\n <img [src]=\"file.fileContentBase64\" *ngIf=\"file.isImage && file.isDraft\" />\n <img [src]=\"'data:image/png;base64,' + file.fileContentBase64\" *ngIf=\"file.isImage && !file.isDraft\" />\n <mat-icon class=\"attachment-ion\" *ngIf=\"!file.isImage && file.extension ==='pdf'\" leading-icon type=\"image-square\"\n [svgIcon]=\"'file_pdf'\"></mat-icon>\n <mat-icon class=\"attachment-ion\" *ngIf=\"!file.isImage && file.extension ==='docx'\" leading-icon type=\"image-square\"\n [svgIcon]=\"'file_word'\"></mat-icon>\n <mat-icon class=\"attachment-ion\" *ngIf=\"!file.isImage && file.extension ==='xlsx'\" leading-icon type=\"image-square\"\n [svgIcon]=\"'file_excel'\"></mat-icon>\n <mat-icon class=\"attachment-ion\"\n *ngIf=\"!file.isImage && (file.extension !=='xlsx' && file.extension !=='docx'&& file.extension !=='pdf')\"\n leading-icon type=\"image-square\" [svgIcon]=\"'file_icon'\"></mat-icon>\n </div>\n <div qms-list-header>\n <div qms-line type=\"subtitle\">{{ file.fileName }}</div>\n </div>\n <span class=\"caption\">\n <button type=\"button\" qms-btn-icon color=\"light\"\n (click)=\"removeRelatedItemForShape(file, shapeFlowChartConnectionType.Attachment)\">\n <mat-icon>clear</mat-icon>\n </button>\n </span>\n </qms-list-item>\n </div>\n </div>\n </ng-container>\n </mat-expansion-panel>\n </mat-accordion>\n </ng-container>\n\n <ng-container *ngIf=\"shapeConnectionDetailModel?.compliance?.length\">\n <mat-accordion class=\"example-headers-align connection-item-container\">\n <mat-expansion-panel qms-expansion>\n <mat-expansion-panel-header qms-expansion-header class=\"mat-expansion-panel-header\">\n <div class=\"connection-content-body\">\n <div qms-line color=\"default-subtitle\"> {{ LANG.BPMN.CONNECTION_TYPE.CONNECTED_COMPLIANCE }}\n </div>\n <qms-badges class=\"mr-5 qms-badges-container\" [color]=\"'brown'\" [type]=\"'1'\"\n [contents]=\"shapeConnectionDetailModel?.compliance?.length\" [size]=\"'large'\"></qms-badges>\n </div>\n </mat-expansion-panel-header>\n \n <ng-container *ngTemplateOutlet=\"changeShapeTarget\">\n </ng-container>\n \n <ng-container *ngFor=\"let connection of shapeConnectionDetailModel.compliance\">\n <div class=\"related-item-wrapper\">\n <qms-list-item type=\"image-square\">\n <mat-icon *ngIf=\"connection.SVGIcon\" leading-icon type=\"image-square\"\n [svgIcon]=\"connection.SVGIcon\"></mat-icon>\n <mat-icon *ngIf=\"connection.matIcon\" leading-icon type=\"image-square\">{{connection.matIcon}}</mat-icon>\n <div qms-list-header>\n <div qms-line type=\"subtitle\" class=\"search__option-name\">\n <span class=\"cursor\">{{ connection.itemName }}</span>\n </div>\n </div>\n <div qms-line color=\"default-subtitle\">\n <ng-container *ngIf=\"connection.displayId\">\n ID: {{ connection.displayId }}\n {{ connection.statusName ? ', ' + connection.statusName : ''}}\n </ng-container>\n </div>\n </qms-list-item>\n <button type=\"button\" qms-btn-icon color=\"light\" class=\"item-card__delete-btn\"\n (click)=\"removeRelatedItemForShape(connection, shapeFlowChartConnectionType.Compliance)\">\n <mat-icon>close</mat-icon>\n </button>\n </div>\n </ng-container>\n </mat-expansion-panel>\n </mat-accordion>\n </ng-container>\n </div>\n </div>\n</ng-template>\n\n<ng-template #changeShapeTarget>\n <div>\n <mat-slide-toggle class=\"target-wrapper\" color=\"default\" qms-group-options\n [checked]=\"shapeConnectionDetailModel?.target?.targetId == shapeTarget.Blank\"\n (change)=\"changeShapeTartget($event)\">\n <span class=\"text-label\">{{ LANG.BPMN.TARGET_BLANK }}</span>\n </mat-slide-toggle>\n </div>\n</ng-template>",
358
- styles: [":host ::ng-deep .qms-bpmn-container .bpmn__editor{width:100%;height:100%}:host ::ng-deep .qms-bpmn-container #leftpanel{float:left;width:calc(100% - 400px);height:550px}:host ::ng-deep .qms-bpmn-container #rightpanel{float:right;width:400px;height:550px;border:solid;border-width:0 1px 1px 0}:host ::ng-deep .qms-bpmn-container #rightpanel .units{font-size:12px}:host ::ng-deep .qms-bpmn-container #rightpanel .connection-wrapper{padding-bottom:1.34375em}:host ::ng-deep .qms-bpmn-container #rightpanel .connection-wrapper .mat-card-wrapper{padding-right:0}:host ::ng-deep .qms-bpmn-container #rightpanel .connection-wrapper .connection-content{display:flex;justify-content:space-between}:host ::ng-deep .qms-bpmn-container #rightpanel ::ng-deep .mat-tab-group{height:100%}:host ::ng-deep .qms-bpmn-container #rightpanel ::ng-deep .mat-tab-disabled{cursor:not-allowed}:host ::ng-deep .qms-bpmn-container #connection-container{position:absolute;top:0;right:0;bottom:0;width:398px;background:#fff;overflow-y:auto;padding:0 1rem}:host ::ng-deep .qms-bpmn-container #connection-container .shape__connect-type{padding:1rem 0}:host ::ng-deep .qms-bpmn-container #connection-container .shape__connect-type .mat-radio-button.qms-group-options{margin-bottom:1rem;border:1px solid #e0e0e0;width:100%}:host ::ng-deep .qms-bpmn-container #connection-container .mat-form-field{margin-left:8px}:host ::ng-deep .qms-bpmn-container #connection-container .mat-expansion-panel-header.mat-expanded{background-color:#eceff7;height:40px!important}:host ::ng-deep .qms-bpmn-container #connection-container .connect-link{margin-left:0;width:100%}:host ::ng-deep .qms-bpmn-container #connection-container .reload-anchor{float:right;color:gray;height:auto;margin:0;font-size:12px}:host ::ng-deep .qms-bpmn-container #connection-container .shape-connect__select-label{font-size:16px;font-family:Open Sans;font-weight:600}:host ::ng-deep .qms-bpmn-container #connection-container .shape-connect__label{font-size:14px;font-family:Open Sans;font-weight:600}:host ::ng-deep .qms-bpmn-container #connection-container .shape-connect__item-card{border:1px solid #e0e0e0;padding:10px 0;display:flex;align-items:center;border-radius:4px}:host ::ng-deep .qms-bpmn-container #connection-container .shape-connect__item-card .qms-list-item.mat-2-line.image-item{height:auto}:host ::ng-deep .qms-bpmn-container #connection-container .shape-connect__item-card .qms-list-item-content{padding:0!important;margin:0}:host ::ng-deep .qms-bpmn-container #connection-container .shape-connect__item-card .qms-list-item-content .wrap-image{background:transparent;margin-right:0}:host ::ng-deep .qms-bpmn-container #connection-container .shape-connect__item-card .connection-icon{height:1.5rem}:host ::ng-deep .qms-bpmn-container #connection-container .shape-connect__item-card .shape-connect__content{width:80%}:host ::ng-deep .qms-bpmn-container #connection-container .shape-connect__item-card .item-card__delete-btn{margin-left:auto}:host ::ng-deep .qms-bpmn-container #connection-container .shape-connect__item-card .link-title{word-break:break-word}:host ::ng-deep .qms-bpmn-container .mat-icon{color:#000}:host ::ng-deep .qms-bpmn-container .title{font-size:16px;font-weight:700}:host ::ng-deep .qms-bpmn-container #toolbarpanel{position:relative;top:0;bottom:0;left:0;right:0;margin-bottom:16px;height:50px;width:100%}:host ::ng-deep .qms-bpmn-container #paperpanel{position:relative;top:0;bottom:0;left:0;right:0;height:400px;width:100%}:host ::ng-deep .qms-bpmn-container #stencilpanel{position:relative;top:0;bottom:0;left:0;right:0;height:150px;width:100%}:host ::ng-deep .qms-bpmn-container #toolbar-container{position:relative;top:0;bottom:0;right:0;width:100%;height:100%}:host ::ng-deep .qms-bpmn-container #paper-container{position:relative;top:0;bottom:0;left:0;right:0;width:100%;height:inherit}:host ::ng-deep .qms-bpmn-container #inspector-container{position:relative;top:0;right:0;bottom:0;width:100%;background:#fff;height:inherit}:host ::ng-deep .qms-bpmn-container #stencil-container{position:absolute;top:0;bottom:0;left:0;right:0;width:1174px;height:inherit}:host ::ng-deep .qms-bpmn-container #statusbar-container{position:absolute;left:0;right:0;bottom:0;height:25px}:host ::ng-deep .qms-bpmn-container #panel-stencil-container{position:absolute;left:0;right:0;bottom:0;height:150px;overflow-x:auto;overflow-y:hidden;background-image:url(\"data:image/png;base64,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\");background-repeat:repeat;transition:all .5s ease-in-out 0s}:host ::ng-deep .qms-bpmn-container #panel-stencil-container .mat-expansion-panel-header-title{color:#fff}:host ::ng-deep .qms-bpmn-container #panel-stencil-container .joint-theme-default{background:none}:host ::ng-deep .qms-bpmn-container #panel-stencil-container .mat-expansion-indicator:after{color:#fff;transform:rotate(-135deg)}:host ::ng-deep .qms-bpmn-container #panel-stencil-container .mat-expansion-panel-header{min-width:1224px;max-width:100%}:host ::ng-deep .qms-bpmn-container #panel-stencil-container .joint-stencil>.content{width:1200px}:host ::ng-deep .qms-bpmn-container #toolbar-container{left:0;color:#fff;position:absolute}:host ::ng-deep .qms-bpmn-container .joint-inspector.joint-theme-bpmn .group>.group-label{font-size:15px;text-align:center;border:none;background:#eceff7;height:40px;line-height:40px;color:#303046;box-shadow:0 2px 0 0 rgba(0,0,0,.2);margin-bottom:10px;left:0;padding:5px 0}:host ::ng-deep .qms-bpmn-container .joint-inspector.joint-theme-bpmn .group.closed>.group-label{background:#eceff7;height:40px;line-height:40px}:host ::ng-deep .qms-bpmn-container .joint-inspector.joint-theme-bpmn .list-item:nth-child(odd){background:#ecefff;background:-webkit-gradient(left,#ecefff 0,#fafafa 100%);background:linear-gradient(270deg,#91a1c9 0,#fafafa);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#ECEFFF\",endColorstr=\"#3571b0\",GradientType=0)}:host ::ng-deep .qms-bpmn-container .joint-inspector.joint-theme-bpmn .list-item:nth-child(2n){background:#ecefff;background:-webkit-gradient(left,#ecefff 0,#fafafa 100%);background:linear-gradient(270deg,#91a1c9 0,#fafafa);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#ECEFFF\",endColorstr=\"#3571b0\",GradientType=0)}:host ::ng-deep .qms-bpmn-container .joint-inspector.joint-theme-bpmn .list-item .list-item:nth-child(odd){background:#eceff7;background:-webkit-gradient(left,#eceff7 0,#eceff7 100%);background:linear-gradient(270deg,#eceff7 0,#eceff7);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#eceff7\",endColorstr=\"#eceff7\",GradientType=0)}:host ::ng-deep .qms-bpmn-container .joint-inspector.joint-theme-bpmn .list-item .list-item:nth-child(2n){background:#eceff7;background:-webkit-gradient(left,#eceff7 0,#eceff7 100%);background:linear-gradient(270deg,#eceff7 0,#eceff7);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#eceff7\",endColorstr=\"#eceff7\",GradientType=0)}:host ::ng-deep .qms-bpmn-container .joint-inspector.joint-theme-bpmn .list-item{border-radius:10px;box-shadow:0 1px 1px 1px rgba(0,0,0,.2)}:host ::ng-deep .qms-bpmn-container .joint-inspector.joint-theme-bpmn label{color:#7f8c8d}:host ::ng-deep .qms-bpmn-container .joint-inspector.joint-theme-bpmn .btn-list-add{position:relative;left:110px;background:#5799da;border:2px solid #0a468e}:host ::ng-deep .qms-bpmn-container .joint-inspector.joint-theme-bpmn .btn-list-add,:host ::ng-deep .qms-bpmn-container .joint-inspector.joint-theme-bpmn .btn-list-del{background:#5799da;height:25px;color:#000}:host ::ng-deep .qms-bpmn-container .joint-inspector.joint-theme-bpmn textarea{width:350px;max-width:350px}:host ::ng-deep .qms-bpmn-container .joint-inspector.joint-theme-bpmn input[type=color],:host ::ng-deep .qms-bpmn-container .joint-inspector.joint-theme-bpmn input[type=range]{width:171px}:host ::ng-deep .qms-bpmn-container .joint-inspector.joint-theme-bpmn .list{line-height:.5}:host ::ng-deep .qms-bpmn-container .joint-inspector.joint-theme-bpmn .list .select{margin-top:5px}:host ::ng-deep .qms-bpmn-container .joint-inspector.joint-theme-bpmn .list .units,:host ::ng-deep .qms-bpmn-container .joint-inspector.joint-theme-bpmn .list label,:host ::ng-deep .qms-bpmn-container .joint-inspector.joint-theme-bpmn .list output{text-align:end;margin-right:4px;margin-top:16px;color:#000}:host ::ng-deep .qms-bpmn-container .joint-inspector.joint-theme-bpmn .list-item input{width:50%;float:right}:host ::ng-deep .qms-bpmn-container .joint-inspector.joint-theme-bpmn .list-item .input-wrapper input{width:70%;float:none}:host ::ng-deep .qms-bpmn-container .joint-inspector.joint-theme-bpmn input{width:55%}:host ::ng-deep .qms-bpmn-container .range-field{height:40px;margin-bottom:15px}:host ::ng-deep .qms-bpmn-container .joint-paper-scroller{overflow:hidden}:host ::ng-deep .qms-bpmn-container .breadcrumb-container .qms-breadcrumb-item{cursor:inherit;line-height:16px;font-size:.75rem;color:black(.6);font-weight:400;line-height:22px;margin:0}:host ::ng-deep .qms-bpmn-container .joint-inspector.joint-theme-bpmn .list-item .field{padding:0}:host ::ng-deep .qms-bpmn-container .joint-inspector.joint-theme-bpmn .field{padding:10px}:host ::ng-deep .qms-bpmn-container .joint-inspector .group{overflow:hidden;padding:0 0 10px}:host ::ng-deep .qms-bpmn-container .joint-widget.joint-theme-default[data-type=undo]:after{content:\"\"}:host ::ng-deep .qms-bpmn-container .joint-widget.joint-theme-default[data-type=redo]:after{content:\"\"}:host ::ng-deep .qms-bpmn-container .joint-toolbar.joint-theme-bpmn button[data-name=deleteTemplate]:before,:host ::ng-deep .qms-bpmn-container .joint-toolbar.joint-theme-bpmn button[data-name=fullscreen]:before,:host ::ng-deep .qms-bpmn-container .joint-toolbar.joint-theme-bpmn button[data-name=resetToTempTemplate]:before,:host ::ng-deep .qms-bpmn-container .joint-toolbar.joint-theme-bpmn button[data-name=saveAsTemplate]:before{width:40px;height:20px;background-color:transparent;position:absolute;top:27px;left:0}:host ::ng-deep .qms-bpmn-container .joint-toolbar.joint-theme-bpmn button[data-name=saveAsTemplate]:before{content:attr(data-before)}:host ::ng-deep .qms-bpmn-container .joint-toolbar.joint-theme-bpmn button[data-name=saveAsTemplate]:after{background-image:url(\"data:image/png;base64,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\");background-size:20px 20px;background-position:11px -3px}:host ::ng-deep .qms-bpmn-container .joint-toolbar.joint-theme-bpmn button[data-name=deleteTemplate]:before{content:attr(data-before)}:host ::ng-deep .qms-bpmn-container .joint-toolbar.joint-theme-bpmn button[data-name=deleteTemplate]:after{background-image:url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAFboAABW6AWAVsncAAAAZdEVYdFNvZnR3YXJlAHd3dy5pbmtzY2FwZS5vcmeb7jwaAAACP0lEQVQ4T5VSS2gTURS9plYNbSZJm+Anbcyk1rpJEMRFFxKEIkg/ahGkTU3tRtKP4qdZiNYPEUGLH+iiooJbdSfFnbh0VVwILuafNEnTNNpoiwlo0+ObZIq2WIkHDufd+865c2cY+hueE9kkoqhWR7K6s7rIVJCJxsaJagzLhtikOk2R9JGDSmYoVMzejCB75xp0zYSDy+mAT5RtdN7wrsU0kTXe7HhbvDCAwpNHyD2dwMLjh1iYfFDS3LMJFCbvYzncA63JPvWeyGxEiV4RVcnu2nfLQ0Fk797A/PXLmB+7tI4XS/3P7L44HITg4aaMOJHgNI3mD/sxNxpGeji0MUf6kT53BpnIIArtrRAcprMUd1vtomtbci7gQ7K3o8xg5+/zat3TjkR3G2Y6DyFx6ii+nGyDuLtWIMm1NSo7CGI9QdpeBdldA6XFCdXfAG2/G6rPBWWvA3KjGSLzCTbm27EZCvOxzE+S/I0JjT1B6e+G0ncMSrALSi+rdS2RnY1aPX0cauhE2aezt2OFYl0BpL7nMQv8N1OLSyC5dZ8Wv30VsfEoYvduVU7m16JXVkjctWVMqmPfgL2baK+cUll/ULal3iJ6LPGk1wqR5yBVQN0322SF5OE+lf4D1hz5toc11hn/xa+632MJlQboED3cm8Xm8pCNNlntLzGfyFteGtEyZhrIrHm51/rkFFtP/iOoU6/1tXPsXuEtL6YPULURXQuN5wYTPPdR4bkCCxYZV3RVeS6f8HIfNK9lwLAyEP0ClVT9dLc5lCAAAAAASUVORK5CYII=\");background-size:20px 20px;background-position:11px -1px}:host ::ng-deep .qms-bpmn-container .joint-toolbar.joint-theme-bpmn button[data-name=resetToTempTemplate]:before{content:attr(data-before)}:host ::ng-deep .qms-bpmn-container .joint-toolbar.joint-theme-bpmn button[data-name=resetToTempTemplate]:after{background-image:url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAAsQAAALEBxi1JjQAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAJ3SURBVEiJrdZLaxRmFAbgZ8aJpkPFjahJVELAhQvFKw1atBShatSioCKI4kLBe6t46+0XlFJEUmtdCFoEXWi9gIKIEo330EL/gK1acKdgA2LRxTmpE3Um0XhgmMP3nXnf79yngIlYg/M4p7eMxhLMR0OedaOMu7iAE/hLDfkDC9CFkXnWgIPowKYK8EppwLok+QVjqxHczu+9mInP8ScW5vlgzMYe/IgfsC1ti2kzD9fzob2kVKE/wnYMwUd4ip1Yhav5uY7/MAar8VN6uh+d+BXN2PcmD7aJPNSnuzfwbRJWk3J61pmkg3AaiyqNbqGQwCW0iLxMETlZjsk1SKTHXUkyLB89qufyEoamPjgJz4qQXMB36U1/SK4mRptIPDiFptQn4BCW5kt6pB2L+yCAr7A59ctohMMY/4rhB6L22/G7SFpJ31IW4S1iPTaWcB8z8CRB20SNX8QxbMGzfoDDv7iJVpwRVWZEAv2W7rX0E6yarBQVCbdLeIhlAwStlHuYlPqgYi3Ld5QCnqfeXRTxPi7CNPw9EDThn9RLRTEeToty/eY9EHyCa2JkPCgmWx2O5mX9AMDLmCYac45oVI2im+FL7B4AwdfYmPoVsU8Q3TtPtHknpr4DeGuC1uEz/Fx52YQ7Yjw0i8H1NiSt+ZvR+FAMuzGvGi0Wya5LkmvYpXZOyiIsHQk+RIz8/xdP5Xw5kawnxYieha1iyXQK9/8Wc2Zs3k/HAXyaLz8uqvFMLXeXiQHXszLr8DF2iHX5Pb4QYelp1Llizb62MqtJI46k6xu8eaGPw1ox3PZ7+YehlxT6IGrCCtEfzWKqFsT+fixCcQoPqgG8AFOaft796x2HAAAAAElFTkSuQmCC\");background-size:20px 20px;background-position:11px -1px}:host ::ng-deep .qms-bpmn-container .joint-toolbar.joint-theme-bpmn button[data-name=fullscreen]:after{background-image:url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAABLklEQVRIS+2UPUtCYRiGj2v9AEfJpYQ+0KHFxjYnJxe3IHCqH9Hu5C8J+gEtBYq0WLg52NaHoFgEnuP1vNyJgi7ve1qqCy7O+zw83M85x4/onx8hSZJ8HMd3+IYvS77iM15p1B9CjvGBZSvQm2JTY2EQtIs9ZTvSXlDBT2U7UllAzhYhZ/il0BkOUltAwD4uXg3nG7TP5BY/MPwVkXuu8DbuWI9rAbvYckOh2BLCSiod1EX6pyp/EzxalkfbU+mgt41H9DNq+UNQjaAOnqhlvQb28SJ4CSF1QkZcH9G+hlWc0XNwvtSoHwTU8V1hTzhxycD5Hg806gcBiwXfUBvXmNOYP4SsWzDEskbCWLfAoGf/+4ca84eQGtodT3C8pNU9XPnFesENZzapkT9HFM0BetrUm3SgdX8AAAAASUVORK5CYII=\")}:host ::ng-deep .qms-bpmn-container .joint-inspector.joint-theme-bpmn .toggle span i{background:#1a9af3;border-radius:5px;box-shadow:1px 1px 1px 1px rgba(0,0,0,.2)}:host ::ng-deep .qms-bpmn-container .joint-inspector.joint-theme-bpmn .toggle span i:before{text-shadow:none;right:115%;font-style:normal;font-weight:700;color:#fff;font-family:Helvetica,Arial,sans-serif;font-size:14px;position:absolute;top:8px}:host ::ng-deep .qms-bpmn-container .joint-inspector.joint-theme-bpmn .toggle span i:after{text-shadow:none;right:115%;font-style:normal;font-weight:700;color:rgba(0,0,0,.4);font-family:Helvetica,Arial,sans-serif;font-size:14px;position:absolute;top:8px}:host ::ng-deep .qms-bpmn-container .joint-selection.joint-theme-bpmn .selection-wrapper{display:block}:host ::ng-deep .qms-bpmn-container .no-result-connection{height:100%;flex-direction:column;display:flex;transform:none;align-items:center;justify-content:center}:host ::ng-deep .qms-bpmn-container .button-add{width:359px;margin:20px 20px 0}:host ::ng-deep .qms-bpmn-container .button-add .add-icon{color:var(--primary)}:host ::ng-deep .qms-bpmn-container .have-result-connection{height:100%;flex-direction:column;display:flex;transform:none}:host ::ng-deep .qms-bpmn-container .mat-expansion-panel-header:hover:not(:hover .description-edit){background-color:transparent!important}:host ::ng-deep .qms-bpmn-container .mat-expansion-panel-header .mat-content{display:block}:host ::ng-deep .qms-bpmn-container .mat-expansion-panel-header .mat-content .description-header{display:flex;align-items:center;justify-content:space-between}:host ::ng-deep .qms-bpmn-container .mat-expansion-panel-header .default-subtitle{font-family:Open Sans;font-size:16px;font-weight:600;line-height:28px;color:#0163b2}:host ::ng-deep .qms-bpmn-container .connection-content-body{display:flex;justify-content:space-between;align-items:center}:host ::ng-deep .qms-bpmn-container .connection-content-body .mat-menu-item{width:auto}:host ::ng-deep .qms-bpmn-container .edit-icon{width:40px;height:40px;line-height:40px}:host ::ng-deep .qms-bpmn-container .mat-form-field .mat-select-arrow{display:none}:host ::ng-deep .qms-bpmn-container .custom-mat-form-field{width:48px;height:48px}:host ::ng-deep .qms-bpmn-container .custom-mat-form-field .mat-form-field-flex{padding-left:12px}:host ::ng-deep .qms-bpmn-container .target-wrapper{padding-left:10px;padding-bottom:8px}:host ::ng-deep .qms-bpmn-container .qms-list-item-content{margin-left:0;height:auto}:host ::ng-deep .qms-bpmn-container .wrap-image.image-square{background-color:transparent;margin-right:0}:host ::ng-deep .qms-bpmn-container .qms-list-text{justify-content:center;border-bottom:none}:host ::ng-deep .qms-bpmn-container .mat-expansion-panel-body{padding-left:0;padding-right:0}:host ::ng-deep .qms-bpmn-container .qms-btn-icon{height:auto}:host ::ng-deep .qms-bpmn-container .mat-form-field-wrapper{padding-bottom:0}:host ::ng-deep .qms-bpmn-container .mat-form-field-wrapper .mat-form-field-flex{border-bottom:none;background-color:transparent}:host ::ng-deep .qms-bpmn-container .mat-form-field-wrapper .mat-form-field-flex:hover{background-color:transparent}:host ::ng-deep .qms-bpmn-container .connection-item-container .related-item-wrapper,:host ::ng-deep .qms-bpmn-container .content-item-container .related-item-wrapper{display:flex;border:1px solid #e0e0e0;border-radius:4px;margin-bottom:8px}:host ::ng-deep .qms-bpmn-container .connection-item-container .qms-list-item.image-item .qms-list-text,:host ::ng-deep .qms-bpmn-container .content-item-container .qms-list-item.image-item .qms-list-text{border-bottom:none!important}:host ::ng-deep .qms-bpmn-container .connection-item-container .mat-expansion-panel.qms-expansion,:host ::ng-deep .qms-bpmn-container .content-item-container .mat-expansion-panel.qms-expansion{margin-left:0!important;margin-right:0!important}:host ::ng-deep .qms-bpmn-container .connection-item-container .qms-list-item,:host ::ng-deep .qms-bpmn-container .content-item-container .qms-list-item{height:56px}:host ::ng-deep .qms-bpmn-container .connection-item-container .mat-expansion-panel-body{padding-left:0!important;padding-right:0!important}:host ::ng-deep .qms-bpmn-container .active-anchor{color:var(--primary)}::ng-deep .stencil-paper-drag{z-index:10000}::ng-deep .group-action-member{width:359px;max-width:359px!important;margin-left:20px!important}::ng-deep .mat-expansion-panel-header .mat-expansion-indicator:after{color:#0163b2}::ng-deep .mat-form-field:hover{background:none}::ng-deep .mat-menu-panel{width:auto}::ng-deep .mat-select-search-inside-mat-option .mat-select-search-input{border-bottom:1px solid rgba(0,0,0,.38);margin:.25rem;background-color:rgba(0,0,0,.04);border-radius:4px}.activity-attachment__attachment-list .custom-attachment-margin{margin:16px 0}.activity-attachment__attachment-list .qms-scrollable-attachment-list .qms-list-item.mat-2-line.image-item{height:64px}.activity-attachment__attachment-list .qms-scrollable-attachment-list .qms-list-item.mat-2-line.image-item .qms-line,.activity-attachment__attachment-list .qms-scrollable-attachment-list .qms-list-item.mat-2-line.image-item .subtitle{-webkit-line-clamp:1}.activity-attachment__attachment-list .qms-scrollable-attachment-list .qms-list-item.mat-2-line.image-item .subtitle:last-child{padding:2px}.activity-attachment__attachment-list .qms-scrollable-attachment-list .qms-list-item.mat-2-line.image-item .subtitle{font-weight:600;font-size:16px;word-break:break-word}.activity-attachment__attachment-list .qms-scrollable-attachment-list .qms-list-item.mat-2-line.image-item .subtitle .qms-btn-text:focus-visible:after,.activity-attachment__attachment-list .qms-scrollable-attachment-list .qms-list-item.mat-2-line.image-item .subtitle .qms-btn-text:focus:after{animation:none}.activity-attachment__attachment-list .qms-scrollable-attachment-list .qms-list-item.mat-2-line.image-item .qms-btn{padding:0 8px;color:#fff}.activity-attachment__attachment-list .qms-scrollable-attachment-list .qms-list-item.mat-2-line.image-item .qms-btn-icon{height:1.5rem;width:1.5rem;line-height:1.5rem}.activity-attachment__attachment-list .mat-dialog-actions{padding:8px 0 0}.activity-attachment__attachment-list .qms-list-text{height:56px;border-bottom:1px solid var(--other-divider)!important}.activity-attachment__attachment-list ::ng-deep .qms-list-header{height:56px;border-bottom:1px solid var(--other-divider)!important}.activity-attachment__attachment-list .attachment-ion{width:56px;height:56px;background-color:#fff}.qms-badges-container{margin-right:15px;display:flex}.qms-badges-container ::ng-deep .qms-badges-circle-large{border:1px double}.qms-badges-container ::ng-deep .text-color-white{color:grey!important;font-weight:600}"]
368
+ template: "<div class=\"qms-bpmn-container\">\n <div id=\"bpmn\" class=\"bpmn__editor\">\n <div id=\"toolbarpanel\">\n <div *ngIf=\"editMode !== flowchartViewMode.View\" id=\"toolbar-container\" [class.disabled]=\"isDisableToolbar()\">\n </div>\n </div>\n <div id=\"leftpanel\" class=\"full-screen-bpmn-editor_panel\">\n <div id=\"paperpanel\" class=\"full-screen-bpmn-editor_paperpanel\">\n <div id=\"paper-container\"></div>\n </div>\n <div id=\"stencilpanel\">\n <mat-expansion-panel *ngIf=\"editMode !== flowchartViewMode.View\" id=\"panel-stencil-container\"\n [expanded]=\"expandedPanel\" (click)=\"expandPanel()\">\n <mat-expansion-panel-header>\n <mat-panel-title> </mat-panel-title>\n </mat-expansion-panel-header>\n <div id=\"stencil-container\"></div>\n </mat-expansion-panel>\n </div>\n </div>\n <div id=\"rightpanel\" class=\"full-screen-bpmn-editor_panel\">\n <mat-tab-group mat-stretch-tabs mat-align-tabs=\"center\" (selectedTabChange)=\"onTabChange($event)\"\n [(selectedIndex)]=\"selectedTabIndex\">\n <mat-tab [label]=\"LANG.BPMN.PROPERTIES\" id=\"qmsckeditor_bpmn_properties\">\n <div id=\"inspector-container\"></div>\n </mat-tab>\n <mat-tab [label]=\"LANG.BPMN.CONNECTION\" id=\"qmsckeditor_bpmn_connection\" [disabled]=\"disabledConnectionTab\">\n <ng-container\n *ngIf=\"QMSBPMNConfig.addConnectionType === bpmnAddConnectionType.MultiConnection && isShowConnectType() && isShowAddConnectionTab()\">\n <ng-container *ngIf=\"!QMSBPMNConfig.showShapeConnectionValue\">\n <ng-container *ngTemplateOutlet=\"noResult\">\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"QMSBPMNConfig.showShapeConnectionValue\">\n <ng-container *ngTemplateOutlet=\"haveResult\">\n </ng-container>\n </ng-container>\n </ng-container>\n <mat-expansion-panel id=\"qmsckeditor_bpmn_connection_panel\" [expanded]=\"true\" (opened)=\"(true)\"\n (closed)=\"(false)\" hideToggle style=\"position: relative;height: 100%;\"\n *ngIf=\"QMSBPMNConfig.addConnectionType === bpmnAddConnectionType.SingleConnection && isSelectedView()\">\n <div id=\"connection-container\" *ngIf=\"isShowConnectType()\">\n <div class=\"shape__connect-type\" *ngIf=\"!QMSBPMNConfig.showShapeConnectionValue\">\n <h3 class=\"shape-connect__select-label\">{{ LANG.BPMN.CHOOSE_CONNECTION_TYPE }}</h3>\n <mat-radio-group [(ngModel)]=\"selectedValue\" name=\"connectType\"\n (ngModelChange)=\"selectConnectType($event)\" aria-label=\"Select an option\" class=\"mt-3\">\n <div *ngFor=\"let type of QMSBPMNConfig.connectTypes\">\n <mat-radio-button [value]=\"type.value\" qms-group-options color=\"default\" *ngIf=\"type.canConnect\">\n <span class=\"text-label title\">{{ type.viewValue }}</span>\n <small class=\"text-help\">{{ type.description }}</small>\n </mat-radio-button>\n </div>\n </mat-radio-group>\n </div>\n <div *ngIf=\"shapeModel && QMSBPMNConfig.showShapeConnectionValue && editMode !== flowchartViewMode.View\"\n class=\"ml-4 mr-4 mt-2\">\n <ng-container *ngIf=\"shapeModel.shape?.connectionTypeId === shapeFlowChartConnectionType.Activity\">\n <span class=\"shape-connect__label\"> {{ LANG.BPMN.CONNECTION_TYPE.CONNECTED_ACTIVITY }}</span>\n <mat-card class=\"col-12 col-md-12 mt-2\">\n <div class=\"row\">\n <div class=\"col-9 title\" style=\"word-wrap: break-word\">\n {{ shapeModel.description.title }}\n </div>\n <div class=\"col-1\" style=\"cursor: pointer\">\n <mat-icon (click)=\"openActivity()\">edit</mat-icon>\n </div>\n <div class=\"col-1\" style=\"cursor: pointer\">\n <mat-icon (click)=\"deleteConnection(shapeModel.shape.connectionTypeId)\">close</mat-icon>\n </div>\n </div>\n </mat-card>\n </ng-container>\n <ng-container *ngIf=\"shapeModel.shape?.connectionTypeId !== shapeFlowChartConnectionType.Activity\">\n <span class=\"shape-connect__label\"> {{ QMSBPMNConfig.shapeConnectLabel }}</span>\n <mat-form-field appearance=\"fill\" class=\"mt-3 connect-link\"\n *ngIf=\"shapeModel.relatedItem.itemType == relatedItemType.document\" qms-form qms-select-input>\n <mat-label *ngIf=\"!QMSBPMNConfig.isAnchorLoading\">{{\n LANG.BPMN.CHOOSE_ANCHOR_IN_TEXT\n }}</mat-label>\n <mat-label *ngIf=\"QMSBPMNConfig.isAnchorLoading\">\n <div class=\"d-flex align-items-center\">\n <span>{{ LANG.LOADING }}</span>\n <mat-spinner class=\"spinner\" diameter=\"20\"></mat-spinner>\n </div>\n </mat-label>\n <mat-select [(ngModel)]=\"anchorValue\" name=\"anchorType\" qms-select\n (ngModelChange)=\"changeShapeAnchor($event)\" panelClass=\"connection-size select-tiny-margin\"\n disableOptionCentering>\n <mat-option *ngFor=\"let anchor of anchors\" [value]=\"anchor.anchorValue\">\n {{ anchor.viewValue }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n <button *ngIf=\"shapeModel.relatedItem.itemType == relatedItemType.document\"\n (click)=\"reloadAnchorDocument()\" type=\"button\" qms-btn-text class=\"reload-anchor\"\n [class.disabled]=\"QMSBPMNConfig.isAnchorLoading\">\n <mat-icon>refresh</mat-icon> {{ LANG.BPMN.RELOAD_ANCHORS }}\n </button>\n <mat-form-field class=\"connect-link\" appearance=\"fill\" style=\"margin-left: 0px;\"\n [ngStyle]=\"{ 'margin-top': shapeModel.relatedItem.itemType != relatedItemType.document ? '0px' : '15px' }\"\n qms-form qms-select-input>\n <mat-label>{{ LANG.BPMN.CONNECTION_TYPE.OPTION_FOR_OPENING }}</mat-label>\n <mat-select [(ngModel)]=\"targetValue\" name=\"processTargetType\" qms-select\n (ngModelChange)=\"changeShapeTartget($event)\" panelClass=\"connection-size select-tiny-margin\"\n disableOptionCentering>\n <mat-option *ngFor=\"let target of targets\" [value]=\"target.value\">\n {{ target.viewValue }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n <div class=\"shape-connect__item-card mt-2\">\n <ng-container\n *ngIf=\"shapeModel.shape?.connectionTypeId === shapeFlowChartConnectionType.Link, else notLinkConnection\">\n <div>\n <mat-icon>link</mat-icon>\n </div>\n <div class=\"shape-connect__content\">\n <div class=\"col-12 title link-title\">\n {{ shapeModel.link.link }}\n </div>\n </div>\n </ng-container>\n <ng-template #notLinkConnection>\n <qms-list-item type=\"image-square\">\n <mat-icon *ngIf=\"shapeModel.relatedItem.SVGIcon\" leading-icon type=\"image-square\"\n [svgIcon]=\"shapeModel.relatedItem.SVGIcon\"></mat-icon>\n <mat-icon *ngIf=\"shapeModel.relatedItem.matIcon\" leading-icon\n type=\"image-square\">{{shapeModel.relatedItem.matIcon}}</mat-icon>\n <div qms-list-header>\n <div qms-line type=\"subtitle\" class=\"search__option-name\">\n <div *ngIf=\"shapeModel.relatedItem.parentName\" class=\"caption\">\n {{ shapeModel.relatedItem.parentName }}\n </div>\n <span class=\"cursor\">{{ shapeModel.relatedItem.itemName }}</span>\n </div>\n </div>\n <div qms-line color=\"default-subtitle\"\n *ngIf=\"\n (shapeModel.relatedItem.itemType === relatedItemType.document ||\n shapeModel.relatedItem.itemType === relatedItemType.process || \n shapeModel.relatedItem.itemType === relatedItemType.processInterconnected)\">\n <ng-container *ngIf=\"shapeModel.relatedItem.displayId\">\n ID: {{ shapeModel.relatedItem.displayId }}\n {{ shapeModel.relatedItem.statusName ? ', ' + shapeModel.relatedItem.statusName : ''}}\n </ng-container>\n </div>\n <div qms-line color=\"default-subtitle\" *ngIf=\"shapeModel.relatedItem.itemType === relatedItemType.compliance && \n shapeModel.relatedItem.breadcrumbs && \n shapeModel.relatedItem.breadcrumbs.length > 0\">\n <qms-breadcrumb class=\"breadcrumb-container\" type=\"table\" numDisplayItem=\"2\"\n [nodes]=\"shapeModel.relatedItem.breadcrumbs\">\n </qms-breadcrumb>\n </div>\n </qms-list-item>\n </ng-template>\n <button type=\"button\" qms-btn-icon color=\"light\" class=\"item-card__delete-btn\"\n (click)=\"deleteConnection(shapeModel.shape.connectionTypeId)\">\n <mat-icon>close</mat-icon>\n </button>\n </div>\n </ng-container>\n </div>\n </div>\n </mat-expansion-panel>\n </mat-tab>\n </mat-tab-group>\n </div>\n </div>\n</div>\n\n<ng-template #noResult>\n <div class=\"no-result-connection\">\n <svg width=\"200\" height=\"160\" viewBox=\"0 0 200 160\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M104 144.5C132.167 144.5 155 121.667 155 93.5C155 65.3335 132.167 42.5 104 42.5C75.8335 42.5 53 65.3335 53 93.5C53 121.667 75.8335 144.5 104 144.5Z\"\n fill=\"#FAFAFA\" />\n <path\n d=\"M32 129.5C41.9411 129.5 50 121.441 50 111.5C50 101.559 41.9411 93.5 32 93.5C22.0589 93.5 14 101.559 14 111.5C14 121.441 22.0589 129.5 32 129.5Z\"\n fill=\"#FAFAFA\" />\n <path\n d=\"M41 84.5C45.9706 84.5 50 80.4706 50 75.5C50 70.5294 45.9706 66.5 41 66.5C36.0294 66.5 32 70.5294 32 75.5C32 80.4706 36.0294 84.5 41 84.5Z\"\n fill=\"#FAFAFA\" />\n <path\n d=\"M164 129.5C168.971 129.5 173 125.471 173 120.5C173 115.529 168.971 111.5 164 111.5C159.029 111.5 155 115.529 155 120.5C155 125.471 159.029 129.5 164 129.5Z\"\n fill=\"#FAFAFA\" />\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M68.8428 39.6674L73.4284 39.1577L68.8428 39.6674Z\"\n fill=\"white\" />\n <path\n d=\"M68.7008 38.4256C68.0146 38.5018 67.522 39.1197 67.6004 39.8055C67.6789 40.4914 68.2988 40.9856 68.9849 40.9093L68.7008 38.4256ZM73.5705 40.3996C74.2566 40.3233 74.7493 39.7055 74.6708 39.0196C74.5923 38.3337 73.9725 37.8396 73.2864 37.9158L73.5705 40.3996ZM68.9849 40.9093L73.5705 40.3996L73.2864 37.9158L68.7008 38.4256L68.9849 40.9093Z\"\n fill=\"#616161\" />\n <path opacity=\"0.3\" fill-rule=\"evenodd\" clip-rule=\"evenodd\"\n d=\"M121.14 37.7692L129.56 99.2529L130.317 105.421C130.561 107.408 129.167 109.215 127.203 109.456L74.7613 115.895C72.7978 116.136 71.0082 114.72 70.7642 112.733L62.6142 46.3568C62.4795 45.2605 63.2592 44.2626 64.3555 44.128L70.8431 43.3314\"\n fill=\"#616161\" />\n <path\n d=\"M77.9219 23.5C77.9219 21.9812 79.1531 20.75 80.6719 20.75H126.229C126.958 20.75 127.657 21.0395 128.173 21.5549L141.616 34.9898C142.132 35.5056 142.422 36.2053 142.422 36.9349V99.5C142.422 101.019 141.191 102.25 139.672 102.25H80.6719C79.1531 102.25 77.9219 101.019 77.9219 99.5V23.5Z\"\n fill=\"#FAFAFA\" stroke=\"#616161\" stroke-width=\"2.5\" />\n <path d=\"M126.672 21.9028V33.5C126.672 35.1569 128.015 36.5 129.672 36.5H137.605\" stroke=\"#616161\"\n stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\n <path d=\"M88 87.5H114M88 36.5H114H88ZM88 48.5H131H88ZM88 61.5H131H88ZM88 74.5H131H88Z\" stroke=\"#616161\"\n stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\n </svg>\n <span>{{ LANG.BPMN.NO_CONNECTIONS }}</span>\n <div [matMenuTriggerFor]=\"menu\">\n <button qms-btn-outlined class=\"button-add\">\n <mat-icon class=\"add-icon\">add</mat-icon> {{ LANG.QMSCKEDITOR.ADD }}\n </button>\n <mat-menu #menu=\"matMenu\" class=\"group-action-member menu-action\">\n <ng-container *ngFor=\"let type of QMSBPMNConfig.connectTypes\">\n <button type=\"button\" mat-menu-item *ngIf=\"type.canConnect\" (click)=\"selectConnectTypeForShape(type)\">\n <mat-icon class=\"material-icons-outlined\" *ngIf=\"type.icon\">\n {{ type.icon }}\n </mat-icon>\n <span>{{ type.viewValue }}</span>\n </button>\n </ng-container>\n </mat-menu>\n </div>\n </div>\n</ng-template>\n\n<ng-template #haveResult>\n <div class=\"have-result-connection\">\n <div [matMenuTriggerFor]=\"menu\">\n <button qms-btn-outlined class=\"button-add\">\n <mat-icon class=\"add-icon\">add</mat-icon> {{ LANG.QMSCKEDITOR.ADD }}\n </button>\n <mat-menu #menu=\"matMenu\" class=\"group-action-member menu-action\">\n <div *ngFor=\"let type of QMSBPMNConfig.connectTypes\">\n <button type=\"button\" mat-menu-item *ngIf=\"type.canConnect\" (click)=\"selectConnectTypeForShape(type)\">\n <mat-icon class=\"material-icons-outlined\" *ngIf=\"type.icon\">\n {{ type.icon }}\n </mat-icon>\n <span>{{ type.viewValue }}</span>\n </button>\n </div>\n </mat-menu>\n </div>\n <div class=\"button-add\">\n\n <ng-container *ngIf=\"shapeConnectionDetailModel?.description?.description?.length\">\n <mat-accordion class=\"example-headers-align content-item-container\">\n <mat-expansion-panel qms-expansion>\n <mat-expansion-panel-header qms-expansion-header class=\"mat-expansion-panel-header\">\n <div class=\"connection-content-body\">\n <div qms-line color=\"default-subtitle\"> {{ LANG.QMSCKEDITOR.DESCRIPTION }}\n </div>\n <button type=\"button\" qms-btn-icon color=\"light\" class=\"edit-icon description-edit\"\n *ngIf=\"QMSBPMNConfig.shapeConnectionActionModel.length\" [matMenuTriggerFor]=\"descriptionAction\"\n (click)=\"openConnectionActionDropdown($event)\">\n <mat-icon>more_vert</mat-icon>\n </button>\n <mat-menu #descriptionAction=\"matMenu\" class=\"group-action-member menu-action\">\n <ng-container *ngFor=\"let action of QMSBPMNConfig.shapeConnectionActionModel\">\n <button type=\"button\" mat-menu-item\n (click)=\"selectShapeDescriptionConnectionAction(action.actionType)\">\n <span> {{ action.actionName }} </span>\n </button>\n </ng-container>\n </mat-menu>\n </div>\n </mat-expansion-panel-header>\n <mat-label class=\"ck-content\" [innerHTML]=\"shapeConnectionDetailModel.description.description\"></mat-label>\n </mat-expansion-panel>\n </mat-accordion>\n </ng-container>\n\n <ng-container *ngIf=\"shapeConnectionDetailModel?.fields?.length\">\n <ng-container *ngFor=\"let field of shapeConnectionDetailModel.fields\">\n <mat-accordion class=\"example-headers-align content-item-container\" *ngIf=\"field.content?.length\">\n <mat-expansion-panel qms-expansion>\n <mat-expansion-panel-header qms-expansion-header class=\"mat-expansion-panel-header\">\n <div class=\"connection-content-body\">\n <div qms-line color=\"default-subtitle\"> {{ field.name }}\n </div>\n <button type=\"button\" qms-btn-icon color=\"light\" class=\"edit-icon description-edit\"\n *ngIf=\"QMSBPMNConfig.shapeConnectionActionModel.length\" [matMenuTriggerFor]=\"fieldAction\"\n (click)=\"openConnectionActionDropdown($event)\">\n <mat-icon>more_vert</mat-icon>\n </button>\n <mat-menu #fieldAction=\"matMenu\" class=\"group-action-member menu-action\">\n <ng-container *ngFor=\"let action of QMSBPMNConfig.shapeConnectionActionModel\">\n <button type=\"button\" mat-menu-item\n (click)=\"selectShapeFieldConnectionAction(field, action.actionType)\">\n <span> {{ action.actionName }} </span>\n </button>\n </ng-container>\n </mat-menu>\n </div>\n </mat-expansion-panel-header>\n <mat-label class=\"ck-content\" [innerHTML]=\"field.content\"></mat-label>\n </mat-expansion-panel>\n </mat-accordion>\n </ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"shapeConnectionDetailModel?.documentAndProcess?.length\">\n <mat-accordion class=\"example-headers-align connection-item-container\">\n <mat-expansion-panel qms-expansion>\n <mat-expansion-panel-header qms-expansion-header class=\"mat-expansion-panel-header\">\n <div class=\"connection-content-body\">\n <div qms-line color=\"default-subtitle\"> {{ LANG.BPMN.DOCUMENT_PROCESS }}\n </div>\n <qms-badges class=\"mr-5 qms-badges-container\" [color]=\"'brown'\" [type]=\"'1'\"\n [contents]=\"shapeConnectionDetailModel?.documentAndProcess?.length\" [size]=\"'large'\"></qms-badges>\n </div>\n </mat-expansion-panel-header>\n\n <ng-container *ngTemplateOutlet=\"changeShapeTarget\">\n </ng-container>\n\n <ng-container *ngFor=\"let connection of shapeConnectionDetailModel.documentAndProcess\">\n <div class=\"related-item-wrapper\">\n <qms-list-item type=\"image-square\">\n <mat-icon *ngIf=\"connection.relatedItem.SVGIcon\" leading-icon type=\"image-square\"\n [svgIcon]=\"connection.relatedItem.SVGIcon\"></mat-icon>\n <mat-icon *ngIf=\"connection.relatedItem.matIcon\" leading-icon\n type=\"image-square\">{{connection.relatedItem.matIcon}}</mat-icon>\n <div qms-list-header>\n <div qms-line type=\"subtitle\" class=\"search__option-name\">\n <span class=\"cursor\">{{ connection.relatedItem.itemName }}</span>\n </div>\n </div>\n <div qms-line color=\"default-subtitle\">\n <ng-container *ngIf=\"connection.relatedItem.displayId\">\n ID: {{ connection.relatedItem.displayId }}\n {{ connection.relatedItem.statusName ? ', ' + connection.relatedItem.statusName : ''}}\n </ng-container>\n </div>\n <div class=\"custom-anchor\">\n <mat-form-field qms-form appearance=\"fill\" class=\"full-width col-12 custom-mat-form-field\"\n *ngIf=\"connection.relatedItem.itemType == itemType.document\"\n [qms-tool-tip]=\"connection.anchorDocument.anchorValue\" mode=\"dark\" position=\"top\">\n <mat-icon [ngClass]=\"{'active-anchor': connection.anchorDocument?.anchorValue?.length > 0}\"\n (click)=\"getAnchorForDocument(connection.relatedItem.displayId)\">anchor</mat-icon>\n <mat-select qms-select [formControl]=\"anchorIdCtrl\"\n [(ngModel)]=\"connection.anchorDocument.anchorId\" panelClass=\"qms-select-panel\"\n disableOptionCentering (valueChange)=\"changeDocumentAnchorForShape($event)\">\n\n <mat-option>\n <ngx-mat-select-search [formControl]=\"anchorIdFilterCtrl\" [placeholderLabel]=\"LANG.SEARCH\">\n </ngx-mat-select-search>\n </mat-option>\n\n <mat-option *ngFor=\"let anchor of (filteredAnchors | async)\" [value]=\"anchor.value\">\n {{ anchor.viewValue }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n\n <button type=\"button\" qms-btn-icon color=\"light\" class=\"item-card__delete-btn custom-delete-btn\"\n (click)=\"removeRelatedItemForShape(connection.relatedItem, shapeFlowChartConnectionType.DocumentOrProcess)\">\n <mat-icon>close</mat-icon>\n </button>\n </div>\n </qms-list-item>\n\n </div>\n </ng-container>\n </mat-expansion-panel>\n </mat-accordion>\n </ng-container>\n\n <ng-container *ngIf=\"shapeConnectionDetailModel?.deviation?.length\">\n <mat-accordion class=\"example-headers-align connection-item-container\">\n <mat-expansion-panel qms-expansion>\n <mat-expansion-panel-header qms-expansion-header class=\"mat-expansion-panel-header\">\n <div class=\"connection-content-body\">\n <div qms-line color=\"default-subtitle\"> {{ LANG.BPMN.DEVIATION }}\n </div>\n <qms-badges class=\"mr-5 qms-badges-container\" [color]=\"'brown'\" [type]=\"'1'\"\n [contents]=\"shapeConnectionDetailModel?.deviation?.length\" [size]=\"'large'\"></qms-badges>\n </div>\n </mat-expansion-panel-header>\n\n <ng-container *ngTemplateOutlet=\"changeShapeTarget\">\n </ng-container>\n\n <ng-container *ngFor=\"let connection of shapeConnectionDetailModel.deviation\">\n <div class=\"related-item-wrapper\">\n <qms-list-item type=\"image-square\">\n <mat-icon *ngIf=\"connection.SVGIcon\" leading-icon type=\"image-square\"\n [svgIcon]=\"connection.SVGIcon\"></mat-icon>\n <mat-icon *ngIf=\"connection.matIcon\" leading-icon\n type=\"image-square\">{{connection.matIcon}}</mat-icon>\n <div qms-list-header>\n <div qms-line type=\"subtitle\" class=\"search__option-name\">\n <span class=\"cursor\">{{ connection.itemName }}</span>\n </div>\n </div>\n <div qms-line color=\"default-subtitle\">\n <ng-container *ngIf=\"connection.parentName\">\n {{ connection.parentName }}\n </ng-container>\n </div>\n <button type=\"button\" qms-btn-icon color=\"light\" class=\"item-card__delete-btn\"\n (click)=\"removeRelatedItemForShape(connection, shapeFlowChartConnectionType.Deviation)\">\n <mat-icon>close</mat-icon>\n </button>\n </qms-list-item>\n\n </div>\n </ng-container>\n </mat-expansion-panel>\n </mat-accordion>\n </ng-container>\n\n <ng-container *ngIf=\"shapeConnectionDetailModel?.checklist?.length\">\n <mat-accordion class=\"example-headers-align connection-item-container\">\n <mat-expansion-panel qms-expansion>\n <mat-expansion-panel-header qms-expansion-header class=\"mat-expansion-panel-header\">\n <div class=\"connection-content-body\">\n <div qms-line color=\"default-subtitle\"> {{ LANG.BPMN.CHECKLIST }}\n </div>\n <qms-badges class=\"mr-5 qms-badges-container\" [color]=\"'brown'\" [type]=\"'1'\"\n [contents]=\"shapeConnectionDetailModel?.checklist?.length\" [size]=\"'large'\"></qms-badges>\n </div>\n </mat-expansion-panel-header>\n\n <ng-container *ngTemplateOutlet=\"changeShapeTarget\">\n </ng-container>\n\n <ng-container *ngFor=\"let connection of shapeConnectionDetailModel.checklist\">\n <div class=\"related-item-wrapper\">\n <qms-list-item type=\"image-square\">\n <mat-icon *ngIf=\"connection.SVGIcon\" leading-icon type=\"image-square\"\n [svgIcon]=\"connection.SVGIcon\"></mat-icon>\n <mat-icon *ngIf=\"connection.matIcon\" leading-icon\n type=\"image-square\">{{connection.matIcon}}</mat-icon>\n <div qms-list-header>\n <div qms-line type=\"subtitle\" class=\"search__option-name\">\n <span class=\"cursor\">{{ connection.itemName }}</span>\n </div>\n </div>\n <div qms-line color=\"default-subtitle\">\n <ng-container *ngIf=\"connection.parentName\">\n {{ connection.parentName }}\n </ng-container>\n </div>\n <button type=\"button\" qms-btn-icon color=\"light\" class=\"item-card__delete-btn\"\n (click)=\"removeRelatedItemForShape(connection, shapeFlowChartConnectionType.Checklist)\">\n <mat-icon>close</mat-icon>\n </button>\n </qms-list-item>\n </div>\n </ng-container>\n </mat-expansion-panel>\n </mat-accordion>\n </ng-container>\n\n <ng-container *ngIf=\"shapeConnectionDetailModel?.risk?.length\">\n <mat-accordion class=\"example-headers-align connection-item-container\">\n <mat-expansion-panel qms-expansion>\n <mat-expansion-panel-header qms-expansion-header class=\"mat-expansion-panel-header\">\n <div class=\"connection-content-body\">\n <div qms-line color=\"default-subtitle\"> {{ LANG.BPMN.RISK_ANALYSIS }}\n </div>\n <qms-badges class=\"mr-5 qms-badges-container\" [color]=\"'brown'\" [type]=\"'1'\"\n [contents]=\"shapeConnectionDetailModel?.risk?.length\" [size]=\"'large'\"></qms-badges>\n </div>\n </mat-expansion-panel-header>\n\n <ng-container>\n <div class=\"related-list__content\"\n *ngIf=\"shapeConnectionDetailModel?.riskData?.data && shapeConnectionDetailModel?.riskData?.data.length\">\n <qms-risk-list [data]=\"shapeConnectionDetailModel?.riskData\"\n (updateData)=\"onUpdateDataOther($event)\"></qms-risk-list>\n </div>\n </ng-container>\n </mat-expansion-panel>\n </mat-accordion>\n </ng-container>\n\n <ng-container *ngIf=\"shapeConnectionDetailModel?.attachment?.length\">\n <mat-accordion class=\"example-headers-align connection-item-container\">\n <mat-expansion-panel qms-expansion>\n <mat-expansion-panel-header qms-expansion-header class=\"mat-expansion-panel-header\">\n <div class=\"description-header\">\n <div qms-line color=\"default-subtitle\"> {{ LANG.QMSCKEDITOR.ATTACHMENT }}\n </div>\n <qms-badges class=\"mr-5 qms-badges-container\" [color]=\"'brown'\" [type]=\"'1'\"\n [contents]=\"shapeConnectionDetailModel?.attachment?.length\" [size]=\"'large'\"></qms-badges>\n </div>\n </mat-expansion-panel-header>\n <ng-container>\n <div class=\"activity-attachment__attachment-list\">\n <div *ngFor=\"let file of shapeConnectionDetailModel?.attachment; let i = index\"\n class=\"custom-attachment-margin custom-image\">\n <qms-list-item type=\"image-rect\">\n <div leading-icon>\n <img [src]=\"file.fileContentBase64\" *ngIf=\"file.isImage && file.isDraft\" />\n <img [src]=\"'data:image/png;base64,' + file.fileContentBase64\"\n *ngIf=\"file.isImage && !file.isDraft\" />\n <mat-icon class=\"attachment-ion\" *ngIf=\"!file.isImage && file.extension ==='pdf'\" leading-icon\n type=\"image-square\" [svgIcon]=\"'file_pdf'\"></mat-icon>\n <mat-icon class=\"attachment-ion\" *ngIf=\"!file.isImage && file.extension ==='docx'\" leading-icon\n type=\"image-square\" [svgIcon]=\"'file_word'\"></mat-icon>\n <mat-icon class=\"attachment-ion\" *ngIf=\"!file.isImage && file.extension ==='xlsx'\" leading-icon\n type=\"image-square\" [svgIcon]=\"'file_excel'\"></mat-icon>\n <mat-icon class=\"attachment-ion\"\n *ngIf=\"!file.isImage && (file.extension !=='xlsx' && file.extension !=='docx'&& file.extension !=='pdf')\"\n leading-icon type=\"image-square\" [svgIcon]=\"'file_icon'\"></mat-icon>\n </div>\n <div qms-list-header>\n <div qms-line type=\"subtitle\">{{ file.fileName }}</div>\n </div>\n <span class=\"caption\">\n <button type=\"button\" qms-btn-icon color=\"light\"\n (click)=\"removeRelatedItemForShape(file, shapeFlowChartConnectionType.Attachment)\">\n <mat-icon>clear</mat-icon>\n </button>\n </span>\n </qms-list-item>\n </div>\n </div>\n </ng-container>\n </mat-expansion-panel>\n </mat-accordion>\n </ng-container>\n\n <ng-container *ngIf=\"shapeConnectionDetailModel?.shapeLink?.length\">\n <mat-accordion class=\"example-headers-align connection-item-container\">\n <mat-expansion-panel qms-expansion>\n <mat-expansion-panel-header qms-expansion-header class=\"mat-expansion-panel-header\">\n <div class=\"connection-content-body\">\n <div qms-line color=\"default-subtitle\"> {{ LANG.BPMN.LINK }}\n </div>\n <qms-badges class=\"mr-5 qms-badges-container\" [color]=\"'brown'\" [type]=\"'1'\"\n [contents]=\"shapeConnectionDetailModel?.shapeLink?.length\" [size]=\"'large'\"></qms-badges>\n </div>\n </mat-expansion-panel-header>\n\n <ng-container *ngTemplateOutlet=\"changeShapeTarget\">\n </ng-container>\n\n <ng-container *ngFor=\"let link of shapeConnectionDetailModel.shapeLink\">\n <div class=\"related-item-wrapper\">\n <qms-list-item type=\"image-square\">\n <mat-icon leading-icon type=\"image-square\">link</mat-icon>\n <div qms-list-header>\n <div qms-line type=\"subtitle\" class=\"search__option-name\">\n <span class=\"cursor\">{{ link.link }}</span>\n </div>\n </div>\n <button type=\"button\" qms-btn-icon color=\"light\" class=\"item-card__delete-btn\"\n (click)=\"removeRelatedLinkForShape(link, shapeFlowChartConnectionType.Link)\">\n <mat-icon>close</mat-icon>\n </button>\n </qms-list-item>\n\n </div>\n </ng-container>\n\n\n </mat-expansion-panel>\n </mat-accordion>\n </ng-container>\n\n <ng-container *ngIf=\"shapeConnectionDetailModel?.compliance?.length\">\n <mat-accordion class=\"example-headers-align connection-item-container\">\n <mat-expansion-panel qms-expansion>\n <mat-expansion-panel-header qms-expansion-header class=\"mat-expansion-panel-header\">\n <div class=\"connection-content-body\">\n <div qms-line color=\"default-subtitle\"> {{ LANG.BPMN.CONNECTION_TYPE.CONNECTED_COMPLIANCE }}\n </div>\n <qms-badges class=\"mr-5 qms-badges-container\" [color]=\"'brown'\" [type]=\"'1'\"\n [contents]=\"shapeConnectionDetailModel?.compliance?.length\" [size]=\"'large'\"></qms-badges>\n </div>\n </mat-expansion-panel-header>\n\n <ng-container *ngTemplateOutlet=\"changeShapeTarget\">\n </ng-container>\n\n <ng-container *ngFor=\"let connection of shapeConnectionDetailModel.compliance\">\n <div class=\"related-item-wrapper\">\n <qms-list-item type=\"image-square\">\n <mat-icon *ngIf=\"connection.SVGIcon\" leading-icon type=\"image-square\"\n [svgIcon]=\"connection.SVGIcon\"></mat-icon>\n <mat-icon *ngIf=\"connection.matIcon\" leading-icon\n type=\"image-square\">{{connection.matIcon}}</mat-icon>\n <div qms-list-header>\n <div qms-line type=\"subtitle\" class=\"search__option-name\">\n <span class=\"cursor\">{{ connection.itemName }}</span>\n </div>\n </div>\n\n <div qms-line color=\"default-subtitle\" *ngIf=\"connection.breadcrumbs?.length\">\n <qms-breadcrumb class=\"breadcrumb-container\" type=\"table\" numDisplayItem=\"2\"\n [nodes]=\"connection.breadcrumbs\">\n </qms-breadcrumb>\n </div>\n\n <button type=\"button\" qms-btn-icon color=\"light\" class=\"item-card__delete-btn\"\n (click)=\"removeRelatedItemForShape(connection, shapeFlowChartConnectionType.Compliance)\">\n <mat-icon>close</mat-icon>\n </button>\n </qms-list-item>\n\n </div>\n </ng-container>\n </mat-expansion-panel>\n </mat-accordion>\n </ng-container>\n\n </div>\n </div>\n</ng-template>\n\n<ng-template #changeShapeTarget>\n <div>\n <mat-slide-toggle class=\"target-wrapper\" color=\"default\" qms-group-options\n [checked]=\"shapeConnectionDetailModel?.target?.targetId == shapeTarget.Blank\"\n (change)=\"changeShapeTartget($event)\">\n <span class=\"text-label\">{{ LANG.BPMN.TARGET_BLANK }}</span>\n </mat-slide-toggle>\n </div>\n</ng-template>",
369
+ styles: [":host ::ng-deep .qms-bpmn-container .bpmn__editor{width:100%;height:100%}:host ::ng-deep .qms-bpmn-container #leftpanel{float:left;width:calc(100% - 400px);height:550px}:host ::ng-deep .qms-bpmn-container #rightpanel{float:right;width:400px;height:550px;border:solid;border-width:0 1px 1px 0}:host ::ng-deep .qms-bpmn-container #rightpanel .units{font-size:12px}:host ::ng-deep .qms-bpmn-container #rightpanel .connection-wrapper{padding-bottom:1.34375em}:host ::ng-deep .qms-bpmn-container #rightpanel .connection-wrapper .mat-card-wrapper{padding-right:0}:host ::ng-deep .qms-bpmn-container #rightpanel .connection-wrapper .connection-content{display:flex;justify-content:space-between}:host ::ng-deep .qms-bpmn-container #rightpanel ::ng-deep .mat-tab-group{height:100%}:host ::ng-deep .qms-bpmn-container #rightpanel ::ng-deep .mat-tab-disabled{cursor:not-allowed}:host ::ng-deep .qms-bpmn-container #connection-container{position:absolute;top:0;right:0;bottom:0;width:398px;background:#fff;overflow-y:auto;padding:0 1rem}:host ::ng-deep .qms-bpmn-container #connection-container .shape__connect-type{padding:1rem 0}:host ::ng-deep .qms-bpmn-container #connection-container .shape__connect-type .mat-radio-button.qms-group-options{margin-bottom:1rem;border:1px solid #e0e0e0;width:100%}:host ::ng-deep .qms-bpmn-container #connection-container .mat-form-field{margin-left:8px}:host ::ng-deep .qms-bpmn-container #connection-container .mat-expansion-panel-header.mat-expanded{background-color:#eceff7;height:40px!important}:host ::ng-deep .qms-bpmn-container #connection-container .connect-link{margin-left:0;width:100%}:host ::ng-deep .qms-bpmn-container #connection-container .reload-anchor{float:right;color:gray;height:auto;margin:0;font-size:12px}:host ::ng-deep .qms-bpmn-container #connection-container .shape-connect__select-label{font-size:16px;font-family:Open Sans;font-weight:600}:host ::ng-deep .qms-bpmn-container #connection-container .shape-connect__label{font-size:14px;font-family:Open Sans;font-weight:600}:host ::ng-deep .qms-bpmn-container #connection-container .shape-connect__item-card{border:1px solid #e0e0e0;padding:10px 0;display:flex;align-items:center;border-radius:4px}:host ::ng-deep .qms-bpmn-container #connection-container .shape-connect__item-card .qms-list-item.mat-2-line.image-item{height:auto}:host ::ng-deep .qms-bpmn-container #connection-container .shape-connect__item-card .qms-list-item-content{padding:0!important;margin:0}:host ::ng-deep .qms-bpmn-container #connection-container .shape-connect__item-card .qms-list-item-content .wrap-image{background:transparent;margin-right:0}:host ::ng-deep .qms-bpmn-container #connection-container .shape-connect__item-card .connection-icon{height:1.5rem}:host ::ng-deep .qms-bpmn-container #connection-container .shape-connect__item-card .shape-connect__content{width:80%}:host ::ng-deep .qms-bpmn-container #connection-container .shape-connect__item-card .item-card__delete-btn{margin-left:auto}:host ::ng-deep .qms-bpmn-container #connection-container .shape-connect__item-card .link-title{word-break:break-word}:host ::ng-deep .qms-bpmn-container .mat-icon{color:#000}:host ::ng-deep .qms-bpmn-container .title{font-size:16px;font-weight:700}:host ::ng-deep .qms-bpmn-container #toolbarpanel{position:relative;top:0;bottom:0;left:0;right:0;margin-bottom:16px;height:50px;width:100%}:host ::ng-deep .qms-bpmn-container #paperpanel{position:relative;top:0;bottom:0;left:0;right:0;height:400px;width:100%}:host ::ng-deep .qms-bpmn-container #stencilpanel{position:relative;top:0;bottom:0;left:0;right:0;height:150px;width:100%}:host ::ng-deep .qms-bpmn-container #toolbar-container{position:relative;top:0;bottom:0;right:0;width:100%;height:100%}:host ::ng-deep .qms-bpmn-container #paper-container{position:relative;top:0;bottom:0;left:0;right:0;width:100%;height:inherit}:host ::ng-deep .qms-bpmn-container #inspector-container{position:relative;top:0;right:0;bottom:0;width:100%;background:#fff;height:inherit}:host ::ng-deep .qms-bpmn-container #stencil-container{position:absolute;top:0;bottom:0;left:0;right:0;width:1174px;height:inherit}:host ::ng-deep .qms-bpmn-container #statusbar-container{position:absolute;left:0;right:0;bottom:0;height:25px}:host ::ng-deep .qms-bpmn-container #panel-stencil-container{position:absolute;left:0;right:0;bottom:0;height:150px;overflow-x:auto;overflow-y:hidden;background-image:url(\"data:image/png;base64,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\");background-repeat:repeat;transition:all .5s ease-in-out 0s}:host ::ng-deep .qms-bpmn-container #panel-stencil-container .mat-expansion-panel-header-title{color:#fff}:host ::ng-deep .qms-bpmn-container #panel-stencil-container .joint-theme-default{background:none}:host ::ng-deep .qms-bpmn-container #panel-stencil-container .mat-expansion-indicator:after{color:#fff;transform:rotate(-135deg)}:host ::ng-deep .qms-bpmn-container #panel-stencil-container .mat-expansion-panel-header{min-width:1224px;max-width:100%}:host ::ng-deep .qms-bpmn-container #panel-stencil-container .joint-stencil>.content{width:1200px}:host ::ng-deep .qms-bpmn-container #toolbar-container{left:0;color:#fff;position:absolute}:host ::ng-deep .qms-bpmn-container .joint-inspector.joint-theme-bpmn .group>.group-label{font-size:15px;text-align:center;border:none;background:#eceff7;height:40px;line-height:40px;color:#303046;box-shadow:0 2px 0 0 rgba(0,0,0,.2);margin-bottom:10px;left:0;padding:5px 0}:host ::ng-deep .qms-bpmn-container .joint-inspector.joint-theme-bpmn .group.closed>.group-label{background:#eceff7;height:40px;line-height:40px}:host ::ng-deep .qms-bpmn-container .joint-inspector.joint-theme-bpmn .list-item:nth-child(odd){background:#ecefff;background:-webkit-gradient(left,#ecefff 0,#fafafa 100%);background:linear-gradient(270deg,#91a1c9 0,#fafafa);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#ECEFFF\",endColorstr=\"#3571b0\",GradientType=0)}:host ::ng-deep .qms-bpmn-container .joint-inspector.joint-theme-bpmn .list-item:nth-child(2n){background:#ecefff;background:-webkit-gradient(left,#ecefff 0,#fafafa 100%);background:linear-gradient(270deg,#91a1c9 0,#fafafa);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#ECEFFF\",endColorstr=\"#3571b0\",GradientType=0)}:host ::ng-deep .qms-bpmn-container .joint-inspector.joint-theme-bpmn .list-item .list-item:nth-child(odd){background:#eceff7;background:-webkit-gradient(left,#eceff7 0,#eceff7 100%);background:linear-gradient(270deg,#eceff7 0,#eceff7);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#eceff7\",endColorstr=\"#eceff7\",GradientType=0)}:host ::ng-deep .qms-bpmn-container .joint-inspector.joint-theme-bpmn .list-item .list-item:nth-child(2n){background:#eceff7;background:-webkit-gradient(left,#eceff7 0,#eceff7 100%);background:linear-gradient(270deg,#eceff7 0,#eceff7);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#eceff7\",endColorstr=\"#eceff7\",GradientType=0)}:host ::ng-deep .qms-bpmn-container .joint-inspector.joint-theme-bpmn .list-item{border-radius:10px;box-shadow:0 1px 1px 1px rgba(0,0,0,.2)}:host ::ng-deep .qms-bpmn-container .joint-inspector.joint-theme-bpmn label{color:#7f8c8d}:host ::ng-deep .qms-bpmn-container .joint-inspector.joint-theme-bpmn .btn-list-add{position:relative;left:110px;background:#5799da;border:2px solid #0a468e}:host ::ng-deep .qms-bpmn-container .joint-inspector.joint-theme-bpmn .btn-list-add,:host ::ng-deep .qms-bpmn-container .joint-inspector.joint-theme-bpmn .btn-list-del{background:#5799da;height:25px;color:#000}:host ::ng-deep .qms-bpmn-container .joint-inspector.joint-theme-bpmn textarea{width:350px;max-width:350px}:host ::ng-deep .qms-bpmn-container .joint-inspector.joint-theme-bpmn input[type=color],:host ::ng-deep .qms-bpmn-container .joint-inspector.joint-theme-bpmn input[type=range]{width:171px}:host ::ng-deep .qms-bpmn-container .joint-inspector.joint-theme-bpmn .list{line-height:.5}:host ::ng-deep .qms-bpmn-container .joint-inspector.joint-theme-bpmn .list .select{margin-top:5px}:host ::ng-deep .qms-bpmn-container .joint-inspector.joint-theme-bpmn .list .units,:host ::ng-deep .qms-bpmn-container .joint-inspector.joint-theme-bpmn .list label,:host ::ng-deep .qms-bpmn-container .joint-inspector.joint-theme-bpmn .list output{text-align:end;margin-right:4px;margin-top:16px;color:#000}:host ::ng-deep .qms-bpmn-container .joint-inspector.joint-theme-bpmn .list-item input{width:50%;float:right}:host ::ng-deep .qms-bpmn-container .joint-inspector.joint-theme-bpmn .list-item .input-wrapper input{width:70%;float:none}:host ::ng-deep .qms-bpmn-container .joint-inspector.joint-theme-bpmn input{width:55%}:host ::ng-deep .qms-bpmn-container .range-field{height:40px;margin-bottom:15px}:host ::ng-deep .qms-bpmn-container .joint-paper-scroller{overflow:hidden}:host ::ng-deep .qms-bpmn-container .breadcrumb-container .qms-breadcrumb-item{cursor:inherit;line-height:16px;font-size:.75rem;color:black(.6);font-weight:400;line-height:22px;margin:0}:host ::ng-deep .qms-bpmn-container .joint-inspector.joint-theme-bpmn .list-item .field{padding:0}:host ::ng-deep .qms-bpmn-container .joint-inspector.joint-theme-bpmn .field{padding:10px}:host ::ng-deep .qms-bpmn-container .joint-inspector .group{overflow:hidden;padding:0 0 10px}:host ::ng-deep .qms-bpmn-container .joint-widget.joint-theme-default[data-type=undo]:after{content:\"\"}:host ::ng-deep .qms-bpmn-container .joint-widget.joint-theme-default[data-type=redo]:after{content:\"\"}:host ::ng-deep .qms-bpmn-container .joint-toolbar.joint-theme-bpmn button[data-name=deleteTemplate]:before,:host ::ng-deep .qms-bpmn-container .joint-toolbar.joint-theme-bpmn button[data-name=fullscreen]:before,:host ::ng-deep .qms-bpmn-container .joint-toolbar.joint-theme-bpmn button[data-name=resetToTempTemplate]:before,:host ::ng-deep .qms-bpmn-container .joint-toolbar.joint-theme-bpmn button[data-name=saveAsTemplate]:before{width:40px;height:20px;background-color:transparent;position:absolute;top:27px;left:0}:host ::ng-deep .qms-bpmn-container .joint-toolbar.joint-theme-bpmn button[data-name=saveAsTemplate]:before{content:attr(data-before)}:host ::ng-deep .qms-bpmn-container .joint-toolbar.joint-theme-bpmn button[data-name=saveAsTemplate]:after{background-image:url(\"data:image/png;base64,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\");background-size:20px 20px;background-position:11px -3px}:host ::ng-deep .qms-bpmn-container .joint-toolbar.joint-theme-bpmn button[data-name=deleteTemplate]:before{content:attr(data-before)}:host ::ng-deep .qms-bpmn-container .joint-toolbar.joint-theme-bpmn button[data-name=deleteTemplate]:after{background-image:url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAFboAABW6AWAVsncAAAAZdEVYdFNvZnR3YXJlAHd3dy5pbmtzY2FwZS5vcmeb7jwaAAACP0lEQVQ4T5VSS2gTURS9plYNbSZJm+Anbcyk1rpJEMRFFxKEIkg/ahGkTU3tRtKP4qdZiNYPEUGLH+iiooJbdSfFnbh0VVwILuafNEnTNNpoiwlo0+ObZIq2WIkHDufd+865c2cY+hueE9kkoqhWR7K6s7rIVJCJxsaJagzLhtikOk2R9JGDSmYoVMzejCB75xp0zYSDy+mAT5RtdN7wrsU0kTXe7HhbvDCAwpNHyD2dwMLjh1iYfFDS3LMJFCbvYzncA63JPvWeyGxEiV4RVcnu2nfLQ0Fk797A/PXLmB+7tI4XS/3P7L44HITg4aaMOJHgNI3mD/sxNxpGeji0MUf6kT53BpnIIArtrRAcprMUd1vtomtbci7gQ7K3o8xg5+/zat3TjkR3G2Y6DyFx6ii+nGyDuLtWIMm1NSo7CGI9QdpeBdldA6XFCdXfAG2/G6rPBWWvA3KjGSLzCTbm27EZCvOxzE+S/I0JjT1B6e+G0ncMSrALSi+rdS2RnY1aPX0cauhE2aezt2OFYl0BpL7nMQv8N1OLSyC5dZ8Wv30VsfEoYvduVU7m16JXVkjctWVMqmPfgL2baK+cUll/ULal3iJ6LPGk1wqR5yBVQN0322SF5OE+lf4D1hz5toc11hn/xa+632MJlQboED3cm8Xm8pCNNlntLzGfyFteGtEyZhrIrHm51/rkFFtP/iOoU6/1tXPsXuEtL6YPULURXQuN5wYTPPdR4bkCCxYZV3RVeS6f8HIfNK9lwLAyEP0ClVT9dLc5lCAAAAAASUVORK5CYII=\");background-size:20px 20px;background-position:11px -1px}:host ::ng-deep .qms-bpmn-container .joint-toolbar.joint-theme-bpmn button[data-name=resetToTempTemplate]:before{content:attr(data-before)}:host ::ng-deep .qms-bpmn-container .joint-toolbar.joint-theme-bpmn button[data-name=resetToTempTemplate]:after{background-image:url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAAsQAAALEBxi1JjQAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAJ3SURBVEiJrdZLaxRmFAbgZ8aJpkPFjahJVELAhQvFKw1atBShatSioCKI4kLBe6t46+0XlFJEUmtdCFoEXWi9gIKIEo330EL/gK1acKdgA2LRxTmpE3Um0XhgmMP3nXnf79yngIlYg/M4p7eMxhLMR0OedaOMu7iAE/hLDfkDC9CFkXnWgIPowKYK8EppwLok+QVjqxHczu+9mInP8ScW5vlgzMYe/IgfsC1ti2kzD9fzob2kVKE/wnYMwUd4ip1Yhav5uY7/MAar8VN6uh+d+BXN2PcmD7aJPNSnuzfwbRJWk3J61pmkg3AaiyqNbqGQwCW0iLxMETlZjsk1SKTHXUkyLB89qufyEoamPjgJz4qQXMB36U1/SK4mRptIPDiFptQn4BCW5kt6pB2L+yCAr7A59ctohMMY/4rhB6L22/G7SFpJ31IW4S1iPTaWcB8z8CRB20SNX8QxbMGzfoDDv7iJVpwRVWZEAv2W7rX0E6yarBQVCbdLeIhlAwStlHuYlPqgYi3Ld5QCnqfeXRTxPi7CNPw9EDThn9RLRTEeToty/eY9EHyCa2JkPCgmWx2O5mX9AMDLmCYac45oVI2im+FL7B4AwdfYmPoVsU8Q3TtPtHknpr4DeGuC1uEz/Fx52YQ7Yjw0i8H1NiSt+ZvR+FAMuzGvGi0Wya5LkmvYpXZOyiIsHQk+RIz8/xdP5Xw5kawnxYieha1iyXQK9/8Wc2Zs3k/HAXyaLz8uqvFMLXeXiQHXszLr8DF2iHX5Pb4QYelp1Llizb62MqtJI46k6xu8eaGPw1ox3PZ7+YehlxT6IGrCCtEfzWKqFsT+fixCcQoPqgG8AFOaft796x2HAAAAAElFTkSuQmCC\");background-size:20px 20px;background-position:11px -1px}:host ::ng-deep .qms-bpmn-container .joint-toolbar.joint-theme-bpmn button[data-name=fullscreen]:after{background-image:url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAABLklEQVRIS+2UPUtCYRiGj2v9AEfJpYQ+0KHFxjYnJxe3IHCqH9Hu5C8J+gEtBYq0WLg52NaHoFgEnuP1vNyJgi7ve1qqCy7O+zw83M85x4/onx8hSZJ8HMd3+IYvS77iM15p1B9CjvGBZSvQm2JTY2EQtIs9ZTvSXlDBT2U7UllAzhYhZ/il0BkOUltAwD4uXg3nG7TP5BY/MPwVkXuu8DbuWI9rAbvYckOh2BLCSiod1EX6pyp/EzxalkfbU+mgt41H9DNq+UNQjaAOnqhlvQb28SJ4CSF1QkZcH9G+hlWc0XNwvtSoHwTU8V1hTzhxycD5Hg806gcBiwXfUBvXmNOYP4SsWzDEskbCWLfAoGf/+4ca84eQGtodT3C8pNU9XPnFesENZzapkT9HFM0BetrUm3SgdX8AAAAASUVORK5CYII=\")}:host ::ng-deep .qms-bpmn-container .joint-inspector.joint-theme-bpmn .toggle span i{background:#1a9af3;border-radius:5px;box-shadow:1px 1px 1px 1px rgba(0,0,0,.2)}:host ::ng-deep .qms-bpmn-container .joint-inspector.joint-theme-bpmn .toggle span i:before{text-shadow:none;right:115%;font-style:normal;font-weight:700;color:#fff;font-family:Helvetica,Arial,sans-serif;font-size:14px;position:absolute;top:8px}:host ::ng-deep .qms-bpmn-container .joint-inspector.joint-theme-bpmn .toggle span i:after{text-shadow:none;right:115%;font-style:normal;font-weight:700;color:rgba(0,0,0,.4);font-family:Helvetica,Arial,sans-serif;font-size:14px;position:absolute;top:8px}:host ::ng-deep .qms-bpmn-container .joint-selection.joint-theme-bpmn .selection-wrapper{display:block}:host ::ng-deep .qms-bpmn-container .no-result-connection{height:100%;flex-direction:column;display:flex;transform:none;align-items:center;justify-content:center}:host ::ng-deep .qms-bpmn-container .button-add{width:359px;margin:20px 20px 0}:host ::ng-deep .qms-bpmn-container .button-add .add-icon{color:var(--primary)}:host ::ng-deep .qms-bpmn-container .have-result-connection{height:100%;flex-direction:column;display:flex;transform:none}:host ::ng-deep .qms-bpmn-container .mat-expansion-panel-header:hover:not(:hover .description-edit){background-color:transparent!important}:host ::ng-deep .qms-bpmn-container .mat-expansion-panel-header .mat-content{display:block}:host ::ng-deep .qms-bpmn-container .mat-expansion-panel-header .mat-content .description-header{display:flex;align-items:center;justify-content:space-between}:host ::ng-deep .qms-bpmn-container .mat-expansion-panel-header .default-subtitle{font-family:Open Sans;font-size:16px;font-weight:600;line-height:28px;color:#0163b2}:host ::ng-deep .qms-bpmn-container .connection-content-body{display:flex;justify-content:space-between;align-items:center}:host ::ng-deep .qms-bpmn-container .connection-content-body .mat-menu-item{width:auto}:host ::ng-deep .qms-bpmn-container .edit-icon{width:40px;height:40px;line-height:40px}:host ::ng-deep .qms-bpmn-container .custom-mat-form-field{width:48px;height:48px;margin-bottom:10px}:host ::ng-deep .qms-bpmn-container .custom-mat-form-field .mat-form-field-flex{padding-left:12px}:host ::ng-deep .qms-bpmn-container .custom-mat-form-field .mat-select-arrow{display:none}:host ::ng-deep .qms-bpmn-container .custom-mat-form-field .mat-form-field-wrapper{padding-bottom:0}:host ::ng-deep .qms-bpmn-container .custom-mat-form-field .mat-form-field-wrapper .mat-form-field-flex{border-bottom:none;background-color:transparent}:host ::ng-deep .qms-bpmn-container .custom-mat-form-field .mat-form-field-wrapper .mat-form-field-flex:hover{background-color:transparent}:host ::ng-deep .qms-bpmn-container .target-wrapper{padding-left:10px;padding-bottom:8px}:host ::ng-deep .qms-bpmn-container .qms-list-item-content{margin-left:0;height:auto;margin-right:0}:host ::ng-deep .qms-bpmn-container .wrap-image.image-square{background-color:transparent;margin-right:0;margin-top:auto;margin-bottom:auto}:host ::ng-deep .qms-bpmn-container .qms-list-text{justify-content:center;border-bottom:none}:host ::ng-deep .qms-bpmn-container .mat-expansion-panel-body{padding-left:0;padding-right:0}:host ::ng-deep .qms-bpmn-container .qms-btn-icon{height:auto}:host ::ng-deep .qms-bpmn-container .connection-item-container .related-item-wrapper,:host ::ng-deep .qms-bpmn-container .content-item-container .related-item-wrapper{display:flex;border:1px solid #e0e0e0;border-radius:4px;margin-bottom:8px;align-items:center}:host ::ng-deep .qms-bpmn-container .connection-item-container .related-item-wrapper .trailing-box,:host ::ng-deep .qms-bpmn-container .content-item-container .related-item-wrapper .trailing-box{border-bottom:none!important;margin:unset;padding:unset;align-items:center}:host ::ng-deep .qms-bpmn-container .connection-item-container .related-item-wrapper .custom-anchor,:host ::ng-deep .qms-bpmn-container .content-item-container .related-item-wrapper .custom-anchor{display:flex;padding:unset}:host ::ng-deep .qms-bpmn-container .connection-item-container .related-item-wrapper .custom-anchor .custom-delete-btn,:host ::ng-deep .qms-bpmn-container .content-item-container .related-item-wrapper .custom-anchor .custom-delete-btn{margin-left:0}:host ::ng-deep .qms-bpmn-container .connection-item-container .qms-list-item.image-item .qms-list-text,:host ::ng-deep .qms-bpmn-container .content-item-container .qms-list-item.image-item .qms-list-text{border-bottom:none!important}:host ::ng-deep .qms-bpmn-container .connection-item-container .mat-expansion-panel.qms-expansion,:host ::ng-deep .qms-bpmn-container .content-item-container .mat-expansion-panel.qms-expansion{margin-left:0!important;margin-right:0!important}:host ::ng-deep .qms-bpmn-container .connection-item-container .qms-list-item,:host ::ng-deep .qms-bpmn-container .content-item-container .qms-list-item{height:unset;margin-left:0}:host ::ng-deep .qms-bpmn-container .connection-item-container .mat-expansion-panel-body{padding-left:0!important;padding-right:0!important}:host ::ng-deep .qms-bpmn-container .active-anchor{color:var(--primary)}::ng-deep .stencil-paper-drag{z-index:10000}::ng-deep .group-action-member{width:359px;max-width:359px!important;margin-left:20px!important}::ng-deep .mat-expansion-panel-header .mat-expansion-indicator:after{color:#0163b2}::ng-deep .custom-mat-form-field .mat-form-field:hover{background:none}::ng-deep .mat-menu-panel{width:auto}::ng-deep .mat-select-search-inside-mat-option .mat-select-search-input{border-bottom:1px solid rgba(0,0,0,.38);margin:.25rem;background-color:rgba(0,0,0,.04);border-radius:4px}.activity-attachment__attachment-list .custom-attachment-margin{margin:16px 0}.activity-attachment__attachment-list .qms-scrollable-attachment-list .qms-list-item.mat-2-line.image-item{height:64px}.activity-attachment__attachment-list .qms-scrollable-attachment-list .qms-list-item.mat-2-line.image-item .qms-line,.activity-attachment__attachment-list .qms-scrollable-attachment-list .qms-list-item.mat-2-line.image-item .subtitle{-webkit-line-clamp:1}.activity-attachment__attachment-list .qms-scrollable-attachment-list .qms-list-item.mat-2-line.image-item .subtitle:last-child{padding:2px}.activity-attachment__attachment-list .qms-scrollable-attachment-list .qms-list-item.mat-2-line.image-item .subtitle{font-weight:600;font-size:16px;word-break:break-word}.activity-attachment__attachment-list .qms-scrollable-attachment-list .qms-list-item.mat-2-line.image-item .subtitle .qms-btn-text:focus-visible:after,.activity-attachment__attachment-list .qms-scrollable-attachment-list .qms-list-item.mat-2-line.image-item .subtitle .qms-btn-text:focus:after{animation:none}.activity-attachment__attachment-list .qms-scrollable-attachment-list .qms-list-item.mat-2-line.image-item .qms-btn{padding:0 8px;color:#fff}.activity-attachment__attachment-list .qms-scrollable-attachment-list .qms-list-item.mat-2-line.image-item .qms-btn-icon{height:1.5rem;width:1.5rem;line-height:1.5rem}.activity-attachment__attachment-list .mat-dialog-actions{padding:8px 0 0}.activity-attachment__attachment-list .qms-list-text{height:56px;border-bottom:1px solid var(--other-divider)!important}.activity-attachment__attachment-list ::ng-deep .qms-list-header{height:56px;border-bottom:1px solid var(--other-divider)!important}.activity-attachment__attachment-list .attachment-ion{width:56px;height:56px;background-color:#fff}.qms-badges-container{margin-right:15px;display:flex}.qms-badges-container ::ng-deep .qms-badges-circle-large{border:1px double}.qms-badges-container ::ng-deep .text-color-white{color:grey!important;font-weight:600}"]
359
370
  },] }
360
371
  ];
361
372
  QMSBPMNComponent.ctorParameters = () => [
@@ -392,4 +403,4 @@ QMSBPMNComponent.propDecorators = {
392
403
  onChangeDocumentAnchorForShape: [{ type: Output }],
393
404
  onMessage: [{ type: HostListener, args: ['window:message', ['$event'],] }]
394
405
  };
395
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicW1zLWJwbW4uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcW1zLWFuZ3VsYXIvc3JjL2xpYi9jb21wb25lbnRzL3Ftcy1icG1uL3Ftcy1icG1uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFnQyxNQUFNLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ2xJLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDckQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRXpELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RCxPQUFPLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUU1RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDcEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdFQUF3RSxDQUFDO0FBQ3hHLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHNFQUFzRSxDQUFDO0FBQzdHLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFFQUFxRSxDQUFDO0FBQ3hHLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpRUFBaUUsQ0FBQztBQUNsRyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSw2RUFBNkUsQ0FBQztBQUMzSCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNkRBQTZELENBQUM7QUFDN0YsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUVBQXVFLENBQUM7QUFDOUcsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sb0ZBQW9GLENBQUM7QUFDakksT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0dBQWtHLENBQUM7QUFFekksT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDREQUE0RCxDQUFDO0FBQzNGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM5RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUN0RixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsc0NBQXNDLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUcvRyxPQUFPLEVBQUUsbUNBQW1DLEVBQXVDLE1BQU0sbURBQW1ELENBQUM7QUFDN0ksT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDL0YsT0FBTyxFQUFtQiwwQkFBMEIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ3JHLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBQ25HLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQW1CeEQsTUFBTSxPQUFPLGdCQUFnQjtJQXlFekIsWUFBb0IsU0FBa0MsRUFDMUMsV0FBd0IsRUFDeEIsTUFBaUIsRUFDakIsY0FBc0MsRUFDdEMsWUFBNkIsRUFDN0IsWUFBMEI7UUFMbEIsY0FBUyxHQUFULFNBQVMsQ0FBeUI7UUFDMUMsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQUNqQixtQkFBYyxHQUFkLGNBQWMsQ0FBd0I7UUFDdEMsaUJBQVksR0FBWixZQUFZLENBQWlCO1FBQzdCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBNUV0QyxrQkFBYSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFDM0Isa0JBQWEsR0FBa0IsSUFBSSxhQUFhLEVBQUUsQ0FBQztRQUVuRCxlQUFVLEdBQWUsSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUMxQyxZQUFPLEdBQWEsRUFBRSxDQUFDO1FBQ3ZCLFlBQU8sR0FBYSxFQUFFLENBQUM7UUFDdkIsK0JBQTBCLEdBQStCLElBQUksMEJBQTBCLEVBQUUsQ0FBQztRQUV6Rix3QkFBbUIsR0FBRyxJQUFJLFlBQVksRUFBZ0MsQ0FBQztRQUN2RSxxQkFBZ0IsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3RDLHFCQUFnQixHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFDM0MscUJBQWdCLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUN0QyxvQkFBZSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFFckMsdUJBQWtCLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUM3Qyx3QkFBbUIsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBQzlDLHdCQUFtQixHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFDOUMsZ0NBQTJCLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNqRCx1QkFBa0IsR0FBRyxJQUFJLFlBQVksRUFBZ0MsQ0FBQztRQUN0RSxtQkFBYyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDcEMsZ0NBQTJCLEdBQUcsSUFBSSxZQUFZLEVBQWtDLENBQUM7UUFDakYsa0NBQTZCLEdBQUcsSUFBSSxZQUFZLEVBQW1DLENBQUM7UUFDcEYsZ0NBQTJCLEdBQUcsSUFBSSxZQUFZLEVBQXVDLENBQUM7UUFDdEYsZ0NBQTJCLEdBQUcsSUFBSSxZQUFZLEVBQXVDLENBQUM7UUFDdEYsMkJBQXNCLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUNwRCxtQ0FBOEIsR0FBRyxJQUFJLFlBQVksRUFBMEMsQ0FBQztRQUV0RyxrQkFBYSxHQUFHLElBQUksQ0FBQztRQUtyQixtQkFBYyxHQUFtQixjQUFjLENBQUMsR0FBRyxDQUFDO1FBQ3BELGlCQUFZLEdBQWEsUUFBUSxDQUFDLEtBQUssQ0FBQztRQU14QyxxQkFBZ0IsR0FBRyxDQUFDLENBQUM7UUFJckIscUJBQWdCLEdBQUcsQ0FBQyxDQUFDO1FBQ3JCLGtCQUFhLEdBQUcsQ0FBQyxDQUFDO1FBRWxCLGVBQWU7UUFDZixnQkFBVyxHQUFHLEVBQUUsQ0FBQztRQUNqQixnQkFBVyxHQUFHLEVBQUUsQ0FBQztRQUNqQixnQkFBVyxHQUFHLEVBQUUsQ0FBQztRQUlqQixpQ0FBNEIsR0FBRyw0QkFBNEIsQ0FBQztRQUM1RCxzQkFBaUIsR0FBRyxpQkFBaUIsQ0FBQztRQUN0QyxvQkFBZSxHQUFHLGVBQWUsQ0FBQztRQUVsQyxpQkFBWSxHQUFnQixJQUFJLFdBQVcsRUFBRSxDQUFDO1FBRTlDLHVCQUFrQixHQUFnQixJQUFJLFdBQVcsRUFBRSxDQUFDO1FBRXBELGFBQVEsR0FBRyxRQUFRLENBQUM7UUFJcEIsZ0JBQVcsR0FBRyxZQUFZLENBQUM7UUFJM0IsMEJBQXFCLEdBQUcscUJBQXFCLENBQUM7UUFTMUMsY0FBYyxDQUFDLHFCQUFxQixDQUFDLFlBQVksRUFBRSxZQUFZLENBQUMsQ0FBQztRQUNqRSxjQUFjLENBQUMsb0JBQW9CLENBQUMsWUFBWSxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBQ2hFLGNBQWMsQ0FBQyxtQkFBbUIsQ0FBQyxZQUFZLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFDL0QsY0FBYyxDQUFDLGdCQUFnQixDQUFDLFlBQVksRUFBRSxZQUFZLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBR0QsU0FBUyxDQUFDLEtBQUs7UUFDWCxRQUFRLEtBQUssQ0FBQyxJQUFJLEVBQUU7WUFDaEIsS0FBSyxjQUFjLENBQUMsZ0JBQWdCO2dCQUNoQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7Z0JBQ3RCLE1BQU07WUFDVixLQUFLLGNBQWMsQ0FBQyxlQUFlO2dCQUMvQixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7Z0JBQ3RCLE1BQU07WUFDVixLQUFLLGNBQWMsQ0FBQyxvQkFBb0I7Z0JBQ3BDLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO2dCQUNoQyxNQUFNO1lBQ1YsS0FBSyxjQUFjLENBQUMsaUJBQWlCO2dCQUNqQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUMxQixNQUFNO1lBQ1YsS0FBSyxjQUFjLENBQUMsc0JBQXNCO2dCQUN0QyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUMzQixNQUFNO1lBQ1YsS0FBSyxjQUFjLENBQUMsY0FBYztnQkFDOUIsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO2dCQUNyQixNQUFNO1lBQ1Y7Z0JBQ0ksTUFBTTtTQUNiO0lBQ0wsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUM5QixJQUFJLE9BQU8sQ0FBQyxVQUFVLElBQUksT0FBTyxDQUFDLFVBQVUsQ0FBQyxZQUFZLEtBQUssT0FBTyxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUU7WUFDNUYsMkJBQTJCO1lBQzNCLElBQUksQ0FBQyxVQUFVLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUM7WUFDbEQsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUM7WUFDbkQsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsS0FBSyw0QkFBNEIsQ0FBQyxpQkFBaUIsRUFBRTtnQkFDM0YsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUM7YUFDekQ7U0FDSjtRQUVELElBQUksT0FBTyxDQUFDLE9BQU8sRUFBRTtZQUNqQixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZO2lCQUN0RCxJQUFJLENBQ0QsU0FBUyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLEVBQzlDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FDMUMsQ0FBQztTQUNUO0lBQ0wsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDO1FBQzVDLElBQUksQ0FBQyxTQUFTLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUNyRixJQUFJLEdBQUcsRUFBRTtnQkFDTCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ2pEO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZO2FBQ3RELElBQUksQ0FDRCxTQUFTLENBQUMsRUFBRSxDQUFDLEVBQ2IsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUMxQyxDQUFDO0lBRVYsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLENBQUMsYUFBYSxHQUFHLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQztRQUN6QyxJQUFJLENBQUMsV0FBVyxDQUFDLGVBQWUsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsZUFBZSxDQUFDO1FBQ3JFLE1BQU0sWUFBWSxHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUMseUJBQXlCLENBQUMsQ0FBQztRQUV4RSxJQUFJLENBQUMsWUFBWTtZQUNiLE9BQU87UUFFWCxNQUFNLGNBQWMsR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzdELE1BQU0sZ0JBQWdCLEdBQUcsUUFBUSxDQUFDLGNBQWMsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUVqRSxRQUFRLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxFQUFFO1lBQ3JDLEtBQUsscUJBQXFCLENBQUMsNkJBQTZCO2dCQUNwRCxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztnQkFDdkMsWUFBWSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO2dCQUNuQyxjQUFjLGFBQWQsY0FBYyx1QkFBZCxjQUFjLENBQUUsU0FBUyxDQUFDLE1BQU0sQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDO2dCQUN2RSxjQUFjLGFBQWQsY0FBYyx1QkFBZCxjQUFjLENBQUUsU0FBUyxDQUFDLEdBQUcsQ0FBQyxnREFBZ0QsQ0FBQyxDQUFDO2dCQUNoRixNQUFNO1lBRVYsS0FBSyxxQkFBcUIsQ0FBQyw0QkFBNEI7Z0JBQ25ELGdCQUFnQixDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDO2dCQUN4QyxZQUFZLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUM7Z0JBQ3BDLGNBQWMsYUFBZCxjQUFjLHVCQUFkLGNBQWMsQ0FBRSxTQUFTLENBQUMsTUFBTSxDQUFDLGdEQUFnRCxDQUFDLENBQUM7Z0JBQ25GLGNBQWMsYUFBZCxjQUFjLHVCQUFkLGNBQWMsQ0FBRSxTQUFTLENBQUMsR0FBRyxDQUFDLG9DQUFvQyxDQUFDLENBQUM7Z0JBQ3BFLE1BQU07WUFFVixLQUFLLHFCQUFxQixDQUFDLDhCQUE4QjtnQkFDckQsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7Z0JBQ3ZDLFlBQVksQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztnQkFDbkMsY0FBYyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDO2dCQUN0QyxNQUFNO1lBRVYsS0FBSyxxQkFBcUIsQ0FBQyw2QkFBNkI7Z0JBQ3BELGdCQUFnQixDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDO2dCQUN4QyxZQUFZLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUM7Z0JBQ3BDLGNBQWMsQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQztnQkFDdEMsTUFBTTtZQUVWO2dCQUNJLE1BQU07U0FDYjtJQUNMLENBQUM7SUFFRCxpQkFBaUI7UUFDYixJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDeEcsSUFBSSxJQUFJLENBQUMsT0FBTyxLQUFLLElBQUksQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUU7WUFDOUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztZQUN4RCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7U0FDbEM7UUFFRCxJQUFJLENBQUMscUJBQXFCLEdBQUcsS0FBSyxDQUFDO1FBQ25DLE1BQU0sYUFBYSxHQUFHLENBQUMsWUFBWSxFQUFFLG9CQUFvQixFQUFFLHdCQUF3QixFQUFFLHNCQUFzQixFQUFFLHVCQUF1QixDQUFDLENBQUM7UUFDdEksSUFBSSxhQUFhLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLFdBQUMsT0FBQSxJQUFJLENBQUMsV0FBVyxFQUFFLEtBQUksTUFBQSxNQUFNLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQywwQ0FBRSxXQUFXLEVBQUUsQ0FBQSxDQUFBLEVBQUEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssaUJBQWlCLENBQUMsSUFBSSxFQUFFO1lBQzFKLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxDQUFDLENBQUM7WUFDMUIsSUFBSSxDQUFDLHFCQUFxQixHQUFHLElBQUksQ0FBQztTQUNyQztRQUNELE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRUQsY0FBYztRQUNWLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVELFdBQVcsQ0FBQyxNQUF5QjtRQUNqQyxNQUFNLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDO1FBQ3ZELElBQUksTUFBTSxDQUFDLEdBQUcsQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ25ELElBQUksQ0FBQyxXQUFXLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3REO0lBQ0wsQ0FBQztJQUVELHdCQUF3QjtRQUNwQixJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWE7WUFDcEQsT0FBTyxxQkFBcUIsQ0FBQyw2QkFBNkIsQ0FBQztRQUUvRCxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxhQUFhO1lBQ25ELE9BQU8scUJBQXFCLENBQUMsNEJBQTRCLENBQUM7UUFFOUQsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWE7WUFDckQsT0FBTyxxQkFBcUIsQ0FBQyw4QkFBOEIsQ0FBQztRQUVoRSxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLGFBQWE7WUFDcEQsT0FBTyxxQkFBcUIsQ0FBQyw2QkFBNkIsQ0FBQztJQUNuRSxDQUFDO0lBRUQsY0FBYztRQUNWLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLHFCQUFxQixFQUFFO1lBQzNELEtBQUssRUFBRSxPQUFPO1lBQ2QsTUFBTSxFQUFFLE9BQU87WUFDZixZQUFZLEVBQUUsSUFBSTtTQUNyQixDQUFDLENBQUM7UUFDSCxjQUFjO2FBQ1QsV0FBVyxFQUFFO2FBQ2IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7YUFDbkMsU0FBUyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDbEIsSUFBSSxNQUFNLEVBQUU7Z0JBQ1IsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQzthQUN0QztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUdELGNBQWM7UUFDVixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsdUJBQXVCLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsTUFBVyxFQUFFLEVBQUU7WUFDcEosSUFBSSxNQUFNO2dCQUNOLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQTtRQUNwQyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCx3QkFBd0I7UUFDcEIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQywyQkFBMkIsRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDcEgsQ0FBQztJQUVELGNBQWMsQ0FBQyxXQUFvQjtRQUMvQixJQUFJLFdBQVcsRUFBRTtZQUNiLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQywwQkFBMEIsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxNQUFXLEVBQUUsRUFBRTtnQkFDckosSUFBSSxNQUFNLEVBQUU7b0JBQ1IsTUFBTSxDQUFDLGNBQWMsQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUM7b0JBQ2pFLElBQUksQ0FBQyxXQUFXLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUM7b0JBQ2xGLElBQUksQ0FBQyxXQUFXLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO29CQUNoRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLENBQUM7aUJBQ2hDO3FCQUNJO29CQUNELElBQUksQ0FBQyxXQUFXLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO2lCQUN6RDtZQUNMLENBQUMsQ0FBQyxDQUFDO1NBQ047YUFDSTtZQUNELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUNoQztJQUNMLENBQUM7SUFFRCxhQUFhO1FBQ1QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBRUQsaUJBQWlCLENBQUMsS0FBbUM7UUFDakQsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyQyxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ1osSUFBSSxDQUFDLGFBQWEsR0FBRyxTQUFTLENBQUM7UUFDbkMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFBO0lBQ1gsQ0FBQztJQUVELGdCQUFnQixDQUFDLEtBQW1DO1FBQ2hELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVELGtCQUFrQixDQUFDLEtBQVU7UUFDekIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQsaUJBQWlCLENBQUMsS0FBVTtRQUN4QixJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxvQkFBb0I7UUFDaEIsSUFBSSxDQUFDLDJCQUEyQixDQUFDLElBQUksRUFBRSxDQUFDO0lBQzVDLENBQUM7SUFHRCxpQkFBaUIsQ0FBQyxLQUFhLEVBQUUsT0FBZSxFQUFFLFNBQWtCLEVBQUUsWUFBcUIsS0FBSyxFQUFFLFFBQWdCLE9BQU8sRUFBRSxTQUFpQixPQUFPLEVBQUUsUUFBaUM7UUFDbEwsTUFBTSxJQUFJLEdBQTBCLElBQUkscUJBQXFCLEVBQUUsQ0FBQztRQUNoRSxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUN2QixJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztRQUMzQixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztRQUN2QixJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztRQUMzQixJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUMzRCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQywyQkFBMkIsRUFBRTtZQUM1RCxLQUFLLEVBQUUsS0FBSztZQUNaLFNBQVMsRUFBRSxNQUFNO1lBQ2pCLElBQUk7U0FDUCxDQUFDLENBQUM7UUFDSCxTQUFTO2FBQ0osV0FBVyxFQUFFO2FBQ2IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7YUFDbkMsU0FBUyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDbEIsSUFBSSxRQUFRLEVBQUU7Z0JBQ1YsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2FBQ3BCO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDWCxDQUFDO0lBRUQsWUFBWTtRQUNSLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVELGdCQUFnQjtRQUNaLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQztJQUM3QyxDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDMUIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBRUQseUJBQXlCLENBQUMsVUFBdUI7UUFDN0MsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLDhCQUE4QixFQUFFLENBQUM7UUFDOUQsZ0JBQWdCLENBQUMsbUJBQW1CLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQztRQUN4RCxnQkFBZ0IsQ0FBQyxPQUFPLEdBQUcsVUFBVSxDQUFDLEVBQUUsQ0FBQztRQUV6QyxJQUFJLENBQUMsMkJBQTJCLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDeEQsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNaLElBQUksQ0FBQyxhQUFhLEdBQUcsU0FBUyxDQUFDO1FBQ25DLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQTtJQUNYLENBQUM7SUFFRCw0QkFBNEIsQ0FBQyxLQUFZO1FBQ3JDLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQsc0NBQXNDLENBQUMsVUFBcUM7UUFFeEUsTUFBTSxXQUFXLEdBQUcsSUFBSSwrQkFBK0IsRUFBRSxDQUFDO1FBQzFELFdBQVcsQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQ3BDLFdBQVcsQ0FBQyxjQUFjLEdBQUcsNEJBQTRCLENBQUMsV0FBVyxDQUFDO1FBRXRFLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVELGdDQUFnQyxDQUFDLEtBQXNCLEVBQUUsVUFBcUM7UUFDMUYsTUFBTSxXQUFXLEdBQUcsSUFBSSwrQkFBK0IsRUFBRSxDQUFDO1FBQzFELFdBQVcsQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQ3BDLFdBQVcsQ0FBQyxjQUFjLEdBQUcsNEJBQTRCLENBQUMsTUFBTSxDQUFDO1FBQ2pFLFdBQVcsQ0FBQyxFQUFFLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUUxQixJQUFJLENBQUMsNkJBQTZCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFRCx5QkFBeUIsQ0FBQyxJQUEwQixFQUFFLGNBQTRDO1FBRTlGLE1BQU0sVUFBVSxHQUFHLElBQUksbUNBQW1DLEVBQUUsQ0FBQztRQUM3RCxVQUFVLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztRQUM5QixVQUFVLENBQUMsY0FBYyxHQUFHLGNBQWMsQ0FBQztRQUUzQyxJQUFJLENBQUMsMkJBQTJCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRCxvQkFBb0IsQ0FBQyxVQUFVO1FBQzNCLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDYixPQUFPO1NBQ1Y7UUFFRCxJQUFJLENBQUMsOEJBQThCLEdBQUcsVUFBVSxDQUFDO1FBQ2pELElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVELDRCQUE0QixDQUFDLE1BQWM7UUFFdkMsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLHNDQUFzQyxFQUFFLENBQUM7UUFDMUUsb0JBQW9CLENBQUMsUUFBUSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUM7UUFDN0Msb0JBQW9CLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUM7UUFDckQsb0JBQW9CLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyw4QkFBOEIsQ0FBQztRQUV0RSxJQUFJLENBQUMsOEJBQThCLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUVELHlCQUF5QixDQUFDLElBQWUsRUFBRSxjQUE0QztRQUVuRixNQUFNLFVBQVUsR0FBRyxJQUFJLG1DQUFtQyxFQUFFLENBQUM7UUFDN0QsVUFBVSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDNUIsVUFBVSxDQUFDLGNBQWMsR0FBRyxjQUFjLENBQUM7UUFFM0MsSUFBSSxDQUFDLDJCQUEyQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQsaUJBQWlCLENBQUMsS0FBSztRQUVuQixJQUFJLENBQUMsMkJBQTJCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFTyxhQUFhLENBQUMsS0FBYTtRQUMvQixNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDeEMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7SUFDL0YsQ0FBQzs7O1lBMWFKLFNBQVMsU0FBQztnQkFDUCxRQUFRLEVBQUUsVUFBVTtnQkFDcEIsd3RtQ0FBd0M7O2FBRTNDOzs7WUExQlEsdUJBQXVCO1lBRHZCLFdBQVc7WUFyQlgsU0FBUztZQXVCVCxzQkFBc0I7WUF0QnRCLGVBQWU7WUFFZixZQUFZOzs7NEJBa0RoQixLQUFLO3VCQUNMLEtBQUs7eUJBQ0wsS0FBSztzQkFDTCxLQUFLO3NCQUNMLEtBQUs7eUNBQ0wsS0FBSztrQ0FFTCxNQUFNOytCQUNOLE1BQU07K0JBQ04sTUFBTTsrQkFDTixNQUFNOzhCQUNOLE1BQU07aUNBRU4sTUFBTTtrQ0FDTixNQUFNO2tDQUNOLE1BQU07MENBQ04sTUFBTTtpQ0FDTixNQUFNOzZCQUNOLE1BQU07MENBQ04sTUFBTTs0Q0FDTixNQUFNOzBDQUNOLE1BQU07MENBQ04sTUFBTTtxQ0FDTixNQUFNOzZDQUNOLE1BQU07d0JBMkROLFlBQVksU0FBQyxnQkFBZ0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBIb3N0TGlzdGVuZXIsIElucHV0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IE1hdEljb25SZWdpc3RyeSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0VGFiQ2hhbmdlRXZlbnQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJzJztcbmltcG9ydCB7IERvbVNhbml0aXplciB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwLCBzdGFydFdpdGgsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEJwbW5BZGRDb25uZWN0aW9uVHlwZSB9IGZyb20gJy4uLy4uL2NvbW1vbi9lbnVtL2JwbW4tYWRkLWNvbm5lY3Rpb24tdHlwZS5lbnVtJztcbmltcG9ydCB7IERhdGFUeXBlIH0gZnJvbSAnLi4vLi4vY29tbW9uL2VudW0vZGF0YS10eXBlLmVudW0nO1xuaW1wb3J0IHsgU2hhcGVDb25uZWN0aW9uQWN0aW9uRW51bSB9IGZyb20gJy4uLy4uL2NvbW1vbi9lbnVtL3NoYXBlLWNvbm5lY3Rpb24tYWN0aW9uLmVudW0nO1xuaW1wb3J0IHsgU2hhcGVUYXJnZXRzIH0gZnJvbSAnLi4vLi4vY29tbW9uL2VudW0vc2hhcGUtdGFyZ2V0cy5lbnVtJztcbmltcG9ydCB7IEZsb3dDaGFydENvbnN0IH0gZnJvbSAnLi4vLi4vcW1zLWNrZWRpdG9yLWNvbXBvbmVudHMvY29tbW9uL2NvbnN0YW50cy9ja2VkaXRvckZsb3djaGFydC5jb25zdCc7XG5pbXBvcnQgeyBRTVNDS0VkaXRvckJwbW5FeHBhbmQgfSBmcm9tICcuLi8uLi9xbXMtY2tlZGl0b3ItY29tcG9uZW50cy9jb21tb24vZW51bXMvY2tlZGl0b3ItYnBtbi1leHBhbmQuZW51bSc7XG5pbXBvcnQgeyBGbG93Y2hhcnRWaWV3TW9kZSB9IGZyb20gJy4uLy4uL3Ftcy1ja2VkaXRvci1jb21wb25lbnRzL2NvbW1vbi9lbnVtcy9mbG93Y2hhcnQtdmlldy1tb2RlLmVudW0nO1xuaW1wb3J0IHsgUmVsYXRlZEl0ZW1UeXBlIH0gZnJvbSAnLi4vLi4vcW1zLWNrZWRpdG9yLWNvbXBvbmVudHMvY29tbW9uL2VudW1zL3JlbGF0ZWQtdG8taXRlbS10eXBlJztcbmltcG9ydCB7IFNoYXBlRmxvd0NoYXJ0Q29ubmVjdGlvblR5cGUgfSBmcm9tICcuLi8uLi9xbXMtY2tlZGl0b3ItY29tcG9uZW50cy9jb21tb24vZW51bXMvc2hhcGUtZmxvdy1jaGFydC1jb25uZWN0aW9uLXR5cGUnO1xuaW1wb3J0IHsgVGFyZ2V0VHlwZU5hbWUgfSBmcm9tICcuLi8uLi9xbXMtY2tlZGl0b3ItY29tcG9uZW50cy9jb21tb24vZW51bXMvdGFyZ2V0LXR5cGUuZW51bSc7XG5pbXBvcnQgeyBRTVNDS0VkaXRvckRpYWxvZ0RhdGEgfSBmcm9tICcuLi8uLi9xbXMtY2tlZGl0b3ItY29tcG9uZW50cy9jb21tb24vbW9kZWxzL3Ftcy1ja2VkaXRvci1kaWFsb2cubW9kZWwnO1xuaW1wb3J0IHsgUU1TQ0tFZGl0b3JDb25maXJtQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vcW1zLWNrZWRpdG9yLWNvbXBvbmVudHMvY29tbW9uL21vZHVsZS9jb25maXJtL3Ftcy1ja2VkaXRvci1jb25maXJtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTYXZlVGVtcGxhdGVDb21wb25lbnQgfSBmcm9tICcuLi8uLi9xbXMtY2tlZGl0b3ItY29tcG9uZW50cy9jb21wb25lbnRzL3Ftcy1ja2VkaXRvci1icG1uL3NhdmUtdGVtcGxhdGUvc2F2ZS10ZW1wbGF0ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29ubmVjdFR5cGUgfSBmcm9tICcuLi8uLi9xbXMtY2tlZGl0b3ItY29tcG9uZW50cy9tb2RlbHMvY29ubmVjdC10eXBlLm1vZGVsJztcbmltcG9ydCB7IFFNU0JQTU5Db25maWcgfSBmcm9tICcuLi8uLi9xbXMtY2tlZGl0b3ItY29tcG9uZW50cy9tb2RlbHMvcW1zLWJwbW4tY29uZmlnLm1vZGVsJztcbmltcG9ydCB7IEJwbW5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcW1zLWJwbW4uc2VydmljZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVMaWJyYXJ5U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RyYW5zbGF0aW9uLXJlZ2lzdHJ5LnNlcnZpY2UnO1xuaW1wb3J0IHsgUU1TSWNvblJlZ2lzdHJ5U2VydmljZSB9IGZyb20gJy4uL2FwcC1pY29uL2ljb24tcmVnaXN0cnkuc2VydmljZSc7XG5pbXBvcnQgeyBDaGFuZ2VEb2N1bWVudEFuY2hvckZvclNoYXBlRXZlbnRNb2RlbCB9IGZyb20gJy4vbW9kZWxzL2NoYW5nZS1kb2N1bWVudC1hbmNob3ItZm9yLXNoYXBlLWV2ZW50Lm1vZGVsJztcbmltcG9ydCB7IEFjdGl2aXR5UmVsYXRlZEl0ZW1zIH0gZnJvbSAnLi9tb2RlbHMvZmxvdy1jaGFydC1zaGFwZS9hY3Rpdml0eS1yZWxhdGVkLWl0ZW1zJztcbmltcG9ydCB7IFNoYXBlTGluayB9IGZyb20gJy4vbW9kZWxzL2Zsb3ctY2hhcnQtc2hhcGUvc2hhcGUtbGluayc7XG5pbXBvcnQgeyBSZW1vdmVTaGFwZUNvbm5lY3Rpb25JdGVtRXZlbnRNb2RlbCwgVXBkYXRlU2hhcGVDb25uZWN0aW9uSXRlbUV2ZW50TW9kZWwgfSBmcm9tICcuL21vZGVscy9yZW1vdmUtc2hhcGUtY29ubmVjdGlvbi1pdGVtLWV2ZW50Lm1vZGVsJztcbmltcG9ydCB7IFNoYXBlQ29ubmVjdGlvbkFjdGlvbkV2ZW50TW9kZWwgfSBmcm9tICcuL21vZGVscy9zaGFwZS1jb25uZWN0aW9uLWFjdGlvbi1ldmVudC5tb2RlbCc7XG5pbXBvcnQgeyBDb25uZWN0aW9uRmllbGQsIFNoYXBlQ29ubmVjdGlvbkRldGFpbE1vZGVsIH0gZnJvbSAnLi9tb2RlbHMvc2hhcGUtY29ubmVjdGlvbi1kZXRhaWwubW9kZWwnO1xuaW1wb3J0IHsgU2hhcGVGbG93Q2hhcnRDb25uZWN0aW9uRGV0YWlsIH0gZnJvbSAnLi9tb2RlbHMvc2hhcGUtZmxvdy1jaGFydC1jb25uZWN0aW9uLWRldGFpbC5tb2RlbCc7XG5pbXBvcnQgeyBTaGFwZU1vZGVsIH0gZnJvbSAnLi9tb2RlbHMvc2hhcGUtbW9kZWwubW9kZWwnO1xuXG5pbnRlcmZhY2UgVGFyZ2V0IHtcbiAgICB2YWx1ZTogYW55O1xuICAgIHZpZXdWYWx1ZTogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgQW5jaG9yIHtcbiAgICB2YWx1ZTogbnVtYmVyO1xuICAgIHZpZXdWYWx1ZTogc3RyaW5nO1xuICAgIGFuY2hvclZhbHVlOiBzdHJpbmc7XG59XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAncW1zLWJwbW4nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9xbXMtYnBtbi5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vcW1zLWJwbW4uY29tcG9uZW50LnNjc3MnXSxcbn0pXG5cbmV4cG9ydCBjbGFzcyBRTVNCUE1OQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIE9uQ2hhbmdlcyB7XG4gICAgTEFORzogYW55O1xuICAgIG5nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICAgIEBJbnB1dCgpIFFNU0JQTU5Db25maWc6IFFNU0JQTU5Db25maWcgPSBuZXcgUU1TQlBNTkNvbmZpZygpO1xuICAgIEBJbnB1dCgpIGVkaXRNb2RlOiBudW1iZXI7IC8vIDE6IGVkaXQsIDI6IHZpZXdcbiAgICBASW5wdXQoKSBzaGFwZU1vZGVsOiBTaGFwZU1vZGVsID0gbmV3IFNoYXBlTW9kZWwoKTtcbiAgICBASW5wdXQoKSB0YXJnZXRzOiBUYXJnZXRbXSA9IFtdO1xuICAgIEBJbnB1dCgpIGFuY2hvcnM6IEFuY2hvcltdID0gW107XG4gICAgQElucHV0KCkgc2hhcGVDb25uZWN0aW9uRGV0YWlsTW9kZWw6IFNoYXBlQ29ubmVjdGlvbkRldGFpbE1vZGVsID0gbmV3IFNoYXBlQ29ubmVjdGlvbkRldGFpbE1vZGVsKCk7XG5cbiAgICBAT3V0cHV0KCkgb25TZWxlY3RDb25uZWN0VHlwZSA9IG5ldyBFdmVudEVtaXR0ZXI8U2hhcGVGbG93Q2hhcnRDb25uZWN0aW9uVHlwZT4oKTtcbiAgICBAT3V0cHV0KCkgb25TZWxlY3RUZW1wbGF0ZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgb25TYXZlQXNUZW1wbGF0ZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSBvbkRlbGV0ZVRlbXBsYXRlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKSBvblJlc2V0VGVtcGxhdGUgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBAT3V0cHV0KCkgb25HZXRTaGFwZUFjdGl2aXR5ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQE91dHB1dCgpIG9uQ2hhbmdlU2hhcGVUYXJnZXQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAT3V0cHV0KCkgb25DaGFuZ2VTaGFwZUFuY2hvciA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSBvblJlbG9hZEFuY2hvckRvY3VtZW50Q2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIG9uRGVsZXRlQ29ubmVjdGlvbiA9IG5ldyBFdmVudEVtaXR0ZXI8U2hhcGVGbG93Q2hhcnRDb25uZWN0aW9uVHlwZT4oKTtcbiAgICBAT3V0cHV0KCkgb25PcGVuQWN0aXZpdHkgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIG9uU2VsZWN0Q29ubmVjdFR5cGVGb3JTaGFwZSA9IG5ldyBFdmVudEVtaXR0ZXI8U2hhcGVGbG93Q2hhcnRDb25uZWN0aW9uRGV0YWlsPigpO1xuICAgIEBPdXRwdXQoKSBvblNlbGVjdFNoYXBlQ29ubmVjdGlvbkFjdGlvbiA9IG5ldyBFdmVudEVtaXR0ZXI8U2hhcGVDb25uZWN0aW9uQWN0aW9uRXZlbnRNb2RlbD4oKTtcbiAgICBAT3V0cHV0KCkgb25SZW1vdmVTaGFwZUNvbm5lY3Rpb25JdGVtID0gbmV3IEV2ZW50RW1pdHRlcjxSZW1vdmVTaGFwZUNvbm5lY3Rpb25JdGVtRXZlbnRNb2RlbD4oKTtcbiAgICBAT3V0cHV0KCkgb25VcGRhdGVTaGFwZUNvbm5lY3Rpb25JdGVtID0gbmV3IEV2ZW50RW1pdHRlcjxVcGRhdGVTaGFwZUNvbm5lY3Rpb25JdGVtRXZlbnRNb2RlbD4oKTtcbiAgICBAT3V0cHV0KCkgb25HZXRBbmNob3JGb3JEb2N1bWVudCA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuICAgIEBPdXRwdXQoKSBvbkNoYW5nZURvY3VtZW50QW5jaG9yRm9yU2hhcGUgPSBuZXcgRXZlbnRFbWl0dGVyPENoYW5nZURvY3VtZW50QW5jaG9yRm9yU2hhcGVFdmVudE1vZGVsPigpO1xuXG4gICAgZXhwYW5kZWRQYW5lbCA9IHRydWU7XG5cbiAgICBjb25uZWN0aW9uVHlwZTogU2hhcGVGbG93Q2hhcnRDb25uZWN0aW9uVHlwZTtcbiAgICBzZWxlY3RlZENvbm5lY3Rpb25UeXBlOiBTaGFwZUZsb3dDaGFydENvbm5lY3Rpb25UeXBlO1xuXG4gICAgc2VsZWN0ZWRUYXJnZXQ6IFRhcmdldFR5cGVOYW1lID0gVGFyZ2V0VHlwZU5hbWUubmV3O1xuICAgIGRvY3VtZW50VHlwZTogRGF0YVR5cGUgPSBEYXRhVHlwZS5vdGhlcjtcbiAgICBkb2N1bWVudEljb25zOiBhbnk7XG5cbiAgICBpc0xvYWRpbmdEb2N1bWVudEFuY2hvcjogYm9vbGVhbjtcbiAgICBzZWxlY3RlZENlbGxWaWV3OiBhbnk7XG5cbiAgICBzZWxlY3RlZFRhYkluZGV4ID0gMDtcblxuICAgIGNvbm5lY3RUeXBlczogQ29ubmVjdFR5cGVbXTtcblxuICAgIHByZVNlbGVjdGVkVmFsdWUgPSAwO1xuICAgIHNlbGVjdGVkVmFsdWUgPSAwO1xuXG4gICAgLy8gbmV3IHZhcmlhYmxlXG4gICAgZmxvd2NoYXJ0SWQgPSAnJztcbiAgICB0YXJnZXRWYWx1ZSA9ICcnO1xuICAgIGFuY2hvclZhbHVlID0gJyc7XG4gICAgc2hhcGVJZDogc3RyaW5nO1xuICAgIHByZVNoYXBlSWQ6IHN0cmluZztcbiAgICBkaXNhYmxlZENvbm5lY3Rpb25UYWI6IGJvb2xlYW47XG4gICAgc2hhcGVGbG93Q2hhcnRDb25uZWN0aW9uVHlwZSA9IFNoYXBlRmxvd0NoYXJ0Q29ubmVjdGlvblR5cGU7XG4gICAgZmxvd2NoYXJ0Vmlld01vZGUgPSBGbG93Y2hhcnRWaWV3TW9kZTtcbiAgICByZWxhdGVkSXRlbVR5cGUgPSBSZWxhdGVkSXRlbVR5cGU7XG5cbiAgICBhbmNob3JJZEN0cmw6IEZvcm1Db250cm9sID0gbmV3IEZvcm1Db250cm9sKCk7XG5cbiAgICBhbmNob3JJZEZpbHRlckN0cmw6IEZvcm1Db250cm9sID0gbmV3IEZvcm1Db250cm9sKCk7XG5cbiAgICBpdGVtVHlwZSA9IERhdGFUeXBlO1xuXG4gICAgY3VycmVudENob3NlQW5jaG9yT2ZEb2N1bWVudElkOiBudW1iZXI7XG5cbiAgICBzaGFwZVRhcmdldCA9IFNoYXBlVGFyZ2V0cztcblxuICAgIGZpbHRlcmVkQW5jaG9yczogT2JzZXJ2YWJsZTxBbmNob3JbXT47XG5cbiAgICBicG1uQWRkQ29ubmVjdGlvblR5cGUgPSBCcG1uQWRkQ29ubmVjdGlvblR5cGU7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHRyYW5zbGF0ZTogVHJhbnNsYXRlTGlicmFyeVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgYnBtblNlcnZpY2U6IEJwbW5TZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGRpYWxvZzogTWF0RGlhbG9nLFxuICAgICAgICBwcml2YXRlIGFwcEljb25TZXJ2aWNlOiBRTVNJY29uUmVnaXN0cnlTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGljb25SZWdpc3RyeTogTWF0SWNvblJlZ2lzdHJ5LFxuICAgICAgICBwcml2YXRlIGRvbVNhbml0aXplcjogRG9tU2FuaXRpemVyXG4gICAgKSB7XG4gICAgICAgIGFwcEljb25TZXJ2aWNlLnJlZ2lzdGVyRmlsZUV4Y2VsSWNvbihpY29uUmVnaXN0cnksIGRvbVNhbml0aXplcik7XG4gICAgICAgIGFwcEljb25TZXJ2aWNlLnJlZ2lzdGVyRmlsZVdvcmRJY29uKGljb25SZWdpc3RyeSwgZG9tU2FuaXRpemVyKTtcbiAgICAgICAgYXBwSWNvblNlcnZpY2UucmVnaXN0ZXJGaWxlUGRmSWNvbihpY29uUmVnaXN0cnksIGRvbVNhbml0aXplcik7XG4gICAgICAgIGFwcEljb25TZXJ2aWNlLnJlZ2lzdGVyRmlsZUljb24oaWNvblJlZ2lzdHJ5LCBkb21TYW5pdGl6ZXIpO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzptZXNzYWdlJywgWyckZXZlbnQnXSlcbiAgICBvbk1lc3NhZ2UoZXZlbnQpIHtcbiAgICAgICAgc3dpdGNoIChldmVudC5kYXRhKSB7XG4gICAgICAgICAgICBjYXNlIEZsb3dDaGFydENvbnN0LlNBVkVfQVNfVEVNUExBVEU6XG4gICAgICAgICAgICAgICAgdGhpcy5zYXZlQXNUZW1wbGF0ZSgpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBGbG93Q2hhcnRDb25zdC5ERUxFVEVfVEVNUExBVEU6XG4gICAgICAgICAgICAgICAgdGhpcy5kZWxldGVUZW1wbGF0ZSgpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBGbG93Q2hhcnRDb25zdC5NVVNUX1NFTEVDVF9URU1QTEFURTpcbiAgICAgICAgICAgICAgICB0aGlzLm11c3RTZWxlY3RUZW1wbGF0ZU5vdGlmeSgpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBGbG93Q2hhcnRDb25zdC5DSEFOR0lOR19URU1QTEFURTpcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdFRlbXBsYXRlKHRydWUpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBGbG93Q2hhcnRDb25zdC5ORVhUX0NIQU5HSU5HX1RFTVBMQVRFOlxuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0VGVtcGxhdGUoZmFsc2UpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBGbG93Q2hhcnRDb25zdC5SRVNFVF9URU1QTEFURTpcbiAgICAgICAgICAgICAgICB0aGlzLnJlc2V0VGVtcGxhdGUoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGlmIChjaGFuZ2VzLnNoYXBlTW9kZWwgJiYgY2hhbmdlcy5zaGFwZU1vZGVsLmN1cnJlbnRWYWx1ZSAhPT0gY2hhbmdlcy5zaGFwZU1vZGVsLnByZXZpb3VzVmFsdWUpIHtcbiAgICAgICAgICAgIC8vIEhhbmRsZSB0YXJnZXQgYW5kIGFuY2hvclxuICAgICAgICAgICAgdGhpcy5zaGFwZU1vZGVsID0gY2hhbmdlcy5zaGFwZU1vZGVsLmN1cnJlbnRWYWx1ZTtcbiAgICAgICAgICAgIHRoaXMudGFyZ2V0VmFsdWUgPSB0aGlzLnNoYXBlTW9kZWwudGFyZ2V0LnRhcmdldElkO1xuICAgICAgICAgICAgaWYgKHRoaXMuc2hhcGVNb2RlbC5zaGFwZS5jb25uZWN0aW9uVHlwZUlkID09PSBTaGFwZUZsb3dDaGFydENvbm5lY3Rpb25UeXBlLkRvY3VtZW50T3JQcm9jZXNzKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5hbmNob3JWYWx1ZSA9IHRoaXMuc2hhcGVNb2RlbC5hbmNob3IuYW5jaG9yVmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoY2hhbmdlcy5hbmNob3JzKSB7XG4gICAgICAgICAgICB0aGlzLmZpbHRlcmVkQW5jaG9ycyA9IHRoaXMuYW5jaG9ySWRGaWx0ZXJDdHJsLnZhbHVlQ2hhbmdlc1xuICAgICAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgICAgICBzdGFydFdpdGgodGhpcy5hbmNob3JJZEZpbHRlckN0cmwudmFsdWUgfHwgJycpLFxuICAgICAgICAgICAgICAgICAgICBtYXAodmFsdWUgPT4gdGhpcy5maWx0ZXJBbmNob3JzKHZhbHVlKSlcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuZWRpdE1vZGUgPSB0aGlzLlFNU0JQTU5Db25maWcuZWRpdE1vZGU7XG4gICAgICAgIHRoaXMudHJhbnNsYXRlLmdldExhbmd1YWdlU3ViamVjdCQucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSkuc3Vic2NyaWJlKChyZXMpID0+IHtcbiAgICAgICAgICAgIGlmIChyZXMpIHtcbiAgICAgICAgICAgICAgICB0aGlzLkxBTkcgPSB0aGlzLnRyYW5zbGF0ZS5nZXRPYmplY3RMYW5nKHJlcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuZmlsdGVyZWRBbmNob3JzID0gdGhpcy5hbmNob3JJZEZpbHRlckN0cmwudmFsdWVDaGFuZ2VzXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBzdGFydFdpdGgoJycpLFxuICAgICAgICAgICAgICAgIG1hcCh2YWx1ZSA9PiB0aGlzLmZpbHRlckFuY2hvcnModmFsdWUpKVxuICAgICAgICAgICAgKTtcblxuICAgIH1cblxuICAgIGV4cGFuZFBhbmVsKCkge1xuICAgICAgICB0aGlzLmV4cGFuZGVkUGFuZWwgPSAhdGhpcy5leHBhbmRlZFBhbmVsO1xuICAgICAgICB0aGlzLmJwbW5TZXJ2aWNlLmlzRXhwYW5kZWRQYW5lbCA9ICF0aGlzLmJwbW5TZXJ2aWNlLmlzRXhwYW5kZWRQYW5lbDtcbiAgICAgICAgY29uc3QgcGFuZWxTdGVuY2lsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3BhbmVsLXN0ZW5jaWwtY29udGFpbmVyJyk7XG5cbiAgICAgICAgaWYgKCFwYW5lbFN0ZW5jaWwpXG4gICAgICAgICAgICByZXR1cm47XG5cbiAgICAgICAgY29uc3QgcGFwZXJDb250YWluZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncGFwZXJwYW5lbCcpO1xuICAgICAgICBjb25zdCBzdGVuY2lsQ29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3N0ZW5jaWxwYW5lbCcpO1xuXG4gICAgICAgIHN3aXRjaCAodGhpcy5jaGVja0Nhc2VCcG1uRXhwYW5kUGFuZWwoKSkge1xuICAgICAgICAgICAgY2FzZSBRTVNDS0VkaXRvckJwbW5FeHBhbmQuaXNGdWxsU2NyZWVuQW5kbm90RXhwYW5kUGFuZWw6XG4gICAgICAgICAgICAgICAgc3RlbmNpbENvbnRhaW5lci5zdHlsZS5oZWlnaHQgPSAnNTBweCc7XG4gICAgICAgICAgICAgICAgcGFuZWxTdGVuY2lsLnN0eWxlLmhlaWdodCA9ICc1MHB4JztcbiAgICAgICAgICAgICAgICBwYXBlckNvbnRhaW5lcj8uY2xhc3NMaXN0LnJlbW92ZSgnZnVsbC1zY3JlZW4tYnBtbi1lZGl0b3JfcGFwZXJwYW5lbCcpO1xuICAgICAgICAgICAgICAgIHBhcGVyQ29udGFpbmVyPy5jbGFzc0xpc3QuYWRkKCdmdWxsLXNjcmVlbi1icG1uLWVkaXRvcl9wYXBlcnBhbmVsLWV4cGFuZHBhbmVsJyk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgIGNhc2UgUU1TQ0tFZGl0b3JCcG1uRXhwYW5kLmlzRnVsbFNjcmVlbkFuZGlzRXhwYW5kUGFuZWw6XG4gICAgICAgICAgICAgICAgc3RlbmNpbENvbnRhaW5lci5zdHlsZS5oZWlnaHQgPSAnMTUwcHgnO1xuICAgICAgICAgICAgICAgIHBhbmVsU3RlbmNpbC5zdHlsZS5oZWlnaHQgPSAnMTUwcHgnO1xuICAgICAgICAgICAgICAgIHBhcGVyQ29udGFpbmVyPy5jbGFzc0xpc3QucmVtb3ZlKCdmdWxsLXNjcmVlbi1icG1uLWVkaXRvcl9wYXBlcnBhbmVsLWV4cGFuZHBhbmVsJyk7XG4gICAgICAgICAgICAgICAgcGFwZXJDb250YWluZXI/LmNsYXNzTGlzdC5hZGQoJ2Z1bGwtc2NyZWVuLWJwbW4tZWRpdG9yX3BhcGVycGFuZWwnKTtcbiAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgY2FzZSBRTVNDS0VkaXRvckJwbW5FeHBhbmQubm90RnVsbFNjcmVlbkFuZG5vdEV4cGFuZFBhbmVsOlxuICAgICAgICAgICAgICAgIHN0ZW5jaWxDb250YWluZXIuc3R5bGUuaGVpZ2h0ID0gJzUwcHgnO1xuICAgICAgICAgICAgICAgIHBhbmVsU3RlbmNpbC5zdHlsZS5oZWlnaHQgPSAnNTBweCc7XG4gICAgICAgICAgICAgICAgcGFwZXJDb250YWluZXIuc3R5bGUuaGVpZ2h0ID0gJzUwMHB4JztcbiAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgY2FzZSBRTVNDS0VkaXRvckJwbW5FeHBhbmQubm90RnVsbFNjcmVlbkFuZGlzRXhwYW5kUGFuZWw6XG4gICAgICAgICAgICAgICAgc3RlbmNpbENvbnRhaW5lci5zdHlsZS5oZWlnaHQgPSAnMTUwcHgnO1xuICAgICAgICAgICAgICAgIHBhbmVsU3RlbmNpbC5zdHlsZS5oZWlnaHQgPSAnMTUwcHgnO1xuICAgICAgICAgICAgICAgIHBhcGVyQ29udGFpbmVyLnN0eWxlLmhlaWdodCA9ICc0MDBweCc7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpc1Nob3dDb25uZWN0VHlwZSgpIHtcbiAgICAgICAgdGhpcy5zaGFwZUlkID0gd2luZG93W0Zsb3dDaGFydENvbnN0LlNFTEVDVEVEX1NIQVBFX0lEXSA/IHdpbmRvd1tGbG93Q2hhcnRDb25zdC5TRUxFQ1RFRF9TSEFQRV9JRF0gOiAnJztcbiAgICAgICAgaWYgKHRoaXMuc2hhcGVJZCAhPT0gdGhpcy5wcmVTaGFwZUlkICYmIHRoaXMuZWRpdE1vZGUgPT09IEZsb3djaGFydFZpZXdNb2RlLkVkaXQpIHtcbiAgICAgICAgICAgIHRoaXMub25HZXRTaGFwZUFjdGl2aXR5LmVtaXQoeyBzaGFwZUlkOiB0aGlzLnNoYXBlSWQgfSk7XG4gICAgICAgICAgICB0aGlzLnByZVNoYXBlSWQgPSB0aGlzLnNoYXBlSWQ7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmRpc2FibGVkQ29ubmVjdGlvblRhYiA9IGZhbHNlO1xuICAgICAgICBjb25zdCBleGNsdWRlZFR5cGVzID0gWydicG1uMi5GbG93JywgJ2JwbW4yLkhlYWRlcmVkUG9vbCcsICdicG1uMi5Db252ZXJzYXRpb25MaW5rJywgJ2JwbW4yLkFubm90YXRpb25MaW5rJywgJ2JwbW4yLkRhdGFBc3NvY2lhdGlvbiddO1xuICAgICAgICBpZiAoZXhjbHVkZWRUeXBlcy5maW5kSW5kZXgodHlwZSA9PiB0eXBlLnRvTG93ZXJDYXNlKCkgPT0gd2luZG93W0Zsb3dDaGFydENvbnN0LlNIQVBFX1RZUEVdPy50b0xvd2VyQ2FzZSgpKSA+IC0xICYmIHRoaXMuZWRpdE1vZGUgPT09IEZsb3djaGFydFZpZXdNb2RlLkVkaXQpIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRUYWJJbmRleCA9IDA7XG4gICAgICAgICAgICB0aGlzLmRpc2FibGVkQ29ubmVjdGlvblRhYiA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuICEhd2luZG93W0Zsb3dDaGFydENvbnN0LklTX1NIT1dfQ09OTkVDVFlQRV07XG4gICAgfVxuXG4gICAgaXNTZWxlY3RlZFZpZXcoKSB7XG4gICAgICAgIHJldHVybiAhIXdpbmRvd1tGbG93Q2hhcnRDb25zdC5NWV9DRUxMX1ZJRVddO1xuICAgIH1cblxuICAgIG9uVGFiQ2hhbmdlKCRldmVudDogTWF0VGFiQ2hhbmdlRXZlbnQpIHtcbiAgICAgICAgd2luZG93W0Zsb3dDaGFydENvbnN0LlRBQl9OQU1FXSA9ICRldmVudC50YWIudGV4dExhYmVsO1xuICAgICAgICBpZiAoJGV2ZW50LnRhYi50ZXh0TGFiZWwgPT0gdGhpcy5MQU5HLkJQTU4uUFJPUEVSVElFUykge1xuICAgICAgICAgICAgdGhpcy5icG1uU2VydmljZS5vcGVuU2hhcGVGdW5jdGlvbmFsaXR5KHRoaXMuTEFORyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjaGVja0Nhc2VCcG1uRXhwYW5kUGFuZWwoKSB7XG4gICAgICAgIGlmICh0aGlzLmJwbW5TZXJ2aWNlLmlzRnVsbFNjcmVlbiAmJiAhdGhpcy5leHBhbmRlZFBhbmVsKVxuICAgICAgICAgICAgcmV0dXJuIFFNU0NLRWRpdG9yQnBtbkV4cGFuZC5pc0Z1bGxTY3JlZW5BbmRub3RFeHBhbmRQYW5lbDtcblxuICAgICAgICBpZiAodGhpcy5icG1uU2VydmljZS5pc0Z1bGxTY3JlZW4gJiYgdGhpcy5leHBhbmRlZFBhbmVsKVxuICAgICAgICAgICAgcmV0dXJuIFFNU0NLRWRpdG9yQnBtbkV4cGFuZC5pc0Z1bGxTY3JlZW5BbmRpc0V4cGFuZFBhbmVsO1xuXG4gICAgICAgIGlmICghdGhpcy5icG1uU2VydmljZS5pc0Z1bGxTY3JlZW4gJiYgIXRoaXMuZXhwYW5kZWRQYW5lbClcbiAgICAgICAgICAgIHJldHVybiBRTVNDS0VkaXRvckJwbW5FeHBhbmQubm90RnVsbFNjcmVlbkFuZG5vdEV4cGFuZFBhbmVsO1xuXG4gICAgICAgIGlmICghdGhpcy5icG1uU2VydmljZS5pc0Z1bGxTY3JlZW4gJiYgdGhpcy5leHBhbmRlZFBhbmVsKVxuICAgICAgICAgICAgcmV0dXJuIFFNU0NLRWRpdG9yQnBtbkV4cGFuZC5ub3RGdWxsU2NyZWVuQW5kaXNFeHBhbmRQYW5lbDtcbiAgICB9XG5cbiAgICBzYXZlQXNUZW1wbGF0ZSgpIHtcbiAgICAgICAgY29uc3QgZGlhbG9nVGVtcGxhdGUgPSB0aGlzLmRpYWxvZy5vcGVuKFNhdmVUZW1wbGF0ZUNvbXBvbmVudCwge1xuICAgICAgICAgICAgd2lkdGg6ICc0NTBweCcsXG4gICAgICAgICAgICBoZWlnaHQ6ICcyMjBweCcsXG4gICAgICAgICAgICBkaXNhYmxlQ2xvc2U6IHRydWVcbiAgICAgICAgfSk7XG4gICAgICAgIGRpYWxvZ1RlbXBsYXRlXG4gICAgICAgICAgICAuYWZ0ZXJDbG9zZWQoKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMub25TYXZlQXNUZW1wbGF0ZS5lbWl0KHJlc3VsdCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG5cbiAgICBkZWxldGVUZW1wbGF0ZSgpIHtcbiAgICAgICAgdGhpcy5zaG93Q29uZmlybURpYWxvZyh0aGlzLkxBTkcuQlBNTi5ERUxFVEVfVEVNUExBVEUsIHRoaXMuTEFORy5RTVNDS0VESVRPUl9NRVNTQUdFLkNPTkZJUk1fREVMRVRFX1RFTVBMQVRFLCBmYWxzZSwgZmFsc2UsIG51bGwsIG51bGwsIChyZXN1bHQ6IGFueSkgPT4ge1xuICAgICAgICAgICAgaWYgKHJlc3VsdClcbiAgICAgICAgICAgICAgICB0aGlzLm9uRGVsZXRlVGVtcGxhdGUuZW1pdCgpXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG11c3RTZWxlY3RUZW1wbGF0ZU5vdGlmeSgpIHtcbiAgICAgICAgdGhpcy5zaG93Q29uZmlybURpYWxvZyh0aGlzLkxBTkcuQlBNTi5TRUxFQ1RfVEVNUExBVEUsIHRoaXMuTEFORy5CUE1OLlNFTEVDVF9URU1QTEFURV9JTkZPUk1BVElPTiwgdHJ1ZSwgZmFsc2UpO1xuICAgIH1cblxuICAgIHNlbGVjdFRlbXBsYXRlKG5lZWRDb25maXJtOiBib29sZWFuKSB7XG4gICAgICAgIGlmIChuZWVkQ29uZmlybSkge1xuICAgICAgICAgICAgdGhpcy5zaG93Q29uZmlybURpYWxvZyh0aGlzLkxBTkcuUU1TQ0tFRElUT1IuQ0hBTkdFX1RFTVBMQVRFLCB0aGlzLlFNU0JQTU5Db25maWcuY2hhbmdlVGVtcGxhdGVQb3B1cENvbnRlbnQsIGZhbHNlLCB0cnVlLCAnNzAwcHgnLCBudWxsLCAocmVzdWx0OiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgICAgICAgICAgICAgIHdpbmRvd1tGbG93Q2hhcnRDb25zdC5JU19OT1RfU0hPV19BR0FJTl0gPSByZXN1bHQuaXNOb3RTaG93QWdhaW47XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYnBtblNlcnZpY2Uuc2V0SXRlbUZsb3dDaGFydElkKHdpbmRvd1tGbG93Q2hhcnRDb25zdC5TRUxFQ1RFRF9GTE9XQ0hBUlRfSURdKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mbG93Y2hhcnRJZCA9IHdpbmRvd1tGbG93Q2hhcnRDb25zdC5TRUxFQ1RFRF9GTE9XQ0hBUlRfSURdO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm9uU2VsZWN0VGVtcGxhdGUuZW1pdCgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5icG1uU2VydmljZS5zZXRJdGVtRmxvd0NoYXJ0SWQodGhpcy5mbG93Y2hhcnRJZCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLm9uU2VsZWN0VGVtcGxhdGUuZW1pdCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmVzZXRUZW1wbGF0ZSgpIHtcbiAgICAgICAgdGhpcy5vblJlc2V0VGVtcGxhdGUuZW1pdCgpO1xuICAgIH1cblxuICAgIHNlbGVjdENvbm5lY3RUeXBlKHZhbHVlOiBTaGFwZUZsb3dDaGFydENvbm5lY3Rpb25UeXBlKSB7XG4gICAgICAgIHRoaXMub25TZWxlY3RDb25uZWN0VHlwZS5lbWl0KHZhbHVlKTtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWUgPSB1bmRlZmluZWQ7XG4gICAgICAgIH0sIDMwMClcbiAgICB9XG5cbiAgICBkZWxldGVDb25uZWN0aW9uKHZhbHVlOiBTaGFwZUZsb3dDaGFydENvbm5lY3Rpb25UeXBlKSB7XG4gICAgICAgIHRoaXMub25EZWxldGVDb25uZWN0aW9uLmVtaXQodmFsdWUpO1xuICAgIH1cblxuICAgIGNoYW5nZVNoYXBlVGFydGdldChldmVudDogYW55KSB7XG4gICAgICAgIHRoaXMub25DaGFuZ2VTaGFwZVRhcmdldC5lbWl0KGV2ZW50KTtcbiAgICB9XG5cbiAgICBjaGFuZ2VTaGFwZUFuY2hvcihldmVudDogYW55KSB7XG4gICAgICAgIHRoaXMub25DaGFuZ2VTaGFwZUFuY2hvci5lbWl0KGV2ZW50KTtcbiAgICB9XG5cbiAgICByZWxvYWRBbmNob3JEb2N1bWVudCgpIHtcbiAgICAgICAgdGhpcy5vblJlbG9hZEFuY2hvckRvY3VtZW50Q2xpY2suZW1pdCgpO1xuICAgIH1cblxuXG4gICAgc2hvd0NvbmZpcm1EaWFsb2codGl0bGU6IHN0cmluZywgY29udGVudDogc3RyaW5nLCBpc01lc3NhZ2U6IGJvb2xlYW4sIGlzQWR2YW5jZTogYm9vbGVhbiA9IGZhbHNlLCB3aWR0aDogc3RyaW5nID0gJzUwMHB4JywgaGVpZ2h0OiBzdHJpbmcgPSAnMTc1cHgnLCBjYWxsYmFjaz86IChyZXN1bHQ/OiBhbnkpID0+IHZvaWQpIHtcbiAgICAgICAgY29uc3QgZGF0YTogUU1TQ0tFZGl0b3JEaWFsb2dEYXRhID0gbmV3IFFNU0NLRWRpdG9yRGlhbG9nRGF0YSgpO1xuICAgICAgICBkYXRhLnRpdGxlID0gdGl0bGU7XG4gICAgICAgIGRhdGEuY29udGVudCA9IGNvbnRlbnQ7XG4gICAgICAgIGRhdGEuaXNNZXNzYWdlID0gaXNNZXNzYWdlO1xuICAgICAgICBkYXRhLmlzQ2xvc2VCdG4gPSB0cnVlO1xuICAgICAgICBkYXRhLmlzQWR2YW5jZSA9IGlzQWR2YW5jZTtcbiAgICAgICAgZGF0YS5jaGVja1RleHQgPSBpc0FkdmFuY2UgPyB0aGlzLkxBTkcuTk9UX1NIT1dfQUdBSU4gOiAnJztcbiAgICAgICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihRTVNDS0VkaXRvckNvbmZpcm1Db21wb25lbnQsIHtcbiAgICAgICAgICAgIHdpZHRoOiB3aWR0aCxcbiAgICAgICAgICAgIG1pbkhlaWdodDogaGVpZ2h0LFxuICAgICAgICAgICAgZGF0YSxcbiAgICAgICAgfSk7XG4gICAgICAgIGRpYWxvZ1JlZlxuICAgICAgICAgICAgLmFmdGVyQ2xvc2VkKClcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGNhbGxiYWNrKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKHJlc3VsdCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgb3BlbkFjdGl2aXR5KCkge1xuICAgICAgICB0aGlzLm9uT3BlbkFjdGl2aXR5LmVtaXQoKTtcbiAgICB9XG5cbiAgICBpc0Rpc2FibGVUb29sYmFyKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5icG1uU2VydmljZS5pc0Rpc2FibGVUb29sYmFyO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLm5nVW5zdWJzY3JpYmUubmV4dCgpO1xuICAgICAgICB0aGlzLm5nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICBzZWxlY3RDb25uZWN0VHlwZUZvclNoYXBlKHR5cGVEZXRhaWw6IENvbm5lY3RUeXBlKSB7XG4gICAgICAgIGNvbnN0IGNvbm5lY3Rpb25EZXRhaWwgPSBuZXcgU2hhcGVGbG93Q2hhcnRDb25uZWN0aW9uRGV0YWlsKCk7XG4gICAgICAgIGNvbm5lY3Rpb25EZXRhaWwuc2hhcGVDb25uZWN0aW9uVHlwZSA9IHR5cGVEZXRhaWwudmFsdWU7XG4gICAgICAgIGNvbm5lY3Rpb25EZXRhaWwuZmllbGRJZCA9IHR5cGVEZXRhaWwuaWQ7XG5cbiAgICAgICAgdGhpcy5vblNlbGVjdENvbm5lY3RUeXBlRm9yU2hhcGUuZW1pdChjb25uZWN0aW9uRGV0YWlsKTtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWUgPSB1bmRlZmluZWQ7XG4gICAgICAgIH0sIDMwMClcbiAgICB9XG5cbiAgICBvcGVuQ29ubmVjdGlvbkFjdGlvbkRyb3Bkb3duKGV2ZW50OiBFdmVudCkge1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9XG5cbiAgICBzZWxlY3RTaGFwZURlc2NyaXB0aW9uQ29ubmVjdGlvbkFjdGlvbihhY3Rpb25UeXBlOiBTaGFwZUNvbm5lY3Rpb25BY3Rpb25FbnVtKSB7XG5cbiAgICAgICAgY29uc3QgYWN0aW9uTW9kZWwgPSBuZXcgU2hhcGVDb25uZWN0aW9uQWN0aW9uRXZlbnRNb2RlbCgpO1xuICAgICAgICBhY3Rpb25Nb2RlbC5hY3Rpb25UeXBlID0gYWN0aW9uVHlwZTtcbiAgICAgICAgYWN0aW9uTW9kZWwuY29ubmVjdGlvblR5cGUgPSBTaGFwZUZsb3dDaGFydENvbm5lY3Rpb25UeXBlLkRlc2NyaXB0aW9uO1xuXG4gICAgICAgIHRoaXMub25TZWxlY3RTaGFwZUNvbm5lY3Rpb25BY3Rpb24uZW1pdChhY3Rpb25Nb2RlbCk7XG4gICAgfVxuXG4gICAgc2VsZWN0U2hhcGVGaWVsZENvbm5lY3Rpb25BY3Rpb24oZmllbGQ6IENvbm5lY3Rpb25GaWVsZCwgYWN0aW9uVHlwZTogU2hhcGVDb25uZWN0aW9uQWN0aW9uRW51bSkge1xuICAgICAgICBjb25zdCBhY3Rpb25Nb2RlbCA9IG5ldyBTaGFwZUNvbm5lY3Rpb25BY3Rpb25FdmVudE1vZGVsKCk7XG4gICAgICAgIGFjdGlvbk1vZGVsLmFjdGlvblR5cGUgPSBhY3Rpb25UeXBlO1xuICAgICAgICBhY3Rpb25Nb2RlbC5jb25uZWN0aW9uVHlwZSA9IFNoYXBlRmxvd0NoYXJ0Q29ubmVjdGlvblR5cGUuRmllbGRzO1xuICAgICAgICBhY3Rpb25Nb2RlbC5pZCA9IGZpZWxkLmlkO1xuXG4gICAgICAgIHRoaXMub25TZWxlY3RTaGFwZUNvbm5lY3Rpb25BY3Rpb24uZW1pdChhY3Rpb25Nb2RlbCk7XG4gICAgfVxuXG4gICAgcmVtb3ZlUmVsYXRlZEl0ZW1Gb3JTaGFwZShpdGVtOiBBY3Rpdml0eVJlbGF0ZWRJdGVtcywgY29ubmVjdGlvblR5cGU6IFNoYXBlRmxvd0NoYXJ0Q29ubmVjdGlvblR5cGUpIHtcblxuICAgICAgICBjb25zdCByZW1vdmVJdGVtID0gbmV3IFJlbW92ZVNoYXBlQ29ubmVjdGlvbkl0ZW1FdmVudE1vZGVsKCk7XG4gICAgICAgIHJlbW92ZUl0ZW0ucmVsYXRlZEl0ZW0gPSBpdGVtO1xuICAgICAgICByZW1vdmVJdGVtLmNvbm5lY3Rpb25UeXBlID0gY29ubmVjdGlvblR5cGU7XG5cbiAgICAgICAgdGhpcy5vblJlbW92ZVNoYXBlQ29ubmVjdGlvbkl0ZW0uZW1pdChyZW1vdmVJdGVtKTtcbiAgICB9XG5cbiAgICBnZXRBbmNob3JGb3JEb2N1bWVudChkb2N1bWVudElkKSB7XG4gICAgICAgIGlmICghZG9jdW1lbnRJZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jdXJyZW50Q2hvc2VBbmNob3JPZkRvY3VtZW50SWQgPSBkb2N1bWVudElkO1xuICAgICAgICB0aGlzLm9uR2V0QW5jaG9yRm9yRG9jdW1lbnQuZW1pdChkb2N1bWVudElkKTtcbiAgICB9XG5cbiAgICBjaGFuZ2VEb2N1bWVudEFuY2hvckZvclNoYXBlKGFuY2hvcjogQW5jaG9yKSB7XG5cbiAgICAgICAgY29uc3QgY2hhbmdlRG9jdW1lbnRBbmNob3IgPSBuZXcgQ2hhbmdlRG9jdW1lbnRBbmNob3JGb3JTaGFwZUV2ZW50TW9kZWwoKTtcbiAgICAgICAgY2hhbmdlRG9jdW1lbnRBbmNob3IuYW5jaG9ySWQgPSBhbmNob3IudmFsdWU7XG4gICAgICAgIGNoYW5nZURvY3VtZW50QW5jaG9yLmFuY2hvck5hbWUgPSBhbmNob3IuYW5jaG9yVmFsdWU7XG4gICAgICAgIGNoYW5nZURvY3VtZW50QW5jaG9yLmRvY3VtZW50SWQgPSB0aGlzLmN1cnJlbnRDaG9zZUFuY2hvck9mRG9jdW1lbnRJZDtcblxuICAgICAgICB0aGlzLm9uQ2hhbmdlRG9jdW1lbnRBbmNob3JGb3JTaGFwZS5lbWl0KGNoYW5nZURvY3VtZW50QW5jaG9yKTtcbiAgICB9XG5cbiAgICByZW1vdmVSZWxhdGVkTGlua0ZvclNoYXBlKGl0ZW06IFNoYXBlTGluaywgY29ubmVjdGlvblR5cGU6IFNoYXBlRmxvd0NoYXJ0Q29ubmVjdGlvblR5cGUpIHtcblxuICAgICAgICBjb25zdCByZW1vdmVJdGVtID0gbmV3IFJlbW92ZVNoYXBlQ29ubmVjdGlvbkl0ZW1FdmVudE1vZGVsKCk7XG4gICAgICAgIHJlbW92ZUl0ZW0uc2hhcGVMaW5rID0gaXRlbTtcbiAgICAgICAgcmVtb3ZlSXRlbS5jb25uZWN0aW9uVHlwZSA9IGNvbm5lY3Rpb25UeXBlO1xuXG4gICAgICAgIHRoaXMub25SZW1vdmVTaGFwZUNvbm5lY3Rpb25JdGVtLmVtaXQocmVtb3ZlSXRlbSk7XG4gICAgfVxuXG4gICAgb25VcGRhdGVEYXRhT3RoZXIoZXZlbnQpIHtcblxuICAgICAgICB0aGlzLm9uVXBkYXRlU2hhcGVDb25uZWN0aW9uSXRlbS5lbWl0KGV2ZW50KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGZpbHRlckFuY2hvcnModmFsdWU6IHN0cmluZyk6IGFueVtdIHtcbiAgICAgICAgY29uc3QgZmlsdGVyVmFsdWUgPSB2YWx1ZS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICByZXR1cm4gdGhpcy5hbmNob3JzLmZpbHRlcihhbmNob3IgPT4gYW5jaG9yLnZpZXdWYWx1ZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGZpbHRlclZhbHVlKSk7XG4gICAgfVxuXG59XG5cbiJdfQ==
406
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicW1zLWJwbW4uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcW1zLWFuZ3VsYXIvc3JjL2xpYi9jb21wb25lbnRzL3Ftcy1icG1uL3Ftcy1icG1uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFnQyxNQUFNLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ2xJLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDckQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRXpELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RCxPQUFPLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUU1RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDcEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdFQUF3RSxDQUFDO0FBQ3hHLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHNFQUFzRSxDQUFDO0FBQzdHLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFFQUFxRSxDQUFDO0FBQ3hHLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpRUFBaUUsQ0FBQztBQUNsRyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSw2RUFBNkUsQ0FBQztBQUMz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QVk7Ozs0QkFrRGhCLEtBQUs7dUJBQ0wsS0FBSzt5QkFDTCxLQUFLO3NCQUNMLEtBQUs7c0JBQ0wsS0FBSzt5Q0FDTCxLQUFLO2tDQUVMLE1BQU07K0JBQ04sTUFBTTsrQkFDTixNQUFNOytCQUNOLE1BQU07OEJBQ04sTUFBTTtpQ0FFTixNQUFNO2tDQUNOLE1BQU07a0NBQ04sTUFBTTswQ0FDTixNQUFNO2lDQUNOLE1BQU07NkJBQ04sTUFBTTswQ0FDTixNQUFNOzRDQUNOLE1BQU07MENBQ04sTUFBTTswQ0FDTixNQUFNO3FDQUNOLE1BQU07NkNBQ04sTUFBTTt3QkE0RE4sWUFBWSxTQUFDLGdCQUFnQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgTWF0SWNvblJlZ2lzdHJ5IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBNYXRUYWJDaGFuZ2VFdmVudCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYnMnO1xuaW1wb3J0IHsgRG9tU2FuaXRpemVyIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAsIHN0YXJ0V2l0aCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQnBtbkFkZENvbm5lY3Rpb25UeXBlIH0gZnJvbSAnLi4vLi4vY29tbW9uL2VudW0vYnBtbi1hZGQtY29ubmVjdGlvbi10eXBlLmVudW0nO1xuaW1wb3J0IHsgRGF0YVR5cGUgfSBmcm9tICcuLi8uLi9jb21tb24vZW51bS9kYXRhLXR5cGUuZW51bSc7XG5pbXBvcnQgeyBTaGFwZUNvbm5lY3Rpb25BY3Rpb25FbnVtIH0gZnJvbSAnLi4vLi4vY29tbW9uL2VudW0vc2hhcGUtY29ubmVjdGlvbi1hY3Rpb24uZW51bSc7XG5pbXBvcnQgeyBTaGFwZVRhcmdldHMgfSBmcm9tICcuLi8uLi9jb21tb24vZW51bS9zaGFwZS10YXJnZXRzLmVudW0nO1xuaW1wb3J0IHsgRmxvd0NoYXJ0Q29uc3QgfSBmcm9tICcuLi8uLi9xbXMtY2tlZGl0b3ItY29tcG9uZW50cy9jb21tb24vY29uc3RhbnRzL2NrZWRpdG9yRmxvd2NoYXJ0LmNvbnN0JztcbmltcG9ydCB7IFFNU0NLRWRpdG9yQnBtbkV4cGFuZCB9IGZyb20gJy4uLy4uL3Ftcy1ja2VkaXRvci1jb21wb25lbnRzL2NvbW1vbi9lbnVtcy9ja2VkaXRvci1icG1uLWV4cGFuZC5lbnVtJztcbmltcG9ydCB7IEZsb3djaGFydFZpZXdNb2RlIH0gZnJvbSAnLi4vLi4vcW1zLWNrZWRpdG9yLWNvbXBvbmVudHMvY29tbW9uL2VudW1zL2Zsb3djaGFydC12aWV3LW1vZGUuZW51bSc7XG5pbXBvcnQgeyBSZWxhdGVkSXRlbVR5cGUgfSBmcm9tICcuLi8uLi9xbXMtY2tlZGl0b3ItY29tcG9uZW50cy9jb21tb24vZW51bXMvcmVsYXRlZC10by1pdGVtLXR5cGUnO1xuaW1wb3J0IHsgU2hhcGVGbG93Q2hhcnRDb25uZWN0aW9uVHlwZSB9IGZyb20gJy4uLy4uL3Ftcy1ja2VkaXRvci1jb21wb25lbnRzL2NvbW1vbi9lbnVtcy9zaGFwZS1mbG93LWNoYXJ0LWNvbm5lY3Rpb24tdHlwZSc7XG5pbXBvcnQgeyBUYXJnZXRUeXBlTmFtZSB9IGZyb20gJy4uLy4uL3Ftcy1ja2VkaXRvci1jb21wb25lbnRzL2NvbW1vbi9lbnVtcy90YXJnZXQtdHlwZS5lbnVtJztcbmltcG9ydCB7IFFNU0NLRWRpdG9yRGlhbG9nRGF0YSB9IGZyb20gJy4uLy4uL3Ftcy1ja2VkaXRvci1jb21wb25lbnRzL2NvbW1vbi9tb2RlbHMvcW1zLWNrZWRpdG9yLWRpYWxvZy5tb2RlbCc7XG5pbXBvcnQgeyBRTVNDS0VkaXRvckNvbmZpcm1Db21wb25lbnQgfSBmcm9tICcuLi8uLi9xbXMtY2tlZGl0b3ItY29tcG9uZW50cy9jb21tb24vbW9kdWxlL2NvbmZpcm0vcW1zLWNrZWRpdG9yLWNvbmZpcm0uY29tcG9uZW50JztcbmltcG9ydCB7IFNhdmVUZW1wbGF0ZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL3Ftcy1ja2VkaXRvci1jb21wb25lbnRzL2NvbXBvbmVudHMvcW1zLWNrZWRpdG9yLWJwbW4vc2F2ZS10ZW1wbGF0ZS9zYXZlLXRlbXBsYXRlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb25uZWN0VHlwZSB9IGZyb20gJy4uLy4uL3Ftcy1ja2VkaXRvci1jb21wb25lbnRzL21vZGVscy9jb25uZWN0LXR5cGUubW9kZWwnO1xuaW1wb3J0IHsgUU1TQlBNTkNvbmZpZyB9IGZyb20gJy4uLy4uL3Ftcy1ja2VkaXRvci1jb21wb25lbnRzL21vZGVscy9xbXMtYnBtbi1jb25maWcubW9kZWwnO1xuaW1wb3J0IHsgQnBtblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9xbXMtYnBtbi5zZXJ2aWNlJztcbmltcG9ydCB7IFRyYW5zbGF0ZUxpYnJhcnlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdHJhbnNsYXRpb24tcmVnaXN0cnkuc2VydmljZSc7XG5pbXBvcnQgeyBRTVNJY29uUmVnaXN0cnlTZXJ2aWNlIH0gZnJvbSAnLi4vYXBwLWljb24vaWNvbi1yZWdpc3RyeS5zZXJ2aWNlJztcbmltcG9ydCB7IENoYW5nZURvY3VtZW50QW5jaG9yRm9yU2hhcGVFdmVudE1vZGVsIH0gZnJvbSAnLi9tb2RlbHMvY2hhbmdlLWRvY3VtZW50LWFuY2hvci1mb3Itc2hhcGUtZXZlbnQubW9kZWwnO1xuaW1wb3J0IHsgQWN0aXZpdHlSZWxhdGVkSXRlbXMgfSBmcm9tICcuL21vZGVscy9mbG93LWNoYXJ0LXNoYXBlL2FjdGl2aXR5LXJlbGF0ZWQtaXRlbXMnO1xuaW1wb3J0IHsgU2hhcGVMaW5rIH0gZnJvbSAnLi9tb2RlbHMvZmxvdy1jaGFydC1zaGFwZS9zaGFwZS1saW5rJztcbmltcG9ydCB7IFJlbW92ZVNoYXBlQ29ubmVjdGlvbkl0ZW1FdmVudE1vZGVsLCBVcGRhdGVTaGFwZUNvbm5lY3Rpb25JdGVtRXZlbnRNb2RlbCB9IGZyb20gJy4vbW9kZWxzL3JlbW92ZS1zaGFwZS1jb25uZWN0aW9uLWl0ZW0tZXZlbnQubW9kZWwnO1xuaW1wb3J0IHsgU2hhcGVDb25uZWN0aW9uQWN0aW9uRXZlbnRNb2RlbCB9IGZyb20gJy4vbW9kZWxzL3NoYXBlLWNvbm5lY3Rpb24tYWN0aW9uLWV2ZW50Lm1vZGVsJztcbmltcG9ydCB7IENvbm5lY3Rpb25GaWVsZCwgU2hhcGVDb25uZWN0aW9uRGV0YWlsTW9kZWwgfSBmcm9tICcuL21vZGVscy9zaGFwZS1jb25uZWN0aW9uLWRldGFpbC5tb2RlbCc7XG5pbXBvcnQgeyBTaGFwZUZsb3dDaGFydENvbm5lY3Rpb25EZXRhaWwgfSBmcm9tICcuL21vZGVscy9zaGFwZS1mbG93LWNoYXJ0LWNvbm5lY3Rpb24tZGV0YWlsLm1vZGVsJztcbmltcG9ydCB7IFNoYXBlTW9kZWwgfSBmcm9tICcuL21vZGVscy9zaGFwZS1tb2RlbC5tb2RlbCc7XG5cbmludGVyZmFjZSBUYXJnZXQge1xuICAgIHZhbHVlOiBhbnk7XG4gICAgdmlld1ZhbHVlOiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBBbmNob3Ige1xuICAgIHZhbHVlOiBudW1iZXI7XG4gICAgdmlld1ZhbHVlOiBzdHJpbmc7XG4gICAgYW5jaG9yVmFsdWU6IHN0cmluZztcbn1cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdxbXMtYnBtbicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3Ftcy1icG1uLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9xbXMtYnBtbi5jb21wb25lbnQuc2NzcyddLFxufSlcblxuZXhwb3J0IGNsYXNzIFFNU0JQTU5Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgT25DaGFuZ2VzIHtcbiAgICBMQU5HOiBhbnk7XG4gICAgbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gICAgQElucHV0KCkgUU1TQlBNTkNvbmZpZzogUU1TQlBNTkNvbmZpZyA9IG5ldyBRTVNCUE1OQ29uZmlnKCk7XG4gICAgQElucHV0KCkgZWRpdE1vZGU6IG51bWJlcjsgLy8gMTogZWRpdCwgMjogdmlld1xuICAgIEBJbnB1dCgpIHNoYXBlTW9kZWw6IFNoYXBlTW9kZWwgPSBuZXcgU2hhcGVNb2RlbCgpO1xuICAgIEBJbnB1dCgpIHRhcmdldHM6IFRhcmdldFtdID0gW107XG4gICAgQElucHV0KCkgYW5jaG9yczogQW5jaG9yW10gPSBbXTtcbiAgICBASW5wdXQoKSBzaGFwZUNvbm5lY3Rpb25EZXRhaWxNb2RlbDogU2hhcGVDb25uZWN0aW9uRGV0YWlsTW9kZWwgPSBuZXcgU2hhcGVDb25uZWN0aW9uRGV0YWlsTW9kZWwoKTtcblxuICAgIEBPdXRwdXQoKSBvblNlbGVjdENvbm5lY3RUeXBlID0gbmV3IEV2ZW50RW1pdHRlcjxTaGFwZUZsb3dDaGFydENvbm5lY3Rpb25UeXBlPigpO1xuICAgIEBPdXRwdXQoKSBvblNlbGVjdFRlbXBsYXRlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKSBvblNhdmVBc1RlbXBsYXRlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQE91dHB1dCgpIG9uRGVsZXRlVGVtcGxhdGUgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIG9uUmVzZXRUZW1wbGF0ZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIEBPdXRwdXQoKSBvbkdldFNoYXBlQWN0aXZpdHkgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAT3V0cHV0KCkgb25DaGFuZ2VTaGFwZVRhcmdldCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSBvbkNoYW5nZVNoYXBlQW5jaG9yID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQE91dHB1dCgpIG9uUmVsb2FkQW5jaG9yRG9jdW1lbnRDbGljayA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgb25EZWxldGVDb25uZWN0aW9uID0gbmV3IEV2ZW50RW1pdHRlcjxTaGFwZUZsb3dDaGFydENvbm5lY3Rpb25UeXBlPigpO1xuICAgIEBPdXRwdXQoKSBvbk9wZW5BY3Rpdml0eSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgb25TZWxlY3RDb25uZWN0VHlwZUZvclNoYXBlID0gbmV3IEV2ZW50RW1pdHRlcjxTaGFwZUZsb3dDaGFydENvbm5lY3Rpb25EZXRhaWw+KCk7XG4gICAgQE91dHB1dCgpIG9uU2VsZWN0U2hhcGVDb25uZWN0aW9uQWN0aW9uID0gbmV3IEV2ZW50RW1pdHRlcjxTaGFwZUNvbm5lY3Rpb25BY3Rpb25FdmVudE1vZGVsPigpO1xuICAgIEBPdXRwdXQoKSBvblJlbW92ZVNoYXBlQ29ubmVjdGlvbkl0ZW0gPSBuZXcgRXZlbnRFbWl0dGVyPFJlbW92ZVNoYXBlQ29ubmVjdGlvbkl0ZW1FdmVudE1vZGVsPigpO1xuICAgIEBPdXRwdXQoKSBvblVwZGF0ZVNoYXBlQ29ubmVjdGlvbkl0ZW0gPSBuZXcgRXZlbnRFbWl0dGVyPFVwZGF0ZVNoYXBlQ29ubmVjdGlvbkl0ZW1FdmVudE1vZGVsPigpO1xuICAgIEBPdXRwdXQoKSBvbkdldEFuY2hvckZvckRvY3VtZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG4gICAgQE91dHB1dCgpIG9uQ2hhbmdlRG9jdW1lbnRBbmNob3JGb3JTaGFwZSA9IG5ldyBFdmVudEVtaXR0ZXI8Q2hhbmdlRG9jdW1lbnRBbmNob3JGb3JTaGFwZUV2ZW50TW9kZWw+KCk7XG5cbiAgICBleHBhbmRlZFBhbmVsID0gdHJ1ZTtcblxuICAgIGNvbm5lY3Rpb25UeXBlOiBTaGFwZUZsb3dDaGFydENvbm5lY3Rpb25UeXBlO1xuICAgIHNlbGVjdGVkQ29ubmVjdGlvblR5cGU6IFNoYXBlRmxvd0NoYXJ0Q29ubmVjdGlvblR5cGU7XG5cbiAgICBzZWxlY3RlZFRhcmdldDogVGFyZ2V0VHlwZU5hbWUgPSBUYXJnZXRUeXBlTmFtZS5uZXc7XG4gICAgZG9jdW1lbnRUeXBlOiBEYXRhVHlwZSA9IERhdGFUeXBlLm90aGVyO1xuICAgIGRvY3VtZW50SWNvbnM6IGFueTtcblxuICAgIGlzTG9hZGluZ0RvY3VtZW50QW5jaG9yOiBib29sZWFuO1xuICAgIHNlbGVjdGVkQ2VsbFZpZXc6IGFueTtcblxuICAgIHNlbGVjdGVkVGFiSW5kZXggPSAwO1xuXG4gICAgY29ubmVjdFR5cGVzOiBDb25uZWN0VHlwZVtdO1xuXG4gICAgcHJlU2VsZWN0ZWRWYWx1ZSA9IDA7XG4gICAgc2VsZWN0ZWRWYWx1ZSA9IDA7XG5cbiAgICAvLyBuZXcgdmFyaWFibGVcbiAgICBmbG93Y2hhcnRJZCA9ICcnO1xuICAgIHRhcmdldFZhbHVlID0gJyc7XG4gICAgYW5jaG9yVmFsdWUgPSAnJztcbiAgICBzaGFwZUlkOiBzdHJpbmc7XG4gICAgcHJlU2hhcGVJZDogc3RyaW5nO1xuICAgIGRpc2FibGVkQ29ubmVjdGlvblRhYjogYm9vbGVhbjtcbiAgICBzaGFwZUZsb3dDaGFydENvbm5lY3Rpb25UeXBlID0gU2hhcGVGbG93Q2hhcnRDb25uZWN0aW9uVHlwZTtcbiAgICBmbG93Y2hhcnRWaWV3TW9kZSA9IEZsb3djaGFydFZpZXdNb2RlO1xuICAgIHJlbGF0ZWRJdGVtVHlwZSA9IFJlbGF0ZWRJdGVtVHlwZTtcblxuICAgIGFuY2hvcklkQ3RybDogRm9ybUNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woKTtcblxuICAgIGFuY2hvcklkRmlsdGVyQ3RybDogRm9ybUNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woKTtcblxuICAgIGl0ZW1UeXBlID0gRGF0YVR5cGU7XG5cbiAgICBjdXJyZW50Q2hvc2VBbmNob3JPZkRvY3VtZW50SWQ6IG51bWJlcjtcblxuICAgIHNoYXBlVGFyZ2V0ID0gU2hhcGVUYXJnZXRzO1xuXG4gICAgZmlsdGVyZWRBbmNob3JzOiBPYnNlcnZhYmxlPEFuY2hvcltdPjtcblxuICAgIGJwbW5BZGRDb25uZWN0aW9uVHlwZSA9IEJwbW5BZGRDb25uZWN0aW9uVHlwZTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgdHJhbnNsYXRlOiBUcmFuc2xhdGVMaWJyYXJ5U2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBicG1uU2VydmljZTogQnBtblNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgZGlhbG9nOiBNYXREaWFsb2csXG4gICAgICAgIHByaXZhdGUgYXBwSWNvblNlcnZpY2U6IFFNU0ljb25SZWdpc3RyeVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgaWNvblJlZ2lzdHJ5OiBNYXRJY29uUmVnaXN0cnksXG4gICAgICAgIHByaXZhdGUgZG9tU2FuaXRpemVyOiBEb21TYW5pdGl6ZXJcbiAgICApIHtcbiAgICAgICAgYXBwSWNvblNlcnZpY2UucmVnaXN0ZXJGaWxlRXhjZWxJY29uKGljb25SZWdpc3RyeSwgZG9tU2FuaXRpemVyKTtcbiAgICAgICAgYXBwSWNvblNlcnZpY2UucmVnaXN0ZXJGaWxlV29yZEljb24oaWNvblJlZ2lzdHJ5LCBkb21TYW5pdGl6ZXIpO1xuICAgICAgICBhcHBJY29uU2VydmljZS5yZWdpc3RlckZpbGVQZGZJY29uKGljb25SZWdpc3RyeSwgZG9tU2FuaXRpemVyKTtcbiAgICAgICAgYXBwSWNvblNlcnZpY2UucmVnaXN0ZXJGaWxlSWNvbihpY29uUmVnaXN0cnksIGRvbVNhbml0aXplcik7XG4gICAgICAgIGFwcEljb25TZXJ2aWNlLnJlZ2lzdGVyQ29tcGxpYW5jZUljb24oaWNvblJlZ2lzdHJ5LCBkb21TYW5pdGl6ZXIpO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzptZXNzYWdlJywgWyckZXZlbnQnXSlcbiAgICBvbk1lc3NhZ2UoZXZlbnQpIHtcbiAgICAgICAgc3dpdGNoIChldmVudC5kYXRhKSB7XG4gICAgICAgICAgICBjYXNlIEZsb3dDaGFydENvbnN0LlNBVkVfQVNfVEVNUExBVEU6XG4gICAgICAgICAgICAgICAgdGhpcy5zYXZlQXNUZW1wbGF0ZSgpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBGbG93Q2hhcnRDb25zdC5ERUxFVEVfVEVNUExBVEU6XG4gICAgICAgICAgICAgICAgdGhpcy5kZWxldGVUZW1wbGF0ZSgpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBGbG93Q2hhcnRDb25zdC5NVVNUX1NFTEVDVF9URU1QTEFURTpcbiAgICAgICAgICAgICAgICB0aGlzLm11c3RTZWxlY3RUZW1wbGF0ZU5vdGlmeSgpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBGbG93Q2hhcnRDb25zdC5DSEFOR0lOR19URU1QTEFURTpcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdFRlbXBsYXRlKHRydWUpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBGbG93Q2hhcnRDb25zdC5ORVhUX0NIQU5HSU5HX1RFTVBMQVRFOlxuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0VGVtcGxhdGUoZmFsc2UpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBGbG93Q2hhcnRDb25zdC5SRVNFVF9URU1QTEFURTpcbiAgICAgICAgICAgICAgICB0aGlzLnJlc2V0VGVtcGxhdGUoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGlmIChjaGFuZ2VzLnNoYXBlTW9kZWwgJiYgY2hhbmdlcy5zaGFwZU1vZGVsLmN1cnJlbnRWYWx1ZSAhPT0gY2hhbmdlcy5zaGFwZU1vZGVsLnByZXZpb3VzVmFsdWUpIHtcbiAgICAgICAgICAgIC8vIEhhbmRsZSB0YXJnZXQgYW5kIGFuY2hvclxuICAgICAgICAgICAgdGhpcy5zaGFwZU1vZGVsID0gY2hhbmdlcy5zaGFwZU1vZGVsLmN1cnJlbnRWYWx1ZTtcbiAgICAgICAgICAgIHRoaXMudGFyZ2V0VmFsdWUgPSB0aGlzLnNoYXBlTW9kZWwudGFyZ2V0LnRhcmdldElkO1xuICAgICAgICAgICAgaWYgKHRoaXMuc2hhcGVNb2RlbC5zaGFwZS5jb25uZWN0aW9uVHlwZUlkID09PSBTaGFwZUZsb3dDaGFydENvbm5lY3Rpb25UeXBlLkRvY3VtZW50T3JQcm9jZXNzKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5hbmNob3JWYWx1ZSA9IHRoaXMuc2hhcGVNb2RlbC5hbmNob3IuYW5jaG9yVmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoY2hhbmdlcy5hbmNob3JzKSB7XG4gICAgICAgICAgICB0aGlzLmZpbHRlcmVkQW5jaG9ycyA9IHRoaXMuYW5jaG9ySWRGaWx0ZXJDdHJsLnZhbHVlQ2hhbmdlc1xuICAgICAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgICAgICBzdGFydFdpdGgodGhpcy5hbmNob3JJZEZpbHRlckN0cmwudmFsdWUgfHwgJycpLFxuICAgICAgICAgICAgICAgICAgICBtYXAodmFsdWUgPT4gdGhpcy5maWx0ZXJBbmNob3JzKHZhbHVlKSlcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuZWRpdE1vZGUgPSB0aGlzLlFNU0JQTU5Db25maWcuZWRpdE1vZGU7XG4gICAgICAgIHRoaXMudHJhbnNsYXRlLmdldExhbmd1YWdlU3ViamVjdCQucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSkuc3Vic2NyaWJlKChyZXMpID0+IHtcbiAgICAgICAgICAgIGlmIChyZXMpIHtcbiAgICAgICAgICAgICAgICB0aGlzLkxBTkcgPSB0aGlzLnRyYW5zbGF0ZS5nZXRPYmplY3RMYW5nKHJlcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuZmlsdGVyZWRBbmNob3JzID0gdGhpcy5hbmNob3JJZEZpbHRlckN0cmwudmFsdWVDaGFuZ2VzXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBzdGFydFdpdGgoJycpLFxuICAgICAgICAgICAgICAgIG1hcCh2YWx1ZSA9PiB0aGlzLmZpbHRlckFuY2hvcnModmFsdWUpKVxuICAgICAgICAgICAgKTtcblxuICAgIH1cblxuICAgIGV4cGFuZFBhbmVsKCkge1xuICAgICAgICB0aGlzLmV4cGFuZGVkUGFuZWwgPSAhdGhpcy5leHBhbmRlZFBhbmVsO1xuICAgICAgICB0aGlzLmJwbW5TZXJ2aWNlLmlzRXhwYW5kZWRQYW5lbCA9ICF0aGlzLmJwbW5TZXJ2aWNlLmlzRXhwYW5kZWRQYW5lbDtcbiAgICAgICAgY29uc3QgcGFuZWxTdGVuY2lsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3BhbmVsLXN0ZW5jaWwtY29udGFpbmVyJyk7XG5cbiAgICAgICAgaWYgKCFwYW5lbFN0ZW5jaWwpXG4gICAgICAgICAgICByZXR1cm47XG5cbiAgICAgICAgY29uc3QgcGFwZXJDb250YWluZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncGFwZXJwYW5lbCcpO1xuICAgICAgICBjb25zdCBzdGVuY2lsQ29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3N0ZW5jaWxwYW5lbCcpO1xuXG4gICAgICAgIHN3aXRjaCAodGhpcy5jaGVja0Nhc2VCcG1uRXhwYW5kUGFuZWwoKSkge1xuICAgICAgICAgICAgY2FzZSBRTVNDS0VkaXRvckJwbW5FeHBhbmQuaXNGdWxsU2NyZWVuQW5kbm90RXhwYW5kUGFuZWw6XG4gICAgICAgICAgICAgICAgc3RlbmNpbENvbnRhaW5lci5zdHlsZS5oZWlnaHQgPSAnNTBweCc7XG4gICAgICAgICAgICAgICAgcGFuZWxTdGVuY2lsLnN0eWxlLmhlaWdodCA9ICc1MHB4JztcbiAgICAgICAgICAgICAgICBwYXBlckNvbnRhaW5lcj8uY2xhc3NMaXN0LnJlbW92ZSgnZnVsbC1zY3JlZW4tYnBtbi1lZGl0b3JfcGFwZXJwYW5lbCcpO1xuICAgICAgICAgICAgICAgIHBhcGVyQ29udGFpbmVyPy5jbGFzc0xpc3QuYWRkKCdmdWxsLXNjcmVlbi1icG1uLWVkaXRvcl9wYXBlcnBhbmVsLWV4cGFuZHBhbmVsJyk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgIGNhc2UgUU1TQ0tFZGl0b3JCcG1uRXhwYW5kLmlzRnVsbFNjcmVlbkFuZGlzRXhwYW5kUGFuZWw6XG4gICAgICAgICAgICAgICAgc3RlbmNpbENvbnRhaW5lci5zdHlsZS5oZWlnaHQgPSAnMTUwcHgnO1xuICAgICAgICAgICAgICAgIHBhbmVsU3RlbmNpbC5zdHlsZS5oZWlnaHQgPSAnMTUwcHgnO1xuICAgICAgICAgICAgICAgIHBhcGVyQ29udGFpbmVyPy5jbGFzc0xpc3QucmVtb3ZlKCdmdWxsLXNjcmVlbi1icG1uLWVkaXRvcl9wYXBlcnBhbmVsLWV4cGFuZHBhbmVsJyk7XG4gICAgICAgICAgICAgICAgcGFwZXJDb250YWluZXI/LmNsYXNzTGlzdC5hZGQoJ2Z1bGwtc2NyZWVuLWJwbW4tZWRpdG9yX3BhcGVycGFuZWwnKTtcbiAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgY2FzZSBRTVNDS0VkaXRvckJwbW5FeHBhbmQubm90RnVsbFNjcmVlbkFuZG5vdEV4cGFuZFBhbmVsOlxuICAgICAgICAgICAgICAgIHN0ZW5jaWxDb250YWluZXIuc3R5bGUuaGVpZ2h0ID0gJzUwcHgnO1xuICAgICAgICAgICAgICAgIHBhbmVsU3RlbmNpbC5zdHlsZS5oZWlnaHQgPSAnNTBweCc7XG4gICAgICAgICAgICAgICAgcGFwZXJDb250YWluZXIuc3R5bGUuaGVpZ2h0ID0gJzUwMHB4JztcbiAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgY2FzZSBRTVNDS0VkaXRvckJwbW5FeHBhbmQubm90RnVsbFNjcmVlbkFuZGlzRXhwYW5kUGFuZWw6XG4gICAgICAgICAgICAgICAgc3RlbmNpbENvbnRhaW5lci5zdHlsZS5oZWlnaHQgPSAnMTUwcHgnO1xuICAgICAgICAgICAgICAgIHBhbmVsU3RlbmNpbC5zdHlsZS5oZWlnaHQgPSAnMTUwcHgnO1xuICAgICAgICAgICAgICAgIHBhcGVyQ29udGFpbmVyLnN0eWxlLmhlaWdodCA9ICc0MDBweCc7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpc1Nob3dDb25uZWN0VHlwZSgpIHtcbiAgICAgICAgdGhpcy5zaGFwZUlkID0gd2luZG93W0Zsb3dDaGFydENvbnN0LlNFTEVDVEVEX1NIQVBFX0lEXSA/IHdpbmRvd1tGbG93Q2hhcnRDb25zdC5TRUxFQ1RFRF9TSEFQRV9JRF0gOiAnJztcbiAgICAgICAgaWYgKHRoaXMuc2hhcGVJZCAhPT0gdGhpcy5wcmVTaGFwZUlkICYmIHRoaXMuZWRpdE1vZGUgPT09IEZsb3djaGFydFZpZXdNb2RlLkVkaXQpIHtcbiAgICAgICAgICAgIHRoaXMub25HZXRTaGFwZUFjdGl2aXR5LmVtaXQoeyBzaGFwZUlkOiB0aGlzLnNoYXBlSWQgfSk7XG4gICAgICAgICAgICB0aGlzLnByZVNoYXBlSWQgPSB0aGlzLnNoYXBlSWQ7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmRpc2FibGVkQ29ubmVjdGlvblRhYiA9IGZhbHNlO1xuICAgICAgICBjb25zdCBleGNsdWRlZFR5cGVzID0gWydicG1uMi5GbG93JywgJ2JwbW4yLkhlYWRlcmVkUG9vbCcsICdicG1uMi5Db252ZXJzYXRpb25MaW5rJywgJ2JwbW4yLkFubm90YXRpb25MaW5rJywgJ2JwbW4yLkRhdGFBc3NvY2lhdGlvbiddO1xuICAgICAgICBpZiAoZXhjbHVkZWRUeXBlcy5maW5kSW5kZXgodHlwZSA9PiB0eXBlLnRvTG93ZXJDYXNlKCkgPT0gd2luZG93W0Zsb3dDaGFydENvbnN0LlNIQVBFX1RZUEVdPy50b0xvd2VyQ2FzZSgpKSA+IC0xICYmIHRoaXMuZWRpdE1vZGUgPT09IEZsb3djaGFydFZpZXdNb2RlLkVkaXQpIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRUYWJJbmRleCA9IDA7XG4gICAgICAgICAgICB0aGlzLmRpc2FibGVkQ29ubmVjdGlvblRhYiA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuICEhd2luZG93W0Zsb3dDaGFydENvbnN0LklTX1NIT1dfQ09OTkVDVFlQRV07XG4gICAgfVxuXG4gICAgaXNTZWxlY3RlZFZpZXcoKSB7XG4gICAgICAgIHJldHVybiAhIXdpbmRvd1tGbG93Q2hhcnRDb25zdC5NWV9DRUxMX1ZJRVddO1xuICAgIH1cblxuICAgIG9uVGFiQ2hhbmdlKCRldmVudDogTWF0VGFiQ2hhbmdlRXZlbnQpIHtcbiAgICAgICAgd2luZG93W0Zsb3dDaGFydENvbnN0LlRBQl9OQU1FXSA9ICRldmVudC50YWIudGV4dExhYmVsO1xuICAgICAgICBpZiAoJGV2ZW50LnRhYi50ZXh0TGFiZWwgPT0gdGhpcy5MQU5HLkJQTU4uUFJPUEVSVElFUykge1xuICAgICAgICAgICAgdGhpcy5icG1uU2VydmljZS5vcGVuU2hhcGVGdW5jdGlvbmFsaXR5KHRoaXMuTEFORyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjaGVja0Nhc2VCcG1uRXhwYW5kUGFuZWwoKSB7XG4gICAgICAgIGlmICh0aGlzLmJwbW5TZXJ2aWNlLmlzRnVsbFNjcmVlbiAmJiAhdGhpcy5leHBhbmRlZFBhbmVsKVxuICAgICAgICAgICAgcmV0dXJuIFFNU0NLRWRpdG9yQnBtbkV4cGFuZC5pc0Z1bGxTY3JlZW5BbmRub3RFeHBhbmRQYW5lbDtcblxuICAgICAgICBpZiAodGhpcy5icG1uU2VydmljZS5pc0Z1bGxTY3JlZW4gJiYgdGhpcy5leHBhbmRlZFBhbmVsKVxuICAgICAgICAgICAgcmV0dXJuIFFNU0NLRWRpdG9yQnBtbkV4cGFuZC5pc0Z1bGxTY3JlZW5BbmRpc0V4cGFuZFBhbmVsO1xuXG4gICAgICAgIGlmICghdGhpcy5icG1uU2VydmljZS5pc0Z1bGxTY3JlZW4gJiYgIXRoaXMuZXhwYW5kZWRQYW5lbClcbiAgICAgICAgICAgIHJldHVybiBRTVNDS0VkaXRvckJwbW5FeHBhbmQubm90RnVsbFNjcmVlbkFuZG5vdEV4cGFuZFBhbmVsO1xuXG4gICAgICAgIGlmICghdGhpcy5icG1uU2VydmljZS5pc0Z1bGxTY3JlZW4gJiYgdGhpcy5leHBhbmRlZFBhbmVsKVxuICAgICAgICAgICAgcmV0dXJuIFFNU0NLRWRpdG9yQnBtbkV4cGFuZC5ub3RGdWxsU2NyZWVuQW5kaXNFeHBhbmRQYW5lbDtcbiAgICB9XG5cbiAgICBzYXZlQXNUZW1wbGF0ZSgpIHtcbiAgICAgICAgY29uc3QgZGlhbG9nVGVtcGxhdGUgPSB0aGlzLmRpYWxvZy5vcGVuKFNhdmVUZW1wbGF0ZUNvbXBvbmVudCwge1xuICAgICAgICAgICAgd2lkdGg6ICc0NTBweCcsXG4gICAgICAgICAgICBoZWlnaHQ6ICcyMjBweCcsXG4gICAgICAgICAgICBkaXNhYmxlQ2xvc2U6IHRydWVcbiAgICAgICAgfSk7XG4gICAgICAgIGRpYWxvZ1RlbXBsYXRlXG4gICAgICAgICAgICAuYWZ0ZXJDbG9zZWQoKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMub25TYXZlQXNUZW1wbGF0ZS5lbWl0KHJlc3VsdCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG5cbiAgICBkZWxldGVUZW1wbGF0ZSgpIHtcbiAgICAgICAgdGhpcy5zaG93Q29uZmlybURpYWxvZyh0aGlzLkxBTkcuQlBNTi5ERUxFVEVfVEVNUExBVEUsIHRoaXMuTEFORy5RTVNDS0VESVRPUl9NRVNTQUdFLkNPTkZJUk1fREVMRVRFX1RFTVBMQVRFLCBmYWxzZSwgZmFsc2UsIG51bGwsIG51bGwsIChyZXN1bHQ6IGFueSkgPT4ge1xuICAgICAgICAgICAgaWYgKHJlc3VsdClcbiAgICAgICAgICAgICAgICB0aGlzLm9uRGVsZXRlVGVtcGxhdGUuZW1pdCgpXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG11c3RTZWxlY3RUZW1wbGF0ZU5vdGlmeSgpIHtcbiAgICAgICAgdGhpcy5zaG93Q29uZmlybURpYWxvZyh0aGlzLkxBTkcuQlBNTi5TRUxFQ1RfVEVNUExBVEUsIHRoaXMuTEFORy5CUE1OLlNFTEVDVF9URU1QTEFURV9JTkZPUk1BVElPTiwgdHJ1ZSwgZmFsc2UpO1xuICAgIH1cblxuICAgIHNlbGVjdFRlbXBsYXRlKG5lZWRDb25maXJtOiBib29sZWFuKSB7XG4gICAgICAgIGlmIChuZWVkQ29uZmlybSkge1xuICAgICAgICAgICAgdGhpcy5zaG93Q29uZmlybURpYWxvZyh0aGlzLkxBTkcuUU1TQ0tFRElUT1IuQ0hBTkdFX1RFTVBMQVRFLCB0aGlzLlFNU0JQTU5Db25maWcuY2hhbmdlVGVtcGxhdGVQb3B1cENvbnRlbnQsIGZhbHNlLCB0cnVlLCAnNzAwcHgnLCBudWxsLCAocmVzdWx0OiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgICAgICAgICAgICAgIHdpbmRvd1tGbG93Q2hhcnRDb25zdC5JU19OT1RfU0hPV19BR0FJTl0gPSByZXN1bHQuaXNOb3RTaG93QWdhaW47XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYnBtblNlcnZpY2Uuc2V0SXRlbUZsb3dDaGFydElkKHdpbmRvd1tGbG93Q2hhcnRDb25zdC5TRUxFQ1RFRF9GTE9XQ0hBUlRfSURdKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mbG93Y2hhcnRJZCA9IHdpbmRvd1tGbG93Q2hhcnRDb25zdC5TRUxFQ1RFRF9GTE9XQ0hBUlRfSURdO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm9uU2VsZWN0VGVtcGxhdGUuZW1pdCgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5icG1uU2VydmljZS5zZXRJdGVtRmxvd0NoYXJ0SWQodGhpcy5mbG93Y2hhcnRJZCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLm9uU2VsZWN0VGVtcGxhdGUuZW1pdCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmVzZXRUZW1wbGF0ZSgpIHtcbiAgICAgICAgdGhpcy5vblJlc2V0VGVtcGxhdGUuZW1pdCgpO1xuICAgIH1cblxuICAgIHNlbGVjdENvbm5lY3RUeXBlKHZhbHVlOiBTaGFwZUZsb3dDaGFydENvbm5lY3Rpb25UeXBlKSB7XG4gICAgICAgIHRoaXMub25TZWxlY3RDb25uZWN0VHlwZS5lbWl0KHZhbHVlKTtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWUgPSB1bmRlZmluZWQ7XG4gICAgICAgIH0sIDMwMClcbiAgICB9XG5cbiAgICBkZWxldGVDb25uZWN0aW9uKHZhbHVlOiBTaGFwZUZsb3dDaGFydENvbm5lY3Rpb25UeXBlKSB7XG4gICAgICAgIHRoaXMub25EZWxldGVDb25uZWN0aW9uLmVtaXQodmFsdWUpO1xuICAgIH1cblxuICAgIGNoYW5nZVNoYXBlVGFydGdldChldmVudDogYW55KSB7XG4gICAgICAgIHRoaXMub25DaGFuZ2VTaGFwZVRhcmdldC5lbWl0KGV2ZW50KTtcbiAgICB9XG5cbiAgICBjaGFuZ2VTaGFwZUFuY2hvcihldmVudDogYW55KSB7XG4gICAgICAgIHRoaXMub25DaGFuZ2VTaGFwZUFuY2hvci5lbWl0KGV2ZW50KTtcbiAgICB9XG5cbiAgICByZWxvYWRBbmNob3JEb2N1bWVudCgpIHtcbiAgICAgICAgdGhpcy5vblJlbG9hZEFuY2hvckRvY3VtZW50Q2xpY2suZW1pdCgpO1xuICAgIH1cblxuXG4gICAgc2hvd0NvbmZpcm1EaWFsb2codGl0bGU6IHN0cmluZywgY29udGVudDogc3RyaW5nLCBpc01lc3NhZ2U6IGJvb2xlYW4sIGlzQWR2YW5jZTogYm9vbGVhbiA9IGZhbHNlLCB3aWR0aDogc3RyaW5nID0gJzUwMHB4JywgaGVpZ2h0OiBzdHJpbmcgPSAnMTc1cHgnLCBjYWxsYmFjaz86IChyZXN1bHQ/OiBhbnkpID0+IHZvaWQpIHtcbiAgICAgICAgY29uc3QgZGF0YTogUU1TQ0tFZGl0b3JEaWFsb2dEYXRhID0gbmV3IFFNU0NLRWRpdG9yRGlhbG9nRGF0YSgpO1xuICAgICAgICBkYXRhLnRpdGxlID0gdGl0bGU7XG4gICAgICAgIGRhdGEuY29udGVudCA9IGNvbnRlbnQ7XG4gICAgICAgIGRhdGEuaXNNZXNzYWdlID0gaXNNZXNzYWdlO1xuICAgICAgICBkYXRhLmlzQ2xvc2VCdG4gPSB0cnVlO1xuICAgICAgICBkYXRhLmlzQWR2YW5jZSA9IGlzQWR2YW5jZTtcbiAgICAgICAgZGF0YS5jaGVja1RleHQgPSBpc0FkdmFuY2UgPyB0aGlzLkxBTkcuTk9UX1NIT1dfQUdBSU4gOiAnJztcbiAgICAgICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihRTVNDS0VkaXRvckNvbmZpcm1Db21wb25lbnQsIHtcbiAgICAgICAgICAgIHdpZHRoOiB3aWR0aCxcbiAgICAgICAgICAgIG1pbkhlaWdodDogaGVpZ2h0LFxuICAgICAgICAgICAgZGF0YSxcbiAgICAgICAgfSk7XG4gICAgICAgIGRpYWxvZ1JlZlxuICAgICAgICAgICAgLmFmdGVyQ2xvc2VkKClcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGNhbGxiYWNrKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKHJlc3VsdCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgb3BlbkFjdGl2aXR5KCkge1xuICAgICAgICB0aGlzLm9uT3BlbkFjdGl2aXR5LmVtaXQoKTtcbiAgICB9XG5cbiAgICBpc0Rpc2FibGVUb29sYmFyKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5icG1uU2VydmljZS5pc0Rpc2FibGVUb29sYmFyO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLm5nVW5zdWJzY3JpYmUubmV4dCgpO1xuICAgICAgICB0aGlzLm5nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICBzZWxlY3RDb25uZWN0VHlwZUZvclNoYXBlKHR5cGVEZXRhaWw6IENvbm5lY3RUeXBlKSB7XG4gICAgICAgIGNvbnN0IGNvbm5lY3Rpb25EZXRhaWwgPSBuZXcgU2hhcGVGbG93Q2hhcnRDb25uZWN0aW9uRGV0YWlsKCk7XG4gICAgICAgIGNvbm5lY3Rpb25EZXRhaWwuc2hhcGVDb25uZWN0aW9uVHlwZSA9IHR5cGVEZXRhaWwudmFsdWU7XG4gICAgICAgIGNvbm5lY3Rpb25EZXRhaWwuZmllbGRJZCA9IHR5cGVEZXRhaWwuaWQ7XG5cbiAgICAgICAgdGhpcy5vblNlbGVjdENvbm5lY3RUeXBlRm9yU2hhcGUuZW1pdChjb25uZWN0aW9uRGV0YWlsKTtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWUgPSB1bmRlZmluZWQ7XG4gICAgICAgIH0sIDMwMClcbiAgICB9XG5cbiAgICBvcGVuQ29ubmVjdGlvbkFjdGlvbkRyb3Bkb3duKGV2ZW50OiBFdmVudCkge1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9XG5cbiAgICBzZWxlY3RTaGFwZURlc2NyaXB0aW9uQ29ubmVjdGlvbkFjdGlvbihhY3Rpb25UeXBlOiBTaGFwZUNvbm5lY3Rpb25BY3Rpb25FbnVtKSB7XG5cbiAgICAgICAgY29uc3QgYWN0aW9uTW9kZWwgPSBuZXcgU2hhcGVDb25uZWN0aW9uQWN0aW9uRXZlbnRNb2RlbCgpO1xuICAgICAgICBhY3Rpb25Nb2RlbC5hY3Rpb25UeXBlID0gYWN0aW9uVHlwZTtcbiAgICAgICAgYWN0aW9uTW9kZWwuY29ubmVjdGlvblR5cGUgPSBTaGFwZUZsb3dDaGFydENvbm5lY3Rpb25UeXBlLkRlc2NyaXB0aW9uO1xuXG4gICAgICAgIHRoaXMub25TZWxlY3RTaGFwZUNvbm5lY3Rpb25BY3Rpb24uZW1pdChhY3Rpb25Nb2RlbCk7XG4gICAgfVxuXG4gICAgc2VsZWN0U2hhcGVGaWVsZENvbm5lY3Rpb25BY3Rpb24oZmllbGQ6IENvbm5lY3Rpb25GaWVsZCwgYWN0aW9uVHlwZTogU2hhcGVDb25uZWN0aW9uQWN0aW9uRW51bSkge1xuICAgICAgICBjb25zdCBhY3Rpb25Nb2RlbCA9IG5ldyBTaGFwZUNvbm5lY3Rpb25BY3Rpb25FdmVudE1vZGVsKCk7XG4gICAgICAgIGFjdGlvbk1vZGVsLmFjdGlvblR5cGUgPSBhY3Rpb25UeXBlO1xuICAgICAgICBhY3Rpb25Nb2RlbC5jb25uZWN0aW9uVHlwZSA9IFNoYXBlRmxvd0NoYXJ0Q29ubmVjdGlvblR5cGUuRmllbGRzO1xuICAgICAgICBhY3Rpb25Nb2RlbC5pZCA9IGZpZWxkLmlkO1xuXG4gICAgICAgIHRoaXMub25TZWxlY3RTaGFwZUNvbm5lY3Rpb25BY3Rpb24uZW1pdChhY3Rpb25Nb2RlbCk7XG4gICAgfVxuXG4gICAgcmVtb3ZlUmVsYXRlZEl0ZW1Gb3JTaGFwZShpdGVtOiBBY3Rpdml0eVJlbGF0ZWRJdGVtcywgY29ubmVjdGlvblR5cGU6IFNoYXBlRmxvd0NoYXJ0Q29ubmVjdGlvblR5cGUpIHtcblxuICAgICAgICBjb25zdCByZW1vdmVJdGVtID0gbmV3IFJlbW92ZVNoYXBlQ29ubmVjdGlvbkl0ZW1FdmVudE1vZGVsKCk7XG4gICAgICAgIHJlbW92ZUl0ZW0ucmVsYXRlZEl0ZW0gPSBpdGVtO1xuICAgICAgICByZW1vdmVJdGVtLmNvbm5lY3Rpb25UeXBlID0gY29ubmVjdGlvblR5cGU7XG5cbiAgICAgICAgdGhpcy5vblJlbW92ZVNoYXBlQ29ubmVjdGlvbkl0ZW0uZW1pdChyZW1vdmVJdGVtKTtcbiAgICB9XG5cbiAgICBnZXRBbmNob3JGb3JEb2N1bWVudChkb2N1bWVudElkKSB7XG4gICAgICAgIGlmICghZG9jdW1lbnRJZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jdXJyZW50Q2hvc2VBbmNob3JPZkRvY3VtZW50SWQgPSBkb2N1bWVudElkO1xuICAgICAgICB0aGlzLm9uR2V0QW5jaG9yRm9yRG9jdW1lbnQuZW1pdChkb2N1bWVudElkKTtcbiAgICB9XG5cbiAgICBjaGFuZ2VEb2N1bWVudEFuY2hvckZvclNoYXBlKGFuY2hvcklkOiBudW1iZXIpIHtcblxuICAgICAgICBjb25zdCBpZHhBbmNob3IgPSB0aGlzLmFuY2hvcnMuZmluZEluZGV4KChhbmNob3IpID0+IHsgcmV0dXJuIGFuY2hvci52YWx1ZSA9PT0gYW5jaG9ySWQ7IH0pO1xuICAgICAgICBpZiAoaWR4QW5jaG9yID09PSAtMSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgY2hhbmdlRG9jdW1lbnRBbmNob3IgPSBuZXcgQ2hhbmdlRG9jdW1lbnRBbmNob3JGb3JTaGFwZUV2ZW50TW9kZWwoKTtcbiAgICAgICAgY2hhbmdlRG9jdW1lbnRBbmNob3IuYW5jaG9ySWQgPSBhbmNob3JJZDtcbiAgICAgICAgY2hhbmdlRG9jdW1lbnRBbmNob3IuYW5jaG9yTmFtZSA9IHRoaXMuYW5jaG9yc1tpZHhBbmNob3JdLmFuY2hvclZhbHVlO1xuICAgICAgICBjaGFuZ2VEb2N1bWVudEFuY2hvci5kb2N1bWVudElkID0gdGhpcy5jdXJyZW50Q2hvc2VBbmNob3JPZkRvY3VtZW50SWQ7XG5cbiAgICAgICAgdGhpcy5vbkNoYW5nZURvY3VtZW50QW5jaG9yRm9yU2hhcGUuZW1pdChjaGFuZ2VEb2N1bWVudEFuY2hvcik7XG4gICAgfVxuXG4gICAgcmVtb3ZlUmVsYXRlZExpbmtGb3JTaGFwZShpdGVtOiBTaGFwZUxpbmssIGNvbm5lY3Rpb25UeXBlOiBTaGFwZUZsb3dDaGFydENvbm5lY3Rpb25UeXBlKSB7XG5cbiAgICAgICAgY29uc3QgcmVtb3ZlSXRlbSA9IG5ldyBSZW1vdmVTaGFwZUNvbm5lY3Rpb25JdGVtRXZlbnRNb2RlbCgpO1xuICAgICAgICByZW1vdmVJdGVtLnNoYXBlTGluayA9IGl0ZW07XG4gICAgICAgIHJlbW92ZUl0ZW0uY29ubmVjdGlvblR5cGUgPSBjb25uZWN0aW9uVHlwZTtcblxuICAgICAgICB0aGlzLm9uUmVtb3ZlU2hhcGVDb25uZWN0aW9uSXRlbS5lbWl0KHJlbW92ZUl0ZW0pO1xuICAgIH1cblxuICAgIG9uVXBkYXRlRGF0YU90aGVyKGV2ZW50KSB7XG5cbiAgICAgICAgdGhpcy5vblVwZGF0ZVNoYXBlQ29ubmVjdGlvbkl0ZW0uZW1pdChldmVudCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBmaWx0ZXJBbmNob3JzKHZhbHVlOiBzdHJpbmcpOiBhbnlbXSB7XG4gICAgICAgIGNvbnN0IGZpbHRlclZhbHVlID0gdmFsdWUudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuYW5jaG9ycy5maWx0ZXIoYW5jaG9yID0+IGFuY2hvci52aWV3VmFsdWUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhmaWx0ZXJWYWx1ZSkpO1xuICAgIH1cblxuICAgIGlzU2hvd0FkZENvbm5lY3Rpb25UYWIoKSB7XG4gICAgICAgIGlmICh3aW5kb3dbRmxvd0NoYXJ0Q29uc3QuU0VMRUNURURfU0hBUEVfSURdKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbn1cblxuIl19