ngx-bimplus-components 0.0.159-29371-1 → 0.0.159-29460-1

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.
@@ -85,11 +85,11 @@ export class BimplusCommentComponent {
85
85
  return formatDate(unformattedDate, 'hh:mm', locale);
86
86
  }
87
87
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: BimplusCommentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
88
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.12", type: BimplusCommentComponent, isStandalone: true, selector: "lib-bimplus-comment", inputs: { api: "api", attachmentLinkItems: "attachmentLinkItems", message: "message", date: "date", action: "action", commentId: "commentId", isActUserAuthor: "isActUserAuthor", displayname: "displayname", hyperlinks: "hyperlinks", attachments: "attachments" }, outputs: { outputActionCommentEvent: "outputActionCommentEvent", getAttachment: "getAttachment" }, providers: [{ provide: BIMPLUS_ATTACHMENTS_CONFIG, useValue: config }], ngImport: i0, template: "@if (message !== undefined) {\r\n<div \r\n class=\"comment-item-container\"\r\n [class]=\"isActUserAuthor ? 'author' : ''\">\r\n @if (!isActUserAuthor) {\r\n <div class=\"comment-header\">\r\n <div class=\"comment-title\">{{isActUserAuthor? '' : displayname}}</div> \r\n </div>\r\n }\r\n @if (isActUserAuthor) {\r\n <div\r\n class=\"comment-close\"\r\n (click)=\"close()\"\r\n (keydown)=\"onKeyPress($event)\"\r\n ></div>\r\n }\r\n @if (message !== undefined){\r\n <div class=\"comment-item-text\">{{message}}</div>\r\n }\r\n\r\n @if (attachments.length) {\r\n <lib-bimplus-attachments \r\n listOnly \r\n [attachments]=\"attachments\" \r\n (getAttachment)=\"getAttachment.emit($event)\"\r\n />\r\n }\r\n\r\n @if (attachmentLinkItems.length) {\r\n <div *ngFor=\"let attachmentLink of attachmentLinkItems\" class=\"item-row\">\r\n <div class=\"attachment-link-icon\" title=\"{{ '_Attachment_link' | translate }}\"></div>\r\n <div class=\"text\" title=\"{{ attachmentLink.name }}\">{{ attachmentLink.name}}</div>\r\n </div> \r\n }\r\n\r\n <a *ngFor=\"let link of hyperlinks\" class=\"item-row\" href=\"{{ link.url }}\" target=\"_blank\">\r\n <div class=\"link-icon\" title=\"{{ '_Hyperlink' | translate }}\"></div>\r\n <div class=\"text\" title=\"{{ link.url }}\">{{ link.name }}</div>\r\n </a>\r\n \r\n @if (date && date.length > 0){\r\n <div class=\"comment-item-date\">\r\n {{date}}\r\n </div>\r\n }\r\n</div>\r\n}\r\n", styles: [".new-comment-attachment{display:flex;align-items:center;gap:.4rem}.new-comment-attachment .text{line-height:2.4rem;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.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;width:1.8rem;height:1.8rem;cursor:pointer;display:flex}.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;width:1.8rem;height:1.8rem;cursor:pointer;display:flex}.item-row{display:flex;gap:.2rem;align-items:center;line-height:2.4rem}.comment-item-container{font:400 1.28rem Source Sans Pro,Helvetica,Arial,tahoma,sans-serif;background-color:var(--comments-list-item-container-background-color);border-radius:.4rem;margin:1rem 8rem 1rem 1rem;padding:.8rem}.comment-item-container.author{background-color:var(--comments-item-comment-author-background-color);margin:1rem 1rem 1rem 8rem}.comment-item-container a{text-decoration:none!important;color:var(--ui-text-1-color)}.comment-item-container .comment-header{display:inline-flex;justify-content:space-between;align-items:center;width:100%}.comment-item-container .comment-header .comment-title{font-weight:700}.comment-item-container .comment-close{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:2rem;height:2rem;width:2rem;border:none;cursor:unset;float:right}.comment-item-container .comment-close:hover{cursor:pointer}.comment-item-container .comment-item-text{margin:.8rem 0;word-break:break-all;color:var(--ui-text-1-color)}.comment-item-container .hyperlink .link-icon{background-size:1.8rem}.comment-item-container .comment-attachments-list{line-height:2.4rem;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;color:var(--ui-text-1-color)}.comment-item-container .comment-attachments-list .attachment-object-item{width:100%}.comment-item-container .comment-attachments-list .attachment-object-item .attachment-object-link{display:inline-flex;align-items:center}.comment-item-container .comment-attachments-list .attachment-icon,.comment-item-container .comment-attachments-list .links-icon,.comment-item-container .comment-attachments-list .attachmentLink-icon{width:1.5rem;height:1.5rem;margin:0 .2rem}.comment-item-container .comment-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-item-container .comment-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-item-container .comment-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-item-container .comment-attachments-list .icon:hover{cursor:pointer}.comment-item-container .comment-item-date{text-align:end;color:var(--comments-list-item-date-color)}lib-bimplus-attachments{--bim-attachment-item-border-bottom: none;--bim-attachment-item-background-position: 0 center;--bim-attachment-item-padding-left: 1.3rem;--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>');--bim-attachment-item-background-size: 1.8rem}lib-links-to-documents{--bim-attachment-name-padding: 0;--bim-attachment-item-background-position: 0;--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;--bim-attachmentlink-item-left-padding: 2.3rem}\n"], dependencies: [{ kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "component", type: BimplusAttachmentsComponent, selector: "lib-bimplus-attachments", inputs: ["api", "attachments", "closeIconTemplate", "listOnly"], outputs: ["deleteAttachment", "addAttachment", "getAttachment"] }], encapsulation: i0.ViewEncapsulation.ShadowDom }); }
88
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.12", type: BimplusCommentComponent, isStandalone: true, selector: "lib-bimplus-comment", inputs: { api: "api", attachmentLinkItems: "attachmentLinkItems", message: "message", date: "date", action: "action", commentId: "commentId", isActUserAuthor: "isActUserAuthor", displayname: "displayname", hyperlinks: "hyperlinks", attachments: "attachments" }, outputs: { outputActionCommentEvent: "outputActionCommentEvent", getAttachment: "getAttachment" }, providers: [{ provide: BIMPLUS_ATTACHMENTS_CONFIG, useValue: config }], ngImport: i0, template: "@if (message !== undefined) {\r\n<div \r\n class=\"comment-item-container\"\r\n [class]=\"isActUserAuthor ? 'author' : ''\">\r\n @if (!isActUserAuthor) {\r\n <div class=\"comment-header\">\r\n <div class=\"comment-title\">{{isActUserAuthor? '' : displayname}}</div> \r\n </div>\r\n }\r\n @if (isActUserAuthor) {\r\n <div\r\n class=\"comment-close\"\r\n (click)=\"close()\"\r\n (keydown)=\"onKeyPress($event)\"\r\n ></div>\r\n }\r\n @if (message !== undefined){\r\n <div class=\"comment-item-text\">{{message}}</div>\r\n }\r\n\r\n @if (attachments.length) {\r\n <lib-bimplus-attachments \r\n listOnly \r\n [attachments]=\"attachments\" \r\n (getAttachment)=\"getAttachment.emit($event)\"\r\n />\r\n }\r\n\r\n @if (attachmentLinkItems.length) {\r\n <a *ngFor=\"let attachmentLink of attachmentLinkItems\" class=\"item-row\" href=\"{{attachmentLink.link}}\" target=\"_blank\">\r\n <div class=\"attachment-link-icon\" title=\"{{ '_Attachment_link' | translate }}\"></div>\r\n <div class=\"text\" title=\"{{ attachmentLink.name }}\">{{ attachmentLink.name}}</div>\r\n </a> \r\n }\r\n\r\n <a *ngFor=\"let link of hyperlinks\" class=\"item-row\" href=\"{{ link.url }}\" target=\"_blank\">\r\n <div class=\"link-icon\" title=\"{{ '_Hyperlink' | translate }}\"></div>\r\n <div class=\"text\" title=\"{{ link.url }}\">{{ link.name }}</div>\r\n </a>\r\n \r\n @if (date && date.length > 0){\r\n <div class=\"comment-item-date\">\r\n {{date}}\r\n </div>\r\n }\r\n</div>\r\n}\r\n", styles: [".new-comment-attachment{display:flex;align-items:center;gap:.4rem}.new-comment-attachment .text{line-height:2.4rem;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.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;width:1.8rem;height:1.8rem;cursor:pointer;display:flex}.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;width:1.8rem;height:1.8rem;cursor:pointer;display:flex}.item-row{display:flex;gap:.2rem;align-items:center;line-height:2.4rem}.comment-item-container{font:400 1.28rem Source Sans Pro,Helvetica,Arial,tahoma,sans-serif;background-color:var(--comments-list-item-container-background-color);border-radius:.4rem;margin:1rem 8rem 1rem 1rem;padding:.8rem}.comment-item-container.author{background-color:var(--comments-item-comment-author-background-color);margin:1rem 1rem 1rem 8rem}.comment-item-container a{text-decoration:none!important;color:var(--ui-text-1-color)}.comment-item-container .comment-header{display:inline-flex;justify-content:space-between;align-items:center;width:100%}.comment-item-container .comment-header .comment-title{font-weight:700}.comment-item-container .comment-close{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:2rem;height:2rem;width:2rem;border:none;cursor:unset;float:right}.comment-item-container .comment-close:hover{cursor:pointer}.comment-item-container .comment-item-text{margin:.8rem 0;word-break:break-all;color:var(--ui-text-1-color)}.comment-item-container .hyperlink .link-icon{background-size:1.8rem}.comment-item-container .comment-attachments-list{line-height:2.4rem;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;color:var(--ui-text-1-color)}.comment-item-container .comment-attachments-list .attachment-object-item{width:100%}.comment-item-container .comment-attachments-list .attachment-object-item .attachment-object-link{display:inline-flex;align-items:center}.comment-item-container .comment-attachments-list .attachment-icon,.comment-item-container .comment-attachments-list .links-icon,.comment-item-container .comment-attachments-list .attachmentLink-icon{width:1.5rem;height:1.5rem;margin:0 .2rem}.comment-item-container .comment-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-item-container .comment-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-item-container .comment-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-item-container .comment-attachments-list .icon:hover{cursor:pointer}.comment-item-container .comment-item-date{text-align:end;color:var(--comments-list-item-date-color)}lib-bimplus-attachments{--bim-attachment-item-border-bottom: none;--bim-attachment-item-background-position: 0 center;--bim-attachment-item-padding-left: 1.3rem;--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>');--bim-attachment-item-background-size: 1.8rem}lib-links-to-documents{--bim-attachment-name-padding: 0;--bim-attachment-item-background-position: 0;--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;--bim-attachmentlink-item-left-padding: 2.3rem}\n"], dependencies: [{ kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "component", type: BimplusAttachmentsComponent, selector: "lib-bimplus-attachments", inputs: ["api", "attachments", "closeIconTemplate", "listOnly"], outputs: ["deleteAttachment", "addAttachment", "getAttachment"] }], encapsulation: i0.ViewEncapsulation.ShadowDom }); }
89
89
  }
90
90
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: BimplusCommentComponent, decorators: [{
91
91
  type: Component,
92
- args: [{ selector: 'lib-bimplus-comment', imports: [NgForOf, TranslatePipe, BimplusAttachmentsComponent, LinksToDocumentsComponent], providers: [{ provide: BIMPLUS_ATTACHMENTS_CONFIG, useValue: config }], standalone: true, encapsulation: ViewEncapsulation.ShadowDom, template: "@if (message !== undefined) {\r\n<div \r\n class=\"comment-item-container\"\r\n [class]=\"isActUserAuthor ? 'author' : ''\">\r\n @if (!isActUserAuthor) {\r\n <div class=\"comment-header\">\r\n <div class=\"comment-title\">{{isActUserAuthor? '' : displayname}}</div> \r\n </div>\r\n }\r\n @if (isActUserAuthor) {\r\n <div\r\n class=\"comment-close\"\r\n (click)=\"close()\"\r\n (keydown)=\"onKeyPress($event)\"\r\n ></div>\r\n }\r\n @if (message !== undefined){\r\n <div class=\"comment-item-text\">{{message}}</div>\r\n }\r\n\r\n @if (attachments.length) {\r\n <lib-bimplus-attachments \r\n listOnly \r\n [attachments]=\"attachments\" \r\n (getAttachment)=\"getAttachment.emit($event)\"\r\n />\r\n }\r\n\r\n @if (attachmentLinkItems.length) {\r\n <div *ngFor=\"let attachmentLink of attachmentLinkItems\" class=\"item-row\">\r\n <div class=\"attachment-link-icon\" title=\"{{ '_Attachment_link' | translate }}\"></div>\r\n <div class=\"text\" title=\"{{ attachmentLink.name }}\">{{ attachmentLink.name}}</div>\r\n </div> \r\n }\r\n\r\n <a *ngFor=\"let link of hyperlinks\" class=\"item-row\" href=\"{{ link.url }}\" target=\"_blank\">\r\n <div class=\"link-icon\" title=\"{{ '_Hyperlink' | translate }}\"></div>\r\n <div class=\"text\" title=\"{{ link.url }}\">{{ link.name }}</div>\r\n </a>\r\n \r\n @if (date && date.length > 0){\r\n <div class=\"comment-item-date\">\r\n {{date}}\r\n </div>\r\n }\r\n</div>\r\n}\r\n", styles: [".new-comment-attachment{display:flex;align-items:center;gap:.4rem}.new-comment-attachment .text{line-height:2.4rem;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.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;width:1.8rem;height:1.8rem;cursor:pointer;display:flex}.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;width:1.8rem;height:1.8rem;cursor:pointer;display:flex}.item-row{display:flex;gap:.2rem;align-items:center;line-height:2.4rem}.comment-item-container{font:400 1.28rem Source Sans Pro,Helvetica,Arial,tahoma,sans-serif;background-color:var(--comments-list-item-container-background-color);border-radius:.4rem;margin:1rem 8rem 1rem 1rem;padding:.8rem}.comment-item-container.author{background-color:var(--comments-item-comment-author-background-color);margin:1rem 1rem 1rem 8rem}.comment-item-container a{text-decoration:none!important;color:var(--ui-text-1-color)}.comment-item-container .comment-header{display:inline-flex;justify-content:space-between;align-items:center;width:100%}.comment-item-container .comment-header .comment-title{font-weight:700}.comment-item-container .comment-close{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:2rem;height:2rem;width:2rem;border:none;cursor:unset;float:right}.comment-item-container .comment-close:hover{cursor:pointer}.comment-item-container .comment-item-text{margin:.8rem 0;word-break:break-all;color:var(--ui-text-1-color)}.comment-item-container .hyperlink .link-icon{background-size:1.8rem}.comment-item-container .comment-attachments-list{line-height:2.4rem;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;color:var(--ui-text-1-color)}.comment-item-container .comment-attachments-list .attachment-object-item{width:100%}.comment-item-container .comment-attachments-list .attachment-object-item .attachment-object-link{display:inline-flex;align-items:center}.comment-item-container .comment-attachments-list .attachment-icon,.comment-item-container .comment-attachments-list .links-icon,.comment-item-container .comment-attachments-list .attachmentLink-icon{width:1.5rem;height:1.5rem;margin:0 .2rem}.comment-item-container .comment-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-item-container .comment-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-item-container .comment-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-item-container .comment-attachments-list .icon:hover{cursor:pointer}.comment-item-container .comment-item-date{text-align:end;color:var(--comments-list-item-date-color)}lib-bimplus-attachments{--bim-attachment-item-border-bottom: none;--bim-attachment-item-background-position: 0 center;--bim-attachment-item-padding-left: 1.3rem;--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>');--bim-attachment-item-background-size: 1.8rem}lib-links-to-documents{--bim-attachment-name-padding: 0;--bim-attachment-item-background-position: 0;--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;--bim-attachmentlink-item-left-padding: 2.3rem}\n"] }]
92
+ args: [{ selector: 'lib-bimplus-comment', imports: [NgForOf, TranslatePipe, BimplusAttachmentsComponent, LinksToDocumentsComponent], providers: [{ provide: BIMPLUS_ATTACHMENTS_CONFIG, useValue: config }], standalone: true, encapsulation: ViewEncapsulation.ShadowDom, template: "@if (message !== undefined) {\r\n<div \r\n class=\"comment-item-container\"\r\n [class]=\"isActUserAuthor ? 'author' : ''\">\r\n @if (!isActUserAuthor) {\r\n <div class=\"comment-header\">\r\n <div class=\"comment-title\">{{isActUserAuthor? '' : displayname}}</div> \r\n </div>\r\n }\r\n @if (isActUserAuthor) {\r\n <div\r\n class=\"comment-close\"\r\n (click)=\"close()\"\r\n (keydown)=\"onKeyPress($event)\"\r\n ></div>\r\n }\r\n @if (message !== undefined){\r\n <div class=\"comment-item-text\">{{message}}</div>\r\n }\r\n\r\n @if (attachments.length) {\r\n <lib-bimplus-attachments \r\n listOnly \r\n [attachments]=\"attachments\" \r\n (getAttachment)=\"getAttachment.emit($event)\"\r\n />\r\n }\r\n\r\n @if (attachmentLinkItems.length) {\r\n <a *ngFor=\"let attachmentLink of attachmentLinkItems\" class=\"item-row\" href=\"{{attachmentLink.link}}\" target=\"_blank\">\r\n <div class=\"attachment-link-icon\" title=\"{{ '_Attachment_link' | translate }}\"></div>\r\n <div class=\"text\" title=\"{{ attachmentLink.name }}\">{{ attachmentLink.name}}</div>\r\n </a> \r\n }\r\n\r\n <a *ngFor=\"let link of hyperlinks\" class=\"item-row\" href=\"{{ link.url }}\" target=\"_blank\">\r\n <div class=\"link-icon\" title=\"{{ '_Hyperlink' | translate }}\"></div>\r\n <div class=\"text\" title=\"{{ link.url }}\">{{ link.name }}</div>\r\n </a>\r\n \r\n @if (date && date.length > 0){\r\n <div class=\"comment-item-date\">\r\n {{date}}\r\n </div>\r\n }\r\n</div>\r\n}\r\n", styles: [".new-comment-attachment{display:flex;align-items:center;gap:.4rem}.new-comment-attachment .text{line-height:2.4rem;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.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;width:1.8rem;height:1.8rem;cursor:pointer;display:flex}.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;width:1.8rem;height:1.8rem;cursor:pointer;display:flex}.item-row{display:flex;gap:.2rem;align-items:center;line-height:2.4rem}.comment-item-container{font:400 1.28rem Source Sans Pro,Helvetica,Arial,tahoma,sans-serif;background-color:var(--comments-list-item-container-background-color);border-radius:.4rem;margin:1rem 8rem 1rem 1rem;padding:.8rem}.comment-item-container.author{background-color:var(--comments-item-comment-author-background-color);margin:1rem 1rem 1rem 8rem}.comment-item-container a{text-decoration:none!important;color:var(--ui-text-1-color)}.comment-item-container .comment-header{display:inline-flex;justify-content:space-between;align-items:center;width:100%}.comment-item-container .comment-header .comment-title{font-weight:700}.comment-item-container .comment-close{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:2rem;height:2rem;width:2rem;border:none;cursor:unset;float:right}.comment-item-container .comment-close:hover{cursor:pointer}.comment-item-container .comment-item-text{margin:.8rem 0;word-break:break-all;color:var(--ui-text-1-color)}.comment-item-container .hyperlink .link-icon{background-size:1.8rem}.comment-item-container .comment-attachments-list{line-height:2.4rem;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;color:var(--ui-text-1-color)}.comment-item-container .comment-attachments-list .attachment-object-item{width:100%}.comment-item-container .comment-attachments-list .attachment-object-item .attachment-object-link{display:inline-flex;align-items:center}.comment-item-container .comment-attachments-list .attachment-icon,.comment-item-container .comment-attachments-list .links-icon,.comment-item-container .comment-attachments-list .attachmentLink-icon{width:1.5rem;height:1.5rem;margin:0 .2rem}.comment-item-container .comment-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-item-container .comment-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-item-container .comment-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-item-container .comment-attachments-list .icon:hover{cursor:pointer}.comment-item-container .comment-item-date{text-align:end;color:var(--comments-list-item-date-color)}lib-bimplus-attachments{--bim-attachment-item-border-bottom: none;--bim-attachment-item-background-position: 0 center;--bim-attachment-item-padding-left: 1.3rem;--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>');--bim-attachment-item-background-size: 1.8rem}lib-links-to-documents{--bim-attachment-name-padding: 0;--bim-attachment-item-background-position: 0;--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;--bim-attachmentlink-item-left-padding: 2.3rem}\n"] }]
93
93
  }], propDecorators: { outputActionCommentEvent: [{
94
94
  type: Output
95
95
  }], getAttachment: [{
@@ -115,4 +115,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImpo
115
115
  }], attachments: [{
116
116
  type: Input
117
117
  }] } });
