atr-components 0.2.419 → 0.2.421
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/shared/table/table-td/table-td.component.mjs +5 -4
- package/esm2020/lib/shared/table/table.component.mjs +4 -1
- package/fesm2015/atr-components.mjs +7 -3
- package/fesm2015/atr-components.mjs.map +1 -1
- package/fesm2020/atr-components.mjs +7 -3
- package/fesm2020/atr-components.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -41,6 +41,7 @@ export class TableTdComponent {
|
|
|
41
41
|
return style;
|
|
42
42
|
}
|
|
43
43
|
doActionSwitch(data, code, event, index) {
|
|
44
|
+
console.log('doActionSwitch', data, code, event, index);
|
|
44
45
|
this.doActionByRowAction.emit({ data: data, code: code, event: event, index: index });
|
|
45
46
|
}
|
|
46
47
|
getValue(data) {
|
|
@@ -108,7 +109,7 @@ export class TableTdComponent {
|
|
|
108
109
|
}
|
|
109
110
|
checkIsShowBase(op, data) {
|
|
110
111
|
let isShow = false;
|
|
111
|
-
if (op.length > 1) {
|
|
112
|
+
if (op.length > 1 && data) {
|
|
112
113
|
let value = data[op[0]];
|
|
113
114
|
isShow = this.compare(value, op[1], op[2]);
|
|
114
115
|
}
|
|
@@ -149,10 +150,10 @@ export class TableTdComponent {
|
|
|
149
150
|
}
|
|
150
151
|
}
|
|
151
152
|
TableTdComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TableTdComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
152
|
-
TableTdComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: TableTdComponent, selector: "app-table-td", inputs: { data: "data", item: "item", i: "i" }, outputs: { doActionByRowAction: "doActionByRowAction" }, ngImport: i0, template: "<ng-container [ngSwitch]=\"item.type\">\r\n\r\n <ng-container *ngSwitchCase=\"'innerHtml'\">\r\n <div [ngStyle]=\"getStyleCallBack(item,data)\" [innerHTML]=\"item.innerHtmlBack(value | defVal:item.defaultVal,data) | safeHtml\" ></div>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'textcolor'\">\r\n <div [innerHTML]=\"value | defVal:item.defaultVal\" [ngStyle]=\"{'color':item.color}\"\r\n *ngIf=\"item.colorShow == value\"></div>\r\n <div [innerHTML]=\"value | defVal:item.defaultVal\" *ngIf=\"item.colorShow != value\"></div>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'date'\">\r\n <span nz-popover (mouseenter)=\"enter($event)\"\r\n [nzPopoverTrigger]=\"popoverTrigger\"\r\n [ngStyle]=\"getStyleCallBack(item,data)\"\r\n [nzPopoverContent]=\"value | date:'yyyy-MM-dd' | defVal:item.defaultVal\"\r\n class=\"view-text\">{{ value | date:'yyyy-MM-dd' | defVal:item.defaultVal}}</span>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'dateTime'\">\r\n <span nz-popover (mouseenter)=\"enter($event)\"\r\n [nzPopoverTrigger]=\"popoverTrigger\"\r\n [ngStyle]=\"getStyleCallBack(item,data)\"\r\n [nzPopoverContent]=\"value | date:'yyyy-MM-dd HH:mm:ss' | defVal:item.defaultVal\"\r\n class=\"view-text\"> {{ value | date:'yyyy-MM-dd HH:mm:ss' | defVal:item.defaultVal}}</span>\r\n </ng-container>\r\n <nz-switch *ngSwitchCase=\"'switch'\" [(ngModel)]=\"value\" [nzDisabled]=\"item.disabled\"\r\n [ngStyle]=\"getStyleCallBack(item,data)\"\r\n (ngModelChange)=\"doActionSwitch(data,item.key)\" nzCheckedChildren=\"\u662F\" nzUnCheckedChildren=\"\u5426\">\r\n </nz-switch>\r\n <ng-container *ngSwitchCase=\"'sDateTime'\">\r\n <span nz-popover (mouseenter)=\"enter($event)\"\r\n [nzPopoverTrigger]=\"popoverTrigger\" [ngStyle]=\"getStyleCallBack(item,data)\"\r\n [nzPopoverContent]=\"value | date:'MM-dd HH:mm' | defVal:item.defaultVal\"\r\n class=\"view-text\"> {{ value | date:'MM-dd HH:mm' | defVal:item.defaultVal}}</span>\r\n </ng-container>\r\n <div *ngSwitchCase=\"'fixedText'\" [ngStyle]=\"getStyleCallBack(item,data)\" [innerHTML]=\"item.key\"></div>\r\n\r\n <img *ngSwitchCase=\"'image'\" [ngStyle]=\"getStyleCallBack(item,data)\" width=\"35px\" nzSrc=\"{{(value | defVal:item.defaultVal) | ossImg}}\"\r\n nz-image atrErrorImg/>\r\n <div nz-row *ngSwitchCase=\"'action'\">\r\n <div class=\"action-area\" nz-col [nzSpan]=\"24\">\r\n <ng-container *ngFor=\"let action of item.actions\">\r\n <ng-container *ngIf=\"isShowBtn(data,action.operator,action)\">\r\n <ng-container *ngIf=\"!action.withoutRole\">\r\n <button nz-button\r\n [nzType]=\"action.buttonType&&action.buttonType != 'danger'? action.buttonType : 'primary'\"\r\n [nzDanger]=\"action.buttonType == 'danger'\"\r\n nzSize=\"small\" *atrRole=\"action.code\"\r\n (click)=\"doActionByRow(data,action.code,$event,i)\">\r\n <i nz-icon *ngIf=\"action.icon\" [nzType]=\"action.icon\"></i>\r\n {{action.name}}</button>\r\n </ng-container>\r\n <ng-container *ngIf=\"action.withoutRole\">\r\n <button nz-button\r\n [nzType]=\"action.buttonType&&action.buttonType != 'danger'? action.buttonType : 'primary'\"\r\n [nzDanger]=\"action.buttonType == 'danger'\"\r\n nzSize=\"small\" (click)=\"doActionByRow(data,action.code,$event,i)\">\r\n <i nz-icon *ngIf=\"action.icon\" [nzType]=\"action.icon\"></i>\r\n {{action.name}}</button>\r\n </ng-container>\r\n <!-- <button nz-button [nzType]=\"'primary'\" nzSize=\"small\" *atrRole=\"action.code\" (click)=\"doActionByRow(data,action.code,$event)\">{{action.name\r\n }}</button> -->\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n </div>\r\n <div [ngStyle]=\"getStyleCallBack(item,data)\" *ngSwitchCase=\"'dict'\" [innerHTML]=\"value | dicts:item.dictCode:',' | async | defVal:item.defaultVal\"></div>\r\n <div [ngStyle]=\"getStyleCallBack(item,data)\" nz-popover (mouseenter)=\"enter($event)\"\r\n [nzPopoverTrigger]=\"popoverTrigger\" [nzPopoverContent]='value | defVal:item.defaultVal'\r\n class=\"view-text\" *ngSwitchDefault [innerHTML]=\"value | defVal:item.defaultVal\"></div>\r\n</ng-container>\r\n\r\n", styles: [":host{cursor:default}:host .view-text{display:inline-block;white-space:nowrap;width:100%;overflow:hidden;text-overflow:ellipsis}\n", ":host{width:100%;height:100%;display:flex;flex-direction:column}:host ::ng-deep .ant-modal{top:50px;padding:0}:host .ant-advanced-search-form{padding:10px 6px 6px;background:#fbfbfb;border:1px solid #d9d9d9;border-radius:6px;margin-bottom:5px}:host .select-icon:hover{color:#1890ff}:host ::ng-deep .ant-advanced-search-form .ant-form-item{margin-bottom:5px}:host ::ng-deep .ant-table-column-title{font-size:.65rem}:host ::ng-deep .ant-table-tbody>tr.ant-table-row:hover>td{background:#d0eeea}:host ::ng-deep .ant-modal-header,:host ::ng-deep .ant-modal-content{border-radius:4px}:host ::ng-deep .ant-table-tbody>tr.selected:hover>td{background-color:#cfe1d0!important}:host ::ng-deep .ant-table{height:100%}:host ::ng-deep nz-pagination{position:absolute;bottom:0;right:0}:host .search-result-list{padding:1px;border:1px dashed #e9e9e9;border-radius:6px;background-color:#fff;flex:1;text-align:center;position:relative}:host [nz-form-label]{overflow:visible}:host button{margin:2px 4px}:host .collapse{margin-left:6px;font-size:12px}:host .action-area{text-align:left}:host .search-area{text-align:right}:host ::ng-deep .main-table{position:absolute;inset:0}:host ::ng-deep .main-table .ant-spin-nested-loading{height:100%}:host ::ng-deep .main-table .ant-spin-container{height:100%}:host ::ng-deep .ant-table-tbody>tr.selected>td{background-color:#cfe1d0}:host ::ng-deep .ant-table-tbody>tr>td>img{display:block;width:40%;margin:0 auto}:host ::ng-deep .ant-table-body{-ms-overflow-style:none;overflow:-moz-scrollbars-none}:host ::ng-deep .ant-table-body::-webkit-scrollbar,:host ::ng-deep .ant-table-header::-webkit-scrollbar{width:6px!important;height:6px!important}:host ::ng-deep .ant-table-body::-webkit-scrollbar-track,:host ::ng-deep .ant-table-header::-webkit-scrollbar-track{width:6px!important;cursor:pointer}:host ::ng-deep .ant-table-body::-webkit-scrollbar-thumb,:host ::ng-deep .ant-table-header::-webkit-scrollbar-thumb{background:#1890ff;border-radius:3px;cursor:pointer}:host ::ng-deep .ant-table-bordered .ant-table-thead>tr>th{border-right:1px solid #ddd}:host ::ng-deep .ant-table-header{-ms-overflow-style:none;overflow:-moz-scrollbars-none;margin-bottom:-5px!important}:host ::ng-deep .ant-table-placeholder{border-bottom:none!important;border-top:none!important}:host .tabel-colunmn{display:block;width:160px;height:300px;background:#fff;border:1px solid #ddd;padding:10px;border-radius:5px;overflow-x:hidden;overflow-y:auto;position:relative}:host .tabel-colunmn-header{position:fixed;top:0;left:0;right:0;height:30px;z-index:999;line-height:30px;border-bottom:1px solid #ddd;text-align:left;font-size:13px;padding-left:10px}:host .t-tr{background:#fff}:host .t-tr:nth-child(odd){background:#f8f9fa}:host ::ng-deep .ant-table-thead>tr>th{background:#e7ebef!important;border-radius:0;word-break:break-all;white-space:pre-wrap}:host ::ng-deep .ant-table-tbody>tr>td{word-break:break-all;white-space:pre-wrap}:host ::ng-deep .ant-table-header{background:#e7ebef!important}:host td{font-size:.65rem}:host .resize-trigger{height:100%}:host .nz-resizable-preview{border-width:0;border-right-width:1px}:host ::ng-deep .ant-table-thead>tr>th .ant-table-header-column .ant-table-column-sorters>:not(.ant-table-column-sorter){position:unset}:host ::ng-deep .ant-table-tbody>tr>td{padding:5px}:host ::ng-deep .ant-table{line-height:15px}:host ::ng-deep .ant-table-middle .ant-table-footer,:host .ant-table-middle .ant-table-tbody>tr>td,:host .ant-table-middle .ant-table-thead>tr>th,:host .ant-table-middle .ant-table-title{padding:5px}:host ::ng-deep .ant-table-tbody>tr>td>img{width:35px}:host ::ng-deep .ant-modal-body{padding:10px}:host ::ng-deep .ant-table.ant-table-bordered tbody>tr>td{font-size:13px}:host ::ng-deep th{z-index:80!important}:host .left-zindex-header{z-index:90!important}:host .left-zindex{z-index:80!important}:host ::ng-deep input,:host ::ng-deep .ant-select-single:not(.ant-select-customize-input) .ant-select-selector,:host ::ng-deep .ant-picker{border-radius:5px}:host .border-text{width:100%;height:36px;line-height:36px;display:flex}:host .border-text .border-text-line{display:inline-block;border-top:1px solid #cccccc;margin-top:18px}:host .border-text .border-text-line-left{width:10px;border-left:1px solid #cccccc}:host .border-text .border-text-line-right{flex:1;border-right:1px solid #cccccc}:host .border-text .border-text-span{margin-left:5px;margin-right:5px}:host ::ng-deep .tabel-colunmn-header{position:absolute!important;top:0!important}:host ::ng-deep .ant-table-cell-fix-left,:host .ant-table-cell-fix-right{position:sticky!important}.label-title{position:absolute;display:block;top:-7px;left:10px;background-color:#fff;color:#000;font-weight:600;font-size:12px;line-height:12px}\n"], components: [{ type: i1.NzSwitchComponent, selector: "nz-switch", inputs: ["nzLoading", "nzDisabled", "nzControl", "nzCheckedChildren", "nzUnCheckedChildren", "nzSize", "nzId"], exportAs: ["nzSwitch"] }, { type: i2.NzButtonComponent, selector: "button[nz-button], a[nz-button]", inputs: ["nzBlock", "nzGhost", "nzSearch", "nzLoading", "nzDanger", "disabled", "tabIndex", "nzType", "nzShape", "nzSize"], exportAs: ["nzButton"] }], directives: [{ type: i3.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i3.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NzPopoverDirective, selector: "[nz-popover]", inputs: ["nzPopoverArrowPointAtCenter", "nzPopoverTitle", "nzPopoverContent", "nz-popover", "nzPopoverTrigger", "nzPopoverPlacement", "nzPopoverOrigin", "nzPopoverVisible", "nzPopoverMouseEnterDelay", "nzPopoverMouseLeaveDelay", "nzPopoverOverlayClassName", "nzPopoverOverlayStyle", "nzPopoverBackdrop"], outputs: ["nzPopoverVisibleChange"], exportAs: ["nzPopover"] }, { type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i6.NzImageDirective, selector: "img[nz-image]", inputs: ["nzSrc", "nzSrcset", "nzDisablePreview", "nzFallback", "nzPlaceholder"], exportAs: ["nzImage"] }, { type: i7.AtrErrorImgDirective, selector: "[atrErrorImg]", inputs: ["atrErrorImg"] }, { type: i8.NzRowDirective, selector: "[nz-row],nz-row,nz-form-item", inputs: ["nzAlign", "nzJustify", "nzGutter"], exportAs: ["nzRow"] }, { type: i8.NzColDirective, selector: "[nz-col],nz-col,nz-form-control,nz-form-label", inputs: ["nzFlex", "nzSpan", "nzOrder", "nzOffset", "nzPush", "nzPull", "nzXs", "nzSm", "nzMd", "nzLg", "nzXl", "nzXXl"], exportAs: ["nzCol"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i9.AtrRoleDirective, selector: "[atrRole]", inputs: ["atrRole"] }, { type: i10.NzWaveDirective, selector: "[nz-wave],button[nz-button]:not([nzType=\"link\"]):not([nzType=\"text\"])", inputs: ["nzWaveExtraNode"], exportAs: ["nzWave"] }, { type: i11.ɵNzTransitionPatchDirective, selector: "[nz-button], nz-button-group, [nz-icon], [nz-menu-item], [nz-submenu], nz-select-top-control, nz-select-placeholder, nz-input-group", inputs: ["hidden"] }, { type: i12.NzIconDirective, selector: "[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }, { type: i3.NgSwitchDefault, selector: "[ngSwitchDefault]" }], pipes: { "safeHtml": i13.SafeHtmlPipe, "defVal": i14.DefaultValPipe, "date": i3.DatePipe, "ossImg": i15.OssImgPipe, "async": i3.AsyncPipe, "dicts": i16.DictsPipe } });
|
|
153
|
+
TableTdComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: TableTdComponent, selector: "app-table-td", inputs: { data: "data", item: "item", i: "i" }, outputs: { doActionByRowAction: "doActionByRowAction" }, ngImport: i0, template: "<ng-container [ngSwitch]=\"item.type\">\r\n\r\n <ng-container *ngSwitchCase=\"'innerHtml'\">\r\n <div [ngStyle]=\"getStyleCallBack(item,result)\" [innerHTML]=\"item.innerHtmlBack(value | defVal:item.defaultVal,result) | safeHtml\" ></div>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'textcolor'\">\r\n <div [innerHTML]=\"value | defVal:item.defaultVal\" [ngStyle]=\"{'color':item.color}\"\r\n *ngIf=\"item.colorShow == value\"></div>\r\n <div [innerHTML]=\"value | defVal:item.defaultVal\" *ngIf=\"item.colorShow != value\"></div>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'date'\">\r\n <span nz-popover (mouseenter)=\"enter($event)\"\r\n [nzPopoverTrigger]=\"popoverTrigger\"\r\n [ngStyle]=\"getStyleCallBack(item,result)\"\r\n [nzPopoverContent]=\"value | date:'yyyy-MM-dd' | defVal:item.defaultVal\"\r\n class=\"view-text\">{{ value | date:'yyyy-MM-dd' | defVal:item.defaultVal}}</span>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'dateTime'\">\r\n <span nz-popover (mouseenter)=\"enter($event)\"\r\n [nzPopoverTrigger]=\"popoverTrigger\"\r\n [ngStyle]=\"getStyleCallBack(item,result)\"\r\n [nzPopoverContent]=\"value | date:'yyyy-MM-dd HH:mm:ss' | defVal:item.defaultVal\"\r\n class=\"view-text\"> {{ value | date:'yyyy-MM-dd HH:mm:ss' | defVal:item.defaultVal}}</span>\r\n </ng-container>\r\n <nz-switch *ngSwitchCase=\"'switch'\" [(ngModel)]=\"value\" [nzDisabled]=\"item.disabled\"\r\n [ngStyle]=\"getStyleCallBack(item,result)\"\r\n (ngModelChange)=\"doActionSwitch(result,item.key)\" nzCheckedChildren=\"\u662F\" nzUnCheckedChildren=\"\u5426\">\r\n </nz-switch>\r\n <ng-container *ngSwitchCase=\"'sDateTime'\">\r\n <span nz-popover (mouseenter)=\"enter($event)\"\r\n [nzPopoverTrigger]=\"popoverTrigger\" [ngStyle]=\"getStyleCallBack(item,result)\"\r\n [nzPopoverContent]=\"value | date:'MM-dd HH:mm' | defVal:item.defaultVal\"\r\n class=\"view-text\"> {{ value | date:'MM-dd HH:mm' | defVal:item.defaultVal}}</span>\r\n </ng-container>\r\n <div *ngSwitchCase=\"'fixedText'\" [ngStyle]=\"getStyleCallBack(item,result)\" [innerHTML]=\"item.key\"></div>\r\n\r\n <img *ngSwitchCase=\"'image'\" [ngStyle]=\"getStyleCallBack(item,result)\" width=\"35px\" nzSrc=\"{{(value | defVal:item.defaultVal) | ossImg}}\"\r\n nz-image atrErrorImg/>\r\n <div nz-row *ngSwitchCase=\"'action'\">\r\n <div class=\"action-area\" nz-col [nzSpan]=\"24\">\r\n <ng-container *ngFor=\"let action of item.actions\">\r\n <ng-container *ngIf=\"isShowBtn(result,action.operator,action)\">\r\n <ng-container *ngIf=\"!action.withoutRole\">\r\n <button nz-button\r\n [nzType]=\"action.buttonType&&action.buttonType != 'danger'? action.buttonType : 'primary'\"\r\n [nzDanger]=\"action.buttonType == 'danger'\"\r\n nzSize=\"small\" *atrRole=\"action.code\"\r\n (click)=\"doActionByRow(result,action.code,$event,i)\">\r\n <i nz-icon *ngIf=\"action.icon\" [nzType]=\"action.icon\"></i>\r\n {{action.name}}</button>\r\n </ng-container>\r\n <ng-container *ngIf=\"action.withoutRole\">\r\n <button nz-button\r\n [nzType]=\"action.buttonType&&action.buttonType != 'danger'? action.buttonType : 'primary'\"\r\n [nzDanger]=\"action.buttonType == 'danger'\"\r\n nzSize=\"small\" (click)=\"doActionByRow(result,action.code,$event,i)\">\r\n <i nz-icon *ngIf=\"action.icon\" [nzType]=\"action.icon\"></i>\r\n {{action.name}}</button>\r\n </ng-container>\r\n <!-- <button nz-button [nzType]=\"'primary'\" nzSize=\"small\" *atrRole=\"action.code\" (click)=\"doActionByRow(result,action.code,$event)\">{{action.name\r\n }}</button> -->\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n </div>\r\n <div [ngStyle]=\"getStyleCallBack(item,result)\" *ngSwitchCase=\"'dict'\" [innerHTML]=\"value | dicts:item.dictCode:',' | async | defVal:item.defaultVal\"></div>\r\n <div [ngStyle]=\"getStyleCallBack(item,result)\" nz-popover (mouseenter)=\"enter($event)\"\r\n [nzPopoverTrigger]=\"popoverTrigger\" [nzPopoverContent]='value | defVal:item.defaultVal'\r\n class=\"view-text\" *ngSwitchDefault [innerHTML]=\"value | defVal:item.defaultVal\"></div>\r\n</ng-container>\r\n\r\n", styles: [":host{cursor:default}:host .view-text{display:inline-block;white-space:nowrap;width:100%;overflow:hidden;text-overflow:ellipsis}\n", ":host{width:100%;height:100%;display:flex;flex-direction:column}:host ::ng-deep .ant-modal{top:50px;padding:0}:host .ant-advanced-search-form{padding:10px 6px 6px;background:#fbfbfb;border:1px solid #d9d9d9;border-radius:6px;margin-bottom:5px}:host .select-icon:hover{color:#1890ff}:host ::ng-deep .ant-advanced-search-form .ant-form-item{margin-bottom:5px}:host ::ng-deep .ant-table-column-title{font-size:.65rem}:host ::ng-deep .ant-table-tbody>tr.ant-table-row:hover>td{background:#d0eeea}:host ::ng-deep .ant-modal-header,:host ::ng-deep .ant-modal-content{border-radius:4px}:host ::ng-deep .ant-table-tbody>tr.selected:hover>td{background-color:#cfe1d0!important}:host ::ng-deep .ant-table{height:100%}:host ::ng-deep nz-pagination{position:absolute;bottom:0;right:0}:host .search-result-list{padding:1px;border:1px dashed #e9e9e9;border-radius:6px;background-color:#fff;flex:1;text-align:center;position:relative}:host [nz-form-label]{overflow:visible}:host button{margin:2px 4px}:host .collapse{margin-left:6px;font-size:12px}:host .action-area{text-align:left}:host .search-area{text-align:right}:host ::ng-deep .main-table{position:absolute;inset:0}:host ::ng-deep .main-table .ant-spin-nested-loading{height:100%}:host ::ng-deep .main-table .ant-spin-container{height:100%}:host ::ng-deep .ant-table-tbody>tr.selected>td{background-color:#cfe1d0}:host ::ng-deep .ant-table-tbody>tr>td>img{display:block;width:40%;margin:0 auto}:host ::ng-deep .ant-table-body{-ms-overflow-style:none;overflow:-moz-scrollbars-none}:host ::ng-deep .ant-table-body::-webkit-scrollbar,:host ::ng-deep .ant-table-header::-webkit-scrollbar{width:6px!important;height:6px!important}:host ::ng-deep .ant-table-body::-webkit-scrollbar-track,:host ::ng-deep .ant-table-header::-webkit-scrollbar-track{width:6px!important;cursor:pointer}:host ::ng-deep .ant-table-body::-webkit-scrollbar-thumb,:host ::ng-deep .ant-table-header::-webkit-scrollbar-thumb{background:#1890ff;border-radius:3px;cursor:pointer}:host ::ng-deep .ant-table-bordered .ant-table-thead>tr>th{border-right:1px solid #ddd}:host ::ng-deep .ant-table-header{-ms-overflow-style:none;overflow:-moz-scrollbars-none;margin-bottom:-5px!important}:host ::ng-deep .ant-table-placeholder{border-bottom:none!important;border-top:none!important}:host .tabel-colunmn{display:block;width:160px;height:300px;background:#fff;border:1px solid #ddd;padding:10px;border-radius:5px;overflow-x:hidden;overflow-y:auto;position:relative}:host .tabel-colunmn-header{position:fixed;top:0;left:0;right:0;height:30px;z-index:999;line-height:30px;border-bottom:1px solid #ddd;text-align:left;font-size:13px;padding-left:10px}:host .t-tr{background:#fff}:host .t-tr:nth-child(odd){background:#f8f9fa}:host ::ng-deep .ant-table-thead>tr>th{background:#e7ebef!important;border-radius:0;word-break:break-all;white-space:pre-wrap}:host ::ng-deep .ant-table-tbody>tr>td{word-break:break-all;white-space:pre-wrap}:host ::ng-deep .ant-table-header{background:#e7ebef!important}:host td{font-size:.65rem}:host .resize-trigger{height:100%}:host .nz-resizable-preview{border-width:0;border-right-width:1px}:host ::ng-deep .ant-table-thead>tr>th .ant-table-header-column .ant-table-column-sorters>:not(.ant-table-column-sorter){position:unset}:host ::ng-deep .ant-table-tbody>tr>td{padding:5px}:host ::ng-deep .ant-table{line-height:15px}:host ::ng-deep .ant-table-middle .ant-table-footer,:host .ant-table-middle .ant-table-tbody>tr>td,:host .ant-table-middle .ant-table-thead>tr>th,:host .ant-table-middle .ant-table-title{padding:5px}:host ::ng-deep .ant-table-tbody>tr>td>img{width:35px}:host ::ng-deep .ant-modal-body{padding:10px}:host ::ng-deep .ant-table.ant-table-bordered tbody>tr>td{font-size:13px}:host ::ng-deep th{z-index:80!important}:host .left-zindex-header{z-index:90!important}:host .left-zindex{z-index:80!important}:host ::ng-deep input,:host ::ng-deep .ant-select-single:not(.ant-select-customize-input) .ant-select-selector,:host ::ng-deep .ant-picker{border-radius:5px}:host .border-text{width:100%;height:36px;line-height:36px;display:flex}:host .border-text .border-text-line{display:inline-block;border-top:1px solid #cccccc;margin-top:18px}:host .border-text .border-text-line-left{width:10px;border-left:1px solid #cccccc}:host .border-text .border-text-line-right{flex:1;border-right:1px solid #cccccc}:host .border-text .border-text-span{margin-left:5px;margin-right:5px}:host ::ng-deep .tabel-colunmn-header{position:absolute!important;top:0!important}:host ::ng-deep .ant-table-cell-fix-left,:host .ant-table-cell-fix-right{position:sticky!important}.label-title{position:absolute;display:block;top:-7px;left:10px;background-color:#fff;color:#000;font-weight:600;font-size:12px;line-height:12px}\n"], components: [{ type: i1.NzSwitchComponent, selector: "nz-switch", inputs: ["nzLoading", "nzDisabled", "nzControl", "nzCheckedChildren", "nzUnCheckedChildren", "nzSize", "nzId"], exportAs: ["nzSwitch"] }, { type: i2.NzButtonComponent, selector: "button[nz-button], a[nz-button]", inputs: ["nzBlock", "nzGhost", "nzSearch", "nzLoading", "nzDanger", "disabled", "tabIndex", "nzType", "nzShape", "nzSize"], exportAs: ["nzButton"] }], directives: [{ type: i3.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i3.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NzPopoverDirective, selector: "[nz-popover]", inputs: ["nzPopoverArrowPointAtCenter", "nzPopoverTitle", "nzPopoverContent", "nz-popover", "nzPopoverTrigger", "nzPopoverPlacement", "nzPopoverOrigin", "nzPopoverVisible", "nzPopoverMouseEnterDelay", "nzPopoverMouseLeaveDelay", "nzPopoverOverlayClassName", "nzPopoverOverlayStyle", "nzPopoverBackdrop"], outputs: ["nzPopoverVisibleChange"], exportAs: ["nzPopover"] }, { type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i6.NzImageDirective, selector: "img[nz-image]", inputs: ["nzSrc", "nzSrcset", "nzDisablePreview", "nzFallback", "nzPlaceholder"], exportAs: ["nzImage"] }, { type: i7.AtrErrorImgDirective, selector: "[atrErrorImg]", inputs: ["atrErrorImg"] }, { type: i8.NzRowDirective, selector: "[nz-row],nz-row,nz-form-item", inputs: ["nzAlign", "nzJustify", "nzGutter"], exportAs: ["nzRow"] }, { type: i8.NzColDirective, selector: "[nz-col],nz-col,nz-form-control,nz-form-label", inputs: ["nzFlex", "nzSpan", "nzOrder", "nzOffset", "nzPush", "nzPull", "nzXs", "nzSm", "nzMd", "nzLg", "nzXl", "nzXXl"], exportAs: ["nzCol"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i9.AtrRoleDirective, selector: "[atrRole]", inputs: ["atrRole"] }, { type: i10.NzWaveDirective, selector: "[nz-wave],button[nz-button]:not([nzType=\"link\"]):not([nzType=\"text\"])", inputs: ["nzWaveExtraNode"], exportAs: ["nzWave"] }, { type: i11.ɵNzTransitionPatchDirective, selector: "[nz-button], nz-button-group, [nz-icon], [nz-menu-item], [nz-submenu], nz-select-top-control, nz-select-placeholder, nz-input-group", inputs: ["hidden"] }, { type: i12.NzIconDirective, selector: "[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }, { type: i3.NgSwitchDefault, selector: "[ngSwitchDefault]" }], pipes: { "safeHtml": i13.SafeHtmlPipe, "defVal": i14.DefaultValPipe, "date": i3.DatePipe, "ossImg": i15.OssImgPipe, "async": i3.AsyncPipe, "dicts": i16.DictsPipe } });
|
|
153
154
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TableTdComponent, decorators: [{
|
|
154
155
|
type: Component,
|
|
155
|
-
args: [{ selector: 'app-table-td', template: "<ng-container [ngSwitch]=\"item.type\">\r\n\r\n <ng-container *ngSwitchCase=\"'innerHtml'\">\r\n <div [ngStyle]=\"getStyleCallBack(item,
|
|
156
|
+
args: [{ selector: 'app-table-td', template: "<ng-container [ngSwitch]=\"item.type\">\r\n\r\n <ng-container *ngSwitchCase=\"'innerHtml'\">\r\n <div [ngStyle]=\"getStyleCallBack(item,result)\" [innerHTML]=\"item.innerHtmlBack(value | defVal:item.defaultVal,result) | safeHtml\" ></div>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'textcolor'\">\r\n <div [innerHTML]=\"value | defVal:item.defaultVal\" [ngStyle]=\"{'color':item.color}\"\r\n *ngIf=\"item.colorShow == value\"></div>\r\n <div [innerHTML]=\"value | defVal:item.defaultVal\" *ngIf=\"item.colorShow != value\"></div>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'date'\">\r\n <span nz-popover (mouseenter)=\"enter($event)\"\r\n [nzPopoverTrigger]=\"popoverTrigger\"\r\n [ngStyle]=\"getStyleCallBack(item,result)\"\r\n [nzPopoverContent]=\"value | date:'yyyy-MM-dd' | defVal:item.defaultVal\"\r\n class=\"view-text\">{{ value | date:'yyyy-MM-dd' | defVal:item.defaultVal}}</span>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'dateTime'\">\r\n <span nz-popover (mouseenter)=\"enter($event)\"\r\n [nzPopoverTrigger]=\"popoverTrigger\"\r\n [ngStyle]=\"getStyleCallBack(item,result)\"\r\n [nzPopoverContent]=\"value | date:'yyyy-MM-dd HH:mm:ss' | defVal:item.defaultVal\"\r\n class=\"view-text\"> {{ value | date:'yyyy-MM-dd HH:mm:ss' | defVal:item.defaultVal}}</span>\r\n </ng-container>\r\n <nz-switch *ngSwitchCase=\"'switch'\" [(ngModel)]=\"value\" [nzDisabled]=\"item.disabled\"\r\n [ngStyle]=\"getStyleCallBack(item,result)\"\r\n (ngModelChange)=\"doActionSwitch(result,item.key)\" nzCheckedChildren=\"\u662F\" nzUnCheckedChildren=\"\u5426\">\r\n </nz-switch>\r\n <ng-container *ngSwitchCase=\"'sDateTime'\">\r\n <span nz-popover (mouseenter)=\"enter($event)\"\r\n [nzPopoverTrigger]=\"popoverTrigger\" [ngStyle]=\"getStyleCallBack(item,result)\"\r\n [nzPopoverContent]=\"value | date:'MM-dd HH:mm' | defVal:item.defaultVal\"\r\n class=\"view-text\"> {{ value | date:'MM-dd HH:mm' | defVal:item.defaultVal}}</span>\r\n </ng-container>\r\n <div *ngSwitchCase=\"'fixedText'\" [ngStyle]=\"getStyleCallBack(item,result)\" [innerHTML]=\"item.key\"></div>\r\n\r\n <img *ngSwitchCase=\"'image'\" [ngStyle]=\"getStyleCallBack(item,result)\" width=\"35px\" nzSrc=\"{{(value | defVal:item.defaultVal) | ossImg}}\"\r\n nz-image atrErrorImg/>\r\n <div nz-row *ngSwitchCase=\"'action'\">\r\n <div class=\"action-area\" nz-col [nzSpan]=\"24\">\r\n <ng-container *ngFor=\"let action of item.actions\">\r\n <ng-container *ngIf=\"isShowBtn(result,action.operator,action)\">\r\n <ng-container *ngIf=\"!action.withoutRole\">\r\n <button nz-button\r\n [nzType]=\"action.buttonType&&action.buttonType != 'danger'? action.buttonType : 'primary'\"\r\n [nzDanger]=\"action.buttonType == 'danger'\"\r\n nzSize=\"small\" *atrRole=\"action.code\"\r\n (click)=\"doActionByRow(result,action.code,$event,i)\">\r\n <i nz-icon *ngIf=\"action.icon\" [nzType]=\"action.icon\"></i>\r\n {{action.name}}</button>\r\n </ng-container>\r\n <ng-container *ngIf=\"action.withoutRole\">\r\n <button nz-button\r\n [nzType]=\"action.buttonType&&action.buttonType != 'danger'? action.buttonType : 'primary'\"\r\n [nzDanger]=\"action.buttonType == 'danger'\"\r\n nzSize=\"small\" (click)=\"doActionByRow(result,action.code,$event,i)\">\r\n <i nz-icon *ngIf=\"action.icon\" [nzType]=\"action.icon\"></i>\r\n {{action.name}}</button>\r\n </ng-container>\r\n <!-- <button nz-button [nzType]=\"'primary'\" nzSize=\"small\" *atrRole=\"action.code\" (click)=\"doActionByRow(result,action.code,$event)\">{{action.name\r\n }}</button> -->\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n </div>\r\n <div [ngStyle]=\"getStyleCallBack(item,result)\" *ngSwitchCase=\"'dict'\" [innerHTML]=\"value | dicts:item.dictCode:',' | async | defVal:item.defaultVal\"></div>\r\n <div [ngStyle]=\"getStyleCallBack(item,result)\" nz-popover (mouseenter)=\"enter($event)\"\r\n [nzPopoverTrigger]=\"popoverTrigger\" [nzPopoverContent]='value | defVal:item.defaultVal'\r\n class=\"view-text\" *ngSwitchDefault [innerHTML]=\"value | defVal:item.defaultVal\"></div>\r\n</ng-container>\r\n\r\n", styles: [":host{cursor:default}:host .view-text{display:inline-block;white-space:nowrap;width:100%;overflow:hidden;text-overflow:ellipsis}\n", ":host{width:100%;height:100%;display:flex;flex-direction:column}:host ::ng-deep .ant-modal{top:50px;padding:0}:host .ant-advanced-search-form{padding:10px 6px 6px;background:#fbfbfb;border:1px solid #d9d9d9;border-radius:6px;margin-bottom:5px}:host .select-icon:hover{color:#1890ff}:host ::ng-deep .ant-advanced-search-form .ant-form-item{margin-bottom:5px}:host ::ng-deep .ant-table-column-title{font-size:.65rem}:host ::ng-deep .ant-table-tbody>tr.ant-table-row:hover>td{background:#d0eeea}:host ::ng-deep .ant-modal-header,:host ::ng-deep .ant-modal-content{border-radius:4px}:host ::ng-deep .ant-table-tbody>tr.selected:hover>td{background-color:#cfe1d0!important}:host ::ng-deep .ant-table{height:100%}:host ::ng-deep nz-pagination{position:absolute;bottom:0;right:0}:host .search-result-list{padding:1px;border:1px dashed #e9e9e9;border-radius:6px;background-color:#fff;flex:1;text-align:center;position:relative}:host [nz-form-label]{overflow:visible}:host button{margin:2px 4px}:host .collapse{margin-left:6px;font-size:12px}:host .action-area{text-align:left}:host .search-area{text-align:right}:host ::ng-deep .main-table{position:absolute;inset:0}:host ::ng-deep .main-table .ant-spin-nested-loading{height:100%}:host ::ng-deep .main-table .ant-spin-container{height:100%}:host ::ng-deep .ant-table-tbody>tr.selected>td{background-color:#cfe1d0}:host ::ng-deep .ant-table-tbody>tr>td>img{display:block;width:40%;margin:0 auto}:host ::ng-deep .ant-table-body{-ms-overflow-style:none;overflow:-moz-scrollbars-none}:host ::ng-deep .ant-table-body::-webkit-scrollbar,:host ::ng-deep .ant-table-header::-webkit-scrollbar{width:6px!important;height:6px!important}:host ::ng-deep .ant-table-body::-webkit-scrollbar-track,:host ::ng-deep .ant-table-header::-webkit-scrollbar-track{width:6px!important;cursor:pointer}:host ::ng-deep .ant-table-body::-webkit-scrollbar-thumb,:host ::ng-deep .ant-table-header::-webkit-scrollbar-thumb{background:#1890ff;border-radius:3px;cursor:pointer}:host ::ng-deep .ant-table-bordered .ant-table-thead>tr>th{border-right:1px solid #ddd}:host ::ng-deep .ant-table-header{-ms-overflow-style:none;overflow:-moz-scrollbars-none;margin-bottom:-5px!important}:host ::ng-deep .ant-table-placeholder{border-bottom:none!important;border-top:none!important}:host .tabel-colunmn{display:block;width:160px;height:300px;background:#fff;border:1px solid #ddd;padding:10px;border-radius:5px;overflow-x:hidden;overflow-y:auto;position:relative}:host .tabel-colunmn-header{position:fixed;top:0;left:0;right:0;height:30px;z-index:999;line-height:30px;border-bottom:1px solid #ddd;text-align:left;font-size:13px;padding-left:10px}:host .t-tr{background:#fff}:host .t-tr:nth-child(odd){background:#f8f9fa}:host ::ng-deep .ant-table-thead>tr>th{background:#e7ebef!important;border-radius:0;word-break:break-all;white-space:pre-wrap}:host ::ng-deep .ant-table-tbody>tr>td{word-break:break-all;white-space:pre-wrap}:host ::ng-deep .ant-table-header{background:#e7ebef!important}:host td{font-size:.65rem}:host .resize-trigger{height:100%}:host .nz-resizable-preview{border-width:0;border-right-width:1px}:host ::ng-deep .ant-table-thead>tr>th .ant-table-header-column .ant-table-column-sorters>:not(.ant-table-column-sorter){position:unset}:host ::ng-deep .ant-table-tbody>tr>td{padding:5px}:host ::ng-deep .ant-table{line-height:15px}:host ::ng-deep .ant-table-middle .ant-table-footer,:host .ant-table-middle .ant-table-tbody>tr>td,:host .ant-table-middle .ant-table-thead>tr>th,:host .ant-table-middle .ant-table-title{padding:5px}:host ::ng-deep .ant-table-tbody>tr>td>img{width:35px}:host ::ng-deep .ant-modal-body{padding:10px}:host ::ng-deep .ant-table.ant-table-bordered tbody>tr>td{font-size:13px}:host ::ng-deep th{z-index:80!important}:host .left-zindex-header{z-index:90!important}:host .left-zindex{z-index:80!important}:host ::ng-deep input,:host ::ng-deep .ant-select-single:not(.ant-select-customize-input) .ant-select-selector,:host ::ng-deep .ant-picker{border-radius:5px}:host .border-text{width:100%;height:36px;line-height:36px;display:flex}:host .border-text .border-text-line{display:inline-block;border-top:1px solid #cccccc;margin-top:18px}:host .border-text .border-text-line-left{width:10px;border-left:1px solid #cccccc}:host .border-text .border-text-line-right{flex:1;border-right:1px solid #cccccc}:host .border-text .border-text-span{margin-left:5px;margin-right:5px}:host ::ng-deep .tabel-colunmn-header{position:absolute!important;top:0!important}:host ::ng-deep .ant-table-cell-fix-left,:host .ant-table-cell-fix-right{position:sticky!important}.label-title{position:absolute;display:block;top:-7px;left:10px;background-color:#fff;color:#000;font-weight:600;font-size:12px;line-height:12px}\n"] }]
|
|
156
157
|
}], ctorParameters: function () { return []; }, propDecorators: { data: [{
|
|
157
158
|
type: Input
|
|
158
159
|
}], item: [{
|
|
@@ -162,4 +163,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
162
163
|
}], doActionByRowAction: [{
|
|
163
164
|
type: Output
|
|
164
165
|
}] } });
|
|
165
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtdGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvbGliL3NoYXJlZC90YWJsZS90YWJsZS10ZC90YWJsZS10ZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvc2hhcmVkL3RhYmxlL3RhYmxlLXRkL3RhYmxlLXRkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFN0UsT0FBTyxFQUFDLGdCQUFnQixFQUFxQixNQUFNLGtDQUFrQyxDQUFDO0FBQ3RGLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBTzNELE1BQU0sT0FBTyxnQkFBZ0I7SUFtQjNCO1FBTFUsd0JBQW1CLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUN4RCxtQkFBYyxHQUFPLE9BQU8sQ0FBQTtRQUU1QixnQkFBVyxHQUFHLGdCQUFnQixDQUFDLE9BQU8sQ0FBQztJQUd2QyxDQUFDO0lBbkJELElBQWEsSUFBSSxDQUFDLENBQU07UUFDdEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFDaEIsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUMvQixDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFlRCxnQkFBZ0IsQ0FBQyxJQUFVLEVBQUMsSUFBUTtRQUNsQyxJQUFJLEtBQUssR0FBTyxFQUFFLENBQUE7UUFDbEIsSUFBRyxJQUFJLENBQUMsYUFBYSxFQUFDO1lBQ3BCLEtBQUssR0FBRyxJQUFJ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dXQsIE9uSW5pdCwgT3V0cHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtlbnZpcm9ubWVudH0gZnJvbSBcIm5nLXpvcnJvLWFudGQvY29yZS9lbnZpcm9ubWVudHNcIjtcclxuaW1wb3J0IHthdHJfc3RhdGljX2RhdGFzLCBUYWJsZSwgVGFibGVBY3Rpb259IGZyb20gXCIuLi8uLi8uLi8uLi9jb3JlL2Jhc2UvYXRyLWNvbW1vblwiO1xyXG5pbXBvcnQge1Rvb2xzVXRpbH0gZnJvbSBcIi4uLy4uLy4uLy4uL2NvcmUvdXRpbHMvVG9vbHNVdGlsXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC10YWJsZS10ZCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RhYmxlLXRkLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi90YWJsZS10ZC5jb21wb25lbnQuc2NzcycsICcuLi90YWJsZS5jb21wb25lbnQubGVzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUYWJsZVRkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBASW5wdXQoKSBzZXQgZGF0YShkOiBhbnkpIHtcclxuICAgIHRoaXMucmVzdWx0ID0gZDtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLnZhbHVlID0gdGhpcy5nZXRWYWx1ZShkKVxyXG4gICAgfSlcclxuICB9XHJcbiAgQElucHV0KCkgaXRlbTogVGFibGUgfGFueTtcclxuICBASW5wdXQoKSBpOmFueVxyXG5cclxuICB2YWx1ZTogYW55O1xyXG4gIHJlc3VsdDogYW55XHJcblxyXG5cclxuICBAT3V0cHV0KCkgZG9BY3Rpb25CeVJvd0FjdGlvbiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIHBvcG92ZXJUcmlnZ2VyOmFueSA9ICdob3ZlcidcclxuXHJcbiAgaW1hZ2VQcmVmaXggPSBhdHJfc3RhdGljX2RhdGFzLk9TU19VUkw7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gIH1cclxuICBnZXRTdHlsZUNhbGxCYWNrKGl0ZW06VGFibGUsZGF0YTphbnkpe1xyXG4gICAgbGV0IHN0eWxlOmFueSA9IHt9XHJcbiAgICBpZihpdGVtLnN0eWxlQ2FsbEJhY2spe1xyXG4gICAgICBzdHlsZSA9IGl0ZW0uc3R5bGVDYWxsQmFjayhkYXRhKVxyXG4gICAgfVxyXG4gICAgaWYoaXRlbS5jb2xvcil7XHJcbiAgICAgIHN0eWxlWydjb2xvciddID0gaXRlbS5jb2xvcjtcclxuICAgIH1cclxuICAgIHJldHVybiBzdHlsZVxyXG4gIH1cclxuICBkb0FjdGlvblN3aXRjaChkYXRhOmFueSwgY29kZTphbnksIGV2ZW50PzogTW91c2VFdmVudCwgaW5kZXg/OmFueSkge1xyXG4gICAgdGhpcy5kb0FjdGlvbkJ5Um93QWN0aW9uLmVtaXQoe2RhdGE6IGRhdGEsIGNvZGU6IGNvZGUsIGV2ZW50OiBldmVudCwgaW5kZXg6IGluZGV4fSlcclxuICB9XHJcbiAgZ2V0VmFsdWUoZGF0YTogYW55KSB7XHJcbiAgICBsZXQga2V5ID0gdGhpcy5pdGVtLmtleTtcclxuICAgIGlmIChrZXkgJiYga2V5LmluZGV4T2YoJy4nKSA+IDApIHtcclxuICAgICAgbGV0IGtleXMgPSBrZXkuc3BsaXQoJy4nKTtcclxuICAgICAgbGV0IHZhbHVlID0gZGF0YTtcclxuICAgICAga2V5cy5mb3JFYWNoKChrOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAodmFsdWUpIHtcclxuICAgICAgICAgIHZhbHVlID0gdmFsdWVba11cclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICAgIHJldHVybiB2YWx1ZVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGRhdGFba2V5XTtcclxuXHJcbiAgfVxyXG5cclxuICBjaGFuZ2UodmFsdWU6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIGNvbnNvbGUubG9nKHZhbHVlKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gIH1cclxuXHJcbiAgZG9BY3Rpb25CeVJvdyhkYXRhOmFueSwgY29kZTphbnksIGV2ZW50OiBNb3VzZUV2ZW50LCBpbmRleDphbnkpIHtcclxuICAgIHRoaXMuZG9BY3Rpb25CeVJvd0FjdGlvbi5lbWl0KHtkYXRhOiBkYXRhLCBjb2RlOiBjb2RlLCBldmVudDogZXZlbnQsIGluZGV4OiBpbmRleH0pXHJcbiAgfVxyXG5cclxuICBlbnRlcihlOmFueSkge1xyXG4gICAgdGhpcy5wb3BvdmVyVHJpZ2dlciA9IGUudG9FbGVtZW50LmNsaWVudFdpZHRoIDwgZS50b0VsZW1lbnQuc2Nyb2xsV2lkdGggPyAnaG92ZXInIDogbnVsbDtcclxuICB9XHJcblxyXG4gIGlzU2hvd0J0bihkYXRhOiBhbnksIG9wZXJhdG9yOiBzdHJpbmcsIGFjdGlvbj86VGFibGVBY3Rpb24pOiBib29sZWFuIHtcclxuICAgIGxldCBpc1Nob3cgPSBmYWxzZTtcclxuICAgIGlmICghb3BlcmF0b3IgfHwgb3BlcmF0b3IgPT0gbnVsbCB8fCBvcGVyYXRvciA9PSBcIlwiKSB7XHJcbiAgICAgIGlzU2hvdyA9IHRydWU7XHJcbiAgICB9IGVsc2UgaWYgKG9wZXJhdG9yLmluZGV4T2YoJyYmJykgPiAwKSB7XHJcbiAgICAgIC8vIGF8ZXF8YiAmJmN8ZXF8ZFxyXG4gICAgICBjb25zdCBvcHMgPSBvcGVyYXRvci5zcGxpdCgnJiYnKTtcclxuICAgICAgaWYgKG9wcy5sZW5ndGggPiAxKSB7XHJcbiAgICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOnByZWZlci1mb3Itb2ZcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG9wcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgaXNTaG93ID0gdHJ1ZVxyXG4gICAgICAgICAgaWYgKCF0aGlzLmNoZWNrSXNTaG93QmFzZShvcHNbaV0uc3BsaXQoJ3wnKSwgZGF0YSkpIHtcclxuICAgICAgICAgICAgaXNTaG93ID0gZmFsc2U7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSBlbHNlIGlmIChvcGVyYXRvci5pbmRleE9mKCd8fCcpID4gMCkge1xyXG4gICAgICAvLyBhfGVxfGJ8fGN8ZXF8ZFxyXG4gICAgICBjb25zdCBvcHMgPSBvcGVyYXRvci5zcGxpdCgnfHwnKTtcclxuICAgICAgaWYgKG9wcy5sZW5ndGggPiAxKSB7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBvcHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgIGlzU2hvdyA9IGZhbHNlO1xyXG4gICAgICAgICAgaWYgKHRoaXMuY2hlY2tJc1Nob3dCYXNlKG9wc1tpXS5zcGxpdCgnfCcpLCBkYXRhKSkge1xyXG4gICAgICAgICAgICBpc1Nob3cgPSB0cnVlO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGxldCBvcCA9IG9wZXJhdG9yLnNwbGl0KFwifFwiKTtcclxuICAgICAgaXNTaG93ID0gdGhpcy5jaGVja0lzU2hvd0Jhc2Uob3AsIGRhdGEpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGlzU2hvdztcclxuICB9XHJcblxyXG4gIGNoZWNrSXNTaG93QmFzZShvcDphbnksIGRhdGE6YW55KTogYm9vbGVhbiB7XHJcbiAgICBsZXQgaXNTaG93ID0gZmFsc2U7XHJcbiAgICBpZiAob3AubGVuZ3RoID4gMSkge1xyXG4gICAgICBsZXQgdmFsdWUgPSBkYXRhW29wWzBdXTtcclxuICAgICAgaXNTaG93ID0gdGhpcy5jb21wYXJlKHZhbHVlLCBvcFsxXSwgb3BbMl0pXHJcbiAgICB9IGVsc2V7XHJcbiAgICAgIGlzU2hvdyA9IGZhbHNlXHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGlzU2hvdztcclxuICB9XHJcblxyXG4gIGNvbXBhcmUodmFsdWU6YW55LCBvcGVyYXRvcjphbnksIHRhcmdldDphbnkpOiBib29sZWFuIHtcclxuICAgIGxldCBpc1JpZ2h0ID0gZmFsc2U7XHJcbiAgICBzd2l0Y2ggKG9wZXJhdG9yKSB7XHJcbiAgICAgIGNhc2UgJ2VxJyA6XHJcbiAgICAgICAgaWYgKHZhbHVlID09IHRhcmdldCkge1xyXG4gICAgICAgICAgaXNSaWdodCA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdnaCcgOlxyXG4gICAgICAgIGlmICh2YWx1ZSA+PSB0YXJnZXQpIHtcclxuICAgICAgICAgIGlzUmlnaHQgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnbmUnOlxyXG4gICAgICAgIGlmICh2YWx1ZSAhPSB0YXJnZXQpIHtcclxuICAgICAgICAgIGlzUmlnaHQgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBicmVha1xyXG4gICAgICBjYXNlICdub3RFbXB0eSc6XHJcbiAgICAgICAgaXNSaWdodCA9ICFUb29sc1V0aWwuaXNFbXB0eSh2YWx1ZSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ2VtcHR5JzpcclxuICAgICAgICBpc1JpZ2h0ID0gVG9vbHNVdGlsLmlzRW1wdHkodmFsdWUpXHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGRlZmF1bHQgOlxyXG4gICAgICAgIGlzUmlnaHQgPSBmYWxzZTtcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICAgIHJldHVybiBpc1JpZ2h0O1xyXG4gIH1cclxuXHJcbn1cclxuIiwiPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwiaXRlbS50eXBlXCI+XHJcblxyXG4gIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidpbm5lckh0bWwnXCI+XHJcbiAgICA8ZGl2IFtuZ1N0eWxlXT1cImdldFN0eWxlQ2FsbEJhY2soaXRlbSxkYXRhKVwiIFtpbm5lckhUTUxdPVwiaXRlbS5pbm5lckh0bWxCYWNrKHZhbHVlIHwgZGVmVmFsOml0ZW0uZGVmYXVsdFZhbCxkYXRhKSB8IHNhZmVIdG1sXCIgID48L2Rpdj5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCIndGV4dGNvbG9yJ1wiPlxyXG4gICAgPGRpdiBbaW5uZXJIVE1MXT1cInZhbHVlIHwgZGVmVmFsOml0ZW0uZGVmYXVsdFZhbFwiIFtuZ1N0eWxlXT1cInsnY29sb3InOml0ZW0uY29sb3J9XCJcclxuICAgICAgICAgKm5nSWY9XCJpdGVtLmNvbG9yU2hvdyA9PSB2YWx1ZVwiPjwvZGl2PlxyXG4gICAgPGRpdiBbaW5uZXJIVE1MXT1cInZhbHVlIHwgZGVmVmFsOml0ZW0uZGVmYXVsdFZhbFwiICpuZ0lmPVwiaXRlbS5jb2xvclNob3cgIT0gdmFsdWVcIj48L2Rpdj5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInZGF0ZSdcIj5cclxuICAgICAgIDxzcGFuIG56LXBvcG92ZXIgKG1vdXNlZW50ZXIpPVwiZW50ZXIoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICBbbnpQb3BvdmVyVHJpZ2dlcl09XCJwb3BvdmVyVHJpZ2dlclwiXHJcbiAgICAgICAgICAgICBbbmdTdHlsZV09XCJnZXRTdHlsZUNhbGxCYWNrKGl0ZW0sZGF0YSlcIlxyXG4gICAgICAgICAgICAgW256UG9wb3ZlckNvbnRlbnRdPVwidmFsdWUgfCBkYXRlOid5eXl5LU1NLWRkJyB8IGRlZlZhbDppdGVtLmRlZmF1bHRWYWxcIlxyXG4gICAgICAgICAgICAgY2xhc3M9XCJ2aWV3LXRleHRcIj57eyB2YWx1ZSB8IGRhdGU6J3l5eXktTU0tZGQnIHwgZGVmVmFsOml0ZW0uZGVmYXVsdFZhbH19PC9zcGFuPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG4gIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidkYXRlVGltZSdcIj5cclxuICAgICAgPHNwYW4gbnotcG9wb3ZlciAobW91c2VlbnRlcik9XCJlbnRlcigkZXZlbnQpXCJcclxuICAgICAgICAgICAgW256UG9wb3ZlclRyaWdnZXJdPVwicG9wb3ZlclRyaWdnZXJcIlxyXG4gICAgICAgICAgICBbbmdTdHlsZV09XCJnZXRTdHlsZUNhbGxCYWNrKGl0ZW0sZGF0YSlcIlxyXG4gICAgICAgICAgICBbbnpQb3BvdmVyQ29udGVudF09XCJ2YWx1ZSB8IGRhdGU6J3l5eXktTU0tZGQgSEg6bW06c3MnIHwgZGVmVmFsOml0ZW0uZGVmYXVsdFZhbFwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwidmlldy10ZXh0XCI+IHt7IHZhbHVlIHwgZGF0ZToneXl5eS1NTS1kZCBISDptbTpzcycgfCBkZWZWYWw6aXRlbS5kZWZhdWx0VmFsfX08L3NwYW4+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbiAgPG56LXN3aXRjaCAqbmdTd2l0Y2hDYXNlPVwiJ3N3aXRjaCdcIiBbKG5nTW9kZWwpXT1cInZhbHVlXCIgW256RGlzYWJsZWRdPVwiaXRlbS5kaXNhYmxlZFwiXHJcbiAgICAgICAgICAgICBbbmdTdHlsZV09XCJnZXRTdHlsZUNhbGxCYWNrKGl0ZW0sZGF0YSlcIlxyXG4gICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwiZG9BY3Rpb25Td2l0Y2goZGF0YSxpdGVtLmtleSlcIiBuekNoZWNrZWRDaGlsZHJlbj1cIuaYr1wiIG56VW5DaGVja2VkQ2hpbGRyZW49XCLlkKZcIj5cclxuICA8L256LXN3aXRjaD5cclxuICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInc0RhdGVUaW1lJ1wiPlxyXG4gICAgICA8c3BhbiBuei1wb3BvdmVyIChtb3VzZWVudGVyKT1cImVudGVyKCRldmVudClcIlxyXG4gICAgICAgICAgICBbbnpQb3BvdmVyVHJpZ2dlcl09XCJwb3BvdmVyVHJpZ2dlclwiIFtuZ1N0eWxlXT1cImdldFN0eWxlQ2FsbEJhY2soaXRlbSxkYXRhKVwiXHJcbiAgICAgICAgICAgIFtuelBvcG92ZXJDb250ZW50XT1cInZhbHVlIHwgZGF0ZTonTU0tZGQgSEg6bW0nIHwgZGVmVmFsOml0ZW0uZGVmYXVsdFZhbFwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwidmlldy10ZXh0XCI+ICB7eyB2YWx1ZSB8IGRhdGU6J01NLWRkIEhIOm1tJyB8IGRlZlZhbDppdGVtLmRlZmF1bHRWYWx9fTwvc3Bhbj5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuICA8ZGl2ICpuZ1N3aXRjaENhc2U9XCInZml4ZWRUZXh0J1wiIFtuZ1N0eWxlXT1cImdldFN0eWxlQ2FsbEJhY2soaXRlbSxkYXRhKVwiIFtpbm5lckhUTUxdPVwiaXRlbS5rZXlcIj48L2Rpdj5cclxuXHJcbiAgPGltZyAqbmdTd2l0Y2hDYXNlPVwiJ2ltYWdlJ1wiIFtuZ1N0eWxlXT1cImdldFN0eWxlQ2FsbEJhY2soaXRlbSxkYXRhKVwiIHdpZHRoPVwiMzVweFwiIG56U3JjPVwie3sodmFsdWUgfCBkZWZWYWw6aXRlbS5kZWZhdWx0VmFsKSB8IG9zc0ltZ319XCJcclxuICAgICAgIG56LWltYWdlIGF0ckVycm9ySW1nLz5cclxuICA8ZGl2IG56LXJvdyAqbmdTd2l0Y2hDYXNlPVwiJ2FjdGlvbidcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJhY3Rpb24tYXJlYVwiIG56LWNvbCBbbnpTcGFuXT1cIjI0XCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGFjdGlvbiBvZiBpdGVtLmFjdGlvbnNcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNTaG93QnRuKGRhdGEsYWN0aW9uLm9wZXJhdG9yLGFjdGlvbilcIj5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhYWN0aW9uLndpdGhvdXRSb2xlXCI+XHJcbiAgICAgICAgICAgIDxidXR0b24gbnotYnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgW256VHlwZV09XCJhY3Rpb24uYnV0dG9uVHlwZSYmYWN0aW9uLmJ1dHRvblR5cGUgIT0gJ2Rhbmdlcic/IGFjdGlvbi5idXR0b25UeXBlIDogJ3ByaW1hcnknXCJcclxuICAgICAgICAgICAgICAgICAgICBbbnpEYW5nZXJdPVwiYWN0aW9uLmJ1dHRvblR5cGUgPT0gJ2RhbmdlcidcIlxyXG4gICAgICAgICAgICAgICAgICAgIG56U2l6ZT1cInNtYWxsXCIgKmF0clJvbGU9XCJhY3Rpb24uY29kZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImRvQWN0aW9uQnlSb3coZGF0YSxhY3Rpb24uY29kZSwkZXZlbnQsaSlcIj5cclxuICAgICAgICAgICAgICA8aSBuei1pY29uICpuZ0lmPVwiYWN0aW9uLmljb25cIiBbbnpUeXBlXT1cImFjdGlvbi5pY29uXCI+PC9pPlxyXG4gICAgICAgICAgICAgIHt7YWN0aW9uLm5hbWV9fTwvYnV0dG9uPlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYWN0aW9uLndpdGhvdXRSb2xlXCI+XHJcbiAgICAgICAgICAgIDxidXR0b24gbnotYnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgW256VHlwZV09XCJhY3Rpb24uYnV0dG9uVHlwZSYmYWN0aW9uLmJ1dHRvblR5cGUgIT0gJ2Rhbmdlcic/IGFjdGlvbi5idXR0b25UeXBlIDogJ3ByaW1hcnknXCJcclxuICAgICAgICAgICAgICAgICAgICBbbnpEYW5nZXJdPVwiYWN0aW9uLmJ1dHRvblR5cGUgPT0gJ2RhbmdlcidcIlxyXG4gICAgICAgICAgICAgICAgICAgIG56U2l6ZT1cInNtYWxsXCIgKGNsaWNrKT1cImRvQWN0aW9uQnlSb3coZGF0YSxhY3Rpb24uY29kZSwkZXZlbnQsaSlcIj5cclxuICAgICAgICAgICAgICA8aSBuei1pY29uICpuZ0lmPVwiYWN0aW9uLmljb25cIiBbbnpUeXBlXT1cImFjdGlvbi5pY29uXCI+PC9pPlxyXG4gICAgICAgICAgICAgIHt7YWN0aW9uLm5hbWV9fTwvYnV0dG9uPlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICA8IS0tIDxidXR0b24gbnotYnV0dG9uIFtuelR5cGVdPVwiJ3ByaW1hcnknXCIgbnpTaXplPVwic21hbGxcIiAqYXRyUm9sZT1cImFjdGlvbi5jb2RlXCIgKGNsaWNrKT1cImRvQWN0aW9uQnlSb3coZGF0YSxhY3Rpb24uY29kZSwkZXZlbnQpXCI+e3thY3Rpb24ubmFtZVxyXG4gICAgICAgICAgfX08L2J1dHRvbj4gLS0+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBbbmdTdHlsZV09XCJnZXRTdHlsZUNhbGxCYWNrKGl0ZW0sZGF0YSlcIiAqbmdTd2l0Y2hDYXNlPVwiJ2RpY3QnXCIgW2lubmVySFRNTF09XCJ2YWx1ZSB8IGRpY3RzOml0ZW0uZGljdENvZGU6JywnIHwgYXN5bmMgfCBkZWZWYWw6aXRlbS5kZWZhdWx0VmFsXCI+PC9kaXY+XHJcbiAgPGRpdiBbbmdTdHlsZV09XCJnZXRTdHlsZUNhbGxCYWNrKGl0ZW0sZGF0YSlcIiBuei1wb3BvdmVyIChtb3VzZWVudGVyKT1cImVudGVyKCRldmVudClcIlxyXG4gICAgICAgW256UG9wb3ZlclRyaWdnZXJdPVwicG9wb3ZlclRyaWdnZXJcIiBbbnpQb3BvdmVyQ29udGVudF09J3ZhbHVlIHwgZGVmVmFsOml0ZW0uZGVmYXVsdFZhbCdcclxuICAgICAgIGNsYXNzPVwidmlldy10ZXh0XCIgKm5nU3dpdGNoRGVmYXVsdCBbaW5uZXJIVE1MXT1cInZhbHVlIHwgZGVmVmFsOml0ZW0uZGVmYXVsdFZhbFwiPjwvZGl2PlxyXG48L25nLWNvbnRhaW5lcj5cclxuXHJcbiJdfQ==
|
|
166
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtdGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvbGliL3NoYXJlZC90YWJsZS90YWJsZS10ZC90YWJsZS10ZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvc2hhcmVkL3RhYmxlL3RhYmxlLXRkL3RhYmxlLXRkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFN0UsT0FBTyxFQUFDLGdCQUFnQixFQUFxQixNQUFNLGtDQUFrQyxDQUFDO0FBQ3RGLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBTzNELE1BQU0sT0FBTyxnQkFBZ0I7SUFvQjNCO1FBTFUsd0JBQW1CLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUN4RCxtQkFBYyxHQUFRLE9BQU8sQ0FBQTtRQUU3QixnQkFBVyxHQUFHLGdCQUFnQixDQUFDLE9BQU8sQ0FBQztJQUd2QyxDQUFDO0lBcEJELElBQWEsSUFBSSxDQUFDLENBQU07UUFDdEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFDaEIsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUMvQixDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFpQkQsZ0JBQWdCLENBQUMsSUFBVyxFQUFFLElBQVM7UUFDckMsSUFBSSxLQUFLLEdBQVEsRUFBRSxDQUFBO1FBQ25CLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUN0QixLQUFLLEdBQUcsSUFB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QztzQkFBVCxLQUFLO2dCQU1JLG1CQUFtQjtzQkFBNUIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7ZW52aXJvbm1lbnR9IGZyb20gXCJuZy16b3Jyby1hbnRkL2NvcmUvZW52aXJvbm1lbnRzXCI7XHJcbmltcG9ydCB7YXRyX3N0YXRpY19kYXRhcywgVGFibGUsIFRhYmxlQWN0aW9ufSBmcm9tIFwiLi4vLi4vLi4vLi4vY29yZS9iYXNlL2F0ci1jb21tb25cIjtcclxuaW1wb3J0IHtUb29sc1V0aWx9IGZyb20gXCIuLi8uLi8uLi8uLi9jb3JlL3V0aWxzL1Rvb2xzVXRpbFwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtdGFibGUtdGQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90YWJsZS10ZC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdGFibGUtdGQuY29tcG9uZW50LnNjc3MnLCAnLi4vdGFibGUuY29tcG9uZW50Lmxlc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVGFibGVUZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQElucHV0KCkgc2V0IGRhdGEoZDogYW55KSB7XHJcbiAgICB0aGlzLnJlc3VsdCA9IGQ7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy52YWx1ZSA9IHRoaXMuZ2V0VmFsdWUoZClcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBASW5wdXQoKSBpdGVtOiBUYWJsZSB8IGFueTtcclxuICBASW5wdXQoKSBpOiBhbnlcclxuXHJcbiAgdmFsdWU6IGFueTtcclxuICByZXN1bHQ6IGFueVxyXG5cclxuXHJcbiAgQE91dHB1dCgpIGRvQWN0aW9uQnlSb3dBY3Rpb24gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBwb3BvdmVyVHJpZ2dlcjogYW55ID0gJ2hvdmVyJ1xyXG5cclxuICBpbWFnZVByZWZpeCA9IGF0cl9zdGF0aWNfZGF0YXMuT1NTX1VSTDtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgfVxyXG5cclxuICBnZXRTdHlsZUNhbGxCYWNrKGl0ZW06IFRhYmxlLCBkYXRhOiBhbnkpIHtcclxuICAgIGxldCBzdHlsZTogYW55ID0ge31cclxuICAgIGlmIChpdGVtLnN0eWxlQ2FsbEJhY2spIHtcclxuICAgICAgc3R5bGUgPSBpdGVtLnN0eWxlQ2FsbEJhY2soZGF0YSlcclxuICAgIH1cclxuICAgIGlmIChpdGVtLmNvbG9yKSB7XHJcbiAgICAgIHN0eWxlWydjb2xvciddID0gaXRlbS5jb2xvcjtcclxuICAgIH1cclxuICAgIHJldHVybiBzdHlsZVxyXG4gIH1cclxuXHJcbiAgZG9BY3Rpb25Td2l0Y2goZGF0YTogYW55LCBjb2RlOiBhbnksIGV2ZW50PzogTW91c2VFdmVudCwgaW5kZXg/OiBhbnkpIHtcclxuICAgIGNvbnNvbGUubG9nKCdkb0FjdGlvblN3aXRjaCcsZGF0YSwgY29kZSwgZXZlbnQsIGluZGV4KVxyXG4gICAgdGhpcy5kb0FjdGlvbkJ5Um93QWN0aW9uLmVtaXQoe2RhdGE6IGRhdGEsIGNvZGU6IGNvZGUsIGV2ZW50OiBldmVudCwgaW5kZXg6IGluZGV4fSlcclxuICB9XHJcblxyXG4gIGdldFZhbHVlKGRhdGE6IGFueSkge1xyXG4gICAgbGV0IGtleSA9IHRoaXMuaXRlbS5rZXk7XHJcbiAgICBpZiAoa2V5ICYmIGtleS5pbmRleE9mKCcuJykgPiAwKSB7XHJcbiAgICAgIGxldCBrZXlzID0ga2V5LnNwbGl0KCcuJyk7XHJcbiAgICAgIGxldCB2YWx1ZSA9IGRhdGE7XHJcbiAgICAgIGtleXMuZm9yRWFjaCgoazogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgICAgICB2YWx1ZSA9IHZhbHVlW2tdXHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgICByZXR1cm4gdmFsdWVcclxuICAgIH1cclxuICAgIHJldHVybiBkYXRhW2tleV07XHJcblxyXG4gIH1cclxuXHJcbiAgY2hhbmdlKHZhbHVlOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICBjb25zb2xlLmxvZyh2YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICB9XHJcblxyXG4gIGRvQWN0aW9uQnlSb3coZGF0YTogYW55LCBjb2RlOiBhbnksIGV2ZW50OiBNb3VzZUV2ZW50LCBpbmRleDogYW55KSB7XHJcbiAgICB0aGlzLmRvQWN0aW9uQnlSb3dBY3Rpb24uZW1pdCh7ZGF0YTogZGF0YSwgY29kZTogY29kZSwgZXZlbnQ6IGV2ZW50LCBpbmRleDogaW5kZXh9KVxyXG4gIH1cclxuXHJcbiAgZW50ZXIoZTogYW55KSB7XHJcbiAgICB0aGlzLnBvcG92ZXJUcmlnZ2VyID0gZS50b0VsZW1lbnQuY2xpZW50V2lkdGggPCBlLnRvRWxlbWVudC5zY3JvbGxXaWR0aCA/ICdob3ZlcicgOiBudWxsO1xyXG4gIH1cclxuXHJcbiAgaXNTaG93QnRuKGRhdGE6IGFueSwgb3BlcmF0b3I6IHN0cmluZywgYWN0aW9uPzogVGFibGVBY3Rpb24pOiBib29sZWFuIHtcclxuICAgIGxldCBpc1Nob3cgPSBmYWxzZTtcclxuICAgIGlmICghb3BlcmF0b3IgfHwgb3BlcmF0b3IgPT0gbnVsbCB8fCBvcGVyYXRvciA9PSBcIlwiKSB7XHJcbiAgICAgIGlzU2hvdyA9IHRydWU7XHJcbiAgICB9IGVsc2UgaWYgKG9wZXJhdG9yLmluZGV4T2YoJyYmJykgPiAwKSB7XHJcbiAgICAgIC8vIGF8ZXF8YiAmJmN8ZXF8ZFxyXG4gICAgICBjb25zdCBvcHMgPSBvcGVyYXRvci5zcGxpdCgnJiYnKTtcclxuICAgICAgaWYgKG9wcy5sZW5ndGggPiAxKSB7XHJcbiAgICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOnByZWZlci1mb3Itb2ZcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG9wcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgaXNTaG93ID0gdHJ1ZVxyXG4gICAgICAgICAgaWYgKCF0aGlzLmNoZWNrSXNTaG93QmFzZShvcHNbaV0uc3BsaXQoJ3wnKSwgZGF0YSkpIHtcclxuICAgICAgICAgICAgaXNTaG93ID0gZmFsc2U7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSBlbHNlIGlmIChvcGVyYXRvci5pbmRleE9mKCd8fCcpID4gMCkge1xyXG4gICAgICAvLyBhfGVxfGJ8fGN8ZXF8ZFxyXG4gICAgICBjb25zdCBvcHMgPSBvcGVyYXRvci5zcGxpdCgnfHwnKTtcclxuICAgICAgaWYgKG9wcy5sZW5ndGggPiAxKSB7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBvcHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgIGlzU2hvdyA9IGZhbHNlO1xyXG4gICAgICAgICAgaWYgKHRoaXMuY2hlY2tJc1Nob3dCYXNlKG9wc1tpXS5zcGxpdCgnfCcpLCBkYXRhKSkge1xyXG4gICAgICAgICAgICBpc1Nob3cgPSB0cnVlO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGxldCBvcCA9IG9wZXJhdG9yLnNwbGl0KFwifFwiKTtcclxuICAgICAgaXNTaG93ID0gdGhpcy5jaGVja0lzU2hvd0Jhc2Uob3AsIGRhdGEpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGlzU2hvdztcclxuICB9XHJcblxyXG4gIGNoZWNrSXNTaG93QmFzZShvcDogYW55LCBkYXRhOiBhbnkpOiBib29sZWFuIHtcclxuICAgIGxldCBpc1Nob3cgPSBmYWxzZTtcclxuICAgIGlmIChvcC5sZW5ndGggPiAxICYmIGRhdGEpIHtcclxuICAgICAgbGV0IHZhbHVlID0gZGF0YVtvcFswXV07XHJcbiAgICAgIGlzU2hvdyA9IHRoaXMuY29tcGFyZSh2YWx1ZSwgb3BbMV0sIG9wWzJdKVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaXNTaG93ID0gZmFsc2VcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gaXNTaG93O1xyXG4gIH1cclxuXHJcbiAgY29tcGFyZSh2YWx1ZTogYW55LCBvcGVyYXRvcjogYW55LCB0YXJnZXQ6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgbGV0IGlzUmlnaHQgPSBmYWxzZTtcclxuICAgIHN3aXRjaCAob3BlcmF0b3IpIHtcclxuICAgICAgY2FzZSAnZXEnIDpcclxuICAgICAgICBpZiAodmFsdWUgPT0gdGFyZ2V0KSB7XHJcbiAgICAgICAgICBpc1JpZ2h0ID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ2doJyA6XHJcbiAgICAgICAgaWYgKHZhbHVlID49IHRhcmdldCkge1xyXG4gICAgICAgICAgaXNSaWdodCA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICduZSc6XHJcbiAgICAgICAgaWYgKHZhbHVlICE9IHRhcmdldCkge1xyXG4gICAgICAgICAgaXNSaWdodCA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJyZWFrXHJcbiAgICAgIGNhc2UgJ25vdEVtcHR5JzpcclxuICAgICAgICBpc1JpZ2h0ID0gIVRvb2xzVXRpbC5pc0VtcHR5KHZhbHVlKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnZW1wdHknOlxyXG4gICAgICAgIGlzUmlnaHQgPSBUb29sc1V0aWwuaXNFbXB0eSh2YWx1ZSlcclxuICAgICAgICBicmVhaztcclxuICAgICAgZGVmYXVsdCA6XHJcbiAgICAgICAgaXNSaWdodCA9IGZhbHNlO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGlzUmlnaHQ7XHJcbiAgfVxyXG5cclxufVxyXG4iLCI8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJpdGVtLnR5cGVcIj5cclxuXHJcbiAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2lubmVySHRtbCdcIj5cclxuICAgIDxkaXYgW25nU3R5bGVdPVwiZ2V0U3R5bGVDYWxsQmFjayhpdGVtLHJlc3VsdClcIiBbaW5uZXJIVE1MXT1cIml0ZW0uaW5uZXJIdG1sQmFjayh2YWx1ZSB8IGRlZlZhbDppdGVtLmRlZmF1bHRWYWwscmVzdWx0KSB8IHNhZmVIdG1sXCIgID48L2Rpdj5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCIndGV4dGNvbG9yJ1wiPlxyXG4gICAgPGRpdiBbaW5uZXJIVE1MXT1cInZhbHVlIHwgZGVmVmFsOml0ZW0uZGVmYXVsdFZhbFwiIFtuZ1N0eWxlXT1cInsnY29sb3InOml0ZW0uY29sb3J9XCJcclxuICAgICAgICAgKm5nSWY9XCJpdGVtLmNvbG9yU2hvdyA9PSB2YWx1ZVwiPjwvZGl2PlxyXG4gICAgPGRpdiBbaW5uZXJIVE1MXT1cInZhbHVlIHwgZGVmVmFsOml0ZW0uZGVmYXVsdFZhbFwiICpuZ0lmPVwiaXRlbS5jb2xvclNob3cgIT0gdmFsdWVcIj48L2Rpdj5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInZGF0ZSdcIj5cclxuICAgICAgIDxzcGFuIG56LXBvcG92ZXIgKG1vdXNlZW50ZXIpPVwiZW50ZXIoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICBbbnpQb3BvdmVyVHJpZ2dlcl09XCJwb3BvdmVyVHJpZ2dlclwiXHJcbiAgICAgICAgICAgICBbbmdTdHlsZV09XCJnZXRTdHlsZUNhbGxCYWNrKGl0ZW0scmVzdWx0KVwiXHJcbiAgICAgICAgICAgICBbbnpQb3BvdmVyQ29udGVudF09XCJ2YWx1ZSB8IGRhdGU6J3l5eXktTU0tZGQnIHwgZGVmVmFsOml0ZW0uZGVmYXVsdFZhbFwiXHJcbiAgICAgICAgICAgICBjbGFzcz1cInZpZXctdGV4dFwiPnt7IHZhbHVlIHwgZGF0ZToneXl5eS1NTS1kZCcgfCBkZWZWYWw6aXRlbS5kZWZhdWx0VmFsfX08L3NwYW4+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2RhdGVUaW1lJ1wiPlxyXG4gICAgICA8c3BhbiBuei1wb3BvdmVyIChtb3VzZWVudGVyKT1cImVudGVyKCRldmVudClcIlxyXG4gICAgICAgICAgICBbbnpQb3BvdmVyVHJpZ2dlcl09XCJwb3BvdmVyVHJpZ2dlclwiXHJcbiAgICAgICAgICAgIFtuZ1N0eWxlXT1cImdldFN0eWxlQ2FsbEJhY2soaXRlbSxyZXN1bHQpXCJcclxuICAgICAgICAgICAgW256UG9wb3ZlckNvbnRlbnRdPVwidmFsdWUgfCBkYXRlOid5eXl5LU1NLWRkIEhIOm1tOnNzJyB8IGRlZlZhbDppdGVtLmRlZmF1bHRWYWxcIlxyXG4gICAgICAgICAgICBjbGFzcz1cInZpZXctdGV4dFwiPiB7eyB2YWx1ZSB8IGRhdGU6J3l5eXktTU0tZGQgSEg6bW06c3MnIHwgZGVmVmFsOml0ZW0uZGVmYXVsdFZhbH19PC9zcGFuPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG4gIDxuei1zd2l0Y2ggKm5nU3dpdGNoQ2FzZT1cIidzd2l0Y2gnXCIgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiIFtuekRpc2FibGVkXT1cIml0ZW0uZGlzYWJsZWRcIlxyXG4gICAgICAgICAgICAgW25nU3R5bGVdPVwiZ2V0U3R5bGVDYWxsQmFjayhpdGVtLHJlc3VsdClcIlxyXG4gICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwiZG9BY3Rpb25Td2l0Y2gocmVzdWx0LGl0ZW0ua2V5KVwiIG56Q2hlY2tlZENoaWxkcmVuPVwi5pivXCIgbnpVbkNoZWNrZWRDaGlsZHJlbj1cIuWQplwiPlxyXG4gIDwvbnotc3dpdGNoPlxyXG4gIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidzRGF0ZVRpbWUnXCI+XHJcbiAgICAgIDxzcGFuIG56LXBvcG92ZXIgKG1vdXNlZW50ZXIpPVwiZW50ZXIoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgIFtuelBvcG92ZXJUcmlnZ2VyXT1cInBvcG92ZXJUcmlnZ2VyXCIgW25nU3R5bGVdPVwiZ2V0U3R5bGVDYWxsQmFjayhpdGVtLHJlc3VsdClcIlxyXG4gICAgICAgICAgICBbbnpQb3BvdmVyQ29udGVudF09XCJ2YWx1ZSB8IGRhdGU6J01NLWRkIEhIOm1tJyB8IGRlZlZhbDppdGVtLmRlZmF1bHRWYWxcIlxyXG4gICAgICAgICAgICBjbGFzcz1cInZpZXctdGV4dFwiPiAge3sgdmFsdWUgfCBkYXRlOidNTS1kZCBISDptbScgfCBkZWZWYWw6aXRlbS5kZWZhdWx0VmFsfX08L3NwYW4+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbiAgPGRpdiAqbmdTd2l0Y2hDYXNlPVwiJ2ZpeGVkVGV4dCdcIiBbbmdTdHlsZV09XCJnZXRTdHlsZUNhbGxCYWNrKGl0ZW0scmVzdWx0KVwiIFtpbm5lckhUTUxdPVwiaXRlbS5rZXlcIj48L2Rpdj5cclxuXHJcbiAgPGltZyAqbmdTd2l0Y2hDYXNlPVwiJ2ltYWdlJ1wiIFtuZ1N0eWxlXT1cImdldFN0eWxlQ2FsbEJhY2soaXRlbSxyZXN1bHQpXCIgd2lkdGg9XCIzNXB4XCIgbnpTcmM9XCJ7eyh2YWx1ZSB8IGRlZlZhbDppdGVtLmRlZmF1bHRWYWwpIHwgb3NzSW1nfX1cIlxyXG4gICAgICAgbnotaW1hZ2UgYXRyRXJyb3JJbWcvPlxyXG4gIDxkaXYgbnotcm93ICpuZ1N3aXRjaENhc2U9XCInYWN0aW9uJ1wiPlxyXG4gICAgPGRpdiBjbGFzcz1cImFjdGlvbi1hcmVhXCIgbnotY29sIFtuelNwYW5dPVwiMjRcIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYWN0aW9uIG9mIGl0ZW0uYWN0aW9uc1wiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc1Nob3dCdG4ocmVzdWx0LGFjdGlvbi5vcGVyYXRvcixhY3Rpb24pXCI+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWFjdGlvbi53aXRob3V0Um9sZVwiPlxyXG4gICAgICAgICAgICA8YnV0dG9uIG56LWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgIFtuelR5cGVdPVwiYWN0aW9uLmJ1dHRvblR5cGUmJmFjdGlvbi5idXR0b25UeXBlICE9ICdkYW5nZXInPyBhY3Rpb24uYnV0dG9uVHlwZSA6ICdwcmltYXJ5J1wiXHJcbiAgICAgICAgICAgICAgICAgICAgW256RGFuZ2VyXT1cImFjdGlvbi5idXR0b25UeXBlID09ICdkYW5nZXInXCJcclxuICAgICAgICAgICAgICAgICAgICBuelNpemU9XCJzbWFsbFwiICphdHJSb2xlPVwiYWN0aW9uLmNvZGVcIlxyXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJkb0FjdGlvbkJ5Um93KHJlc3VsdCxhY3Rpb24uY29kZSwkZXZlbnQsaSlcIj5cclxuICAgICAgICAgICAgICA8aSBuei1pY29uICpuZ0lmPVwiYWN0aW9uLmljb25cIiBbbnpUeXBlXT1cImFjdGlvbi5pY29uXCI+PC9pPlxyXG4gICAgICAgICAgICAgIHt7YWN0aW9uLm5hbWV9fTwvYnV0dG9uPlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYWN0aW9uLndpdGhvdXRSb2xlXCI+XHJcbiAgICAgICAgICAgIDxidXR0b24gbnotYnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgW256VHlwZV09XCJhY3Rpb24uYnV0dG9uVHlwZSYmYWN0aW9uLmJ1dHRvblR5cGUgIT0gJ2Rhbmdlcic/IGFjdGlvbi5idXR0b25UeXBlIDogJ3ByaW1hcnknXCJcclxuICAgICAgICAgICAgICAgICAgICBbbnpEYW5nZXJdPVwiYWN0aW9uLmJ1dHRvblR5cGUgPT0gJ2RhbmdlcidcIlxyXG4gICAgICAgICAgICAgICAgICAgIG56U2l6ZT1cInNtYWxsXCIgKGNsaWNrKT1cImRvQWN0aW9uQnlSb3cocmVzdWx0LGFjdGlvbi5jb2RlLCRldmVudCxpKVwiPlxyXG4gICAgICAgICAgICAgIDxpIG56LWljb24gKm5nSWY9XCJhY3Rpb24uaWNvblwiIFtuelR5cGVdPVwiYWN0aW9uLmljb25cIj48L2k+XHJcbiAgICAgICAgICAgICAge3thY3Rpb24ubmFtZX19PC9idXR0b24+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDwhLS0gPGJ1dHRvbiBuei1idXR0b24gW256VHlwZV09XCIncHJpbWFyeSdcIiBuelNpemU9XCJzbWFsbFwiICphdHJSb2xlPVwiYWN0aW9uLmNvZGVcIiAoY2xpY2spPVwiZG9BY3Rpb25CeVJvdyhyZXN1bHQsYWN0aW9uLmNvZGUsJGV2ZW50KVwiPnt7YWN0aW9uLm5hbWVcclxuICAgICAgICAgIH19PC9idXR0b24+IC0tPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgW25nU3R5bGVdPVwiZ2V0U3R5bGVDYWxsQmFjayhpdGVtLHJlc3VsdClcIiAqbmdTd2l0Y2hDYXNlPVwiJ2RpY3QnXCIgW2lubmVySFRNTF09XCJ2YWx1ZSB8IGRpY3RzOml0ZW0uZGljdENvZGU6JywnIHwgYXN5bmMgfCBkZWZWYWw6aXRlbS5kZWZhdWx0VmFsXCI+PC9kaXY+XHJcbiAgPGRpdiBbbmdTdHlsZV09XCJnZXRTdHlsZUNhbGxCYWNrKGl0ZW0scmVzdWx0KVwiIG56LXBvcG92ZXIgKG1vdXNlZW50ZXIpPVwiZW50ZXIoJGV2ZW50KVwiXHJcbiAgICAgICBbbnpQb3BvdmVyVHJpZ2dlcl09XCJwb3BvdmVyVHJpZ2dlclwiIFtuelBvcG92ZXJDb250ZW50XT0ndmFsdWUgfCBkZWZWYWw6aXRlbS5kZWZhdWx0VmFsJ1xyXG4gICAgICAgY2xhc3M9XCJ2aWV3LXRleHRcIiAqbmdTd2l0Y2hEZWZhdWx0IFtpbm5lckhUTUxdPVwidmFsdWUgfCBkZWZWYWw6aXRlbS5kZWZhdWx0VmFsXCI+PC9kaXY+XHJcbjwvbmctY29udGFpbmVyPlxyXG5cclxuIl19
|