ngx-bimplus-components 0.0.161 → 0.0.163
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.
- package/esm2022/lib/components/bimplus-object-comments-list/bimplus-object-comments-list.component.mjs +7 -4
- package/esm2022/lib/components/bimplus-object-navigator/criteria-select-object-properties/criteria-select-object-properties.component.mjs +3 -3
- package/esm2022/lib/components/bimplus-object-structure/bimplus-object-structure.component.mjs +9 -3
- package/esm2022/lib/components/links-to-documents/links-to-documents.component.mjs +6 -3
- package/esm2022/lib/components/object-properties/object-properties.component.mjs +3 -3
- package/fesm2022/ngx-bimplus-components.mjs +23 -11
- package/fesm2022/ngx-bimplus-components.mjs.map +1 -1
- package/lib/components/bimplus-object-comments-list/bimplus-object-comments-list.component.d.ts +2 -1
- package/lib/components/bimplus-object-structure/bimplus-object-structure.component.d.ts +3 -1
- package/lib/components/links-to-documents/links-to-documents.component.d.ts +2 -1
- package/package.json +1 -1
|
@@ -53,6 +53,7 @@ export class BimplusObjectCommentsListComponent extends BimplusLocalizedWidgetCo
|
|
|
53
53
|
this.wormholeSelector = "localEmbeddedModalId";
|
|
54
54
|
this.env = "prod";
|
|
55
55
|
this.attachmentLinkItems = [];
|
|
56
|
+
this.inputBaseUrl = '';
|
|
56
57
|
this.commentsList$ = new BehaviorSubject([]);
|
|
57
58
|
this.loading = signal(false);
|
|
58
59
|
this.attachmentsState = signal([]);
|
|
@@ -337,12 +338,12 @@ export class BimplusObjectCommentsListComponent extends BimplusLocalizedWidgetCo
|
|
|
337
338
|
this.addNewCommentHyperlink();
|
|
338
339
|
}
|
|
339
340
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: BimplusObjectCommentsListComponent, deps: [{ token: i1.DialogService }, { token: i2.TranslateService }, { token: i3.DatePipe }, { token: i4.FormBuilder }, { token: i5.BimplusAttachmentsService }, { token: i6.BimplusObjectCommentsListService }, { token: i7.BimplusStatusBarService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
340
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.12", type: BimplusObjectCommentsListComponent, isStandalone: true, selector: "lib-bimplus-object-comments-list", inputs: { api: "api", project: "project", wormholeSelector: "wormholeSelector", env: "env", attachmentLinkItems: "attachmentLinkItems", rootObjectId: "rootObjectId", userId: "userId" }, providers: [
|
|
341
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.12", type: BimplusObjectCommentsListComponent, isStandalone: true, selector: "lib-bimplus-object-comments-list", inputs: { api: "api", project: "project", wormholeSelector: "wormholeSelector", env: "env", attachmentLinkItems: "attachmentLinkItems", inputBaseUrl: "inputBaseUrl", rootObjectId: "rootObjectId", userId: "userId" }, providers: [
|
|
341
342
|
DatePipe,
|
|
342
343
|
BimplusObjectCommentsListService,
|
|
343
344
|
BimplusAttachmentsService,
|
|
344
345
|
{ provide: BIMPLUS_ATTACHMENTS_CONFIG, useValue: config },
|
|
345
|
-
], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "@if (!loading()) {\r\n<div class=\"comment-tab-container\">\r\n <div class=\"textarea-container\">\r\n <lib-bimplus-textarea\r\n (textAreaValueChange)=\"onTextareaValueChange($event)\"\r\n [placeholder]=\"placeholder\"\r\n [name]=\"name\"\r\n [readonly]=\"readonly\"\r\n [activeAutoResizeTextarea]=\"true\"\r\n [minRows]=\"minRows\"\r\n [maxRows]=\"maxRows\"\r\n [clearValue]=\"clearTextareaValue()\"\r\n ></lib-bimplus-textarea>\r\n </div>\r\n\r\n <lib-bimplus-attachments\r\n #attachments\r\n listOnly\r\n [class]=\"['new-comment-attachments']\"\r\n [attachments]=\"attachmentsState()\"\r\n (addAttachment)=\"onAddAttachment($event)\"\r\n (deleteAttachment)=\"onDeleteAttachment($event)\"\r\n />\r\n\r\n <lib-links-to-documents \r\n #linksToDocuments\r\n listOnly\r\n hideAttachmentSize\r\n showEmptyMessage=\"false\" \r\n [attachments]=\"attachmentLinkItems\"\r\n (attachmentsLinkChange)=\"onAttachmentsLinkChange($event)\"\r\n [api]=\"api\" \r\n [project]=\"project\"\r\n [rootObjectId]=''\r\n [canCreateAttachmentLink]=\"true\"\r\n [canDeleteAttachmentLink]=\"true\"\r\n [wormholeSelector]=\"wormholeSelector\"\r\n [env]=\"env\"\r\n />\r\n\r\n @if (newCommentAttachments.length > 0) {\r\n <div class=\"new-comment-attachment-list\">\r\n <div *ngFor=\"let item of newCommentAttachments\" \r\n [ngClass]=\"'new-comment-attachment ' + item.type\"\r\n [title]=\"item.type === 'Hyperlink' ? item.url: item.name\">\r\n <div \r\n [ngClass]=\"'icon-small ' + item.type\" \r\n [title]=\"item.type === 'Hyperlink' ? item.url: item.name\">\r\n </div>\r\n <div class=\"text\">{{ item.name }} </div> \r\n <span class=\"cancel-icon\" title=\"{{ item.deleteButtonTitle}}\" (click)=\"removeNewCommentAttachment(item)\" (keydown)=\"removeNewCommentAttachmentKeypress($event, item)\"></span>\r\n </div> \r\n </div>\r\n }\r\n\r\n @if (isAddingHyperlink) {\r\n <form [formGroup]=\"hyperlinkForm\" class=\"hyperlink-input-form\">\r\n <div class=\"hyperlink-input-row\">\r\n <div class=\"link-icon icon-next-to-text-input\"></div>\r\n <lib-bimplus-input-text-field class=\"flex-grow\" formControlName=\"name\" placeholder=\"{{ '_Name' | translate }}\" (enterKeyPressed)=\"onEnterKeyPressedInHyperlinkForm()\"/>\r\n </div>\r\n <div class=\"hyperlink-input-row\">\r\n <div class=\"icon-next-to-text-input\"></div>\r\n <lib-bimplus-input-text-field class=\"flex-grow\" formControlName=\"url\" placeholder=\"{{ '_URL' | translate }}\" (enterKeyPressed)=\"onEnterKeyPressedInHyperlinkForm()\"/>\r\n </div>\r\n\r\n <lib-bimplus-buttons-row [items]=\"hyperlinkButtonRowItems\" (buttonClicked)=\"hyperlinkButtonRowButtonClicked($event)\"/>\r\n </form>\r\n }\r\n\r\n <div class=\"comments-tab-attachments-section\">\r\n <div class=\"comments-attachments-list\">\r\n <div class=\"tab-attachments icon attachments-icon hidden\"></div>\r\n <div class=\"attachment-icon icon-small interactive\" [title]=\"'_Add attachment' | translate\" (click)=\"attachments.open()\" (keydown)=\"attachments.open()\"></div>\r\n <div class=\"link-icon icon-small interactive\" [title]=\"'_Add hyperlink' | translate\" (click)=\"addHyperlinkIconClicked()\" (keydown)=\"addHyperlinkIconKeypress($event)\"></div>\r\n <div class=\"attachment-link-icon icon-small interactive\" [title]=\"'_Add_attachment_link' | translate\" (click)=\"linksToDocuments.createAttachmentLink(api!)\" (keydown)=\"linksToDocuments.createAttachmentLink(api!)\"></div>\r\n <div class=\"tab-attachmentlinks icon attachments-icon hidden\"></div>\r\n </div>\r\n <div class=\"add-comment\">\r\n <lib-bimplus-buttons-row\r\n [items]=\"buttonRowItems\"\r\n (buttonClicked)=\"buttonRowButtonClicked($event)\" />\r\n </div>\r\n </div>\r\n\r\n <div class=\"comments-separator\"></div>\r\n\r\n <div class=\"scrollable-content-container\">\r\n <lib-bimplus-scrollable-container>\r\n @if ((commentsList$ | async)?.length === 0) {\r\n <div class=\"no-comments-found\">\r\n {{ '_No comments found' | translate }}\r\n </div>\r\n } @else {\r\n @for (item of commentsList$ | async; track item) {\r\n @if(item.createdAt && isSameDate(item.createdAt)) {\r\n <div class=\"comment-list-date\">\r\n {{formatDate(item.createdAt)}}\r\n </div>\r\n }\r\n <lib-bimplus-comment\r\n (outputActionCommentEvent)=\"handleActionCommentEvent($event)\"\r\n (getAttachment)=\"onGetAttachment($event)\"\r\n [message]=\"item.text\"\r\n [api]=\"api\"\r\n [date]=\"item.createdAt ? item.createdAt : ''\"\r\n action=\"delete\"\r\n [commentId]=\"item.id\"\r\n [attachments]=\"item.attachments ?? []\"\r\n [attachmentLinkItems]=\"item.attachmentLinks ?? []\"\r\n [hyperlinks]=\"item.hyperlinks\"\r\n [isActUserAuthor]=\"isActUserAuthor(item)\"\r\n [displayname]=\"displayName(item)\">\r\n </lib-bimplus-comment>\r\n }\r\n }\r\n </lib-bimplus-scrollable-container>\r\n </div>\r\n</div>\r\n}\r\n", styles: [":host{height:100%;display:flex;flex-direction:column;flex:1}.link-icon{background:url('data:image/svg+xml,<svg version=\"1.1\" id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" x=\"0\" y=\"0\" viewBox=\"0 0 18 18\" xml:space=\"preserve\"><style>.st0{fill:%23444}<\\/style><path class=\"st0\" d=\"M16.7 4.2l-1.3-1.3c-1.2-1.2-3.2-1.2-4.4 0l-.6.6 1.1 1.1.7-.6c.6-.6 1.5-.6 2.1 0l1.3 1.3c.6.6.6 1.5 0 2.1l-4.1 4.1c-.6.6-1.5.6-2.1 0l-1.3-1.3c-.6-.5-.6-1.4-.1-2L6.9 7.1c-1.1 1.2-1.1 3.1.1 4.3l1.3 1.3c1.2 1.2 3.2 1.2 4.4 0l4.1-4.1c1.1-1.2 1.1-3.2-.1-4.4z\"/><path class=\"st0\" d=\"M5.8 13c-.6.6-1.5.6-2.1 0l-1.3-1.3c-.6-.6-.6-1.5 0-2.1l4.1-4.1c.6-.6 1.5-.6 2.1 0l1.3 1.3c.6.6.6 1.5 0 2.1l-.6.6 1.1 1.1.6-.6c1.2-1.2 1.2-3.2 0-4.4L9.8 4.3c-1.2-1.2-3.2-1.2-4.4 0L1.3 8.4c-1.2 1.2-1.2 3.2 0 4.4l1.3 1.3c1.2 1.2 3.2 1.2 4.4 0l.6-.6-1.1-1.1-.7.6z\"/></svg>') no-repeat center}.attachment-icon{background:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 18 18\"><path d=\"M12 3v12H6V3h2v10h2V2.4C10 1.6 9.4 1 8.6 1H5.4C4.6 1 4 1.6 4 2.4v13.3c0 .7.6 1.3 1.4 1.3h7.3c.8 0 1.4-.6 1.4-1.4V3H12z\" fill=\"%23444\"/></svg>') no-repeat center}.attachment-link-icon{background:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<path d=\"M4 8H8V6H4V8Z\" fill=\"%23444444\"/>%0D%0A<path d=\"M4 3V5H12V3H4Z\" fill=\"%23444444\"/>%0D%0A<path d=\"M4 11H8V9H4V11Z\" fill=\"%23444444\"/>%0D%0A<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M1 0H15V10H13V2H3V16H10V18H1V0Z\" fill=\"%23444444\"/>%0D%0A<path d=\"M15.0198 11.9876V16.5C15.0198 16.7761 14.7959 17 14.5198 17H12.5C12.2239 17 12 16.7761 12 16.5V12.4938C12 12.2153 12.2277 11.9904 12.5062 11.9939C12.7799 11.9973 13 12.2201 13 12.4938V16H14V12.3913C14 11.5963 13.4456 11 12.6535 11H12.3861C11.5941 11 11 11.5963 11 12.3913V16.6087C11 17.4037 11.5941 18 12.3861 18H14.6139C15.4059 18 16 17.4037 16 16.6087V11.9876H15.0198Z\" fill=\"%23444444\"/>%0D%0A</svg>%0D%0A') no-repeat center}.icon{height:2rem;width:2rem;margin:0 .2rem}.icon-small{height:100%;width:1.8rem;margin:0 .2rem}.icon-small.Hyperlink{background:url('data:image/svg+xml,<svg version=\"1.1\" id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" x=\"0\" y=\"0\" viewBox=\"0 0 18 18\" xml:space=\"preserve\"><style>.st0{fill:%23444}<\\/style><path class=\"st0\" d=\"M16.7 4.2l-1.3-1.3c-1.2-1.2-3.2-1.2-4.4 0l-.6.6 1.1 1.1.7-.6c.6-.6 1.5-.6 2.1 0l1.3 1.3c.6.6.6 1.5 0 2.1l-4.1 4.1c-.6.6-1.5.6-2.1 0l-1.3-1.3c-.6-.5-.6-1.4-.1-2L6.9 7.1c-1.1 1.2-1.1 3.1.1 4.3l1.3 1.3c1.2 1.2 3.2 1.2 4.4 0l4.1-4.1c1.1-1.2 1.1-3.2-.1-4.4z\"/><path class=\"st0\" d=\"M5.8 13c-.6.6-1.5.6-2.1 0l-1.3-1.3c-.6-.6-.6-1.5 0-2.1l4.1-4.1c.6-.6 1.5-.6 2.1 0l1.3 1.3c.6.6.6 1.5 0 2.1l-.6.6 1.1 1.1.6-.6c1.2-1.2 1.2-3.2 0-4.4L9.8 4.3c-1.2-1.2-3.2-1.2-4.4 0L1.3 8.4c-1.2 1.2-1.2 3.2 0 4.4l1.3 1.3c1.2 1.2 3.2 1.2 4.4 0l.6-.6-1.1-1.1-.7.6z\"/></svg>') no-repeat center}.icon-small.Attachment{background:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 18 18\"><path d=\"M12 3v12H6V3h2v10h2V2.4C10 1.6 9.4 1 8.6 1H5.4C4.6 1 4 1.6 4 2.4v13.3c0 .7.6 1.3 1.4 1.3h7.3c.8 0 1.4-.6 1.4-1.4V3H12z\" fill=\"%23444\"/></svg>') no-repeat center}.icon-small.AttachmentLink{background:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<path d=\"M4 8H8V6H4V8Z\" fill=\"%23444444\"/>%0D%0A<path d=\"M4 3V5H12V3H4Z\" fill=\"%23444444\"/>%0D%0A<path d=\"M4 11H8V9H4V11Z\" fill=\"%23444444\"/>%0D%0A<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M1 0H15V10H13V2H3V16H10V18H1V0Z\" fill=\"%23444444\"/>%0D%0A<path d=\"M15.0198 11.9876V16.5C15.0198 16.7761 14.7959 17 14.5198 17H12.5C12.2239 17 12 16.7761 12 16.5V12.4938C12 12.2153 12.2277 11.9904 12.5062 11.9939C12.7799 11.9973 13 12.2201 13 12.4938V16H14V12.3913C14 11.5963 13.4456 11 12.6535 11H12.3861C11.5941 11 11 11.5963 11 12.3913V16.6087C11 17.4037 11.5941 18 12.3861 18H14.6139C15.4059 18 16 17.4037 16 16.6087V11.9876H15.0198Z\" fill=\"%23444444\"/>%0D%0A</svg>%0D%0A') no-repeat center}.icon-next-to-text-input{width:1.8rem;margin:.3rem .2rem 0}.interactive{cursor:pointer}.flex{display:flex}.flex-grow{flex-grow:1}.hyperlink-input-row{display:flex;gap:.2rem}.hyperlink-input-row lib-bimplus-input-text-field{margin-top:.2rem}.new-comment-attachment-list{margin:0 .6rem .2rem 0}.new-comment-attachments{--bim-attachment-item-background-size: 1.8rem}.new-comment-attachment{padding-left:.8rem;display:grid;grid-template-columns:auto 1fr auto;column-gap:.4rem}.new-comment-attachment .text{line-height:2.4rem;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.new-comment-attachment .cancel-icon{flex:1;background:url('data:image/svg+xml,<svg version=\"1.1\" id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" x=\"0\" y=\"0\" width=\"18\" height=\"18\" xml:space=\"preserve\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" fill=\"%23444\" d=\"M13.5 5.4L12.1 4 8.5 7.6 4.9 4 3.5 5.4 7.1 9l-3.6 3.6L4.9 14l3.6-3.6 3.6 3.6 1.4-1.4L9.9 9z\"/></svg>%0D%0A') no-repeat center;background-size:1.8rem;width:3.2rem;max-width:3.2rem;cursor:pointer}.new-comment-attachment.attachment-link .icon{background:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<path d=\"M4 8H8V6H4V8Z\" fill=\"%23444444\"/>%0D%0A<path d=\"M4 3V5H12V3H4Z\" fill=\"%23444444\"/>%0D%0A<path d=\"M4 11H8V9H4V11Z\" fill=\"%23444444\"/>%0D%0A<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M1 0H15V10H13V2H3V16H10V18H1V0Z\" fill=\"%23444444\"/>%0D%0A<path d=\"M15.0198 11.9876V16.5C15.0198 16.7761 14.7959 17 14.5198 17H12.5C12.2239 17 12 16.7761 12 16.5V12.4938C12 12.2153 12.2277 11.9904 12.5062 11.9939C12.7799 11.9973 13 12.2201 13 12.4938V16H14V12.3913C14 11.5963 13.4456 11 12.6535 11H12.3861C11.5941 11 11 11.5963 11 12.3913V16.6087C11 17.4037 11.5941 18 12.3861 18H14.6139C15.4059 18 16 17.4037 16 16.6087V11.9876H15.0198Z\" fill=\"%23444444\"/>%0D%0A</svg>%0D%0A') no-repeat center}.new-comment-attachment.hyperlink .icon{background:url('data:image/svg+xml,<svg version=\"1.1\" id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" x=\"0\" y=\"0\" viewBox=\"0 0 18 18\" xml:space=\"preserve\"><style>.st0{fill:%23444}<\\/style><path class=\"st0\" d=\"M16.7 4.2l-1.3-1.3c-1.2-1.2-3.2-1.2-4.4 0l-.6.6 1.1 1.1.7-.6c.6-.6 1.5-.6 2.1 0l1.3 1.3c.6.6.6 1.5 0 2.1l-4.1 4.1c-.6.6-1.5.6-2.1 0l-1.3-1.3c-.6-.5-.6-1.4-.1-2L6.9 7.1c-1.1 1.2-1.1 3.1.1 4.3l1.3 1.3c1.2 1.2 3.2 1.2 4.4 0l4.1-4.1c1.1-1.2 1.1-3.2-.1-4.4z\"/><path class=\"st0\" d=\"M5.8 13c-.6.6-1.5.6-2.1 0l-1.3-1.3c-.6-.6-.6-1.5 0-2.1l4.1-4.1c.6-.6 1.5-.6 2.1 0l1.3 1.3c.6.6.6 1.5 0 2.1l-.6.6 1.1 1.1.6-.6c1.2-1.2 1.2-3.2 0-4.4L9.8 4.3c-1.2-1.2-3.2-1.2-4.4 0L1.3 8.4c-1.2 1.2-1.2 3.2 0 4.4l1.3 1.3c1.2 1.2 3.2 1.2 4.4 0l.6-.6-1.1-1.1-.7.6z\"/></svg>') no-repeat center}.hyperlink-input-form{padding-left:.8rem;padding-right:.8rem;display:flex;flex-direction:column;gap:.2rem}.comment-tab-container{height:100%;display:flex;flex-direction:column;flex:1}.comment-tab-container .scrollable-content-container{position:relative;flex:1;width:100%}.comment-tab-container .scrollable-content-container lib-bimplus-scrollable-container{position:absolute;top:0;bottom:0;flex:1;width:100%}.comment-tab-container .textarea-container{margin-left:.8rem}.comment-tab-container .comments-tab-attachments-section{display:inline-flex;width:100%;justify-content:space-between;margin:1rem .8rem .8rem 0}.comment-tab-container .comments-tab-attachments-section .comments-attachments-list{align-items:center;margin-left:.8rem}.comment-tab-container .comments-tab-attachments-section .add-comment{display:inline-flex;align-items:center;margin-right:.8rem}.comment-tab-container .comments-attachments-list{display:inline-flex}.comment-tab-container .comments-attachments-list .attachments-icon{height:2rem;width:2rem;margin:0 .2rem;cursor:pointer}.comment-tab-container .comments-attachments-list .tab-attachments{background:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 18 18\"><path d=\"M12 3v12H6V3h2v10h2V2.4C10 1.6 9.4 1 8.6 1H5.4C4.6 1 4 1.6 4 2.4v13.3c0 .7.6 1.3 1.4 1.3h7.3c.8 0 1.4-.6 1.4-1.4V3H12z\" fill=\"%23444\"/></svg>') no-repeat center}.comment-tab-container .comments-attachments-list .tab-attachmentlinks{background:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<path d=\"M4 8H8V6H4V8Z\" fill=\"%23444444\"/>%0D%0A<path d=\"M4 3V5H12V3H4Z\" fill=\"%23444444\"/>%0D%0A<path d=\"M4 11H8V9H4V11Z\" fill=\"%23444444\"/>%0D%0A<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M1 0H15V10H13V2H3V16H10V18H1V0Z\" fill=\"%23444444\"/>%0D%0A<path d=\"M15.0198 11.9876V16.5C15.0198 16.7761 14.7959 17 14.5198 17H12.5C12.2239 17 12 16.7761 12 16.5V12.4938C12 12.2153 12.2277 11.9904 12.5062 11.9939C12.7799 11.9973 13 12.2201 13 12.4938V16H14V12.3913C14 11.5963 13.4456 11 12.6535 11H12.3861C11.5941 11 11 11.5963 11 12.3913V16.6087C11 17.4037 11.5941 18 12.3861 18H14.6139C15.4059 18 16 17.4037 16 16.6087V11.9876H15.0198Z\" fill=\"%23444444\"/>%0D%0A</svg>%0D%0A') no-repeat center}.comment-tab-container .comments-attachments-list .tab-hyperlinks{background:url('data:image/svg+xml,<svg version=\"1.1\" id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" x=\"0\" y=\"0\" viewBox=\"0 0 18 18\" xml:space=\"preserve\"><style>.st0{fill:%23444}<\\/style><path class=\"st0\" d=\"M16.7 4.2l-1.3-1.3c-1.2-1.2-3.2-1.2-4.4 0l-.6.6 1.1 1.1.7-.6c.6-.6 1.5-.6 2.1 0l1.3 1.3c.6.6.6 1.5 0 2.1l-4.1 4.1c-.6.6-1.5.6-2.1 0l-1.3-1.3c-.6-.5-.6-1.4-.1-2L6.9 7.1c-1.1 1.2-1.1 3.1.1 4.3l1.3 1.3c1.2 1.2 3.2 1.2 4.4 0l4.1-4.1c1.1-1.2 1.1-3.2-.1-4.4z\"/><path class=\"st0\" d=\"M5.8 13c-.6.6-1.5.6-2.1 0l-1.3-1.3c-.6-.6-.6-1.5 0-2.1l4.1-4.1c.6-.6 1.5-.6 2.1 0l1.3 1.3c.6.6.6 1.5 0 2.1l-.6.6 1.1 1.1.6-.6c1.2-1.2 1.2-3.2 0-4.4L9.8 4.3c-1.2-1.2-3.2-1.2-4.4 0L1.3 8.4c-1.2 1.2-1.2 3.2 0 4.4l1.3 1.3c1.2 1.2 3.2 1.2 4.4 0l.6-.6-1.1-1.1-.7.6z\"/></svg>') no-repeat center}.comment-tab-container .comments-separator{margin:0 .8rem;border-bottom:solid .1rem var(--comments-chat-comments-separator-border-color)}.comment-tab-container textarea::-webkit-scrollbar-track{background-color:var(--main-menu-apps-container-background-color-enabled)}.comment-tab-container textarea::-webkit-scrollbar-thumb{background-color:var(--propertymanager-object-tree-scrollable-border-color);border-radius:.5rem}.comment-tab-container textarea::-webkit-scrollbar{width:.7rem;background:var(--storage-info-placeholder-text-color-enabled)}.comment-tab-container .comment-list-date{text-align:center;margin-top:1.2rem}.comment-tab-container .hidden{display:none}.comment-tab-container .no-comments-found{padding:2.5rem .5rem;color:var(--details-controls-details-not-found-text-color);text-align:center}lib-bimplus-attachments{--bim-attachment-item-border-bottom: none;--bim-attachment-delete-button-icon-color: #444;--bim-attachment-delete-button-icon-font-weight: bold;--bim-attachment-item-background-image: url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 18 18\"><path d=\"M12 3v12H6V3h2v10h2V2.4C10 1.6 9.4 1 8.6 1H5.4C4.6 1 4 1.6 4 2.4v13.3c0 .7.6 1.3 1.4 1.3h7.3c.8 0 1.4-.6 1.4-1.4V3H12z\" fill=\"%23444\"/></svg>')}lib-links-to-documents{--attachment-row-border-bottom: none;--bim-attachment-item-background-image: url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<path d=\"M4 8H8V6H4V8Z\" fill=\"%23444444\"/>%0D%0A<path d=\"M4 3V5H12V3H4Z\" fill=\"%23444444\"/>%0D%0A<path d=\"M4 11H8V9H4V11Z\" fill=\"%23444444\"/>%0D%0A<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M1 0H15V10H13V2H3V16H10V18H1V0Z\" fill=\"%23444444\"/>%0D%0A<path d=\"M15.0198 11.9876V16.5C15.0198 16.7761 14.7959 17 14.5198 17H12.5C12.2239 17 12 16.7761 12 16.5V12.4938C12 12.2153 12.2277 11.9904 12.5062 11.9939C12.7799 11.9973 13 12.2201 13 12.4938V16H14V12.3913C14 11.5963 13.4456 11 12.6535 11H12.3861C11.5941 11 11 11.5963 11 12.3913V16.6087C11 17.4037 11.5941 18 12.3861 18H14.6139C15.4059 18 16 17.4037 16 16.6087V11.9876H15.0198Z\" fill=\"%23444444\"/>%0D%0A</svg>%0D%0A');--bim-attachment-delete-button: #444;--attachment-row-margin: 0;--bim-attachment-item-background-size: 1.8rem;--bim-attachment-delete-button-font-weight: bold}\n"], dependencies: [{ kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "component", type: BimplusTextareaComponent, selector: "lib-bimplus-textarea", inputs: ["name", "placeholder", "readonly", "required", "minRows", "maxRows", "activeAutoResizeTextarea", "clearValue", "rows"], outputs: ["textAreaValueChange"] }, { kind: "component", type: BimplusCommentComponent, selector: "lib-bimplus-comment", inputs: ["api", "attachmentLinkItems", "message", "date", "action", "commentId", "isActUserAuthor", "displayname", "hyperlinks", "attachments"], outputs: ["outputActionCommentEvent", "getAttachment"] }, { kind: "component", type: BimplusButtonsRowComponent, selector: "lib-bimplus-buttons-row", inputs: ["items", "isMultiple", "canUpdateObject"], outputs: ["fileChanged", "buttonClicked"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "component", type: BimplusScrollableContainerComponent, selector: "lib-bimplus-scrollable-container" }, { kind: "component", type: BimplusInputTextFieldComponent, selector: "lib-bimplus-input-text-field", inputs: ["placeholder", "showClearButton", "validValue"], outputs: ["enterKeyPressed"] }, { kind: "component", type: BimplusAttachmentsComponent, selector: "lib-bimplus-attachments", inputs: ["api", "attachments", "closeIconTemplate", "listOnly"], outputs: ["deleteAttachment", "addAttachment", "getAttachment"] }, { kind: "component", type: LinksToDocumentsComponent, selector: "lib-links-to-documents", inputs: ["api", "canCreateAttachmentLink", "listOnly", "showEmptyMessage", "hideAttachmentSize", "attachments", "canDeleteAttachmentLink", "project", "wormholeSelector", "env", "rootObjectId"], outputs: ["attachmentsChange", "attachmentsLinkChange"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.ShadowDom }); }
|
|
346
|
+
], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "@if (!loading()) {\r\n<div class=\"comment-tab-container\">\r\n <div class=\"textarea-container\">\r\n <lib-bimplus-textarea\r\n (textAreaValueChange)=\"onTextareaValueChange($event)\"\r\n [placeholder]=\"placeholder\"\r\n [name]=\"name\"\r\n [readonly]=\"readonly\"\r\n [activeAutoResizeTextarea]=\"true\"\r\n [minRows]=\"minRows\"\r\n [maxRows]=\"maxRows\"\r\n [clearValue]=\"clearTextareaValue()\"\r\n ></lib-bimplus-textarea>\r\n </div>\r\n\r\n <lib-bimplus-attachments\r\n #attachments\r\n listOnly\r\n [class]=\"['new-comment-attachments']\"\r\n [attachments]=\"attachmentsState()\"\r\n (addAttachment)=\"onAddAttachment($event)\"\r\n (deleteAttachment)=\"onDeleteAttachment($event)\"\r\n />\r\n\r\n <lib-links-to-documents \r\n #linksToDocuments\r\n listOnly\r\n hideAttachmentSize\r\n showEmptyMessage=\"false\" \r\n [attachments]=\"attachmentLinkItems\"\r\n (attachmentsLinkChange)=\"onAttachmentsLinkChange($event)\"\r\n [api]=\"api\" \r\n [project]=\"project\"\r\n [rootObjectId]=''\r\n [canCreateAttachmentLink]=\"true\"\r\n [canDeleteAttachmentLink]=\"true\"\r\n [wormholeSelector]=\"wormholeSelector\"\r\n [env]=\"env\"\r\n [inputBaseUrl]=\"inputBaseUrl\"\r\n />\r\n\r\n @if (newCommentAttachments.length > 0) {\r\n <div class=\"new-comment-attachment-list\">\r\n <div *ngFor=\"let item of newCommentAttachments\" \r\n [ngClass]=\"'new-comment-attachment ' + item.type\"\r\n [title]=\"item.type === 'Hyperlink' ? item.url: item.name\">\r\n <div \r\n [ngClass]=\"'icon-small ' + item.type\" \r\n [title]=\"item.type === 'Hyperlink' ? item.url: item.name\">\r\n </div>\r\n <div class=\"text\">{{ item.name }} </div> \r\n <span class=\"cancel-icon\" title=\"{{ item.deleteButtonTitle}}\" (click)=\"removeNewCommentAttachment(item)\" (keydown)=\"removeNewCommentAttachmentKeypress($event, item)\"></span>\r\n </div> \r\n </div>\r\n }\r\n\r\n @if (isAddingHyperlink) {\r\n <form [formGroup]=\"hyperlinkForm\" class=\"hyperlink-input-form\">\r\n <div class=\"hyperlink-input-row\">\r\n <div class=\"link-icon icon-next-to-text-input\"></div>\r\n <lib-bimplus-input-text-field class=\"flex-grow\" formControlName=\"name\" placeholder=\"{{ '_Name' | translate }}\" (enterKeyPressed)=\"onEnterKeyPressedInHyperlinkForm()\"/>\r\n </div>\r\n <div class=\"hyperlink-input-row\">\r\n <div class=\"icon-next-to-text-input\"></div>\r\n <lib-bimplus-input-text-field class=\"flex-grow\" formControlName=\"url\" placeholder=\"{{ '_URL' | translate }}\" (enterKeyPressed)=\"onEnterKeyPressedInHyperlinkForm()\"/>\r\n </div>\r\n\r\n <lib-bimplus-buttons-row [items]=\"hyperlinkButtonRowItems\" (buttonClicked)=\"hyperlinkButtonRowButtonClicked($event)\"/>\r\n </form>\r\n }\r\n\r\n <div class=\"comments-tab-attachments-section\">\r\n <div class=\"comments-attachments-list\">\r\n <div class=\"tab-attachments icon attachments-icon hidden\"></div>\r\n <div class=\"attachment-icon icon-small interactive\" [title]=\"'_Add attachment' | translate\" (click)=\"attachments.open()\" (keydown)=\"attachments.open()\"></div>\r\n <div class=\"link-icon icon-small interactive\" [title]=\"'_Add hyperlink' | translate\" (click)=\"addHyperlinkIconClicked()\" (keydown)=\"addHyperlinkIconKeypress($event)\"></div>\r\n <div class=\"attachment-link-icon icon-small interactive\" [title]=\"'_Add_attachment_link' | translate\" (click)=\"linksToDocuments.createAttachmentLink(api!)\" (keydown)=\"linksToDocuments.createAttachmentLink(api!)\"></div>\r\n <div class=\"tab-attachmentlinks icon attachments-icon hidden\"></div>\r\n </div>\r\n <div class=\"add-comment\">\r\n <lib-bimplus-buttons-row\r\n [items]=\"buttonRowItems\"\r\n (buttonClicked)=\"buttonRowButtonClicked($event)\" />\r\n </div>\r\n </div>\r\n\r\n <div class=\"comments-separator\"></div>\r\n\r\n <div class=\"scrollable-content-container\">\r\n <lib-bimplus-scrollable-container>\r\n @if ((commentsList$ | async)?.length === 0) {\r\n <div class=\"no-comments-found\">\r\n {{ '_No comments found' | translate }}\r\n </div>\r\n } @else {\r\n @for (item of commentsList$ | async; track item) {\r\n @if(item.createdAt && isSameDate(item.createdAt)) {\r\n <div class=\"comment-list-date\">\r\n {{formatDate(item.createdAt)}}\r\n </div>\r\n }\r\n <lib-bimplus-comment\r\n (outputActionCommentEvent)=\"handleActionCommentEvent($event)\"\r\n (getAttachment)=\"onGetAttachment($event)\"\r\n [message]=\"item.text\"\r\n [api]=\"api\"\r\n [date]=\"item.createdAt ? item.createdAt : ''\"\r\n action=\"delete\"\r\n [commentId]=\"item.id\"\r\n [attachments]=\"item.attachments ?? []\"\r\n [attachmentLinkItems]=\"item.attachmentLinks ?? []\"\r\n [hyperlinks]=\"item.hyperlinks\"\r\n [isActUserAuthor]=\"isActUserAuthor(item)\"\r\n [displayname]=\"displayName(item)\">\r\n </lib-bimplus-comment>\r\n }\r\n }\r\n </lib-bimplus-scrollable-container>\r\n </div>\r\n</div>\r\n}\r\n", styles: [":host{height:100%;display:flex;flex-direction:column;flex:1}.link-icon{background:url('data:image/svg+xml,<svg version=\"1.1\" id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" x=\"0\" y=\"0\" viewBox=\"0 0 18 18\" xml:space=\"preserve\"><style>.st0{fill:%23444}<\\/style><path class=\"st0\" d=\"M16.7 4.2l-1.3-1.3c-1.2-1.2-3.2-1.2-4.4 0l-.6.6 1.1 1.1.7-.6c.6-.6 1.5-.6 2.1 0l1.3 1.3c.6.6.6 1.5 0 2.1l-4.1 4.1c-.6.6-1.5.6-2.1 0l-1.3-1.3c-.6-.5-.6-1.4-.1-2L6.9 7.1c-1.1 1.2-1.1 3.1.1 4.3l1.3 1.3c1.2 1.2 3.2 1.2 4.4 0l4.1-4.1c1.1-1.2 1.1-3.2-.1-4.4z\"/><path class=\"st0\" d=\"M5.8 13c-.6.6-1.5.6-2.1 0l-1.3-1.3c-.6-.6-.6-1.5 0-2.1l4.1-4.1c.6-.6 1.5-.6 2.1 0l1.3 1.3c.6.6.6 1.5 0 2.1l-.6.6 1.1 1.1.6-.6c1.2-1.2 1.2-3.2 0-4.4L9.8 4.3c-1.2-1.2-3.2-1.2-4.4 0L1.3 8.4c-1.2 1.2-1.2 3.2 0 4.4l1.3 1.3c1.2 1.2 3.2 1.2 4.4 0l.6-.6-1.1-1.1-.7.6z\"/></svg>') no-repeat center}.attachment-icon{background:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 18 18\"><path d=\"M12 3v12H6V3h2v10h2V2.4C10 1.6 9.4 1 8.6 1H5.4C4.6 1 4 1.6 4 2.4v13.3c0 .7.6 1.3 1.4 1.3h7.3c.8 0 1.4-.6 1.4-1.4V3H12z\" fill=\"%23444\"/></svg>') no-repeat center}.attachment-link-icon{background:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<path d=\"M4 8H8V6H4V8Z\" fill=\"%23444444\"/>%0D%0A<path d=\"M4 3V5H12V3H4Z\" fill=\"%23444444\"/>%0D%0A<path d=\"M4 11H8V9H4V11Z\" fill=\"%23444444\"/>%0D%0A<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M1 0H15V10H13V2H3V16H10V18H1V0Z\" fill=\"%23444444\"/>%0D%0A<path d=\"M15.0198 11.9876V16.5C15.0198 16.7761 14.7959 17 14.5198 17H12.5C12.2239 17 12 16.7761 12 16.5V12.4938C12 12.2153 12.2277 11.9904 12.5062 11.9939C12.7799 11.9973 13 12.2201 13 12.4938V16H14V12.3913C14 11.5963 13.4456 11 12.6535 11H12.3861C11.5941 11 11 11.5963 11 12.3913V16.6087C11 17.4037 11.5941 18 12.3861 18H14.6139C15.4059 18 16 17.4037 16 16.6087V11.9876H15.0198Z\" fill=\"%23444444\"/>%0D%0A</svg>%0D%0A') no-repeat center}.icon{height:2rem;width:2rem;margin:0 .2rem}.icon-small{height:100%;width:1.8rem;margin:0 .2rem}.icon-small.Hyperlink{background:url('data:image/svg+xml,<svg version=\"1.1\" id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" x=\"0\" y=\"0\" viewBox=\"0 0 18 18\" xml:space=\"preserve\"><style>.st0{fill:%23444}<\\/style><path class=\"st0\" d=\"M16.7 4.2l-1.3-1.3c-1.2-1.2-3.2-1.2-4.4 0l-.6.6 1.1 1.1.7-.6c.6-.6 1.5-.6 2.1 0l1.3 1.3c.6.6.6 1.5 0 2.1l-4.1 4.1c-.6.6-1.5.6-2.1 0l-1.3-1.3c-.6-.5-.6-1.4-.1-2L6.9 7.1c-1.1 1.2-1.1 3.1.1 4.3l1.3 1.3c1.2 1.2 3.2 1.2 4.4 0l4.1-4.1c1.1-1.2 1.1-3.2-.1-4.4z\"/><path class=\"st0\" d=\"M5.8 13c-.6.6-1.5.6-2.1 0l-1.3-1.3c-.6-.6-.6-1.5 0-2.1l4.1-4.1c.6-.6 1.5-.6 2.1 0l1.3 1.3c.6.6.6 1.5 0 2.1l-.6.6 1.1 1.1.6-.6c1.2-1.2 1.2-3.2 0-4.4L9.8 4.3c-1.2-1.2-3.2-1.2-4.4 0L1.3 8.4c-1.2 1.2-1.2 3.2 0 4.4l1.3 1.3c1.2 1.2 3.2 1.2 4.4 0l.6-.6-1.1-1.1-.7.6z\"/></svg>') no-repeat center}.icon-small.Attachment{background:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 18 18\"><path d=\"M12 3v12H6V3h2v10h2V2.4C10 1.6 9.4 1 8.6 1H5.4C4.6 1 4 1.6 4 2.4v13.3c0 .7.6 1.3 1.4 1.3h7.3c.8 0 1.4-.6 1.4-1.4V3H12z\" fill=\"%23444\"/></svg>') no-repeat center}.icon-small.AttachmentLink{background:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<path d=\"M4 8H8V6H4V8Z\" fill=\"%23444444\"/>%0D%0A<path d=\"M4 3V5H12V3H4Z\" fill=\"%23444444\"/>%0D%0A<path d=\"M4 11H8V9H4V11Z\" fill=\"%23444444\"/>%0D%0A<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M1 0H15V10H13V2H3V16H10V18H1V0Z\" fill=\"%23444444\"/>%0D%0A<path d=\"M15.0198 11.9876V16.5C15.0198 16.7761 14.7959 17 14.5198 17H12.5C12.2239 17 12 16.7761 12 16.5V12.4938C12 12.2153 12.2277 11.9904 12.5062 11.9939C12.7799 11.9973 13 12.2201 13 12.4938V16H14V12.3913C14 11.5963 13.4456 11 12.6535 11H12.3861C11.5941 11 11 11.5963 11 12.3913V16.6087C11 17.4037 11.5941 18 12.3861 18H14.6139C15.4059 18 16 17.4037 16 16.6087V11.9876H15.0198Z\" fill=\"%23444444\"/>%0D%0A</svg>%0D%0A') no-repeat center}.icon-next-to-text-input{width:1.8rem;margin:.3rem .2rem 0}.interactive{cursor:pointer}.flex{display:flex}.flex-grow{flex-grow:1}.hyperlink-input-row{display:flex;gap:.2rem}.hyperlink-input-row lib-bimplus-input-text-field{margin-top:.2rem}.new-comment-attachment-list{margin:0 .6rem .2rem 0}.new-comment-attachments{--bim-attachment-item-background-size: 1.8rem}.new-comment-attachment{padding-left:.8rem;display:grid;grid-template-columns:auto 1fr auto;column-gap:.4rem}.new-comment-attachment .text{line-height:2.4rem;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.new-comment-attachment .cancel-icon{flex:1;background:url('data:image/svg+xml,<svg version=\"1.1\" id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" x=\"0\" y=\"0\" width=\"18\" height=\"18\" xml:space=\"preserve\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" fill=\"%23444\" d=\"M13.5 5.4L12.1 4 8.5 7.6 4.9 4 3.5 5.4 7.1 9l-3.6 3.6L4.9 14l3.6-3.6 3.6 3.6 1.4-1.4L9.9 9z\"/></svg>%0D%0A') no-repeat center;background-size:1.8rem;width:3.2rem;max-width:3.2rem;cursor:pointer}.new-comment-attachment.attachment-link .icon{background:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<path d=\"M4 8H8V6H4V8Z\" fill=\"%23444444\"/>%0D%0A<path d=\"M4 3V5H12V3H4Z\" fill=\"%23444444\"/>%0D%0A<path d=\"M4 11H8V9H4V11Z\" fill=\"%23444444\"/>%0D%0A<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M1 0H15V10H13V2H3V16H10V18H1V0Z\" fill=\"%23444444\"/>%0D%0A<path d=\"M15.0198 11.9876V16.5C15.0198 16.7761 14.7959 17 14.5198 17H12.5C12.2239 17 12 16.7761 12 16.5V12.4938C12 12.2153 12.2277 11.9904 12.5062 11.9939C12.7799 11.9973 13 12.2201 13 12.4938V16H14V12.3913C14 11.5963 13.4456 11 12.6535 11H12.3861C11.5941 11 11 11.5963 11 12.3913V16.6087C11 17.4037 11.5941 18 12.3861 18H14.6139C15.4059 18 16 17.4037 16 16.6087V11.9876H15.0198Z\" fill=\"%23444444\"/>%0D%0A</svg>%0D%0A') no-repeat center}.new-comment-attachment.hyperlink .icon{background:url('data:image/svg+xml,<svg version=\"1.1\" id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" x=\"0\" y=\"0\" viewBox=\"0 0 18 18\" xml:space=\"preserve\"><style>.st0{fill:%23444}<\\/style><path class=\"st0\" d=\"M16.7 4.2l-1.3-1.3c-1.2-1.2-3.2-1.2-4.4 0l-.6.6 1.1 1.1.7-.6c.6-.6 1.5-.6 2.1 0l1.3 1.3c.6.6.6 1.5 0 2.1l-4.1 4.1c-.6.6-1.5.6-2.1 0l-1.3-1.3c-.6-.5-.6-1.4-.1-2L6.9 7.1c-1.1 1.2-1.1 3.1.1 4.3l1.3 1.3c1.2 1.2 3.2 1.2 4.4 0l4.1-4.1c1.1-1.2 1.1-3.2-.1-4.4z\"/><path class=\"st0\" d=\"M5.8 13c-.6.6-1.5.6-2.1 0l-1.3-1.3c-.6-.6-.6-1.5 0-2.1l4.1-4.1c.6-.6 1.5-.6 2.1 0l1.3 1.3c.6.6.6 1.5 0 2.1l-.6.6 1.1 1.1.6-.6c1.2-1.2 1.2-3.2 0-4.4L9.8 4.3c-1.2-1.2-3.2-1.2-4.4 0L1.3 8.4c-1.2 1.2-1.2 3.2 0 4.4l1.3 1.3c1.2 1.2 3.2 1.2 4.4 0l.6-.6-1.1-1.1-.7.6z\"/></svg>') no-repeat center}.hyperlink-input-form{padding-left:.8rem;padding-right:.8rem;display:flex;flex-direction:column;gap:.2rem}.comment-tab-container{height:100%;display:flex;flex-direction:column;flex:1}.comment-tab-container .scrollable-content-container{position:relative;flex:1;width:100%}.comment-tab-container .scrollable-content-container lib-bimplus-scrollable-container{position:absolute;top:0;bottom:0;flex:1;width:100%}.comment-tab-container .textarea-container{margin-left:.8rem}.comment-tab-container .comments-tab-attachments-section{display:inline-flex;width:100%;justify-content:space-between;margin:1rem .8rem .8rem 0}.comment-tab-container .comments-tab-attachments-section .comments-attachments-list{align-items:center;margin-left:.8rem}.comment-tab-container .comments-tab-attachments-section .add-comment{display:inline-flex;align-items:center;margin-right:.8rem}.comment-tab-container .comments-attachments-list{display:inline-flex}.comment-tab-container .comments-attachments-list .attachments-icon{height:2rem;width:2rem;margin:0 .2rem;cursor:pointer}.comment-tab-container .comments-attachments-list .tab-attachments{background:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 18 18\"><path d=\"M12 3v12H6V3h2v10h2V2.4C10 1.6 9.4 1 8.6 1H5.4C4.6 1 4 1.6 4 2.4v13.3c0 .7.6 1.3 1.4 1.3h7.3c.8 0 1.4-.6 1.4-1.4V3H12z\" fill=\"%23444\"/></svg>') no-repeat center}.comment-tab-container .comments-attachments-list .tab-attachmentlinks{background:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<path d=\"M4 8H8V6H4V8Z\" fill=\"%23444444\"/>%0D%0A<path d=\"M4 3V5H12V3H4Z\" fill=\"%23444444\"/>%0D%0A<path d=\"M4 11H8V9H4V11Z\" fill=\"%23444444\"/>%0D%0A<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M1 0H15V10H13V2H3V16H10V18H1V0Z\" fill=\"%23444444\"/>%0D%0A<path d=\"M15.0198 11.9876V16.5C15.0198 16.7761 14.7959 17 14.5198 17H12.5C12.2239 17 12 16.7761 12 16.5V12.4938C12 12.2153 12.2277 11.9904 12.5062 11.9939C12.7799 11.9973 13 12.2201 13 12.4938V16H14V12.3913C14 11.5963 13.4456 11 12.6535 11H12.3861C11.5941 11 11 11.5963 11 12.3913V16.6087C11 17.4037 11.5941 18 12.3861 18H14.6139C15.4059 18 16 17.4037 16 16.6087V11.9876H15.0198Z\" fill=\"%23444444\"/>%0D%0A</svg>%0D%0A') no-repeat center}.comment-tab-container .comments-attachments-list .tab-hyperlinks{background:url('data:image/svg+xml,<svg version=\"1.1\" id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" x=\"0\" y=\"0\" viewBox=\"0 0 18 18\" xml:space=\"preserve\"><style>.st0{fill:%23444}<\\/style><path class=\"st0\" d=\"M16.7 4.2l-1.3-1.3c-1.2-1.2-3.2-1.2-4.4 0l-.6.6 1.1 1.1.7-.6c.6-.6 1.5-.6 2.1 0l1.3 1.3c.6.6.6 1.5 0 2.1l-4.1 4.1c-.6.6-1.5.6-2.1 0l-1.3-1.3c-.6-.5-.6-1.4-.1-2L6.9 7.1c-1.1 1.2-1.1 3.1.1 4.3l1.3 1.3c1.2 1.2 3.2 1.2 4.4 0l4.1-4.1c1.1-1.2 1.1-3.2-.1-4.4z\"/><path class=\"st0\" d=\"M5.8 13c-.6.6-1.5.6-2.1 0l-1.3-1.3c-.6-.6-.6-1.5 0-2.1l4.1-4.1c.6-.6 1.5-.6 2.1 0l1.3 1.3c.6.6.6 1.5 0 2.1l-.6.6 1.1 1.1.6-.6c1.2-1.2 1.2-3.2 0-4.4L9.8 4.3c-1.2-1.2-3.2-1.2-4.4 0L1.3 8.4c-1.2 1.2-1.2 3.2 0 4.4l1.3 1.3c1.2 1.2 3.2 1.2 4.4 0l.6-.6-1.1-1.1-.7.6z\"/></svg>') no-repeat center}.comment-tab-container .comments-separator{margin:0 .8rem;border-bottom:solid .1rem var(--comments-chat-comments-separator-border-color)}.comment-tab-container textarea::-webkit-scrollbar-track{background-color:var(--main-menu-apps-container-background-color-enabled)}.comment-tab-container textarea::-webkit-scrollbar-thumb{background-color:var(--propertymanager-object-tree-scrollable-border-color);border-radius:.5rem}.comment-tab-container textarea::-webkit-scrollbar{width:.7rem;background:var(--storage-info-placeholder-text-color-enabled)}.comment-tab-container .comment-list-date{text-align:center;margin-top:1.2rem}.comment-tab-container .hidden{display:none}.comment-tab-container .no-comments-found{padding:2.5rem .5rem;color:var(--details-controls-details-not-found-text-color);text-align:center}lib-bimplus-attachments{--bim-attachment-item-border-bottom: none;--bim-attachment-delete-button-icon-color: #444;--bim-attachment-delete-button-icon-font-weight: bold;--bim-attachment-item-background-image: url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 18 18\"><path d=\"M12 3v12H6V3h2v10h2V2.4C10 1.6 9.4 1 8.6 1H5.4C4.6 1 4 1.6 4 2.4v13.3c0 .7.6 1.3 1.4 1.3h7.3c.8 0 1.4-.6 1.4-1.4V3H12z\" fill=\"%23444\"/></svg>')}lib-links-to-documents{--attachment-row-border-bottom: none;--bim-attachment-item-background-image: url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<path d=\"M4 8H8V6H4V8Z\" fill=\"%23444444\"/>%0D%0A<path d=\"M4 3V5H12V3H4Z\" fill=\"%23444444\"/>%0D%0A<path d=\"M4 11H8V9H4V11Z\" fill=\"%23444444\"/>%0D%0A<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M1 0H15V10H13V2H3V16H10V18H1V0Z\" fill=\"%23444444\"/>%0D%0A<path d=\"M15.0198 11.9876V16.5C15.0198 16.7761 14.7959 17 14.5198 17H12.5C12.2239 17 12 16.7761 12 16.5V12.4938C12 12.2153 12.2277 11.9904 12.5062 11.9939C12.7799 11.9973 13 12.2201 13 12.4938V16H14V12.3913C14 11.5963 13.4456 11 12.6535 11H12.3861C11.5941 11 11 11.5963 11 12.3913V16.6087C11 17.4037 11.5941 18 12.3861 18H14.6139C15.4059 18 16 17.4037 16 16.6087V11.9876H15.0198Z\" fill=\"%23444444\"/>%0D%0A</svg>%0D%0A');--bim-attachment-delete-button: #444;--attachment-row-margin: 0;--bim-attachment-item-background-size: 1.8rem;--bim-attachment-delete-button-font-weight: bold}\n"], dependencies: [{ kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "component", type: BimplusTextareaComponent, selector: "lib-bimplus-textarea", inputs: ["name", "placeholder", "readonly", "required", "minRows", "maxRows", "activeAutoResizeTextarea", "clearValue", "rows"], outputs: ["textAreaValueChange"] }, { kind: "component", type: BimplusCommentComponent, selector: "lib-bimplus-comment", inputs: ["api", "attachmentLinkItems", "message", "date", "action", "commentId", "isActUserAuthor", "displayname", "hyperlinks", "attachments"], outputs: ["outputActionCommentEvent", "getAttachment"] }, { kind: "component", type: BimplusButtonsRowComponent, selector: "lib-bimplus-buttons-row", inputs: ["items", "isMultiple", "canUpdateObject"], outputs: ["fileChanged", "buttonClicked"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "component", type: BimplusScrollableContainerComponent, selector: "lib-bimplus-scrollable-container" }, { kind: "component", type: BimplusInputTextFieldComponent, selector: "lib-bimplus-input-text-field", inputs: ["placeholder", "showClearButton", "validValue"], outputs: ["enterKeyPressed"] }, { kind: "component", type: BimplusAttachmentsComponent, selector: "lib-bimplus-attachments", inputs: ["api", "attachments", "closeIconTemplate", "listOnly"], outputs: ["deleteAttachment", "addAttachment", "getAttachment"] }, { kind: "component", type: LinksToDocumentsComponent, selector: "lib-links-to-documents", inputs: ["api", "canCreateAttachmentLink", "listOnly", "showEmptyMessage", "hideAttachmentSize", "inputBaseUrl", "attachments", "canDeleteAttachmentLink", "project", "wormholeSelector", "env", "rootObjectId"], outputs: ["attachmentsChange", "attachmentsLinkChange"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.ShadowDom }); }
|
|
346
347
|
}
|
|
347
348
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: BimplusObjectCommentsListComponent, decorators: [{
|
|
348
349
|
type: Component,
|
|
@@ -365,7 +366,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImpo
|
|
|
365
366
|
BimplusObjectCommentsListService,
|
|
366
367
|
BimplusAttachmentsService,
|
|
367
368
|
{ provide: BIMPLUS_ATTACHMENTS_CONFIG, useValue: config },
|
|
368
|
-
], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.ShadowDom, template: "@if (!loading()) {\r\n<div class=\"comment-tab-container\">\r\n <div class=\"textarea-container\">\r\n <lib-bimplus-textarea\r\n (textAreaValueChange)=\"onTextareaValueChange($event)\"\r\n [placeholder]=\"placeholder\"\r\n [name]=\"name\"\r\n [readonly]=\"readonly\"\r\n [activeAutoResizeTextarea]=\"true\"\r\n [minRows]=\"minRows\"\r\n [maxRows]=\"maxRows\"\r\n [clearValue]=\"clearTextareaValue()\"\r\n ></lib-bimplus-textarea>\r\n </div>\r\n\r\n <lib-bimplus-attachments\r\n #attachments\r\n listOnly\r\n [class]=\"['new-comment-attachments']\"\r\n [attachments]=\"attachmentsState()\"\r\n (addAttachment)=\"onAddAttachment($event)\"\r\n (deleteAttachment)=\"onDeleteAttachment($event)\"\r\n />\r\n\r\n <lib-links-to-documents \r\n #linksToDocuments\r\n listOnly\r\n hideAttachmentSize\r\n showEmptyMessage=\"false\" \r\n [attachments]=\"attachmentLinkItems\"\r\n (attachmentsLinkChange)=\"onAttachmentsLinkChange($event)\"\r\n [api]=\"api\" \r\n [project]=\"project\"\r\n [rootObjectId]=''\r\n [canCreateAttachmentLink]=\"true\"\r\n [canDeleteAttachmentLink]=\"true\"\r\n [wormholeSelector]=\"wormholeSelector\"\r\n [env]=\"env\"\r\n />\r\n\r\n @if (newCommentAttachments.length > 0) {\r\n <div class=\"new-comment-attachment-list\">\r\n <div *ngFor=\"let item of newCommentAttachments\" \r\n [ngClass]=\"'new-comment-attachment ' + item.type\"\r\n [title]=\"item.type === 'Hyperlink' ? item.url: item.name\">\r\n <div \r\n [ngClass]=\"'icon-small ' + item.type\" \r\n [title]=\"item.type === 'Hyperlink' ? item.url: item.name\">\r\n </div>\r\n <div class=\"text\">{{ item.name }} </div> \r\n <span class=\"cancel-icon\" title=\"{{ item.deleteButtonTitle}}\" (click)=\"removeNewCommentAttachment(item)\" (keydown)=\"removeNewCommentAttachmentKeypress($event, item)\"></span>\r\n </div> \r\n </div>\r\n }\r\n\r\n @if (isAddingHyperlink) {\r\n <form [formGroup]=\"hyperlinkForm\" class=\"hyperlink-input-form\">\r\n <div class=\"hyperlink-input-row\">\r\n <div class=\"link-icon icon-next-to-text-input\"></div>\r\n <lib-bimplus-input-text-field class=\"flex-grow\" formControlName=\"name\" placeholder=\"{{ '_Name' | translate }}\" (enterKeyPressed)=\"onEnterKeyPressedInHyperlinkForm()\"/>\r\n </div>\r\n <div class=\"hyperlink-input-row\">\r\n <div class=\"icon-next-to-text-input\"></div>\r\n <lib-bimplus-input-text-field class=\"flex-grow\" formControlName=\"url\" placeholder=\"{{ '_URL' | translate }}\" (enterKeyPressed)=\"onEnterKeyPressedInHyperlinkForm()\"/>\r\n </div>\r\n\r\n <lib-bimplus-buttons-row [items]=\"hyperlinkButtonRowItems\" (buttonClicked)=\"hyperlinkButtonRowButtonClicked($event)\"/>\r\n </form>\r\n }\r\n\r\n <div class=\"comments-tab-attachments-section\">\r\n <div class=\"comments-attachments-list\">\r\n <div class=\"tab-attachments icon attachments-icon hidden\"></div>\r\n <div class=\"attachment-icon icon-small interactive\" [title]=\"'_Add attachment' | translate\" (click)=\"attachments.open()\" (keydown)=\"attachments.open()\"></div>\r\n <div class=\"link-icon icon-small interactive\" [title]=\"'_Add hyperlink' | translate\" (click)=\"addHyperlinkIconClicked()\" (keydown)=\"addHyperlinkIconKeypress($event)\"></div>\r\n <div class=\"attachment-link-icon icon-small interactive\" [title]=\"'_Add_attachment_link' | translate\" (click)=\"linksToDocuments.createAttachmentLink(api!)\" (keydown)=\"linksToDocuments.createAttachmentLink(api!)\"></div>\r\n <div class=\"tab-attachmentlinks icon attachments-icon hidden\"></div>\r\n </div>\r\n <div class=\"add-comment\">\r\n <lib-bimplus-buttons-row\r\n [items]=\"buttonRowItems\"\r\n (buttonClicked)=\"buttonRowButtonClicked($event)\" />\r\n </div>\r\n </div>\r\n\r\n <div class=\"comments-separator\"></div>\r\n\r\n <div class=\"scrollable-content-container\">\r\n <lib-bimplus-scrollable-container>\r\n @if ((commentsList$ | async)?.length === 0) {\r\n <div class=\"no-comments-found\">\r\n {{ '_No comments found' | translate }}\r\n </div>\r\n } @else {\r\n @for (item of commentsList$ | async; track item) {\r\n @if(item.createdAt && isSameDate(item.createdAt)) {\r\n <div class=\"comment-list-date\">\r\n {{formatDate(item.createdAt)}}\r\n </div>\r\n }\r\n <lib-bimplus-comment\r\n (outputActionCommentEvent)=\"handleActionCommentEvent($event)\"\r\n (getAttachment)=\"onGetAttachment($event)\"\r\n [message]=\"item.text\"\r\n [api]=\"api\"\r\n [date]=\"item.createdAt ? item.createdAt : ''\"\r\n action=\"delete\"\r\n [commentId]=\"item.id\"\r\n [attachments]=\"item.attachments ?? []\"\r\n [attachmentLinkItems]=\"item.attachmentLinks ?? []\"\r\n [hyperlinks]=\"item.hyperlinks\"\r\n [isActUserAuthor]=\"isActUserAuthor(item)\"\r\n [displayname]=\"displayName(item)\">\r\n </lib-bimplus-comment>\r\n }\r\n }\r\n </lib-bimplus-scrollable-container>\r\n </div>\r\n</div>\r\n}\r\n", styles: [":host{height:100%;display:flex;flex-direction:column;flex:1}.link-icon{background:url('data:image/svg+xml,<svg version=\"1.1\" id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" x=\"0\" y=\"0\" viewBox=\"0 0 18 18\" xml:space=\"preserve\"><style>.st0{fill:%23444}<\\/style><path class=\"st0\" d=\"M16.7 4.2l-1.3-1.3c-1.2-1.2-3.2-1.2-4.4 0l-.6.6 1.1 1.1.7-.6c.6-.6 1.5-.6 2.1 0l1.3 1.3c.6.6.6 1.5 0 2.1l-4.1 4.1c-.6.6-1.5.6-2.1 0l-1.3-1.3c-.6-.5-.6-1.4-.1-2L6.9 7.1c-1.1 1.2-1.1 3.1.1 4.3l1.3 1.3c1.2 1.2 3.2 1.2 4.4 0l4.1-4.1c1.1-1.2 1.1-3.2-.1-4.4z\"/><path class=\"st0\" d=\"M5.8 13c-.6.6-1.5.6-2.1 0l-1.3-1.3c-.6-.6-.6-1.5 0-2.1l4.1-4.1c.6-.6 1.5-.6 2.1 0l1.3 1.3c.6.6.6 1.5 0 2.1l-.6.6 1.1 1.1.6-.6c1.2-1.2 1.2-3.2 0-4.4L9.8 4.3c-1.2-1.2-3.2-1.2-4.4 0L1.3 8.4c-1.2 1.2-1.2 3.2 0 4.4l1.3 1.3c1.2 1.2 3.2 1.2 4.4 0l.6-.6-1.1-1.1-.7.6z\"/></svg>') no-repeat center}.attachment-icon{background:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 18 18\"><path d=\"M12 3v12H6V3h2v10h2V2.4C10 1.6 9.4 1 8.6 1H5.4C4.6 1 4 1.6 4 2.4v13.3c0 .7.6 1.3 1.4 1.3h7.3c.8 0 1.4-.6 1.4-1.4V3H12z\" fill=\"%23444\"/></svg>') no-repeat center}.attachment-link-icon{background:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<path d=\"M4 8H8V6H4V8Z\" fill=\"%23444444\"/>%0D%0A<path d=\"M4 3V5H12V3H4Z\" fill=\"%23444444\"/>%0D%0A<path d=\"M4 11H8V9H4V11Z\" fill=\"%23444444\"/>%0D%0A<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M1 0H15V10H13V2H3V16H10V18H1V0Z\" fill=\"%23444444\"/>%0D%0A<path d=\"M15.0198 11.9876V16.5C15.0198 16.7761 14.7959 17 14.5198 17H12.5C12.2239 17 12 16.7761 12 16.5V12.4938C12 12.2153 12.2277 11.9904 12.5062 11.9939C12.7799 11.9973 13 12.2201 13 12.4938V16H14V12.3913C14 11.5963 13.4456 11 12.6535 11H12.3861C11.5941 11 11 11.5963 11 12.3913V16.6087C11 17.4037 11.5941 18 12.3861 18H14.6139C15.4059 18 16 17.4037 16 16.6087V11.9876H15.0198Z\" fill=\"%23444444\"/>%0D%0A</svg>%0D%0A') no-repeat center}.icon{height:2rem;width:2rem;margin:0 .2rem}.icon-small{height:100%;width:1.8rem;margin:0 .2rem}.icon-small.Hyperlink{background:url('data:image/svg+xml,<svg version=\"1.1\" id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" x=\"0\" y=\"0\" viewBox=\"0 0 18 18\" xml:space=\"preserve\"><style>.st0{fill:%23444}<\\/style><path class=\"st0\" d=\"M16.7 4.2l-1.3-1.3c-1.2-1.2-3.2-1.2-4.4 0l-.6.6 1.1 1.1.7-.6c.6-.6 1.5-.6 2.1 0l1.3 1.3c.6.6.6 1.5 0 2.1l-4.1 4.1c-.6.6-1.5.6-2.1 0l-1.3-1.3c-.6-.5-.6-1.4-.1-2L6.9 7.1c-1.1 1.2-1.1 3.1.1 4.3l1.3 1.3c1.2 1.2 3.2 1.2 4.4 0l4.1-4.1c1.1-1.2 1.1-3.2-.1-4.4z\"/><path class=\"st0\" d=\"M5.8 13c-.6.6-1.5.6-2.1 0l-1.3-1.3c-.6-.6-.6-1.5 0-2.1l4.1-4.1c.6-.6 1.5-.6 2.1 0l1.3 1.3c.6.6.6 1.5 0 2.1l-.6.6 1.1 1.1.6-.6c1.2-1.2 1.2-3.2 0-4.4L9.8 4.3c-1.2-1.2-3.2-1.2-4.4 0L1.3 8.4c-1.2 1.2-1.2 3.2 0 4.4l1.3 1.3c1.2 1.2 3.2 1.2 4.4 0l.6-.6-1.1-1.1-.7.6z\"/></svg>') no-repeat center}.icon-small.Attachment{background:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 18 18\"><path d=\"M12 3v12H6V3h2v10h2V2.4C10 1.6 9.4 1 8.6 1H5.4C4.6 1 4 1.6 4 2.4v13.3c0 .7.6 1.3 1.4 1.3h7.3c.8 0 1.4-.6 1.4-1.4V3H12z\" fill=\"%23444\"/></svg>') no-repeat center}.icon-small.AttachmentLink{background:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<path d=\"M4 8H8V6H4V8Z\" fill=\"%23444444\"/>%0D%0A<path d=\"M4 3V5H12V3H4Z\" fill=\"%23444444\"/>%0D%0A<path d=\"M4 11H8V9H4V11Z\" fill=\"%23444444\"/>%0D%0A<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M1 0H15V10H13V2H3V16H10V18H1V0Z\" fill=\"%23444444\"/>%0D%0A<path d=\"M15.0198 11.9876V16.5C15.0198 16.7761 14.7959 17 14.5198 17H12.5C12.2239 17 12 16.7761 12 16.5V12.4938C12 12.2153 12.2277 11.9904 12.5062 11.9939C12.7799 11.9973 13 12.2201 13 12.4938V16H14V12.3913C14 11.5963 13.4456 11 12.6535 11H12.3861C11.5941 11 11 11.5963 11 12.3913V16.6087C11 17.4037 11.5941 18 12.3861 18H14.6139C15.4059 18 16 17.4037 16 16.6087V11.9876H15.0198Z\" fill=\"%23444444\"/>%0D%0A</svg>%0D%0A') no-repeat center}.icon-next-to-text-input{width:1.8rem;margin:.3rem .2rem 0}.interactive{cursor:pointer}.flex{display:flex}.flex-grow{flex-grow:1}.hyperlink-input-row{display:flex;gap:.2rem}.hyperlink-input-row lib-bimplus-input-text-field{margin-top:.2rem}.new-comment-attachment-list{margin:0 .6rem .2rem 0}.new-comment-attachments{--bim-attachment-item-background-size: 1.8rem}.new-comment-attachment{padding-left:.8rem;display:grid;grid-template-columns:auto 1fr auto;column-gap:.4rem}.new-comment-attachment .text{line-height:2.4rem;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.new-comment-attachment .cancel-icon{flex:1;background:url('data:image/svg+xml,<svg version=\"1.1\" id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" x=\"0\" y=\"0\" width=\"18\" height=\"18\" xml:space=\"preserve\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" fill=\"%23444\" d=\"M13.5 5.4L12.1 4 8.5 7.6 4.9 4 3.5 5.4 7.1 9l-3.6 3.6L4.9 14l3.6-3.6 3.6 3.6 1.4-1.4L9.9 9z\"/></svg>%0D%0A') no-repeat center;background-size:1.8rem;width:3.2rem;max-width:3.2rem;cursor:pointer}.new-comment-attachment.attachment-link .icon{background:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<path d=\"M4 8H8V6H4V8Z\" fill=\"%23444444\"/>%0D%0A<path d=\"M4 3V5H12V3H4Z\" fill=\"%23444444\"/>%0D%0A<path d=\"M4 11H8V9H4V11Z\" fill=\"%23444444\"/>%0D%0A<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M1 0H15V10H13V2H3V16H10V18H1V0Z\" fill=\"%23444444\"/>%0D%0A<path d=\"M15.0198 11.9876V16.5C15.0198 16.7761 14.7959 17 14.5198 17H12.5C12.2239 17 12 16.7761 12 16.5V12.4938C12 12.2153 12.2277 11.9904 12.5062 11.9939C12.7799 11.9973 13 12.2201 13 12.4938V16H14V12.3913C14 11.5963 13.4456 11 12.6535 11H12.3861C11.5941 11 11 11.5963 11 12.3913V16.6087C11 17.4037 11.5941 18 12.3861 18H14.6139C15.4059 18 16 17.4037 16 16.6087V11.9876H15.0198Z\" fill=\"%23444444\"/>%0D%0A</svg>%0D%0A') no-repeat center}.new-comment-attachment.hyperlink .icon{background:url('data:image/svg+xml,<svg version=\"1.1\" id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" x=\"0\" y=\"0\" viewBox=\"0 0 18 18\" xml:space=\"preserve\"><style>.st0{fill:%23444}<\\/style><path class=\"st0\" d=\"M16.7 4.2l-1.3-1.3c-1.2-1.2-3.2-1.2-4.4 0l-.6.6 1.1 1.1.7-.6c.6-.6 1.5-.6 2.1 0l1.3 1.3c.6.6.6 1.5 0 2.1l-4.1 4.1c-.6.6-1.5.6-2.1 0l-1.3-1.3c-.6-.5-.6-1.4-.1-2L6.9 7.1c-1.1 1.2-1.1 3.1.1 4.3l1.3 1.3c1.2 1.2 3.2 1.2 4.4 0l4.1-4.1c1.1-1.2 1.1-3.2-.1-4.4z\"/><path class=\"st0\" d=\"M5.8 13c-.6.6-1.5.6-2.1 0l-1.3-1.3c-.6-.6-.6-1.5 0-2.1l4.1-4.1c.6-.6 1.5-.6 2.1 0l1.3 1.3c.6.6.6 1.5 0 2.1l-.6.6 1.1 1.1.6-.6c1.2-1.2 1.2-3.2 0-4.4L9.8 4.3c-1.2-1.2-3.2-1.2-4.4 0L1.3 8.4c-1.2 1.2-1.2 3.2 0 4.4l1.3 1.3c1.2 1.2 3.2 1.2 4.4 0l.6-.6-1.1-1.1-.7.6z\"/></svg>') no-repeat center}.hyperlink-input-form{padding-left:.8rem;padding-right:.8rem;display:flex;flex-direction:column;gap:.2rem}.comment-tab-container{height:100%;display:flex;flex-direction:column;flex:1}.comment-tab-container .scrollable-content-container{position:relative;flex:1;width:100%}.comment-tab-container .scrollable-content-container lib-bimplus-scrollable-container{position:absolute;top:0;bottom:0;flex:1;width:100%}.comment-tab-container .textarea-container{margin-left:.8rem}.comment-tab-container .comments-tab-attachments-section{display:inline-flex;width:100%;justify-content:space-between;margin:1rem .8rem .8rem 0}.comment-tab-container .comments-tab-attachments-section .comments-attachments-list{align-items:center;margin-left:.8rem}.comment-tab-container .comments-tab-attachments-section .add-comment{display:inline-flex;align-items:center;margin-right:.8rem}.comment-tab-container .comments-attachments-list{display:inline-flex}.comment-tab-container .comments-attachments-list .attachments-icon{height:2rem;width:2rem;margin:0 .2rem;cursor:pointer}.comment-tab-container .comments-attachments-list .tab-attachments{background:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 18 18\"><path d=\"M12 3v12H6V3h2v10h2V2.4C10 1.6 9.4 1 8.6 1H5.4C4.6 1 4 1.6 4 2.4v13.3c0 .7.6 1.3 1.4 1.3h7.3c.8 0 1.4-.6 1.4-1.4V3H12z\" fill=\"%23444\"/></svg>') no-repeat center}.comment-tab-container .comments-attachments-list .tab-attachmentlinks{background:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<path d=\"M4 8H8V6H4V8Z\" fill=\"%23444444\"/>%0D%0A<path d=\"M4 3V5H12V3H4Z\" fill=\"%23444444\"/>%0D%0A<path d=\"M4 11H8V9H4V11Z\" fill=\"%23444444\"/>%0D%0A<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M1 0H15V10H13V2H3V16H10V18H1V0Z\" fill=\"%23444444\"/>%0D%0A<path d=\"M15.0198 11.9876V16.5C15.0198 16.7761 14.7959 17 14.5198 17H12.5C12.2239 17 12 16.7761 12 16.5V12.4938C12 12.2153 12.2277 11.9904 12.5062 11.9939C12.7799 11.9973 13 12.2201 13 12.4938V16H14V12.3913C14 11.5963 13.4456 11 12.6535 11H12.3861C11.5941 11 11 11.5963 11 12.3913V16.6087C11 17.4037 11.5941 18 12.3861 18H14.6139C15.4059 18 16 17.4037 16 16.6087V11.9876H15.0198Z\" fill=\"%23444444\"/>%0D%0A</svg>%0D%0A') no-repeat center}.comment-tab-container .comments-attachments-list .tab-hyperlinks{background:url('data:image/svg+xml,<svg version=\"1.1\" id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" x=\"0\" y=\"0\" viewBox=\"0 0 18 18\" xml:space=\"preserve\"><style>.st0{fill:%23444}<\\/style><path class=\"st0\" d=\"M16.7 4.2l-1.3-1.3c-1.2-1.2-3.2-1.2-4.4 0l-.6.6 1.1 1.1.7-.6c.6-.6 1.5-.6 2.1 0l1.3 1.3c.6.6.6 1.5 0 2.1l-4.1 4.1c-.6.6-1.5.6-2.1 0l-1.3-1.3c-.6-.5-.6-1.4-.1-2L6.9 7.1c-1.1 1.2-1.1 3.1.1 4.3l1.3 1.3c1.2 1.2 3.2 1.2 4.4 0l4.1-4.1c1.1-1.2 1.1-3.2-.1-4.4z\"/><path class=\"st0\" d=\"M5.8 13c-.6.6-1.5.6-2.1 0l-1.3-1.3c-.6-.6-.6-1.5 0-2.1l4.1-4.1c.6-.6 1.5-.6 2.1 0l1.3 1.3c.6.6.6 1.5 0 2.1l-.6.6 1.1 1.1.6-.6c1.2-1.2 1.2-3.2 0-4.4L9.8 4.3c-1.2-1.2-3.2-1.2-4.4 0L1.3 8.4c-1.2 1.2-1.2 3.2 0 4.4l1.3 1.3c1.2 1.2 3.2 1.2 4.4 0l.6-.6-1.1-1.1-.7.6z\"/></svg>') no-repeat center}.comment-tab-container .comments-separator{margin:0 .8rem;border-bottom:solid .1rem var(--comments-chat-comments-separator-border-color)}.comment-tab-container textarea::-webkit-scrollbar-track{background-color:var(--main-menu-apps-container-background-color-enabled)}.comment-tab-container textarea::-webkit-scrollbar-thumb{background-color:var(--propertymanager-object-tree-scrollable-border-color);border-radius:.5rem}.comment-tab-container textarea::-webkit-scrollbar{width:.7rem;background:var(--storage-info-placeholder-text-color-enabled)}.comment-tab-container .comment-list-date{text-align:center;margin-top:1.2rem}.comment-tab-container .hidden{display:none}.comment-tab-container .no-comments-found{padding:2.5rem .5rem;color:var(--details-controls-details-not-found-text-color);text-align:center}lib-bimplus-attachments{--bim-attachment-item-border-bottom: none;--bim-attachment-delete-button-icon-color: #444;--bim-attachment-delete-button-icon-font-weight: bold;--bim-attachment-item-background-image: url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 18 18\"><path d=\"M12 3v12H6V3h2v10h2V2.4C10 1.6 9.4 1 8.6 1H5.4C4.6 1 4 1.6 4 2.4v13.3c0 .7.6 1.3 1.4 1.3h7.3c.8 0 1.4-.6 1.4-1.4V3H12z\" fill=\"%23444\"/></svg>')}lib-links-to-documents{--attachment-row-border-bottom: none;--bim-attachment-item-background-image: url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<path d=\"M4 8H8V6H4V8Z\" fill=\"%23444444\"/>%0D%0A<path d=\"M4 3V5H12V3H4Z\" fill=\"%23444444\"/>%0D%0A<path d=\"M4 11H8V9H4V11Z\" fill=\"%23444444\"/>%0D%0A<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M1 0H15V10H13V2H3V16H10V18H1V0Z\" fill=\"%23444444\"/>%0D%0A<path d=\"M15.0198 11.9876V16.5C15.0198 16.7761 14.7959 17 14.5198 17H12.5C12.2239 17 12 16.7761 12 16.5V12.4938C12 12.2153 12.2277 11.9904 12.5062 11.9939C12.7799 11.9973 13 12.2201 13 12.4938V16H14V12.3913C14 11.5963 13.4456 11 12.6535 11H12.3861C11.5941 11 11 11.5963 11 12.3913V16.6087C11 17.4037 11.5941 18 12.3861 18H14.6139C15.4059 18 16 17.4037 16 16.6087V11.9876H15.0198Z\" fill=\"%23444444\"/>%0D%0A</svg>%0D%0A');--bim-attachment-delete-button: #444;--attachment-row-margin: 0;--bim-attachment-item-background-size: 1.8rem;--bim-attachment-delete-button-font-weight: bold}\n"] }]
|
|
369
|
+
], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.ShadowDom, template: "@if (!loading()) {\r\n<div class=\"comment-tab-container\">\r\n <div class=\"textarea-container\">\r\n <lib-bimplus-textarea\r\n (textAreaValueChange)=\"onTextareaValueChange($event)\"\r\n [placeholder]=\"placeholder\"\r\n [name]=\"name\"\r\n [readonly]=\"readonly\"\r\n [activeAutoResizeTextarea]=\"true\"\r\n [minRows]=\"minRows\"\r\n [maxRows]=\"maxRows\"\r\n [clearValue]=\"clearTextareaValue()\"\r\n ></lib-bimplus-textarea>\r\n </div>\r\n\r\n <lib-bimplus-attachments\r\n #attachments\r\n listOnly\r\n [class]=\"['new-comment-attachments']\"\r\n [attachments]=\"attachmentsState()\"\r\n (addAttachment)=\"onAddAttachment($event)\"\r\n (deleteAttachment)=\"onDeleteAttachment($event)\"\r\n />\r\n\r\n <lib-links-to-documents \r\n #linksToDocuments\r\n listOnly\r\n hideAttachmentSize\r\n showEmptyMessage=\"false\" \r\n [attachments]=\"attachmentLinkItems\"\r\n (attachmentsLinkChange)=\"onAttachmentsLinkChange($event)\"\r\n [api]=\"api\" \r\n [project]=\"project\"\r\n [rootObjectId]=''\r\n [canCreateAttachmentLink]=\"true\"\r\n [canDeleteAttachmentLink]=\"true\"\r\n [wormholeSelector]=\"wormholeSelector\"\r\n [env]=\"env\"\r\n [inputBaseUrl]=\"inputBaseUrl\"\r\n />\r\n\r\n @if (newCommentAttachments.length > 0) {\r\n <div class=\"new-comment-attachment-list\">\r\n <div *ngFor=\"let item of newCommentAttachments\" \r\n [ngClass]=\"'new-comment-attachment ' + item.type\"\r\n [title]=\"item.type === 'Hyperlink' ? item.url: item.name\">\r\n <div \r\n [ngClass]=\"'icon-small ' + item.type\" \r\n [title]=\"item.type === 'Hyperlink' ? item.url: item.name\">\r\n </div>\r\n <div class=\"text\">{{ item.name }} </div> \r\n <span class=\"cancel-icon\" title=\"{{ item.deleteButtonTitle}}\" (click)=\"removeNewCommentAttachment(item)\" (keydown)=\"removeNewCommentAttachmentKeypress($event, item)\"></span>\r\n </div> \r\n </div>\r\n }\r\n\r\n @if (isAddingHyperlink) {\r\n <form [formGroup]=\"hyperlinkForm\" class=\"hyperlink-input-form\">\r\n <div class=\"hyperlink-input-row\">\r\n <div class=\"link-icon icon-next-to-text-input\"></div>\r\n <lib-bimplus-input-text-field class=\"flex-grow\" formControlName=\"name\" placeholder=\"{{ '_Name' | translate }}\" (enterKeyPressed)=\"onEnterKeyPressedInHyperlinkForm()\"/>\r\n </div>\r\n <div class=\"hyperlink-input-row\">\r\n <div class=\"icon-next-to-text-input\"></div>\r\n <lib-bimplus-input-text-field class=\"flex-grow\" formControlName=\"url\" placeholder=\"{{ '_URL' | translate }}\" (enterKeyPressed)=\"onEnterKeyPressedInHyperlinkForm()\"/>\r\n </div>\r\n\r\n <lib-bimplus-buttons-row [items]=\"hyperlinkButtonRowItems\" (buttonClicked)=\"hyperlinkButtonRowButtonClicked($event)\"/>\r\n </form>\r\n }\r\n\r\n <div class=\"comments-tab-attachments-section\">\r\n <div class=\"comments-attachments-list\">\r\n <div class=\"tab-attachments icon attachments-icon hidden\"></div>\r\n <div class=\"attachment-icon icon-small interactive\" [title]=\"'_Add attachment' | translate\" (click)=\"attachments.open()\" (keydown)=\"attachments.open()\"></div>\r\n <div class=\"link-icon icon-small interactive\" [title]=\"'_Add hyperlink' | translate\" (click)=\"addHyperlinkIconClicked()\" (keydown)=\"addHyperlinkIconKeypress($event)\"></div>\r\n <div class=\"attachment-link-icon icon-small interactive\" [title]=\"'_Add_attachment_link' | translate\" (click)=\"linksToDocuments.createAttachmentLink(api!)\" (keydown)=\"linksToDocuments.createAttachmentLink(api!)\"></div>\r\n <div class=\"tab-attachmentlinks icon attachments-icon hidden\"></div>\r\n </div>\r\n <div class=\"add-comment\">\r\n <lib-bimplus-buttons-row\r\n [items]=\"buttonRowItems\"\r\n (buttonClicked)=\"buttonRowButtonClicked($event)\" />\r\n </div>\r\n </div>\r\n\r\n <div class=\"comments-separator\"></div>\r\n\r\n <div class=\"scrollable-content-container\">\r\n <lib-bimplus-scrollable-container>\r\n @if ((commentsList$ | async)?.length === 0) {\r\n <div class=\"no-comments-found\">\r\n {{ '_No comments found' | translate }}\r\n </div>\r\n } @else {\r\n @for (item of commentsList$ | async; track item) {\r\n @if(item.createdAt && isSameDate(item.createdAt)) {\r\n <div class=\"comment-list-date\">\r\n {{formatDate(item.createdAt)}}\r\n </div>\r\n }\r\n <lib-bimplus-comment\r\n (outputActionCommentEvent)=\"handleActionCommentEvent($event)\"\r\n (getAttachment)=\"onGetAttachment($event)\"\r\n [message]=\"item.text\"\r\n [api]=\"api\"\r\n [date]=\"item.createdAt ? item.createdAt : ''\"\r\n action=\"delete\"\r\n [commentId]=\"item.id\"\r\n [attachments]=\"item.attachments ?? []\"\r\n [attachmentLinkItems]=\"item.attachmentLinks ?? []\"\r\n [hyperlinks]=\"item.hyperlinks\"\r\n [isActUserAuthor]=\"isActUserAuthor(item)\"\r\n [displayname]=\"displayName(item)\">\r\n </lib-bimplus-comment>\r\n }\r\n }\r\n </lib-bimplus-scrollable-container>\r\n </div>\r\n</div>\r\n}\r\n", styles: [":host{height:100%;display:flex;flex-direction:column;flex:1}.link-icon{background:url('data:image/svg+xml,<svg version=\"1.1\" id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" x=\"0\" y=\"0\" viewBox=\"0 0 18 18\" xml:space=\"preserve\"><style>.st0{fill:%23444}<\\/style><path class=\"st0\" d=\"M16.7 4.2l-1.3-1.3c-1.2-1.2-3.2-1.2-4.4 0l-.6.6 1.1 1.1.7-.6c.6-.6 1.5-.6 2.1 0l1.3 1.3c.6.6.6 1.5 0 2.1l-4.1 4.1c-.6.6-1.5.6-2.1 0l-1.3-1.3c-.6-.5-.6-1.4-.1-2L6.9 7.1c-1.1 1.2-1.1 3.1.1 4.3l1.3 1.3c1.2 1.2 3.2 1.2 4.4 0l4.1-4.1c1.1-1.2 1.1-3.2-.1-4.4z\"/><path class=\"st0\" d=\"M5.8 13c-.6.6-1.5.6-2.1 0l-1.3-1.3c-.6-.6-.6-1.5 0-2.1l4.1-4.1c.6-.6 1.5-.6 2.1 0l1.3 1.3c.6.6.6 1.5 0 2.1l-.6.6 1.1 1.1.6-.6c1.2-1.2 1.2-3.2 0-4.4L9.8 4.3c-1.2-1.2-3.2-1.2-4.4 0L1.3 8.4c-1.2 1.2-1.2 3.2 0 4.4l1.3 1.3c1.2 1.2 3.2 1.2 4.4 0l.6-.6-1.1-1.1-.7.6z\"/></svg>') no-repeat center}.attachment-icon{background:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 18 18\"><path d=\"M12 3v12H6V3h2v10h2V2.4C10 1.6 9.4 1 8.6 1H5.4C4.6 1 4 1.6 4 2.4v13.3c0 .7.6 1.3 1.4 1.3h7.3c.8 0 1.4-.6 1.4-1.4V3H12z\" fill=\"%23444\"/></svg>') no-repeat center}.attachment-link-icon{background:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<path d=\"M4 8H8V6H4V8Z\" fill=\"%23444444\"/>%0D%0A<path d=\"M4 3V5H12V3H4Z\" fill=\"%23444444\"/>%0D%0A<path d=\"M4 11H8V9H4V11Z\" fill=\"%23444444\"/>%0D%0A<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M1 0H15V10H13V2H3V16H10V18H1V0Z\" fill=\"%23444444\"/>%0D%0A<path d=\"M15.0198 11.9876V16.5C15.0198 16.7761 14.7959 17 14.5198 17H12.5C12.2239 17 12 16.7761 12 16.5V12.4938C12 12.2153 12.2277 11.9904 12.5062 11.9939C12.7799 11.9973 13 12.2201 13 12.4938V16H14V12.3913C14 11.5963 13.4456 11 12.6535 11H12.3861C11.5941 11 11 11.5963 11 12.3913V16.6087C11 17.4037 11.5941 18 12.3861 18H14.6139C15.4059 18 16 17.4037 16 16.6087V11.9876H15.0198Z\" fill=\"%23444444\"/>%0D%0A</svg>%0D%0A') no-repeat center}.icon{height:2rem;width:2rem;margin:0 .2rem}.icon-small{height:100%;width:1.8rem;margin:0 .2rem}.icon-small.Hyperlink{background:url('data:image/svg+xml,<svg version=\"1.1\" id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" x=\"0\" y=\"0\" viewBox=\"0 0 18 18\" xml:space=\"preserve\"><style>.st0{fill:%23444}<\\/style><path class=\"st0\" d=\"M16.7 4.2l-1.3-1.3c-1.2-1.2-3.2-1.2-4.4 0l-.6.6 1.1 1.1.7-.6c.6-.6 1.5-.6 2.1 0l1.3 1.3c.6.6.6 1.5 0 2.1l-4.1 4.1c-.6.6-1.5.6-2.1 0l-1.3-1.3c-.6-.5-.6-1.4-.1-2L6.9 7.1c-1.1 1.2-1.1 3.1.1 4.3l1.3 1.3c1.2 1.2 3.2 1.2 4.4 0l4.1-4.1c1.1-1.2 1.1-3.2-.1-4.4z\"/><path class=\"st0\" d=\"M5.8 13c-.6.6-1.5.6-2.1 0l-1.3-1.3c-.6-.6-.6-1.5 0-2.1l4.1-4.1c.6-.6 1.5-.6 2.1 0l1.3 1.3c.6.6.6 1.5 0 2.1l-.6.6 1.1 1.1.6-.6c1.2-1.2 1.2-3.2 0-4.4L9.8 4.3c-1.2-1.2-3.2-1.2-4.4 0L1.3 8.4c-1.2 1.2-1.2 3.2 0 4.4l1.3 1.3c1.2 1.2 3.2 1.2 4.4 0l.6-.6-1.1-1.1-.7.6z\"/></svg>') no-repeat center}.icon-small.Attachment{background:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 18 18\"><path d=\"M12 3v12H6V3h2v10h2V2.4C10 1.6 9.4 1 8.6 1H5.4C4.6 1 4 1.6 4 2.4v13.3c0 .7.6 1.3 1.4 1.3h7.3c.8 0 1.4-.6 1.4-1.4V3H12z\" fill=\"%23444\"/></svg>') no-repeat center}.icon-small.AttachmentLink{background:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<path d=\"M4 8H8V6H4V8Z\" fill=\"%23444444\"/>%0D%0A<path d=\"M4 3V5H12V3H4Z\" fill=\"%23444444\"/>%0D%0A<path d=\"M4 11H8V9H4V11Z\" fill=\"%23444444\"/>%0D%0A<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M1 0H15V10H13V2H3V16H10V18H1V0Z\" fill=\"%23444444\"/>%0D%0A<path d=\"M15.0198 11.9876V16.5C15.0198 16.7761 14.7959 17 14.5198 17H12.5C12.2239 17 12 16.7761 12 16.5V12.4938C12 12.2153 12.2277 11.9904 12.5062 11.9939C12.7799 11.9973 13 12.2201 13 12.4938V16H14V12.3913C14 11.5963 13.4456 11 12.6535 11H12.3861C11.5941 11 11 11.5963 11 12.3913V16.6087C11 17.4037 11.5941 18 12.3861 18H14.6139C15.4059 18 16 17.4037 16 16.6087V11.9876H15.0198Z\" fill=\"%23444444\"/>%0D%0A</svg>%0D%0A') no-repeat center}.icon-next-to-text-input{width:1.8rem;margin:.3rem .2rem 0}.interactive{cursor:pointer}.flex{display:flex}.flex-grow{flex-grow:1}.hyperlink-input-row{display:flex;gap:.2rem}.hyperlink-input-row lib-bimplus-input-text-field{margin-top:.2rem}.new-comment-attachment-list{margin:0 .6rem .2rem 0}.new-comment-attachments{--bim-attachment-item-background-size: 1.8rem}.new-comment-attachment{padding-left:.8rem;display:grid;grid-template-columns:auto 1fr auto;column-gap:.4rem}.new-comment-attachment .text{line-height:2.4rem;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.new-comment-attachment .cancel-icon{flex:1;background:url('data:image/svg+xml,<svg version=\"1.1\" id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" x=\"0\" y=\"0\" width=\"18\" height=\"18\" xml:space=\"preserve\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" fill=\"%23444\" d=\"M13.5 5.4L12.1 4 8.5 7.6 4.9 4 3.5 5.4 7.1 9l-3.6 3.6L4.9 14l3.6-3.6 3.6 3.6 1.4-1.4L9.9 9z\"/></svg>%0D%0A') no-repeat center;background-size:1.8rem;width:3.2rem;max-width:3.2rem;cursor:pointer}.new-comment-attachment.attachment-link .icon{background:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<path d=\"M4 8H8V6H4V8Z\" fill=\"%23444444\"/>%0D%0A<path d=\"M4 3V5H12V3H4Z\" fill=\"%23444444\"/>%0D%0A<path d=\"M4 11H8V9H4V11Z\" fill=\"%23444444\"/>%0D%0A<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M1 0H15V10H13V2H3V16H10V18H1V0Z\" fill=\"%23444444\"/>%0D%0A<path d=\"M15.0198 11.9876V16.5C15.0198 16.7761 14.7959 17 14.5198 17H12.5C12.2239 17 12 16.7761 12 16.5V12.4938C12 12.2153 12.2277 11.9904 12.5062 11.9939C12.7799 11.9973 13 12.2201 13 12.4938V16H14V12.3913C14 11.5963 13.4456 11 12.6535 11H12.3861C11.5941 11 11 11.5963 11 12.3913V16.6087C11 17.4037 11.5941 18 12.3861 18H14.6139C15.4059 18 16 17.4037 16 16.6087V11.9876H15.0198Z\" fill=\"%23444444\"/>%0D%0A</svg>%0D%0A') no-repeat center}.new-comment-attachment.hyperlink .icon{background:url('data:image/svg+xml,<svg version=\"1.1\" id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" x=\"0\" y=\"0\" viewBox=\"0 0 18 18\" xml:space=\"preserve\"><style>.st0{fill:%23444}<\\/style><path class=\"st0\" d=\"M16.7 4.2l-1.3-1.3c-1.2-1.2-3.2-1.2-4.4 0l-.6.6 1.1 1.1.7-.6c.6-.6 1.5-.6 2.1 0l1.3 1.3c.6.6.6 1.5 0 2.1l-4.1 4.1c-.6.6-1.5.6-2.1 0l-1.3-1.3c-.6-.5-.6-1.4-.1-2L6.9 7.1c-1.1 1.2-1.1 3.1.1 4.3l1.3 1.3c1.2 1.2 3.2 1.2 4.4 0l4.1-4.1c1.1-1.2 1.1-3.2-.1-4.4z\"/><path class=\"st0\" d=\"M5.8 13c-.6.6-1.5.6-2.1 0l-1.3-1.3c-.6-.6-.6-1.5 0-2.1l4.1-4.1c.6-.6 1.5-.6 2.1 0l1.3 1.3c.6.6.6 1.5 0 2.1l-.6.6 1.1 1.1.6-.6c1.2-1.2 1.2-3.2 0-4.4L9.8 4.3c-1.2-1.2-3.2-1.2-4.4 0L1.3 8.4c-1.2 1.2-1.2 3.2 0 4.4l1.3 1.3c1.2 1.2 3.2 1.2 4.4 0l.6-.6-1.1-1.1-.7.6z\"/></svg>') no-repeat center}.hyperlink-input-form{padding-left:.8rem;padding-right:.8rem;display:flex;flex-direction:column;gap:.2rem}.comment-tab-container{height:100%;display:flex;flex-direction:column;flex:1}.comment-tab-container .scrollable-content-container{position:relative;flex:1;width:100%}.comment-tab-container .scrollable-content-container lib-bimplus-scrollable-container{position:absolute;top:0;bottom:0;flex:1;width:100%}.comment-tab-container .textarea-container{margin-left:.8rem}.comment-tab-container .comments-tab-attachments-section{display:inline-flex;width:100%;justify-content:space-between;margin:1rem .8rem .8rem 0}.comment-tab-container .comments-tab-attachments-section .comments-attachments-list{align-items:center;margin-left:.8rem}.comment-tab-container .comments-tab-attachments-section .add-comment{display:inline-flex;align-items:center;margin-right:.8rem}.comment-tab-container .comments-attachments-list{display:inline-flex}.comment-tab-container .comments-attachments-list .attachments-icon{height:2rem;width:2rem;margin:0 .2rem;cursor:pointer}.comment-tab-container .comments-attachments-list .tab-attachments{background:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 18 18\"><path d=\"M12 3v12H6V3h2v10h2V2.4C10 1.6 9.4 1 8.6 1H5.4C4.6 1 4 1.6 4 2.4v13.3c0 .7.6 1.3 1.4 1.3h7.3c.8 0 1.4-.6 1.4-1.4V3H12z\" fill=\"%23444\"/></svg>') no-repeat center}.comment-tab-container .comments-attachments-list .tab-attachmentlinks{background:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<path d=\"M4 8H8V6H4V8Z\" fill=\"%23444444\"/>%0D%0A<path d=\"M4 3V5H12V3H4Z\" fill=\"%23444444\"/>%0D%0A<path d=\"M4 11H8V9H4V11Z\" fill=\"%23444444\"/>%0D%0A<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M1 0H15V10H13V2H3V16H10V18H1V0Z\" fill=\"%23444444\"/>%0D%0A<path d=\"M15.0198 11.9876V16.5C15.0198 16.7761 14.7959 17 14.5198 17H12.5C12.2239 17 12 16.7761 12 16.5V12.4938C12 12.2153 12.2277 11.9904 12.5062 11.9939C12.7799 11.9973 13 12.2201 13 12.4938V16H14V12.3913C14 11.5963 13.4456 11 12.6535 11H12.3861C11.5941 11 11 11.5963 11 12.3913V16.6087C11 17.4037 11.5941 18 12.3861 18H14.6139C15.4059 18 16 17.4037 16 16.6087V11.9876H15.0198Z\" fill=\"%23444444\"/>%0D%0A</svg>%0D%0A') no-repeat center}.comment-tab-container .comments-attachments-list .tab-hyperlinks{background:url('data:image/svg+xml,<svg version=\"1.1\" id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" x=\"0\" y=\"0\" viewBox=\"0 0 18 18\" xml:space=\"preserve\"><style>.st0{fill:%23444}<\\/style><path class=\"st0\" d=\"M16.7 4.2l-1.3-1.3c-1.2-1.2-3.2-1.2-4.4 0l-.6.6 1.1 1.1.7-.6c.6-.6 1.5-.6 2.1 0l1.3 1.3c.6.6.6 1.5 0 2.1l-4.1 4.1c-.6.6-1.5.6-2.1 0l-1.3-1.3c-.6-.5-.6-1.4-.1-2L6.9 7.1c-1.1 1.2-1.1 3.1.1 4.3l1.3 1.3c1.2 1.2 3.2 1.2 4.4 0l4.1-4.1c1.1-1.2 1.1-3.2-.1-4.4z\"/><path class=\"st0\" d=\"M5.8 13c-.6.6-1.5.6-2.1 0l-1.3-1.3c-.6-.6-.6-1.5 0-2.1l4.1-4.1c.6-.6 1.5-.6 2.1 0l1.3 1.3c.6.6.6 1.5 0 2.1l-.6.6 1.1 1.1.6-.6c1.2-1.2 1.2-3.2 0-4.4L9.8 4.3c-1.2-1.2-3.2-1.2-4.4 0L1.3 8.4c-1.2 1.2-1.2 3.2 0 4.4l1.3 1.3c1.2 1.2 3.2 1.2 4.4 0l.6-.6-1.1-1.1-.7.6z\"/></svg>') no-repeat center}.comment-tab-container .comments-separator{margin:0 .8rem;border-bottom:solid .1rem var(--comments-chat-comments-separator-border-color)}.comment-tab-container textarea::-webkit-scrollbar-track{background-color:var(--main-menu-apps-container-background-color-enabled)}.comment-tab-container textarea::-webkit-scrollbar-thumb{background-color:var(--propertymanager-object-tree-scrollable-border-color);border-radius:.5rem}.comment-tab-container textarea::-webkit-scrollbar{width:.7rem;background:var(--storage-info-placeholder-text-color-enabled)}.comment-tab-container .comment-list-date{text-align:center;margin-top:1.2rem}.comment-tab-container .hidden{display:none}.comment-tab-container .no-comments-found{padding:2.5rem .5rem;color:var(--details-controls-details-not-found-text-color);text-align:center}lib-bimplus-attachments{--bim-attachment-item-border-bottom: none;--bim-attachment-delete-button-icon-color: #444;--bim-attachment-delete-button-icon-font-weight: bold;--bim-attachment-item-background-image: url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 18 18\"><path d=\"M12 3v12H6V3h2v10h2V2.4C10 1.6 9.4 1 8.6 1H5.4C4.6 1 4 1.6 4 2.4v13.3c0 .7.6 1.3 1.4 1.3h7.3c.8 0 1.4-.6 1.4-1.4V3H12z\" fill=\"%23444\"/></svg>')}lib-links-to-documents{--attachment-row-border-bottom: none;--bim-attachment-item-background-image: url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<path d=\"M4 8H8V6H4V8Z\" fill=\"%23444444\"/>%0D%0A<path d=\"M4 3V5H12V3H4Z\" fill=\"%23444444\"/>%0D%0A<path d=\"M4 11H8V9H4V11Z\" fill=\"%23444444\"/>%0D%0A<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M1 0H15V10H13V2H3V16H10V18H1V0Z\" fill=\"%23444444\"/>%0D%0A<path d=\"M15.0198 11.9876V16.5C15.0198 16.7761 14.7959 17 14.5198 17H12.5C12.2239 17 12 16.7761 12 16.5V12.4938C12 12.2153 12.2277 11.9904 12.5062 11.9939C12.7799 11.9973 13 12.2201 13 12.4938V16H14V12.3913C14 11.5963 13.4456 11 12.6535 11H12.3861C11.5941 11 11 11.5963 11 12.3913V16.6087C11 17.4037 11.5941 18 12.3861 18H14.6139C15.4059 18 16 17.4037 16 16.6087V11.9876H15.0198Z\" fill=\"%23444444\"/>%0D%0A</svg>%0D%0A');--bim-attachment-delete-button: #444;--attachment-row-margin: 0;--bim-attachment-item-background-size: 1.8rem;--bim-attachment-delete-button-font-weight: bold}\n"] }]
|
|
369
370
|
}], ctorParameters: () => [{ type: i1.DialogService }, { type: i2.TranslateService }, { type: i3.DatePipe }, { type: i4.FormBuilder }, { type: i5.BimplusAttachmentsService }, { type: i6.BimplusObjectCommentsListService }, { type: i7.BimplusStatusBarService }], propDecorators: { api: [{
|
|
370
371
|
type: Input,
|
|
371
372
|
args: [{ required: true }]
|
|
@@ -377,9 +378,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImpo
|
|
|
377
378
|
type: Input
|
|
378
379
|
}], attachmentLinkItems: [{
|
|
379
380
|
type: Input
|
|
381
|
+
}], inputBaseUrl: [{
|
|
382
|
+
type: Input
|
|
380
383
|
}], rootObjectId: [{
|
|
381
384
|
type: Input
|
|
382
385
|
}], userId: [{
|
|
383
386
|
type: Input
|
|
384
387
|
}] } });
|
|
385
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmltcGx1cy1vYmplY3QtY29tbWVudHMtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtYmltcGx1cy1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9iaW1wbHVzLW9iamVjdC1jb21tZW50cy1saXN0L2JpbXBsdXMtb2JqZWN0LWNvbW1lbnRzLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWJpbXBsdXMtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvYmltcGx1cy1vYmplY3QtY29tbWVudHMtbGlzdC9iaW1wbHVzLW9iamVjdC1jb21tZW50cy1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQWlCLGlCQUFpQixFQUFDLHVCQUF1QixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RJLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSwwRUFBMEUsQ0FBQztBQUMvSCxPQUFPLEVBQUUsZUFBZSxFQUFvQixNQUFNLHFCQUFxQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRTdELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQzFGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBR3ZGLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQ2xHLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLGdFQUFnRSxDQUFDO0FBQ2pILE9BQU8sRUFBRSxtQ0FBbUMsRUFBRSxNQUFNLHdFQUF3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QUduQzt3QkFDUCxLQUFLO3dCQUNMLFlBQVk7d0JBQ1osd0JBQXdCO3dCQUN4Qix1QkFBdUI7d0JBQ3ZCLDBCQUEwQjt3QkFDMUIsZUFBZTt3QkFDZixtQ0FBbUM7d0JBQ25DLDhCQUE4Qjt3QkFDOUIsMkJBQTJCO3dCQUMzQix5QkFBeUI7d0JBQ3pCLFdBQVc7d0JBQ1gsbUJBQW1CO3dCQUNuQixTQUFTO3FCQUNWLGFBQ1U7d0JBQ1QsUUFBUTt3QkFDUixnQ0FBZ0M7d0JBQ2hDLHlCQUF5Qjt3QkFDekIsRUFBRSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRTtxQkFDMUQsY0FDVyxJQUFJLG1CQUNDLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLFNBQVM7K1JBT2YsR0FBRztzQkFBN0IsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBQ2hCLE9BQU87c0JBQWYsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csR0FBRztzQkFBWCxLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkE0QkYsWUFBWTtzQkFEZixLQUFLO2dCQVVGLE1BQU07c0JBRFQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBzaWduYWwsIFNpbXBsZUNoYW5nZXMsIFZpZXdFbmNhcHN1bGF0aW9uLENoYW5nZURldGVjdGlvblN0cmF0ZWd5IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEJpbXBsdXNPdmVybGF5RGlhbG9nRGVsZXRlQ29tcG9uZW50IH0gZnJvbSAnLi4vYmltcGx1cy1vdmVybGF5LWRpYWxvZy1kZWxldGUvYmltcGx1cy1vdmVybGF5LWRpYWxvZy1kZWxldGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlLCBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcbmltcG9ydCB7IEFzeW5jUGlwZSwgRGF0ZVBpcGUsIE5nRm9yIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgRGlhbG9nU2VydmljZSB9IGZyb20gJy4uL2JpbXBsdXMtZ2VuZXJhbC1vdmVybGF5LWRpYWxvZy9iaW1wbHVzLWdlbmVyYWwtb3ZlcmxheS1kaWFsb2cuc2VydmljZSc7XHJcbmltcG9ydCB7IEJpbXBsdXNUZXh0YXJlYUNvbXBvbmVudCB9IGZyb20gJy4uL2JpbXBsdXMtdGV4dGFyZWEvYmltcGx1cy10ZXh0YXJlYS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBCaW1wbHVzQ29tbWVudENvbXBvbmVudCB9IGZyb20gJy4uL2JpbXBsdXMtY29tbWVudC9iaW1wbHVzLWNvbW1lbnQuY29tcG9uZW50JztcclxuaW1wb3J0IFdlYlNkayBmcm9tICdiaW1wbHVzLXdlYnNkayc7XHJcbmltcG9ydCB7IEJpbXBsdXNCdXR0b25DbGlja0V2ZW50LCBCaW1wbHVzQnV0dG9uUm93SXRlbSB9IGZyb20gJy4uL2JpbXBsdXMtYnV0dG9ucy1yb3cvYmltcGx1cy1idXR0b25zLXJvdy5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBCaW1wbHVzQnV0dG9uc1Jvd0NvbXBvbmVudCB9IGZyb20gJy4uL2JpbXBsdXMtYnV0dG9ucy1yb3cvYmltcGx1cy1idXR0b25zLXJvdy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBCaW1wbHVzTG9jYWxpemVkV2lkZ2V0Q29tcG9uZW50IH0gZnJvbSAnLi4vYmltcGx1cy1sb2NhbGl6ZWQtd2lkZ2V0L2JpbXBsdXMtbG9jYWxpemVkLXdpZGdldC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBCaW1wbHVzU2Nyb2xsYWJsZUNvbnRhaW5lckNvbXBvbmVudCB9IGZyb20gJy4uL2JpbXBsdXMtc2Nyb2xsYWJsZS1jb250YWluZXIvYmltcGx1cy1zY3JvbGxhYmxlLWNvbnRhaW5lci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDb21tZW50RGF0YSwgQ29tbWVudE91dHB1dERhdGEsIElEaWFsb2dDb25maXJtQ2xvc2UgfSBmcm9tICcuL2JpbXBsdXNPYmplY3RDb21tZW50c0knO1xyXG5pbXBvcnQgeyBCaW1wbHVzSW5wdXRUZXh0RmllbGRDb21wb25lbnQgfSBmcm9tIFwiLi4vYmltcGx1cy1pbnB1dC10ZXh0LWZpZWxkL2JpbXBsdXMtaW5wdXQtdGV4dC1maWVsZC5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIFZhbGlkYXRvcnMgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHsgQmltcGx1c0F0dGFjaG1lbnRzQ29tcG9uZW50IH0gZnJvbSAnLi4vYmltcGx1cy1hdHRhY2htZW50cy9iaW1wbHVzLWF0dGFjaG1lbnRzLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEJpbXBsdXNBdHRhY2htZW50c1NlcnZpY2UgfSBmcm9tICcuLi9iaW1wbHVzLWF0dGFjaG1lbnRzL3NlcnZpY2VzL2JpbXBsdXMtYXR0YWNobWVudHMuc2VydmljZSc7XHJcbmltcG9ydCB7XHJcbiAgQXR0YWNobWVudCxcclxuICBCSU1QTFVTX0FUVEFDSE1FTlRTX0NPTkZJRyxcclxuICBCaW1wbHVzQXR0YWNobWVudHNDb25maWcsXHJcbn0gZnJvbSAnLi4vYmltcGx1cy1hdHRhY2htZW50cy9iaW1wbHVzLWF0dGFjaG1lbnRzLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEJpbXBsdXNPYmplY3RDb21tZW50c0xpc3RTZXJ2aWNlIH0gZnJvbSAnLi9iaW1wbHVzLW9iamVjdC1jb21tZW50cy1saXN0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBMaW5rc1RvRG9jdW1lbnRzQ29tcG9uZW50IH0gZnJvbSAnLi4vbGlua3MtdG8tZG9jdW1lbnRzL2xpbmtzLXRvLWRvY3VtZW50cy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBQcm9qZWN0TmF2aWdhdG9yUHJvamVjdCB9IGZyb20gJy4uL3Byb2plY3QtbW9kZWxzL3Byb2plY3QtbW9kZWxzLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IEJpbXBsdXNTdGF0dXNCYXJTZXJ2aWNlIH0gZnJvbSAnLi4vYmltcGx1cy1zdGF0dXMtYmFyL2JpbXBsdXMtc3RhdHVzLWJhci5zZXJ2aWNlJztcclxuaW1wb3J0IHtuZXdBdHRhY2hJbmZvfSBmcm9tICcuL2JpbXBsdXMtb2JqZWN0LWNvbW1lbnRzLWxpc3QuaW50ZXJmYWNlJztcclxuXHJcblxyXG5jb25zdCBjb25maWc6IEJpbXBsdXNBdHRhY2htZW50c0NvbmZpZyA9IHtcclxuICBzaG93Tm9BdHRhY2htZW50c0ZvdW5kOiBmYWxzZSxcclxuICBoaWRlQXR0YWNobWVudFNpemU6IHRydWUsXHJcbn07XHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWJpbXBsdXMtb2JqZWN0LWNvbW1lbnRzLWxpc3QnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9iaW1wbHVzLW9iamVjdC1jb21tZW50cy1saXN0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9iaW1wbHVzLW9iamVjdC1jb21tZW50cy1saXN0LmNvbXBvbmVudC5sZXNzJ10sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgTmdGb3IsXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBCaW1wbHVzVGV4dGFyZWFDb21wb25lbnQsXHJcbiAgICBCaW1wbHVzQ29tbWVudENvbXBvbmVudCxcclxuICAgIEJpbXBsdXNCdXR0b25zUm93Q29tcG9uZW50LFxyXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxyXG4gICAgQmltcGx1c1Njcm9sbGFibGVDb250YWluZXJDb21wb25lbnQsXHJcbiAgICBCaW1wbHVzSW5wdXRUZXh0RmllbGRDb21wb25lbnQsXHJcbiAgICBCaW1wbHVzQXR0YWNobWVudHNDb21wb25lbnQsXHJcbiAgICBMaW5rc1RvRG9jdW1lbnRzQ29tcG9uZW50LFxyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG4gICAgQXN5bmNQaXBlLFxyXG4gIF0sXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICBEYXRlUGlwZSxcclxuICAgIEJpbXBsdXNPYmplY3RDb21tZW50c0xpc3RTZXJ2aWNlLFxyXG4gICAgQmltcGx1c0F0dGFjaG1lbnRzU2VydmljZSxcclxuICAgIHsgcHJvdmlkZTogQklNUExVU19BVFRBQ0hNRU5UU19DT05GSUcsIHVzZVZhbHVlOiBjb25maWcgfSxcclxuICBdLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uU2hhZG93RG9tLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQmltcGx1c09iamVjdENvbW1lbnRzTGlzdENvbXBvbmVudFxyXG4gIGV4dGVuZHMgQmltcGx1c0xvY2FsaXplZFdpZGdldENvbXBvbmVudFxyXG4gIGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xyXG4gIGh5cGVybGlua0Zvcm06IEZvcm1Hcm91cDtcclxuXHJcbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSkgYXBpITogV2ViU2RrLkFwaSB8IG51bGw7XHJcbiAgQElucHV0KCkgcHJvamVjdDogUHJvamVjdE5hdmlnYXRvclByb2plY3QgfCBudWxsID0gbnVsbDtcclxuICBASW5wdXQoKSB3b3JtaG9sZVNlbGVjdG9yOiBzdHJpbmcgPSBcImxvY2FsRW1iZWRkZWRNb2RhbElkXCI7XHJcbiAgQElucHV0KCkgZW52OiBzdHJpbmcgPSBcInByb2RcIjtcclxuICBASW5wdXQoKSBhdHRhY2htZW50TGlua0l0ZW1zOiBXZWJTZGsuQXR0YWNobWVudExpbmtbXSA9IFtdXHJcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGNvbW1lbnRzTGlzdCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFdlYlNkay5Db21tZW50UmVzcG9uc2VbXT4oW10pO1xyXG4gIHByb3RlY3RlZCByZWFkb25seSBsb2FkaW5nID0gc2lnbmFsKGZhbHNlKTtcclxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgYXR0YWNobWVudHNTdGF0ZSA9IHNpZ25hbDxBdHRhY2htZW50W10+KFtdKTtcclxuICBidXR0b25Sb3dJdGVtczogQmltcGx1c0J1dHRvblJvd0l0ZW1bXSA9IFtdO1xyXG4gIGh5cGVybGlua0J1dHRvblJvd0l0ZW1zOiBCaW1wbHVzQnV0dG9uUm93SXRlbVtdID0gW107XHJcbiAgdGV4dEFyZWFWYWx1ZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XHJcbiAgbGFzdFNob3duRGF0ZSA9ICcnO1xyXG4gIHBsYWNlaG9sZGVyID0gJyc7XHJcbiAgbmFtZSA9ICcnO1xyXG4gIHJlYWRvbmx5ID0gZmFsc2U7XHJcbiAgYXV0b1Jlc2l6ZVRleHRhcmVhID0gdHJ1ZTtcclxuICBtaW5Sb3dzID0gMztcclxuICBtYXhSb3dzID0gMTA7XHJcbiAgY2xlYXJWYWx1ZSA9IGZhbHNlO1xyXG4gIHN0YXR1c0JhclRpdGxlTWVzc2FnZSA9IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdfTG9hZGluZycpO1xyXG4gIFxyXG4gIC8vIGF0dGFjaG1lbnQgaWRzIHJlYWR5IHRvIG1hcCB0byBjb25jcmV0ZSBjb21tZW50XHJcbiAgbmV3QXR0YWNobWVudElEczogc3RyaW5nW10gPSBbXVxyXG5cclxuICBpc0FkZGluZ0h5cGVybGluazogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIFxyXG4gIG5ld0NvbW1lbnRBdHRhY2htZW50czogbmV3QXR0YWNoSW5mbyBbXSA9IFtdO1xyXG4gIFxyXG4gIHByaXZhdGUgX3Jvb3RPYmplY3RJZCA9ICcnO1xyXG4gIHByaXZhdGUgX3VzZXJJZCA9ICcnO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHNldCByb290T2JqZWN0SWQoaWQ6IHN0cmluZykge1xyXG4gICAgdGhpcy5fcm9vdE9iamVjdElkID0gaWQ7XHJcbiAgfVxyXG5cclxuICBnZXQgcm9vdE9iamVjdElkKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fcm9vdE9iamVjdElkO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBzZXQgdXNlcklkKGlkOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX3VzZXJJZCA9IGlkO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHVzZXJJZCgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX3VzZXJJZDtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBkaWFsb2dTZXJ2aWNlOiBEaWFsb2dTZXJ2aWNlLFxyXG4gICAgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgZGF0ZVBpcGU6IERhdGVQaXBlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBmb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXIsXHJcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgYmltcGx1c0F0dGFjaG1lbnRzU2VydmljZTogQmltcGx1c0F0dGFjaG1lbnRzU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgYmltcGx1c09iamVjdENvbW1lbnRzTGlzdFNlcnZpY2U6IEJpbXBsdXNPYmplY3RDb21tZW50c0xpc3RTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBzdGF0dXNCYXJTZXJ2aWNlOiBCaW1wbHVzU3RhdHVzQmFyU2VydmljZSAgICBcclxuICApIHtcclxuICAgIHN1cGVyKHRyYW5zbGF0ZVNlcnZpY2UpO1xyXG5cclxuICAgIHRoaXMuaHlwZXJsaW5rRm9ybSA9IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xyXG4gICAgICBuYW1lOiBbJycsIFtdXSxcclxuICAgICAgdXJsOiBbXHJcbiAgICAgICAgJycsXHJcbiAgICAgICAgW1xyXG4gICAgICAgICAgVmFsaWRhdG9ycy5yZXF1aXJlZCxcclxuICAgICAgICAgIFZhbGlkYXRvcnMucGF0dGVybigvXltePD5dKiQvKSwgLy8gRG8gbm90IGFsbG93IDwgb3IgPlxyXG4gICAgICAgICAgVmFsaWRhdG9ycy5wYXR0ZXJuKC9eKD8hXFxzKiQpLisvKSwgLy8gRG8gbm90IGFsbG93IGFsbCBlbXB0eSBzdHJpbmcsIGJ1dCBhbGxvdyB0ZXh0IGFmdGVyIHNwYWNlc1xyXG4gICAgICAgIF0sXHJcbiAgICAgIF0sXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGlzQ3JlYXRlQnV0dG9uRGlzYWJsZWQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gIShcclxuICAgICAgdGhpcy50ZXh0QXJlYVZhbHVlIHx8XHJcbiAgICAgIHRoaXMubmV3QXR0YWNobWVudElEcz8ubGVuZ3RoID4gMCB8fFxyXG4gICAgICB0aGlzLmdldEh5cGVybGlua3ModGhpcy5yb290T2JqZWN0SWQpPy5sZW5ndGggPiAwIHx8XHJcbiAgICAgIHRoaXMuYXR0YWNobWVudHNTdGF0ZSgpPy5sZW5ndGggPiAwXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgY2hlY2tDcmVhdGVCdXR0b25TdGF0ZSgpIHtcclxuICAgIGlmICghdGhpcy5idXR0b25Sb3dJdGVtcz8uWzBdKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuYnV0dG9uUm93SXRlbXNbMF0uZGlzYWJsZWQgPSB0aGlzLmlzQ3JlYXRlQnV0dG9uRGlzYWJsZWQoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuYmltcGx1c09iamVjdENvbW1lbnRzTGlzdFNlcnZpY2UuYXBpID0gdGhpcy5hcGkhO1xyXG4gICAgdGhpcy5sb2FkQ29tbWVudHMoKTsgICAgXHJcbiAgICBjb25zdCBzdWJtaXQ6IEJpbXBsdXNCdXR0b25Sb3dJdGVtW10gPSBbXHJcbiAgICAgIHtcclxuICAgICAgICBpZDogJ3N1Ym1pdCcsXHJcbiAgICAgICAgdGl0bGU6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdfQWRkIGNvbW1lbnQnKSxcclxuICAgICAgICB0b29sdGlwOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnX0FkZCBjb21tZW50JyksXHJcbiAgICAgICAgZGlzYWJsZWQ6IHRoaXMuaXNDcmVhdGVCdXR0b25EaXNhYmxlZCgpLFxyXG4gICAgICAgIGJ1dHRvblN0eWxlOiAncHJpbWFyeScsXHJcbiAgICAgIH0sXHJcbiAgICBdO1xyXG4gICAgdGhpcy5wbGFjZWhvbGRlciA9IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFxyXG4gICAgICAnX1BsYWNlIGNvbW1lbnQgdGV4dCBoZXJlJ1xyXG4gICAgKTtcclxuICAgIHRoaXMubmFtZSA9IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdjb21tZW50Jyk7XHJcbiAgICB0aGlzLmJ1dHRvblJvd0l0ZW1zID0gc3VibWl0O1xyXG5cclxuICAgIHRoaXMuaHlwZXJsaW5rQnV0dG9uUm93SXRlbXMucHVzaChcclxuICAgICAge1xyXG4gICAgICAgIGlkOiAnY2FuY2VsLWh5cGVybGluaycsXHJcbiAgICAgICAgdGl0bGU6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdfQ2FuY2VsJyksXHJcbiAgICAgICAgdG9vbHRpcDogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ19DYW5jZWwnKSxcclxuICAgICAgICBkaXNhYmxlZDogZmFsc2UsXHJcbiAgICAgICAgYnV0dG9uU3R5bGU6ICdwcmltYXJ5JyxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGlkOiAnYWRkLWh5cGVybGluaycsXHJcbiAgICAgICAgdGl0bGU6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdfQWRkIGh5cGVybGluaycpLFxyXG4gICAgICAgIHRvb2x0aXA6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdfQWRkIGh5cGVybGluaycpLFxyXG4gICAgICAgIGRpc2FibGVkOiB0cnVlLFxyXG4gICAgICAgIGJ1dHRvblN0eWxlOiAncHJpbWFyeScsXHJcbiAgICAgIH1cclxuICAgICk7XHJcblxyXG4gICAgdGhpcy5oeXBlcmxpbmtGb3JtLnN0YXR1c0NoYW5nZXMuc3Vic2NyaWJlKChzdGF0dXMpID0+IHtcclxuICAgICAgdGhpcy5oeXBlcmxpbmtCdXR0b25Sb3dJdGVtc1sxXS5kaXNhYmxlZCA9IHN0YXR1cyAhPT0gJ1ZBTElEJztcclxuICAgIH0pO1xyXG4gIH1cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBpZiAoY2hhbmdlc1sncm9vdE9iamVjdElkJ10gJiYgIWNoYW5nZXNbJ3Jvb3RPYmplY3RJZCddLmZpcnN0Q2hhbmdlKSB7XHJcbiAgICAgIHRoaXMubG9hZENvbW1lbnRzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgb25BdHRhY2htZW50c0xpbmtDaGFuZ2UobmV3QXR0YWNobWVudHM6IG5ld0F0dGFjaEluZm9bXSk6IHZvaWQge1xyXG4gICAgY29uc3QgbmV3RGVjb3JhdGVkQXR0YWNobWVudHM6bmV3QXR0YWNoSW5mb1tdID0gbmV3QXR0YWNobWVudHMubWFwKChhdHRhY2htZW50KSA9PiB7XHJcbiAgICAgIGF0dGFjaG1lbnQuaWNvbkNsYXNzID0gJ2ZhIGZhLWxpbmsnO1xyXG4gICAgICBhdHRhY2htZW50Lmljb25UaXRsZSA9IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdfQXR0YWNobWVudF9saW5rJyk7XHJcbiAgICAgIGF0dGFjaG1lbnQuZGVsZXRlQnV0dG9uVGl0bGUgPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnX0RlbGV0ZV9hdHRhY2htZW50bGluaycpO1xyXG4gICAgICByZXR1cm4gYXR0YWNobWVudDtcclxuICAgIH0pO1xyXG4gICAgY29uc3QgbmV3Q29tbWVudEF0dGFjaG1lbnRzID0gdGhpcy5uZXdDb21tZW50QXR0YWNobWVudHMuZmlsdGVyKChhdHRhY2htZW50KSA9PiBhdHRhY2htZW50Py50eXBlID09PSAnSHlwZXJsaW5rJyk7XHJcbiAgICB0aGlzLm5ld0NvbW1lbnRBdHRhY2htZW50cyA9IFsuLi5uZXdDb21tZW50QXR0YWNobWVudHMsIC4uLm5ld0RlY29yYXRlZEF0dGFjaG1lbnRzXTsgICBcclxuICAgIHRoaXMubmV3QXR0YWNobWVudElEcyA9IG5ld0F0dGFjaG1lbnRzLm1hcCgoYXR0YWNobWVudCkgPT4gYXR0YWNobWVudC5pZCk7XHJcbiAgICB0aGlzLmNoZWNrQ3JlYXRlQnV0dG9uU3RhdGUoKTtcclxuICB9XHJcbiAgXHJcblxyXG4gIHByb3RlY3RlZCBvbkFkZEF0dGFjaG1lbnQoZmlsZTogRmlsZSk6IHZvaWQge1xyXG4gICAgY29uc3QgYXR0YWNobWVudCA9IHRoaXMuYmltcGx1c0F0dGFjaG1lbnRzU2VydmljZS5nZXRBdHRhY2htZW50KGZpbGUpO1xyXG4gICAgdGhpcy5hdHRhY2htZW50c1N0YXRlLnVwZGF0ZShhdHRhY2htZW50cyA9PiAoWy4uLmF0dGFjaG1lbnRzLCBhdHRhY2htZW50XSkpO1xyXG4gICAgdGhpcy5jaGVja0NyZWF0ZUJ1dHRvblN0YXRlKCk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgb25EZWxldGVBdHRhY2htZW50KGF0dGFjaG1lbnQ6IEF0dGFjaG1lbnQpOiB2b2lkIHtcclxuICAgIHRoaXMuYXR0YWNobWVudHNTdGF0ZS51cGRhdGUoYXR0YWNobWVudHMgPT4gYXR0YWNobWVudHMuZmlsdGVyKGEgPT4gYSAhPT0gYXR0YWNobWVudCkpO1xyXG4gICAgdGhpcy5jaGVja0NyZWF0ZUJ1dHRvblN0YXRlKCk7XHJcbiAgfVxyXG5cclxuICAvKiogRXZlbnQgb24gY2xpY2sgYXR0YWNobWVudC4gKi9cclxuICBwcm90ZWN0ZWQgb25HZXRBdHRhY2htZW50KGF0dGFjaG1lbnQ6IEF0dGFjaG1lbnQpOiB2b2lkIHtcclxuICAgIHRoaXMuYmltcGx1c09iamVjdENvbW1lbnRzTGlzdFNlcnZpY2UuZG93bmxvYWRBdHRhY2htZW50KGF0dGFjaG1lbnQpO1xyXG4gIH1cclxuXHJcbiAgb25UZXh0YXJlYVZhbHVlQ2hhbmdlKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMudGV4dEFyZWFWYWx1ZSA9IHZhbHVlO1xyXG4gICAgdGhpcy5jaGVja0NyZWF0ZUJ1dHRvblN0YXRlKCk7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVBY3Rpb25Db21tZW50RXZlbnQoZXZlbnQ6IENvbW1lbnRPdXRwdXREYXRhKSB7XHJcbiAgICBpZiAoZXZlbnQuYWN0aW9uID09PSAnZGVsZXRlJykge1xyXG4gICAgICBjb25zdCBkYXRhID0gZXZlbnQuZGF0YSBhcyBDb21tZW50RGF0YTtcclxuICAgICAgdGhpcy5vcGVuRGlhbG9nRGVsZXRlQ29tbWVudChkYXRhLmNvbW1lbnRJZCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBhY3Rpb25EaWFsb2dDbG9zZShkYXRhOiBJRGlhbG9nQ29uZmlybUNsb3NlKSB7XHJcbiAgICB0aGlzLmRpYWxvZ1NlcnZpY2UuY2xvc2UoZGF0YSk7XHJcbiAgfVxyXG5cclxuICBvcGVuRGlhbG9nRGVsZXRlQ29tbWVudChjb21tZW50SWQ6IHN0cmluZykge1xyXG4gICAgdGhpcy5kaWFsb2dTZXJ2aWNlLm9wZW4oQmltcGx1c092ZXJsYXlEaWFsb2dEZWxldGVDb21wb25lbnQsIHtcclxuICAgICAgb3B0aW9uczoge1xyXG4gICAgICAgIHBvc2l0aW9uOiAnbWlkZGxlJyxcclxuICAgICAgICBwb3NpdGlvbk9wdGlvbnM6IHt9LFxyXG4gICAgICAgIG92ZXJsYXlDbGlja0VuYWJsZWQ6IGZhbHNlLFxyXG4gICAgICAgIG92ZXJsYXlWaXNpYmlsaXR5RW5hYmxlZDogdHJ1ZSxcclxuICAgICAgICBkcmFnZ2FibGU6IHRydWUsXHJcbiAgICAgIH0sXHJcbiAgICAgIGRhdGE6IHtcclxuICAgICAgICB0aXRsZTogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXHJcbiAgICAgICAgICAnX0NvbW1lbnQgZGVsZXRlIGNvbmZpcm1hdGlvbiB0aXRsZSdcclxuICAgICAgICApLFxyXG4gICAgICAgIG1lc3NhZ2U6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFxyXG4gICAgICAgICAgJ19Db21tZW50IGRlbGV0ZSBjb25maXJtYXRpb24gbWVzc2FnZSdcclxuICAgICAgICApLFxyXG4gICAgICAgIGFjY2VwdENhbGxiYWNrOiAoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmRlbGV0ZUNvbW1lbnQoY29tbWVudElkKTtcclxuICAgICAgICB9LFxyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBpc1NhbWVEYXRlKGRhdGU/OiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgIGlmICghZGF0ZSkge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICBjb25zdCB0aW1lID0gdGhpcy5kYXRlUGlwZS50cmFuc2Zvcm0oZGF0ZSwgJ3Nob3J0RGF0ZScpO1xyXG4gICAgaWYgKHRoaXMubGFzdFNob3duRGF0ZSA9PT0gdGltZSkge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICB0aGlzLmxhc3RTaG93bkRhdGUgPSBkYXRlO1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBidXR0b25Sb3dCdXR0b25DbGlja2VkKCRldmVudDogQmltcGx1c0J1dHRvbkNsaWNrRXZlbnQpIHtcclxuICAgIGlmICgkZXZlbnQuaWQgPT09ICdzdWJtaXQnKSB7XHJcbiAgICAgIGlmICghdGhpcy5hcGkgfHwgIXRoaXMucm9vdE9iamVjdElkKSByZXR1cm47XHJcbiAgICAgIHRoaXMubG9hZGluZy5zZXQodHJ1ZSk7XHJcblxyXG4gICAgICBjb25zdCBkYXRhID0ge1xyXG4gICAgICAgIHRleHQ6IHRoaXMudGV4dEFyZWFWYWx1ZSxcclxuICAgICAgICBvYmplY3RJZDogdGhpcy5yb290T2JqZWN0SWQsXHJcbiAgICAgIH07XHJcbiAgICAgIGNvbnN0IGRhdGFUZXh0ID0gSlNPTi5zdHJpbmdpZnkoZGF0YSk7XHJcbiAgICAgIHRoaXMuc3RhdHVzQmFyU2VydmljZS5zZXRTdGF0dXNCYXJEYXRhKHsgc3RhdHVzQmFyVmlzaWJsZTogdHJ1ZSwgdGl0bGU6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdfQ3JlYXRpbmcgbmV3IGNvbW1lbnQnKSB9KTtcclxuICAgICAgdGhpcy5iaW1wbHVzT2JqZWN0Q29tbWVudHNMaXN0U2VydmljZS5wb3N0Q29tbWVudHModGhpcy5yb290T2JqZWN0SWQsIGRhdGFUZXh0LCB0aGlzLmdldEh5cGVybGlua3ModGhpcy5yb290T2JqZWN0SWQpLCB0aGlzLmF0dGFjaG1lbnRzU3RhdGUoKSwgdGhpcy5uZXdBdHRhY2htZW50SURzKVxyXG4gICAgICAucGlwZShzd2l0Y2hNYXAoKCkgPT4gdGhpcy5iaW1wbHVzT2JqZWN0Q29tbWVudHNMaXN0U2VydmljZS5sb2FkQ29tbWVudHModGhpcy5yb290T2JqZWN0SWQpKSlcclxuICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKGNvbW1lbnRzKSA9PiB0aGlzLmNvbW1lbnRzTGlzdCQubmV4dChjb21tZW50cyksXHJcbiAgICAgICAgY29tcGxldGU6ICgpID0+IHtcclxuICAgICAgICAgIHRoaXMuYXR0YWNobWVudHNTdGF0ZS5zZXQoW10pO1xyXG4gICAgICAgICAgdGhpcy5uZXdDb21tZW50QXR0YWNobWVudHMgPSBbXTtcclxuICAgICAgICAgIHRoaXMuYXR0YWNobWVudExpbmtJdGVtcyA9IFtdO1xyXG4gICAgICAgICAgdGhpcy5uZXdBdHRhY2htZW50SURzID0gW107XHJcbiAgICAgICAgICB0aGlzLnRleHRBcmVhVmFsdWUgPSBudWxsO1xyXG4gICAgICAgICAgdGhpcy5jbGVhclZhbHVlID0gdHJ1ZTtcclxuICAgICAgICAgIHRoaXMuYnV0dG9uUm93SXRlbXNbMF0uZGlzYWJsZWQgPSB0cnVlO1xyXG4gICAgICAgICAgdGhpcy5sb2FkaW5nLnNldChmYWxzZSk7XHJcbiAgICAgICAgICB0aGlzLnN0YXR1c0JhclNlcnZpY2Uuc2V0U3RhdHVzQmFyRGF0YSh7IHN0YXR1c0JhclZpc2libGU6IGZhbHNlLCB0aXRsZTogJycgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGh5cGVybGlua0J1dHRvblJvd0J1dHRvbkNsaWNrZWQoJGV2ZW50OiBCaW1wbHVzQnV0dG9uQ2xpY2tFdmVudCkge1xyXG4gICAgaWYgKCRldmVudC5pZCA9PT0gJ2FkZC1oeXBlcmxpbmsnKSB7XHJcbiAgICAgIHRoaXMuYWRkTmV3Q29tbWVudEh5cGVybGluaygpO1xyXG4gICAgfSBlbHNlIGlmICgkZXZlbnQuaWQgPT09ICdjYW5jZWwtaHlwZXJsaW5rJykge1xyXG4gICAgICB0aGlzLmh5cGVybGlua0Zvcm0ucmVzZXQoKTtcclxuICAgICAgdGhpcy5pc0FkZGluZ0h5cGVybGluayA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgYWRkTmV3Q29tbWVudEh5cGVybGluaygpIHtcclxuICAgIGlmICghdGhpcy5oeXBlcmxpbmtGb3JtLnZhbGlkKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgc2FuaXRpemVkVXJsOiBzdHJpbmcgPSB0aGlzLmh5cGVybGlua0Zvcm0udmFsdWVbJ3VybCddLnRyaW0oKTtcclxuICAgIGlmICghUmVnRXhwKC9eaHR0cChzPyk6XFwvXFwvLykuZXhlYyhzYW5pdGl6ZWRVcmwpKSB7XHJcbiAgICAgIHNhbml0aXplZFVybCA9ICdodHRwczovLycgKyBzYW5pdGl6ZWRVcmw7XHJcbiAgICB9XHJcbiAgICBsZXQgc2FuaXRpemVkTmFtZSA9IHRoaXMuaHlwZXJsaW5rRm9ybS52YWx1ZVsnbmFtZSddPy50cmltKCkgPz8gJyc7XHJcbiAgICBpZiAoc2FuaXRpemVkTmFtZSA9PT0gJycpIHtcclxuICAgICAgc2FuaXRpemVkTmFtZSA9IHNhbml0aXplZFVybDtcclxuICAgIH0gICAgXHJcbiAgICBjb25zdCBuZXdJdGVtOiBuZXdBdHRhY2hJbmZvID0ge1xyXG4gICAgICBpZDogJycsXHJcbiAgICAgIHR5cGU6ICdIeXBlcmxpbmsnLFxyXG4gICAgICBuYW1lU2hvcnQ6IHNhbml0aXplZE5hbWUsXHJcbiAgICAgIG5hbWU6IHNhbml0aXplZE5hbWUsXHJcbiAgICAgIHVybDogc2FuaXRpemVkVXJsLFxyXG4gICAgICBpY29uQ2xhc3M6ICdmYSBmYS1saW5rJyxcclxuICAgICAgaWNvblRpdGxlOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnX0h5cGVybGluaycpLFxyXG4gICAgICBkZWxldGVCdXR0b25UaXRsZTogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ19SZW1vdmUgaHlwZXJsaW5rJyksXHJcbiAgICB9O1xyXG4gICAgdGhpcy5uZXdDb21tZW50QXR0YWNobWVudHMucHVzaChuZXdJdGVtKTtcclxuICAgIHRoaXMuaHlwZXJsaW5rRm9ybS5yZXNldCgpO1xyXG4gICAgdGhpcy5pc0FkZGluZ0h5cGVybGluayA9IGZhbHNlO1xyXG4gICAgdGhpcy5jaGVja0NyZWF0ZUJ1dHRvblN0YXRlKCk7XHJcbiAgfVxyXG5cclxuICBkZWxldGVDb21tZW50KGNvbW1lbnRJZDogc3RyaW5nKSB7XHJcbiAgICB0aGlzLnN0YXR1c0JhclNlcnZpY2Uuc2V0U3RhdHVzQmFyRGF0YSh7c3RhdHVzQmFyVmlzaWJsZTogdHJ1ZSwgdGl0bGU6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdfRGVsZXRpbmcgdGhlIGNvbW1lbnQnKX0pO1xyXG4gICAgdGhpcy5iaW1wbHVzT2JqZWN0Q29tbWVudHNMaXN0U2VydmljZS5kZWxldGVDb21tZW50KGNvbW1lbnRJZClcclxuICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5sb2FkQ29tbWVudHMoKSlcclxuICB9XHJcblxyXG4gIGFkZEh5cGVybGlua0ljb25DbGlja2VkKCkge1xyXG4gICAgdGhpcy5pc0FkZGluZ0h5cGVybGluayA9ICF0aGlzLmlzQWRkaW5nSHlwZXJsaW5rO1xyXG4gIH1cclxuXHJcbiAgYWRkSHlwZXJsaW5rSWNvbktleXByZXNzKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XHJcbiAgICBpZiAoZXZlbnQua2V5ID09PSAnRW50ZXInIHx8IGV2ZW50LmtleSA9PT0gJyAnKSB7XHJcbiAgICAgIHRoaXMuYWRkSHlwZXJsaW5rSWNvbkNsaWNrZWQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJlbW92ZU5ld0NvbW1lbnRBdHRhY2htZW50KGxpbms6IG5ld0F0dGFjaEluZm8pIHtcclxuICAgIHRoaXMubmV3Q29tbWVudEF0dGFjaG1lbnRzID0gdGhpcy5uZXdDb21tZW50QXR0YWNobWVudHMuZmlsdGVyKFxyXG4gICAgICAoY29tbWVudExpbmspID0+IGNvbW1lbnRMaW5rICE9PSBsaW5rXHJcbiAgICApO1xyXG4gICAgaWYgKGxpbms/LnR5cGUgIT09ICdIeXBlcmxpbmsnKSB7XHJcbiAgICAgIHRoaXMuYXR0YWNobWVudExpbmtJdGVtcyA9IHRoaXMuYXR0YWNobWVudExpbmtJdGVtcy5maWx0ZXIoXHJcbiAgICAgICAgKGF0dGFjaG1lbnRMaW5rKSA9PiBhdHRhY2htZW50TGluay5pZCAhPT0gbGluay5pZFxyXG4gICAgICApO1xyXG4gICAgICB0aGlzLm5ld0F0dGFjaG1lbnRJRHMgPSB0aGlzLm5ld0F0dGFjaG1lbnRJRHMuZmlsdGVyKGlkID0+IGlkICE9PSBsaW5rLmlkKVxyXG4gICAgfVxyXG4gICAgdGhpcy5jaGVja0NyZWF0ZUJ1dHRvblN0YXRlKCk7XHJcbiAgfVxyXG5cclxuICByZW1vdmVOZXdDb21tZW50QXR0YWNobWVudEtleXByZXNzKFxyXG4gICAgZXZlbnQ6IEtleWJvYXJkRXZlbnQsXHJcbiAgICBsaW5rOiBuZXdBdHRhY2hJbmZvXHJcbiAgKSB7XHJcbiAgICBpZiAoZXZlbnQua2V5ID09PSAnRW50ZXInIHx8IGV2ZW50LmtleSA9PT0gJyAnKSB7XHJcbiAgICAgIHRoaXMucmVtb3ZlTmV3Q29tbWVudEF0dGFjaG1lbnQobGluayk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBpc0FjdFVzZXJBdXRob3IoaXRlbTogV2ViU2RrLkNvbW1lbnRSZXNwb25zZSkge1xyXG4gICAgcmV0dXJuIGl0ZW0uYXV0aG9yPy5pZCA9PT0gdGhpcy51c2VySWQ7XHJcbiAgfVxyXG5cclxuICBkaXNwbGF5TmFtZShpdGVtOiBXZWJTZGsuQ29tbWVudFJlc3BvbnNlKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBpdGVtLmF1dGhvcj8uZGlzcGxheW5hbWUgPyBpdGVtLmF1dGhvcj8uZGlzcGxheW5hbWUgOiAnJztcclxuICB9XHJcblxyXG4gIGZvcm1hdERhdGUoZGF0ZTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IGxvY2FsZSA9IHdpbmRvdy5uYXZpZ2F0b3IubGFuZ3VhZ2U7XHJcbiAgICBpZiAobG9jYWxlLmluY2x1ZGVzKCdlbicpKSB7XHJcbiAgICAgIGNvbnN0IHVuZm9ybWF0dGVkRGF0ZSA9IG5ldyBEYXRlKGRhdGUpO1xyXG4gICAgICByZXR1cm4gdW5mb3JtYXR0ZWREYXRlLmdldE1vbnRoKCkgKyAnLycgKyB1bmZvcm1hdHRlZERhdGUuZ2V0RGF0ZSgpICsgJy8nICsgdW5mb3JtYXR0ZWREYXRlLmdldEZ1bGxZZWFyKCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQodW5kZWZpbmVkLCB7IGRhdGVTdHlsZTogXCJzaG9ydFwiIH0pLmZvcm1hdChuZXcgRGF0ZShkYXRlKSk7XHJcbiAgfVxyXG5cclxuICBjbGVhclRleHRhcmVhVmFsdWUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5jbGVhclZhbHVlO1xyXG4gIH1cclxuXHJcbiBcclxuICBwcml2YXRlIGxvYWRDb21tZW50cygpIHtcclxuICAgIHRoaXMuc3RhdHVzQmFyU2VydmljZS5zZXRTdGF0dXNCYXJEYXRhKHtzdGF0dXNCYXJWaXNpYmxlOiB0cnVlLCB0aXRsZTogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ19Mb2FkaW5nIGNvbW1lbnRzIGxpc3QnKX0pO1xyXG4gICAgdGhpcy5sb2FkaW5nLnNldCh0cnVlKTtcclxuICAgIHRoaXMuYmltcGx1c09iamVjdENvbW1lbnRzTGlzdFNlcnZpY2VcclxuICAgICAgLmxvYWRDb21tZW50cyh0aGlzLnJvb3RPYmplY3RJZClcclxuICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogY29tbWVudHMgPT4geyAgICAgICBcclxuICAgICAgICAgIHRoaXMuY29tbWVudHNMaXN0JC5uZXh0KGNvbW1lbnRzKVxyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIGNvbXBsZXRlOiAoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmxvYWRpbmcuc2V0KGZhbHNlKTtcclxuICAgICAgICAgIHRoaXMuc3RhdHVzQmFyU2VydmljZS5zZXRTdGF0dXNCYXJEYXRhKHsgc3RhdHVzQmFyVmlzaWJsZTogZmFsc2UsIHRpdGxlOiAnJyB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldEh5cGVybGlua3Mob2JqZWN0SWQ6IHN0cmluZyk6IFBhcnRpYWw8V2ViU2RrLkh5cGVybGluaz5bXSB7XHJcbiAgICByZXR1cm4gdGhpcy5uZXdDb21tZW50QXR0YWNobWVudHNcclxuICAgIC5maWx0ZXIoaCA9PiBoPy50eXBlID09PSAnSHlwZXJsaW5rJykgLy8gRmlsdGVyIG9iamVjdHMgd2l0aCB0eXBlICdIeXBlcmxpbmsnXHJcbiAgICAubWFwKChoKSA9PiAoe1xyXG4gICAgICAuLi5oLFxyXG4gICAgICBvYmplY3RJZCxcclxuICAgIH0pKTtcclxuICB9XHJcblxyXG4gIG9uRW50ZXJLZXlQcmVzc2VkSW5IeXBlcmxpbmtGb3JtKCkge1xyXG4gICAgdGhpcy5hZGROZXdDb21tZW50SHlwZXJsaW5rKCk7XHJcbiAgfVxyXG59XHJcbiIsIkBpZiAoIWxvYWRpbmcoKSkge1xyXG48ZGl2IGNsYXNzPVwiY29tbWVudC10YWItY29udGFpbmVyXCI+XHJcbiAgPGRpdiBjbGFzcz1cInRleHRhcmVhLWNvbnRhaW5lclwiPlxyXG4gICAgPGxpYi1iaW1wbHVzLXRleHRhcmVhXHJcbiAgICAgICh0ZXh0QXJlYVZhbHVlQ2hhbmdlKT1cIm9uVGV4dGFyZWFWYWx1ZUNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcclxuICAgICAgW25hbWVdPVwibmFtZVwiXHJcbiAgICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiXHJcbiAgICAgIFthY3RpdmVBdXRvUmVzaXplVGV4dGFyZWFdPVwidHJ1ZVwiXHJcbiAgICAgIFttaW5Sb3dzXT1cIm1pblJvd3NcIlxyXG4gICAgICBbbWF4Um93c109XCJtYXhSb3dzXCJcclxuICAgICAgW2NsZWFyVmFsdWVdPVwiY2xlYXJUZXh0YXJlYVZhbHVlKClcIlxyXG4gICAgPjwvbGliLWJpbXBsdXMtdGV4dGFyZWE+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxsaWItYmltcGx1cy1hdHRhY2htZW50c1xyXG4gICAgI2F0dGFjaG1lbnRzXHJcbiAgICBsaXN0T25seVxyXG4gICAgW2NsYXNzXT1cIlsnbmV3LWNvbW1lbnQtYXR0YWNobWVudHMnXVwiXHJcbiAgICBbYXR0YWNobWVudHNdPVwiYXR0YWNobWVudHNTdGF0ZSgpXCJcclxuICAgIChhZGRBdHRhY2htZW50KT1cIm9uQWRkQXR0YWNobWVudCgkZXZlbnQpXCJcclxuICAgIChkZWxldGVBdHRhY2htZW50KT1cIm9uRGVsZXRlQXR0YWNobWVudCgkZXZlbnQpXCJcclxuICAvPlxyXG5cclxuICA8bGliLWxpbmtzLXRvLWRvY3VtZW50cyBcclxuICAgICNsaW5rc1RvRG9jdW1lbnRzXHJcbiAgICBsaXN0T25seVxyXG4gICAgaGlkZUF0dGFjaG1lbnRTaXplXHJcbiAgICBzaG93RW1wdHlNZXNzYWdlPVwiZmFsc2VcIiBcclxuICAgIFthdHRhY2htZW50c109XCJhdHRhY2htZW50TGlua0l0ZW1zXCJcclxuICAgIChhdHRhY2htZW50c0xpbmtDaGFuZ2UpPVwib25BdHRhY2htZW50c0xpbmtDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICBbYXBpXT1cImFwaVwiICAgICAgICBcclxuICAgIFtwcm9qZWN0XT1cInByb2plY3RcIlxyXG4gICAgW3Jvb3RPYmplY3RJZF09JydcclxuICAgIFtjYW5DcmVhdGVBdHRhY2htZW50TGlua109XCJ0cnVlXCJcclxuICAgIFtjYW5EZWxldGVBdHRhY2htZW50TGlua109XCJ0cnVlXCJcclxuICAgIFt3b3JtaG9sZVNlbGVjdG9yXT1cIndvcm1ob2xlU2VsZWN0b3JcIlxyXG4gICAgW2Vudl09XCJlbnZcIlxyXG4gIC8+XHJcblxyXG4gIEBpZiAobmV3Q29tbWVudEF0dGFjaG1lbnRzLmxlbmd0aCA+IDApIHtcclxuICAgIDxkaXYgY2xhc3M9XCJuZXctY29tbWVudC1hdHRhY2htZW50LWxpc3RcIj5cclxuICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBuZXdDb21tZW50QXR0YWNobWVudHNcIiBcclxuICAgICAgICBbbmdDbGFzc109XCInbmV3LWNvbW1lbnQtYXR0YWNobWVudCAnICsgaXRlbS50eXBlXCJcclxuICAgICAgICBbdGl0bGVdPVwiaXRlbS50eXBlID09PSAnSHlwZXJsaW5rJyA/IGl0ZW0udXJsOiBpdGVtLm5hbWVcIj5cclxuICAgICAgICA8ZGl2IFxyXG4gICAgICAgICAgW25nQ2xhc3NdPVwiJ2ljb24tc21hbGwgJyArIGl0ZW0udHlwZVwiICAgICAgICAgIFxyXG4gICAgICAgICAgW3RpdGxlXT1cIml0ZW0udHlwZSA9PT0gJ0h5cGVybGluaycgPyBpdGVtLnVybDogaXRlbS5uYW1lXCI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInRleHRcIj57eyBpdGVtLm5hbWUgfX0gPC9kaXY+ICAgICAgXHJcbiAgICAgIDxzcGFuIGNsYXNzPVwiY2FuY2VsLWljb25cIiB0aXRsZT1cInt7IGl0ZW0uZGVsZXRlQnV0dG9uVGl0bGV9fVwiIChjbGljayk9XCJyZW1vdmVOZXdDb21tZW50QXR0YWNobWVudChpdGVtKVwiIChrZXlkb3duKT1cInJlbW92ZU5ld0NvbW1lbnRBdHRhY2htZW50S2V5cHJlc3MoJGV2ZW50LCBpdGVtKVwiPjwvc3Bhbj5cclxuICAgICAgPC9kaXY+ICAgIFxyXG4gICAgPC9kaXY+XHJcbiAgfVxyXG5cclxuICBAaWYgKGlzQWRkaW5nSHlwZXJsaW5rKSB7XHJcbiAgICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwiaHlwZXJsaW5rRm9ybVwiIGNsYXNzPVwiaHlwZXJsaW5rLWlucHV0LWZvcm1cIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiaHlwZXJsaW5rLWlucHV0LXJvd1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImxpbmstaWNvbiBpY29uLW5leHQtdG8tdGV4dC1pbnB1dFwiPjwvZGl2PlxyXG4gICAgICAgICAgPGxpYi1iaW1wbHVzLWlucHV0LXRleHQtZmllbGQgY2xhc3M9XCJmbGV4LWdyb3dcIiBmb3JtQ29udHJvbE5hbWU9XCJuYW1lXCIgcGxhY2Vob2xkZXI9XCJ7eyAnX05hbWUnIHwgdHJhbnNsYXRlIH19XCIgKGVudGVyS2V5UHJlc3NlZCk9XCJvbkVudGVyS2V5UHJlc3NlZEluSHlwZXJsaW5rRm9ybSgpXCIvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJoeXBlcmxpbmstaW5wdXQtcm93XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaWNvbi1uZXh0LXRvLXRleHQtaW5wdXRcIj48L2Rpdj5cclxuICAgICAgICAgIDxsaWItYmltcGx1cy1pbnB1dC10ZXh0LWZpZWxkIGNsYXNzPVwiZmxleC1ncm93XCIgZm9ybUNvbnRyb2xOYW1lPVwidXJsXCIgcGxhY2Vob2xkZXI9XCJ7eyAnX1VSTCcgfCB0cmFuc2xhdGUgfX1cIiAoZW50ZXJLZXlQcmVzc2VkKT1cIm9uRW50ZXJLZXlQcmVzc2VkSW5IeXBlcmxpbmtGb3JtKClcIi8+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxsaWItYmltcGx1cy1idXR0b25zLXJvdyBbaXRlbXNdPVwiaHlwZXJsaW5rQnV0dG9uUm93SXRlbXNcIiAoYnV0dG9uQ2xpY2tlZCk9XCJoeXBlcmxpbmtCdXR0b25Sb3dCdXR0b25DbGlja2VkKCRldmVudClcIi8+XHJcbiAgICAgIDwvZm9ybT5cclxuICB9XHJcblxyXG4gIDxkaXYgY2xhc3M9XCJjb21tZW50cy10YWItYXR0YWNobWVudHMtc2VjdGlvblwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbW1lbnRzLWF0dGFjaG1lbnRzLWxpc3RcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInRhYi1hdHRhY2htZW50cyBpY29uIGF0dGFjaG1lbnRzLWljb24gaGlkZGVuXCI+PC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJhdHRhY2htZW50LWljb24gaWNvbi1zbWFsbCBpbnRlcmFjdGl2ZVwiIFt0aXRsZV09XCInX0FkZCBhdHRhY2htZW50JyB8IHRyYW5zbGF0ZVwiIChjbGljayk9XCJhdHRhY2htZW50cy5vcGVuKClcIiAoa2V5ZG93bik9XCJhdHRhY2htZW50cy5vcGVuKClcIj48L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImxpbmstaWNvbiBpY29uLXNtYWxsIGludGVyYWN0aXZlXCIgW3RpdGxlXT1cIidfQWRkIGh5cGVybGluaycgfCB0cmFuc2xhdGVcIiAoY2xpY2spPVwiYWRkSHlwZXJsaW5rSWNvbkNsaWNrZWQoKVwiIChrZXlkb3duKT1cImFkZEh5cGVybGlua0ljb25LZXlwcmVzcygkZXZlbnQpXCI+PC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJhdHRhY2htZW50LWxpbmstaWNvbiBpY29uLXNtYWxsIGludGVyYWN0aXZlXCIgW3RpdGxlXT1cIidfQWRkX2F0dGFjaG1lbnRfbGluaycgfCB0cmFuc2xhdGVcIiAoY2xpY2spPVwibGlua3NUb0RvY3VtZW50cy5jcmVhdGVBdHRhY2htZW50TGluayhhcGkhKVwiIChrZXlkb3duKT1cImxpbmtzVG9Eb2N1bWVudHMuY3JlYXRlQXR0YWNobWVudExpbmsoYXBpISlcIj48L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cInRhYi1hdHRhY2htZW50bGlua3MgaWNvbiBhdHRhY2htZW50cy1pY29uIGhpZGRlblwiPjwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiYWRkLWNvbW1lbnRcIj5cclxuICAgICAgPGxpYi1iaW1wbHVzLWJ1dHRvbnMtcm93XHJcbiAgICAgICAgW2l0ZW1zXT1cImJ1dHRvblJvd0l0ZW1zXCJcclxuICAgICAgICAoYnV0dG9uQ2xpY2tlZCk9XCJidXR0b25Sb3dCdXR0b25DbGlja2VkKCRldmVudClcIiAvPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxkaXYgY2xhc3M9XCJjb21tZW50cy1zZXBhcmF0b3JcIj48L2Rpdj5cclxuXHJcbiAgPGRpdiBjbGFzcz1cInNjcm9sbGFibGUtY29udGVudC1jb250YWluZXJcIj5cclxuICAgIDxsaWItYmltcGx1cy1zY3JvbGxhYmxlLWNvbnRhaW5lcj5cclxuICAgICAgQGlmICgoY29tbWVudHNMaXN0JCB8IGFzeW5jKT8ubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm5vLWNvbW1lbnRzLWZvdW5kXCI+XHJcbiAgICAgICAgICB7eyAnX05vIGNvbW1lbnRzIGZvdW5kJyB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICB9IEBlbHNlIHtcclxuICAgICAgICBAZm9yIChpdGVtIG9mIGNvbW1lbnRzTGlzdCQgfCBhc3luYzsgdHJhY2sgaXRlbSkge1xyXG4gICAgICAgICAgQGlmKGl0ZW0uY3JlYXRlZEF0ICYmIGlzU2FtZURhdGUoaXRlbS5jcmVhdGVkQXQpKSB7XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb21tZW50LWxpc3QtZGF0ZVwiPlxyXG4gICAgICAgICAgICAgIHt7Zm9ybWF0RGF0ZShpdGVtLmNyZWF0ZWRBdCl9fVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIDxsaWItYmltcGx1cy1jb21tZW50XHJcbiAgICAgICAgICAgIChvdXRwdXRBY3Rpb25Db21tZW50RXZlbnQpPVwiaGFuZGxlQWN0aW9uQ29tbWVudEV2ZW50KCRldmVudClcIlxyXG4gICAgICAgICAgICAoZ2V0QXR0YWNobWVudCk9XCJvbkdldEF0dGFjaG1lbnQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgIFttZXNzYWdlXT1cIml0ZW0udGV4dFwiXHJcbiAgICAgICAgICAgIFthcGldPVwiYXBpXCJcclxuICAgICAgICAgICAgW2RhdGVdPVwiaXRlbS5jcmVhdGVkQXQgPyBpdGVtLmNyZWF0ZWRBdCA6ICcnXCJcclxuICAgICAgICAgICAgYWN0aW9uPVwiZGVsZXRlXCJcclxuICAgICAgICAgICAgW2NvbW1lbnRJZF09XCJpdGVtLmlkXCJcclxuICAgICAgICAgICAgW2F0dGFjaG1lbnRzXT1cIml0ZW0uYXR0YWNobWVudHMgPz8gW11cIlxyXG4gICAgICAgICAgICBbYXR0YWNobWVudExpbmtJdGVtc109XCJpdGVtLmF0dGFjaG1lbnRMaW5rcyA/PyBbXVwiXHJcbiAgICAgICAgICAgIFtoeXBlcmxpbmtzXT1cIml0ZW0uaHlwZXJsaW5rc1wiXHJcbiAgICAgICAgICAgIFtpc0FjdFVzZXJBdXRob3JdPVwiaXNBY3RVc2VyQXV0aG9yKGl0ZW0pXCJcclxuICAgICAgICAgICAgW2Rpc3BsYXluYW1lXT1cImRpc3BsYXlOYW1lKGl0ZW0pXCI+XHJcbiAgICAgICAgICA8L2xpYi1iaW1wbHVzLWNvbW1lbnQ+XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICA8L2xpYi1iaW1wbHVzLXNjcm9sbGFibGUtY29udGFpbmVyPlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxufVxyXG4iXX0=
|
|
388
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmltcGx1cy1vYmplY3QtY29tbWVudHMtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtYmltcGx1cy1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9iaW1wbHVzLW9iamVjdC1jb21tZW50cy1saXN0L2JpbXBsdXMtb2JqZWN0LWNvbW1lbnRzLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWJpbXBsdXMtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvYmltcGx1cy1vYmplY3QtY29tbWVudHMtbGlzdC9iaW1wbHVzLW9iamVjdC1jb21tZW50cy1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQWlCLGlCQUFpQixFQUFDLHVCQUF1QixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RJLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSwwRUFBMEUsQ0FBQztBQUMvSCxPQUFPLEVBQUUsZUFBZSxFQUFvQixNQUFNLHFCQUFxQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRTdELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQzFGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBR3ZGLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQ2xHLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLGdFQUFnRSxDQUFDO0FBQ2pILE9BQU8sRUFBRSxtQ0FBbUMsRUFBRSxNQUFNLHdFQUF3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a0JBN0I5QyxTQUFTOytCQUNFLGtDQUFrQyxXQUduQzt3QkFDUCxLQUFLO3dCQUNMLFlBQVk7d0JBQ1osd0JBQXdCO3dCQUN4Qix1QkFBdUI7d0JBQ3ZCLDBCQUEwQjt3QkFDMUIsZUFBZTt3QkFDZixtQ0FBbUM7d0JBQ25DLDhCQUE4Qjt3QkFDOUIsMkJBQTJCO3dCQUMzQix5QkFBeUI7d0JBQ3pCLFdBQVc7d0JBQ1gsbUJBQW1CO3dCQUNuQixTQUFTO3FCQUNWLGFBQ1U7d0JBQ1QsUUFBUTt3QkFDUixnQ0FBZ0M7d0JBQ2hDLHlCQUF5Qjt3QkFDekIsRUFBRSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRTtxQkFDMUQsY0FDVyxJQUFJLG1CQUNDLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLFNBQVM7K1JBT2YsR0FBRztzQkFBN0IsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBQ2hCLE9BQU87c0JBQWYsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csR0FBRztzQkFBWCxLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQTRCRixZQUFZO3NCQURmLEtBQUs7Z0JBVUYsTUFBTTtzQkFEVCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIHNpZ25hbCwgU2ltcGxlQ2hhbmdlcywgVmlld0VuY2Fwc3VsYXRpb24sQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQmltcGx1c092ZXJsYXlEaWFsb2dEZWxldGVDb21wb25lbnQgfSBmcm9tICcuLi9iaW1wbHVzLW92ZXJsYXktZGlhbG9nLWRlbGV0ZS9iaW1wbHVzLW92ZXJsYXktZGlhbG9nLWRlbGV0ZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUsIFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuaW1wb3J0IHsgQXN5bmNQaXBlLCBEYXRlUGlwZSwgTmdGb3IgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnLi4vYmltcGx1cy1nZW5lcmFsLW92ZXJsYXktZGlhbG9nL2JpbXBsdXMtZ2VuZXJhbC1vdmVybGF5LWRpYWxvZy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQmltcGx1c1RleHRhcmVhQ29tcG9uZW50IH0gZnJvbSAnLi4vYmltcGx1cy10ZXh0YXJlYS9iaW1wbHVzLXRleHRhcmVhLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEJpbXBsdXNDb21tZW50Q29tcG9uZW50IH0gZnJvbSAnLi4vYmltcGx1cy1jb21tZW50L2JpbXBsdXMtY29tbWVudC5jb21wb25lbnQnO1xyXG5pbXBvcnQgV2ViU2RrIGZyb20gJ2JpbXBsdXMtd2Vic2RrJztcclxuaW1wb3J0IHsgQmltcGx1c0J1dHRvbkNsaWNrRXZlbnQsIEJpbXBsdXNCdXR0b25Sb3dJdGVtIH0gZnJvbSAnLi4vYmltcGx1cy1idXR0b25zLXJvdy9iaW1wbHVzLWJ1dHRvbnMtcm93LmludGVyZmFjZSc7XHJcbmltcG9ydCB7IEJpbXBsdXNCdXR0b25zUm93Q29tcG9uZW50IH0gZnJvbSAnLi4vYmltcGx1cy1idXR0b25zLXJvdy9iaW1wbHVzLWJ1dHRvbnMtcm93LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEJpbXBsdXNMb2NhbGl6ZWRXaWRnZXRDb21wb25lbnQgfSBmcm9tICcuLi9iaW1wbHVzLWxvY2FsaXplZC13aWRnZXQvYmltcGx1cy1sb2NhbGl6ZWQtd2lkZ2V0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEJpbXBsdXNTY3JvbGxhYmxlQ29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi4vYmltcGx1cy1zY3JvbGxhYmxlLWNvbnRhaW5lci9iaW1wbHVzLXNjcm9sbGFibGUtY29udGFpbmVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvbW1lbnREYXRhLCBDb21tZW50T3V0cHV0RGF0YSwgSURpYWxvZ0NvbmZpcm1DbG9zZSB9IGZyb20gJy4vYmltcGx1c09iamVjdENvbW1lbnRzSSc7XHJcbmltcG9ydCB7IEJpbXBsdXNJbnB1dFRleHRGaWVsZENvbXBvbmVudCB9IGZyb20gXCIuLi9iaW1wbHVzLWlucHV0LXRleHQtZmllbGQvYmltcGx1cy1pbnB1dC10ZXh0LWZpZWxkLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgVmFsaWRhdG9ycyB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQgeyBCaW1wbHVzQXR0YWNobWVudHNDb21wb25lbnQgfSBmcm9tICcuLi9iaW1wbHVzLWF0dGFjaG1lbnRzL2JpbXBsdXMtYXR0YWNobWVudHMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQmltcGx1c0F0dGFjaG1lbnRzU2VydmljZSB9IGZyb20gJy4uL2JpbXBsdXMtYXR0YWNobWVudHMvc2VydmljZXMvYmltcGx1cy1hdHRhY2htZW50cy5zZXJ2aWNlJztcclxuaW1wb3J0IHtcclxuICBBdHRhY2htZW50LFxyXG4gIEJJTVBMVVNfQVRUQUNITUVOVFNfQ09ORklHLFxyXG4gIEJpbXBsdXNBdHRhY2htZW50c0NvbmZpZyxcclxufSBmcm9tICcuLi9iaW1wbHVzLWF0dGFjaG1lbnRzL2JpbXBsdXMtYXR0YWNobWVudHMuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQmltcGx1c09iamVjdENvbW1lbnRzTGlzdFNlcnZpY2UgfSBmcm9tICcuL2JpbXBsdXMtb2JqZWN0LWNvbW1lbnRzLWxpc3Quc2VydmljZSc7XHJcbmltcG9ydCB7IExpbmtzVG9Eb2N1bWVudHNDb21wb25lbnQgfSBmcm9tICcuLi9saW5rcy10by1kb2N1bWVudHMvbGlua3MtdG8tZG9jdW1lbnRzLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFByb2plY3ROYXZpZ2F0b3JQcm9qZWN0IH0gZnJvbSAnLi4vcHJvamVjdC1tb2RlbHMvcHJvamVjdC1tb2RlbHMuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgQmltcGx1c1N0YXR1c0JhclNlcnZpY2UgfSBmcm9tICcuLi9iaW1wbHVzLXN0YXR1cy1iYXIvYmltcGx1cy1zdGF0dXMtYmFyLnNlcnZpY2UnO1xyXG5pbXBvcnQge25ld0F0dGFjaEluZm99IGZyb20gJy4vYmltcGx1cy1vYmplY3QtY29tbWVudHMtbGlzdC5pbnRlcmZhY2UnO1xyXG5cclxuXHJcbmNvbnN0IGNvbmZpZzogQmltcGx1c0F0dGFjaG1lbnRzQ29uZmlnID0ge1xyXG4gIHNob3dOb0F0dGFjaG1lbnRzRm91bmQ6IGZhbHNlLFxyXG4gIGhpZGVBdHRhY2htZW50U2l6ZTogdHJ1ZSxcclxufTtcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItYmltcGx1cy1vYmplY3QtY29tbWVudHMtbGlzdCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2JpbXBsdXMtb2JqZWN0LWNvbW1lbnRzLWxpc3QuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2JpbXBsdXMtb2JqZWN0LWNvbW1lbnRzLWxpc3QuY29tcG9uZW50Lmxlc3MnXSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBOZ0ZvcixcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIEJpbXBsdXNUZXh0YXJlYUNvbXBvbmVudCxcclxuICAgIEJpbXBsdXNDb21tZW50Q29tcG9uZW50LFxyXG4gICAgQmltcGx1c0J1dHRvbnNSb3dDb21wb25lbnQsXHJcbiAgICBUcmFuc2xhdGVNb2R1bGUsXHJcbiAgICBCaW1wbHVzU2Nyb2xsYWJsZUNvbnRhaW5lckNvbXBvbmVudCxcclxuICAgIEJpbXBsdXNJbnB1dFRleHRGaWVsZENvbXBvbmVudCxcclxuICAgIEJpbXBsdXNBdHRhY2htZW50c0NvbXBvbmVudCxcclxuICAgIExpbmtzVG9Eb2N1bWVudHNDb21wb25lbnQsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICBBc3luY1BpcGUsXHJcbiAgXSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIERhdGVQaXBlLFxyXG4gICAgQmltcGx1c09iamVjdENvbW1lbnRzTGlzdFNlcnZpY2UsXHJcbiAgICBCaW1wbHVzQXR0YWNobWVudHNTZXJ2aWNlLFxyXG4gICAgeyBwcm92aWRlOiBCSU1QTFVTX0FUVEFDSE1FTlRTX0NPTkZJRywgdXNlVmFsdWU6IGNvbmZpZyB9LFxyXG4gIF0sXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5TaGFkb3dEb20sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBCaW1wbHVzT2JqZWN0Q29tbWVudHNMaXN0Q29tcG9uZW50XHJcbiAgZXh0ZW5kcyBCaW1wbHVzTG9jYWxpemVkV2lkZ2V0Q29tcG9uZW50XHJcbiAgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XHJcbiAgaHlwZXJsaW5rRm9ybTogRm9ybUdyb3VwO1xyXG5cclxuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KSBhcGkhOiBXZWJTZGsuQXBpIHwgbnVsbDtcclxuICBASW5wdXQoKSBwcm9qZWN0OiBQcm9qZWN0TmF2aWdhdG9yUHJvamVjdCB8IG51bGwgPSBudWxsO1xyXG4gIEBJbnB1dCgpIHdvcm1ob2xlU2VsZWN0b3I6IHN0cmluZyA9IFwibG9jYWxFbWJlZGRlZE1vZGFsSWRcIjtcclxuICBASW5wdXQoKSBlbnY6IHN0cmluZyA9IFwicHJvZFwiO1xyXG4gIEBJbnB1dCgpIGF0dGFjaG1lbnRMaW5rSXRlbXM6IFdlYlNkay5BdHRhY2htZW50TGlua1tdID0gW11cclxuICBASW5wdXQoKSBpbnB1dEJhc2VVcmw6IHN0cmluZyA9ICcnO1xyXG4gIHByb3RlY3RlZCByZWFkb25seSBjb21tZW50c0xpc3QkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxXZWJTZGsuQ29tbWVudFJlc3BvbnNlW10+KFtdKTtcclxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgbG9hZGluZyA9IHNpZ25hbChmYWxzZSk7XHJcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGF0dGFjaG1lbnRzU3RhdGUgPSBzaWduYWw8QXR0YWNobWVudFtdPihbXSk7XHJcbiAgYnV0dG9uUm93SXRlbXM6IEJpbXBsdXNCdXR0b25Sb3dJdGVtW10gPSBbXTtcclxuICBoeXBlcmxpbmtCdXR0b25Sb3dJdGVtczogQmltcGx1c0J1dHRvblJvd0l0ZW1bXSA9IFtdO1xyXG4gIHRleHRBcmVhVmFsdWU6IHN0cmluZyB8IG51bGwgPSBudWxsO1xyXG4gIGxhc3RTaG93bkRhdGUgPSAnJztcclxuICBwbGFjZWhvbGRlciA9ICcnO1xyXG4gIG5hbWUgPSAnJztcclxuICByZWFkb25seSA9IGZhbHNlO1xyXG4gIGF1dG9SZXNpemVUZXh0YXJlYSA9IHRydWU7XHJcbiAgbWluUm93cyA9IDM7XHJcbiAgbWF4Um93cyA9IDEwO1xyXG4gIGNsZWFyVmFsdWUgPSBmYWxzZTtcclxuICBzdGF0dXNCYXJUaXRsZU1lc3NhZ2UgPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnX0xvYWRpbmcnKTtcclxuICBcclxuICAvLyBhdHRhY2htZW50IGlkcyByZWFkeSB0byBtYXAgdG8gY29uY3JldGUgY29tbWVudFxyXG4gIG5ld0F0dGFjaG1lbnRJRHM6IHN0cmluZ1tdID0gW11cclxuXHJcbiAgaXNBZGRpbmdIeXBlcmxpbms6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBcclxuICBuZXdDb21tZW50QXR0YWNobWVudHM6IG5ld0F0dGFjaEluZm8gW10gPSBbXTtcclxuICBcclxuICBwcml2YXRlIF9yb290T2JqZWN0SWQgPSAnJztcclxuICBwcml2YXRlIF91c2VySWQgPSAnJztcclxuXHJcbiAgQElucHV0KClcclxuICBzZXQgcm9vdE9iamVjdElkKGlkOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX3Jvb3RPYmplY3RJZCA9IGlkO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHJvb3RPYmplY3RJZCgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX3Jvb3RPYmplY3RJZDtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IHVzZXJJZChpZDogc3RyaW5nKSB7XHJcbiAgICB0aGlzLl91c2VySWQgPSBpZDtcclxuICB9XHJcblxyXG4gIGdldCB1c2VySWQoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl91c2VySWQ7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgZGlhbG9nU2VydmljZTogRGlhbG9nU2VydmljZSxcclxuICAgIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRhdGVQaXBlOiBEYXRlUGlwZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyLFxyXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGJpbXBsdXNBdHRhY2htZW50c1NlcnZpY2U6IEJpbXBsdXNBdHRhY2htZW50c1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGJpbXBsdXNPYmplY3RDb21tZW50c0xpc3RTZXJ2aWNlOiBCaW1wbHVzT2JqZWN0Q29tbWVudHNMaXN0U2VydmljZSxcclxuICAgIHByaXZhdGUgc3RhdHVzQmFyU2VydmljZTogQmltcGx1c1N0YXR1c0JhclNlcnZpY2UgICAgXHJcbiAgKSB7XHJcbiAgICBzdXBlcih0cmFuc2xhdGVTZXJ2aWNlKTtcclxuXHJcbiAgICB0aGlzLmh5cGVybGlua0Zvcm0gPSB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKHtcclxuICAgICAgbmFtZTogWycnLCBbXV0sXHJcbiAgICAgIHVybDogW1xyXG4gICAgICAgICcnLFxyXG4gICAgICAgIFtcclxuICAgICAgICAgIFZhbGlkYXRvcnMucmVxdWlyZWQsXHJcbiAgICAgICAgICBWYWxpZGF0b3JzLnBhdHRlcm4oL15bXjw+XSokLyksIC8vIERvIG5vdCBhbGxvdyA8IG9yID5cclxuICAgICAgICAgIFZhbGlkYXRvcnMucGF0dGVybigvXig/IVxccyokKS4rLyksIC8vIERvIG5vdCBhbGxvdyBhbGwgZW1wdHkgc3RyaW5nLCBidXQgYWxsb3cgdGV4dCBhZnRlciBzcGFjZXNcclxuICAgICAgICBdLFxyXG4gICAgICBdLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBpc0NyZWF0ZUJ1dHRvbkRpc2FibGVkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuICEoXHJcbiAgICAgIHRoaXMudGV4dEFyZWFWYWx1ZSB8fFxyXG4gICAgICB0aGlzLm5ld0F0dGFjaG1lbnRJRHM/Lmxlbmd0aCA+IDAgfHxcclxuICAgICAgdGhpcy5nZXRIeXBlcmxpbmtzKHRoaXMucm9vdE9iamVjdElkKT8ubGVuZ3RoID4gMCB8fFxyXG4gICAgICB0aGlzLmF0dGFjaG1lbnRzU3RhdGUoKT8ubGVuZ3RoID4gMFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGNoZWNrQ3JlYXRlQnV0dG9uU3RhdGUoKSB7XHJcbiAgICBpZiAoIXRoaXMuYnV0dG9uUm93SXRlbXM/LlswXSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLmJ1dHRvblJvd0l0ZW1zWzBdLmRpc2FibGVkID0gdGhpcy5pc0NyZWF0ZUJ1dHRvbkRpc2FibGVkKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmJpbXBsdXNPYmplY3RDb21tZW50c0xpc3RTZXJ2aWNlLmFwaSA9IHRoaXMuYXBpITtcclxuICAgIHRoaXMubG9hZENvbW1lbnRzKCk7ICAgIFxyXG4gICAgY29uc3Qgc3VibWl0OiBCaW1wbHVzQnV0dG9uUm93SXRlbVtdID0gW1xyXG4gICAgICB7XHJcbiAgICAgICAgaWQ6ICdzdWJtaXQnLFxyXG4gICAgICAgIHRpdGxlOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnX0FkZCBjb21tZW50JyksXHJcbiAgICAgICAgdG9vbHRpcDogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ19BZGQgY29tbWVudCcpLFxyXG4gICAgICAgIGRpc2FibGVkOiB0aGlzLmlzQ3JlYXRlQnV0dG9uRGlzYWJsZWQoKSxcclxuICAgICAgICBidXR0b25TdHlsZTogJ3ByaW1hcnknLFxyXG4gICAgICB9LFxyXG4gICAgXTtcclxuICAgIHRoaXMucGxhY2Vob2xkZXIgPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcclxuICAgICAgJ19QbGFjZSBjb21tZW50IHRleHQgaGVyZSdcclxuICAgICk7XHJcbiAgICB0aGlzLm5hbWUgPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnY29tbWVudCcpO1xyXG4gICAgdGhpcy5idXR0b25Sb3dJdGVtcyA9IHN1Ym1pdDtcclxuXHJcbiAgICB0aGlzLmh5cGVybGlua0J1dHRvblJvd0l0ZW1zLnB1c2goXHJcbiAgICAgIHtcclxuICAgICAgICBpZDogJ2NhbmNlbC1oeXBlcmxpbmsnLFxyXG4gICAgICAgIHRpdGxlOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnX0NhbmNlbCcpLFxyXG4gICAgICAgIHRvb2x0aXA6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdfQ2FuY2VsJyksXHJcbiAgICAgICAgZGlzYWJsZWQ6IGZhbHNlLFxyXG4gICAgICAgIGJ1dHRvblN0eWxlOiAncHJpbWFyeScsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpZDogJ2FkZC1oeXBlcmxpbmsnLFxyXG4gICAgICAgIHRpdGxlOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnX0FkZCBoeXBlcmxpbmsnKSxcclxuICAgICAgICB0b29sdGlwOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnX0FkZCBoeXBlcmxpbmsnKSxcclxuICAgICAgICBkaXNhYmxlZDogdHJ1ZSxcclxuICAgICAgICBidXR0b25TdHlsZTogJ3ByaW1hcnknLFxyXG4gICAgICB9XHJcbiAgICApO1xyXG5cclxuICAgIHRoaXMuaHlwZXJsaW5rRm9ybS5zdGF0dXNDaGFuZ2VzLnN1YnNjcmliZSgoc3RhdHVzKSA9PiB7XHJcbiAgICAgIHRoaXMuaHlwZXJsaW5rQnV0dG9uUm93SXRlbXNbMV0uZGlzYWJsZWQgPSBzdGF0dXMgIT09ICdWQUxJRCc7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgaWYgKGNoYW5nZXNbJ3Jvb3RPYmplY3RJZCddICYmICFjaGFuZ2VzWydyb290T2JqZWN0SWQnXS5maXJzdENoYW5nZSkge1xyXG4gICAgICB0aGlzLmxvYWRDb21tZW50cygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIG9uQXR0YWNobWVudHNMaW5rQ2hhbmdlKG5ld0F0dGFjaG1lbnRzOiBuZXdBdHRhY2hJbmZvW10pOiB2b2lkIHtcclxuICAgIGNvbnN0IG5ld0RlY29yYXRlZEF0dGFjaG1lbnRzOm5ld0F0dGFjaEluZm9bXSA9IG5ld0F0dGFjaG1lbnRzLm1hcCgoYXR0YWNobWVudCkgPT4ge1xyXG4gICAgICBhdHRhY2htZW50Lmljb25DbGFzcyA9ICdmYSBmYS1saW5rJztcclxuICAgICAgYXR0YWNobWVudC5pY29uVGl0bGUgPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnX0F0dGFjaG1lbnRfbGluaycpO1xyXG4gICAgICBhdHRhY2htZW50LmRlbGV0ZUJ1dHRvblRpdGxlID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ19EZWxldGVfYXR0YWNobWVudGxpbmsnKTtcclxuICAgICAgcmV0dXJuIGF0dGFjaG1lbnQ7XHJcbiAgICB9KTtcclxuICAgIGNvbnN0IG5ld0NvbW1lbnRBdHRhY2htZW50cyA9IHRoaXMubmV3Q29tbWVudEF0dGFjaG1lbnRzLmZpbHRlcigoYXR0YWNobWVudCkgPT4gYXR0YWNobWVudD8udHlwZSA9PT0gJ0h5cGVybGluaycpO1xyXG4gICAgdGhpcy5uZXdDb21tZW50QXR0YWNobWVudHMgPSBbLi4ubmV3Q29tbWVudEF0dGFjaG1lbnRzLCAuLi5uZXdEZWNvcmF0ZWRBdHRhY2htZW50c107ICAgXHJcbiAgICB0aGlzLm5ld0F0dGFjaG1lbnRJRHMgPSBuZXdBdHRhY2htZW50cy5tYXAoKGF0dGFjaG1lbnQpID0+IGF0dGFjaG1lbnQuaWQpO1xyXG4gICAgdGhpcy5jaGVja0NyZWF0ZUJ1dHRvblN0YXRlKCk7XHJcbiAgfVxyXG4gIFxyXG5cclxuICBwcm90ZWN0ZWQgb25BZGRBdHRhY2htZW50KGZpbGU6IEZpbGUpOiB2b2lkIHtcclxuICAgIGNvbnN0IGF0dGFjaG1lbnQgPSB0aGlzLmJpbXBsdXNBdHRhY2htZW50c1NlcnZpY2UuZ2V0QXR0YWNobWVudChmaWxlKTtcclxuICAgIHRoaXMuYXR0YWNobWVudHNTdGF0ZS51cGRhdGUoYXR0YWNobWVudHMgPT4gKFsuLi5hdHRhY2htZW50cywgYXR0YWNobWVudF0pKTtcclxuICAgIHRoaXMuY2hlY2tDcmVhdGVCdXR0b25TdGF0ZSgpO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIG9uRGVsZXRlQXR0YWNobWVudChhdHRhY2htZW50OiBBdHRhY2htZW50KTogdm9pZCB7XHJcbiAgICB0aGlzLmF0dGFjaG1lbnRzU3RhdGUudXBkYXRlKGF0dGFjaG1lbnRzID0+IGF0dGFjaG1lbnRzLmZpbHRlcihhID0+IGEgIT09IGF0dGFjaG1lbnQpKTtcclxuICAgIHRoaXMuY2hlY2tDcmVhdGVCdXR0b25TdGF0ZSgpO1xyXG4gIH1cclxuXHJcbiAgLyoqIEV2ZW50IG9uIGNsaWNrIGF0dGFjaG1lbnQuICovXHJcbiAgcHJvdGVjdGVkIG9uR2V0QXR0YWNobWVudChhdHRhY2htZW50OiBBdHRhY2htZW50KTogdm9pZCB7XHJcbiAgICB0aGlzLmJpbXBsdXNPYmplY3RDb21tZW50c0xpc3RTZXJ2aWNlLmRvd25sb2FkQXR0YWNobWVudChhdHRhY2htZW50KTtcclxuICB9XHJcblxyXG4gIG9uVGV4dGFyZWFWYWx1ZUNoYW5nZSh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLnRleHRBcmVhVmFsdWUgPSB2YWx1ZTtcclxuICAgIHRoaXMuY2hlY2tDcmVhdGVCdXR0b25TdGF0ZSgpO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlQWN0aW9uQ29tbWVudEV2ZW50KGV2ZW50OiBDb21tZW50T3V0cHV0RGF0YSkge1xyXG4gICAgaWYgKGV2ZW50LmFjdGlvbiA9PT0gJ2RlbGV0ZScpIHtcclxuICAgICAgY29uc3QgZGF0YSA9IGV2ZW50LmRhdGEgYXMgQ29tbWVudERhdGE7XHJcbiAgICAgIHRoaXMub3BlbkRpYWxvZ0RlbGV0ZUNvbW1lbnQoZGF0YS5jb21tZW50SWQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgYWN0aW9uRGlhbG9nQ2xvc2UoZGF0YTogSURpYWxvZ0NvbmZpcm1DbG9zZSkge1xyXG4gICAgdGhpcy5kaWFsb2dTZXJ2aWNlLmNsb3NlKGRhdGEpO1xyXG4gIH1cclxuXHJcbiAgb3BlbkRpYWxvZ0RlbGV0ZUNvbW1lbnQoY29tbWVudElkOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuZGlhbG9nU2VydmljZS5vcGVuKEJpbXBsdXNPdmVybGF5RGlhbG9nRGVsZXRlQ29tcG9uZW50LCB7XHJcbiAgICAgIG9wdGlvbnM6IHtcclxuICAgICAgICBwb3NpdGlvbjogJ21pZGRsZScsXHJcbiAgICAgICAgcG9zaXRpb25PcHRpb25zOiB7fSxcclxuICAgICAgICBvdmVybGF5Q2xpY2tFbmFibGVkOiBmYWxzZSxcclxuICAgICAgICBvdmVybGF5VmlzaWJpbGl0eUVuYWJsZWQ6IHRydWUsXHJcbiAgICAgICAgZHJhZ2dhYmxlOiB0cnVlLFxyXG4gICAgICB9LFxyXG4gICAgICBkYXRhOiB7XHJcbiAgICAgICAgdGl0bGU6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFxyXG4gICAgICAgICAgJ19Db21tZW50IGRlbGV0ZSBjb25maXJtYXRpb24gdGl0bGUnXHJcbiAgICAgICAgKSxcclxuICAgICAgICBtZXNzYWdlOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcclxuICAgICAgICAgICdfQ29tbWVudCBkZWxldGUgY29uZmlybWF0aW9uIG1lc3NhZ2UnXHJcbiAgICAgICAgKSxcclxuICAgICAgICBhY2NlcHRDYWxsYmFjazogKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5kZWxldGVDb21tZW50KGNvbW1lbnRJZCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgaXNTYW1lRGF0ZShkYXRlPzogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICBpZiAoIWRhdGUpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgY29uc3QgdGltZSA9IHRoaXMuZGF0ZVBpcGUudHJhbnNmb3JtKGRhdGUsICdzaG9ydERhdGUnKTtcclxuICAgIGlmICh0aGlzLmxhc3RTaG93bkRhdGUgPT09IHRpbWUpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgdGhpcy5sYXN0U2hvd25EYXRlID0gZGF0ZTtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgYnV0dG9uUm93QnV0dG9uQ2xpY2tlZCgkZXZlbnQ6IEJpbXBsdXNCdXR0b25DbGlja0V2ZW50KSB7XHJcbiAgICBpZiAoJGV2ZW50LmlkID09PSAnc3VibWl0Jykge1xyXG4gICAgICBpZiAoIXRoaXMuYXBpIHx8ICF0aGlzLnJvb3RPYmplY3RJZCkgcmV0dXJuO1xyXG4gICAgICB0aGlzLmxvYWRpbmcuc2V0KHRydWUpO1xyXG5cclxuICAgICAgY29uc3QgZGF0YSA9IHtcclxuICAgICAgICB0ZXh0OiB0aGlzLnRleHRBcmVhVmFsdWUsXHJcbiAgICAgICAgb2JqZWN0SWQ6IHRoaXMucm9vdE9iamVjdElkLFxyXG4gICAgICB9O1xyXG4gICAgICBjb25zdCBkYXRhVGV4dCA9IEpTT04uc3RyaW5naWZ5KGRhdGEpO1xyXG4gICAgICB0aGlzLnN0YXR1c0JhclNlcnZpY2Uuc2V0U3RhdHVzQmFyRGF0YSh7IHN0YXR1c0JhclZpc2libGU6IHRydWUsIHRpdGxlOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnX0NyZWF0aW5nIG5ldyBjb21tZW50JykgfSk7XHJcbiAgICAgIHRoaXMuYmltcGx1c09iamVjdENvbW1lbnRzTGlzdFNlcnZpY2UucG9zdENvbW1lbnRzKHRoaXMucm9vdE9iamVjdElkLCBkYXRhVGV4dCwgdGhpcy5nZXRIeXBlcmxpbmtzKHRoaXMucm9vdE9iamVjdElkKSwgdGhpcy5hdHRhY2htZW50c1N0YXRlKCksIHRoaXMubmV3QXR0YWNobWVudElEcylcclxuICAgICAgLnBpcGUoc3dpdGNoTWFwKCgpID0+IHRoaXMuYmltcGx1c09iamVjdENvbW1lbnRzTGlzdFNlcnZpY2UubG9hZENvbW1lbnRzKHRoaXMucm9vdE9iamVjdElkKSkpXHJcbiAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChjb21tZW50cykgPT4gdGhpcy5jb21tZW50c0xpc3QkLm5leHQoY29tbWVudHMpLFxyXG4gICAgICAgIGNvbXBsZXRlOiAoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmF0dGFjaG1lbnRzU3RhdGUuc2V0KFtdKTtcclxuICAgICAgICAgIHRoaXMubmV3Q29tbWVudEF0dGFjaG1lbnRzID0gW107XHJcbiAgICAgICAgICB0aGlzLmF0dGFjaG1lbnRMaW5rSXRlbXMgPSBbXTtcclxuICAgICAgICAgIHRoaXMubmV3QXR0YWNobWVudElEcyA9IFtdO1xyXG4gICAgICAgICAgdGhpcy50ZXh0QXJlYVZhbHVlID0gbnVsbDtcclxuICAgICAgICAgIHRoaXMuY2xlYXJWYWx1ZSA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLmJ1dHRvblJvd0l0ZW1zWzBdLmRpc2FibGVkID0gdHJ1ZTtcclxuICAgICAgICAgIHRoaXMubG9hZGluZy5zZXQoZmFsc2UpO1xyXG4gICAgICAgICAgdGhpcy5zdGF0dXNCYXJTZXJ2aWNlLnNldFN0YXR1c0JhckRhdGEoeyBzdGF0dXNCYXJWaXNpYmxlOiBmYWxzZSwgdGl0bGU6ICcnIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBoeXBlcmxpbmtCdXR0b25Sb3dCdXR0b25DbGlja2VkKCRldmVudDogQmltcGx1c0J1dHRvbkNsaWNrRXZlbnQpIHtcclxuICAgIGlmICgkZXZlbnQuaWQgPT09ICdhZGQtaHlwZXJsaW5rJykge1xyXG4gICAgICB0aGlzLmFkZE5ld0NvbW1lbnRIeXBlcmxpbmsoKTtcclxuICAgIH0gZWxzZSBpZiAoJGV2ZW50LmlkID09PSAnY2FuY2VsLWh5cGVybGluaycpIHtcclxuICAgICAgdGhpcy5oeXBlcmxpbmtGb3JtLnJlc2V0KCk7XHJcbiAgICAgIHRoaXMuaXNBZGRpbmdIeXBlcmxpbmsgPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGFkZE5ld0NvbW1lbnRIeXBlcmxpbmsoKSB7XHJcbiAgICBpZiAoIXRoaXMuaHlwZXJsaW5rRm9ybS52YWxpZCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IHNhbml0aXplZFVybDogc3RyaW5nID0gdGhpcy5oeXBlcmxpbmtGb3JtLnZhbHVlWyd1cmwnXS50cmltKCk7XHJcbiAgICBpZiAoIVJlZ0V4cCgvXmh0dHAocz8pOlxcL1xcLy8pLmV4ZWMoc2FuaXRpemVkVXJsKSkge1xyXG4gICAgICBzYW5pdGl6ZWRVcmwgPSAnaHR0cHM6Ly8nICsgc2FuaXRpemVkVXJsO1xyXG4gICAgfVxyXG4gICAgbGV0IHNhbml0aXplZE5hbWUgPSB0aGlzLmh5cGVybGlua0Zvcm0udmFsdWVbJ25hbWUnXT8udHJpbSgpID8/ICcnO1xyXG4gICAgaWYgKHNhbml0aXplZE5hbWUgPT09ICcnKSB7XHJcbiAgICAgIHNhbml0aXplZE5hbWUgPSBzYW5pdGl6ZWRVcmw7XHJcbiAgICB9ICAgIFxyXG4gICAgY29uc3QgbmV3SXRlbTogbmV3QXR0YWNoSW5mbyA9IHtcclxuICAgICAgaWQ6ICcnLFxyXG4gICAgICB0eXBlOiAnSHlwZXJsaW5rJyxcclxuICAgICAgbmFtZVNob3J0OiBzYW5pdGl6ZWROYW1lLFxyXG4gICAgICBuYW1lOiBzYW5pdGl6ZWROYW1lLFxyXG4gICAgICB1cmw6IHNhbml0aXplZFVybCxcclxuICAgICAgaWNvbkNsYXNzOiAnZmEgZmEtbGluaycsXHJcbiAgICAgIGljb25UaXRsZTogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ19IeXBlcmxpbmsnKSxcclxuICAgICAgZGVsZXRlQnV0dG9uVGl0bGU6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdfUmVtb3ZlIGh5cGVybGluaycpLFxyXG4gICAgfTtcclxuICAgIHRoaXMubmV3Q29tbWVudEF0dGFjaG1lbnRzLnB1c2gobmV3SXRlbSk7XHJcbiAgICB0aGlzLmh5cGVybGlua0Zvcm0ucmVzZXQoKTtcclxuICAgIHRoaXMuaXNBZGRpbmdIeXBlcmxpbmsgPSBmYWxzZTtcclxuICAgIHRoaXMuY2hlY2tDcmVhdGVCdXR0b25TdGF0ZSgpO1xyXG4gIH1cclxuXHJcbiAgZGVsZXRlQ29tbWVudChjb21tZW50SWQ6IHN0cmluZykge1xyXG4gICAgdGhpcy5zdGF0dXNCYXJTZXJ2aWNlLnNldFN0YXR1c0JhckRhdGEoe3N0YXR1c0JhclZpc2libGU6IHRydWUsIHRpdGxlOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnX0RlbGV0aW5nIHRoZSBjb21tZW50Jyl9KTtcclxuICAgIHRoaXMuYmltcGx1c09iamVjdENvbW1lbnRzTGlzdFNlcnZpY2UuZGVsZXRlQ29tbWVudChjb21tZW50SWQpXHJcbiAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMubG9hZENvbW1lbnRzKCkpXHJcbiAgfVxyXG5cclxuICBhZGRIeXBlcmxpbmtJY29uQ2xpY2tlZCgpIHtcclxuICAgIHRoaXMuaXNBZGRpbmdIeXBlcmxpbmsgPSAhdGhpcy5pc0FkZGluZ0h5cGVybGluaztcclxuICB9XHJcblxyXG4gIGFkZEh5cGVybGlua0ljb25LZXlwcmVzcyhldmVudDogS2V5Ym9hcmRFdmVudCkge1xyXG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VudGVyJyB8fCBldmVudC5rZXkgPT09ICcgJykge1xyXG4gICAgICB0aGlzLmFkZEh5cGVybGlua0ljb25DbGlja2VkKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZW1vdmVOZXdDb21tZW50QXR0YWNobWVudChsaW5rOiBuZXdBdHRhY2hJbmZvKSB7XHJcbiAgICB0aGlzLm5ld0NvbW1lbnRBdHRhY2htZW50cyA9IHRoaXMubmV3Q29tbWVudEF0dGFjaG1lbnRzLmZpbHRlcihcclxuICAgICAgKGNvbW1lbnRMaW5rKSA9PiBjb21tZW50TGluayAhPT0gbGlua1xyXG4gICAgKTtcclxuICAgIGlmIChsaW5rPy50eXBlICE9PSAnSHlwZXJsaW5rJykge1xyXG4gICAgICB0aGlzLmF0dGFjaG1lbnRMaW5rSXRlbXMgPSB0aGlzLmF0dGFjaG1lbnRMaW5rSXRlbXMuZmlsdGVyKFxyXG4gICAgICAgIChhdHRhY2htZW50TGluaykgPT4gYXR0YWNobWVudExpbmsuaWQgIT09IGxpbmsuaWRcclxuICAgICAgKTtcclxuICAgICAgdGhpcy5uZXdBdHRhY2htZW50SURzID0gdGhpcy5uZXdBdHRhY2htZW50SURzLmZpbHRlcihpZCA9PiBpZCAhPT0gbGluay5pZClcclxuICAgIH1cclxuICAgIHRoaXMuY2hlY2tDcmVhdGVCdXR0b25TdGF0ZSgpO1xyXG4gIH1cclxuXHJcbiAgcmVtb3ZlTmV3Q29tbWVudEF0dGFjaG1lbnRLZXlwcmVzcyhcclxuICAgIGV2ZW50OiBLZXlib2FyZEV2ZW50LFxyXG4gICAgbGluazogbmV3QXR0YWNoSW5mb1xyXG4gICkge1xyXG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VudGVyJyB8fCBldmVudC5rZXkgPT09ICcgJykge1xyXG4gICAgICB0aGlzLnJlbW92ZU5ld0NvbW1lbnRBdHRhY2htZW50KGxpbmspO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaXNBY3RVc2VyQXV0aG9yKGl0ZW06IFdlYlNkay5Db21tZW50UmVzcG9uc2UpIHtcclxuICAgIHJldHVybiBpdGVtLmF1dGhvcj8uaWQgPT09IHRoaXMudXNlcklkO1xyXG4gIH1cclxuXHJcbiAgZGlzcGxheU5hbWUoaXRlbTogV2ViU2RrLkNvbW1lbnRSZXNwb25zZSk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gaXRlbS5hdXRob3I/LmRpc3BsYXluYW1lID8gaXRlbS5hdXRob3I/LmRpc3BsYXluYW1lIDogJyc7XHJcbiAgfVxyXG5cclxuICBmb3JtYXREYXRlKGRhdGU6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBjb25zdCBsb2NhbGUgPSB3aW5kb3cubmF2aWdhdG9yLmxhbmd1YWdlO1xyXG4gICAgaWYgKGxvY2FsZS5pbmNsdWRlcygnZW4nKSkge1xyXG4gICAgICBjb25zdCB1bmZvcm1hdHRlZERhdGUgPSBuZXcgRGF0ZShkYXRlKTtcclxuICAgICAgcmV0dXJuIHVuZm9ybWF0dGVkRGF0ZS5nZXRNb250aCgpICsgJy8nICsgdW5mb3JtYXR0ZWREYXRlLmdldERhdGUoKSArICcvJyArIHVuZm9ybWF0dGVkRGF0ZS5nZXRGdWxsWWVhcigpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KHVuZGVmaW5lZCwgeyBkYXRlU3R5bGU6IFwic2hvcnRcIiB9KS5mb3JtYXQobmV3IERhdGUoZGF0ZSkpO1xyXG4gIH1cclxuXHJcbiAgY2xlYXJUZXh0YXJlYVZhbHVlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuY2xlYXJWYWx1ZTtcclxuICB9XHJcblxyXG4gXHJcbiAgcHJpdmF0ZSBsb2FkQ29tbWVudHMoKSB7XHJcbiAgICB0aGlzLnN0YXR1c0JhclNlcnZpY2Uuc2V0U3RhdHVzQmFyRGF0YSh7c3RhdHVzQmFyVmlzaWJsZTogdHJ1ZSwgdGl0bGU6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdfTG9hZGluZyBjb21tZW50cyBsaXN0Jyl9KTtcclxuICAgIHRoaXMubG9hZGluZy5zZXQodHJ1ZSk7XHJcbiAgICB0aGlzLmJpbXBsdXNPYmplY3RDb21tZW50c0xpc3RTZXJ2aWNlXHJcbiAgICAgIC5sb2FkQ29tbWVudHModGhpcy5yb290T2JqZWN0SWQpXHJcbiAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IGNvbW1lbnRzID0+IHsgICAgICAgXHJcbiAgICAgICAgICB0aGlzLmNvbW1lbnRzTGlzdCQubmV4dChjb21tZW50cylcclxuICAgICAgICB9LFxyXG5cclxuICAgICAgICBjb21wbGV0ZTogKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5sb2FkaW5nLnNldChmYWxzZSk7XHJcbiAgICAgICAgICB0aGlzLnN0YXR1c0JhclNlcnZpY2Uuc2V0U3RhdHVzQmFyRGF0YSh7IHN0YXR1c0JhclZpc2libGU6IGZhbHNlLCB0aXRsZTogJycgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRIeXBlcmxpbmtzKG9iamVjdElkOiBzdHJpbmcpOiBQYXJ0aWFsPFdlYlNkay5IeXBlcmxpbms+W10ge1xyXG4gICAgcmV0dXJuIHRoaXMubmV3Q29tbWVudEF0dGFjaG1lbnRzXHJcbiAgICAuZmlsdGVyKGggPT4gaD8udHlwZSA9PT0gJ0h5cGVybGluaycpIC8vIEZpbHRlciBvYmplY3RzIHdpdGggdHlwZSAnSHlwZXJsaW5rJ1xyXG4gICAgLm1hcCgoaCkgPT4gKHtcclxuICAgICAgLi4uaCxcclxuICAgICAgb2JqZWN0SWQsXHJcbiAgICB9KSk7XHJcbiAgfVxyXG5cclxuICBvbkVudGVyS2V5UHJlc3NlZEluSHlwZXJsaW5rRm9ybSgpIHtcclxuICAgIHRoaXMuYWRkTmV3Q29tbWVudEh5cGVybGluaygpO1xyXG4gIH1cclxufVxyXG4iLCJAaWYgKCFsb2FkaW5nKCkpIHtcclxuPGRpdiBjbGFzcz1cImNvbW1lbnQtdGFiLWNvbnRhaW5lclwiPlxyXG4gIDxkaXYgY2xhc3M9XCJ0ZXh0YXJlYS1jb250YWluZXJcIj5cclxuICAgIDxsaWItYmltcGx1cy10ZXh0YXJlYVxyXG4gICAgICAodGV4dEFyZWFWYWx1ZUNoYW5nZSk9XCJvblRleHRhcmVhVmFsdWVDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXHJcbiAgICAgIFtuYW1lXT1cIm5hbWVcIlxyXG4gICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxyXG4gICAgICBbYWN0aXZlQXV0b1Jlc2l6ZVRleHRhcmVhXT1cInRydWVcIlxyXG4gICAgICBbbWluUm93c109XCJtaW5Sb3dzXCJcclxuICAgICAgW21heFJvd3NdPVwibWF4Um93c1wiXHJcbiAgICAgIFtjbGVhclZhbHVlXT1cImNsZWFyVGV4dGFyZWFWYWx1ZSgpXCJcclxuICAgID48L2xpYi1iaW1wbHVzLXRleHRhcmVhPlxyXG4gIDwvZGl2PlxyXG5cclxuICA8bGliLWJpbXBsdXMtYXR0YWNobWVudHNcclxuICAgICNhdHRhY2htZW50c1xyXG4gICAgbGlzdE9ubHlcclxuICAgIFtjbGFzc109XCJbJ25ldy1jb21tZW50LWF0dGFjaG1lbnRzJ11cIlxyXG4gICAgW2F0dGFjaG1lbnRzXT1cImF0dGFjaG1lbnRzU3RhdGUoKVwiXHJcbiAgICAoYWRkQXR0YWNobWVudCk9XCJvbkFkZEF0dGFjaG1lbnQoJGV2ZW50KVwiXHJcbiAgICAoZGVsZXRlQXR0YWNobWVudCk9XCJvbkRlbGV0ZUF0dGFjaG1lbnQoJGV2ZW50KVwiXHJcbiAgLz5cclxuXHJcbiAgPGxpYi1saW5rcy10by1kb2N1bWVudHMgXHJcbiAgICAjbGlua3NUb0RvY3VtZW50c1xyXG4gICAgbGlzdE9ubHlcclxuICAgIGhpZGVBdHRhY2htZW50U2l6ZVxyXG4gICAgc2hvd0VtcHR5TWVzc2FnZT1cImZhbHNlXCIgXHJcbiAgICBbYXR0YWNobWVudHNdPVwiYXR0YWNobWVudExpbmtJdGVtc1wiXHJcbiAgICAoYXR0YWNobWVudHNMaW5rQ2hhbmdlKT1cIm9uQXR0YWNobWVudHNMaW5rQ2hhbmdlKCRldmVudClcIlxyXG4gICAgW2FwaV09XCJhcGlcIiAgICAgICAgXHJcbiAgICBbcHJvamVjdF09XCJwcm9qZWN0XCJcclxuICAgIFtyb290T2JqZWN0SWRdPScnXHJcbiAgICBbY2FuQ3JlYXRlQXR0YWNobWVudExpbmtdPVwidHJ1ZVwiXHJcbiAgICBbY2FuRGVsZXRlQXR0YWNobWVudExpbmtdPVwidHJ1ZVwiXHJcbiAgICBbd29ybWhvbGVTZWxlY3Rvcl09XCJ3b3JtaG9sZVNlbGVjdG9yXCJcclxuICAgIFtlbnZdPVwiZW52XCJcclxuICAgIFtpbnB1dEJhc2VVcmxdPVwiaW5wdXRCYXNlVXJsXCJcclxuICAvPlxyXG5cclxuICBAaWYgKG5ld0NvbW1lbnRBdHRhY2htZW50cy5sZW5ndGggPiAwKSB7XHJcbiAgICA8ZGl2IGNsYXNzPVwibmV3LWNvbW1lbnQtYXR0YWNobWVudC1saXN0XCI+XHJcbiAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGl0ZW0gb2YgbmV3Q29tbWVudEF0dGFjaG1lbnRzXCIgXHJcbiAgICAgICAgW25nQ2xhc3NdPVwiJ25ldy1jb21tZW50LWF0dGFjaG1lbnQgJyArIGl0ZW0udHlwZVwiXHJcbiAgICAgICAgW3RpdGxlXT1cIml0ZW0udHlwZSA9PT0gJ0h5cGVybGluaycgPyBpdGVtLnVybDogaXRlbS5uYW1lXCI+XHJcbiAgICAgICAgPGRpdiBcclxuICAgICAgICAgIFtuZ0NsYXNzXT1cIidpY29uLXNtYWxsICcgKyBpdGVtLnR5cGVcIiAgICAgICAgICBcclxuICAgICAgICAgIFt0aXRsZV09XCJpdGVtLnR5cGUgPT09ICdIeXBlcmxpbmsnID8gaXRlbS51cmw6IGl0ZW0ubmFtZVwiPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0XCI+e3sgaXRlbS5uYW1lIH19IDwvZGl2PiAgICAgIFxyXG4gICAgICA8c3BhbiBjbGFzcz1cImNhbmNlbC1pY29uXCIgdGl0bGU9XCJ7eyBpdGVtLmRlbGV0ZUJ1dHRvblRpdGxlfX1cIiAoY2xpY2spPVwicmVtb3ZlTmV3Q29tbWVudEF0dGFjaG1lbnQoaXRlbSlcIiAoa2V5ZG93bik9XCJyZW1vdmVOZXdDb21tZW50QXR0YWNobWVudEtleXByZXNzKCRldmVudCwgaXRlbSlcIj48L3NwYW4+XHJcbiAgICAgIDwvZGl2PiAgICBcclxuICAgIDwvZGl2PlxyXG4gIH1cclxuXHJcbiAgQGlmIChpc0FkZGluZ0h5cGVybGluaykge1xyXG4gICAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cImh5cGVybGlua0Zvcm1cIiBjbGFzcz1cImh5cGVybGluay1pbnB1dC1mb3JtXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImh5cGVybGluay1pbnB1dC1yb3dcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJsaW5rLWljb24gaWNvbi1uZXh0LXRvLXRleHQtaW5wdXRcIj48L2Rpdj5cclxuICAgICAgICAgIDxsaWItYmltcGx1cy1pbnB1dC10ZXh0LWZpZWxkIGNsYXNzPVwiZmxleC1ncm93XCIgZm9ybUNvbnRyb2xOYW1lPVwibmFtZVwiIHBsYWNlaG9sZGVyPVwie3sgJ19OYW1lJyB8IHRyYW5zbGF0ZSB9fVwiIChlbnRlcktleVByZXNzZWQpPVwib25FbnRlcktleVByZXNzZWRJbkh5cGVybGlua0Zvcm0oKVwiLz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiaHlwZXJsaW5rLWlucHV0LXJvd1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImljb24tbmV4dC10by10ZXh0LWlucHV0XCI+PC9kaXY+XHJcbiAgICAgICAgICA8bGliLWJpbXBsdXMtaW5wdXQtdGV4dC1maWVsZCBjbGFzcz1cImZsZXgtZ3Jvd1wiIGZvcm1Db250cm9sTmFtZT1cInVybFwiIHBsYWNlaG9sZGVyPVwie3sgJ19VUkwnIHwgdHJhbnNsYXRlIH19XCIgKGVudGVyS2V5UHJlc3NlZCk9XCJvbkVudGVyS2V5UHJlc3NlZEluSHlwZXJsaW5rRm9ybSgpXCIvPlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8bGliLWJpbXBsdXMtYnV0dG9ucy1yb3cgW2l0ZW1zXT1cImh5cGVybGlua0J1dHRvblJvd0l0ZW1zXCIgKGJ1dHRvbkNsaWNrZWQpPVwiaHlwZXJsaW5rQnV0dG9uUm93QnV0dG9uQ2xpY2tlZCgkZXZlbnQpXCIvPlxyXG4gICAgICA8L2Zvcm0+XHJcbiAgfVxyXG5cclxuICA8ZGl2IGNsYXNzPVwiY29tbWVudHMtdGFiLWF0dGFjaG1lbnRzLXNlY3Rpb25cIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb21tZW50cy1hdHRhY2htZW50cy1saXN0XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ0YWItYXR0YWNobWVudHMgaWNvbiBhdHRhY2htZW50cy1pY29uIGhpZGRlblwiPjwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiYXR0YWNobWVudC1pY29uIGljb24tc21hbGwgaW50ZXJhY3RpdmVcIiBbdGl0bGVdPVwiJ19BZGQgYXR0YWNobWVudCcgfCB0cmFuc2xhdGVcIiAoY2xpY2spPVwiYXR0YWNobWVudHMub3BlbigpXCIgKGtleWRvd24pPVwiYXR0YWNobWVudHMub3BlbigpXCI+PC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJsaW5rLWljb24gaWNvbi1zbWFsbCBpbnRlcmFjdGl2ZVwiIFt0aXRsZV09XCInX0FkZCBoeXBlcmxpbmsnIHwgdHJhbnNsYXRlXCIgKGNsaWNrKT1cImFkZEh5cGVybGlua0ljb25DbGlja2VkKClcIiAoa2V5ZG93bik9XCJhZGRIeXBlcmxpbmtJY29uS2V5cHJlc3MoJGV2ZW50KVwiPjwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiYXR0YWNobWVudC1saW5rLWljb24gaWNvbi1zbWFsbCBpbnRlcmFjdGl2ZVwiIFt0aXRsZV09XCInX0FkZF9hdHRhY2htZW50X2xpbmsnIHwgdHJhbnNsYXRlXCIgKGNsaWNrKT1cImxpbmtzVG9Eb2N1bWVudHMuY3JlYXRlQXR0YWNobWVudExpbmsoYXBpISlcIiAoa2V5ZG93bik9XCJsaW5rc1RvRG9jdW1lbnRzLmNyZWF0ZUF0dGFjaG1lbnRMaW5rKGFwaSEpXCI+PC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ0YWItYXR0YWNobWVudGxpbmtzIGljb24gYXR0YWNobWVudHMtaWNvbiBoaWRkZW5cIj48L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImFkZC1jb21tZW50XCI+XHJcbiAgICAgIDxsaWItYmltcGx1cy1idXR0b25zLXJvd1xyXG4gICAgICAgIFtpdGVtc109XCJidXR0b25Sb3dJdGVtc1wiXHJcbiAgICAgICAgKGJ1dHRvbkNsaWNrZWQpPVwiYnV0dG9uUm93QnV0dG9uQ2xpY2tlZCgkZXZlbnQpXCIgLz5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG5cclxuICA8ZGl2IGNsYXNzPVwiY29tbWVudHMtc2VwYXJhdG9yXCI+PC9kaXY+XHJcblxyXG4gIDxkaXYgY2xhc3M9XCJzY3JvbGxhYmxlLWNvbnRlbnQtY29udGFpbmVyXCI+XHJcbiAgICA8bGliLWJpbXBsdXMtc2Nyb2xsYWJsZS1jb250YWluZXI+XHJcbiAgICAgIEBpZiAoKGNvbW1lbnRzTGlzdCQgfCBhc3luYyk/Lmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJuby1jb21tZW50cy1mb3VuZFwiPlxyXG4gICAgICAgICAge3sgJ19ObyBjb21tZW50cyBmb3VuZCcgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgQGZvciAoaXRlbSBvZiBjb21tZW50c0xpc3QkIHwgYXN5bmM7IHRyYWNrIGl0ZW0pIHtcclxuICAgICAgICAgIEBpZihpdGVtLmNyZWF0ZWRBdCAmJiBpc1NhbWVEYXRlKGl0ZW0uY3JlYXRlZEF0KSkge1xyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29tbWVudC1saXN0LWRhdGVcIj5cclxuICAgICAgICAgICAgICB7e2Zvcm1hdERhdGUoaXRlbS5jcmVhdGVkQXQpfX1cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICA8bGliLWJpbXBsdXMtY29tbWVudFxyXG4gICAgICAgICAgICAob3V0cHV0QWN0aW9uQ29tbWVudEV2ZW50KT1cImhhbmRsZUFjdGlvbkNvbW1lbnRFdmVudCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgKGdldEF0dGFjaG1lbnQpPVwib25HZXRBdHRhY2htZW50KCRldmVudClcIlxyXG4gICAgICAgICAgICBbbWVzc2FnZV09XCJpdGVtLnRleHRcIlxyXG4gICAgICAgICAgICBbYXBpXT1cImFwaVwiXHJcbiAgICAgICAgICAgIFtkYXRlXT1cIml0ZW0uY3JlYXRlZEF0ID8gaXRlbS5jcmVhdGVkQXQgOiAnJ1wiXHJcbiAgICAgICAgICAgIGFjdGlvbj1cImRlbGV0ZVwiXHJcbiAgICAgICAgICAgIFtjb21tZW50SWRdPVwiaXRlbS5pZFwiXHJcbiAgICAgICAgICAgIFthdHRhY2htZW50c109XCJpdGVtLmF0dGFjaG1lbnRzID8/IFtdXCJcclxuICAgICAgICAgICAgW2F0dGFjaG1lbnRMaW5rSXRlbXNdPVwiaXRlbS5hdHRhY2htZW50TGlua3MgPz8gW11cIlxyXG4gICAgICAgICAgICBbaHlwZXJsaW5rc109XCJpdGVtLmh5cGVybGlua3NcIlxyXG4gICAgICAgICAgICBbaXNBY3RVc2VyQXV0aG9yXT1cImlzQWN0VXNlckF1dGhvcihpdGVtKVwiXHJcbiAgICAgICAgICAgIFtkaXNwbGF5bmFtZV09XCJkaXNwbGF5TmFtZShpdGVtKVwiPlxyXG4gICAgICAgICAgPC9saWItYmltcGx1cy1jb21tZW50PlxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgPC9saWItYmltcGx1cy1zY3JvbGxhYmxlLWNvbnRhaW5lcj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbn1cclxuIl19
|