118
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmltcGx1cy1jb21tZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1iaW1wbHVzLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2JpbXBsdXMtY29tbWVudC9iaW1wbHVzLWNvbW1lbnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWJpbXBsdXMtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvYmltcGx1cy1jb21tZW50L2JpbXBsdXMtY29tbWVudC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFMUYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3BELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQ25HLE9BQU8sRUFBYywwQkFBMEIsRUFBNEIsTUFBTSxzREFBc0QsQ0FBQztBQUV4SSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQzs7QUFDL0YscUdBQXFHO0FBRXJHLE1BQU0sTUFBTSxHQUE2QjtJQUN2QywwQkFBMEIsRUFBRSxJQUFJO0lBQ2hDLGtCQUFrQixFQUFFLElBQUk7Q0FDekIsQ0FBQTtBQVdELE1BQU0sT0FBTyx1QkFBdUI7SUFUcEM7UUFXWSw2QkFBd0IsR0FBRyxJQUFJLFlBQVksRUFBcUIsQ0FBQztRQUNqRSxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFjLENBQUM7UUFFakQsYUFBUSxHQUF1QixTQUFTLENBQUM7UUFFeEMsUUFBRyxHQUF1QixJQUFJLENBQUM7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LENBQUM7UUFDRCxPQUFPLFVBQVUsQ0FBQyxlQUFlLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3RELENBQUM7K0dBN0ZVLHVCQUF1QjttR0FBdkIsdUJBQXVCLDJhQUp2QixDQUFDLEVBQUUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsQ0FBQywwQkNwQnhFLG8vQ0ErQ0EsaTZQRDVCWSxPQUFPLDhHQUFFLGFBQWEsa0RBQUUsMkJBQTJCOzs0RkFLbEQsdUJBQXVCO2tCQVRuQyxTQUFTOytCQUNFLHFCQUFxQixXQUd0QixDQUFDLE9BQU8sRUFBRSxhQUFhLEVBQUUsMkJBQTJCLEVBQUUseUJBQXlCLENBQUMsYUFDOUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLENBQUMsY0FDMUQsSUFBSSxpQkFDRCxpQkFBaUIsQ0FBQyxTQUFTOzhCQUloQyx3QkFBd0I7c0JBQWpDLE1BQU07Z0JBQ0csYUFBYTtzQkFBdEIsTUFBTTtnQkFJRSxHQUFHO3NCQUFYLEtBQUs7Z0JBR0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQUdGLE9BQU87c0JBRFYsS0FBSztnQkFVRixJQUFJO3NCQURQLEtBQUs7Z0JBV0YsTUFBTTtzQkFEVCxLQUFLO2dCQVVGLFNBQVM7c0JBRFosS0FBSztnQkFVRixlQUFlO3NCQURsQixLQUFLO2dCQVVGLFdBQVc7c0JBRGQsS0FBSztnQkFRRyxVQUFVO3NCQUFsQixLQUFLO2dCQUdHLFdBQVc7c0JBQW5CLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmb3JtYXREYXRlLCBOZ0Zvck9mIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCBXZWJTZGsgZnJvbSBcImJpbXBsdXMtd2Vic2RrXCI7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVBpcGUgfSBmcm9tIFwiQG5neC10cmFuc2xhdGUvY29yZVwiO1xyXG5pbXBvcnQgeyBCaW1wbHVzQXR0YWNobWVudHNDb21wb25lbnQgfSBmcm9tICcuLi9iaW1wbHVzLWF0dGFjaG1lbnRzL2JpbXBsdXMtYXR0YWNobWVudHMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQXR0YWNobWVudCwgQklNUExVU19BVFRBQ0hNRU5UU19DT05GSUcsIEJpbXBsdXNBdHRhY2htZW50c0NvbmZpZyB9IGZyb20gJy4uL2JpbXBsdXMtYXR0YWNobWVudHMvYmltcGx1cy1hdHRhY2htZW50cy5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBDb21tZW50T3V0cHV0RGF0YSB9IGZyb20gJy4vSUNvbW1lbnQnO1xyXG5pbXBvcnQgeyBMaW5rc1RvRG9jdW1lbnRzQ29tcG9uZW50IH0gZnJvbSAnLi4vbGlua3MtdG8tZG9jdW1lbnRzL2xpbmtzLXRvLWRvY3VtZW50cy5jb21wb25lbnQnO1xyXG4vLy9pbXBvcnQgeyBBdHRhY2htZW50TGlua0l0ZW0gfSBmcm9tICcuLi9saW5rcy10by1kb2N1bWVudHMvbGlua3MtdG8tZG9jdW1lbnRzLmNvbXBvbmVudC5pbnRlcmZhY2UnO1xyXG5cclxuY29uc3QgY29uZmlnOiBCaW1wbHVzQXR0YWNobWVudHNDb25maWcgPSB7XHJcbiAgaGlkZURlbGV0ZUF0dGFjaG1lbnRCdXR0b246IHRydWUsXHJcbiAgaGlkZUF0dGFjaG1lbnRTaXplOiB0cnVlXHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWJpbXBsdXMtY29tbWVudCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2JpbXBsdXMtY29tbWVudC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vYmltcGx1cy1jb21tZW50LmNvbXBvbmVudC5sZXNzJ10sXHJcbiAgaW1wb3J0czogW05nRm9yT2YsIFRyYW5zbGF0ZVBpcGUsIEJpbXBsdXNBdHRhY2htZW50c0NvbXBvbmVudCwgTGlua3NUb0RvY3VtZW50c0NvbXBvbmVudF0sXHJcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBCSU1QTFVTX0FUVEFDSE1FTlRTX0NPTkZJRywgdXNlVmFsdWU6IGNvbmZpZyB9XSxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLlNoYWRvd0RvbVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQmltcGx1c0NvbW1lbnRDb21wb25lbnQge1xyXG5cclxuICBAT3V0cHV0KCkgb3V0cHV0QWN0aW9uQ29tbWVudEV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxDb21tZW50T3V0cHV0RGF0YT4oKTtcclxuICBAT3V0cHV0KCkgZ2V0QXR0YWNobWVudCA9IG5ldyBFdmVudEVtaXR0ZXI8QXR0YWNobWVudD4oKTtcclxuXHJcbiAgcHJpdmF0ZSBfbWVzc2FnZTogc3RyaW5nIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xyXG4gIFxyXG4gIEBJbnB1dCgpIGFwaSA6IFdlYlNkay5BcGkgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgLyoqIEF0dGFjaG1lbnRzIGxpbmtzIHRvIHBhcnRpY3VsYXIgY29tbWVudC4gKi9cclxuICBASW5wdXQoKSBhdHRhY2htZW50TGlua0l0ZW1zOldlYlNkay5BdHRhY2htZW50TGlua1tdID0gW11cclxuXHJcbiAgQElucHV0KClcclxuICBzZXQgbWVzc2FnZSh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XHJcbiAgICB0aGlzLl9tZXNzYWdlID0gdmFsdWU7XHJcbiAgfVxyXG4gIGdldCBtZXNzYWdlKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XHJcbiAgICByZXR1cm4gdGhpcy5fbWVzc2FnZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2RhdGUgPSAnJztcclxuICBASW5wdXQoKVxyXG4gIHNldCBkYXRlKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IGZvcm1hdHRlZFZhbHVlID0gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQodW5kZWZpbmVkLCB7IHRpbWVTdHlsZTogXCJzaG9ydFwiIH0pLmZvcm1hdChuZXcgRGF0ZSh2YWx1ZSkpO1xyXG4gICAgdGhpcy5fZGF0ZSA9IGZvcm1hdHRlZFZhbHVlO1xyXG4gIH1cclxuICBnZXQgZGF0ZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX2RhdGU7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9hY3Rpb24gPSAnY2xvc2UnO1xyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IGFjdGlvbih2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLl9hY3Rpb24gPSB2YWx1ZTtcclxuICB9XHJcbiAgZ2V0IGFjdGlvbigpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX2FjdGlvbjtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2NvbW1lbnRJZCA9ICcnO1xyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IGNvbW1lbnRJZCh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLl9jb21tZW50SWQgPSB2YWx1ZTtcclxuICB9XHJcbiAgZ2V0IGNvbW1lbnRJZCgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX2NvbW1lbnRJZDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2lzQWN0VXNlckF1dGhvciA9IHRydWU7XHJcbiAgQElucHV0KClcclxuICBzZXQgaXNBY3RVc2VyQXV0aG9yKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLl9pc0FjdFVzZXJBdXRob3IgPSB2YWx1ZTtcclxuICB9XHJcbiAgZ2V0IGlzQWN0VXNlckF1dGhvcigpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9pc0FjdFVzZXJBdXRob3I7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9kaXNwbGF5bmFtZSA9ICcnO1xyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IGRpc3BsYXluYW1lKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX2Rpc3BsYXluYW1lID0gdmFsdWU7XHJcbiAgfVxyXG4gIGdldCBkaXNwbGF5bmFtZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX2Rpc3BsYXluYW1lO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KCkgaHlwZXJsaW5rczogV2ViU2RrLkh5cGVybGlua1tdIHwgdW5kZWZpbmVkID0gW107XHJcblxyXG4gIC8qKiBBdHRhY2htZW50cyByZWxhdGVkIHRvIHBhcnRpY3VsYXIgY29tbWVudC4gKi9cclxuICBASW5wdXQoKSBhdHRhY2htZW50czogV2ViU2RrLkF0dGFjaG1lbnRbXSA9IFtdO1xyXG5cclxuICBlbWl0QWN0aW9uKGRhdGE6IENvbW1lbnRPdXRwdXREYXRhKTogdm9pZCB7XHJcbiAgICB0aGlzLm91dHB1dEFjdGlvbkNvbW1lbnRFdmVudC5lbWl0KGRhdGEpO1xyXG4gIH1cclxuXHJcbiAgY2xvc2UoKTogdm9pZCB7XHJcbiAgICBjb25zdCBkYXRhOiBDb21tZW50T3V0cHV0RGF0YSA9IHsgYWN0aW9uOiB0aGlzLmFjdGlvbiwgZGF0YTogeyBjb21tZW50SWQ6IHRoaXMuY29tbWVudElkIH0gfTtcclxuICAgIHRoaXMuZW1pdEFjdGlvbihkYXRhKTtcclxuICB9XHJcblxyXG4gIG9uS2V5UHJlc3MoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcclxuICAgIGlmIChldmVudC5rZXkgPT09ICdFc2NhcGUnIHx8IGV2ZW50LmtleSA9PT0gJ0VzYycpIHtcclxuICAgICAgdGhpcy5jbG9zZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZm9ybWF0VGltZShkYXRlOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgY29uc3QgbG9jYWxlID0gd2luZG93Lm5hdmlnYXRvci5sYW5ndWFnZTtcclxuICAgIGNvbnN0IHVuZm9ybWF0dGVkRGF0ZSA9IG5ldyBEYXRlKGRhdGUpO1xyXG4gICAgaWYgKGxvY2FsZS5pbmNsdWRlcygnZW4nKSkge1xyXG4gICAgICByZXR1cm4gZm9ybWF0RGF0ZSh1bmZvcm1hdHRlZERhdGUsICdoaDptbSBhJywgbG9jYWxlKTtcclxuICAgIH1cclxuICAgIHJldHVybiBmb3JtYXREYXRlKHVuZm9ybWF0dGVkRGF0ZSwgJ2hoOm1tJywgbG9jYWxlKTtcclxuICB9XHJcbn1cclxuIiwiQGlmIChtZXNzYWdlICE9PSB1bmRlZmluZWQpIHtcclxuPGRpdiBcclxuICBjbGFzcz1cImNvbW1lbnQtaXRlbS1jb250YWluZXJcIlxyXG4gIFtjbGFzc109XCJpc0FjdFVzZXJBdXRob3IgPyAnYXV0aG9yJyA6ICcnXCI+XHJcbiAgQGlmICghaXNBY3RVc2VyQXV0aG9yKSB7XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29tbWVudC1oZWFkZXJcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbW1lbnQtdGl0bGVcIj57e2lzQWN0VXNlckF1dGhvcj8gJycgOiBkaXNwbGF5bmFtZX19PC9kaXY+ICAgIFxyXG4gICAgPC9kaXY+XHJcbiAgfVxyXG4gIEBpZiAoaXNBY3RVc2VyQXV0aG9yKSB7XHJcbiAgICA8ZGl2XHJcbiAgICAgIGNsYXNzPVwiY29tbWVudC1jbG9zZVwiXHJcbiAgICAgIChjbGljayk9XCJjbG9zZSgpXCJcclxuICAgICAgKGtleWRvd24pPVwib25LZXlQcmVzcygkZXZlbnQpXCJcclxuICAgID48L2Rpdj5cclxuICB9XHJcbiAgQGlmIChtZXNzYWdlICE9PSB1bmRlZmluZWQpe1xyXG4gIDxkaXYgY2xhc3M9XCJjb21tZW50LWl0ZW0tdGV4dFwiPnt7bWVzc2FnZX19PC9kaXY+XHJcbiAgfVxyXG5cclxuICBAaWYgKGF0dGFjaG1lbnRzLmxlbmd0aCkge1xyXG4gICAgPGxpYi1iaW1wbHVzLWF0dGFjaG1lbnRzIFxyXG4gICAgICBsaXN0T25seSBcclxuICAgICAgW2F0dGFjaG1lbnRzXT1cImF0dGFjaG1lbnRzXCIgXHJcbiAgICAgIChnZXRBdHRhY2htZW50KT1cImdldEF0dGFjaG1lbnQuZW1pdCgkZXZlbnQpXCJcclxuICAgIC8+XHJcbiAgfVxyXG5cclxuICBAaWYgKGF0dGFjaG1lbnRMaW5rSXRlbXMubGVuZ3RoKSB7XHJcbiAgICA8ZGl2ICpuZ0Zvcj1cImxldCBhdHRhY2htZW50TGluayBvZiBhdHRhY2htZW50TGlua0l0ZW1zXCIgY2xhc3M9XCJpdGVtLXJvd1wiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiYXR0YWNobWVudC1saW5rLWljb25cIiB0aXRsZT1cInt7ICdfQXR0YWNobWVudF9saW5rJyB8IHRyYW5zbGF0ZSB9fVwiPjwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwidGV4dFwiIHRpdGxlPVwie3sgYXR0YWNobWVudExpbmsubmFtZSB9fVwiPnt7IGF0dGFjaG1lbnRMaW5rLm5hbWV9fTwvZGl2PlxyXG4gICAgPC9kaXY+ICAgIFxyXG4gIH1cclxuXHJcbiAgPGEgKm5nRm9yPVwibGV0IGxpbmsgb2YgaHlwZXJsaW5rc1wiIGNsYXNzPVwiaXRlbS1yb3dcIiBocmVmPVwie3sgbGluay51cmwgfX1cIiB0YXJnZXQ9XCJfYmxhbmtcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJsaW5rLWljb25cIiB0aXRsZT1cInt7ICdfSHlwZXJsaW5rJyB8IHRyYW5zbGF0ZSB9fVwiPjwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInRleHRcIiB0aXRsZT1cInt7IGxpbmsudXJsIH19XCI+e3sgbGluay5uYW1lIH19PC9kaXY+XHJcbiAgPC9hPlxyXG4gIFxyXG4gIEBpZiAoZGF0ZSAmJiBkYXRlLmxlbmd0aCA+IDApe1xyXG4gIDxkaXYgY2xhc3M9XCJjb21tZW50LWl0ZW0tZGF0ZVwiPlxyXG4gICAge3tkYXRlfX1cclxuICA8L2Rpdj5cclxuICB9XHJcbjwvZGl2PlxyXG59XHJcbiJdfQ==
118
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmltcGx1cy1jb21tZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1iaW1wbHVzLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2JpbXBsdXMtY29tbWVudC9iaW1wbHVzLWNvbW1lbnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWJpbXBsdXMtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvYmltcGx1cy1jb21tZW50L2JpbXBsdXMtY29tbWVudC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFMUYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3BELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQ25HLE9BQU8sRUFBYywwQkFBMEIsRUFBNEIsTUFBTSxzREFBc0QsQ0FBQztBQUV4SSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQzs7QUFDL0YscUdBQXFHO0FBRXJHLE1BQU0sTUFBTSxHQUE2QjtJQUN2QywwQkFBMEIsRUFBRSxJQUFJO0lBQ2hDLGtCQUFrQixFQUFFLElBQUk7Q0FDekIsQ0FBQTtBQVdELE1BQU0sT0FBTyx1QkFBdUI7SUFUcEM7UUFXWSw2QkFBd0IsR0FBRyxJQUFJLFlBQVksRUFBcUIsQ0FBQztRQUNqRSxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFjLENBQUM7UUFFakQsYUFBUSxHQUF1QixTQUFTLENBQUM7UUFFeEMsUUFBRyxHQUF1QixJQUFJLENBQUM7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LENBQUM7UUFDRCxPQUFPLFVBQVUsQ0FBQyxlQUFlLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3RELENBQUM7K0dBN0ZVLHVCQUF1QjttR0FBdkIsdUJBQXVCLDJhQUp2QixDQUFDLEVBQUUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsQ0FBQywwQkNwQnhFLG1pREErQ0EsaTZQRDVCWSxPQUFPLDhHQUFFLGFBQWEsa0RBQUUsMkJBQTJCOzs0RkFLbEQsdUJBQXVCO2tCQVRuQyxTQUFTOytCQUNFLHFCQUFxQixXQUd0QixDQUFDLE9BQU8sRUFBRSxhQUFhLEVBQUUsMkJBQTJCLEVBQUUseUJBQXlCLENBQUMsYUFDOUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLENBQUMsY0FDMUQsSUFBSSxpQkFDRCxpQkFBaUIsQ0FBQyxTQUFTOzhCQUloQyx3QkFBd0I7c0JBQWpDLE1BQU07Z0JBQ0csYUFBYTtzQkFBdEIsTUFBTTtnQkFJRSxHQUFHO3NCQUFYLEtBQUs7Z0JBR0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQUdGLE9BQU87c0JBRFYsS0FBSztnQkFVRixJQUFJO3NCQURQLEtBQUs7Z0JBV0YsTUFBTTtzQkFEVCxLQUFLO2dCQVVGLFNBQVM7c0JBRFosS0FBSztnQkFVRixlQUFlO3NCQURsQixLQUFLO2dCQVVGLFdBQVc7c0JBRGQsS0FBSztnQkFRRyxVQUFVO3NCQUFsQixLQUFLO2dCQUdHLFdBQVc7c0JBQW5CLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmb3JtYXREYXRlLCBOZ0Zvck9mIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCBXZWJTZGsgZnJvbSBcImJpbXBsdXMtd2Vic2RrXCI7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVBpcGUgfSBmcm9tIFwiQG5neC10cmFuc2xhdGUvY29yZVwiO1xyXG5pbXBvcnQgeyBCaW1wbHVzQXR0YWNobWVudHNDb21wb25lbnQgfSBmcm9tICcuLi9iaW1wbHVzLWF0dGFjaG1lbnRzL2JpbXBsdXMtYXR0YWNobWVudHMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQXR0YWNobWVudCwgQklNUExVU19BVFRBQ0hNRU5UU19DT05GSUcsIEJpbXBsdXNBdHRhY2htZW50c0NvbmZpZyB9IGZyb20gJy4uL2JpbXBsdXMtYXR0YWNobWVudHMvYmltcGx1cy1hdHRhY2htZW50cy5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBDb21tZW50T3V0cHV0RGF0YSB9IGZyb20gJy4vSUNvbW1lbnQnO1xyXG5pbXBvcnQgeyBMaW5rc1RvRG9jdW1lbnRzQ29tcG9uZW50IH0gZnJvbSAnLi4vbGlua3MtdG8tZG9jdW1lbnRzL2xpbmtzLXRvLWRvY3VtZW50cy5jb21wb25lbnQnO1xyXG4vLy9pbXBvcnQgeyBBdHRhY2htZW50TGlua0l0ZW0gfSBmcm9tICcuLi9saW5rcy10by1kb2N1bWVudHMvbGlua3MtdG8tZG9jdW1lbnRzLmNvbXBvbmVudC5pbnRlcmZhY2UnO1xyXG5cclxuY29uc3QgY29uZmlnOiBCaW1wbHVzQXR0YWNobWVudHNDb25maWcgPSB7XHJcbiAgaGlkZURlbGV0ZUF0dGFjaG1lbnRCdXR0b246IHRydWUsXHJcbiAgaGlkZUF0dGFjaG1lbnRTaXplOiB0cnVlXHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWJpbXBsdXMtY29tbWVudCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2JpbXBsdXMtY29tbWVudC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vYmltcGx1cy1jb21tZW50LmNvbXBvbmVudC5sZXNzJ10sXHJcbiAgaW1wb3J0czogW05nRm9yT2YsIFRyYW5zbGF0ZVBpcGUsIEJpbXBsdXNBdHRhY2htZW50c0NvbXBvbmVudCwgTGlua3NUb0RvY3VtZW50c0NvbXBvbmVudF0sXHJcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBCSU1QTFVTX0FUVEFDSE1FTlRTX0NPTkZJRywgdXNlVmFsdWU6IGNvbmZpZyB9XSxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLlNoYWRvd0RvbVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQmltcGx1c0NvbW1lbnRDb21wb25lbnQge1xyXG5cclxuICBAT3V0cHV0KCkgb3V0cHV0QWN0aW9uQ29tbWVudEV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxDb21tZW50T3V0cHV0RGF0YT4oKTtcclxuICBAT3V0cHV0KCkgZ2V0QXR0YWNobWVudCA9IG5ldyBFdmVudEVtaXR0ZXI8QXR0YWNobWVudD4oKTtcclxuXHJcbiAgcHJpdmF0ZSBfbWVzc2FnZTogc3RyaW5nIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xyXG4gIFxyXG4gIEBJbnB1dCgpIGFwaSA6IFdlYlNkay5BcGkgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgLyoqIEF0dGFjaG1lbnRzIGxpbmtzIHRvIHBhcnRpY3VsYXIgY29tbWVudC4gKi9cclxuICBASW5wdXQoKSBhdHRhY2htZW50TGlua0l0ZW1zOldlYlNkay5BdHRhY2htZW50TGlua1tdID0gW11cclxuXHJcbiAgQElucHV0KClcclxuICBzZXQgbWVzc2FnZSh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XHJcbiAgICB0aGlzLl9tZXNzYWdlID0gdmFsdWU7XHJcbiAgfVxyXG4gIGdldCBtZXNzYWdlKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XHJcbiAgICByZXR1cm4gdGhpcy5fbWVzc2FnZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2RhdGUgPSAnJztcclxuICBASW5wdXQoKVxyXG4gIHNldCBkYXRlKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IGZvcm1hdHRlZFZhbHVlID0gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQodW5kZWZpbmVkLCB7IHRpbWVTdHlsZTogXCJzaG9ydFwiIH0pLmZvcm1hdChuZXcgRGF0ZSh2YWx1ZSkpO1xyXG4gICAgdGhpcy5fZGF0ZSA9IGZvcm1hdHRlZFZhbHVlO1xyXG4gIH1cclxuICBnZXQgZGF0ZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX2RhdGU7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9hY3Rpb24gPSAnY2xvc2UnO1xyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IGFjdGlvbih2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLl9hY3Rpb24gPSB2YWx1ZTtcclxuICB9XHJcbiAgZ2V0IGFjdGlvbigpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX2FjdGlvbjtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2NvbW1lbnRJZCA9ICcnO1xyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IGNvbW1lbnRJZCh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLl9jb21tZW50SWQgPSB2YWx1ZTtcclxuICB9XHJcbiAgZ2V0IGNvbW1lbnRJZCgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX2NvbW1lbnRJZDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2lzQWN0VXNlckF1dGhvciA9IHRydWU7XHJcbiAgQElucHV0KClcclxuICBzZXQgaXNBY3RVc2VyQXV0aG9yKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLl9pc0FjdFVzZXJBdXRob3IgPSB2YWx1ZTtcclxuICB9XHJcbiAgZ2V0IGlzQWN0VXNlckF1dGhvcigpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9pc0FjdFVzZXJBdXRob3I7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9kaXNwbGF5bmFtZSA9ICcnO1xyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IGRpc3BsYXluYW1lKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX2Rpc3BsYXluYW1lID0gdmFsdWU7XHJcbiAgfVxyXG4gIGdldCBkaXNwbGF5bmFtZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX2Rpc3BsYXluYW1lO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KCkgaHlwZXJsaW5rczogV2ViU2RrLkh5cGVybGlua1tdIHwgdW5kZWZpbmVkID0gW107XHJcblxyXG4gIC8qKiBBdHRhY2htZW50cyByZWxhdGVkIHRvIHBhcnRpY3VsYXIgY29tbWVudC4gKi9cclxuICBASW5wdXQoKSBhdHRhY2htZW50czogV2ViU2RrLkF0dGFjaG1lbnRbXSA9IFtdO1xyXG5cclxuICBlbWl0QWN0aW9uKGRhdGE6IENvbW1lbnRPdXRwdXREYXRhKTogdm9pZCB7XHJcbiAgICB0aGlzLm91dHB1dEFjdGlvbkNvbW1lbnRFdmVudC5lbWl0KGRhdGEpO1xyXG4gIH1cclxuXHJcbiAgY2xvc2UoKTogdm9pZCB7XHJcbiAgICBjb25zdCBkYXRhOiBDb21tZW50T3V0cHV0RGF0YSA9IHsgYWN0aW9uOiB0aGlzLmFjdGlvbiwgZGF0YTogeyBjb21tZW50SWQ6IHRoaXMuY29tbWVudElkIH0gfTtcclxuICAgIHRoaXMuZW1pdEFjdGlvbihkYXRhKTtcclxuICB9XHJcblxyXG4gIG9uS2V5UHJlc3MoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcclxuICAgIGlmIChldmVudC5rZXkgPT09ICdFc2NhcGUnIHx8IGV2ZW50LmtleSA9PT0gJ0VzYycpIHtcclxuICAgICAgdGhpcy5jbG9zZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZm9ybWF0VGltZShkYXRlOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgY29uc3QgbG9jYWxlID0gd2luZG93Lm5hdmlnYXRvci5sYW5ndWFnZTtcclxuICAgIGNvbnN0IHVuZm9ybWF0dGVkRGF0ZSA9IG5ldyBEYXRlKGRhdGUpO1xyXG4gICAgaWYgKGxvY2FsZS5pbmNsdWRlcygnZW4nKSkge1xyXG4gICAgICByZXR1cm4gZm9ybWF0RGF0ZSh1bmZvcm1hdHRlZERhdGUsICdoaDptbSBhJywgbG9jYWxlKTtcclxuICAgIH1cclxuICAgIHJldHVybiBmb3JtYXREYXRlKHVuZm9ybWF0dGVkRGF0ZSwgJ2hoOm1tJywgbG9jYWxlKTtcclxuICB9XHJcbn1cclxuIiwiQGlmIChtZXNzYWdlICE9PSB1bmRlZmluZWQpIHtcclxuPGRpdiBcclxuICBjbGFzcz1cImNvbW1lbnQtaXRlbS1jb250YWluZXJcIlxyXG4gIFtjbGFzc109XCJpc0FjdFVzZXJBdXRob3IgPyAnYXV0aG9yJyA6ICcnXCI+XHJcbiAgQGlmICghaXNBY3RVc2VyQXV0aG9yKSB7XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29tbWVudC1oZWFkZXJcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbW1lbnQtdGl0bGVcIj57e2lzQWN0VXNlckF1dGhvcj8gJycgOiBkaXNwbGF5bmFtZX19PC9kaXY+ICAgIFxyXG4gICAgPC9kaXY+XHJcbiAgfVxyXG4gIEBpZiAoaXNBY3RVc2VyQXV0aG9yKSB7XHJcbiAgICA8ZGl2XHJcbiAgICAgIGNsYXNzPVwiY29tbWVudC1jbG9zZVwiXHJcbiAgICAgIChjbGljayk9XCJjbG9zZSgpXCJcclxuICAgICAgKGtleWRvd24pPVwib25LZXlQcmVzcygkZXZlbnQpXCJcclxuICAgID48L2Rpdj5cclxuICB9XHJcbiAgQGlmIChtZXNzYWdlICE9PSB1bmRlZmluZWQpe1xyXG4gIDxkaXYgY2xhc3M9XCJjb21tZW50LWl0ZW0tdGV4dFwiPnt7bWVzc2FnZX19PC9kaXY+XHJcbiAgfVxyXG5cclxuICBAaWYgKGF0dGFjaG1lbnRzLmxlbmd0aCkge1xyXG4gICAgPGxpYi1iaW1wbHVzLWF0dGFjaG1lbnRzIFxyXG4gICAgICBsaXN0T25seSBcclxuICAgICAgW2F0dGFjaG1lbnRzXT1cImF0dGFjaG1lbnRzXCIgXHJcbiAgICAgIChnZXRBdHRhY2htZW50KT1cImdldEF0dGFjaG1lbnQuZW1pdCgkZXZlbnQpXCJcclxuICAgIC8+XHJcbiAgfVxyXG5cclxuICBAaWYgKGF0dGFjaG1lbnRMaW5rSXRlbXMubGVuZ3RoKSB7XHJcbiAgICA8YSAqbmdGb3I9XCJsZXQgYXR0YWNobWVudExpbmsgb2YgYXR0YWNobWVudExpbmtJdGVtc1wiIGNsYXNzPVwiaXRlbS1yb3dcIiBocmVmPVwie3thdHRhY2htZW50TGluay5saW5rfX1cIiB0YXJnZXQ9XCJfYmxhbmtcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImF0dGFjaG1lbnQtbGluay1pY29uXCIgdGl0bGU9XCJ7eyAnX0F0dGFjaG1lbnRfbGluaycgfCB0cmFuc2xhdGUgfX1cIj48L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cInRleHRcIiB0aXRsZT1cInt7IGF0dGFjaG1lbnRMaW5rLm5hbWUgfX1cIj57eyBhdHRhY2htZW50TGluay5uYW1lfX08L2Rpdj5cclxuICAgIDwvYT4gICAgXHJcbiAgfVxyXG5cclxuICA8YSAqbmdGb3I9XCJsZXQgbGluayBvZiBoeXBlcmxpbmtzXCIgY2xhc3M9XCJpdGVtLXJvd1wiIGhyZWY9XCJ7eyBsaW5rLnVybCB9fVwiIHRhcmdldD1cIl9ibGFua1wiPlxyXG4gICAgPGRpdiBjbGFzcz1cImxpbmstaWNvblwiIHRpdGxlPVwie3sgJ19IeXBlcmxpbmsnIHwgdHJhbnNsYXRlIH19XCI+PC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwidGV4dFwiIHRpdGxlPVwie3sgbGluay51cmwgfX1cIj57eyBsaW5rLm5hbWUgfX08L2Rpdj5cclxuICA8L2E+XHJcbiAgXHJcbiAgQGlmIChkYXRlICYmIGRhdGUubGVuZ3RoID4gMCl7XHJcbiAgPGRpdiBjbGFzcz1cImNvbW1lbnQtaXRlbS1kYXRlXCI+XHJcbiAgICB7e2RhdGV9fVxyXG4gIDwvZGl2PlxyXG4gIH1cclxuPC9kaXY+XHJcbn1cclxuIl19
@@ -233,14 +233,14 @@ export class BimplusObjectCommentsListComponent extends BimplusLocalizedWidgetCo
233
233
  }
