ngx-histaff-alpha 3.6.2 → 3.6.3

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.
@@ -7,6 +7,8 @@ import { WorkShiftDndService } from '../../services/work-shift-dnd.service';
7
7
  import { MultiLanguageService } from '../../services/multi-language.service';
8
8
  import { TableCellPipe } from '../pipes/table-cell.pipe';
9
9
  import { TooltipDirective } from '../tooltip/tooltip.directive';
10
+ import { DndService } from '../../services/dnd.service';
11
+ import { EnumDragType } from '../../enum/EnumDragType';
10
12
  import * as i0 from "@angular/core";
11
13
  import * as i1 from "@angular/common";
12
14
  export class CoreShiftCardComponent extends CoreFormControlBaseComponent {
@@ -15,6 +17,7 @@ export class CoreShiftCardComponent extends CoreFormControlBaseComponent {
15
17
  this.$container = viewChild('container');
16
18
  this.cdr = inject(ChangeDetectorRef);
17
19
  this.workShiftDndService = inject(WorkShiftDndService);
20
+ this.dndService = inject(DndService);
18
21
  this.mls = inject(MultiLanguageService);
19
22
  }
20
23
  writeValue(obj) {
@@ -55,7 +58,7 @@ export class CoreShiftCardComponent extends CoreFormControlBaseComponent {
55
58
  setTimeout(() => {
56
59
  fromEvent(this.$container()?.nativeElement, 'dragstart')
57
60
  .subscribe((ev) => {
58
- console.log("dragstart");
61
+ this.dndService.dragType = EnumDragType.WORK_SHIFT;
59
62
  ev.dataTransfer.setData("text/plain", `${this.value.code}`);
60
63
  this.workShiftDndService.draggingData$.next(ev.dataTransfer.getData("text/plain"));
61
64
  this.workShiftDndService.draggingShift$.next(this.value);
@@ -104,4 +107,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
104
107
  }
105
108
  ], template: "<div #container class=\"core-shift-card-container\" draggable=\"true\">\r\n <div #shiftDetails class=\"shift-details p-relative\">\r\n <div class=\"ellipsis p-relative\" [appTooltip]=\"name\">\r\n {{ code }}: {{ name }}\r\n </div>\r\n\r\n <div class=\"ellipsis p-relative\">\r\n <i class=\"fas fa-clock-o\"></i>\r\n @if (!!hoursStart && !!hoursStop) {\r\n <span> \u2022 </span>\r\n <span>{{ hoursStart | tableCell : 'TIME_HHMM' : lang }} - {{ hoursStop | tableCell : 'TIME_HHMM' : lang }}</span>\r\n <span> \u2022 </span>\r\n <span>{{ (duration || 0) - (breakDuration || 0) }}h</span>\r\n }\r\n </div>\r\n\r\n <div class=\"ellipsis p-relative\">\r\n <i class=\"fas fa-cutlery\"></i>\r\n @if (!!breakDuration) {\r\n <span>\r\n {{ breaksFrom | tableCell : 'TIME_HHMM' : lang }} - {{ breaksTo | tableCell : 'TIME_HHMM' : lang }} \u2022\r\n {{ breakDuration | number:'1.0-1'}}h\r\n </span>\r\n } @else {\r\n -\r\n }\r\n </div>\r\n\r\n <div class=\"ellipsis second-line\">\r\n <span>\r\n\r\n <span class=\"symbol\">\r\n\r\n {{ symbolCode }}\r\n\r\n </span>\r\n\r\n @if (isOff || isHolidayCal || isHaveSal || isInsArising) {\r\n <span>\u2022</span>\r\n }\r\n\r\n @if (isOff) {\r\n <i class=\"fas fa-plug-circle-minus\"></i>\r\n }\r\n @if (isHolidayCal) {\r\n <i class=\"fas fa-champagne-glasses\"></i>\r\n }\r\n @if (isHaveSal) {\r\n <i class=\"fas fa-sack-dollar\"></i>\r\n }\r\n @if (isInsArising) {\r\n <i class=\"fas fa-car-burst\"></i>\r\n }\r\n </span>\r\n </div>\r\n <div class=\"menu p-absolute\">\r\n <i class=\"feather-more-vertical\"></i>\r\n </div>\r\n\r\n </div>\r\n</div>", styles: [".core-shift-card-container{background-color:#dff6dd;padding:15px;color:#696969;cursor:move;border-radius:2px}.core-shift-card-container .menu{position:absolute;top:35px;right:0;cursor:pointer}.core-shift-card-container .symbol{background-color:#fff;border:1px solid gray;padding:2px;height:27px;display:inline-block;border-radius:2px}\n"] }]
106
109
  }] });