234
234
  hyperlinkButtonRowButtonClicked($event) {
235
235
  if ($event.id === 'add-hyperlink') {
236
- this.addNewCommentAttachment();
236
+ this.addNewCommentHyperlink();
237
237
  }
238
238
  else if ($event.id === 'cancel-hyperlink') {
239
239
  this.hyperlinkForm.reset();
240
240
  this.isAddingHyperlink = false;
241
241
  }
242
242
  }
243
- addNewCommentAttachment() {
243
+ addNewCommentHyperlink() {
244
244
  if (!this.hyperlinkForm.valid) {
245
245
  return;
246
246
  }
@@ -252,7 +252,6 @@ export class BimplusObjectCommentsListComponent extends BimplusLocalizedWidgetCo
252
252
  if (sanitizedName === '') {
253
253
  sanitizedName = sanitizedUrl;
254
254
  }
255
- sanitizedName = sanitizedName?.replace(/^http(s?):\/\//, '');
256
255
  const newItem = {
257
256
  id: '',
258
257
  type: 'Hyperlink',
@@ -317,7 +316,9 @@ export class BimplusObjectCommentsListComponent extends BimplusLocalizedWidgetCo
317
316
  this.bimplusObjectCommentsListService
318
317
  .loadComments(this.rootObjectId)
319
318
  .subscribe({
320
- next: comments => this.commentsList$.next(comments),
319
+ next: comments => {
320
+ this.commentsList$.next(comments);
321
+ },
321
322
  complete: () => {
322
323
  this.loading.set(false);
323
324
  this.statusBarService.setStatusBarData({ statusBarVisible: false, title: '' });
@@ -333,7 +334,7 @@ export class BimplusObjectCommentsListComponent extends BimplusLocalizedWidgetCo
333
334
  }));
334
335
  }
335
336
  onEnterKeyPressedInHyperlinkForm() {
336
- this.addNewCommentAttachment();
337
+ this.addNewCommentHyperlink();
337
338
  }
338
339
  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 }); }
339
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: [
@@ -381,4 +382,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImpo
381
382
  }], userId: [{
382
383
  type: Input
383
384
  }] } });
384
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmltcGx1cy1vYmplY3QtY29tbWVudHMtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtYmltcGx1cy1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9iaW1wbHVzLW9iamVjdC1jb21tZW50cy1saXN0L2JpbXBsdXMtb2JqZWN0LWNvbW1lbnRzLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWJpbXBsdXMtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvYmltcGx1cy1vYmplY3QtY29tbWVudHMtbGlzdC9iaW1wbHVzLW9iamVjdC1jb21tZW50cy1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQWlCLGlCQUFpQixFQUFDLHVCQUF1QixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RJLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSwwRUFBMEUsQ0FBQztBQUMvSCxPQUFPLEVBQUUsZUFBZSxFQUFvQixNQUFNLHFCQUFxQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRTdELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQzFGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBR3ZGLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQ2xHLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLGdFQUFnRSxDQUFDO0FBQ2pILE9BQU8sRUFBRSxtQ0FBbUMsRUFBRSxNQUFNLHdFQUF3RSxDQUFDO0FBRTdILE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLGdFQUFnRSxDQUFDO0FBQ2hILE9BQU8sRUFBMEIsV0FBVyxFQUFFLG1CQUFtQixFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RHLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQ25HLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDZEQUE2RCxDQUFDO0FBQ3hHLE9BQU8sRUFFTCwwQkFBMEIsR0FFM0IsTUFBTSxzREFBc0QsQ0FBQztBQUM5RCxPQUFPLEVBQUUsZUFBZSxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNsRCxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUMxRixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQzs7Ozs7Ozs7O0FBSy9GLE1BQU0sTUFBTSxHQUE2QjtJQUN2QyxzQkFBc0IsRUFBRSxLQUFLO0lBQzdCLGtCQUFrQixFQUFFLElBQUk7Q0FDekIsQ0FBQztBQThCRixNQUFNLE9BQU8sa0NBQ1gsU0FBUSwrQkFBK0I7SUFtQ3ZDLElBQ0ksWUFBWSxDQUFDLEVBQVU7UUFDekIsSUFBSSxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELElBQUksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDO0lBRUQsSUFDSSxNQUFNLENBQUMsRUFBVTtRQUNuQixJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBRUQsSUFBSSxNQUFNO1FBQ1IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7SUFFRCxZQUNtQixhQUE0QixFQUM3QyxnQkFBa0MsRUFDakIsUUFBa0IsRUFDbEIsV0FBd0IsRUFDdEIseUJBQW9ELEVBQ3RELGdDQUFrRSxFQUMzRSxnQkFBeUM7UUFFakQsS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFSUCxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUU1QixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2xCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3RCLDhCQUF5QixHQUF6Qix5QkFBeUIsQ0FBMkI7UUFDdEQscUNBQWdDLEdBQWhDLGdDQUFnQyxDQUFrQztRQUMzRSxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQXlCO1FBdkQxQyxZQUFPLEdBQW1DLElBQUksQ0FBQztRQUMvQyxxQkFBZ0IsR0FBVyxzQkFBc0IsQ0FBQztRQUNsRCxRQUFHLEdBQVcsTUFBTSxDQUFDO1FBQ3JCLHdCQUFtQixHQUE0QixFQUFFLENBQUE7UUFDdkMsa0JBQWEsR0FBRyxJQUFJLGVBQWUsQ0FBMkIsRUFBRSxDQUFDLENBQUM7UUFDbEUsWUFBTyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN4QixxQkFBZ0IsR0FBRyxNQUFNLENBQWUsRUFBRSxDQUFDLENBQUM7UUFDL0QsbUJBQWMsR0FBMkIsRUFBRSxDQUFDO1FBQzVDLDRCQUF1QixHQUEyQixFQUFFLENBQUM7UUFDckQsa0JBQWEsR0FBa0IsSUFBSSxDQUFDO1FBQ3BDLGtCQUFhLEdBQUcsRUFBRSxDQUFDO1FBQ25CLGdCQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLFNBQUksR0FBRyxFQUFFLENBQUM7UUFDVixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLHVCQUFrQixHQUFHLElBQUksQ0FBQztRQUMxQixZQUFPLEdBQUcsQ0FBQyxDQUFDO1FBQ1osWUFBTyxHQUFHLEVBQUUsQ0FBQztRQUNiLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFDbkIsMEJBQXFCLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUVsRSxrREFBa0Q7UUFDbEQscUJBQWdCLEdBQWEsRUFBRSxDQUFBO1FBRS9CLHNCQUFpQixHQUFZLEtBQUssQ0FBQztRQUVuQywwQkFBcUIsR0FBcUIsRUFBRSxDQUFDO1FBRXJDLGtCQUFhLEdBQUcsRUFBRSxDQUFDO1FBQ25CLFlBQU8sR0FBRyxFQUFFLENBQUM7UUErQm5CLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUM7WUFDMUMsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQztZQUNkLEdBQUcsRUFBRTtnQkFDSCxFQUFFO2dCQUNGO29CQUNFLFVBQVUsQ0FBQyxRQUFRO29CQUNuQixVQUFVLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxFQUFFLHNCQUFzQjtvQkFDdEQsVUFBVSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsRUFBRSw2REFBNkQ7aUJBQ2pHO2FBQ0Y7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsc0JBQXNCO1FBQ3BCLE9BQU8sQ0FBQyxDQUNOLElBQUksQ0FBQyxhQUFhO1lBQ2xCLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxNQUFNLEdBQUcsQ0FBQztZQUNqQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsRUFBRSxNQUFNLEdBQUcsQ0FBQztZQUNqRCxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsRUFBRSxNQUFNLEdBQUcsQ0FBQyxDQUNwQyxDQUFDO0lBQ0osQ0FBQztJQUVELHNCQUFzQjtRQUNwQixJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDOUIsT0FBTztRQUNULENBQUM7UUFDRCxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztJQUNsRSxDQUFDO0lBRU0sUUFBUTtRQUNiLElBQUksQ0FBQyxnQ0FBZ0MsQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUksQ0FBQztRQUN0RCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDcEIsTUFBTSxNQUFNLEdBQTJCO1lBQ3JDO2dCQUNFLEVBQUUsRUFBRSxRQUFRO2dCQUNaLEtBQUssRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQztnQkFDcEQsT0FBTyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDO2dCQUN0RCxRQUFRLEVBQUUsSUFBSSxDQUFDLHNCQUFzQixFQUFFO2dCQUN2QyxXQUFXLEVBQUUsU0FBUzthQUN2QjtTQUNGLENBQUM7UUFDRixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQzlDLDBCQUEwQixDQUMzQixDQUFDO1FBQ0YsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3JELElBQUksQ0FBQyxjQUFjLEdBQUcsTUFBTSxDQUFDO1FBRTdCLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQy9CO1lBQ0UsRUFBRSxFQUFFLGtCQUFrQjtZQUN0QixLQUFLLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUM7WUFDL0MsT0FBTyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDO1lBQ2pELFFBQVEsRUFBRSxLQUFLO1lBQ2YsV0FBVyxFQUFFLFNBQVM7U0FDdkIsRUFDRDtZQUNFLEVBQUUsRUFBRSxlQUFlO1lBQ25CLEtBQUssRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDO1lBQ3RELE9BQU8sRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDO1lBQ3hELFFBQVEsRUFBRSxJQUFJO1lBQ2QsV0FBVyxFQUFFLFNBQVM7U0FDdkIsQ0FDRixDQUFDO1FBRUYsSUFBSSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDcEQsSUFBSSxDQUFDLHVCQUF1QixDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsR0FBRyxNQUFNLEtBQUssT0FBTyxDQUFDO1FBQ2hFLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLE9BQU8sQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNwRSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDdEIsQ0FBQztJQUNILENBQUM7SUFFUyx1QkFBdUIsQ0FBQyxjQUErQjtRQUMvRCxNQUFNLHVCQUF1QixHQUFtQixjQUFjLENBQUMsR0FBRyxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUU7WUFDaEYsVUFBVSxDQUFDLFNBQVMsR0FBRyxZQUFZLENBQUM7WUFDcEMsVUFBVSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDLENBQUM7WUFDekUsVUFBVSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsd0JBQXdCLENBQUMsQ0FBQztZQUN2RixPQUFPLFVBQVUsQ0FBQztRQUNwQixDQUFDLENBQUMsQ0FBQztRQUNILE1BQU0scUJBQXFCLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLE1BQU0sQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsVUFBVSxFQUFFLElBQUksS0FBSyxXQUFXLENBQUMsQ0FBQztRQUNsSCxJQUFJLENBQUMscUJBQXFCLEdBQUcsQ0FBQyxHQUFHLHFCQUFxQixFQUFFLEdBQUcsdUJBQXVCLENBQUMsQ0FBQztRQUNwRixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzFFLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFHUyxlQUFlLENBQUMsSUFBVTtRQUNsQyxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMseUJBQXlCLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3RFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxXQUFXLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzVFLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFUyxrQkFBa0IsQ0FBQyxVQUFzQjtRQUNqRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDO1FBQ3ZGLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxpQ0FBaUM7SUFDdkIsZUFBZSxDQUFDLFVBQXNCO1FBQzlDLElBQUksQ0FBQyxnQ0FBZ0MsQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBRUQscUJBQXFCLENBQUMsS0FBYTtRQUNqQyxJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztRQUMzQixJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBRUQsd0JBQXdCLENBQUMsS0FBd0I7UUFDL0MsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQzlCLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUFtQixDQUFDO1lBQ3ZDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDL0MsQ0FBQztJQUNILENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxJQUF5QjtRQUN6QyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsdUJBQXVCLENBQUMsU0FBaUI7UUFDdkMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsbUNBQW1DLEVBQUU7WUFDM0QsT0FBTyxFQUFFO2dCQUNQLFFBQVEsRUFBRSxRQUFRO2dCQUNsQixlQUFlLEVBQUUsRUFBRTtnQkFDbkIsbUJBQW1CLEVBQUUsS0FBSztnQkFDMUIsd0JBQXdCLEVBQUUsSUFBSTtnQkFDOUIsU0FBUyxFQUFFLElBQUk7YUFDaEI7WUFDRCxJQUFJLEVBQUU7Z0JBQ0osS0FBSyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQ2xDLG9DQUFvQyxDQUNyQztnQkFDRCxPQUFPLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FDcEMsc0NBQXNDLENBQ3ZDO2dCQUNELGNBQWMsRUFBRSxHQUFHLEVBQUU7b0JBQ25CLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUM7Z0JBQ2hDLENBQUM7YUFDRjtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxVQUFVLENBQUMsSUFBYTtRQUN0QixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDVixPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7UUFDRCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDeEQsSUFBSSxJQUFJLENBQUMsYUFBYSxLQUFLLElBQUksRUFBRSxDQUFDO1lBQ2hDLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztRQUNELElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO1FBQzFCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELHNCQUFzQixDQUFDLE1BQStCO1FBQ3BELElBQUksTUFBTSxDQUFDLEVBQUUsS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUMzQixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZO2dCQUFFLE9BQU87WUFDNUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7WUFFdkIsTUFBTSxJQUFJLEdBQUc7Z0JBQ1gsSUFBSSxFQUFFLElBQUksQ0FBQyxhQUFhO2dCQUN4QixRQUFRLEVBQUUsSUFBSSxDQUFDLFlBQVk7YUFDNUIsQ0FBQztZQUNGLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDdEMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGdCQUFnQixDQUFDLEVBQUUsZ0JBQWdCLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLHVCQUF1QixDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ2xJLElBQUksQ0FBQyxnQ0FBZ0MsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixFQUFFLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDO2lCQUNySyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxnQ0FBZ0MsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7aUJBQzVGLFNBQVMsQ0FBQztnQkFDVCxJQUFJLEVBQUUsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztnQkFDckQsUUFBUSxFQUFFLEdBQUcsRUFBRTtvQkFDYixJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO29CQUM5QixJQUFJLENBQUMscUJBQXFCLEdBQUcsRUFBRSxDQUFDO29CQUNoQyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsRUFBRSxDQUFDO29CQUM5QixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsRUFBRSxDQUFDO29CQUMzQixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztvQkFDMUIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7b0JBQ3ZCLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztvQkFDdkMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBQ3hCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLGdCQUFnQixFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztnQkFDakYsQ0FBQzthQUNGLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDO0lBRUQsK0JBQStCLENBQUMsTUFBK0I7UUFDN0QsSUFBSSxNQUFNLENBQUMsRUFBRSxLQUFLLGVBQWUsRUFBRSxDQUFDO1lBQ2xDLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO1FBQ2pDLENBQUM7YUFBTSxJQUFJLE1BQU0sQ0FBQyxFQUFFLEtBQUssa0JBQWtCLEVBQUUsQ0FBQztZQUM1QyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQzNCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxLQUFLLENBQUM7UUFDakMsQ0FBQztJQUNILENBQUM7SUFFRCx1QkFBdUI7UUFDckIsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDOUIsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLFlBQVksR0FBVyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNsRSxJQUFJLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUM7WUFDakQsWUFBWSxHQUFHLFVBQVUsR0FBRyxZQUFZLENBQUM7UUFDM0MsQ0FBQztRQUNELElBQUksYUFBYSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQztRQUNuRSxJQUFJLGFBQWEsS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUN6QixhQUFhLEdBQUcsWUFBWSxDQUFDO1FBQy9CLENBQUM7UUFDRCxhQUFhLEdBQUcsYUFBYSxFQUFFLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUM3RCxNQUFNLE9BQU8sR0FBa0I7WUFDN0IsRUFBRSxFQUFFLEVBQUU7WUFDTixJQUFJLEVBQUUsV0FBVztZQUNqQixTQUFTLEVBQUUsYUFBYTtZQUN4QixJQUFJLEVBQUUsYUFBYTtZQUNuQixHQUFHLEVBQUUsWUFBWTtZQUNqQixTQUFTLEVBQUUsWUFBWTtZQUN2QixTQUFTLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUM7WUFDdEQsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQztTQUN0RSxDQUFDO1FBQ0YsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN6QyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQzNCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxLQUFLLENBQUM7UUFDL0IsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVELGFBQWEsQ0FBQyxTQUFpQjtRQUM3QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsZ0JBQWdCLENBQUMsRUFBQyxnQkFBZ0IsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsdUJBQXVCLENBQUMsRUFBQyxDQUFDLENBQUM7UUFDaEksSUFBSSxDQUFDLGdDQUFnQyxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUM7YUFDN0QsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFBO0lBQ3ZDLENBQUM7SUFFRCx1QkFBdUI7UUFDckIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDO0lBQ25ELENBQUM7SUFFRCx3QkFBd0IsQ0FBQyxLQUFvQjtRQUMzQyxJQUFJLEtBQUssQ0FBQyxHQUFHLEtBQUssT0FBTyxJQUFJLEtBQUssQ0FBQyxHQUFHLEtBQUssR0FBRyxFQUFFLENBQUM7WUFDL0MsSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUM7UUFDakMsQ0FBQztJQUNILENBQUM7SUFFRCwwQkFBMEIsQ0FBQyxJQUFtQjtRQUM1QyxJQUFJLENBQUMscUJBQXFCLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLE1BQU0sQ0FDNUQsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDLFdBQVcsS0FBSyxJQUFJLENBQ3RDLENBQUM7UUFDRixJQUFJLElBQUksRUFBRSxJQUFJLEtBQUssV0FBVyxFQUFFLENBQUM7WUFDL0IsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLENBQ3hELENBQUMsY0FBYyxFQUFFLEVBQUUsQ0FBQyxjQUFjLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyxFQUFFLENBQ2xELENBQUM7WUFDRixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsS0FBSyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUE7UUFDNUUsQ0FBQztRQUNELElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxrQ0FBa0MsQ0FDaEMsS0FBb0IsRUFDcEIsSUFBbUI7UUFFbkIsSUFBSSxLQUFLLENBQUMsR0FBRyxLQUFLLE9BQU8sSUFBSSxLQUFLLENBQUMsR0FBRyxLQUFLLEdBQUcsRUFBRSxDQUFDO1lBQy9DLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN4QyxDQUFDO0lBQ0gsQ0FBQztJQUVELGVBQWUsQ0FBQyxJQUE0QjtRQUMxQyxPQUFPLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxLQUFLLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDekMsQ0FBQztJQUVELFdBQVcsQ0FBQyxJQUE0QjtRQUN0QyxPQUFPLElBQUksQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ2xFLENBQUM7SUFFRCxVQUFVLENBQUMsSUFBWTtRQUNyQixNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQztRQUN6QyxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUMxQixNQUFNLGVBQWUsR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN2QyxPQUFPLGVBQWUsQ0FBQyxRQUFRLEVBQUUsR0FBRyxHQUFHLEdBQUcsZUFBZSxDQUFDLE9BQU8sRUFBRSxHQUFHLEdBQUcsR0FBRyxlQUFlLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDNUcsQ0FBQztRQUNELE9BQU8sSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsRUFBRSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQzNGLENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7SUFFTyxZQUFZO1FBQ2xCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFDLGdCQUFnQixFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyx3QkFBd0IsQ0FBQyxFQUFDLENBQUMsQ0FBQztRQUNqSSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN2QixJQUFJLENBQUMsZ0NBQWdDO2FBQ2xDLFlBQVksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDO2FBQy9CLFNBQVMsQ0FBQztZQUNULElBQUksRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztZQUNuRCxRQUFRLEVBQUUsR0FBRyxFQUFFO2dCQUNiLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUN4QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxnQkFBZ0IsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDakYsQ0FBQztTQUNGLENBQUMsQ0FBQTtJQUNOLENBQUM7SUFFTyxhQUFhLENBQUMsUUFBZ0I7UUFDcEMsT0FBTyxJQUFJLENBQUMscUJBQXFCO2FBQ2hDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLEtBQUssV0FBVyxDQUFDLENBQUMsdUNBQXVDO2FBQzVFLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUNYLEdBQUcsQ0FBQztZQUNKLFFBQVE7U0FDVCxDQUFDLENBQUMsQ0FBQztJQUNOLENBQUM7SUFFRCxnQ0FBZ0M7UUFDOUIsSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUM7SUFDakMsQ0FBQzsrR0FyWFUsa0NBQWtDO21HQUFsQyxrQ0FBa0MseVFBVmxDO1lBQ1QsUUFBUTtZQUNSLGdDQUFnQztZQUNoQyx5QkFBeUI7WUFDekIsRUFBRSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRTtTQUMxRCxzRUMxREgsK3dLQXdIQSwydllEakZJLEtBQUssa0hBQ0wsWUFBWSxrTEFDWix3QkFBd0Isb09BQ3hCLHVCQUF1Qix5UUFDdkIsMEJBQTBCLG9KQUMxQixlQUFlLDRGQUNmLG1DQUFtQyw2RUFDbkMsOEJBQThCLGlLQUM5QiwyQkFBMkIsc01BQzNCLHlCQUF5Qiw2VEFDekIsV0FBVywyWUFDWCxtQkFBbUI7OzRGQWFWLGtDQUFrQztrQkE3QjlDLFNBQVM7K0JBQ0Usa0NBQWtDLFdBR25DO3dCQUNQLEtBQUs7d0JBQ0wsWUFBWTt3QkFDWix3QkFBd0I7d0JBQ3hCLHVCQUF1Qjt3QkFDdkIsMEJBQTBCO3dCQUMxQixlQUFlO3dCQUNmLG1DQUFtQzt3QkFDbkMsOEJBQThCO3dCQUM5QiwyQkFBMkI7d0JBQzNCLHlCQUF5Qjt3QkFDekIsV0FBVzt3QkFDWCxtQkFBbUI7d0JBQ25CLFNBQVM7cUJBQ1YsYUFDVTt3QkFDVCxRQUFRO3dCQUNSLGdDQUFnQzt3QkFDaEMseUJBQXlCO3dCQUN6QixFQUFFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFO3FCQUMxRCxjQUNXLElBQUksbUJBQ0MsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsU0FBUzsrUkFPZixHQUFHO3NCQUE3QixLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFDaEIsT0FBTztzQkFBZixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxHQUFHO3NCQUFYLEtBQUs7Z0JBQ0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQTRCRixZQUFZO3NCQURmLEtBQUs7Z0JBVUYsTUFBTTtzQkFEVCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIHNpZ25hbCwgU2ltcGxlQ2hhbmdlcywgVmlld0VuY2Fwc3VsYXRpb24sQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQmltcGx1c092ZXJsYXlEaWFsb2dEZWxldGVDb21wb25lbnQgfSBmcm9tICcuLi9iaW1wbHVzLW92ZXJsYXktZGlhbG9nLWRlbGV0ZS9iaW1wbHVzLW92ZXJsYXktZGlhbG9nLWRlbGV0ZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUsIFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuaW1wb3J0IHsgQXN5bmNQaXBlLCBEYXRlUGlwZSwgTmdGb3IgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnLi4vYmltcGx1cy1nZW5lcmFsLW92ZXJsYXktZGlhbG9nL2JpbXBsdXMtZ2VuZXJhbC1vdmVybGF5LWRpYWxvZy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQmltcGx1c1RleHRhcmVhQ29tcG9uZW50IH0gZnJvbSAnLi4vYmltcGx1cy10ZXh0YXJlYS9iaW1wbHVzLXRleHRhcmVhLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEJpbXBsdXNDb21tZW50Q29tcG9uZW50IH0gZnJvbSAnLi4vYmltcGx1cy1jb21tZW50L2JpbXBsdXMtY29tbWVudC5jb21wb25lbnQnO1xyXG5pbXBvcnQgV2ViU2RrIGZyb20gJ2JpbXBsdXMtd2Vic2RrJztcclxuaW1wb3J0IHsgQmltcGx1c0J1dHRvbkNsaWNrRXZlbnQsIEJpbXBsdXNCdXR0b25Sb3dJdGVtIH0gZnJvbSAnLi4vYmltcGx1cy1idXR0b25zLXJvdy9iaW1wbHVzLWJ1dHRvbnMtcm93LmludGVyZmFjZSc7XHJcbmltcG9ydCB7IEJpbXBsdXNCdXR0b25zUm93Q29tcG9uZW50IH0gZnJvbSAnLi4vYmltcGx1cy1idXR0b25zLXJvdy9iaW1wbHVzLWJ1dHRvbnMtcm93LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEJpbXBsdXNMb2NhbGl6ZWRXaWRnZXRDb21wb25lbnQgfSBmcm9tICcuLi9iaW1wbHVzLWxvY2FsaXplZC13aWRnZXQvYmltcGx1cy1sb2NhbGl6ZWQtd2lkZ2V0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEJpbXBsdXNTY3JvbGxhYmxlQ29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi4vYmltcGx1cy1zY3JvbGxhYmxlLWNvbnRhaW5lci9iaW1wbHVzLXNjcm9sbGFibGUtY29udGFpbmVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvbW1lbnREYXRhLCBDb21tZW50T3V0cHV0RGF0YSwgSURpYWxvZ0NvbmZpcm1DbG9zZSB9IGZyb20gJy4vYmltcGx1c09iamVjdENvbW1lbnRzSSc7XHJcbmltcG9ydCB7IEJpbXBsdXNJbnB1dFRleHRGaWVsZENvbXBvbmVudCB9IGZyb20gXCIuLi9iaW1wbHVzLWlucHV0LXRleHQtZmllbGQvYmltcGx1cy1pbnB1dC10ZXh0LWZpZWxkLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgVmFsaWRhdG9ycyB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQgeyBCaW1wbHVzQXR0YWNobWVudHNDb21wb25lbnQgfSBmcm9tICcuLi9iaW1wbHVzLWF0dGFjaG1lbnRzL2JpbXBsdXMtYXR0YWNobWVudHMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQmltcGx1c0F0dGFjaG1lbnRzU2VydmljZSB9IGZyb20gJy4uL2JpbXBsdXMtYXR0YWNobWVudHMvc2VydmljZXMvYmltcGx1cy1hdHRhY2htZW50cy5zZXJ2aWNlJztcclxuaW1wb3J0IHtcclxuICBBdHRhY2htZW50LFxyXG4gIEJJTVBMVVNfQVRUQUNITUVOVFNfQ09ORklHLFxyXG4gIEJpbXBsdXNBdHRhY2htZW50c0NvbmZpZyxcclxufSBmcm9tICcuLi9iaW1wbHVzLWF0dGFjaG1lbnRzL2JpbXBsdXMtYXR0YWNobWVudHMuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQmltcGx1c09iamVjdENvbW1lbnRzTGlzdFNlcnZpY2UgfSBmcm9tICcuL2JpbXBsdXMtb2JqZWN0LWNvbW1lbnRzLWxpc3Quc2VydmljZSc7XHJcbmltcG9ydCB7IExpbmtzVG9Eb2N1bWVudHNDb21wb25lbnQgfSBmcm9tICcuLi9saW5rcy10by1kb2N1bWVudHMvbGlua3MtdG8tZG9jdW1lbnRzLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFByb2plY3ROYXZpZ2F0b3JQcm9qZWN0IH0gZnJvbSAnLi4vcHJvamVjdC1tb2RlbHMvcHJvamVjdC1tb2RlbHMuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgQmltcGx1c1N0YXR1c0JhclNlcnZpY2UgfSBmcm9tICcuLi9iaW1wbHVzLXN0YXR1cy1iYXIvYmltcGx1cy1zdGF0dXMtYmFyLnNlcnZpY2UnO1xyXG5pbXBvcnQge25ld0F0dGFjaEluZm99IGZyb20gJy4vYmltcGx1cy1vYmplY3QtY29tbWVudHMtbGlzdC5pbnRlcmZhY2UnO1xyXG5cclxuY29uc3QgY29uZmlnOiBCaW1wbHVzQXR0YWNobWVudHNDb25maWcgPSB7XHJcbiAgc2hvd05vQXR0YWNobWVudHNGb3VuZDogZmFsc2UsXHJcbiAgaGlkZUF0dGFjaG1lbnRTaXplOiB0cnVlLFxyXG59O1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1iaW1wbHVzLW9iamVjdC1jb21tZW50cy1saXN0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vYmltcGx1cy1vYmplY3QtY29tbWVudHMtbGlzdC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vYmltcGx1cy1vYmplY3QtY29tbWVudHMtbGlzdC5jb21wb25lbnQubGVzcyddLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIE5nRm9yLFxyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgQmltcGx1c1RleHRhcmVhQ29tcG9uZW50LFxyXG4gICAgQmltcGx1c0NvbW1lbnRDb21wb25lbnQsXHJcbiAgICBCaW1wbHVzQnV0dG9uc1Jvd0NvbXBvbmVudCxcclxuICAgIFRyYW5zbGF0ZU1vZHVsZSxcclxuICAgIEJpbXBsdXNTY3JvbGxhYmxlQ29udGFpbmVyQ29tcG9uZW50LFxyXG4gICAgQmltcGx1c0lucHV0VGV4dEZpZWxkQ29tcG9uZW50LFxyXG4gICAgQmltcGx1c0F0dGFjaG1lbnRzQ29tcG9uZW50LFxyXG4gICAgTGlua3NUb0RvY3VtZW50c0NvbXBvbmVudCxcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICAgIEFzeW5jUGlwZSxcclxuICBdLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAgRGF0ZVBpcGUsXHJcbiAgICBCaW1wbHVzT2JqZWN0Q29tbWVudHNMaXN0U2VydmljZSxcclxuICAgIEJpbXBsdXNBdHRhY2htZW50c1NlcnZpY2UsXHJcbiAgICB7IHByb3ZpZGU6IEJJTVBMVVNfQVRUQUNITUVOVFNfQ09ORklHLCB1c2VWYWx1ZTogY29uZmlnIH0sXHJcbiAgXSxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLlNoYWRvd0RvbSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEJpbXBsdXNPYmplY3RDb21tZW50c0xpc3RDb21wb25lbnRcclxuICBleHRlbmRzIEJpbXBsdXNMb2NhbGl6ZWRXaWRnZXRDb21wb25lbnRcclxuICBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcclxuICBoeXBlcmxpbmtGb3JtOiBGb3JtR3JvdXA7XHJcblxyXG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pIGFwaSE6IFdlYlNkay5BcGkgfCBudWxsO1xyXG4gIEBJbnB1dCgpIHByb2plY3Q6IFByb2plY3ROYXZpZ2F0b3JQcm9qZWN0IHwgbnVsbCA9IG51bGw7XHJcbiAgQElucHV0KCkgd29ybWhvbGVTZWxlY3Rvcjogc3RyaW5nID0gXCJsb2NhbEVtYmVkZGVkTW9kYWxJZFwiO1xyXG4gIEBJbnB1dCgpIGVudjogc3RyaW5nID0gXCJwcm9kXCI7XHJcbiAgQElucHV0KCkgYXR0YWNobWVudExpbmtJdGVtczogV2ViU2RrLkF0dGFjaG1lbnRMaW5rW10gPSBbXVxyXG4gIHByb3RlY3RlZCByZWFkb25seSBjb21tZW50c0xpc3QkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxXZWJTZGsuQ29tbWVudFJlc3BvbnNlW10+KFtdKTtcclxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgbG9hZGluZyA9IHNpZ25hbChmYWxzZSk7XHJcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGF0dGFjaG1lbnRzU3RhdGUgPSBzaWduYWw8QXR0YWNobWVudFtdPihbXSk7XHJcbiAgYnV0dG9uUm93SXRlbXM6IEJpbXBsdXNCdXR0b25Sb3dJdGVtW10gPSBbXTtcclxuICBoeXBlcmxpbmtCdXR0b25Sb3dJdGVtczogQmltcGx1c0J1dHRvblJvd0l0ZW1bXSA9IFtdO1xyXG4gIHRleHRBcmVhVmFsdWU6IHN0cmluZyB8IG51bGwgPSBudWxsO1xyXG4gIGxhc3RTaG93bkRhdGUgPSAnJztcclxuICBwbGFjZWhvbGRlciA9ICcnO1xyXG4gIG5hbWUgPSAnJztcclxuICByZWFkb25seSA9IGZhbHNlO1xyXG4gIGF1dG9SZXNpemVUZXh0YXJlYSA9IHRydWU7XHJcbiAgbWluUm93cyA9IDM7XHJcbiAgbWF4Um93cyA9IDEwO1xyXG4gIGNsZWFyVmFsdWUgPSBmYWxzZTtcclxuICBzdGF0dXNCYXJUaXRsZU1lc3NhZ2UgPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnX0xvYWRpbmcnKTtcclxuICBcclxuICAvLyBhdHRhY2htZW50IGlkcyByZWFkeSB0byBtYXAgdG8gY29uY3JldGUgY29tbWVudFxyXG4gIG5ld0F0dGFjaG1lbnRJRHM6IHN0cmluZ1tdID0gW11cclxuXHJcbiAgaXNBZGRpbmdIeXBlcmxpbms6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBcclxuICBuZXdDb21tZW50QXR0YWNobWVudHM6IG5ld0F0dGFjaEluZm8gW10gPSBbXTtcclxuICBcclxuICBwcml2YXRlIF9yb290T2JqZWN0SWQgPSAnJztcclxuICBwcml2YXRlIF91c2VySWQgPSAnJztcclxuXHJcbiAgQElucHV0KClcclxuICBzZXQgcm9vdE9iamVjdElkKGlkOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX3Jvb3RPYmplY3RJZCA9IGlkO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHJvb3RPYmplY3RJZCgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX3Jvb3RPYmplY3RJZDtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IHVzZXJJZChpZDogc3RyaW5nKSB7XHJcbiAgICB0aGlzLl91c2VySWQgPSBpZDtcclxuICB9XHJcblxyXG4gIGdldCB1c2VySWQoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl91c2VySWQ7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgZGlhbG9nU2VydmljZTogRGlhbG9nU2VydmljZSxcclxuICAgIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRhdGVQaXBlOiBEYXRlUGlwZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyLFxyXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGJpbXBsdXNBdHRhY2htZW50c1NlcnZpY2U6IEJpbXBsdXNBdHRhY2htZW50c1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGJpbXBsdXNPYmplY3RDb21tZW50c0xpc3RTZXJ2aWNlOiBCaW1wbHVzT2JqZWN0Q29tbWVudHNMaXN0U2VydmljZSxcclxuICAgIHByaXZhdGUgc3RhdHVzQmFyU2VydmljZTogQmltcGx1c1N0YXR1c0JhclNlcnZpY2VcclxuICApIHtcclxuICAgIHN1cGVyKHRyYW5zbGF0ZVNlcnZpY2UpO1xyXG5cclxuICAgIHRoaXMuaHlwZXJsaW5rRm9ybSA9IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xyXG4gICAgICBuYW1lOiBbJycsIFtdXSxcclxuICAgICAgdXJsOiBbXHJcbiAgICAgICAgJycsXHJcbiAgICAgICAgW1xyXG4gICAgICAgICAgVmFsaWRhdG9ycy5yZXF1aXJlZCxcclxuICAgICAgICAgIFZhbGlkYXRvcnMucGF0dGVybigvXltePD5dKiQvKSwgLy8gRG8gbm90IGFsbG93IDwgb3IgPlxyXG4gICAgICAgICAgVmFsaWRhdG9ycy5wYXR0ZXJuKC9eKD8hXFxzKiQpLisvKSwgLy8gRG8gbm90IGFsbG93IGFsbCBlbXB0eSBzdHJpbmcsIGJ1dCBhbGxvdyB0ZXh0IGFmdGVyIHNwYWNlc1xyXG4gICAgICAgIF0sXHJcbiAgICAgIF0sXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGlzQ3JlYXRlQnV0dG9uRGlzYWJsZWQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gIShcclxuICAgICAgdGhpcy50ZXh0QXJlYVZhbHVlIHx8XHJcbiAgICAgIHRoaXMubmV3QXR0YWNobWVudElEcz8ubGVuZ3RoID4gMCB8fFxyXG4gICAgICB0aGlzLmdldEh5cGVybGlua3ModGhpcy5yb290T2JqZWN0SWQpPy5sZW5ndGggPiAwIHx8XHJcbiAgICAgIHRoaXMuYXR0YWNobWVudHNTdGF0ZSgpPy5sZW5ndGggPiAwXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgY2hlY2tDcmVhdGVCdXR0b25TdGF0ZSgpIHtcclxuICAgIGlmICghdGhpcy5idXR0b25Sb3dJdGVtcz8uWzBdKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuYnV0dG9uUm93SXRlbXNbMF0uZGlzYWJsZWQgPSB0aGlzLmlzQ3JlYXRlQnV0dG9uRGlzYWJsZWQoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuYmltcGx1c09iamVjdENvbW1lbnRzTGlzdFNlcnZpY2UuYXBpID0gdGhpcy5hcGkhO1xyXG4gICAgdGhpcy5sb2FkQ29tbWVudHMoKTsgICAgXHJcbiAgICBjb25zdCBzdWJtaXQ6IEJpbXBsdXNCdXR0b25Sb3dJdGVtW10gPSBbXHJcbiAgICAgIHtcclxuICAgICAgICBpZDogJ3N1Ym1pdCcsXHJcbiAgICAgICAgdGl0bGU6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdfQWRkIGNvbW1lbnQnKSxcclxuICAgICAgICB0b29sdGlwOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnX0FkZCBjb21tZW50JyksXHJcbiAgICAgICAgZGlzYWJsZWQ6IHRoaXMuaXNDcmVhdGVCdXR0b25EaXNhYmxlZCgpLFxyXG4gICAgICAgIGJ1dHRvblN0eWxlOiAncHJpbWFyeScsXHJcbiAgICAgIH0sXHJcbiAgICBdO1xyXG4gICAgdGhpcy5wbGFjZWhvbGRlciA9IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFxyXG4gICAgICAnX1BsYWNlIGNvbW1lbnQgdGV4dCBoZXJlJ1xyXG4gICAgKTtcclxuICAgIHRoaXMubmFtZSA9IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdjb21tZW50Jyk7XHJcbiAgICB0aGlzLmJ1dHRvblJvd0l0ZW1zID0gc3VibWl0O1xyXG5cclxuICAgIHRoaXMuaHlwZXJsaW5rQnV0dG9uUm93SXRlbXMucHVzaChcclxuICAgICAge1xyXG4gICAgICAgIGlkOiAnY2FuY2VsLWh5cGVybGluaycsXHJcbiAgICAgICAgdGl0bGU6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdfQ2FuY2VsJyksXHJcbiAgICAgICAgdG9vbHRpcDogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ19DYW5jZWwnKSxcclxuICAgICAgICBkaXNhYmxlZDogZmFsc2UsXHJcbiAgICAgICAgYnV0dG9uU3R5bGU6ICdwcmltYXJ5JyxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGlkOiAnYWRkLWh5cGVybGluaycsXHJcbiAgICAgICAgdGl0bGU6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdfQWRkIGh5cGVybGluaycpLFxyXG4gICAgICAgIHRvb2x0aXA6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdfQWRkIGh5cGVybGluaycpLFxyXG4gICAgICAgIGRpc2FibGVkOiB0cnVlLFxyXG4gICAgICAgIGJ1dHRvblN0eWxlOiAncHJpbWFyeScsXHJcbiAgICAgIH1cclxuICAgICk7XHJcblxyXG4gICAgdGhpcy5oeXBlcmxpbmtGb3JtLnN0YXR1c0NoYW5nZXMuc3Vic2NyaWJlKChzdGF0dXMpID0+IHtcclxuICAgICAgdGhpcy5oeXBlcmxpbmtCdXR0b25Sb3dJdGVtc1sxXS5kaXNhYmxlZCA9IHN0YXR1cyAhPT0gJ1ZBTElEJztcclxuICAgIH0pO1xyXG4gIH1cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBpZiAoY2hhbmdlc1sncm9vdE9iamVjdElkJ10gJiYgIWNoYW5nZXNbJ3Jvb3RPYmplY3RJZCddLmZpcnN0Q2hhbmdlKSB7XHJcbiAgICAgIHRoaXMubG9hZENvbW1lbnRzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgb25BdHRhY2htZW50c0xpbmtDaGFuZ2UobmV3QXR0YWNobWVudHM6IG5ld0F0dGFjaEluZm9bXSk6IHZvaWQge1xyXG4gICAgY29uc3QgbmV3RGVjb3JhdGVkQXR0YWNobWVudHM6bmV3QXR0YWNoSW5mb1tdID0gbmV3QXR0YWNobWVudHMubWFwKChhdHRhY2htZW50KSA9PiB7XHJcbiAgICAgIGF0dGFjaG1lbnQuaWNvbkNsYXNzID0gJ2ZhIGZhLWxpbmsnO1xyXG4gICAgICBhdHRhY2htZW50Lmljb25UaXRsZSA9IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdfQXR0YWNobWVudF9saW5rJyk7XHJcbiAgICAgIGF0dGFjaG1lbnQuZGVsZXRlQnV0dG9uVGl0bGUgPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnX0RlbGV0ZV9hdHRhY2htZW50bGluaycpO1xyXG4gICAgICByZXR1cm4gYXR0YWNobWVudDtcclxuICAgIH0pO1xyXG4gICAgY29uc3QgbmV3Q29tbWVudEF0dGFjaG1lbnRzID0gdGhpcy5uZXdDb21tZW50QXR0YWNobWVudHMuZmlsdGVyKChhdHRhY2htZW50KSA9PiBhdHRhY2htZW50Py50eXBlID09PSAnSHlwZXJsaW5rJyk7XHJcbiAgICB0aGlzLm5ld0NvbW1lbnRBdHRhY2htZW50cyA9IFsuLi5uZXdDb21tZW50QXR0YWNobWVudHMsIC4uLm5ld0RlY29yYXRlZEF0dGFjaG1lbnRzXTsgICBcclxuICAgIHRoaXMubmV3QXR0YWNobWVudElEcyA9IG5ld0F0dGFjaG1lbnRzLm1hcCgoYXR0YWNobWVudCkgPT4gYXR0YWNobWVudC5pZCk7XHJcbiAgICB0aGlzLmNoZWNrQ3JlYXRlQnV0dG9uU3RhdGUoKTtcclxuICB9XHJcbiAgXHJcblxyXG4gIHByb3RlY3RlZCBvbkFkZEF0dGFjaG1lbnQoZmlsZTogRmlsZSk6IHZvaWQge1xyXG4gICAgY29uc3QgYXR0YWNobWVudCA9IHRoaXMuYmltcGx1c0F0dGFjaG1lbnRzU2VydmljZS5nZXRBdHRhY2htZW50KGZpbGUpO1xyXG4gICAgdGhpcy5hdHRhY2htZW50c1N0YXRlLnVwZGF0ZShhdHRhY2htZW50cyA9PiAoWy4uLmF0dGFjaG1lbnRzLCBhdHRhY2htZW50XSkpO1xyXG4gICAgdGhpcy5jaGVja0NyZWF0ZUJ1dHRvblN0YXRlKCk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgb25EZWxldGVBdHRhY2htZW50KGF0dGFjaG1lbnQ6IEF0dGFjaG1lbnQpOiB2b2lkIHtcclxuICAgIHRoaXMuYXR0YWNobWVudHNTdGF0ZS51cGRhdGUoYXR0YWNobWVudHMgPT4gYXR0YWNobWVudHMuZmlsdGVyKGEgPT4gYSAhPT0gYXR0YWNobWVudCkpO1xyXG4gICAgdGhpcy5jaGVja0NyZWF0ZUJ1dHRvblN0YXRlKCk7XHJcbiAgfVxyXG5cclxuICAvKiogRXZlbnQgb24gY2xpY2sgYXR0YWNobWVudC4gKi9cclxuICBwcm90ZWN0ZWQgb25HZXRBdHRhY2htZW50KGF0dGFjaG1lbnQ6IEF0dGFjaG1lbnQpOiB2b2lkIHtcclxuICAgIHRoaXMuYmltcGx1c09iamVjdENvbW1lbnRzTGlzdFNlcnZpY2UuZG93bmxvYWRBdHRhY2htZW50KGF0dGFjaG1lbnQpO1xyXG4gIH1cclxuXHJcbiAgb25UZXh0YXJlYVZhbHVlQ2hhbmdlKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMudGV4dEFyZWFWYWx1ZSA9IHZhbHVlO1xyXG4gICAgdGhpcy5jaGVja0NyZWF0ZUJ1dHRvblN0YXRlKCk7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVBY3Rpb25Db21tZW50RXZlbnQoZXZlbnQ6IENvbW1lbnRPdXRwdXREYXRhKSB7XHJcbiAgICBpZiAoZXZlbnQuYWN0aW9uID09PSAnZGVsZXRlJykge1xyXG4gICAgICBjb25zdCBkYXRhID0gZXZlbnQuZGF0YSBhcyBDb21tZW50RGF0YTtcclxuICAgICAgdGhpcy5vcGVuRGlhbG9nRGVsZXRlQ29tbWVudChkYXRhLmNvbW1lbnRJZCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBhY3Rpb25EaWFsb2dDbG9zZShkYXRhOiBJRGlhbG9nQ29uZmlybUNsb3NlKSB7XHJcbiAgICB0aGlzLmRpYWxvZ1NlcnZpY2UuY2xvc2UoZGF0YSk7XHJcbiAgfVxyXG5cclxuICBvcGVuRGlhbG9nRGVsZXRlQ29tbWVudChjb21tZW50SWQ6IHN0cmluZykge1xyXG4gICAgdGhpcy5kaWFsb2dTZXJ2aWNlLm9wZW4oQmltcGx1c092ZXJsYXlEaWFsb2dEZWxldGVDb21wb25lbnQsIHtcclxuICAgICAgb3B0aW9uczoge1xyXG4gICAgICAgIHBvc2l0aW9uOiAnbWlkZGxlJyxcclxuICAgICAgICBwb3NpdGlvbk9wdGlvbnM6IHt9LFxyXG4gICAgICAgIG92ZXJsYXlDbGlja0VuYWJsZWQ6IGZhbHNlLFxyXG4gICAgICAgIG92ZXJsYXlWaXNpYmlsaXR5RW5hYmxlZDogdHJ1ZSxcclxuICAgICAgICBkcmFnZ2FibGU6IHRydWUsXHJcbiAgICAgIH0sXHJcbiAgICAgIGRhdGE6IHtcclxuICAgICAgICB0aXRsZTogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXHJcbiAgICAgICAgICAnX0NvbW1lbnQgZGVsZXRlIGNvbmZpcm1hdGlvbiB0aXRsZSdcclxuICAgICAgICApLFxyXG4gICAgICAgIG1lc3NhZ2U6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFxyXG4gICAgICAgICAgJ19Db21tZW50IGRlbGV0ZSBjb25maXJtYXRpb24gbWVzc2FnZSdcclxuICAgICAgICApLFxyXG4gICAgICAgIGFjY2VwdENhbGxiYWNrOiAoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmRlbGV0ZUNvbW1lbnQoY29tbWVudElkKTtcclxuICAgICAgICB9LFxyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBpc1NhbWVEYXRlKGRhdGU/OiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgIGlmICghZGF0ZSkge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICBjb25zdCB0aW1lID0gdGhpcy5kYXRlUGlwZS50cmFuc2Zvcm0oZGF0ZSwgJ3Nob3J0RGF0ZScpO1xyXG4gICAgaWYgKHRoaXMubGFzdFNob3duRGF0ZSA9PT0gdGltZSkge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICB0aGlzLmxhc3RTaG93bkRhdGUgPSBkYXRlO1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBidXR0b25Sb3dCdXR0b25DbGlja2VkKCRldmVudDogQmltcGx1c0J1dHRvbkNsaWNrRXZlbnQpIHtcclxuICAgIGlmICgkZXZlbnQuaWQgPT09ICdzdWJtaXQnKSB7XHJcbiAgICAgIGlmICghdGhpcy5hcGkgfHwgIXRoaXMucm9vdE9iamVjdElkKSByZXR1cm47XHJcbiAgICAgIHRoaXMubG9hZGluZy5zZXQodHJ1ZSk7XHJcblxyXG4gICAgICBjb25zdCBkYXRhID0ge1xyXG4gICAgICAgIHRleHQ6IHRoaXMudGV4dEFyZWFWYWx1ZSxcclxuICAgICAgICBvYmplY3RJZDogdGhpcy5yb290T2JqZWN0SWQsXHJcbiAgICAgIH07XHJcbiAgICAgIGNvbnN0IGRhdGFUZXh0ID0gSlNPTi5zdHJpbmdpZnkoZGF0YSk7XHJcbiAgICAgIHRoaXMuc3RhdHVzQmFyU2VydmljZS5zZXRTdGF0dXNCYXJEYXRhKHsgc3RhdHVzQmFyVmlzaWJsZTogdHJ1ZSwgdGl0bGU6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdfQ3JlYXRpbmcgbmV3IGNvbW1lbnQnKSB9KTtcclxuICAgICAgdGhpcy5iaW1wbHVzT2JqZWN0Q29tbWVudHNMaXN0U2VydmljZS5wb3N0Q29tbWVudHModGhpcy5yb290T2JqZWN0SWQsIGRhdGFUZXh0LCB0aGlzLmdldEh5cGVybGlua3ModGhpcy5yb290T2JqZWN0SWQpLCB0aGlzLmF0dGFjaG1lbnRzU3RhdGUoKSwgdGhpcy5uZXdBdHRhY2htZW50SURzKVxyXG4gICAgICAucGlwZShzd2l0Y2hNYXAoKCkgPT4gdGhpcy5iaW1wbHVzT2JqZWN0Q29tbWVudHNMaXN0U2VydmljZS5sb2FkQ29tbWVudHModGhpcy5yb290T2JqZWN0SWQpKSlcclxuICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKGNvbW1lbnRzKSA9PiB0aGlzLmNvbW1lbnRzTGlzdCQubmV4dChjb21tZW50cyksXHJcbiAgICAgICAgY29tcGxldGU6ICgpID0+IHtcclxuICAgICAgICAgIHRoaXMuYXR0YWNobWVudHNTdGF0ZS5zZXQoW10pO1xyXG4gICAgICAgICAgdGhpcy5uZXdDb21tZW50QXR0YWNobWVudHMgPSBbXTtcclxuICAgICAgICAgIHRoaXMuYXR0YWNobWVudExpbmtJdGVtcyA9IFtdO1xyXG4gICAgICAgICAgdGhpcy5uZXdBdHRhY2htZW50SURzID0gW107XHJcbiAgICAgICAgICB0aGlzLnRleHRBcmVhVmFsdWUgPSBudWxsO1xyXG4gICAgICAgICAgdGhpcy5jbGVhclZhbHVlID0gdHJ1ZTtcclxuICAgICAgICAgIHRoaXMuYnV0dG9uUm93SXRlbXNbMF0uZGlzYWJsZWQgPSB0cnVlO1xyXG4gICAgICAgICAgdGhpcy5sb2FkaW5nLnNldChmYWxzZSk7XHJcbiAgICAgICAgICB0aGlzLnN0YXR1c0JhclNlcnZpY2Uuc2V0U3RhdHVzQmFyRGF0YSh7IHN0YXR1c0JhclZpc2libGU6IGZhbHNlLCB0aXRsZTogJycgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGh5cGVybGlua0J1dHRvblJvd0J1dHRvbkNsaWNrZWQoJGV2ZW50OiBCaW1wbHVzQnV0dG9uQ2xpY2tFdmVudCkge1xyXG4gICAgaWYgKCRldmVudC5pZCA9PT0gJ2FkZC1oeXBlcmxpbmsnKSB7XHJcbiAgICAgIHRoaXMuYWRkTmV3Q29tbWVudEF0dGFjaG1lbnQoKTtcclxuICAgIH0gZWxzZSBpZiAoJGV2ZW50LmlkID09PSAnY2FuY2VsLWh5cGVybGluaycpIHtcclxuICAgICAgdGhpcy5oeXBlcmxpbmtGb3JtLnJlc2V0KCk7XHJcbiAgICAgIHRoaXMuaXNBZGRpbmdIeXBlcmxpbmsgPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGFkZE5ld0NvbW1lbnRBdHRhY2htZW50KCkge1xyXG4gICAgaWYgKCF0aGlzLmh5cGVybGlua0Zvcm0udmFsaWQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCBzYW5pdGl6ZWRVcmw6IHN0cmluZyA9IHRoaXMuaHlwZXJsaW5rRm9ybS52YWx1ZVsndXJsJ10udHJpbSgpO1xyXG4gICAgaWYgKCFSZWdFeHAoL15odHRwKHM/KTpcXC9cXC8vKS5leGVjKHNhbml0aXplZFVybCkpIHtcclxuICAgICAgc2FuaXRpemVkVXJsID0gJ2h0dHBzOi8vJyArIHNhbml0aXplZFVybDtcclxuICAgIH1cclxuICAgIGxldCBzYW5pdGl6ZWROYW1lID0gdGhpcy5oeXBlcmxpbmtGb3JtLnZhbHVlWyduYW1lJ10/LnRyaW0oKSA/PyAnJztcclxuICAgIGlmIChzYW5pdGl6ZWROYW1lID09PSAnJykge1xyXG4gICAgICBzYW5pdGl6ZWROYW1lID0gc2FuaXRpemVkVXJsO1xyXG4gICAgfVxyXG4gICAgc2FuaXRpemVkTmFtZSA9IHNhbml0aXplZE5hbWU/LnJlcGxhY2UoL15odHRwKHM/KTpcXC9cXC8vLCAnJyk7XHJcbiAgICBjb25zdCBuZXdJdGVtOiBuZXdBdHRhY2hJbmZvID0ge1xyXG4gICAgICBpZDogJycsXHJcbiAgICAgIHR5cGU6ICdIeXBlcmxpbmsnLFxyXG4gICAgICBuYW1lU2hvcnQ6IHNhbml0aXplZE5hbWUsXHJcbiAgICAgIG5hbWU6IHNhbml0aXplZE5hbWUsXHJcbiAgICAgIHVybDogc2FuaXRpemVkVXJsLFxyXG4gICAgICBpY29uQ2xhc3M6ICdmYSBmYS1saW5rJyxcclxuICAgICAgaWNvblRpdGxlOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnX0h5cGVybGluaycpLFxyXG4gICAgICBkZWxldGVCdXR0b25UaXRsZTogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ19SZW1vdmUgaHlwZXJsaW5rJyksXHJcbiAgICB9O1xyXG4gICAgdGhpcy5uZXdDb21tZW50QXR0YWNobWVudHMucHVzaChuZXdJdGVtKTtcclxuICAgIHRoaXMuaHlwZXJsaW5rRm9ybS5yZXNldCgpO1xyXG4gICAgdGhpcy5pc0FkZGluZ0h5cGVybGluayA9IGZhbHNlO1xyXG4gICAgdGhpcy5jaGVja0NyZWF0ZUJ1dHRvblN0YXRlKCk7XHJcbiAgfVxyXG5cclxuICBkZWxldGVDb21tZW50KGNvbW1lbnRJZDogc3RyaW5nKSB7XHJcbiAgICB0aGlzLnN0YXR1c0JhclNlcnZpY2Uuc2V0U3RhdHVzQmFyRGF0YSh7c3RhdHVzQmFyVmlzaWJsZTogdHJ1ZSwgdGl0bGU6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdfRGVsZXRpbmcgdGhlIGNvbW1lbnQnKX0pO1xyXG4gICAgdGhpcy5iaW1wbHVzT2JqZWN0Q29tbWVudHNMaXN0U2VydmljZS5kZWxldGVDb21tZW50KGNvbW1lbnRJZClcclxuICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5sb2FkQ29tbWVudHMoKSlcclxuICB9XHJcblxyXG4gIGFkZEh5cGVybGlua0ljb25DbGlja2VkKCkge1xyXG4gICAgdGhpcy5pc0FkZGluZ0h5cGVybGluayA9ICF0aGlzLmlzQWRkaW5nSHlwZXJsaW5rO1xyXG4gIH1cclxuXHJcbiAgYWRkSHlwZXJsaW5rSWNvbktleXByZXNzKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XHJcbiAgICBpZiAoZXZlbnQua2V5ID09PSAnRW50ZXInIHx8IGV2ZW50LmtleSA9PT0gJyAnKSB7XHJcbiAgICAgIHRoaXMuYWRkSHlwZXJsaW5rSWNvbkNsaWNrZWQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJlbW92ZU5ld0NvbW1lbnRBdHRhY2htZW50KGxpbms6IG5ld0F0dGFjaEluZm8pIHtcclxuICAgIHRoaXMubmV3Q29tbWVudEF0dGFjaG1lbnRzID0gdGhpcy5uZXdDb21tZW50QXR0YWNobWVudHMuZmlsdGVyKFxyXG4gICAgICAoY29tbWVudExpbmspID0+IGNvbW1lbnRMaW5rICE9PSBsaW5rXHJcbiAgICApO1xyXG4gICAgaWYgKGxpbms/LnR5cGUgIT09ICdIeXBlcmxpbmsnKSB7XHJcbiAgICAgIHRoaXMuYXR0YWNobWVudExpbmtJdGVtcyA9IHRoaXMuYXR0YWNobWVudExpbmtJdGVtcy5maWx0ZXIoXHJcbiAgICAgICAgKGF0dGFjaG1lbnRMaW5rKSA9PiBhdHRhY2htZW50TGluay5pZCAhPT0gbGluay5pZFxyXG4gICAgICApO1xyXG4gICAgICB0aGlzLm5ld0F0dGFjaG1lbnRJRHMgPSB0aGlzLm5ld0F0dGFjaG1lbnRJRHMuZmlsdGVyKGlkID0+IGlkICE9PSBsaW5rLmlkKVxyXG4gICAgfVxyXG4gICAgdGhpcy5jaGVja0NyZWF0ZUJ1dHRvblN0YXRlKCk7XHJcbiAgfVxyXG5cclxuICByZW1vdmVOZXdDb21tZW50QXR0YWNobWVudEtleXByZXNzKFxyXG4gICAgZXZlbnQ6IEtleWJvYXJkRXZlbnQsXHJcbiAgICBsaW5rOiBuZXdBdHRhY2hJbmZvXHJcbiAgKSB7XHJcbiAgICBpZiAoZXZlbnQua2V5ID09PSAnRW50ZXInIHx8IGV2ZW50LmtleSA9PT0gJyAnKSB7XHJcbiAgICAgIHRoaXMucmVtb3ZlTmV3Q29tbWVudEF0dGFjaG1lbnQobGluayk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBpc0FjdFVzZXJBdXRob3IoaXRlbTogV2ViU2RrLkNvbW1lbnRSZXNwb25zZSkge1xyXG4gICAgcmV0dXJuIGl0ZW0uYXV0aG9yPy5pZCA9PT0gdGhpcy51c2VySWQ7XHJcbiAgfVxyXG5cclxuICBkaXNwbGF5TmFtZShpdGVtOiBXZWJTZGsuQ29tbWVudFJlc3BvbnNlKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBpdGVtLmF1dGhvcj8uZGlzcGxheW5hbWUgPyBpdGVtLmF1dGhvcj8uZGlzcGxheW5hbWUgOiAnJztcclxuICB9XHJcblxyXG4gIGZvcm1hdERhdGUoZGF0ZTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IGxvY2FsZSA9IHdpbmRvdy5uYXZpZ2F0b3IubGFuZ3VhZ2U7XHJcbiAgICBpZiAobG9jYWxlLmluY2x1ZGVzKCdlbicpKSB7XHJcbiAgICAgIGNvbnN0IHVuZm9ybWF0dGVkRGF0ZSA9IG5ldyBEYXRlKGRhdGUpO1xyXG4gICAgICByZXR1cm4gdW5mb3JtYXR0ZWREYXRlLmdldE1vbnRoKCkgKyAnLycgKyB1bmZvcm1hdHRlZERhdGUuZ2V0RGF0ZSgpICsgJy8nICsgdW5mb3JtYXR0ZWREYXRlLmdldEZ1bGxZZWFyKCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQodW5kZWZpbmVkLCB7IGRhdGVTdHlsZTogXCJzaG9ydFwiIH0pLmZvcm1hdChuZXcgRGF0ZShkYXRlKSk7XHJcbiAgfVxyXG5cclxuICBjbGVhclRleHRhcmVhVmFsdWUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5jbGVhclZhbHVlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBsb2FkQ29tbWVudHMoKSB7XHJcbiAgICB0aGlzLnN0YXR1c0JhclNlcnZpY2Uuc2V0U3RhdHVzQmFyRGF0YSh7c3RhdHVzQmFyVmlzaWJsZTogdHJ1ZSwgdGl0bGU6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdfTG9hZGluZyBjb21tZW50cyBsaXN0Jyl9KTtcclxuICAgIHRoaXMubG9hZGluZy5zZXQodHJ1ZSk7XHJcbiAgICB0aGlzLmJpbXBsdXNPYmplY3RDb21tZW50c0xpc3RTZXJ2aWNlXHJcbiAgICAgIC5sb2FkQ29tbWVudHModGhpcy5yb290T2JqZWN0SWQpXHJcbiAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IGNvbW1lbnRzID0+IHRoaXMuY29tbWVudHNMaXN0JC5uZXh0KGNvbW1lbnRzKSxcclxuICAgICAgICBjb21wbGV0ZTogKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5sb2FkaW5nLnNldChmYWxzZSk7XHJcbiAgICAgICAgICB0aGlzLnN0YXR1c0JhclNlcnZpY2Uuc2V0U3RhdHVzQmFyRGF0YSh7IHN0YXR1c0JhclZpc2libGU6IGZhbHNlLCB0aXRsZTogJycgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRIeXBlcmxpbmtzKG9iamVjdElkOiBzdHJpbmcpOiBQYXJ0aWFsPFdlYlNkay5IeXBlcmxpbms+W10ge1xyXG4gICAgcmV0dXJuIHRoaXMubmV3Q29tbWVudEF0dGFjaG1lbnRzXHJcbiAgICAuZmlsdGVyKGggPT4gaD8udHlwZSA9PT0gJ0h5cGVybGluaycpIC8vIEZpbHRlciBvYmplY3RzIHdpdGggdHlwZSAnSHlwZXJsaW5rJ1xyXG4gICAgLm1hcCgoaCkgPT4gKHtcclxuICAgICAgLi4uaCxcclxuICAgICAgb2JqZWN0SWQsXHJcbiAgICB9KSk7XHJcbiAgfVxyXG5cclxuICBvbkVudGVyS2V5UHJlc3NlZEluSHlwZXJsaW5rRm9ybSgpIHtcclxuICAgIHRoaXMuYWRkTmV3Q29tbWVudEF0dGFjaG1lbnQoKTtcclxuICB9XHJcbn1cclxuIiwiQGlmICghbG9hZGluZygpKSB7XHJcbjxkaXYgY2xhc3M9XCJjb21tZW50LXRhYi1jb250YWluZXJcIj5cclxuICA8ZGl2IGNsYXNzPVwidGV4dGFyZWEtY29udGFpbmVyXCI+XHJcbiAgICA8bGliLWJpbXBsdXMtdGV4dGFyZWFcclxuICAgICAgKHRleHRBcmVhVmFsdWVDaGFuZ2UpPVwib25UZXh0YXJlYVZhbHVlQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxyXG4gICAgICBbbmFtZV09XCJuYW1lXCJcclxuICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcclxuICAgICAgW2FjdGl2ZUF1dG9SZXNpemVUZXh0YXJlYV09XCJ0cnVlXCJcclxuICAgICAgW21pblJvd3NdPVwibWluUm93c1wiXHJcbiAgICAgIFttYXhSb3dzXT1cIm1heFJvd3NcIlxyXG4gICAgICBbY2xlYXJWYWx1ZV09XCJjbGVhclRleHRhcmVhVmFsdWUoKVwiXHJcbiAgICA+PC9saWItYmltcGx1cy10ZXh0YXJlYT5cclxuICA8L2Rpdj5cclxuXHJcbiAgPGxpYi1iaW1wbHVzLWF0dGFjaG1lbnRzXHJcbiAgICAjYXR0YWNobWVudHNcclxuICAgIGxpc3RPbmx5XHJcbiAgICBbY2xhc3NdPVwiWyduZXctY29tbWVudC1hdHRhY2htZW50cyddXCJcclxuICAgIFthdHRhY2htZW50c109XCJhdHRhY2htZW50c1N0YXRlKClcIlxyXG4gICAgKGFkZEF0dGFjaG1lbnQpPVwib25BZGRBdHRhY2htZW50KCRldmVudClcIlxyXG4gICAgKGRlbGV0ZUF0dGFjaG1lbnQpPVwib25EZWxldGVBdHRhY2htZW50KCRldmVudClcIlxyXG4gIC8+XHJcblxyXG4gIDxsaWItbGlua3MtdG8tZG9jdW1lbnRzIFxyXG4gICAgI2xpbmtzVG9Eb2N1bWVudHNcclxuICAgIGxpc3RPbmx5XHJcbiAgICBoaWRlQXR0YWNobWVudFNpemVcclxuICAgIHNob3dFbXB0eU1lc3NhZ2U9XCJmYWxzZVwiIFxyXG4gICAgW2F0dGFjaG1lbnRzXT1cImF0dGFjaG1lbnRMaW5rSXRlbXNcIlxyXG4gICAgKGF0dGFjaG1lbnRzTGlua0NoYW5nZSk9XCJvbkF0dGFjaG1lbnRzTGlua0NoYW5nZSgkZXZlbnQpXCJcclxuICAgIFthcGldPVwiYXBpXCIgICAgICAgIFxyXG4gICAgW3Byb2plY3RdPVwicHJvamVjdFwiXHJcbiAgICBbcm9vdE9iamVjdElkXT0nJ1xyXG4gICAgW2NhbkNyZWF0ZUF0dGFjaG1lbnRMaW5rXT1cInRydWVcIlxyXG4gICAgW2NhbkRlbGV0ZUF0dGFjaG1lbnRMaW5rXT1cInRydWVcIlxyXG4gICAgW3dvcm1ob2xlU2VsZWN0b3JdPVwid29ybWhvbGVTZWxlY3RvclwiXHJcbiAgICBbZW52XT1cImVudlwiXHJcbiAgLz5cclxuXHJcbiAgQGlmIChuZXdDb21tZW50QXR0YWNobWVudHMubGVuZ3RoID4gMCkge1xyXG4gICAgPGRpdiBjbGFzcz1cIm5ldy1jb21tZW50LWF0dGFjaG1lbnQtbGlzdFwiPlxyXG4gICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBpdGVtIG9mIG5ld0NvbW1lbnRBdHRhY2htZW50c1wiIFxyXG4gICAgICAgIFtuZ0NsYXNzXT1cIiduZXctY29tbWVudC1hdHRhY2htZW50ICcgKyBpdGVtLnR5cGVcIlxyXG4gICAgICAgIFt0aXRsZV09XCJpdGVtLnR5cGUgPT09ICdIeXBlcmxpbmsnID8gaXRlbS51cmw6IGl0ZW0ubmFtZVwiPlxyXG4gICAgICAgIDxkaXYgXHJcbiAgICAgICAgICBbbmdDbGFzc109XCInaWNvbi1zbWFsbCAnICsgaXRlbS50eXBlXCIgICAgICAgICAgXHJcbiAgICAgICAgICBbdGl0bGVdPVwiaXRlbS50eXBlID09PSAnSHlwZXJsaW5rJyA/IGl0ZW0udXJsOiBpdGVtLm5hbWVcIj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dFwiPnt7IGl0ZW0ubmFtZSB9fSA8L2Rpdj4gICAgICBcclxuICAgICAgPHNwYW4gY2xhc3M9XCJjYW5jZWwtaWNvblwiIHRpdGxlPVwie3sgaXRlbS5kZWxldGVCdXR0b25UaXRsZX19XCIgKGNsaWNrKT1cInJlbW92ZU5ld0NvbW1lbnRBdHRhY2htZW50KGl0ZW0pXCIgKGtleWRvd24pPVwicmVtb3ZlTmV3Q29tbWVudEF0dGFjaG1lbnRLZXlwcmVzcygkZXZlbnQsIGl0ZW0pXCI+PC9zcGFuPlxyXG4gICAgICA8L2Rpdj4gICAgXHJcbiAgICA8L2Rpdj5cclxuICB9XHJcblxyXG4gIEBpZiAoaXNBZGRpbmdIeXBlcmxpbmspIHtcclxuICAgICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJoeXBlcmxpbmtGb3JtXCIgY2xhc3M9XCJoeXBlcmxpbmstaW5wdXQtZm9ybVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJoeXBlcmxpbmstaW5wdXQtcm93XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibGluay1pY29uIGljb24tbmV4dC10by10ZXh0LWlucHV0XCI+PC9kaXY+XHJcbiAgICAgICAgICA8bGliLWJpbXBsdXMtaW5wdXQtdGV4dC1maWVsZCBjbGFzcz1cImZsZXgtZ3Jvd1wiIGZvcm1Db250cm9sTmFtZT1cIm5hbWVcIiBwbGFjZWhvbGRlcj1cInt7ICdfTmFtZScgfCB0cmFuc2xhdGUgfX1cIiAoZW50ZXJLZXlQcmVzc2VkKT1cIm9uRW50ZXJLZXlQcmVzc2VkSW5IeXBlcmxpbmtGb3JtKClcIi8+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImh5cGVybGluay1pbnB1dC1yb3dcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpY29uLW5leHQtdG8tdGV4dC1pbnB1dFwiPjwvZGl2PlxyXG4gICAgICAgICAgPGxpYi1iaW1wbHVzLWlucHV0LXRleHQtZmllbGQgY2xhc3M9XCJmbGV4LWdyb3dcIiBmb3JtQ29udHJvbE5hbWU9XCJ1cmxcIiBwbGFjZWhvbGRlcj1cInt7ICdfVVJMJyB8IHRyYW5zbGF0ZSB9fVwiIChlbnRlcktleVByZXNzZWQpPVwib25FbnRlcktleVByZXNzZWRJbkh5cGVybGlua0Zvcm0oKVwiLz5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGxpYi1iaW1wbHVzLWJ1dHRvbnMtcm93IFtpdGVtc109XCJoeXBlcmxpbmtCdXR0b25Sb3dJdGVtc1wiIChidXR0b25DbGlja2VkKT1cImh5cGVybGlua0J1dHRvblJvd0J1dHRvbkNsaWNrZWQoJGV2ZW50KVwiLz5cclxuICAgICAgPC9mb3JtPlxyXG4gIH1cclxuXHJcbiAgPGRpdiBjbGFzcz1cImNvbW1lbnRzLXRhYi1hdHRhY2htZW50cy1zZWN0aW9uXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29tbWVudHMtYXR0YWNobWVudHMtbGlzdFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwidGFiLWF0dGFjaG1lbnRzIGljb24gYXR0YWNobWVudHMtaWNvbiBoaWRkZW5cIj48L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImF0dGFjaG1lbnQtaWNvbiBpY29uLXNtYWxsIGludGVyYWN0aXZlXCIgW3RpdGxlXT1cIidfQWRkIGF0dGFjaG1lbnQnIHwgdHJhbnNsYXRlXCIgKGNsaWNrKT1cImF0dGFjaG1lbnRzLm9wZW4oKVwiIChrZXlkb3duKT1cImF0dGFjaG1lbnRzLm9wZW4oKVwiPjwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwibGluay1pY29uIGljb24tc21hbGwgaW50ZXJhY3RpdmVcIiBbdGl0bGVdPVwiJ19BZGQgaHlwZXJsaW5rJyB8IHRyYW5zbGF0ZVwiIChjbGljayk9XCJhZGRIeXBlcmxpbmtJY29uQ2xpY2tlZCgpXCIgKGtleWRvd24pPVwiYWRkSHlwZXJsaW5rSWNvbktleXByZXNzKCRldmVudClcIj48L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImF0dGFjaG1lbnQtbGluay1pY29uIGljb24tc21hbGwgaW50ZXJhY3RpdmVcIiBbdGl0bGVdPVwiJ19BZGRfYXR0YWNobWVudF9saW5rJyB8IHRyYW5zbGF0ZVwiIChjbGljayk9XCJsaW5rc1RvRG9jdW1lbnRzLmNyZWF0ZUF0dGFjaG1lbnRMaW5rKGFwaSEpXCIgKGtleWRvd24pPVwibGlua3NUb0RvY3VtZW50cy5jcmVhdGVBdHRhY2htZW50TGluayhhcGkhKVwiPjwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwidGFiLWF0dGFjaG1lbnRsaW5rcyBpY29uIGF0dGFjaG1lbnRzLWljb24gaGlkZGVuXCI+PC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJhZGQtY29tbWVudFwiPlxyXG4gICAgICA8bGliLWJpbXBsdXMtYnV0dG9ucy1yb3dcclxuICAgICAgICBbaXRlbXNdPVwiYnV0dG9uUm93SXRlbXNcIlxyXG4gICAgICAgIChidXR0b25DbGlja2VkKT1cImJ1dHRvblJvd0J1dHRvbkNsaWNrZWQoJGV2ZW50KVwiIC8+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPGRpdiBjbGFzcz1cImNvbW1lbnRzLXNlcGFyYXRvclwiPjwvZGl2PlxyXG5cclxuICA8ZGl2IGNsYXNzPVwic2Nyb2xsYWJsZS1jb250ZW50LWNvbnRhaW5lclwiPlxyXG4gICAgPGxpYi1iaW1wbHVzLXNjcm9sbGFibGUtY29udGFpbmVyPlxyXG4gICAgICBAaWYgKChjb21tZW50c0xpc3QkIHwgYXN5bmMpPy5sZW5ndGggPT09IDApIHtcclxuICAgICAgICA8ZGl2IGNsYXNzPVwibm8tY29tbWVudHMtZm91bmRcIj5cclxuICAgICAgICAgIHt7ICdfTm8gY29tbWVudHMgZm91bmQnIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgIEBmb3IgKGl0ZW0gb2YgY29tbWVudHNMaXN0JCB8IGFzeW5jOyB0cmFjayBpdGVtKSB7XHJcbiAgICAgICAgICBAaWYoaXRlbS5jcmVhdGVkQXQgJiYgaXNTYW1lRGF0ZShpdGVtLmNyZWF0ZWRBdCkpIHtcclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbW1lbnQtbGlzdC1kYXRlXCI+XHJcbiAgICAgICAgICAgICAge3tmb3JtYXREYXRlKGl0ZW0uY3JlYXRlZEF0KX19XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgPGxpYi1iaW1wbHVzLWNvbW1lbnRcclxuICAgICAgICAgICAgKG91dHB1dEFjdGlvbkNvbW1lbnRFdmVudCk9XCJoYW5kbGVBY3Rpb25Db21tZW50RXZlbnQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgIChnZXRBdHRhY2htZW50KT1cIm9uR2V0QXR0YWNobWVudCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgW21lc3NhZ2VdPVwiaXRlbS50ZXh0XCJcclxuICAgICAgICAgICAgW2FwaV09XCJhcGlcIlxyXG4gICAgICAgICAgICBbZGF0ZV09XCJpdGVtLmNyZWF0ZWRBdCA/IGl0ZW0uY3JlYXRlZEF0IDogJydcIlxyXG4gICAgICAgICAgICBhY3Rpb249XCJkZWxldGVcIlxyXG4gICAgICAgICAgICBbY29tbWVudElkXT1cIml0ZW0uaWRcIlxyXG4gICAgICAgICAgICBbYXR0YWNobWVudHNdPVwiaXRlbS5hdHRhY2htZW50cyA/PyBbXVwiXHJcbiAgICAgICAgICAgIFthdHRhY2htZW50TGlua0l0ZW1zXT1cIml0ZW0uYXR0YWNobWVudExpbmtzID8/IFtdXCJcclxuICAgICAgICAgICAgW2h5cGVybGlua3NdPVwiaXRlbS5oeXBlcmxpbmtzXCJcclxuICAgICAgICAgICAgW2lzQWN0VXNlckF1dGhvcl09XCJpc0FjdFVzZXJBdXRob3IoaXRlbSlcIlxyXG4gICAgICAgICAgICBbZGlzcGxheW5hbWVdPVwiZGlzcGxheU5hbWUoaXRlbSlcIj5cclxuICAgICAgICAgIDwvbGliLWJpbXBsdXMtY29tbWVudD5cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIDwvbGliLWJpbXBsdXMtc2Nyb2xsYWJsZS1jb250YWluZXI+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG59XHJcbiJdfQ==
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=
@@ -3,8 +3,10 @@ import { catchError, defaultIfEmpty, first, forkJoin, from, map, of, switchMap }
3
3
  import { BimplusAttachmentsService } from '../bimplus-attachments/services/bimplus-attachments.service';