107
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1zaGlmdC1jYXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1oaXN0YWZmLWFscGhhL3NyYy9saWIvYXBwL2xpYnJhcmllcy9jb3JlLXNoaWZ0LWNhcmQvY29yZS1zaGlmdC1jYXJkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1oaXN0YWZmLWFscGhhL3NyYy9saWIvYXBwL2xpYnJhcmllcy9jb3JlLXNoaWZ0LWNhcmQvY29yZS1zaGlmdC1jYXJkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsdUJBQXVCLEVBQW9DLFNBQVMsRUFBYyxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkosT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9DLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDREQUE0RCxDQUFDO0FBRTFHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7O0FBcUJoRSxNQUFNLE9BQU8sc0JBQXVCLFNBQVEsNEJBQTRCO0lBbkJ4RTs7UUFzQkUsZUFBVSxHQUFHLFNBQVMsQ0FBYSxXQUFXLENBQUMsQ0FBQztRQUVoRCxRQUFHLEdBQUcsTUFBTSxDQUFDLGlC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QUFDLENBQUM7Z0JBQ2hELElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUN4RCxJQUFJLENBQUMsbUJBQW1CLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFBO1lBQ3ZELENBQUMsQ0FBQyxDQUFBO1FBQ04sQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO0lBRUQsV0FBVztRQUNULEVBQUU7SUFDSixDQUFDOzhHQTVGVSxzQkFBc0I7a0dBQXRCLHNCQUFzQiw4REFWdEI7WUFDVDtnQkFDRSxPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixLQUFLLEVBQUUsSUFBSTtnQkFDWCxXQUFXLEVBQUUsc0JBQXNCO2FBQ3BDO1NBQ0YsMEtDMUJILCtuRUE0RE0scVlENUNGLGFBQWEsaURBQ2IsWUFBWSx1RkFDWixnQkFBZ0I7OzJGQVlQLHNCQUFzQjtrQkFuQmxDLFNBQVM7K0JBQ0UsaUJBQWlCLGNBQ2YsSUFBSSxtQkFDQyx1QkFBdUIsQ0FBQyxNQUFNLFdBQ3RDO3dCQUNQLGFBQWE7d0JBQ2IsWUFBWTt3QkFDWixnQkFBZ0I7cUJBQ2pCLGFBQ1U7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsS0FBSyxFQUFFLElBQUk7NEJBQ1gsV0FBVyx3QkFBd0I7eUJBQ3BDO3FCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3ksIHZpZXdDaGlsZCwgRWxlbWVudFJlZiwgaW5qZWN0LCBDaGFuZ2VEZXRlY3RvclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBmcm9tRXZlbnQgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQ29yZUZvcm1Db250cm9sQmFzZUNvbXBvbmVudCB9IGZyb20gJy4uL2NvcmUtZm9ybS1jb250cm9sLWJhc2UvY29yZS1mb3JtLWNvbnRyb2wtYmFzZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBJQXRTaGlmdCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvdGltZS1tYW5hZ2VtZW50L0lBdFNoaWZ0JztcclxuaW1wb3J0IHsgV29ya1NoaWZ0RG5kU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3dvcmstc2hpZnQtZG5kLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBNdWx0aUxhbmd1YWdlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL211bHRpLWxhbmd1YWdlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBUYWJsZUNlbGxQaXBlIH0gZnJvbSAnLi4vcGlwZXMvdGFibGUtY2VsbC5waXBlJztcclxuaW1wb3J0IHsgVG9vbHRpcERpcmVjdGl2ZSB9IGZyb20gJy4uL3Rvb2x0aXAvdG9vbHRpcC5kaXJlY3RpdmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdjb3JlLXNoaWZ0LWNhcmQnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgVGFibGVDZWxsUGlwZSxcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIFRvb2x0aXBEaXJlY3RpdmVcclxuICBdLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBDb3JlU2hpZnRDYXJkQ29tcG9uZW50XHJcbiAgICB9XHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vY29yZS1zaGlmdC1jYXJkLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vY29yZS1zaGlmdC1jYXJkLmNvbXBvbmVudC5zY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29yZVNoaWZ0Q2FyZENvbXBvbmVudCBleHRlbmRzIENvcmVGb3JtQ29udHJvbEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XHJcbiAgb3ZlcnJpZGUgdmFsdWUhOiBJQXRTaGlmdCB8IG51bGw7XHJcblxyXG4gICRjb250YWluZXIgPSB2aWV3Q2hpbGQ8RWxlbWVudFJlZj4oJ2NvbnRhaW5lcicpO1xyXG5cclxuICBjZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG4gIHdvcmtTaGlmdERuZFNlcnZpY2UgPSBpbmplY3QoV29ya1NoaWZ0RG5kU2VydmljZSk7XHJcbiAgbWxzID0gaW5qZWN0KE11bHRpTGFuZ3VhZ2VTZXJ2aWNlKTtcclxuICBsYW5nITogc3RyaW5nO1xyXG5cclxuICBjb2RlITogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gIG5hbWUhOiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgaG91cnNTdGFydCE6IERhdGUgfCB1bmRlZmluZWQ7XHJcbiAgaG91cnNTdG9wITogRGF0ZSB8IHVuZGVmaW5lZDtcclxuICBicmVha3NGcm9tITogRGF0ZSB8IHVuZGVmaW5lZDtcclxuICBicmVha3NUbyE6IERhdGUgfCB1bmRlZmluZWQ7XHJcbiAgc3ltYm9sQ29kZSE6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICBzeW1ib2xOYW1lITogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gIGlzT2ZmITogYm9vbGVhbiB8IHVuZGVmaW5lZDtcclxuICBpc0hvbGlkYXlDYWwhOiBib29sZWFuIHwgdW5kZWZpbmVkO1xyXG4gIGlzSGF2ZVNhbCE6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XHJcbiAgaXNJbnNBcmlzaW5nITogYm9vbGVhbiB8IHVuZGVmaW5lZDtcclxuICBkdXJhdGlvbiE6IG51bWJlciB8IHVuZGVmaW5lZDtcclxuICBicmVha0R1cmF0aW9uITogbnVtYmVyIHwgdW5kZWZpbmVkO1xyXG4gIGRlbGV0ZWQhOiBib29sZWFuIHwgdW5kZWZpbmVkO1xyXG4gIGFkZGVkITogYm9vbGVhbiB8IHVuZGVmaW5lZDtcclxuXHJcbiAgb3ZlcnJpZGUgd3JpdGVWYWx1ZShvYmo6IElBdFNoaWZ0IHwgbnVsbCk6IHZvaWQge1xyXG4gICAgdGhpcy52YWx1ZSA9IG9iajtcclxuICAgIHRoaXMuY29kZSA9IG9iaj8uY29kZTtcclxuICAgIHRoaXMubmFtZSA9IG9iaj8ubmFtZTtcclxuICAgIGlmICghIW9iaj8uaG91cnNTdGFydCkgdGhpcy5ob3Vyc1N0YXJ0ID0gbmV3IERhdGUob2JqPy5ob3Vyc1N0YXJ0KTtcclxuICAgIGlmICghIW9iaj8uaG91cnNTdG9wKSB0aGlzLmhvdXJzU3RvcCA9IG5ldyBEYXRlKG9iaj8uaG91cnNTdG9wKTtcclxuICAgIGlmICghIW9iaj8uYnJlYWtzRnJvbSkgdGhpcy5icmVha3NGcm9tID0gbmV3IERhdGUob2JqPy5icmVha3NGcm9tKTtcclxuICAgIGlmICghIW9iaj8uYnJlYWtzVG8pIHRoaXMuYnJlYWtzVG8gPSBuZXcgRGF0ZShvYmo/LmJyZWFrc1RvKTtcclxuICAgIHRoaXMuc3ltYm9sQ29kZSA9IG9iaj8uc3ltYm9sLmNvZGU7XHJcbiAgICB0aGlzLnN5bWJvbE5hbWUgPSBvYmo/LnN5bWJvbC5uYW1lO1xyXG4gICAgdGhpcy5pc09mZiA9IG9iaj8uc3ltYm9sLmlzT2ZmO1xyXG4gICAgdGhpcy5pc0hvbGlkYXlDYWwgPSBvYmo/LnN5bWJvbC5pc0hvbGlkYXlDYWw7XHJcbiAgICB0aGlzLmlzSGF2ZVNhbCA9IG9iaj8uc3ltYm9sLmlzSGF2ZVNhbDtcclxuICAgIHRoaXMuaXNJbnNBcmlzaW5nID0gb2JqPy5zeW1ib2wuaXNJbnNBcmlzaW5nO1xyXG4gICAgdHJ5IHtcclxuICAgICAgdGhpcy5kdXJhdGlvbiA9ICghIXRoaXMuaG91cnNTdGFydCAmJiAhIXRoaXMuaG91cnNTdG9wKSA/ICh0aGlzLmhvdXJzU3RvcC5nZXRUaW1lKCkgLSB0aGlzLmhvdXJzU3RhcnQuZ2V0VGltZSgpKSAvIDEwMDAgLyA2MCAvIDYwIDogdW5kZWZpbmVkXHJcbiAgICB9IGNhdGNoIHtcclxuICAgICAgdGhpcy5kdXJhdGlvbiA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuICAgIHRyeSB7XHJcbiAgICAgIHRoaXMuYnJlYWtEdXJhdGlvbiA9ICghIXRoaXMuYnJlYWtzRnJvbSAmJiAhIXRoaXMuYnJlYWtzVG8pID8gKHRoaXMuYnJlYWtzVG8uZ2V0VGltZSgpIC0gdGhpcy5icmVha3NGcm9tLmdldFRpbWUoKSkgLyAxMDAwIC8gNjAgLyA2MCA6IHVuZGVmaW5lZFxyXG4gICAgfSBjYXRjaCB7XHJcbiAgICAgIHRoaXMuYnJlYWtEdXJhdGlvbiA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5tbHMubGFuZyQuc3Vic2NyaWJlKHggPT4gdGhpcy5sYW5nID0geCk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuXHJcbiAgICAgIGZyb21FdmVudCh0aGlzLiRjb250YWluZXIoKT8ubmF0aXZlRWxlbWVudCwgJ2RyYWdzdGFydCcpXHJcbiAgICAgICAgLnN1YnNjcmliZSgoZXY6IGFueSkgPT4ge1xyXG4gICAgICAgICAgY29uc29sZS5sb2coXCJkcmFnc3RhcnRcIilcclxuICAgICAgICAgIGV2LmRhdGFUcmFuc2Zlci5zZXREYXRhKFwidGV4dC9wbGFpblwiLCBgJHt0aGlzLnZhbHVlIS5jb2RlfWApO1xyXG4gICAgICAgICAgdGhpcy53b3JrU2hpZnREbmRTZXJ2aWNlLmRyYWdnaW5nRGF0YSQubmV4dChldi5kYXRhVHJhbnNmZXIuZ2V0RGF0YShcInRleHQvcGxhaW5cIikpO1xyXG4gICAgICAgICAgdGhpcy53b3JrU2hpZnREbmRTZXJ2aWNlLmRyYWdnaW5nU2hpZnQkLm5leHQodGhpcy52YWx1ZSEpO1xyXG4gICAgICAgICAgdGhpcy53b3JrU2hpZnREbmRTZXJ2aWNlLmRyYWdnaW5nRnJvbUNlbGxJZCQubmV4dCgnJyk7XHJcbiAgICAgICAgfSlcclxuXHJcbiAgICAgIGZyb21FdmVudCh0aGlzLiRjb250YWluZXIoKT8ubmF0aXZlRWxlbWVudCwgJ2RyYWcnKVxyXG4gICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgIGRlYm91bmNlVGltZSgyMDApXHJcbiAgICAgICAgKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoKGV2OiBhbnkpID0+IHtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKFwiZHJhZ1wiKVxyXG4gICAgICAgIH0pXHJcblxyXG4gICAgICBmcm9tRXZlbnQodGhpcy4kY29udGFpbmVyKCk/Lm5hdGl2ZUVsZW1lbnQsICdkcmFnZW5kJylcclxuICAgICAgICAuc3Vic2NyaWJlKChldjogYW55KSA9PiB7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZyhcImRyYWdlbmRcIilcclxuICAgICAgICAgIC8vIEFjY29yZGluZyB0byB0aGUgSFRNTDUgRHJhZyBhbmQgRHJvcCBBUEksIFxyXG4gICAgICAgICAgLy8gZGF0YVRyYW5zZmVyIGlzIGNsZWFyZWQgb3IgcmVzZXQgYXQgdGhlIGVuZCBvZiB0aGUgZHJhZyBvcGVyYXRpb24uIFxyXG4gICAgICAgICAgLy8gVGhpcyBtZWFucyB0aGF0IHRoZSBkYXRhIHlvdSBzZXQgaW4gZHJhZ3N0YXJ0IGlzIG5vIGxvbmdlciBhdmFpbGFibGUgaW4gZHJhZ2VuZC5cclxuICAgICAgICAgIHRoaXMud29ya1NoaWZ0RG5kU2VydmljZS5kcmFnZ2luZ0RhdGEkLm5leHQoJycpO1xyXG4gICAgICAgICAgdGhpcy53b3JrU2hpZnREbmRTZXJ2aWNlLmRyYWdnaW5nU2hpZnQkLm5leHQodW5kZWZpbmVkKTtcclxuICAgICAgICAgIHRoaXMud29ya1NoaWZ0RG5kU2VydmljZS5kcmFnZ2luZ0Zyb21DZWxsSWQkLm5leHQoJycpXHJcbiAgICAgICAgfSlcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIC8vXHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgI2NvbnRhaW5lciBjbGFzcz1cImNvcmUtc2hpZnQtY2FyZC1jb250YWluZXJcIiBkcmFnZ2FibGU9XCJ0cnVlXCI+XHJcbiAgICA8ZGl2ICNzaGlmdERldGFpbHMgY2xhc3M9XCJzaGlmdC1kZXRhaWxzIHAtcmVsYXRpdmVcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZWxsaXBzaXMgcC1yZWxhdGl2ZVwiIFthcHBUb29sdGlwXT1cIm5hbWVcIj5cclxuICAgICAgICAgICAge3sgY29kZSB9fToge3sgbmFtZSB9fVxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZWxsaXBzaXMgcC1yZWxhdGl2ZVwiPlxyXG4gICAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS1jbG9jay1vXCI+PC9pPlxyXG4gICAgICAgICAgICBAaWYgKCEhaG91cnNTdGFydCAmJiAhIWhvdXJzU3RvcCkge1xyXG4gICAgICAgICAgICAgICAgPHNwYW4+IOKAoiA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj57eyBob3Vyc1N0YXJ0IHwgdGFibGVDZWxsIDogJ1RJTUVfSEhNTScgOiBsYW5nIH19IC0ge3sgaG91cnNTdG9wIHwgdGFibGVDZWxsIDogJ1RJTUVfSEhNTScgOiBsYW5nIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+IOKAoiA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj57eyAoZHVyYXRpb24gfHwgMCkgLSAoYnJlYWtEdXJhdGlvbiB8fCAwKSB9fWg8L3NwYW4+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImVsbGlwc2lzIHAtcmVsYXRpdmVcIj5cclxuICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtY3V0bGVyeVwiPjwvaT5cclxuICAgICAgICAgICAgQGlmICghIWJyZWFrRHVyYXRpb24pIHtcclxuICAgICAgICAgICAgPHNwYW4+XHJcbiAgICAgICAgICAgICAgICB7eyBicmVha3NGcm9tIHwgdGFibGVDZWxsIDogJ1RJTUVfSEhNTScgOiBsYW5nIH19IC0ge3sgYnJlYWtzVG8gfCB0YWJsZUNlbGwgOiAnVElNRV9ISE1NJyA6IGxhbmcgfX0g4oCiXHJcbiAgICAgICAgICAgICAgICB7eyBicmVha0R1cmF0aW9uIHwgbnVtYmVyOicxLjAtMSd9fWhcclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICB9IEBlbHNlIHtcclxuICAgICAgICAgICAgLVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJlbGxpcHNpcyBzZWNvbmQtbGluZVwiPlxyXG4gICAgICAgICAgICA8c3Bhbj5cclxuXHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN5bWJvbFwiPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICB7eyBzeW1ib2xDb2RlIH19XHJcblxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG5cclxuICAgICAgICAgICAgICAgIEBpZiAoaXNPZmYgfHwgaXNIb2xpZGF5Q2FsIHx8IGlzSGF2ZVNhbCB8fCBpc0luc0FyaXNpbmcpIHtcclxuICAgICAgICAgICAgICAgIDxzcGFuPuKAojwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBAaWYgKGlzT2ZmKSB7XHJcbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS1wbHVnLWNpcmNsZS1taW51c1wiPjwvaT5cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIEBpZiAoaXNIb2xpZGF5Q2FsKSB7XHJcbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS1jaGFtcGFnbmUtZ2xhc3Nlc1wiPjwvaT5cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIEBpZiAoaXNIYXZlU2FsKSB7XHJcbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS1zYWNrLWRvbGxhclwiPjwvaT5cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIEBpZiAoaXNJbnNBcmlzaW5nKSB7XHJcbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS1jYXItYnVyc3RcIj48L2k+XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibWVudSBwLWFic29sdXRlXCI+XHJcbiAgICAgICAgICAgIDxpIGNsYXNzPVwiZmVhdGhlci1tb3JlLXZlcnRpY2FsXCI+PC9pPlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj4iXX0=
110
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1zaGlmdC1jYXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1oaXN0YWZmLWFscGhhL3NyYy9saWIvYXBwL2xpYnJhcmllcy9jb3JlLXNoaWZ0LWNhcmQvY29yZS1zaGlmdC1jYXJkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1oaXN0YWZmLWFscGhhL3NyYy9saWIvYXBwL2xpYnJhcmllcy9jb3JlLXNoaWZ0LWNhcmQvY29yZS1zaGlmdC1jYXJkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsdUJBQXVCLEVBQW9DLFNBQVMsRUFBYyxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkosT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9DLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDREQUE0RCxDQUFDO0FBRTFHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7QUFxQnZELE1BQU0sT0FBTyxzQkFBdUIsU0FB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QUU7Z0JBQ3JCLE9BQU8sQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUE7Z0JBQ3RCLDZDQUE2QztnQkFDN0Msc0VBQXNFO2dCQUN0RSxtRkFBbUY7Z0JBQ25GLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUNoRCxJQUFJLENBQUMsbUJBQW1CLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztnQkFDeEQsSUFBSSxDQUFDLG1CQUFtQixDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQTtZQUN2RCxDQUFDLENBQUMsQ0FBQTtRQUNOLENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVELFdBQVc7UUFDVCxFQUFFO0lBQ0osQ0FBQzs4R0E3RlUsc0JBQXNCO2tHQUF0QixzQkFBc0IsOERBVnRCO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsS0FBSyxFQUFFLElBQUk7Z0JBQ1gsV0FBVyxFQUFFLHNCQUFzQjthQUNwQztTQUNGLDBLQzVCSCwrbkVBNERNLHFZRDFDRixhQUFhLGlEQUNiLFlBQVksdUZBQ1osZ0JBQWdCOzsyRkFZUCxzQkFBc0I7a0JBbkJsQyxTQUFTOytCQUNFLGlCQUFpQixjQUNmLElBQUksbUJBQ0MsdUJBQXVCLENBQUMsTUFBTSxXQUN0Qzt3QkFDUCxhQUFhO3dCQUNiLFlBQVk7d0JBQ1osZ0JBQWdCO3FCQUNqQixhQUNVO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLEtBQUssRUFBRSxJQUFJOzRCQUNYLFdBQVcsd0JBQXdCO3lCQUNwQztxQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95LCB2aWV3Q2hpbGQsIEVsZW1lbnRSZWYsIGluamVjdCwgQ2hhbmdlRGV0ZWN0b3JSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZnJvbUV2ZW50IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IENvcmVGb3JtQ29udHJvbEJhc2VDb21wb25lbnQgfSBmcm9tICcuLi9jb3JlLWZvcm0tY29udHJvbC1iYXNlL2NvcmUtZm9ybS1jb250cm9sLWJhc2UuY29tcG9uZW50JztcclxuaW1wb3J0IHsgSUF0U2hpZnQgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL3RpbWUtbWFuYWdlbWVudC9JQXRTaGlmdCc7XHJcbmltcG9ydCB7IFdvcmtTaGlmdERuZFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy93b3JrLXNoaWZ0LWRuZC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTXVsdGlMYW5ndWFnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9tdWx0aS1sYW5ndWFnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVGFibGVDZWxsUGlwZSB9IGZyb20gJy4uL3BpcGVzL3RhYmxlLWNlbGwucGlwZSc7XHJcbmltcG9ydCB7IFRvb2x0aXBEaXJlY3RpdmUgfSBmcm9tICcuLi90b29sdGlwL3Rvb2x0aXAuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgRG5kU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2RuZC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRW51bURyYWdUeXBlIH0gZnJvbSAnLi4vLi4vZW51bS9FbnVtRHJhZ1R5cGUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdjb3JlLXNoaWZ0LWNhcmQnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgVGFibGVDZWxsUGlwZSxcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIFRvb2x0aXBEaXJlY3RpdmVcclxuICBdLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBDb3JlU2hpZnRDYXJkQ29tcG9uZW50XHJcbiAgICB9XHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vY29yZS1zaGlmdC1jYXJkLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vY29yZS1zaGlmdC1jYXJkLmNvbXBvbmVudC5zY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29yZVNoaWZ0Q2FyZENvbXBvbmVudCBleHRlbmRzIENvcmVGb3JtQ29udHJvbEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XHJcbiAgb3ZlcnJpZGUgdmFsdWUhOiBJQXRTaGlmdCB8IG51bGw7XHJcblxyXG4gICRjb250YWluZXIgPSB2aWV3Q2hpbGQ8RWxlbWVudFJlZj4oJ2NvbnRhaW5lcicpO1xyXG5cclxuICBjZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG4gIHdvcmtTaGlmdERuZFNlcnZpY2UgPSBpbmplY3QoV29ya1NoaWZ0RG5kU2VydmljZSk7XHJcbiAgZG5kU2VydmljZSA9IGluamVjdChEbmRTZXJ2aWNlKTtcclxuICBtbHMgPSBpbmplY3QoTXVsdGlMYW5ndWFnZVNlcnZpY2UpO1xyXG4gIGxhbmchOiBzdHJpbmc7XHJcblxyXG4gIGNvZGUhOiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgbmFtZSE6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICBob3Vyc1N0YXJ0ITogRGF0ZSB8IHVuZGVmaW5lZDtcclxuICBob3Vyc1N0b3AhOiBEYXRlIHwgdW5kZWZpbmVkO1xyXG4gIGJyZWFrc0Zyb20hOiBEYXRlIHwgdW5kZWZpbmVkO1xyXG4gIGJyZWFrc1RvITogRGF0ZSB8IHVuZGVmaW5lZDtcclxuICBzeW1ib2xDb2RlITogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gIHN5bWJvbE5hbWUhOiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgaXNPZmYhOiBib29sZWFuIHwgdW5kZWZpbmVkO1xyXG4gIGlzSG9saWRheUNhbCE6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XHJcbiAgaXNIYXZlU2FsITogYm9vbGVhbiB8IHVuZGVmaW5lZDtcclxuICBpc0luc0FyaXNpbmchOiBib29sZWFuIHwgdW5kZWZpbmVkO1xyXG4gIGR1cmF0aW9uITogbnVtYmVyIHwgdW5kZWZpbmVkO1xyXG4gIGJyZWFrRHVyYXRpb24hOiBudW1iZXIgfCB1bmRlZmluZWQ7XHJcbiAgZGVsZXRlZCE6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XHJcbiAgYWRkZWQhOiBib29sZWFuIHwgdW5kZWZpbmVkO1xyXG5cclxuICBvdmVycmlkZSB3cml0ZVZhbHVlKG9iajogSUF0U2hpZnQgfCBudWxsKTogdm9pZCB7XHJcbiAgICB0aGlzLnZhbHVlID0gb2JqO1xyXG4gICAgdGhpcy5jb2RlID0gb2JqPy5jb2RlO1xyXG4gICAgdGhpcy5uYW1lID0gb2JqPy5uYW1lO1xyXG4gICAgaWYgKCEhb2JqPy5ob3Vyc1N0YXJ0KSB0aGlzLmhvdXJzU3RhcnQgPSBuZXcgRGF0ZShvYmo/LmhvdXJzU3RhcnQpO1xyXG4gICAgaWYgKCEhb2JqPy5ob3Vyc1N0b3ApIHRoaXMuaG91cnNTdG9wID0gbmV3IERhdGUob2JqPy5ob3Vyc1N0b3ApO1xyXG4gICAgaWYgKCEhb2JqPy5icmVha3NGcm9tKSB0aGlzLmJyZWFrc0Zyb20gPSBuZXcgRGF0ZShvYmo/LmJyZWFrc0Zyb20pO1xyXG4gICAgaWYgKCEhb2JqPy5icmVha3NUbykgdGhpcy5icmVha3NUbyA9IG5ldyBEYXRlKG9iaj8uYnJlYWtzVG8pO1xyXG4gICAgdGhpcy5zeW1ib2xDb2RlID0gb2JqPy5zeW1ib2wuY29kZTtcclxuICAgIHRoaXMuc3ltYm9sTmFtZSA9IG9iaj8uc3ltYm9sLm5hbWU7XHJcbiAgICB0aGlzLmlzT2ZmID0gb2JqPy5zeW1ib2wuaXNPZmY7XHJcbiAgICB0aGlzLmlzSG9saWRheUNhbCA9IG9iaj8uc3ltYm9sLmlzSG9saWRheUNhbDtcclxuICAgIHRoaXMuaXNIYXZlU2FsID0gb2JqPy5zeW1ib2wuaXNIYXZlU2FsO1xyXG4gICAgdGhpcy5pc0luc0FyaXNpbmcgPSBvYmo/LnN5bWJvbC5pc0luc0FyaXNpbmc7XHJcbiAgICB0cnkge1xyXG4gICAgICB0aGlzLmR1cmF0aW9uID0gKCEhdGhpcy5ob3Vyc1N0YXJ0ICYmICEhdGhpcy5ob3Vyc1N0b3ApID8gKHRoaXMuaG91cnNTdG9wLmdldFRpbWUoKSAtIHRoaXMuaG91cnNTdGFydC5nZXRUaW1lKCkpIC8gMTAwMCAvIDYwIC8gNjAgOiB1bmRlZmluZWRcclxuICAgIH0gY2F0Y2gge1xyXG4gICAgICB0aGlzLmR1cmF0aW9uID0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gICAgdHJ5IHtcclxuICAgICAgdGhpcy5icmVha0R1cmF0aW9uID0gKCEhdGhpcy5icmVha3NGcm9tICYmICEhdGhpcy5icmVha3NUbykgPyAodGhpcy5icmVha3NUby5nZXRUaW1lKCkgLSB0aGlzLmJyZWFrc0Zyb20uZ2V0VGltZSgpKSAvIDEwMDAgLyA2MCAvIDYwIDogdW5kZWZpbmVkXHJcbiAgICB9IGNhdGNoIHtcclxuICAgICAgdGhpcy5icmVha0R1cmF0aW9uID0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLm1scy5sYW5nJC5zdWJzY3JpYmUoeCA9PiB0aGlzLmxhbmcgPSB4KTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG5cclxuICAgICAgZnJvbUV2ZW50KHRoaXMuJGNvbnRhaW5lcigpPy5uYXRpdmVFbGVtZW50LCAnZHJhZ3N0YXJ0JylcclxuICAgICAgICAuc3Vic2NyaWJlKChldjogYW55KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmRuZFNlcnZpY2UuZHJhZ1R5cGUgPSBFbnVtRHJhZ1R5cGUuV09SS19TSElGVDtcclxuICAgICAgICAgIGV2LmRhdGFUcmFuc2Zlci5zZXREYXRhKFwidGV4dC9wbGFpblwiLCBgJHt0aGlzLnZhbHVlIS5jb2RlfWApO1xyXG4gICAgICAgICAgdGhpcy53b3JrU2hpZnREbmRTZXJ2aWNlLmRyYWdnaW5nRGF0YSQubmV4dChldi5kYXRhVHJhbnNmZXIuZ2V0RGF0YShcInRleHQvcGxhaW5cIikpO1xyXG4gICAgICAgICAgdGhpcy53b3JrU2hpZnREbmRTZXJ2aWNlLmRyYWdnaW5nU2hpZnQkLm5leHQodGhpcy52YWx1ZSEpO1xyXG4gICAgICAgICAgdGhpcy53b3JrU2hpZnREbmRTZXJ2aWNlLmRyYWdnaW5nRnJvbUNlbGxJZCQubmV4dCgnJyk7XHJcbiAgICAgICAgfSlcclxuXHJcbiAgICAgIGZyb21FdmVudCh0aGlzLiRjb250YWluZXIoKT8ubmF0aXZlRWxlbWVudCwgJ2RyYWcnKVxyXG4gICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgIGRlYm91bmNlVGltZSgyMDApXHJcbiAgICAgICAgKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoKGV2OiBhbnkpID0+IHtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKFwiZHJhZ1wiKVxyXG4gICAgICAgIH0pXHJcblxyXG4gICAgICBmcm9tRXZlbnQodGhpcy4kY29udGFpbmVyKCk/Lm5hdGl2ZUVsZW1lbnQsICdkcmFnZW5kJylcclxuICAgICAgICAuc3Vic2NyaWJlKChldjogYW55KSA9PiB7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZyhcImRyYWdlbmRcIilcclxuICAgICAgICAgIC8vIEFjY29yZGluZyB0byB0aGUgSFRNTDUgRHJhZyBhbmQgRHJvcCBBUEksIFxyXG4gICAgICAgICAgLy8gZGF0YVRyYW5zZmVyIGlzIGNsZWFyZWQgb3IgcmVzZXQgYXQgdGhlIGVuZCBvZiB0aGUgZHJhZyBvcGVyYXRpb24uIFxyXG4gICAgICAgICAgLy8gVGhpcyBtZWFucyB0aGF0IHRoZSBkYXRhIHlvdSBzZXQgaW4gZHJhZ3N0YXJ0IGlzIG5vIGxvbmdlciBhdmFpbGFibGUgaW4gZHJhZ2VuZC5cclxuICAgICAgICAgIHRoaXMud29ya1NoaWZ0RG5kU2VydmljZS5kcmFnZ2luZ0RhdGEkLm5leHQoJycpO1xyXG4gICAgICAgICAgdGhpcy53b3JrU2hpZnREbmRTZXJ2aWNlLmRyYWdnaW5nU2hpZnQkLm5leHQodW5kZWZpbmVkKTtcclxuICAgICAgICAgIHRoaXMud29ya1NoaWZ0RG5kU2VydmljZS5kcmFnZ2luZ0Zyb21DZWxsSWQkLm5leHQoJycpXHJcbiAgICAgICAgfSlcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIC8vXHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgI2NvbnRhaW5lciBjbGFzcz1cImNvcmUtc2hpZnQtY2FyZC1jb250YWluZXJcIiBkcmFnZ2FibGU9XCJ0cnVlXCI+XHJcbiAgICA8ZGl2ICNzaGlmdERldGFpbHMgY2xhc3M9XCJzaGlmdC1kZXRhaWxzIHAtcmVsYXRpdmVcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZWxsaXBzaXMgcC1yZWxhdGl2ZVwiIFthcHBUb29sdGlwXT1cIm5hbWVcIj5cclxuICAgICAgICAgICAge3sgY29kZSB9fToge3sgbmFtZSB9fVxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZWxsaXBzaXMgcC1yZWxhdGl2ZVwiPlxyXG4gICAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS1jbG9jay1vXCI+PC9pPlxyXG4gICAgICAgICAgICBAaWYgKCEhaG91cnNTdGFydCAmJiAhIWhvdXJzU3RvcCkge1xyXG4gICAgICAgICAgICAgICAgPHNwYW4+IOKAoiA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj57eyBob3Vyc1N0YXJ0IHwgdGFibGVDZWxsIDogJ1RJTUVfSEhNTScgOiBsYW5nIH19IC0ge3sgaG91cnNTdG9wIHwgdGFibGVDZWxsIDogJ1RJTUVfSEhNTScgOiBsYW5nIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+IOKAoiA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj57eyAoZHVyYXRpb24gfHwgMCkgLSAoYnJlYWtEdXJhdGlvbiB8fCAwKSB9fWg8L3NwYW4+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImVsbGlwc2lzIHAtcmVsYXRpdmVcIj5cclxuICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtY3V0bGVyeVwiPjwvaT5cclxuICAgICAgICAgICAgQGlmICghIWJyZWFrRHVyYXRpb24pIHtcclxuICAgICAgICAgICAgPHNwYW4+XHJcbiAgICAgICAgICAgICAgICB7eyBicmVha3NGcm9tIHwgdGFibGVDZWxsIDogJ1RJTUVfSEhNTScgOiBsYW5nIH19IC0ge3sgYnJlYWtzVG8gfCB0YWJsZUNlbGwgOiAnVElNRV9ISE1NJyA6IGxhbmcgfX0g4oCiXHJcbiAgICAgICAgICAgICAgICB7eyBicmVha0R1cmF0aW9uIHwgbnVtYmVyOicxLjAtMSd9fWhcclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICB9IEBlbHNlIHtcclxuICAgICAgICAgICAgLVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJlbGxpcHNpcyBzZWNvbmQtbGluZVwiPlxyXG4gICAgICAgICAgICA8c3Bhbj5cclxuXHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN5bWJvbFwiPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICB7eyBzeW1ib2xDb2RlIH19XHJcblxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG5cclxuICAgICAgICAgICAgICAgIEBpZiAoaXNPZmYgfHwgaXNIb2xpZGF5Q2FsIHx8IGlzSGF2ZVNhbCB8fCBpc0luc0FyaXNpbmcpIHtcclxuICAgICAgICAgICAgICAgIDxzcGFuPuKAojwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBAaWYgKGlzT2ZmKSB7XHJcbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS1wbHVnLWNpcmNsZS1taW51c1wiPjwvaT5cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIEBpZiAoaXNIb2xpZGF5Q2FsKSB7XHJcbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS1jaGFtcGFnbmUtZ2xhc3Nlc1wiPjwvaT5cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIEBpZiAoaXNIYXZlU2FsKSB7XHJcbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS1zYWNrLWRvbGxhclwiPjwvaT5cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIEBpZiAoaXNJbnNBcmlzaW5nKSB7XHJcbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS1jYXItYnVyc3RcIj48L2k+XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibWVudSBwLWFic29sdXRlXCI+XHJcbiAgICAgICAgICAgIDxpIGNsYXNzPVwiZmVhdGhlci1tb3JlLXZlcnRpY2FsXCI+PC9pPlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj4iXX0=
@@ -253,4 +253,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
253
253
  }