4
4
  import { postAttachmentLinks } from '../links-to-documents/links-to-documents.component';
5
5
  import * as i0 from "@angular/core";
6
+ import * as i1 from "../../services/decorators.service";
6
7
  export class BimplusObjectCommentsListService {
7
- constructor() {
8
+ constructor(decorators) {
9
+ this.decorators = decorators;
8
10
  this.bimplusAttachmentsService = inject(BimplusAttachmentsService);
9
11
  }
10
12
  deleteComment(commentId) {
@@ -52,8 +54,26 @@ export class BimplusObjectCommentsListService {
52
54
  return of(null); // Ensure the stream completes with null in case of an error
53
55
  }));
54
56
  }
57
+ decorateComment(comment) {
58
+ if (comment.attachmentLinks && comment.attachmentLinks.length > 0) {
59
+ const decoratedLinks = comment.attachmentLinks.map((link) => this.decorators.decorateLink(this.api, link, [comment.id]));
60
+ comment.attachmentLinks = decoratedLinks;
61
+ }
62
+ }
63
+ decorateComments(comments) {
64
+ comments.forEach((comment) => {
65
+ this.decorateComment(comment);
66
+ });
67
+ return comments;
68
+ }
55
69
  loadComments(objectId) {
56
- return from(this.api.objects.getComments(objectId));
70
+ return from(this.api.objects.getComments(objectId)).pipe(map((response) => {
71
+ if (!response) {
72
+ throw new Error('Comments response is undefined'); // Handle undefined response
73
+ }
74
+ // Modify the response here
75
+ return this.decorateComments(response);
76
+ }));
57
77
  }
58
78
  manageHyperLinks(createdCommentId, hyperlinks) {
59
79
  const hyperlinkPromises = [];
@@ -75,10 +95,10 @@ export class BimplusObjectCommentsListService {
75
95
  });
76
96
  return from(Promise.all(hyperlinkPromises));
77
97
  }
78
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: BimplusObjectCommentsListService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
98
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: BimplusObjectCommentsListService, deps: [{ token: i1.DecoratorsService }], target: i0.ɵɵFactoryTarget.Injectable }); }
79
99
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: BimplusObjectCommentsListService }); }
80
100
  }
81
101
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: BimplusObjectCommentsListService, decorators: [{
82
102
  type: Injectable
83
- }] });
84
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmltcGx1cy1vYmplY3QtY29tbWVudHMtbGlzdC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWJpbXBsdXMtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvYmltcGx1cy1vYmplY3QtY29tbWVudHMtbGlzdC9iaW1wbHVzLW9iamVjdC1jb21tZW50cy1saXN0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkQsT0FBTyxFQUFDLFVBQVUsRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFjLEVBQUUsRUFBRSxTQUFTLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDdkcsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sNkRBQTZELENBQUM7QUFFeEcsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0RBQW9ELENBQUM7O0FBR3pGLE1BQU0sT0FBTyxnQ0FBZ0M7SUFEN0M7UUFJbUIsOEJBQXlCLEdBQUcsTUFBTSxDQUFDLHlCQUF5QixDQUFDLENBQUM7S0FnR2hGO0lBOUZRLGFBQWEsQ0FBQyxTQUFpQjtRQUNwQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRU0sa0JBQWtCLENBQUMsVUFBc0I7UUFDOUMsTUFBTSxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsR0FBRyxVQUFVLENBQUM7UUFDcEMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNkLE9BQU87UUFDVCxDQUFDO1FBQ0QsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQztRQUNyQixNQUFNLElBQUksR0FBRyxHQUFH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LENBQUMsQ0FBQyxDQUFDO0lBQzlDLENBQUM7K0dBbEdVLGdDQUFnQzttSEFBaEMsZ0NBQWdDOzs0RkFBaEMsZ0NBQWdDO2tCQUQ1QyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCBXZWJTZGsgZnJvbSAnYmltcGx1cy13ZWJzZGsnO1xyXG5pbXBvcnQge2NhdGNoRXJyb3IsIGRlZmF1bHRJZkVtcHR5LCBmaXJzdCwgZm9ya0pvaW4sIGZyb20sIG1hcCwgT2JzZXJ2YWJsZSwgb2YsIHN3aXRjaE1hcH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEJpbXBsdXNBdHRhY2htZW50c1NlcnZpY2UgfSBmcm9tICcuLi9iaW1wbHVzLWF0dGFjaG1lbnRzL3NlcnZpY2VzL2JpbXBsdXMtYXR0YWNobWVudHMuc2VydmljZSc7XHJcbmltcG9ydCB7IEF0dGFjaG1lbnQgfSBmcm9tICcuLi9iaW1wbHVzLWF0dGFjaG1lbnRzL2JpbXBsdXMtYXR0YWNobWVudHMuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgcG9zdEF0dGFjaG1lbnRMaW5rcyB9IGZyb20gJy4uL2xpbmtzLXRvLWRvY3VtZW50cy9saW5rcy10by1kb2N1bWVudHMuY29tcG9uZW50JztcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIEJpbXBsdXNPYmplY3RDb21tZW50c0xpc3RTZXJ2aWNlIHtcclxuICBwdWJsaWMgYXBpITogV2ViU2RrLkFwaTtcclxuXHJcbiAgcHJpdmF0ZSByZWFkb25seSBiaW1wbHVzQXR0YWNobWVudHNTZXJ2aWNlID0gaW5qZWN0KEJpbXBsdXNBdHRhY2htZW50c1NlcnZpY2UpO1xyXG5cclxuICBwdWJsaWMgZGVsZXRlQ29tbWVudChjb21tZW50SWQ6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIGZyb20odGhpcy5hcGkuY29tbWVudHMuZGVsZXRlKGNvbW1lbnRJZCkpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGRvd25sb2FkQXR0YWNobWVudChhdHRhY2htZW50OiBBdHRhY2htZW50KSB7XHJcbiAgICBjb25zdCB7IGlkLCBmaWxlTmFtZSB9ID0gYXR0YWNobWVudDtcclxuICAgIGlmICghdGhpcy5hcGkpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29uc3QgYXBpID0gdGhpcy5hcGk7XHJcbiAgICBjb25zdCBwYXRoID0gYCR7YXBpLmdldEFwaVRlYW1VcmwoKX1hdHRhY2htZW50cy8ke2lkfS9kb3dubG9hZD9hcGktdG9rZW49JHthcGkuZ2V0QWNjZXNzVG9rZW4oKX0mb3BlbkluQnJvd3Nlcj10cnVlYDtcclxuICAgIHRoaXMuYmltcGx1c0F0dGFjaG1lbnRzU2VydmljZS5kb3dubG9hZChwYXRoLCBmaWxlTmFtZSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcG9zdENvbW1lbnRzKFxyXG4gICAgcm9vdE9iamVjdElkOiBzdHJpbmcsXHJcbiAgICBkYXRhVGV4dDogc3RyaW5nLFxyXG4gICAgaHlwZXJsaW5rczogUGFydGlhbDxXZWJTZGsuSHlwZXJsaW5rPltdLFxyXG4gICAgYXR0YWNobWVudHM6IEF0dGFjaG1lbnRbXSxcclxuICAgIG5ld0F0dGFjaG1lbnRJRHM6IHN0cmluZ1tdXHJcbiAgKTogT2JzZXJ2YWJsZTxzdHJpbmcgfCBudWxsPiB7XHJcbiAgICByZXR1cm4gZnJvbSh0aGlzLmFwaS5vYmplY3RzLnBvc3RDb21tZW50KHJvb3RPYmplY3RJZCwgZGF0YVRleHQpKS5waXBlKFxyXG4gICAgICBzd2l0Y2hNYXAoY3JlYXRlZENvbW1lbnQgPT4ge1xyXG4gICAgICAgIGNvbnN0IHsgaWQ6IGNyZWF0ZWRDb21tZW50SWQgfSA9IGNyZWF0ZWRDb21tZW50O1xyXG5cclxuICAgICAgICAvLyBDcmVhdGUgZm9ybSBkYXRhIGZvciBhdHRhY2htZW50c1xyXG4gICAgICAgIGNvbnN0IGZvcm1EYXRhID0gYXR0YWNobWVudHMubWFwKGF0dGFjaG1lbnQgPT4ge1xyXG4gICAgICAgICAgY29uc3QgYXR0YWNobWVudHNQYXlsb2FkID0gbmV3IEZvcm1EYXRhKCk7XHJcbiAgICAgICAgICBhdHRhY2htZW50c1BheWxvYWQuYXBwZW5kKCdmaWxlJywgYXR0YWNobWVudC5maWxlISk7XHJcbiAgICAgICAgICBhdHRhY2htZW50c1BheWxvYWQuYXBwZW5kKCduYW1lJywgYXR0YWNobWVudC5maWxlTmFtZSk7XHJcbiAgICAgICAgICBhdHRhY2htZW50c1BheWxvYWQuYXBwZW5kKCdzaXplJywgYXR0YWNobWVudC5maWxlIS5zaXplLnRvU3RyaW5nKCkpO1xyXG4gICAgICAgICAgYXR0YWNobWVudHNQYXlsb2FkLmFwcGVuZCgndHlwZScsIGF0dGFjaG1lbnQuZmlsZSEudHlwZSk7XHJcbiAgICAgICAgICBhdHRhY2htZW50c1BheWxvYWQuYXBwZW5kKCdvYmplY3RJZCcsIGNyZWF0ZWRDb21tZW50SWQpO1xyXG4gICAgICAgICAgcmV0dXJuIGF0dGFjaG1lbnRzUGF5bG9hZDtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgLy8gUG9zdCBhdHRhY2htZW50cyBpZiBhbnksIG90aGVyd2lzZSBjb250aW51ZVxyXG4gICAgICAgIGNvbnN0IGF0dGFjaG1lbnRDYWxscyA9IGZvcm1EYXRhLmxlbmd0aFxyXG4gICAgICAgICAgPyBmb3JrSm9pbihmb3JtRGF0YS5tYXAoZGF0YSA9PiBmcm9tKHRoaXMuYXBpLm9iamVjdHMucG9zdEF0dGFjaG1lbnQoY3JlYXRlZENvbW1lbnRJZCwgZGF0YSwgdW5kZWZpbmVkLCAnJykpKSlcclxuICAgICAgICAgIDogb2YoW10pO1xyXG5cclxuICAgICAgICByZXR1cm4gYXR0YWNobWVudENhbGxzLnBpcGUobWFwKCgpID0+IGNyZWF0ZWRDb21tZW50SWQpKTtcclxuICAgICAgfSksXHJcbiAgICAgIHN3aXRjaE1hcChjcmVhdGVkQ29tbWVudElkID0+IHtcclxuICAgICAgICAvLyBQb3N0IGF0dGFjaG1lbnQgbGlua3NcclxuICAgICAgICByZXR1cm4gbmV3QXR0YWNobWVudElEcy5sZW5ndGhcclxuICAgICAgICAgID8gcG9zdEF0dGFjaG1lbnRMaW5rcyhuZXdBdHRhY2htZW50SURzLCBjcmVhdGVkQ29tbWVudElkLCB0aGlzLmFwaSkucGlwZShtYXAoKCkgPT4gY3JlYXRlZENvbW1lbnRJZCkpXHJcbiAgICAgICAgICA6IG9mKGNyZWF0ZWRDb21tZW50SWQpO1xyXG4gICAgICB9KSxcclxuICAgICAgc3dpdGNoTWFwKGNyZWF0ZWRDb21tZW50SWQgPT4ge1xyXG4gICAgICAgIC8vIE1hbmFnZSBoeXBlcmxpbmtzXHJcbiAgICAgICAgcmV0dXJuIGh5cGVybGlua3MubGVuZ3RoXHJcbiAgICAgICAgICA/IHRoaXMubWFuYWdlSHlwZXJMaW5rcyhjcmVhdGVkQ29tbWVudElkLCBoeXBlcmxpbmtzKS5waXBlKG1hcCgoKSA9PiBjcmVhdGVkQ29tbWVudElkKSlcclxuICAgICAgICAgIDogb2YoY3JlYXRlZENvbW1lbnRJZCk7XHJcbiAgICAgIH0pLFxyXG4gICAgICBkZWZhdWx0SWZFbXB0eShudWxsKSxcclxuICAgICAgZmlyc3QoKSxcclxuICAgICAgY2F0Y2hFcnJvcihlcnJvciA9PiB7XHJcbiAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgaW4gcG9zdENvbW1lbnRzOicsIGVycm9yKTtcclxuICAgICAgICByZXR1cm4gb2YobnVsbCk7IC8vIEVuc3VyZSB0aGUgc3RyZWFtIGNvbXBsZXRlcyB3aXRoIG51bGwgaW4gY2FzZSBvZiBhbiBlcnJvclxyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBsb2FkQ29tbWVudHMob2JqZWN0SWQ6IHN0cmluZyk6IE9ic2VydmFibGU8V2ViU2RrLkNvbW1lbnRzUmVzcG9uc2U+IHtcclxuICAgIHJldHVybiBmcm9tKHRoaXMuYXBpLm9iamVjdHMuZ2V0Q29tbWVudHMob2JqZWN0SWQpKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBtYW5hZ2VIeXBlckxpbmtzKFxyXG4gICAgY3JlYXRlZENvbW1lbnRJZDogc3RyaW5nLFxyXG4gICAgaHlwZXJsaW5rczogUGFydGlhbDxXZWJTZGsuSHlwZXJsaW5rPltdXHJcbiAgKSB7XHJcbiAgICBjb25zdCBoeXBlcmxpbmtQcm9taXNlczogKFByb21pc2U8dm9pZCB8IFdlYlNkay5IeXBlcmxpbms+IHwgdW5kZWZpbmVkKVtdID1cclxuICAgICAgW107XHJcblxyXG4gICAgaHlwZXJsaW5rcy5mb3JFYWNoKChoKSA9PiB7XHJcbiAgICAgIGlmICghaCkge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICBjb25zdCBoeXBlcmxpbmtEYXRhID0gSlNPTi5zdHJpbmdpZnkoe1xyXG4gICAgICAgIG5hbWU6IGgubmFtZSxcclxuICAgICAgICBvYmplY3RJZDogaC5vYmplY3RJZCxcclxuICAgICAgICB1cmw6IGgudXJsXHJcbiAgICAgIH0pO1xyXG4gICAgICBjb25zdCBwcm9taXNlID0gdGhpcy5hcGk/Lm9iamVjdHNcclxuICAgICAgICAucG9zdEh5cGVybGluayhjcmVhdGVkQ29tbWVudElkLCBoeXBlcmxpbmtEYXRhKVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiB7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZyhlcnIpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICBoeXBlcmxpbmtQcm9taXNlcy5wdXNoKHByb21pc2UpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgcmV0dXJuIGZyb20oUHJvbWlzZS5hbGwoaHlwZXJsaW5rUHJvbWlzZXMpKTtcclxuICB9XHJcbn1cclxuIl19
103
+ }], ctorParameters: () => [{ type: i1.DecoratorsService }] });
104
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmltcGx1cy1vYmplY3QtY29tbWVudHMtbGlzdC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWJpbXBsdXMtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvYmltcGx1cy1vYmplY3QtY29tbWVudHMtbGlzdC9iaW1wbHVzLW9iamVjdC1jb21tZW50cy1saXN0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkQsT0FBTyxFQUFDLFVBQVUsRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFjLEVBQUUsRUFBRSxTQUFTLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDdkcsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sNkRBQTZELENBQUM7QUFFeEcsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0RBQW9ELENBQUM7OztBQUl6RixNQUFNLE9BQU8sZ0NBQWdDO0lBSzNDLFlBQ21CLFVBQTRCO1FBQTVCLGVBQVUsR0FBVixVQUFVLENBQWtCO1FBSDlCLDhCQUF5QixHQUFHLE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0lBSTVFLENBQUM7SUFHRyxhQUFhLENBQUMsU0FBaUI7UUFDcEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVNLGtCQUFrQixDQUFDLFVBQXNCO1FBQzlDLE1BQU0sRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLEdBQUcsVUFBVSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDZCxPQUFPO1FBQ1QsQ0FBQztRQUNELE1BQU0sR0FBRyxHQUFHLElB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Z3VsYXIvY29yZSc7XHJcbmltcG9ydCBXZWJTZGsgZnJvbSAnYmltcGx1cy13ZWJzZGsnO1xyXG5pbXBvcnQge2NhdGNoRXJyb3IsIGRlZmF1bHRJZkVtcHR5LCBmaXJzdCwgZm9ya0pvaW4sIGZyb20sIG1hcCwgT2JzZXJ2YWJsZSwgb2YsIHN3aXRjaE1hcH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEJpbXBsdXNBdHRhY2htZW50c1NlcnZpY2UgfSBmcm9tICcuLi9iaW1wbHVzLWF0dGFjaG1lbnRzL3NlcnZpY2VzL2JpbXBsdXMtYXR0YWNobWVudHMuc2VydmljZSc7XHJcbmltcG9ydCB7IEF0dGFjaG1lbnQgfSBmcm9tICcuLi9iaW1wbHVzLWF0dGFjaG1lbnRzL2JpbXBsdXMtYXR0YWNobWVudHMuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgcG9zdEF0dGFjaG1lbnRMaW5rcyB9IGZyb20gJy4uL2xpbmtzLXRvLWRvY3VtZW50cy9saW5rcy10by1kb2N1bWVudHMuY29tcG9uZW50JztcclxuaW1wb3J0IHtEZWNvcmF0b3JzU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2RlY29yYXRvcnMuc2VydmljZSc7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBCaW1wbHVzT2JqZWN0Q29tbWVudHNMaXN0U2VydmljZSB7XHJcbiAgcHVibGljIGFwaSE6IFdlYlNkay5BcGk7XHJcblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgYmltcGx1c0F0dGFjaG1lbnRzU2VydmljZSA9IGluamVjdChCaW1wbHVzQXR0YWNobWVudHNTZXJ2aWNlKTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRlY29yYXRvcnM6RGVjb3JhdG9yc1NlcnZpY2VcclxuICApIHt9XHJcblxyXG5cclxuICBwdWJsaWMgZGVsZXRlQ29tbWVudChjb21tZW50SWQ6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIGZyb20odGhpcy5hcGkuY29tbWVudHMuZGVsZXRlKGNvbW1lbnRJZCkpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGRvd25sb2FkQXR0YWNobWVudChhdHRhY2htZW50OiBBdHRhY2htZW50KSB7XHJcbiAgICBjb25zdCB7IGlkLCBmaWxlTmFtZSB9ID0gYXR0YWNobWVudDtcclxuICAgIGlmICghdGhpcy5hcGkpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29uc3QgYXBpID0gdGhpcy5hcGk7XHJcbiAgICBjb25zdCBwYXRoID0gYCR7YXBpLmdldEFwaVRlYW1VcmwoKX1hdHRhY2htZW50cy8ke2lkfS9kb3dubG9hZD9hcGktdG9rZW49JHthcGkuZ2V0QWNjZXNzVG9rZW4oKX0mb3BlbkluQnJvd3Nlcj10cnVlYDtcclxuICAgIHRoaXMuYmltcGx1c0F0dGFjaG1lbnRzU2VydmljZS5kb3dubG9hZChwYXRoLCBmaWxlTmFtZSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcG9zdENvbW1lbnRzKFxyXG4gICAgcm9vdE9iamVjdElkOiBzdHJpbmcsXHJcbiAgICBkYXRhVGV4dDogc3RyaW5nLFxyXG4gICAgaHlwZXJsaW5rczogUGFydGlhbDxXZWJTZGsuSHlwZXJsaW5rPltdLFxyXG4gICAgYXR0YWNobWVudHM6IEF0dGFjaG1lbnRbXSxcclxuICAgIG5ld0F0dGFjaG1lbnRJRHM6IHN0cmluZ1tdXHJcbiAgKTogT2JzZXJ2YWJsZTxzdHJpbmcgfCBudWxsPiB7XHJcbiAgICByZXR1cm4gZnJvbSh0aGlzLmFwaS5vYmplY3RzLnBvc3RDb21tZW50KHJvb3RPYmplY3RJZCwgZGF0YVRleHQpKS5waXBlKFxyXG4gICAgICBzd2l0Y2hNYXAoY3JlYXRlZENvbW1lbnQgPT4ge1xyXG4gICAgICAgIGNvbnN0IHsgaWQ6IGNyZWF0ZWRDb21tZW50SWQgfSA9IGNyZWF0ZWRDb21tZW50O1xyXG5cclxuICAgICAgICAvLyBDcmVhdGUgZm9ybSBkYXRhIGZvciBhdHRhY2htZW50c1xyXG4gICAgICAgIGNvbnN0IGZvcm1EYXRhID0gYXR0YWNobWVudHMubWFwKGF0dGFjaG1lbnQgPT4ge1xyXG4gICAgICAgICAgY29uc3QgYXR0YWNobWVudHNQYXlsb2FkID0gbmV3IEZvcm1EYXRhKCk7XHJcbiAgICAgICAgICBhdHRhY2htZW50c1BheWxvYWQuYXBwZW5kKCdmaWxlJywgYXR0YWNobWVudC5maWxlISk7XHJcbiAgICAgICAgICBhdHRhY2htZW50c1BheWxvYWQuYXBwZW5kKCduYW1lJywgYXR0YWNobWVudC5maWxlTmFtZSk7XHJcbiAgICAgICAgICBhdHRhY2htZW50c1BheWxvYWQuYXBwZW5kKCdzaXplJywgYXR0YWNobWVudC5maWxlIS5zaXplLnRvU3RyaW5nKCkpO1xyXG4gICAgICAgICAgYXR0YWNobWVudHNQYXlsb2FkLmFwcGVuZCgndHlwZScsIGF0dGFjaG1lbnQuZmlsZSEudHlwZSk7XHJcbiAgICAgICAgICBhdHRhY2htZW50c1BheWxvYWQuYXBwZW5kKCdvYmplY3RJZCcsIGNyZWF0ZWRDb21tZW50SWQpO1xyXG4gICAgICAgICAgcmV0dXJuIGF0dGFjaG1lbnRzUGF5bG9hZDtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgLy8gUG9zdCBhdHRhY2htZW50cyBpZiBhbnksIG90aGVyd2lzZSBjb250aW51ZVxyXG4gICAgICAgIGNvbnN0IGF0dGFjaG1lbnRDYWxscyA9IGZvcm1EYXRhLmxlbmd0aFxyXG4gICAgICAgICAgPyBmb3JrSm9pbihmb3JtRGF0YS5tYXAoZGF0YSA9PiBmcm9tKHRoaXMuYXBpLm9iamVjdHMucG9zdEF0dGFjaG1lbnQoY3JlYXRlZENvbW1lbnRJZCwgZGF0YSwgdW5kZWZpbmVkLCAnJykpKSlcclxuICAgICAgICAgIDogb2YoW10pO1xyXG5cclxuICAgICAgICByZXR1cm4gYXR0YWNobWVudENhbGxzLnBpcGUobWFwKCgpID0+IGNyZWF0ZWRDb21tZW50SWQpKTtcclxuICAgICAgfSksXHJcbiAgICAgIHN3aXRjaE1hcChjcmVhdGVkQ29tbWVudElkID0+IHtcclxuICAgICAgICAvLyBQb3N0IGF0dGFjaG1lbnQgbGlua3NcclxuICAgICAgICByZXR1cm4gbmV3QXR0YWNobWVudElEcy5sZW5ndGhcclxuICAgICAgICAgID8gcG9zdEF0dGFjaG1lbnRMaW5rcyhuZXdBdHRhY2htZW50SURzLCBjcmVhdGVkQ29tbWVudElkLCB0aGlzLmFwaSkucGlwZShtYXAoKCkgPT4gY3JlYXRlZENvbW1lbnRJZCkpXHJcbiAgICAgICAgICA6IG9mKGNyZWF0ZWRDb21tZW50SWQpO1xyXG4gICAgICB9KSxcclxuICAgICAgc3dpdGNoTWFwKGNyZWF0ZWRDb21tZW50SWQgPT4ge1xyXG4gICAgICAgIC8vIE1hbmFnZSBoeXBlcmxpbmtzXHJcbiAgICAgICAgcmV0dXJuIGh5cGVybGlua3MubGVuZ3RoXHJcbiAgICAgICAgICA/IHRoaXMubWFuYWdlSHlwZXJMaW5rcyhjcmVhdGVkQ29tbWVudElkLCBoeXBlcmxpbmtzKS5waXBlKG1hcCgoKSA9PiBjcmVhdGVkQ29tbWVudElkKSlcclxuICAgICAgICAgIDogb2YoY3JlYXRlZENvbW1lbnRJZCk7XHJcbiAgICAgIH0pLFxyXG4gICAgICBkZWZhdWx0SWZFbXB0eShudWxsKSxcclxuICAgICAgZmlyc3QoKSxcclxuICAgICAgY2F0Y2hFcnJvcihlcnJvciA9PiB7XHJcbiAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgaW4gcG9zdENvbW1lbnRzOicsIGVycm9yKTtcclxuICAgICAgICByZXR1cm4gb2YobnVsbCk7IC8vIEVuc3VyZSB0aGUgc3RyZWFtIGNvbXBsZXRlcyB3aXRoIG51bGwgaW4gY2FzZSBvZiBhbiBlcnJvclxyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcbiAgcHJpdmF0ZSBkZWNvcmF0ZUNvbW1lbnQoY29tbWVudDogV2ViU2RrLkNvbW1lbnRSZXNwb25zZSkge1xyXG4gICAgaWYoY29tbWVudC5hdHRhY2htZW50TGlua3MgJiYgY29tbWVudC5hdHRhY2htZW50TGlua3MubGVuZ3RoID4gMCkge1xyXG4gICAgICBjb25zdCBkZWNvcmF0ZWRMaW5rcyA9IGNvbW1lbnQuYXR0YWNobWVudExpbmtzLm1hcCgobGluaykgPT4gdGhpcy5kZWNvcmF0b3JzLmRlY29yYXRlTGluayh0aGlzLmFwaSEsbGluaywgW2NvbW1lbnQuaWRdKSk7ICAgICAgXHJcbiAgICAgIGNvbW1lbnQuYXR0YWNobWVudExpbmtzID0gZGVjb3JhdGVkTGlua3M7ICAgICAgICBcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgZGVjb3JhdGVDb21tZW50cyhjb21tZW50czogV2ViU2RrLkNvbW1lbnRzUmVzcG9uc2UpIHsgICAgXHJcbiAgICBjb21tZW50cy5mb3JFYWNoKChjb21tZW50KSA9PiB7XHJcbiAgICAgIHRoaXMuZGVjb3JhdGVDb21tZW50KGNvbW1lbnQpO1xyXG4gICAgIH0pO1xyXG4gICAgcmV0dXJuIGNvbW1lbnRzO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGxvYWRDb21tZW50cyhvYmplY3RJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxXZWJTZGsuQ29tbWVudHNSZXNwb25zZT4ge1xyXG4gICAgcmV0dXJuIGZyb20odGhpcy5hcGkub2JqZWN0cy5nZXRDb21tZW50cyhvYmplY3RJZCkpLnBpcGUoXHJcbiAgICAgIG1hcCgocmVzcG9uc2U6IFdlYlNkay5Db21tZW50c1Jlc3BvbnNlIHwgdW5kZWZpbmVkKSA9PiB7XHJcbiAgICAgICAgaWYgKCFyZXNwb25zZSkge1xyXG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdDb21tZW50cyByZXNwb25zZSBpcyB1bmRlZmluZWQnKTsgLy8gSGFuZGxlIHVuZGVmaW5lZCByZXNwb25zZVxyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBNb2RpZnkgdGhlIHJlc3BvbnNlIGhlcmVcclxuICAgICAgICByZXR1cm4gIHRoaXMuZGVjb3JhdGVDb21tZW50cyhyZXNwb25zZSEpOyAgICAgICAgXHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG1hbmFnZUh5cGVyTGlua3MoXHJcbiAgICBjcmVhdGVkQ29tbWVudElkOiBzdHJpbmcsXHJcbiAgICBoeXBlcmxpbmtzOiBQYXJ0aWFsPFdlYlNkay5IeXBlcmxpbms+W11cclxuICApIHtcclxuICAgIGNvbnN0IGh5cGVybGlua1Byb21pc2VzOiAoUHJvbWlzZTx2b2lkIHwgV2ViU2RrLkh5cGVybGluaz4gfCB1bmRlZmluZWQpW10gPVxyXG4gICAgICBbXTtcclxuXHJcbiAgICBoeXBlcmxpbmtzLmZvckVhY2goKGgpID0+IHtcclxuICAgICAgaWYgKCFoKSB7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IGh5cGVybGlua0RhdGEgPSBKU09OLnN0cmluZ2lmeSh7XHJcbiAgICAgICAgbmFtZTogaC5uYW1lLFxyXG4gICAgICAgIG9iamVjdElkOiBoLm9iamVjdElkLFxyXG4gICAgICAgIHVybDogaC51cmxcclxuICAgICAgfSk7XHJcbiAgICAgIGNvbnN0IHByb21pc2UgPSB0aGlzLmFwaT8ub2JqZWN0c1xyXG4gICAgICAgIC5wb3N0SHlwZXJsaW5rKGNyZWF0ZWRDb21tZW50SWQsIGh5cGVybGlua0RhdGEpXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IHtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKGVycik7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIGh5cGVybGlua1Byb21pc2VzLnB1c2gocHJvbWlzZSk7XHJcbiAgICB9KTtcclxuXHJcbiAgICByZXR1cm4gZnJvbShQcm9taXNlLmFsbChoeXBlcmxpbmtQcm9taXNlcykpO1xyXG4gIH1cclxufVxyXG4iXX0=