254
254
  ], template: "<div #container class=\"core-shift-cell-container\">\r\n @for (shift$ of shifts$$!; track $index) {\r\n <div #shiftSticker>\r\n <core-shift-sticker [shift$]=\"shift$\" [$shiftCellId]=\"shiftCellId\" [$width]=\"228\"\r\n [parentShifts$]=\"shifts$\"></core-shift-sticker>\r\n </div>\r\n }\r\n\r\n @if (!value?.length) {\r\n @if (!$hideStarterPlusSign()) {\r\n <div #firstAddWrapper class=\"first-add-wrapper\" (click)=\"onAdd($event)\">\r\n <i class=\"feather-plus\"></i>\r\n </div>\r\n } @else {\r\n <div #firstAddWrapper class=\"first-add-wrapper\">\r\n {{ 'DROP_A_SHIFT_HERE' | translate: lang }}\r\n </div>\r\n }\r\n }\r\n\r\n\r\n\r\n</div>", styles: [".core-shift-cell-container{--first-add-height: 36.59px;--first-add-width: 228px;--first-add-border: 3px solid gray;--first-add-opacity: 1;--first-add-color: gray;padding:15px;background-color:transparent;animation:fadeIn .2s ease-in}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.core-shift-cell-container .first-add-wrapper{display:flex;align-items:center;justify-content:center;height:var(--first-add-height);box-sizing:border-box;min-width:105px;max-width:228px;opacity:var(--first-add-opacity);border:var(--first-add-border)}.core-shift-cell-container.valid-drop{background-color:#dff6dd}.core-shift-cell-container.invalid-drop{background-color:#f08080}\n"] }]
255
255
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.WorkShiftDndService }, { type: i2.DialogService }, { type: i3.MultiLanguageService }, { type: i4.DndService }] });
256
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1zaGlmdC1jZWxsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1oaXN0YWZmLWFscGhhL3NyYy9saWIvYXBwL2xpYnJhcmllcy9jb3JlLXNoaWZ0LWNlbGwvY29yZS1zaGlmdC1jZWxsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1oaXN0YWZmLWFscGhhL3NyYy9saWIvYXBwL2xpYnJhcmllcy9jb3JlLXNoaWZ0LWNlbGwvY29yZS1zaGlmdC1jZWxsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsdUJBQXVCLEVBQUUsU0FBUyxFQUFjLEtBQUssRUFBRSxTQUFTLEVBQWdDLFlBQVksRUFBa0IsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BMLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBRS9GLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTlFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDREQUE0RCxDQUFDO0FBQzFHLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRW5ELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRTFELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMvRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUE7Ozs7OztBQTRCdEQsTUFBTSxPQUFPLHNCQUF1QixTQUFRLDRCQUE0QjtJQWU3RCxVQUFVLENBQUMsR0FBZTtRQUVqQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ1gsSUFBSSxDQUFDLENB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R0FBdEIsc0JBQXNCLCtqQkFWdEI7WUFDVDtnQkFDRSxPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixLQUFLLEVBQUUsSUFBSTtnQkFDWCxXQUFXLEVBQUUsc0JBQXNCO2FBQ3BDO1NBQ0Ysb1lDbkNILDJzQkFzQk0sNHNCRElGLHlCQUF5QiwrSUFDekIsYUFBYTs7MkZBWUosc0JBQXNCO2tCQWxCbEMsU0FBUzsrQkFDRSxpQkFBaUIsY0FDZixJQUFJLG1CQUNDLHVCQUF1QixDQUFDLE1BQU0sV0FDdEM7d0JBQ1AseUJBQXlCO3dCQUN6QixhQUFhO3FCQUNkLGFBQ1U7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsS0FBSyxFQUFFLElBQUk7NEJBQ1gsV0FBVyx3QkFBd0I7eUJBQ3BDO3FCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRWxlbWVudFJlZiwgaW5wdXQsIHZpZXdDaGlsZCwgQ2hhbmdlRGV0ZWN0b3JSZWYsIE9uRGVzdHJveSwgdmlld0NoaWxkcmVuLCBXcml0YWJsZVNpZ25hbCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvcmVTaGlmdFN0aWNrZXJDb21wb25lbnQgfSBmcm9tICcuLi9jb3JlLXNoaWZ0LXN0aWNrZXIvY29yZS1zaGlmdC1zdGlja2VyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IElBdFNoaWZ0IH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy90aW1lLW1hbmFnZW1lbnQvSUF0U2hpZnQnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGZpbHRlciwgZnJvbUV2ZW50LCBza2lwLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgV29ya1NoaWZ0RG5kU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3dvcmstc2hpZnQtZG5kLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDb3JlRm9ybUNvbnRyb2xCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi4vY29yZS1mb3JtLWNvbnRyb2wtYmFzZS9jb3JlLWZvcm0tY29udHJvbC1iYXNlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZGlhbG9nLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBFbnVtVHJhbnNsYXRlS2V5IH0gZnJvbSAnYWxwaGEtZ2xvYmFsLWNvbnN0YW50cyc7XHJcbmltcG9ydCB7IE11bHRpTGFuZ3VhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbXVsdGktbGFuZ3VhZ2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVBpcGUgfSBmcm9tICcuLi8uLi9hcHAtcGlwZXMvdHJhbnNsYXRlLnBpcGUnO1xyXG5pbXBvcnQgeyBFbnVtRHJhZ1R5cGUgfSBmcm9tICcuLi8uLi9lbnVtL0VudW1EcmFnVHlwZSdcclxuaW1wb3J0IHsgRG5kU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2RuZC5zZXJ2aWNlJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSURyb3BwYWJsZUV2ZW50U3Vic2NyaXB0aW9uIHtcclxuICBkcmFnZW50ZXI6IFN1YnNjcmlwdGlvbiB8IHVuZGVmaW5lZCxcclxuICBkcmFnb3ZlcjogU3Vic2NyaXB0aW9uIHwgdW5kZWZpbmVkLFxyXG4gIGRyYWdsZWF2ZTogU3Vic2NyaXB0aW9uIHwgdW5kZWZpbmVkLFxyXG4gIGRyb3A6IFN1YnNjcmlwdGlvbiB8IHVuZGVmaW5lZFxyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2NvcmUtc2hpZnQtY2VsbCcsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb3JlU2hpZnRTdGlja2VyQ29tcG9uZW50LFxyXG4gICAgVHJhbnNsYXRlUGlwZVxyXG4gIF0sXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICBtdWx0aTogdHJ1ZSxcclxuICAgICAgdXNlRXhpc3Rpbmc6IENvcmVTaGlmdENlbGxDb21wb25lbnRcclxuICAgIH1cclxuICBdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jb3JlLXNoaWZ0LWNlbGwuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9jb3JlLXNoaWZ0LWNlbGwuY29tcG9uZW50LnNjc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb3JlU2hpZnRDZWxsQ29tcG9uZW50IGV4dGVuZHMgQ29yZUZvcm1Db250cm9sQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XHJcblxyXG4gICRoaWRlU3RhcnRlclBsdXNTaWduID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xyXG4gICRoaWRlU3RpY2tlcnNXaGlsZURyYWdvdmVyID0gaW5wdXQ8Ym9vbGVhbj4odHJ1ZSk7XHJcblxyXG4gICRpc0RyYWdnaW5nT3ZlckNvbnRhaW5lcjogV3JpdGFibGVTaWduYWw8Ym9vbGVhbj4gPSBzaWduYWwoZmFsc2UpO1xyXG5cclxuICBvdmVycmlkZSB2YWx1ZSE6IElBdFNoaWZ0W107XHJcbiAgbGFuZyE6IHN0cmluZztcclxuXHJcbiAgc2hpZnRzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8SUF0U2hpZnRbXT4oW10pO1xyXG4gIHNoaWZ0cyQkOiBCZWhhdmlvclN1YmplY3Q8SUF0U2hpZnQ+W10gPSBbXTtcclxuXHJcbiAgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuXHJcbiAgb3ZlcnJpZGUgd3JpdGVWYWx1ZShvYmo6IElBdFNoaWZ0W10pOiB2b2lkIHtcclxuXHJcbiAgICBvYmo/Lm1hcCh4ID0+IHtcclxuICAgICAgaWYgKCF4LnRlbXBvcmFyeUlkKSB4LnRlbXBvcmFyeUlkID0gY3J5cHRvLnJhbmRvbVVVSUQoKTtcclxuICAgICAgeC5ob3Vyc1N0YXJ0ID0gISF4LmhvdXJzU3RhcnQgPyBuZXcgRGF0ZSh4LmhvdXJzU3RhcnQpIDogdW5kZWZpbmVkO1xyXG4gICAgICB4LmhvdXJzU3RvcCA9ICEheC5ob3Vyc1N0b3AgPyBuZXcgRGF0ZSh4LmhvdXJzU3RvcCkgOiB1bmRlZmluZWQ7XHJcbiAgICAgIGlmICghIXguYnJlYWtzRnJvbSkgeC5icmVha3NGcm9tID0gbmV3IERhdGUoeC5icmVha3NGcm9tKVxyXG4gICAgICBpZiAoISF4LmJyZWFrc1RvKSB4LmJyZWFrc1RvID0gbmV3IERhdGUoeC5icmVha3NUbylcclxuICAgIH0pXHJcblxyXG4gICAgdGhpcy52YWx1ZSA9IG9iajtcclxuICAgIGNvbnN0IG5ld1NoaWZ0cyQkOiBCZWhhdmlvclN1YmplY3Q8SUF0U2hpZnQ+W10gPSBbXTtcclxuICAgIG9iaj8ubWFwKHggPT4ge1xyXG4gICAgICBjb25zdCBzdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxJQXRTaGlmdD4oeCk7XHJcbiAgICAgIHN1YmplY3QucGlwZShza2lwKDEpKS5zdWJzY3JpYmUoY2hhbmdlID0+IHtcclxuICAgICAgICBjb25zdCBvYmpGaWx0ZXIgPSBvYmouZmlsdGVyKG0gPT4gbS5pZCA9PT0geC5pZClcclxuICAgICAgICBpZiAob2JqRmlsdGVyLmxlbmd0aCA9PT0gMSkge1xyXG4gICAgICAgICAgb2JqRmlsdGVyWzBdLmRlbGV0ZWQgPSBjaGFuZ2UuZGVsZXRlZDtcclxuICAgICAgICAgIG9iakZpbHRlclswXS5hZGRlZCA9IGNoYW5nZS5hZGRlZDtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gdGhpcy5vbkNoYW5nZShvYmopO1xyXG4gICAgICB9KTtcclxuICAgICAgbmV3U2hpZnRzJCQucHVzaChcclxuICAgICAgICBzdWJqZWN0XHJcbiAgICAgIClcclxuICAgIH0pXHJcbiAgICB0aGlzLnNoaWZ0cyQkID0gbmV3U2hpZnRzJCQ7XHJcbiAgICB0aGlzLmlzQWN0aXZlU3Vic2NyaXB0aW9uRm9yU2hpZnQkID0gZmFsc2U7XHJcbiAgICB0aGlzLnNoaWZ0cyQubmV4dCh0aGlzLnZhbHVlKTtcclxuICAgIHRoaXMuaXNBY3RpdmVTdWJzY3JpcHRpb25Gb3JTaGlmdCQgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgJGJhY2tncm91bmRDb2xvciA9IGlucHV0PHN0cmluZz4oJ3doaXRlJyk7XHJcbiAgJGNvbnRhaW5lciA9IHZpZXdDaGlsZDxFbGVtZW50UmVmPignY29udGFpbmVyJyk7XHJcbiAgJGZpcnN0QWRkV3JhcHBlciA9IHZpZXdDaGlsZDxFbGVtZW50UmVmPignZmlyc3RBZGRXcmFwcGVyJyk7XHJcbiAgJHNoaWZ0U3RpY2tlcnMgPSB2aWV3Q2hpbGRyZW48RWxlbWVudFJlZj4oJ3NoaWZ0U3RpY2tlcicpO1xyXG4gIHNoaWZ0Q2VsbElkOiBzdHJpbmcgPSBjcnlwdG8ucmFuZG9tVVVJRCgpO1xyXG5cclxuICBwcml2YXRlIGRyYWdPdmVyRWxlbWVudHM6IFNldDxFdmVudFRhcmdldD4gPSBuZXcgU2V0KCk7XHJcblxyXG4gIGRuZEV2ZW50U3Vic2NyaXB0aW9uczogSURyb3BwYWJsZUV2ZW50U3Vic2NyaXB0aW9uID0ge1xyXG4gICAgZHJhZ2VudGVyOiBuZXcgU3Vic2NyaXB0aW9uKCgpID0+IG51bGwpLFxyXG4gICAgZHJhZ292ZXI6IG5ldyBTdWJzY3JpcHRpb24oKCkgPT4gbnVsbCksXHJcbiAgICBkcm9wOiBuZXcgU3Vic2NyaXB0aW9uKCgpID0+IG51bGwpLFxyXG4gICAgZHJhZ2xlYXZlOiBuZXcgU3Vic2NyaXB0aW9uKCgpID0+IG51bGwpXHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHByaXZhdGUgd29ya1NoaWZ0RG5kU2VydmljZTogV29ya1NoaWZ0RG5kU2VydmljZSxcclxuICAgIHByaXZhdGUgZGlhbG9nU2VydmljZTogRGlhbG9nU2VydmljZSxcclxuICAgIHByaXZhdGUgbWxzOiBNdWx0aUxhbmd1YWdlU2VydmljZSxcclxuICAgIHByaXZhdGUgZG5kU2VydmljZTogRG5kU2VydmljZSxcclxuICApIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNsZWFuVXBTdWJzY3JpcHRpb25zKCk6IHZvaWQge1xyXG4gICAgdGhpcy5kbmRFdmVudFN1YnNjcmlwdGlvbnMuZHJhZ2VudGVyPy51bnN1YnNjcmliZSgpO1xyXG4gICAgdGhpcy5kbmRFdmVudFN1YnNjcmlwdGlvbnMuZHJhZ292ZXI/LnVuc3Vic2NyaWJlKCk7XHJcbiAgICB0aGlzLmRuZEV2ZW50U3Vic2NyaXB0aW9ucy5kcm9wPy51bnN1YnNjcmliZSgpO1xyXG4gICAgdGhpcy5kbmRFdmVudFN1YnNjcmlwdGlvbnMuZHJhZ2xlYXZlPy51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjbGVhblVwU3Vic2VxdWVudFN1YnNjcmlwdGlvbnMoKTogdm9pZCB7XHJcbiAgICB0aGlzLmRuZEV2ZW50U3Vic2NyaXB0aW9ucy5kcmFnb3Zlcj8udW5zdWJzY3JpYmUoKTtcclxuICAgIHRoaXMuZG5kRXZlbnRTdWJzY3JpcHRpb25zLmRyb3A/LnVuc3Vic2NyaWJlKCk7XHJcbiAgICAvL3RoaXMuZG5kRXZlbnRTdWJzY3JpcHRpb25zLmRyYWdsZWF2ZT8udW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG5cclxuICBpc0FjdGl2ZVN1YnNjcmlwdGlvbkZvclNoaWZ0JDogYm9vbGVhbiA9IHRydWU7XHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcblxyXG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcclxuICAgICAgICB0aGlzLm1scy5sYW5nJC5zdWJzY3JpYmUoeCA9PiB0aGlzLmxhbmcgPSB4KVxyXG4gICAgICApXHJcblxyXG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcclxuICAgICAgICB0aGlzLnNoaWZ0cyQucGlwZShza2lwKDEpLCBmaWx0ZXIoXyA9PiB0aGlzLmlzQWN0aXZlU3Vic2NyaXB0aW9uRm9yU2hpZnQkKSkuc3Vic2NyaWJlKHggPT4ge1xyXG4gICAgICAgICAgY29uc3QgdG9CZVJlbW92ZWRUZW1wb3JhcnlJZHM6IHN0cmluZ1tdID0gW107XHJcbiAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHgubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgY29uc3QgaXRlbSA9IHhbaV07XHJcbiAgICAgICAgICAgIGlmICghIWl0ZW0uYWRkZWQgJiYgISFpdGVtLmRlbGV0ZWQpIHtcclxuICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIkJvdGggYWRkZWQgYW5kIGRlbGV0ZWQgc2V0IHRvIHRydWVcIik7XHJcbiAgICAgICAgICAgICAgaWYgKCEhaXRlbS50ZW1wb3JhcnlJZCkge1xyXG4gICAgICAgICAgICAgICAgdG9CZVJlbW92ZWRUZW1wb3JhcnlJZHMucHVzaChpdGVtLnRlbXBvcmFyeUlkKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICBjb25zdCBuZXdWYWx1ZSA9IHguZmlsdGVyKGl0ZW0gPT4gIXRvQmVSZW1vdmVkVGVtcG9yYXJ5SWRzLmluY2x1ZGVzKGl0ZW0udGVtcG9yYXJ5SWQgfHwgJzAnKSk7XHJcbiAgICAgICAgICB0aGlzLmlzQWN0aXZlU3Vic2NyaXB0aW9uRm9yU2hpZnQkID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLndyaXRlVmFsdWUobmV3VmFsdWUpO1xyXG4gICAgICAgICAgdGhpcy5vbkNoYW5nZShuZXdWYWx1ZSk7XHJcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5pc0FjdGl2ZVN1YnNjcmlwdGlvbkZvclNoaWZ0JCA9IHRydWU7XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgIH0pXHJcbiAgICAgIClcclxuXHJcbiAgICAgIGNvbnN0IGNvbnRhaW5lckVsZW1lbnQgPSB0aGlzLiRjb250YWluZXIoKT8ubmF0aXZlRWxlbWVudDtcclxuXHJcbiAgICAgIGNvbnRhaW5lckVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tYmFja2dyb3VuZC1jb2xvcicsIHRoaXMuJGJhY2tncm91bmRDb2xvcigpKTtcclxuICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XHJcblxyXG4gICAgICBjb25zdCBkcmFnZW50ZXJFdmVudCA9IGZyb21FdmVudChjb250YWluZXJFbGVtZW50LCAnZHJhZ2VudGVyJyk7XHJcbiAgICAgIGNvbnN0IGRyYWdvdmVyRXZlbnQgPSBmcm9tRXZlbnQoY29udGFpbmVyRWxlbWVudCwgJ2RyYWdvdmVyJyk7XHJcbiAgICAgIGNvbnN0IGRyb3BFdmVudCA9IGZyb21FdmVudChjb250YWluZXJFbGVtZW50LCAnZHJvcCcpO1xyXG4gICAgICBjb25zdCBkcmFnbGVhdmVFdmVudCA9IGZyb21FdmVudChjb250YWluZXJFbGVtZW50LCAnZHJhZ2xlYXZlJyk7XHJcblxyXG4gICAgICB0aGlzLmRuZEV2ZW50U3Vic2NyaXB0aW9ucy5kcmFnZW50ZXIgPSBkcmFnZW50ZXJFdmVudC5zdWJzY3JpYmUoKGV2OiBhbnkpID0+IHtcclxuXHJcbiAgICAgICAgZXYucHJldmVudERlZmF1bHQoKTtcclxuXHJcbiAgICAgICAgLy8gSWdub3JlIG90aGVyIERuRCB0eXBlc1xyXG4gICAgICAgIGlmICh0aGlzLmRuZFNlcnZpY2UuZHJhZ1R5cGUgIT09IEVudW1EcmFnVHlwZS5XT1JLX1NISUZUKSByZXR1cm5cclxuXHJcbiAgICAgICAgaWYgKHRoaXMud29ya1NoaWZ0RG5kU2VydmljZS5kcmFnZ2luZ0Zyb21DZWxsSWQkLnZhbHVlID09PSB0aGlzLnNoaWZ0Q2VsbElkKSByZXR1cm5cclxuXHJcbiAgICAgICAgdGhpcy4kaXNEcmFnZ2luZ092ZXJDb250YWluZXIuc2V0KHRydWUpO1xyXG5cclxuICAgICAgICBpZiAodGhpcy4kaGlkZVN0aWNrZXJzV2hpbGVEcmFnb3ZlcigpKSB7XHJcbiAgICAgICAgICBjb25zdCByZWN0ID0gdGhpcy4kY29udGFpbmVyKCk/Lm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICAgICAgICB0aGlzLiRjb250YWluZXIoKT8ubmF0aXZlRWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnaGVpZ2h0JywgcmVjdC5oZWlnaHQgKyAncHgnKTtcclxuICAgICAgICAgIHRoaXMuJHNoaWZ0U3RpY2tlcnMoKS5tYXAoeCA9PiB4Lm5hdGl2ZUVsZW1lbnQ/LnN0eWxlLnNldFByb3BlcnR5KCdkaXNwbGF5JywgJ25vbmUnKSk7XHJcbiAgICAgICAgICB0aGlzLiRmaXJzdEFkZFdyYXBwZXIoKT8ubmF0aXZlRWxlbWVudD8uc3R5bGUuc2V0UHJvcGVydHkoJ2Rpc3BsYXknLCAnbm9uZScpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5jbGVhblVwU3Vic2VxdWVudFN1YnNjcmlwdGlvbnMoKTtcclxuXHJcbiAgICAgICAgdGhpcy5kcmFnT3ZlckVsZW1lbnRzLmFkZChldi50YXJnZXQgYXMgRXZlbnRUYXJnZXQpO1xyXG5cclxuICAgICAgICBjb250YWluZXJFbGVtZW50LmNsYXNzTGlzdC5hZGQoJ3ZhbGlkLWRyb3AnKTtcclxuICAgICAgICBpZiAodGhpcy53b3JrU2hpZnREbmRTZXJ2aWNlLmRyYWdnaW5nRGF0YSQudmFsdWUuc3BsaXQoJzonKVswXSAhPT0gdGhpcy5zaGlmdENlbGxJZCkge1xyXG4gICAgICAgICAgdGhpcy4kY29udGFpbmVyKCk/Lm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJ2JhY2tncm91bmQtY29sb3InLCAnI0YzNzU0MCcpO1xyXG4gICAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBTdWJzY3JpYmUgdG8gZHJhZ292ZXIgZXZlbnQgdG8gYWxsb3cgZHJvcFxyXG4gICAgICAgIHRoaXMuZG5kRXZlbnRTdWJzY3JpcHRpb25zLmRyYWdvdmVyID0gZHJhZ292ZXJFdmVudC5zdWJzY3JpYmUoKGV2OiBhbnkpID0+IHtcclxuICAgICAgICAgIGV2LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgICBpZiAodGhpcy53b3JrU2hpZnREbmRTZXJ2aWNlLmRyYWdnaW5nRnJvbUNlbGxJZCQudmFsdWUgPT09IHRoaXMuc2hpZnRDZWxsSWQpIHJldHVyblxyXG5cclxuICAgICAgICAgIHRoaXMud29ya1NoaWZ0RG5kU2VydmljZS5kcmFnb3ZlckNlbGxJZCQubmV4dCh0aGlzLnNoaWZ0Q2VsbElkKVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICAvLyBTdWJzY3JpYmUgdG8gZHJvcCBldmVudFxyXG4gICAgICAgIHRoaXMuZG5kRXZlbnRTdWJzY3JpcHRpb25zLmRyb3AgPSBkcm9wRXZlbnQuc3Vic2NyaWJlKChldjogYW55KSA9PiB7XHJcbiAgICAgICAgICBldi5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgaWYgKHRoaXMud29ya1NoaWZ0RG5kU2VydmljZS5kcmFnZ2luZ0Zyb21DZWxsSWQkLnZhbHVlID09PSB0aGlzLnNoaWZ0Q2VsbElkKSByZXR1cm5cclxuXHJcbiAgICAgICAgICAvL2NvbnNvbGUubG9nKFwiZHJvcEV2ZW50XCIpXHJcbiAgICAgICAgICBpZiAodGhpcy4kaGlkZVN0aWNrZXJzV2hpbGVEcmFnb3ZlcigpKSB7XHJcbiAgICAgICAgICAgIHRoaXMuJHNoaWZ0U3RpY2tlcnMoKS5tYXAoeCA9PiB4Lm5hdGl2ZUVsZW1lbnQ/LnN0eWxlLnNldFByb3BlcnR5KCdkaXNwbGF5JywgJ2Jsb2NrJykpO1xyXG4gICAgICAgICAgICB0aGlzLiRmaXJzdEFkZFdyYXBwZXIoKT8ubmF0aXZlRWxlbWVudD8uc3R5bGUuc2V0UHJvcGVydHkoJ2Rpc3BsYXknLCAnZmxleCcpO1xyXG4gICAgICAgICAgICB0aGlzLiRjb250YWluZXIoKT8ubmF0aXZlRWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnaGVpZ2h0JywgJ3Vuc2V0Jyk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAodGhpcy53b3JrU2hpZnREbmRTZXJ2aWNlLmRyYWdnaW5nRnJvbUNlbGxJZCQudmFsdWUgPT09IHRoaXMuc2hpZnRDZWxsSWQpIHJldHVyblxyXG4gICAgICAgICAgdGhpcy5kcmFnT3ZlckVsZW1lbnRzLmNsZWFyKCk7IC8vIENsZWFyIHRoZSBzZXRcclxuICAgICAgICAgIHRoaXMuJGlzRHJhZ2dpbmdPdmVyQ29udGFpbmVyLnNldChmYWxzZSk7XHJcbiAgICAgICAgICBjb250YWluZXJFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoJ3ZhbGlkLWRyb3AnKTtcclxuICAgICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xyXG5cclxuICAgICAgICAgIHRoaXMuJGNvbnRhaW5lcigpPy5uYXRpdmVFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCdiYWNrZ3JvdW5kLWNvbG9yJywgdGhpcy4kYmFja2dyb3VuZENvbG9yKCkpO1xyXG5cclxuICAgICAgICAgIGNvbnN0IGRhdGEgPSBldi5kYXRhVHJhbnNmZXI/LmdldERhdGEoJ3RleHQvcGxhaW4nKTsgLy8gRXhhbXBsZSBkYXRhIHJldHJpZXZhbFxyXG5cclxuICAgICAgICAgIC8vIEhhbmRsZSBkcm9wIGxvZ2ljIGJhc2VkIG9uIGRhdGFcclxuICAgICAgICAgIGlmIChkYXRhKSB7XHJcbiAgICAgICAgICAgIC8vIFByb2Nlc3MgZHJvcHBlZCBkYXRhIGhlcmVcclxuICAgICAgICAgICAgY29uc3QgbmV3U2hpZnRzJCQgPSB0aGlzLnNoaWZ0cyQkO1xyXG4gICAgICAgICAgICBjb25zdCBiZWluZ1B1c2hlZCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8SUF0U2hpZnQ+KHtcclxuICAgICAgICAgICAgICAuLi50aGlzLndvcmtTaGlmdERuZFNlcnZpY2UuZHJhZ2dpbmdTaGlmdCQudmFsdWUhLFxyXG4gICAgICAgICAgICAgIGFkZGVkOiB0cnVlLFxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICBjb25zdCBtZXJnZWQ6IEJlaGF2aW9yU3ViamVjdDxJQXRTaGlmdD5bXSA9IFtcclxuICAgICAgICAgICAgICAuLi5uZXdTaGlmdHMkJCxcclxuICAgICAgICAgICAgICBiZWluZ1B1c2hlZFxyXG4gICAgICAgICAgICBdO1xyXG4gICAgICAgICAgICBjb25zdCBjaGVjayA9IHRoaXMud29ya1NoaWZ0RG5kU2VydmljZS5jaGVja0Zvck92ZXJsYXBzKHRoaXMud29ya1NoaWZ0RG5kU2VydmljZS50cmFuc2Zvcm1Ub1BsYWluU2hpZnRzKG1lcmdlZCkpO1xyXG4gICAgICAgICAgICBpZiAoY2hlY2sucmVzdWx0KSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5kaWFsb2dTZXJ2aWNlLmNyZWF0ZU5ldyhcclxuICAgICAgICAgICAgICAgIEVudW1UcmFuc2xhdGVLZXkuVUlfR1JJRF9GT1JNX0JVVFRPTl9JTkZPUk1BVElPTixcclxuICAgICAgICAgICAgICAgIHVuZGVmaW5lZCxcclxuICAgICAgICAgICAgICAgIEVudW1UcmFuc2xhdGVLZXkuVUlfQlVUVE9OX0NMT1NFLFxyXG4gICAgICAgICAgICAgICAgdHJ1ZSxcclxuICAgICAgICAgICAgICAgIEVudW1UcmFuc2xhdGVLZXkuV09SS19TSElGVF9PVkVSTEFQX0RFVEVDVEVELFxyXG4gICAgICAgICAgICAgICAgY2hlY2sucmVhc29uLnNwbGl0KCcgdnMgJylcclxuICAgICAgICAgICAgICApXHJcblxyXG4gICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBuZXdTaGlmdHMkJC5wdXNoKGJlaW5nUHVzaGVkKTtcclxuICAgICAgICAgICAgdGhpcy5zaGlmdHMkJCA9IG5ld1NoaWZ0cyQkO1xyXG4gICAgICAgICAgICBjb25zdCBuZXdWYWx1ZTogSUF0U2hpZnRbXSA9IFtdO1xyXG4gICAgICAgICAgICBuZXdTaGlmdHMkJC5tYXAobSA9PiB7XHJcbiAgICAgICAgICAgICAgbmV3VmFsdWUucHVzaChtLnZhbHVlKTtcclxuICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcIm5ld1ZhbHVlXCIsIG5ld1ZhbHVlKTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMud3JpdGVWYWx1ZShuZXdWYWx1ZSk7XHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgIHRoaXMub25DaGFuZ2UobmV3VmFsdWUpO1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgfSk7XHJcblxyXG4gICAgICB0aGlzLmRuZEV2ZW50U3Vic2NyaXB0aW9ucy5kcmFnbGVhdmUgPSBkcmFnbGVhdmVFdmVudC5zdWJzY3JpYmUoKGV2OiBhbnkpID0+IHtcclxuICAgICAgICBpZiAodGhpcy53b3JrU2hpZnREbmRTZXJ2aWNlLmRyYWdnaW5nRnJvbUNlbGxJZCQudmFsdWUgPT09IHRoaXMuc2hpZnRDZWxsSWQpIHJldHVyblxyXG5cclxuICAgICAgICAvL2NvbnNvbGUubG9nKFwiZHJhZ2xlYXZlRXZlbnRcIilcclxuICAgICAgICBldi5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgIGlmICh0aGlzLndvcmtTaGlmdERuZFNlcnZpY2UuZHJhZ2dpbmdGcm9tQ2VsbElkJC52YWx1ZSA9PT0gdGhpcy5zaGlmdENlbGxJZCkgcmV0dXJuXHJcbiAgICAgICAgdGhpcy5kcmFnT3ZlckVsZW1lbnRzLmRlbGV0ZShldi50YXJnZXQgYXMgRXZlbnRUYXJnZXQpO1xyXG5cclxuICAgICAgICAvLyBDaGVjayBpZiB3ZSBhcmUgbGVhdmluZyB0aGUgY29udGFpbmVyXHJcbiAgICAgICAgaWYgKGV2LnRhcmdldC5jbGFzc0xpc3QuY29udGFpbnMoJ3BhcmVudC1jb250YWluZXInKSkge1xyXG4gICAgICAgICAgLy8gQ2hlY2sgaWYgdGhlIHJlbGF0ZWQgdGFyZ2V0IGlzIHN0aWxsIHdpdGhpbiB0aGUgY29udGFpbmVyXHJcbiAgICAgICAgICBpZiAoIWV2LnJlbGF0ZWRUYXJnZXQgfHwgIWV2LnRhcmdldC5jb250YWlucyhldi5yZWxhdGVkVGFyZ2V0KSkge1xyXG4gICAgICAgICAgICB0aGlzLiRpc0RyYWdnaW5nT3ZlckNvbnRhaW5lci5zZXQoZmFsc2UpO1xyXG4gICAgICAgICAgICAvL2NvbnNvbGUubG9nKCdMZWZ0IGNvbnRhaW5lcicpO1xyXG4gICAgICAgICAgICBjb250YWluZXJFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoJ3ZhbGlkLWRyb3AnKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmRyYWdPdmVyRWxlbWVudHMuc2l6ZSA9PT0gMCkge1xyXG4gICAgICAgICAgY29udGFpbmVyRWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKCd2YWxpZC1kcm9wJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICAgIHRoaXMuJGNvbnRhaW5lcigpPy5uYXRpdmVFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCdiYWNrZ3JvdW5kLWNvbG9yJywgdGhpcy4kYmFja2dyb3VuZENvbG9yKCkpO1xyXG5cclxuICAgICAgICBpZiAodGhpcy4kaGlkZVN0aWNrZXJzV2hpbGVEcmFnb3ZlcigpKSB7XHJcbiAgICAgICAgICB0aGlzLiRzaGlmdFN0aWNrZXJzKCkubWFwKHggPT4geC5uYXRpdmVFbGVtZW50Py5zdHlsZS5zZXRQcm9wZXJ0eSgnZGlzcGxheScsICdibG9jaycpKTtcclxuICAgICAgICAgIHRoaXMuJGZpcnN0QWRkV3JhcHBlcigpPy5uYXRpdmVFbGVtZW50Py5zdHlsZS5zZXRQcm9wZXJ0eSgnZGlzcGxheScsICdmbGV4Jyk7XHJcbiAgICAgICAgICB0aGlzLiRjb250YWluZXIoKT8ubmF0aXZlRWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnaGVpZ2h0JywgJ3Vuc2V0Jyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmRuZEV2ZW50U3Vic2NyaXB0aW9ucy5kcmFnb3Zlcj8udW5zdWJzY3JpYmUoKTtcclxuICAgICAgICB0aGlzLmRuZEV2ZW50U3Vic2NyaXB0aW9ucy5kcm9wPy51bnN1YnNjcmliZSgpO1xyXG5cclxuICAgICAgICB0aGlzLmRuZEV2ZW50U3Vic2NyaXB0aW9ucy5kcmFnb3ZlciA9IHVuZGVmaW5lZDtcclxuICAgICAgICB0aGlzLmRuZEV2ZW50U3Vic2NyaXB0aW9ucy5kcm9wID0gdW5kZWZpbmVkO1xyXG5cclxuICAgICAgfSk7XHJcblxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBvbkFkZChlOiBhbnkpOiB2b2lkIHtcclxuXHJcbiAgICBjb25zdCByZWN0ID0gdGhpcy4kY29udGFpbmVyKCk/Lm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICB0aGlzLndvcmtTaGlmdERuZFNlcnZpY2UuY29sbGVjdGlvblN0YXJ0ZXJYJC5uZXh0KHJlY3QueCAtIDMyMCk7XHJcbiAgICB0aGlzLndvcmtTaGlmdERuZFNlcnZpY2UuY29sbGVjdGlvblJlc2V0VHJhbnNmb3JtJC5uZXh0KCF0aGlzLndvcmtTaGlmdERuZFNlcnZpY2UuY29sbGVjdGlvblJlc2V0VHJhbnNmb3JtJC52YWx1ZSk7XHJcblxyXG4gICAgdGhpcy53b3JrU2hpZnREbmRTZXJ2aWNlLnNoaWZ0Q29sbGVjdGlvbk9wZW4kLm5leHQodHJ1ZSk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuY2xlYW5VcFN1YnNjcmlwdGlvbnMoKTtcclxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5tYXAoeCA9PiB4Py51bnN1YnNjcmliZSgpKVxyXG4gIH1cclxuXHJcbn1cclxuIiwiPGRpdiAjY29udGFpbmVyIGNsYXNzPVwiY29yZS1zaGlmdC1jZWxsLWNvbnRhaW5lclwiPlxyXG4gICAgQGZvciAoc2hpZnQkIG9mIHNoaWZ0cyQkITsgdHJhY2sgJGluZGV4KSB7XHJcbiAgICA8ZGl2ICNzaGlmdFN0aWNrZXI+XHJcbiAgICAgICAgPGNvcmUtc2hpZnQtc3RpY2tlciBbc2hpZnQkXT1cInNoaWZ0JFwiIFskc2hpZnRDZWxsSWRdPVwic2hpZnRDZWxsSWRcIiBbJHdpZHRoXT1cIjIyOFwiXHJcbiAgICAgICAgICAgIFtwYXJlbnRTaGlmdHMkXT1cInNoaWZ0cyRcIj48L2NvcmUtc2hpZnQtc3RpY2tlcj5cclxuICAgIDwvZGl2PlxyXG4gICAgfVxyXG5cclxuICAgIEBpZiAoIXZhbHVlPy5sZW5ndGgpIHtcclxuICAgIEBpZiAoISRoaWRlU3RhcnRlclBsdXNTaWduKCkpIHtcclxuICAgIDxkaXYgI2ZpcnN0QWRkV3JhcHBlciBjbGFzcz1cImZpcnN0LWFkZC13cmFwcGVyXCIgKGNsaWNrKT1cIm9uQWRkKCRldmVudClcIj5cclxuICAgICAgICA8aSBjbGFzcz1cImZlYXRoZXItcGx1c1wiPjwvaT5cclxuICAgIDwvZGl2PlxyXG4gICAgfSBAZWxzZSB7XHJcbiAgICA8ZGl2ICNmaXJzdEFkZFdyYXBwZXIgY2xhc3M9XCJmaXJzdC1hZGQtd3JhcHBlclwiPlxyXG4gICAgICAgIHt7ICdEUk9QX0FfU0hJRlRfSEVSRScgfCB0cmFuc2xhdGU6IGxhbmcgfX1cclxuICAgIDwvZGl2PlxyXG4gICAgfVxyXG4gICAgfVxyXG5cclxuXHJcblxyXG48L2Rpdj4iXX0=
256
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1zaGlmdC1jZWxsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1oaXN0YWZmLWFscGhhL3NyYy9saWIvYXBwL2xpYnJhcmllcy9jb3JlLXNoaWZ0LWNlbGwvY29yZS1zaGlmdC1jZWxsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1oaXN0YWZmLWFscGhhL3NyYy9saWIvYXBwL2xpYnJhcmllcy9jb3JlLXNoaWZ0LWNlbGwvY29yZS1zaGlmdC1jZWxsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsdUJBQXVCLEVBQUUsU0FBUyxFQUFjLEtBQUssRUFBRSxTQUFTLEVBQWdDLFlBQVksRUFBa0IsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BMLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBRS9GLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTlFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDREQUE0RCxDQUFDO0FBQzFHLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRW5ELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRTFELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMvRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUE7Ozs7OztBQTRCdEQsTUFBTSxPQUFPLHNCQUF1QixTQUFRLDRCQUE0QjtJQWU3RCxVQUFVLENBQUMsR0FBZTtRQUVqQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ1gsSUFBSSxDQUFDLENB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R0FBdEIsc0JBQXNCLCtqQkFWdEI7WUFDVDtnQkFDRSxPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixLQUFLLEVBQUUsSUFBSTtnQkFDWCxXQUFXLEVBQUUsc0JBQXNCO2FBQ3BDO1NBQ0Ysb1lDbkNILDJzQkFzQk0sNHNCRElGLHlCQUF5QiwrSUFDekIsYUFBYTs7MkZBWUosc0JBQXNCO2tCQWxCbEMsU0FBUzsrQkFDRSxpQkFBaUIsY0FDZixJQUFJLG1CQUNDLHVCQUF1QixDQUFDLE1BQU0sV0FDdEM7d0JBQ1AseUJBQXlCO3dCQUN6QixhQUFhO3FCQUNkLGFBQ1U7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsS0FBSyxFQUFFLElBQUk7NEJBQ1gsV0FBVyx3QkFBd0I7eUJBQ3BDO3FCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRWxlbWVudFJlZiwgaW5wdXQsIHZpZXdDaGlsZCwgQ2hhbmdlRGV0ZWN0b3JSZWYsIE9uRGVzdHJveSwgdmlld0NoaWxkcmVuLCBXcml0YWJsZVNpZ25hbCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvcmVTaGlmdFN0aWNrZXJDb21wb25lbnQgfSBmcm9tICcuLi9jb3JlLXNoaWZ0LXN0aWNrZXIvY29yZS1zaGlmdC1zdGlja2VyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IElBdFNoaWZ0IH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy90aW1lLW1hbmFnZW1lbnQvSUF0U2hpZnQnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGZpbHRlciwgZnJvbUV2ZW50LCBza2lwLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgV29ya1NoaWZ0RG5kU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3dvcmstc2hpZnQtZG5kLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDb3JlRm9ybUNvbnRyb2xCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi4vY29yZS1mb3JtLWNvbnRyb2wtYmFzZS9jb3JlLWZvcm0tY29udHJvbC1iYXNlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZGlhbG9nLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBFbnVtVHJhbnNsYXRlS2V5IH0gZnJvbSAnYWxwaGEtZ2xvYmFsLWNvbnN0YW50cyc7XHJcbmltcG9ydCB7IE11bHRpTGFuZ3VhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbXVsdGktbGFuZ3VhZ2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVBpcGUgfSBmcm9tICcuLi8uLi9hcHAtcGlwZXMvdHJhbnNsYXRlLnBpcGUnO1xyXG5pbXBvcnQgeyBFbnVtRHJhZ1R5cGUgfSBmcm9tICcuLi8uLi9lbnVtL0VudW1EcmFnVHlwZSdcclxuaW1wb3J0IHsgRG5kU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2RuZC5zZXJ2aWNlJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSURyb3BwYWJsZUV2ZW50U3Vic2NyaXB0aW9uIHtcclxuICBkcmFnZW50ZXI6IFN1YnNjcmlwdGlvbiB8IHVuZGVmaW5lZCxcclxuICBkcmFnb3ZlcjogU3Vic2NyaXB0aW9uIHwgdW5kZWZpbmVkLFxyXG4gIGRyYWdsZWF2ZTogU3Vic2NyaXB0aW9uIHwgdW5kZWZpbmVkLFxyXG4gIGRyb3A6IFN1YnNjcmlwdGlvbiB8IHVuZGVmaW5lZFxyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2NvcmUtc2hpZnQtY2VsbCcsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb3JlU2hpZnRTdGlja2VyQ29tcG9uZW50LFxyXG4gICAgVHJhbnNsYXRlUGlwZVxyXG4gIF0sXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICBtdWx0aTogdHJ1ZSxcclxuICAgICAgdXNlRXhpc3Rpbmc6IENvcmVTaGlmdENlbGxDb21wb25lbnRcclxuICAgIH1cclxuICBdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jb3JlLXNoaWZ0LWNlbGwuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9jb3JlLXNoaWZ0LWNlbGwuY29tcG9uZW50LnNjc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb3JlU2hpZnRDZWxsQ29tcG9uZW50IGV4dGVuZHMgQ29yZUZvcm1Db250cm9sQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XHJcblxyXG4gICRoaWRlU3RhcnRlclBsdXNTaWduID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xyXG4gICRoaWRlU3RpY2tlcnNXaGlsZURyYWdvdmVyID0gaW5wdXQ8Ym9vbGVhbj4odHJ1ZSk7XHJcblxyXG4gICRpc0RyYWdnaW5nT3ZlckNvbnRhaW5lcjogV3JpdGFibGVTaWduYWw8Ym9vbGVhbj4gPSBzaWduYWwoZmFsc2UpO1xyXG5cclxuICBvdmVycmlkZSB2YWx1ZSE6IElBdFNoaWZ0W107XHJcbiAgbGFuZyE6IHN0cmluZztcclxuXHJcbiAgc2hpZnRzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8SUF0U2hpZnRbXT4oW10pO1xyXG4gIHNoaWZ0cyQkOiBCZWhhdmlvclN1YmplY3Q8SUF0U2hpZnQ+W10gPSBbXTtcclxuXHJcbiAgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuXHJcbiAgb3ZlcnJpZGUgd3JpdGVWYWx1ZShvYmo6IElBdFNoaWZ0W10pOiB2b2lkIHtcclxuXHJcbiAgICBvYmo/Lm1hcCh4ID0+IHtcclxuICAgICAgaWYgKCF4LnRlbXBvcmFyeUlkKSB4LnRlbXBvcmFyeUlkID0gY3J5cHRvLnJhbmRvbVVVSUQoKTtcclxuICAgICAgeC5ob3Vyc1N0YXJ0ID0gISF4LmhvdXJzU3RhcnQgPyBuZXcgRGF0ZSh4LmhvdXJzU3RhcnQpIDogdW5kZWZpbmVkO1xyXG4gICAgICB4LmhvdXJzU3RvcCA9ICEheC5ob3Vyc1N0b3AgPyBuZXcgRGF0ZSh4LmhvdXJzU3RvcCkgOiB1bmRlZmluZWQ7XHJcbiAgICAgIGlmICghIXguYnJlYWtzRnJvbSkgeC5icmVha3NGcm9tID0gbmV3IERhdGUoeC5icmVha3NGcm9tKVxyXG4gICAgICBpZiAoISF4LmJyZWFrc1RvKSB4LmJyZWFrc1RvID0gbmV3IERhdGUoeC5icmVha3NUbylcclxuICAgIH0pXHJcblxyXG4gICAgdGhpcy52YWx1ZSA9IG9iajtcclxuICAgIGNvbnN0IG5ld1NoaWZ0cyQkOiBCZWhhdmlvclN1YmplY3Q8SUF0U2hpZnQ+W10gPSBbXTtcclxuICAgIG9iaj8ubWFwKHggPT4ge1xyXG4gICAgICBjb25zdCBzdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxJQXRTaGlmdD4oeCk7XHJcbiAgICAgIHN1YmplY3QucGlwZShza2lwKDEpKS5zdWJzY3JpYmUoY2hhbmdlID0+IHtcclxuICAgICAgICBjb25zdCBvYmpGaWx0ZXIgPSBvYmouZmlsdGVyKG0gPT4gbS5pZCA9PT0geC5pZClcclxuICAgICAgICBpZiAob2JqRmlsdGVyLmxlbmd0aCA9PT0gMSkge1xyXG4gICAgICAgICAgb2JqRmlsdGVyWzBdLmRlbGV0ZWQgPSBjaGFuZ2UuZGVsZXRlZDtcclxuICAgICAgICAgIG9iakZpbHRlclswXS5hZGRlZCA9IGNoYW5nZS5hZGRlZDtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gdGhpcy5vbkNoYW5nZShvYmopO1xyXG4gICAgICB9KTtcclxuICAgICAgbmV3U2hpZnRzJCQucHVzaChcclxuICAgICAgICBzdWJqZWN0XHJcbiAgICAgIClcclxuICAgIH0pXHJcbiAgICB0aGlzLnNoaWZ0cyQkID0gbmV3U2hpZnRzJCQ7XHJcbiAgICB0aGlzLmlzQWN0aXZlU3Vic2NyaXB0aW9uRm9yU2hpZnQkID0gZmFsc2U7XHJcbiAgICB0aGlzLnNoaWZ0cyQubmV4dCh0aGlzLnZhbHVlKTtcclxuICAgIHRoaXMuaXNBY3RpdmVTdWJzY3JpcHRpb25Gb3JTaGlmdCQgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgJGJhY2tncm91bmRDb2xvciA9IGlucHV0PHN0cmluZz4oJ3doaXRlJyk7XHJcbiAgJGNvbnRhaW5lciA9IHZpZXdDaGlsZDxFbGVtZW50UmVmPignY29udGFpbmVyJyk7XHJcbiAgJGZpcnN0QWRkV3JhcHBlciA9IHZpZXdDaGlsZDxFbGVtZW50UmVmPignZmlyc3RBZGRXcmFwcGVyJyk7XHJcbiAgJHNoaWZ0U3RpY2tlcnMgPSB2aWV3Q2hpbGRyZW48RWxlbWVudFJlZj4oJ3NoaWZ0U3RpY2tlcicpO1xyXG4gIHNoaWZ0Q2VsbElkOiBzdHJpbmcgPSBjcnlwdG8ucmFuZG9tVVVJRCgpO1xyXG5cclxuICBwcml2YXRlIGRyYWdPdmVyRWxlbWVudHM6IFNldDxFdmVudFRhcmdldD4gPSBuZXcgU2V0KCk7XHJcblxyXG4gIGRuZEV2ZW50U3Vic2NyaXB0aW9uczogSURyb3BwYWJsZUV2ZW50U3Vic2NyaXB0aW9uID0ge1xyXG4gICAgZHJhZ2VudGVyOiBuZXcgU3Vic2NyaXB0aW9uKCgpID0+IG51bGwpLFxyXG4gICAgZHJhZ292ZXI6IG5ldyBTdWJzY3JpcHRpb24oKCkgPT4gbnVsbCksXHJcbiAgICBkcm9wOiBuZXcgU3Vic2NyaXB0aW9uKCgpID0+IG51bGwpLFxyXG4gICAgZHJhZ2xlYXZlOiBuZXcgU3Vic2NyaXB0aW9uKCgpID0+IG51bGwpXHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHByaXZhdGUgd29ya1NoaWZ0RG5kU2VydmljZTogV29ya1NoaWZ0RG5kU2VydmljZSxcclxuICAgIHByaXZhdGUgZGlhbG9nU2VydmljZTogRGlhbG9nU2VydmljZSxcclxuICAgIHByaXZhdGUgbWxzOiBNdWx0aUxhbmd1YWdlU2VydmljZSxcclxuICAgIHByaXZhdGUgZG5kU2VydmljZTogRG5kU2VydmljZSxcclxuICApIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNsZWFuVXBTdWJzY3JpcHRpb25zKCk6IHZvaWQge1xyXG4gICAgdGhpcy5kbmRFdmVudFN1YnNjcmlwdGlvbnMuZHJhZ2VudGVyPy51bnN1YnNjcmliZSgpO1xyXG4gICAgdGhpcy5kbmRFdmVudFN1YnNjcmlwdGlvbnMuZHJhZ292ZXI/LnVuc3Vic2NyaWJlKCk7XHJcbiAgICB0aGlzLmRuZEV2ZW50U3Vic2NyaXB0aW9ucy5kcm9wPy51bnN1YnNjcmliZSgpO1xyXG4gICAgdGhpcy5kbmRFdmVudFN1YnNjcmlwdGlvbnMuZHJhZ2xlYXZlPy51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjbGVhblVwU3Vic2VxdWVudFN1YnNjcmlwdGlvbnMoKTogdm9pZCB7XHJcbiAgICB0aGlzLmRuZEV2ZW50U3Vic2NyaXB0aW9ucy5kcmFnb3Zlcj8udW5zdWJzY3JpYmUoKTtcclxuICAgIHRoaXMuZG5kRXZlbnRTdWJzY3JpcHRpb25zLmRyb3A/LnVuc3Vic2NyaWJlKCk7XHJcbiAgICAvL3RoaXMuZG5kRXZlbnRTdWJzY3JpcHRpb25zLmRyYWdsZWF2ZT8udW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG5cclxuICBpc0FjdGl2ZVN1YnNjcmlwdGlvbkZvclNoaWZ0JDogYm9vbGVhbiA9IHRydWU7XHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcblxyXG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcclxuICAgICAgICB0aGlzLm1scy5sYW5nJC5zdWJzY3JpYmUoeCA9PiB0aGlzLmxhbmcgPSB4KVxyXG4gICAgICApXHJcblxyXG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcclxuICAgICAgICB0aGlzLnNoaWZ0cyQucGlwZShza2lwKDEpLCBmaWx0ZXIoXyA9PiB0aGlzLmlzQWN0aXZlU3Vic2NyaXB0aW9uRm9yU2hpZnQkKSkuc3Vic2NyaWJlKHggPT4ge1xyXG4gICAgICAgICAgY29uc3QgdG9CZVJlbW92ZWRUZW1wb3JhcnlJZHM6IHN0cmluZ1tdID0gW107XHJcbiAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHgubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgY29uc3QgaXRlbSA9IHhbaV07XHJcbiAgICAgICAgICAgIGlmICghIWl0ZW0uYWRkZWQgJiYgISFpdGVtLmRlbGV0ZWQpIHtcclxuICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIkJvdGggYWRkZWQgYW5kIGRlbGV0ZWQgc2V0IHRvIHRydWVcIik7XHJcbiAgICAgICAgICAgICAgaWYgKCEhaXRlbS50ZW1wb3JhcnlJZCkge1xyXG4gICAgICAgICAgICAgICAgdG9CZVJlbW92ZWRUZW1wb3JhcnlJZHMucHVzaChpdGVtLnRlbXBvcmFyeUlkKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICBjb25zdCBuZXdWYWx1ZSA9IHguZmlsdGVyKGl0ZW0gPT4gIXRvQmVSZW1vdmVkVGVtcG9yYXJ5SWRzLmluY2x1ZGVzKGl0ZW0udGVtcG9yYXJ5SWQgfHwgJzAnKSk7XHJcbiAgICAgICAgICB0aGlzLmlzQWN0aXZlU3Vic2NyaXB0aW9uRm9yU2hpZnQkID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLndyaXRlVmFsdWUobmV3VmFsdWUpO1xyXG4gICAgICAgICAgdGhpcy5vbkNoYW5nZShuZXdWYWx1ZSk7XHJcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5pc0FjdGl2ZVN1YnNjcmlwdGlvbkZvclNoaWZ0JCA9IHRydWU7XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgIH0pXHJcbiAgICAgIClcclxuXHJcbiAgICAgIGNvbnN0IGNvbnRhaW5lckVsZW1lbnQgPSB0aGlzLiRjb250YWluZXIoKT8ubmF0aXZlRWxlbWVudDtcclxuXHJcbiAgICAgIGNvbnRhaW5lckVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tYmFja2dyb3VuZC1jb2xvcicsIHRoaXMuJGJhY2tncm91bmRDb2xvcigpKTtcclxuICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XHJcblxyXG4gICAgICBjb25zdCBkcmFnZW50ZXJFdmVudCA9IGZyb21FdmVudChjb250YWluZXJFbGVtZW50LCAnZHJhZ2VudGVyJyk7XHJcbiAgICAgIGNvbnN0IGRyYWdvdmVyRXZlbnQgPSBmcm9tRXZlbnQoY29udGFpbmVyRWxlbWVudCwgJ2RyYWdvdmVyJyk7XHJcbiAgICAgIGNvbnN0IGRyb3BFdmVudCA9IGZyb21FdmVudChjb250YWluZXJFbGVtZW50LCAnZHJvcCcpO1xyXG4gICAgICBjb25zdCBkcmFnbGVhdmVFdmVudCA9IGZyb21FdmVudChjb250YWluZXJFbGVtZW50LCAnZHJhZ2xlYXZlJyk7XHJcblxyXG4gICAgICB0aGlzLmRuZEV2ZW50U3Vic2NyaXB0aW9ucy5kcmFnZW50ZXIgPSBkcmFnZW50ZXJFdmVudC5zdWJzY3JpYmUoKGV2OiBhbnkpID0+IHtcclxuXHJcblxyXG4gICAgICAgIGV2LnByZXZlbnREZWZhdWx0KCk7XHJcblxyXG4gICAgICAgIC8vIElnbm9yZSBvdGhlciBEbkQgdHlwZXNcclxuICAgICAgICBpZiAodGhpcy5kbmRTZXJ2aWNlLmRyYWdUeXBlICE9PSBFbnVtRHJhZ1R5cGUuV09SS19TSElGVCkgcmV0dXJuXHJcblxyXG4gICAgICAgIGlmICh0aGlzLndvcmtTaGlmdERuZFNlcnZpY2UuZHJhZ2dpbmdGcm9tQ2VsbElkJC52YWx1ZSA9PT0gdGhpcy5zaGlmdENlbGxJZCkgcmV0dXJuXHJcblxyXG4gICAgICAgIHRoaXMuJGlzRHJhZ2dpbmdPdmVyQ29udGFpbmVyLnNldCh0cnVlKTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuJGhpZGVTdGlja2Vyc1doaWxlRHJhZ292ZXIoKSkge1xyXG4gICAgICAgICAgY29uc3QgcmVjdCA9IHRoaXMuJGNvbnRhaW5lcigpPy5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgICAgICAgdGhpcy4kY29udGFpbmVyKCk/Lm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJ2hlaWdodCcsIHJlY3QuaGVpZ2h0ICsgJ3B4Jyk7XHJcbiAgICAgICAgICB0aGlzLiRzaGlmdFN0aWNrZXJzKCkubWFwKHggPT4geC5uYXRpdmVFbGVtZW50Py5zdHlsZS5zZXRQcm9wZXJ0eSgnZGlzcGxheScsICdub25lJykpO1xyXG4gICAgICAgICAgdGhpcy4kZmlyc3RBZGRXcmFwcGVyKCk/Lm5hdGl2ZUVsZW1lbnQ/LnN0eWxlLnNldFByb3BlcnR5KCdkaXNwbGF5JywgJ25vbmUnKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuY2xlYW5VcFN1YnNlcXVlbnRTdWJzY3JpcHRpb25zKCk7XHJcblxyXG4gICAgICAgIHRoaXMuZHJhZ092ZXJFbGVtZW50cy5hZGQoZXYudGFyZ2V0IGFzIEV2ZW50VGFyZ2V0KTtcclxuXHJcbiAgICAgICAgY29udGFpbmVyRWxlbWVudC5jbGFzc0xpc3QuYWRkKCd2YWxpZC1kcm9wJyk7XHJcbiAgICAgICAgaWYgKHRoaXMud29ya1NoaWZ0RG5kU2VydmljZS5kcmFnZ2luZ0RhdGEkLnZhbHVlLnNwbGl0KCc6JylbMF0gIT09IHRoaXMuc2hpZnRDZWxsSWQpIHtcclxuICAgICAgICAgIHRoaXMuJGNvbnRhaW5lcigpPy5uYXRpdmVFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCdiYWNrZ3JvdW5kLWNvbG9yJywgJyNGMzc1NDAnKTtcclxuICAgICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gU3Vic2NyaWJlIHRvIGRyYWdvdmVyIGV2ZW50IHRvIGFsbG93IGRyb3BcclxuICAgICAgICB0aGlzLmRuZEV2ZW50U3Vic2NyaXB0aW9ucy5kcmFnb3ZlciA9IGRyYWdvdmVyRXZlbnQuc3Vic2NyaWJlKChldjogYW55KSA9PiB7XHJcbiAgICAgICAgICBldi5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgaWYgKHRoaXMud29ya1NoaWZ0RG5kU2VydmljZS5kcmFnZ2luZ0Zyb21DZWxsSWQkLnZhbHVlID09PSB0aGlzLnNoaWZ0Q2VsbElkKSByZXR1cm5cclxuXHJcbiAgICAgICAgICB0aGlzLndvcmtTaGlmdERuZFNlcnZpY2UuZHJhZ292ZXJDZWxsSWQkLm5leHQodGhpcy5zaGlmdENlbGxJZClcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgLy8gU3Vic2NyaWJlIHRvIGRyb3AgZXZlbnRcclxuICAgICAgICB0aGlzLmRuZEV2ZW50U3Vic2NyaXB0aW9ucy5kcm9wID0gZHJvcEV2ZW50LnN1YnNjcmliZSgoZXY6IGFueSkgPT4ge1xyXG4gICAgICAgICAgZXYucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICAgIGlmICh0aGlzLndvcmtTaGlmdERuZFNlcnZpY2UuZHJhZ2dpbmdGcm9tQ2VsbElkJC52YWx1ZSA9PT0gdGhpcy5zaGlmdENlbGxJZCkgcmV0dXJuXHJcblxyXG4gICAgICAgICAgLy9jb25zb2xlLmxvZyhcImRyb3BFdmVudFwiKVxyXG4gICAgICAgICAgaWYgKHRoaXMuJGhpZGVTdGlja2Vyc1doaWxlRHJhZ292ZXIoKSkge1xyXG4gICAgICAgICAgICB0aGlzLiRzaGlmdFN0aWNrZXJzKCkubWFwKHggPT4geC5uYXRpdmVFbGVtZW50Py5zdHlsZS5zZXRQcm9wZXJ0eSgnZGlzcGxheScsICdibG9jaycpKTtcclxuICAgICAgICAgICAgdGhpcy4kZmlyc3RBZGRXcmFwcGVyKCk/Lm5hdGl2ZUVsZW1lbnQ/LnN0eWxlLnNldFByb3BlcnR5KCdkaXNwbGF5JywgJ2ZsZXgnKTtcclxuICAgICAgICAgICAgdGhpcy4kY29udGFpbmVyKCk/Lm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJ2hlaWdodCcsICd1bnNldCcpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKHRoaXMud29ya1NoaWZ0RG5kU2VydmljZS5kcmFnZ2luZ0Zyb21DZWxsSWQkLnZhbHVlID09PSB0aGlzLnNoaWZ0Q2VsbElkKSByZXR1cm5cclxuICAgICAgICAgIHRoaXMuZHJhZ092ZXJFbGVtZW50cy5jbGVhcigpOyAvLyBDbGVhciB0aGUgc2V0XHJcbiAgICAgICAgICB0aGlzLiRpc0RyYWdnaW5nT3ZlckNvbnRhaW5lci5zZXQoZmFsc2UpO1xyXG4gICAgICAgICAgY29udGFpbmVyRWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKCd2YWxpZC1kcm9wJyk7XHJcbiAgICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcclxuXHJcbiAgICAgICAgICB0aGlzLiRjb250YWluZXIoKT8ubmF0aXZlRWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnYmFja2dyb3VuZC1jb2xvcicsIHRoaXMuJGJhY2tncm91bmRDb2xvcigpKTtcclxuXHJcbiAgICAgICAgICBjb25zdCBkYXRhID0gZXYuZGF0YVRyYW5zZmVyPy5nZXREYXRhKCd0ZXh0L3BsYWluJyk7IC8vIEV4YW1wbGUgZGF0YSByZXRyaWV2YWxcclxuXHJcbiAgICAgICAgICAvLyBIYW5kbGUgZHJvcCBsb2dpYyBiYXNlZCBvbiBkYXRhXHJcbiAgICAgICAgICBpZiAoZGF0YSkge1xyXG4gICAgICAgICAgICAvLyBQcm9jZXNzIGRyb3BwZWQgZGF0YSBoZXJlXHJcbiAgICAgICAgICAgIGNvbnN0IG5ld1NoaWZ0cyQkID0gdGhpcy5zaGlmdHMkJDtcclxuICAgICAgICAgICAgY29uc3QgYmVpbmdQdXNoZWQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PElBdFNoaWZ0Pih7XHJcbiAgICAgICAgICAgICAgLi4udGhpcy53b3JrU2hpZnREbmRTZXJ2aWNlLmRyYWdnaW5nU2hpZnQkLnZhbHVlISxcclxuICAgICAgICAgICAgICBhZGRlZDogdHJ1ZSxcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgY29uc3QgbWVyZ2VkOiBCZWhhdmlvclN1YmplY3Q8SUF0U2hpZnQ+W10gPSBbXHJcbiAgICAgICAgICAgICAgLi4ubmV3U2hpZnRzJCQsXHJcbiAgICAgICAgICAgICAgYmVpbmdQdXNoZWRcclxuICAgICAgICAgICAgXTtcclxuICAgICAgICAgICAgY29uc3QgY2hlY2sgPSB0aGlzLndvcmtTaGlmdERuZFNlcnZpY2UuY2hlY2tGb3JPdmVybGFwcyh0aGlzLndvcmtTaGlmdERuZFNlcnZpY2UudHJhbnNmb3JtVG9QbGFpblNoaWZ0cyhtZXJnZWQpKTtcclxuICAgICAgICAgICAgaWYgKGNoZWNrLnJlc3VsdCkge1xyXG4gICAgICAgICAgICAgIHRoaXMuZGlhbG9nU2VydmljZS5jcmVhdGVOZXcoXHJcbiAgICAgICAgICAgICAgICBFbnVtVHJhbnNsYXRlS2V5LlVJX0dSSURfRk9STV9CVVRUT05fSU5GT1JNQVRJT04sXHJcbiAgICAgICAgICAgICAgICB1bmRlZmluZWQsXHJcbiAgICAgICAgICAgICAgICBFbnVtVHJhbnNsYXRlS2V5LlVJX0JVVFRPTl9DTE9TRSxcclxuICAgICAgICAgICAgICAgIHRydWUsXHJcbiAgICAgICAgICAgICAgICBFbnVtVHJhbnNsYXRlS2V5LldPUktfU0hJRlRfT1ZFUkxBUF9ERVRFQ1RFRCxcclxuICAgICAgICAgICAgICAgIGNoZWNrLnJlYXNvbi5zcGxpdCgnIHZzICcpXHJcbiAgICAgICAgICAgICAgKVxyXG5cclxuICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgbmV3U2hpZnRzJCQucHVzaChiZWluZ1B1c2hlZCk7XHJcbiAgICAgICAgICAgIHRoaXMuc2hpZnRzJCQgPSBuZXdTaGlmdHMkJDtcclxuICAgICAgICAgICAgY29uc3QgbmV3VmFsdWU6IElBdFNoaWZ0W10gPSBbXTtcclxuICAgICAgICAgICAgbmV3U2hpZnRzJCQubWFwKG0gPT4ge1xyXG4gICAgICAgICAgICAgIG5ld1ZhbHVlLnB1c2gobS52YWx1ZSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgY29uc29sZS5sb2coXCJuZXdWYWx1ZVwiLCBuZXdWYWx1ZSk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLndyaXRlVmFsdWUobmV3VmFsdWUpO1xyXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICB0aGlzLm9uQ2hhbmdlKG5ld1ZhbHVlKTtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgdGhpcy5kbmRFdmVudFN1YnNjcmlwdGlvbnMuZHJhZ2xlYXZlID0gZHJhZ2xlYXZlRXZlbnQuc3Vic2NyaWJlKChldjogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKHRoaXMud29ya1NoaWZ0RG5kU2VydmljZS5kcmFnZ2luZ0Zyb21DZWxsSWQkLnZhbHVlID09PSB0aGlzLnNoaWZ0Q2VsbElkKSByZXR1cm5cclxuXHJcbiAgICAgICAgLy9jb25zb2xlLmxvZyhcImRyYWdsZWF2ZUV2ZW50XCIpXHJcbiAgICAgICAgZXYucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICBpZiAodGhpcy53b3JrU2hpZnREbmRTZXJ2aWNlLmRyYWdnaW5nRnJvbUNlbGxJZCQudmFsdWUgPT09IHRoaXMuc2hpZnRDZWxsSWQpIHJldHVyblxyXG4gICAgICAgIHRoaXMuZHJhZ092ZXJFbGVtZW50cy5kZWxldGUoZXYudGFyZ2V0IGFzIEV2ZW50VGFyZ2V0KTtcclxuXHJcbiAgICAgICAgLy8gQ2hlY2sgaWYgd2UgYXJlIGxlYXZpbmcgdGhlIGNvbnRhaW5lclxyXG4gICAgICAgIGlmIChldi50YXJnZXQuY2xhc3NMaXN0LmNvbnRhaW5zKCdwYXJlbnQtY29udGFpbmVyJykpIHtcclxuICAgICAgICAgIC8vIENoZWNrIGlmIHRoZSByZWxhdGVkIHRhcmdldCBpcyBzdGlsbCB3aXRoaW4gdGhlIGNvbnRhaW5lclxyXG4gICAgICAgICAgaWYgKCFldi5yZWxhdGVkVGFyZ2V0IHx8ICFldi50YXJnZXQuY29udGFpbnMoZXYucmVsYXRlZFRhcmdldCkpIHtcclxuICAgICAgICAgICAgdGhpcy4kaXNEcmFnZ2luZ092ZXJDb250YWluZXIuc2V0KGZhbHNlKTtcclxuICAgICAgICAgICAgLy9jb25zb2xlLmxvZygnTGVmdCBjb250YWluZXInKTtcclxuICAgICAgICAgICAgY29udGFpbmVyRWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKCd2YWxpZC1kcm9wJyk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy5kcmFnT3ZlckVsZW1lbnRzLnNpemUgPT09IDApIHtcclxuICAgICAgICAgIGNvbnRhaW5lckVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSgndmFsaWQtZHJvcCcpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgICB0aGlzLiRjb250YWluZXIoKT8ubmF0aXZlRWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnYmFja2dyb3VuZC1jb2xvcicsIHRoaXMuJGJhY2tncm91bmRDb2xvcigpKTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuJGhpZGVTdGlja2Vyc1doaWxlRHJhZ292ZXIoKSkge1xyXG4gICAgICAgICAgdGhpcy4kc2hpZnRTdGlja2VycygpLm1hcCh4ID0+IHgubmF0aXZlRWxlbWVudD8uc3R5bGUuc2V0UHJvcGVydHkoJ2Rpc3BsYXknLCAnYmxvY2snKSk7XHJcbiAgICAgICAgICB0aGlzLiRmaXJzdEFkZFdyYXBwZXIoKT8ubmF0aXZlRWxlbWVudD8uc3R5bGUuc2V0UHJvcGVydHkoJ2Rpc3BsYXknLCAnZmxleCcpO1xyXG4gICAgICAgICAgdGhpcy4kY29udGFpbmVyKCk/Lm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJ2hlaWdodCcsICd1bnNldCcpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5kbmRFdmVudFN1YnNjcmlwdGlvbnMuZHJhZ292ZXI/LnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgdGhpcy5kbmRFdmVudFN1YnNjcmlwdGlvbnMuZHJvcD8udW5zdWJzY3JpYmUoKTtcclxuXHJcbiAgICAgICAgdGhpcy5kbmRFdmVudFN1YnNjcmlwdGlvbnMuZHJhZ292ZXIgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgdGhpcy5kbmRFdmVudFN1YnNjcmlwdGlvbnMuZHJvcCA9IHVuZGVmaW5lZDtcclxuXHJcbiAgICAgIH0pO1xyXG5cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgb25BZGQoZTogYW55KTogdm9pZCB7XHJcblxyXG4gICAgY29uc3QgcmVjdCA9IHRoaXMuJGNvbnRhaW5lcigpPy5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgdGhpcy53b3JrU2hpZnREbmRTZXJ2aWNlLmNvbGxlY3Rpb25TdGFydGVyWCQubmV4dChyZWN0LnggLSAzMjApO1xyXG4gICAgdGhpcy53b3JrU2hpZnREbmRTZXJ2aWNlLmNvbGxlY3Rpb25SZXNldFRyYW5zZm9ybSQubmV4dCghdGhpcy53b3JrU2hpZnREbmRTZXJ2aWNlLmNvbGxlY3Rpb25SZXNldFRyYW5zZm9ybSQudmFsdWUpO1xyXG5cclxuICAgIHRoaXMud29ya1NoaWZ0RG5kU2VydmljZS5zaGlmdENvbGxlY3Rpb25PcGVuJC5uZXh0KHRydWUpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLmNsZWFuVXBTdWJzY3JpcHRpb25zKCk7XHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMubWFwKHggPT4geD8udW5zdWJzY3JpYmUoKSlcclxuICB9XHJcblxyXG59XHJcbiIsIjxkaXYgI2NvbnRhaW5lciBjbGFzcz1cImNvcmUtc2hpZnQtY2VsbC1jb250YWluZXJcIj5cclxuICAgIEBmb3IgKHNoaWZ0JCBvZiBzaGlmdHMkJCE7IHRyYWNrICRpbmRleCkge1xyXG4gICAgPGRpdiAjc2hpZnRTdGlja2VyPlxyXG4gICAgICAgIDxjb3JlLXNoaWZ0LXN0aWNrZXIgW3NoaWZ0JF09XCJzaGlmdCRcIiBbJHNoaWZ0Q2VsbElkXT1cInNoaWZ0Q2VsbElkXCIgWyR3aWR0aF09XCIyMjhcIlxyXG4gICAgICAgICAgICBbcGFyZW50U2hpZnRzJF09XCJzaGlmdHMkXCI+PC9jb3JlLXNoaWZ0LXN0aWNrZXI+XHJcbiAgICA8L2Rpdj5cclxuICAgIH1cclxuXHJcbiAgICBAaWYgKCF2YWx1ZT8ubGVuZ3RoKSB7XHJcbiAgICBAaWYgKCEkaGlkZVN0YXJ0ZXJQbHVzU2lnbigpKSB7XHJcbiAgICA8ZGl2ICNmaXJzdEFkZFdyYXBwZXIgY2xhc3M9XCJmaXJzdC1hZGQtd3JhcHBlclwiIChjbGljayk9XCJvbkFkZCgkZXZlbnQpXCI+XHJcbiAgICAgICAgPGkgY2xhc3M9XCJmZWF0aGVyLXBsdXNcIj48L2k+XHJcbiAgICA8L2Rpdj5cclxuICAgIH0gQGVsc2Uge1xyXG4gICAgPGRpdiAjZmlyc3RBZGRXcmFwcGVyIGNsYXNzPVwiZmlyc3QtYWRkLXdyYXBwZXJcIj5cclxuICAgICAgICB7eyAnRFJPUF9BX1NISUZUX0hFUkUnIHwgdHJhbnNsYXRlOiBsYW5nIH19XHJcbiAgICA8L2Rpdj5cclxuICAgIH1cclxuICAgIH1cclxuXHJcblxyXG5cclxuPC9kaXY+Il19
@@ -16758,6 +16758,7 @@ class CoreShiftCardComponent extends CoreFormControlBaseComponent {
16758
16758
  this.$container = viewChild('container');
16759
16759
  this.cdr = inject(ChangeDetectorRef);
16760
16760
  this.workShiftDndService = inject(WorkShiftDndService);
16761
+ this.dndService = inject(DndService);
16761
16762
  this.mls = inject(MultiLanguageService);
16762
16763
  }
16763
16764
  writeValue(obj) {
@@ -16798,7 +16799,7 @@ class CoreShiftCardComponent extends CoreFormControlBaseComponent {
16798
16799
  setTimeout(() => {
16799
16800
  fromEvent(this.$container()?.nativeElement, 'dragstart')
16800
16801
  .subscribe((ev) => {
16801
- console.log("dragstart");
16802
+ this.dndService.dragType = EnumDragType.WORK_SHIFT;
16802
16803
  ev.dataTransfer.setData("text/plain", `${this.value.code}`);
16803
16804
  this.workShiftDndService.draggingData$.next(ev.dataTransfer.getData("text/plain"));
16804
16805
  this.workShiftDndService.draggingShift$.next(this.value);