mmhglobal-dynamicform 2.36.0 → 2.36.2
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/README.md +9 -0
- package/esm2020/lib/services/zcomponent.service.mjs +11 -9
- package/esm2020/lib/sfdatetimepicker/sfdatetimepicker.component.mjs +6 -5
- package/esm2020/lib/zganttchart/zganttchart.component.mjs +3 -3
- package/esm2020/lib/zgrid/zgrid.binding.directive.mjs +24 -4
- package/fesm2015/mmhglobal-dynamicform.mjs +36 -15
- package/fesm2015/mmhglobal-dynamicform.mjs.map +1 -1
- package/fesm2020/mmhglobal-dynamicform.mjs +36 -15
- package/fesm2020/mmhglobal-dynamicform.mjs.map +1 -1
- package/lib/zgrid/zgrid.binding.directive.d.ts +4 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -3,6 +3,15 @@
|
|
|
3
3
|
This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 11.2.13.
|
|
4
4
|
|
|
5
5
|
## Changelog
|
|
6
|
+
|
|
7
|
+
### 2.36.2
|
|
8
|
+
- [zgrid] - Enhancement: Handle IsIgnoreTimeZone for Date Columns in ZGrid.
|
|
9
|
+
- [zcomponent.service] - Bug Fix: Remove "Z" instead of "000Z," as there is a possibility of a value in milliseconds, which could cause the "Z" to remain and will include the timezone.
|
|
10
|
+
|
|
11
|
+
### 2.36.1
|
|
12
|
+
- [zcomponent.component] - Bug Fix: Proper handling of IsIgnoreTimeZone for short dates when loading data.
|
|
13
|
+
- [sfdatetimepicker] - Bug Fix: Switch from binding to [value] to [ngModel] as it handles synchronization and invalid states more effectively.
|
|
14
|
+
|
|
6
15
|
### 2.36.0
|
|
7
16
|
- [zudf] - Enhancement: Utilize the loadViaAsset property value from the field element, allowing the zudf component to load field elements from the asset folder.
|
|
8
17
|
- [virtual-scroll] - Enhancement: Added to use the property SelectOptions value set in the field element. Available values are ('single', 'multiple', undefined). This enables child components in the virtual scroll to be selectable.
|
|
@@ -242,16 +242,18 @@ export class ZComponentService {
|
|
|
242
242
|
if (this.timePickerDateType.includes(data.Type)) {
|
|
243
243
|
const userTimeZoneOffSet = this.convertOffsetMinToHour((new Date(value).getTimezoneOffset()));
|
|
244
244
|
const datetimeWithoutTimeZone = this.removeTimeZoneAndConvertToISOString(value);
|
|
245
|
-
return new Date(`${datetimeWithoutTimeZone.split('.000Z')[0]}${userTimeZoneOffSet}`);
|
|
245
|
+
//return new Date(`${datetimeWithoutTimeZone.split('.000Z')[0]}${userTimeZoneOffSet}`);
|
|
246
|
+
return new Date(`${datetimeWithoutTimeZone.split('Z')[0]}${userTimeZoneOffSet}`);
|
|
246
247
|
}
|
|
247
248
|
else if (data.Type === 'zshortdate') {
|
|
248
|
-
const dateOnly = value.includes('T') ? value.split('T')[0] : value;
|
|
249
|
-
const date = new Date(dateOnly);
|
|
250
|
-
date.setUTCDate(1);
|
|
251
|
-
|
|
252
|
-
const
|
|
253
|
-
|
|
254
|
-
|
|
249
|
+
const dateOnly = value.includes('T') ? value.split('T')[0] : value; // Extract date portion
|
|
250
|
+
const date = new Date(dateOnly); // Create a date object from the extracted date
|
|
251
|
+
date.setUTCDate(1); // Set day to the first of the month
|
|
252
|
+
// Convert to UTC, accounting for the timezone offset
|
|
253
|
+
const timezoneOffset = date.getTimezoneOffset(); // Get timezone offset in minutes
|
|
254
|
+
date.setMinutes(date.getMinutes() + timezoneOffset); // Adjust for timezone offset
|
|
255
|
+
// Return the final date object
|
|
256
|
+
return date;
|
|
255
257
|
}
|
|
256
258
|
else {
|
|
257
259
|
const dateOnly = value.includes('T') ? value.split('T')[0] : value;
|
|
@@ -295,4 +297,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.3", ngImpor
|
|
|
295
297
|
providedIn: 'root'
|
|
296
298
|
}]
|
|
297
299
|
}], ctorParameters: function () { return [{ type: i1.UISignalService }, { type: i2.ComponentObjectService }, { type: i1.TranslationService }, { type: i1.ZCoreService }, { type: i1.FieldService }]; } });
|
|
298
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiemNvbXBvbmVudC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvc2VydmljZXMvemNvbXBvbmVudC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtCQUErQjtBQUMvQixPQUFPLEVBQUUsVUFBVSxFQUFnRSxNQUFNLGVBQWUsQ0FBQztBQUd6Ryw2QkFBNkI7QUFFN0IsOEJBQThCO0FBQzlCLE9BQU8sRUFBRSxRQUFRLEVBQWMsRUFBRSxFQUFXLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUs5RCx5RkFBeUY7QUFDekYsT0FBTyxFQUVPLGdCQUFnQixFQUU3QixNQUFNLGlCQUFpQixDQUFDOzs7O0FBTXpCLE1BQU0sT0FBTyxpQkFBaUI7SUFHNUIsWUFDUyxlQUFnQyxFQUMvQixzQkFBOEMsRUFDOUMsZ0JBQW9DLEVBQ3BDLFlBQTBCLEVBQzFCLFlBQTBCO1FBSjNCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUMvQiwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXdCO1FBQzlDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBb0I7UUFDcEMsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFpSG5CLG1CQUFjLEdBQUcsSUFBSSxDQUFDO1FBeUt2Qyw2QkFBNkI7UUFDWix1QkFBa0IsR0FBRyxDQUFDLGFBQWEsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLGtCQUFrQixDQUFDLENBQUM7UUF6UjVGLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN4RCxDQUFDO0lBRU0sbUJBQW1CLENBQUMsYUFBcUI7UUFDOUMsT0FBTyxnQkFBZ0IsQ0FBQyxtQkFBbUIsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRU0sYUFBYSxD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QUFNLENBQUMsVUFBVSxHQUFHLEdBQUcsRUFBRTtZQUNyRyxPQUFPLElBQUksQ0FBQztTQUNiO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDOzs4R0ExVlUsaUJBQWlCO2tIQUFqQixpQkFBaUIsY0FGaEIsTUFBTTsyRkFFUCxpQkFBaUI7a0JBSDdCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiLyoqKioqKioqKiogQW5ndWxhciAqKioqKioqKioqL1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlLCBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsIEVtYmVkZGVkVmlld1JlZiwgQ2hhbmdlRGV0ZWN0b3JSZWYgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG4vKioqKioqKioqKiBJb25pYyAqKioqKioqKioqL1xyXG5cclxuLyoqKioqKioqKiogUGx1Z2luICoqKioqKioqKiovXHJcbmltcG9ydCB7IGZvcmtKb2luLCBPYnNlcnZhYmxlLCBvZiwgU3ViamVjdCwgdGFwIH0gZnJvbSBcInJ4anNcIjtcclxuXHJcbi8qKioqKioqKioqIENvbXBvbmVudCAmIFNlcnZpY2UgKioqKioqKioqKi9cclxuaW1wb3J0IHsgRmllbGRFbGVtZW50RGlyZWN0aXZlIH0gZnJvbSAnLi4vZGlyZWN0aXZlcy9maWVsZGVsZW1lbnQuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgQ29tcG9uZW50T2JqZWN0U2VydmljZSB9IGZyb20gJ21taGdsb2JhbC1taWRkbGV3YXJlJztcclxuLy8gaW1wb3J0IHsgQ29tcG9uZW50T2JqZWN0U2VydmljZSB9IGZyb20gJ3Byb2plY3RzL21taGdsb2JhbC1taWRkbGV3YXJlL3NyYy9wdWJsaWMtYXBpJztcclxuaW1wb3J0IHtcclxuICBaQ29yZVNlcnZpY2UsIFRyYW5zbGF0aW9uU2VydmljZSwgRmllbGRTZXJ2aWNlLFxyXG4gIFpDb21wb25lbnQsIFpDb21wb25lbnRIZWxwZXIsIFpDb21wb25lbnRQcm9wZXJ0aWVzLCBaRmllbGQsIFpHcm91cCxcclxuICBVSVNpZ25hbFNlcnZpY2VcclxufSBmcm9tICdtbWhnbG9iYWwtemNvcmUnO1xyXG5cclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFpDb21wb25lbnRTZXJ2aWNlIHtcclxuICBwdWJsaWMgZW52aXJvbm1lbnQ7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIHVpU2lnbmFsU2VydmljZTogVUlTaWduYWxTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjb21wb25lbnRPYmplY3RTZXJ2aWNlOiBDb21wb25lbnRPYmplY3RTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGlvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHpjb3JlU2VydmljZTogWkNvcmVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBmaWVsZFNlcnZpY2U6IEZpZWxkU2VydmljZSxcclxuICApIHtcclxuICAgIHRoaXMuZW52aXJvbm1lbnQgPSB0aGlzLnpjb3JlU2VydmljZS5nZXRFbnZpcm9ubWVudCgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGlzU2tpcENvbXBvbmVudFR5cGUoY29tcG9uZW50VHlwZTogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gWkNvbXBvbmVudEhlbHBlci5pc1NraXBDb21wb25lbnRUeXBlKGNvbXBvbmVudFR5cGUpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGxvYWRDb21wb25lbnQoXHJcbiAgICBjb21wb25lbnRGYWN0b3J5UmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcclxuICAgIGZpZWxkRWxlbWVudDogRmllbGRFbGVtZW50RGlyZWN0aXZlLFxyXG4gICAgZmllbGQ6IGFueSxcclxuICAgIGdyb3VwOiBhbnksXHJcbiAgICBmb3JtOiBGb3JtR3JvdXAsXHJcbiAgICBjb250YWluZXJGaWVsZDogYW55XHJcbiAgKSB7XHJcbiAgICAvLyBpZihmaWVsZC5OYW1lID09PSAnRm9ybURldGFpbENvbnRhY3RHcmlkJykge1xyXG4gICAgLy8gICBkZWJ1Z2dlcjtcclxuICAgIC8vIH1cclxuXHJcbiAgICBpZiAodGhpcy5pc1NraXBDb21wb25lbnRUeXBlKGZpZWxkLlR5cGUpKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgY29tcG9uZW50RmFjdG9yeTtcclxuICAgIGNvbnN0IGNvbXBvbmVudE5hbWUgPSB0aGlzLmNvbXBvbmVudE9iamVjdFNlcnZpY2UuZ2V0T2JqZWN0KGZpZWxkLlR5cGUpO1xyXG4gICAgaWYgKGNvbXBvbmVudE5hbWUpIHtcclxuICAgICAgY29tcG9uZW50RmFjdG9yeSA9IGNvbXBvbmVudEZhY3RvcnlSZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShcclxuICAgICAgICBjb21wb25lbnROYW1lXHJcbiAgICAgICk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb21wb25lbnRGYWN0b3J5ID0gY29tcG9uZW50RmFjdG9yeVJlc29sdmVyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KFxyXG4gICAgICAgIHRoaXMuY29tcG9uZW50T2JqZWN0U2VydmljZS5nZXRPYmplY3QoXCJ1bmtub3duXCIpXHJcbiAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3Qgdmlld0NvbnRhaW5lclJlZiA9IGZpZWxkRWxlbWVudC52aWV3Q29udGFpbmVyUmVmO1xyXG4gICAgdmlld0NvbnRhaW5lclJlZi5jbGVhcigpO1xyXG4gICAgaWYgKCFmb3JtKSB7XHJcbiAgICAgIGNvbnNvbGUud2FybignRm9ybUdyb3VwIGlzIGVtcHR5IScpO1xyXG4gICAgICBkZWJ1Z2dlcjtcclxuICAgIH1cclxuICAgIGNvbnN0IGNvbXBvbmVudFJlZiA9IHZpZXdDb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50KGNvbXBvbmVudEZhY3RvcnkpO1xyXG4gICAgKGNvbXBvbmVudFJlZi5pbnN0YW5jZSBhcyBaQ29tcG9uZW50KS5kYXRhID0gZmllbGQ7XHJcbiAgICAoY29tcG9uZW50UmVmLmluc3RhbmNlIGFzIFpDb21wb25lbnQpLmdyb3VwID0gZ3JvdXA7XHJcbiAgICAoY29tcG9uZW50UmVmLmluc3RhbmNlIGFzIFpDb21wb25lbnQpLmZvcm0gPSBmb3JtO1xyXG4gICAgKGNvbXBvbmVudFJlZi5pbnN0YW5jZSBhcyBaQ29tcG9uZW50KS5jb250YWluZXJGaWVsZCA9IGNvbnRhaW5lckZpZWxkO1xyXG4gICAgLy8gKGNvbXBvbmVudFJlZi5pbnN0YW5jZSBhcyBaQ29tcG9uZW50KS5vdXRwdXRFdmVudC5zdWJzY3JpYmUoKGV2ZW50OiBhbnkpID0+IGdyb3VwLm91dHB1dEV2ZW50KGV2ZW50KSk7XHJcblxyXG4gICAgLy8jcmVnaW9uIGZvciBjb21wb25lbnQgbG9hZCBpbiB6dWRmIGNvbnRhaW5lclxyXG4gICAgaWYgKGZpZWxkLlZhbHVlICYmIGZpZWxkLlN1YlR5cGUpIHtcclxuICAgICAgaWYgKCFBcnJheS5pc0FycmF5KGZpZWxkLlZhbHVlKSkge1xyXG4gICAgICAgIGlmIChmaWVsZC5WYWx1ZS5pbmNsdWRlcygnenVkZicpKSB7XHJcbiAgICAgICAgICBjb25zdCBjb21wb25lbnRWYWx1ZSA9IGZpZWxkLlZhbHVlO1xyXG4gICAgICAgICAgY29uc3QgZm9ybUNvbnRyb2wgPSBmb3JtLmNvbnRyb2xzW2NvbXBvbmVudFZhbHVlXTtcclxuICAgICAgICAgIGlmIChmb3JtQ29udHJvbCkge1xyXG4gICAgICAgICAgICBjb25zdCBbZmlyc3RTZWdtZW50LCBzZWNvbmRTZWdtZW50XSA9IGNvbXBvbmVudFZhbHVlLnNwbGl0KCdfJyk7XHJcbiAgICAgICAgICAgIGNvbnN0IHp1ZGZTY29wZU5hbWUgPSBgJHtmaXJzdFNlZ21lbnR9XyR7c2Vjb25kU2VnbWVudH1gO1xyXG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGdyb3VwW3p1ZGZTY29wZU5hbWVdLnpNb2RlbFtjb21wb25lbnRWYWx1ZV07XHJcblxyXG4gICAgICAgICAgICBpZiAodmFsdWUpIHtcclxuICAgICAgICAgICAgICBmb3JtQ29udHJvbC5zZXRWYWx1ZShncm91cFt6dWRmU2NvcGVOYW1lXS56TW9kZWxbY29tcG9uZW50VmFsdWVdKTtcclxuICAgICAgICAgICAgICBmb3JtQ29udHJvbC5tYXJrQXNUb3VjaGVkKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIC8vI2VuZHJlZ2lvblxyXG4gIH1cclxuXHJcbiAgYXBwZW5kQ29tcG9uZW50VG9EeW5hbWljRm9ybShcclxuICAgIGNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxyXG4gICAgaW5qZWN0b3I6IGFueSxcclxuICAgIGFwcFJlZjogYW55LFxyXG4gICAgZmllbGQ6IGFueSxcclxuICAgIGdyb3VwOiBhbnksXHJcbiAgICBjb250YWluZXJJZDogc3RyaW5nXHJcbiAgKSB7XHJcbiAgICBpZiAodGhpcy5pc1NraXBDb21wb25lbnRUeXBlKGZpZWxkLlR5cGUpKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgY29tcG9uZW50UmVmO1xyXG4gICAgY29uc3QgY29tcG9uZW50TmFtZSA9IHRoaXMuY29tcG9uZW50T2JqZWN0U2VydmljZS5nZXRPYmplY3QoZmllbGQuVHlwZSk7XHJcbiAgICAvLyAxLiBDcmVhdGUgYSBjb21wb25lbnQgcmVmZXJlbmNlIGZyb20gdGhlIGNvbXBvbmVudFxyXG4gICAgaWYgKGNvbXBvbmVudE5hbWUpIHtcclxuICAgICAgY29tcG9uZW50UmVmID0gY29tcG9uZW50RmFjdG9yeVJlc29sdmVyXHJcbiAgICAgICAgLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KGNvbXBvbmVudE5hbWUpXHJcbiAgICAgICAgLmNyZWF0ZShpbmplY3Rvcik7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb21wb25lbnRSZWYgPSBjb21wb25lbnRGYWN0b3J5UmVzb2x2ZXJcclxuICAgICAgICAucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkodGhpcy5jb21wb25lbnRPYmplY3RTZXJ2aWNlLmdldE9iamVjdChcInVua25vd25cIikpXHJcbiAgICAgICAgLmNyZWF0ZShpbmplY3Rvcik7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gMi4gQXR0YWNoIGNvbXBvbmVudCB0byB0aGUgYXBwUmVmIHNvIHRoYXQgaXQncyBpbnNpZGUgdGhlIG5nIGNvbXBvbmVudCB0cmVlXHJcbiAgICBhcHBSZWYuYXR0YWNoVmlldyhjb21wb25lbnRSZWYuaG9zdFZpZXcpO1xyXG5cclxuICAgIC8vIDMuIEdldCBET00gZWxlbWVudCBmcm9tIGNvbXBvbmVudFxyXG4gICAgY29uc3QgZG9tRWxlbSA9IChjb21wb25lbnRSZWYuaG9zdFZpZXcgYXMgRW1iZWRkZWRWaWV3UmVmPGFueT4pXHJcbiAgICAgIC5yb290Tm9kZXNbMF0gYXMgSFRNTEVsZW1lbnQ7XHJcblxyXG4gICAgLy8gNC4gQXBwZW5kIERPTSBlbGVtZW50IHRvIHRoZSBib2R5XHJcbiAgICBjb25zdCBkeW5hbWljRm9ybUhvc3Q6IGFueSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCIjXCIgKyBjb250YWluZXJJZCk7XHJcbiAgICBkeW5hbWljRm9ybUhvc3QuYXBwZW5kQ2hpbGQoZG9tRWxlbSk7XHJcblxyXG4gICAgKGNvbXBvbmVudFJlZi5pbnN0YW5jZSBhcyBaQ29tcG9uZW50KS5kYXRhID0gZmllbGQ7XHJcbiAgICAoY29tcG9uZW50UmVmLmluc3RhbmNlIGFzIFpDb21wb25lbnQpLmdyb3VwID0gZ3JvdXA7XHJcbiAgICByZXR1cm4gY29tcG9uZW50UmVmO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZWFkb25seSBERUZBVUxUX0lTRURJVCA9IHRydWU7XHJcbiAgcHVibGljIHNldEVkaXRNb2RlKG1lOiBhbnkpIHtcclxuICAgIGxldCBlZGl0TW9kZSA9IHsgdmFsdWU6IHRoaXMuREVGQVVMVF9JU0VESVQsIGluaXRWYWx1ZTogdGhpcy5ERUZBVUxUX0lTRURJVCB9O1xyXG5cclxuICAgIGlmIChtZSAmJiBtZS5kYXRhICYmIG1lLmRhdGEuRWRpdE1vZGUgIT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIGlmICh0eXBlb2YgbWUuZGF0YS5FZGl0TW9kZSAhPSBcIm9iamVjdFwiKSB7XHJcbiAgICAgICAgY29uc3QgZ3JwRWRpdE1vZGVWYWx1ZSA9IFpDb21wb25lbnRIZWxwZXIuZ2V0R3JvdXBWYWx1ZShtZS5kYXRhLkVkaXRNb2RlLCBtZS5ncm91cCk7XHJcbiAgICAgICAgZWRpdE1vZGUgPSB7IHZhbHVlOiBncnBFZGl0TW9kZVZhbHVlLCBpbml0VmFsdWU6IGdycEVkaXRNb2RlVmFsdWUgfTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICBlZGl0TW9kZSA9IG1lLmRhdGEuRWRpdE1vZGU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGVsc2UgaWYgKG1lICYmIG1lLmNvbnRhaW5lckZpZWxkICYmIG1lLmNvbnRhaW5lckZpZWxkW2BfRWRpdE1vZGVgXSAhPSB1bmRlZmluZWQpIHtcclxuICAgICAgZWRpdE1vZGUgPSBtZS5jb250YWluZXJGaWVsZFtgX0VkaXRNb2RlYF07XHJcbiAgICB9XHJcbiAgICBtZS5kYXRhW2BfRWRpdE1vZGVgXSA9IGVkaXRNb2RlO1xyXG4gICAgbWUuZGF0YVtgX0VkaXRNb2RlYF0udmFsdWUgPSBlZGl0TW9kZS5pbml0VmFsdWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0Q29tcG9uZW50QWRkaXRpb25hbFByb3BlcnRpZXMobWU6IGFueSkge1xyXG4gICAgbWUuY29tcG9uZW50UHJvcGVydGllcy50aXRsZSA9IG1lLmRhdGEgJiYgbWUuZGF0YS5UaXRsZSAmJiB0eXBlb2YgbWUuZGF0YS5UaXRsZSA9PT0gJ3N0cmluZycgJiYgbWUuZGF0YS5UaXRsZS5zdGFydHNXaXRoKFwiZ3JvdXAuXCIpID8gWkNvbXBvbmVudEhlbHBlci5nZXRHcm91cEV2YWxWYWx1ZS5jYWxsKG1lLCBtZS5kYXRhLlRpdGxlKSA6IG1lLmRhdGEuVGl0bGU7XHJcbiAgICBtZS5jb21wb25lbnRQcm9wZXJ0aWVzLmljb24gPSBtZS5kYXRhICYmIG1lLmRhdGEuSWNvbiAmJiB0eXBlb2YgbWUuZGF0YS5JY29uID09PSAnc3RyaW5nJyAmJiBtZS5kYXRhLkljb24uc3RhcnRzV2l0aChcImdyb3VwLlwiKSA/IFpDb21wb25lbnRIZWxwZXIuZ2V0R3JvdXBFdmFsVmFsdWUuY2FsbChtZSwgbWUuZGF0YS5JY29uKSA6IG1lLmRhdGEuSWNvbjtcclxuICAgIG1lLmNvbXBvbmVudFByb3BlcnRpZXMubGFiZWwgPSBtZS5kYXRhICYmIG1lLmRhdGEuTGFiZWwgJiYgdHlwZW9mIG1lLmRhdGEuTGFiZWwgPT09ICdzdHJpbmcnICYmIG1lLmRhdGEuTGFiZWwuc3RhcnRzV2l0aChcImdyb3VwLlwiKSA/IFpDb21wb25lbnRIZWxwZXIuZ2V0R3JvdXBFdmFsVmFsdWUuY2FsbChtZSwgbWUuZGF0YS5MYWJlbCkgOiBtZS5kYXRhLkxhYmVsO1xyXG4gICAgaWYgKG1lLmdyb3VwLmZpZWxkcyAmJiBtZS5ncm91cC5maWVsZHMubGVuZ3RoID4gMCkge1xyXG4gICAgICBjb25zdCBmaWVsZCA9IFpDb21wb25lbnRIZWxwZXIuZ2V0RmllbGRGcm9tRmllbGRzQnlWYWx1ZShtZS5ncm91cC5maWVsZHMsIG1lLmRhdGEuVmFsdWUpO1xyXG4gICAgICBpZiAoZmllbGQpIHtcclxuICAgICAgICBmaWVsZFtgY29tcG9uZW50UHJvcGVydGllc2BdID0gbWUuY29tcG9uZW50UHJvcGVydGllcztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldENvbXBTdHlsZXNCeUluZGV4KG1lOiBhbnkpIHtcclxuICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKG1lLmNvbXBvbmVudFByb3BlcnRpZXMuc3R5bGUpKSB7XHJcbiAgICAgIGNvbnN0IGluZCA9IGtleS5yZXBsYWNlKCdzdHlsZScsICcnKTtcclxuXHJcbiAgICAgIGxldCBzdHlsZSA9IG1lLmRhdGFbYFN0eWxlJHtpbmR9YF07XHJcbiAgICAgIGlmIChtZS5kYXRhICYmIG1lLmRhdGFbYFN0eWxlJHtpbmR9YF0gJiYgdHlwZW9mIG1lLmRhdGFbYFN0eWxlJHtpbmR9YF0gPT09ICdzdHJpbmcnICYmIG1lLmRhdGFbYFN0eWxlJHtpbmR9YF0uc3RhcnRzV2l0aCgnZ3JvdXAnKSkge1xyXG4gICAgICAgIHN0eWxlID0gWkNvbXBvbmVudEhlbHBlci5nZXRHcm91cFZhbHVlKG1lLmRhdGFbYFN0eWxlJHtpbmR9YF0sIG1lLmdyb3VwKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnNldFN0eWxlQnlJbmRleChtZSwgaW5kLCBzdHlsZSB8fCBcIlwiKTtcclxuICAgIH1cclxuXHJcbiAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhtZS5jb21wb25lbnRQcm9wZXJ0aWVzLmNvbnRhaW5lclN0eWxlKSkge1xyXG4gICAgICBjb25zdCBpbmQgPSBrZXkucmVwbGFjZSgnc3R5bGUnLCAnJyk7XHJcbiAgICAgIGxldCBzdHlsZSA9IG1lLmRhdGFbYENvbnRhaW5lclN0eWxlJHtpbmR9YF07XHJcbiAgICAgIGlmIChtZS5kYXRhICYmIG1lLmRhdGFbYENvbnRhaW5lclN0eWxlJHtpbmR9YF0gJiYgdHlwZW9mIG1lLmRhdGFbYENvbnRhaW5lclN0eWxlJHtpbmR9YF0gPT09ICdzdHJpbmcnICYmIG1lLmRhdGFbYENvbnRhaW5lclN0eWxlJHtpbmR9YF0uc3RhcnRzV2l0aCgnZ3JvdXAnKSkge1xyXG4gICAgICAgIHN0eWxlID0gWkNvbXBvbmVudEhlbHBlci5nZXRHcm91cFZhbHVlKG1lLmRhdGFbYENvbnRhaW5lclN0eWxlJHtpbmR9YF0sIG1lLmdyb3VwKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnNldENvbnRhaW5lclN0eWxlQnlJbmRleChtZSwgaW5kLCBzdHlsZSB8fCBcIlwiKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXRTdHlsZUJ5SW5kZXgobWU6IGFueSwgaW5kOiBzdHJpbmcsIHN0eWxlOiBzdHJpbmcpIHtcclxuICAgIG1lLmNvbXBvbmVudFByb3BlcnRpZXMuc3R5bGVbYHN0eWxlJHtpbmR9YF0gPSBzdHlsZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXRDb250YWluZXJTdHlsZUJ5SW5kZXgobWU6IGFueSwgaW5kOiBzdHJpbmcsIHN0eWxlOiBzdHJpbmcpIHtcclxuICAgIG1lLmNvbXBvbmVudFByb3BlcnRpZXMuY29udGFpbmVyU3R5bGVbYHN0eWxlJHtpbmR9YF0gPSBzdHlsZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjb252ZXJ0U3R5bGVTdHJpbmdUb09iamVjdChzdHlsZVN0cmluZzogc3RyaW5nKTogYW55IHtcclxuICAgIHRyeSB7XHJcbiAgICAgIGNvbnN0IHN0eWxlQXJyID0gc3R5bGVTdHJpbmcuc3BsaXQoXCI7XCIpLmZpbHRlcih4ID0+IHgpO1xyXG4gICAgICBjb25zdCBzdHlsZU9iaiA9IHt9O1xyXG4gICAgICBmb3IgKGNvbnN0IHN0eWxlIG9mIHN0eWxlQXJyKSB7XHJcbiAgICAgICAgY29uc3Qga3ZwID0gc3R5bGUuc3BsaXQoXCI6XCIpO1xyXG4gICAgICAgIHN0eWxlT2JqW2t2cFswXS50cmltKCldID0ga3ZwWzFdLnRyaW0oKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgcmV0dXJuIHN0eWxlT2JqO1xyXG4gICAgfVxyXG4gICAgY2F0Y2ggKGVycikge1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyB0cmFuc2xhdGVUb29sQmFySXRlbXMoaXRlbXM6IEFycmF5PGFueT4sIGdyb3VwOiBaR3JvdXApOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgY29uc3Qgb2JzTGlzdCA9IG5ldyBBcnJheTxPYnNlcnZhYmxlPGFueT4+KCk7XHJcbiAgICBvYnNMaXN0LnB1c2godGhpcy50cmFuc2xhdGVTZXJ2aWNlLiR0cmFuc2xhdGVJdGVtTGlzdChpdGVtcywgXCJ0ZXh0XCIsIHsgZWxlbWVudE5hbWU6ICdnZW5lcmFsJywgZ3JvdXAgfSkpO1xyXG5cclxuICAgIGlmIChvYnNMaXN0Lmxlbmd0aCA8PSAwKSB7XHJcbiAgICAgIHJldHVybiBvZih7fSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZm9ya0pvaW4ob2JzTGlzdCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgdHJhbnNsYXRlR3JpZENvbHVtbkhlYWRlcihjb2x1bW5zOiBBcnJheTxhbnk+LCBncm91cDogWkdyb3VwKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGNvbnN0IG9ic0xpc3QgPSBuZXcgQXJyYXk8T2JzZXJ2YWJsZTxhbnk+PigpO1xyXG4gICAgb2JzTGlzdC5wdXNoKHRoaXMudHJhbnNsYXRlU2VydmljZS4kdHJhbnNsYXRlSXRlbUxpc3QoY29sdW1ucywgXCJ0aXRsZVwiLCB7IGVsZW1lbnROYW1lOiAnbWVudScsIGdyb3VwIH0pKTtcclxuXHJcbiAgICBpZiAob2JzTGlzdC5sZW5ndGggPD0gMCkge1xyXG4gICAgICByZXR1cm4gb2Yoe30pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZvcmtKb2luKG9ic0xpc3QpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHRyYW5zbGF0ZUJ1dHRvbkNvbXBvbmVudChidXR0b25zOiBBcnJheTxhbnk+LCBncm91cDogWkdyb3VwKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGxldCBvYnNMaXN0ID0gbmV3IEFycmF5PE9ic2VydmFibGU8YW55Pj4oKTtcclxuICAgIG9ic0xpc3QucHVzaCh0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuJHRyYW5zbGF0ZUl0ZW1MaXN0KGJ1dHRvbnMsIFwidGV4dFwiLCB7IGVsZW1lbnROYW1lOiBncm91cC5maWVsZE5hbWUsIGdyb3VwIH0pKTtcclxuXHJcbiAgICBpZiAob2JzTGlzdC5sZW5ndGggPD0gMCkge1xyXG4gICAgICByZXR1cm4gb2Yoe30pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZvcmtKb2luKG9ic0xpc3QpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHRyYW5zbGF0ZUNvbXBvbmVudEZpZWxkKGRhdGE6IFpGaWVsZCwgZ3JvdXA6IFpHcm91cCk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICBsZXQgb2JzTGlzdCA9IG5ldyBBcnJheTxPYnNlcnZhYmxlPGFueT4+KCk7XHJcblxyXG4gICAgY29uc3QgcHJvcExpc3QgPSBbXCJMYWJlbFwiLCBcIlBsYWNlSG9sZGVyXCIsIFwiVGl0bGVcIl07IC8vIFRvb2xUaXBcclxuICAgIGZvciAoY29uc3QgcHJvcCBvZiBwcm9wTGlzdCkge1xyXG4gICAgICBpZiAoZGF0YVtwcm9wXSAhPSB1bmRlZmluZWQpIHtcclxuICAgICAgICBjb25zdCBvYnMgPSB0aGlzLnRyYW5zbGF0ZUNvbXBCeVByb3BlcnR5KGRhdGEsIHByb3AsIGdyb3VwLmZpZWxkTmFtZSwgZ3JvdXApO1xyXG4gICAgICAgIGlmIChvYnMpIHtcclxuICAgICAgICAgIG9ic0xpc3QgPSBvYnNMaXN0LmNvbmNhdChvYnMpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlmIChvYnNMaXN0Lmxlbmd0aCA8PSAwKSB7XHJcbiAgICAgIHJldHVybiBvZih7fSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZm9ya0pvaW4ob2JzTGlzdCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgdHJhbnNsYXRlQ29tcG9uZW50UHJvcGVydGllcyhjb21wb25lbnRQcm9wZXJ0aWVzOiBaQ29tcG9uZW50UHJvcGVydGllcywgZ3JvdXA6IFpHcm91cCk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICBsZXQgb2JzTGlzdCA9IG5ldyBBcnJheTxPYnNlcnZhYmxlPGFueT4+KCk7XHJcblxyXG4gICAgY29uc3QgcHJvcExpc3QgPSBbXCJsYWJlbFwiLCBcInRpdGxlXCJdO1xyXG4gICAgZm9yIChjb25zdCBwcm9wIG9mIHByb3BMaXN0KSB7XHJcbiAgICAgIGlmIChjb21wb25lbnRQcm9wZXJ0aWVzW3Byb3BdICE9IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIGNvbnN0IG9icyA9IHRoaXMudHJhbnNsYXRlQ29tcEJ5UHJvcGVydHkoY29tcG9uZW50UHJvcGVydGllcywgcHJvcCwgZ3JvdXAuZmllbGROYW1lLCBncm91cCk7XHJcbiAgICAgICAgaWYgKG9icykge1xyXG4gICAgICAgICAgb2JzTGlzdCA9IG9ic0xpc3QuY29uY2F0KG9icyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKG9ic0xpc3QubGVuZ3RoIDw9IDApIHtcclxuICAgICAgcmV0dXJuIG9mKHt9KTtcclxuICAgIH1cclxuICAgIHJldHVybiBmb3JrSm9pbihvYnNMaXN0KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdHJhbnNsYXRlQ29tcEJ5UHJvcGVydHkoZGF0YTogYW55LCBwcm9wTmFtZTogc3RyaW5nLCBmaWVsZE5hbWU6IHN0cmluZywgZ3JvdXA6IFpHcm91cCk6IEFycmF5PE9ic2VydmFibGU8YW55Pj4ge1xyXG4gICAgaWYgKGRhdGFbcHJvcE5hbWVdID09IHVuZGVmaW5lZCB8fCBkYXRhW3Byb3BOYW1lXSA9PSBcIlwiKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBvYnNMaXN0ID0gbmV3IEFycmF5PE9ic2VydmFibGU8YW55Pj4oKTtcclxuICAgIGlmIChBcnJheS5pc0FycmF5KGRhdGFbcHJvcE5hbWVdKSAmJiBkYXRhW3Byb3BOYW1lXS5sZW5ndGggPiAwKSB7XHJcbiAgICAgIG9ic0xpc3QucHVzaCh0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuJHRyYW5zbGF0ZUl0ZW1MaXN0KGRhdGFbcHJvcE5hbWVdLCBudWxsLCB7IGVsZW1lbnROYW1lOiBmaWVsZE5hbWUsIGdyb3VwIH0pLnBpcGUoXHJcbiAgICAgICAgdGFwKHJlc3AgPT4ge1xyXG4gICAgICAgICAgZGF0YVtwcm9wTmFtZV0gPSByZXNwO1xyXG4gICAgICAgIH0pKVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIG9ic0xpc3QucHVzaCh0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuJHRyYW5zbGF0ZVNpbmdsZUl0ZW0oZGF0YSwgcHJvcE5hbWUsIHsgZWxlbWVudE5hbWU6IGZpZWxkTmFtZSwgZ3JvdXAgfSkucGlwZShcclxuICAgICAgICB0YXAocmVzcCA9PiB7XHJcbiAgICAgICAgICBkYXRhW3Byb3BOYW1lXSA9IHJlc3A7XHJcbiAgICAgICAgfSkpXHJcbiAgICAgIClcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gb2JzTGlzdDtcclxuICB9XHJcblxyXG4gIC8vI3JlZ2lvbiBEYXRlVGltZSBDb252ZXJzaW9uXHJcbiAgcHJpdmF0ZSByZWFkb25seSB0aW1lUGlja2VyRGF0ZVR5cGUgPSBbJ3p1aWRhdGV0aW1lJywgJ3p0aW1lJywgJ3p1aXRpbWUnLCAnc2ZkYXRldGltZXBpY2tlciddO1xyXG4gIHB1YmxpYyBsb2NhbGl6ZURhdGVUaW1lQnlJZ25vcmluZ1RpbWVab25lKHZhbHVlOiBzdHJpbmcsIGRhdGE6IFpGaWVsZCk6IERhdGUge1xyXG4gICAgaWYgKHRoaXMudGltZVBpY2tlckRhdGVUeXBlLmluY2x1ZGVzKGRhdGEuVHlwZSkpIHtcclxuICAgICAgY29uc3QgdXNlclRpbWVab25lT2ZmU2V0ID0gdGhpcy5jb252ZXJ0T2Zmc2V0TWluVG9Ib3VyKChuZXcgRGF0ZSh2YWx1ZSkuZ2V0VGltZXpvbmVPZmZzZXQoKSkpO1xyXG4gICAgICBjb25zdCBkYXRldGltZVdpdGhvdXRUaW1lWm9uZSA9IHRoaXMucmVtb3ZlVGltZVpvbmVBbmRDb252ZXJ0VG9JU09TdHJpbmcodmFsdWUpO1xyXG5cclxuICAgICAgcmV0dXJuIG5ldyBEYXRlKGAke2RhdGV0aW1lV2l0aG91dFRpbWVab25lLnNwbGl0KCcuMDAwWicpWzBdfSR7dXNlclRpbWVab25lT2ZmU2V0fWApO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAoZGF0YS5UeXBlID09PSAnenNob3J0ZGF0ZScpIHtcclxuICAgICAgY29uc3QgZGF0ZU9ubHkgPSB2YWx1ZS5pbmNsdWRlcygnVCcpID8gdmFsdWUuc3BsaXQoJ1QnKVswXSA6IHZhbHVlO1xyXG4gICAgICBjb25zdCBkYXRlID0gbmV3IERhdGUoZGF0ZU9ubHkpO1xyXG4gICAgICBkYXRlLnNldFVUQ0RhdGUoMSk7XHJcblxyXG4gICAgICBjb25zdCBkYXRlSW5VVEMgPSBuZXcgRGF0ZShEYXRlLlVUQyhkYXRlLmdldFVUQ0Z1bGxZZWFyKCksIGRhdGUuZ2V0VVRDTW9udGgoKSwgZGF0ZS5nZXRVVENEYXRlKCkpKTsgLy8gR2V0IGRhdGUgaW4gVVRDIGZvcm1hdFxyXG4gICAgICBjb25zdCB0aW1lSW5VVEMgPSBuZXcgRGF0ZShkYXRlLnRvVVRDU3RyaW5nKCkpOyAvLyBHZXQgdGltZSBpbiBVVEMgZm9ybWF0XHJcblxyXG4gICAgICAvLyBSZXR1cm5pbmcgdGhlIGNvbWJpbmVkIGRhdGUgYW5kIHRpbWUgYXMgYSBzaW5nbGUgRGF0ZSBvYmplY3RcclxuICAgICAgcmV0dXJuIG5ldyBEYXRlKGRhdGVJblVUQy5nZXRGdWxsWWVhcigpLCBkYXRlSW5VVEMuZ2V0TW9udGgoKSwgZGF0ZUluVVRDLmdldERhdGUoKSwgdGltZUluVVRDLmdldFVUQ0hvdXJzKCksIHRpbWVJblVUQy5nZXRVVENNaW51dGVzKCksIHRpbWVJblVUQy5nZXRVVENTZWNvbmRzKCkpO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIGNvbnN0IGRhdGVPbmx5ID0gdmFsdWUuaW5jbHVkZXMoJ1QnKSA/IHZhbHVlLnNwbGl0KCdUJylbMF0gOiB2YWx1ZTtcclxuICAgICAgcmV0dXJuIG5ldyBEYXRlKGRhdGVPbmx5ICsgXCIgXCIgKyBuZXcgRGF0ZShkYXRlT25seSkudG9Mb2NhbGVUaW1lU3RyaW5nKCkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZW1vdmVUaW1lWm9uZUFuZENvbnZlcnRUb0lTT1N0cmluZyh2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IHJlc3VsdCA9IHZhbHVlLnNwbGl0KCcrJylbMF07XHJcbiAgICByZXR1cm4gbmV3IERhdGUocmVzdWx0LmVuZHNXaXRoKCdaJykgPyByZXN1bHQgOiBgJHtyZXN1bHR9WmApLnRvSVNPU3RyaW5nKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNvbnZlcnRPZmZzZXRNaW5Ub0hvdXIobnVtOiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgbnVtID0gLW51bTtcclxuICAgIGNvbnN0IHByZWZpeCA9IG51bS50b1N0cmluZygpLnN0YXJ0c1dpdGgoJy0nKSA/ICctJyA6ICcrJztcclxuICAgIGNvbnN0IHJlc3VsdCA9IGAkeyhNYXRoLmFicyhudW0pIC8gNjApLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgJzAnKX06MDBgO1xyXG4gICAgcmV0dXJuIGAke3ByZWZpeH0ke3Jlc3VsdH1gO1xyXG4gIH1cclxuICAvLyNlbmRyZWdpb25cclxuXHJcbiAgcHVibGljIGRlY3JlbWVudENvbXBvbmVudENvdW50ZXJGb3JGaWVsZChmaWVsZDogWkZpZWxkKSB7XHJcbiAgICBpZiAoZmllbGQuU3ViVHlwZSA9PT0gJ3p1ZGYnKSB7XHJcbiAgICAgIHRoaXMuZmllbGRTZXJ2aWNlLmRlY3JlbWVudENvbXBvbmVudENvdW50ZXIoJ3p1ZGYnKTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKGZpZWxkLkZpZWxkRWxlbWVudE5hbWUpIHtcclxuICAgICAgdGhpcy5maWVsZFNlcnZpY2UuZGVjcmVtZW50Q29tcG9uZW50Q291bnRlcihmaWVsZC5GaWVsZEVsZW1lbnROYW1lKTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICB0aGlzLmZpZWxkU2VydmljZS5kZWNyZW1lbnRDb21wb25lbnRDb3VudGVyKCdtYWluJyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaXNNb2JpbGVTY3JlZW4oKSB7XHJcbiAgICBpZiAodGhpcy5lbnZpcm9ubWVudC5tb2JpbGVNb2RlICYmICEhdGhpcy5lbnZpcm9ubWVudC5tb2JpbGVNb2RlLmlzRW5hYmxlZCAmJiB3aW5kb3cuaW5uZXJXaWR0aCA8IDc2OCkge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcbn1cclxuIl19
|
|
300
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiemNvbXBvbmVudC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvc2VydmljZXMvemNvbXBvbmVudC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtCQUErQjtBQUMvQixPQUFPLEVBQUUsVUFBVSxFQUFnRSxNQUFNLGVBQWUsQ0FBQztBQUd6Ryw2QkFBNkI7QUFFN0IsOEJBQThCO0FBQzlCLE9BQU8sRUFBRSxRQUFRLEVBQWMsRUFBRSxFQUFXLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUs5RCx5RkFBeUY7QUFDekYsT0FBTyxFQUVPLGdCQUFnQixFQUU3QixNQUFNLGlCQUFpQixDQUFDOzs7O0FBTXpCLE1BQU0sT0FBTyxpQkFBaUI7SUFHNUIsWUFDUyxlQUFnQyxFQUMvQixzQkFBOEMsRUFDOUMsZ0JBQW9DLEVBQ3BDLFlBQTBCLEVBQzFCLFlBQTBCO1FBSjNCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUMvQiwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXdCO1FBQzlDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBb0I7UUFDcEMsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFpSG5CLG1CQUFjLEdBQUcsSUFBSSxDQUFDO1FBeUt2Qyw2QkFBNkI7UUFDWix1QkFBa0IsR0FBRyxDQUFDLGFBQWEsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLGtCQUFrQixDQUFDLENBQUM7UUF6UjVGLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN4RCxDQUFDO0lBRU0sbUJBQW1CLENBQUMsYUFBcUI7UUFDOUMsT0FBTyxnQkFBZ0IsQ0FBQyxtQkFBbUIsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRU0sYUFBYSxDQUNsQix3QkFBa0QsRUFDbEQsWUFBbUMsRUFDbkMsS0FBVSxFQUNWLEtBQVUsRUFDVixJQUFlLEVBQ2YsY0FBbUI7UUFFbkIsK0NBQStDO1FBQy9DLGNBQWM7UUFDZCxJQUFJO1FBRUosSUFBSSxJQUFJLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3hDLE9BQU87U0FDUjtRQUVELElBQUksZ0JBQWdCLENBQUM7UUFDckIsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDeEUsSUFBSSxhQUFhLEVBQUU7WUFDakIsZ0JBQWdCLEdBQUcsd0JBQXdCLENBQUMsdUJBQXVCLENBQ2pFLGFBQWEsQ0FDZCxDQUFDO1NBQ0g7YUFBTTtZQUNMLGdCQUFnQixHQUFHLHdCQUF3QixDQUFDLHVCQUF1QixDQUNqRSxJQUFJLENBQUMsc0JBQXNCLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUNqRCxDQUFDO1NBQ0g7UUFFRCxNQUFNLGdCQUFnQixHQUFHLFlBQVksQ0FBQyxnQkFBZ0IsQ0FBQztRQUN2RCxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ1QsT0FBTyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1lBQ3BDLFFBQVEsQ0FBQztTQUNWO1FBQ0QsTUFBTSxZQUFZLEdBQUcsZ0JBQWdCLENBQUMsZUFBZSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDdkUsWUFBWSxDQUFDLFFBQXVCLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQztRQUNsRCxZQUFZLENBQUMsUUFBdUIsQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25ELFlBQVksQ0FBQyxRQUF1QixDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDakQsWUFBWSxDQUFDLFFBQXVCLENBQUMsY0FBYyxHQUFHLGNBQWMsQ0FBQztRQUN0RSx5R0FBeUc7UUFFekcsOENBQThDO1FBQzlDLElBQUksS0FBSyxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUMsT0FBTyxFQUFFO1lBQ2hDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDL0IsSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRTtvQkFDaEMsTUFBTSxjQUFjLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQztvQkFDbkMsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsQ0FBQztvQkFDbEQsSUFBSSxXQUFXLEVBQUU7d0JBQ2YsTUFBTSxDQUFDLFlBQVksRUFBRSxhQUFhLENBQUMsR0FBRyxjQUFjLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO3dCQUNoRSxNQUFNLGFBQWEsR0FBRyxHQUFHLFlBQVksSUFBSSxhQUFhLEVBQUUsQ0FBQzt3QkFDekQsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQzt3QkFFMUQsSUFBSSxLQUFLLEVBQUU7NEJBQ1QsV0FBVyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7NEJBQ2xFLFdBQVcsQ0FBQyxhQUFhLEVBQUUsQ0FBQzt5QkFDN0I7cUJBQ0Y7aUJBQ0Y7YUFDRjtTQUNGO1FBQ0QsWUFBWTtJQUNkLENBQUM7SUFFRCw0QkFBNEIsQ0FDMUIsd0JBQWtELEVBQ2xELFFBQWEsRUFDYixNQUFXLEVBQ1gsS0FBVSxFQUNWLEtBQVUsRUFDVixXQUFtQjtRQUVuQixJQUFJLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDeEMsT0FBTztTQUNSO1FBRUQsSUFBSSxZQUFZLENBQUM7UUFDakIsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDeEUscURBQXFEO1FBQ3JELElBQUksYUFBYSxFQUFFO1lBQ2pCLFlBQVksR0FBRyx3QkFBd0I7aUJBQ3BDLHVCQUF1QixDQUFDLGFBQWEsQ0FBQztpQkFDdEMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQ3JCO2FBQU07WUFDTCxZQUFZLEdBQUcsd0JBQXdCO2lCQUNwQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDO2lCQUN6RSxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDckI7UUFFRCw4RUFBOEU7UUFDOUUsTUFBTSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFekMsb0NBQW9DO1FBQ3BDLE1BQU0sT0FBTyxHQUFJLFlBQVksQ0FBQyxRQUFpQzthQUM1RCxTQUFTLENBQUMsQ0FBQyxDQUFnQixDQUFDO1FBRS9CLG9DQUFvQztRQUNwQyxNQUFNLGVBQWUsR0FBUSxRQUFRLENBQUMsYUFBYSxDQUFDLEdBQUcsR0FBRyxXQUFXLENBQUMsQ0FBQztRQUN2RSxlQUFlLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRXBDLFlBQVksQ0FBQyxRQUF1QixDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7UUFDbEQsWUFBWSxDQUFDLFFBQXVCLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNwRCxPQUFPLFlBQVksQ0FBQztJQUN0QixDQUFDO0lBR00sV0FBVyxDQUFDLEVBQU87UUFDeEIsSUFBSSxRQUFRLEdBQUcsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLGNBQWMsRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBRTlFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksU0FBUyxFQUFFO1lBQ2xELElBQUksT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxRQUFRLEVBQUU7Z0JBQ3ZDLE1BQU0sZ0JBQWdCLEdBQUcsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDcEYsUUFBUSxHQUFHLEVBQUUsS0FBSyxFQUFFLGdCQUFnQixFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxDQUFDO2FBQ3JFO2lCQUNJO2dCQUNILFFBQVEsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQzthQUM3QjtTQUNGO2FBQ0ksSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLGNBQWMsSUFBSSxFQUFFLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxJQUFJLFNBQVMsRUFBRTtZQUMvRSxRQUFRLEdBQUcsRUFBRSxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsQ0FBQztTQUMzQztRQUNELEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsUUFBUSxDQUFDO1FBQ2hDLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsS0FBSyxHQUFHLFFBQVEsQ0FBQyxTQUFTLENBQUM7SUFDbEQsQ0FBQztJQUVNLGdDQUFnQyxDQUFDLEVBQU87UUFDN0MsRUFBRSxDQUFDLG1CQUFtQixDQUFDLEtBQUssR0FBRyxFQUFFLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLEtBQUssUUFBUSxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUNoTixFQUFFLENBQUMsbUJBQW1CLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxRQUFRLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQzFNLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxLQUFLLFFBQVEsSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDaE4sSUFBSSxFQUFFLENBQUMsS0FBSyxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ2pELE1BQU0sS0FBSyxHQUFHLGdCQUFnQixDQUFDLHlCQUF5QixDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDekYsSUFBSSxLQUFLLEVBQUU7Z0JBQ1QsS0FBSyxDQUFDLHFCQUFxQixDQUFDLEdBQUcsRUFBRSxDQUFDLG1CQUFtQixDQUFDO2FBQ3ZEO1NBQ0Y7SUFDSCxDQUFDO0lBRU0sb0JBQW9CLENBQUMsRUFBTztRQUNqQyxLQUFLLE1BQU0sR0FBRyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQzNELE1BQU0sR0FBRyxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBRXJDLElBQUksS0FBSyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQyxDQUFDO1lBQ25DLElBQUksRUFBRSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUMsSUFBSSxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQyxLQUFLLFFBQVEsSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUMsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEVBQUU7Z0JBQ2pJLEtBQUssR0FBRyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQzFFO1lBQ0QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQztTQUM1QztRQUVELEtBQUssTUFBTSxHQUFHLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsbUJBQW1CLENBQUMsY0FBYyxDQUFDLEVBQUU7WUFDcEUsTUFBTSxHQUFHLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDckMsSUFBSSxLQUFLLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxFQUFFLENBQUMsQ0FBQztZQUM1QyxJQUFJLEVBQUUsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxFQUFFLENBQUMsSUFBSSxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsRUFBRSxDQUFDLEtBQUssUUFBUSxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsRUFBRSxDQUFDLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxFQUFFO2dCQUM1SixLQUFLLEdBQUcsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQ25GO1lBQ0QsSUFBSSxDQUFDLHdCQUF3QixDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1NBQ3JEO0lBQ0gsQ0FBQztJQUVNLGVBQWUsQ0FBQyxFQUFPLEVBQUUsR0FBVyxFQUFFLEtBQWE7UUFDeEQsRUFBRSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDO0lBQ3RELENBQUM7SUFFTSx3QkFBd0IsQ0FBQyxFQUFPLEVBQUUsR0FBVyxFQUFFLEtBQWE7UUFDakUsRUFBRSxDQUFDLG1CQUFtQixDQUFDLGNBQWMsQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDO0lBQy9ELENBQUM7SUFFTSwwQkFBMEIsQ0FBQyxXQUFtQjtRQUNuRCxJQUFJO1lBQ0YsTUFBTSxRQUFRLEdBQUcsV0FBVyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN2RCxNQUFNLFFBQVEsR0FBRyxFQUFFLENBQUM7WUFDcEIsS0FBSyxNQUFNLEtBQUssSUFBSSxRQUFRLEVBQUU7Z0JBQzVCLE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQzdCLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7YUFDekM7WUFFRCxPQUFPLFFBQVEsQ0FBQztTQUNqQjtRQUNELE9BQU8sR0FBRyxFQUFFO1lBQ1YsT0FBTyxJQUFJLENBQUM7U0FDYjtJQUNILENBQUM7SUFFTSxxQkFBcUIsQ0FBQyxLQUFpQixFQUFFLEtBQWE7UUFDM0QsTUFBTSxPQUFPLEdBQUcsSUFBSSxLQUFLLEVBQW1CLENBQUM7UUFDN0MsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsa0JBQWtCLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRXpHLElBQUksT0FBTyxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUU7WUFDdkIsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDZjtRQUNELE9BQU8sUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFTSx5QkFBeUIsQ0FBQyxPQUFtQixFQUFFLEtBQWE7UUFDakUsTUFBTSxPQUFPLEdBQUcsSUFBSSxLQUFLLEVBQW1CLENBQUM7UUFDN0MsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsa0JBQWtCLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRXpHLElBQUksT0FBTyxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUU7WUFDdkIsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDZjtRQUNELE9BQU8sUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFTSx3QkFBd0IsQ0FBQyxPQUFtQixFQUFFLEtBQWE7UUFDaEUsSUFBSSxPQUFPLEdBQUcsSUFBSSxLQUFLLEVBQW1CLENBQUM7UUFDM0MsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsa0JBQWtCLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFLFdBQVcsRUFBRSxLQUFLLENBQUMsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztRQUVqSCxJQUFJLE9BQU8sQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFO1lBQ3ZCLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQ2Y7UUFDRCxPQUFPLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRU0sdUJBQXVCLENBQUMsSUFBWSxFQUFFLEtBQWE7UUFDeEQsSUFBSSxPQUFPLEdBQUcsSUFBSSxLQUFLLEVBQW1CLENBQUM7UUFFM0MsTUFBTSxRQUFRLEdBQUcsQ0FBQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsVUFBVTtRQUM5RCxLQUFLLE1BQU0sSUFBSSxJQUFJLFFBQVEsRUFBRTtZQUMzQixJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxTQUFTLEVBQUU7Z0JBQzNCLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUM7Z0JBQzdFLElBQUksR0FBRyxFQUFFO29CQUNQLE9BQU8sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2lCQUMvQjthQUNGO1NBQ0Y7UUFFRCxJQUFJLE9BQU8sQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFO1lBQ3ZCLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQ2Y7UUFDRCxPQUFPLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRU0sNEJBQTRCLENBQUMsbUJBQXlDLEVBQUUsS0FBYTtRQUMxRixJQUFJLE9BQU8sR0FBRyxJQUFJLEtBQUssRUFBbUIsQ0FBQztRQUUzQyxNQUFNLFFBQVEsR0FBRyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztRQUNwQyxLQUFLLE1BQU0sSUFBSSxJQUFJLFFBQVEsRUFBRTtZQUMzQixJQUFJLG1CQUFtQixDQUFDLElBQUksQ0FBQyxJQUFJLFNBQVMsRUFBRTtnQkFDMUMsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixDQUFDLG1CQUFtQixFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFDO2dCQUM1RixJQUFJLEdBQUcsRUFBRTtvQkFDUCxPQUFPLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztpQkFDL0I7YUFDRjtTQUNGO1FBRUQsSUFBSSxPQUFPLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRTtZQUN2QixPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztTQUNmO1FBQ0QsT0FBTyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVPLHVCQUF1QixDQUFDLElBQVMsRUFBRSxRQUFnQixFQUFFLFNBQWlCLEVBQUUsS0FBYTtRQUMzRixJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxTQUFTLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUN2RCxPQUFPO1NBQ1I7UUFFRCxNQUFNLE9BQU8sR0FBRyxJQUFJLEtBQUssRUFBbUIsQ0FBQztRQUM3QyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDOUQsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQ2pILEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDVCxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsSUFBSSxDQUFDO1lBQ3hCLENBQUMsQ0FBQyxDQUFDLENBQ0osQ0FBQztTQUNIO2FBQ0k7WUFDSCxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FDN0csR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUNULElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxJQUFJLENBQUM7WUFDeEIsQ0FBQyxDQUFDLENBQUMsQ0FDSixDQUFBO1NBQ0Y7UUFFRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBSU0sa0NBQWtDLENBQUMsS0FBYSxFQUFFLElBQVk7UUFDbkUsSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUMvQyxNQUFNLGtCQUFrQixHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLGlCQUFpQixFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQzlGLE1BQU0sdUJBQXVCLEdBQUcsSUFBSSxDQUFDLG1DQUFtQyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBRWhGLHVGQUF1RjtZQUN2RixPQUFPLElBQUksSUFBSSxDQUFDLEdBQUcsdUJBQXVCLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLGtCQUFrQixFQUFFLENBQUMsQ0FBQztTQUNsRjthQUNJLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxZQUFZLEVBQUU7WUFDbkMsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsdUJBQXVCO1lBQzNGLE1BQU0sSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsK0NBQStDO1lBQ2hGLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxvQ0FBb0M7WUFFeEQscURBQXFEO1lBQ3JELE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLENBQUMsaUNBQWlDO1lBQ2xGLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxHQUFHLGNBQWMsQ0FBQyxDQUFDLENBQUMsNkJBQTZCO1lBRWxGLCtCQUErQjtZQUMvQixPQUFPLElBQUksQ0FBQztTQUNiO2FBQ0k7WUFDSCxNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7WUFDbkUsT0FBTyxJQUFJLElBQUksQ0FBQyxRQUFRLEdBQUcsR0FBRyxHQUFHLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLGtCQUFrQixFQUFFLENBQUMsQ0FBQztTQUMzRTtJQUNILENBQUM7SUFFTyxtQ0FBbUMsQ0FBQyxLQUFhO1FBQ3ZELE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbkMsT0FBTyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsTUFBTSxHQUFHLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUM5RSxDQUFDO0lBRU8sc0JBQXNCLENBQUMsR0FBVztRQUN4QyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUM7UUFDWCxNQUFNLE1BQU0sR0FBRyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztRQUMxRCxNQUFNLE1BQU0sR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxLQUFLLENBQUM7UUFDeEUsT0FBTyxHQUFHLE1BQU0sR0FBRyxNQUFNLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBQ0QsWUFBWTtJQUVMLGlDQUFpQyxDQUFDLEtBQWE7UUFDcEQsSUFBSSxLQUFLLENBQUMsT0FBTyxLQUFLLE1BQU0sRUFBRTtZQUM1QixJQUFJLENBQUMsWUFBWSxDQUFDLHlCQUF5QixDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQ3JEO2FBQ0ksSUFBSSxLQUFLLENBQUMsZ0JBQWdCLEVBQUU7WUFDL0IsSUFBSSxDQUFDLFlBQVksQ0FBQyx5QkFBeUIsQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztTQUNyRTthQUNJO1lBQ0gsSUFBSSxDQUFDLFlBQVksQ0FBQyx5QkFBeUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUNyRDtJQUNILENBQUM7SUFFTSxjQUFjO1FBQ25CLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLFNBQVMsSUFBSSxNQUFNLENBQUMsVUFBVSxHQUFHLEdBQUcsRUFBRTtZQUNyRyxPQUFPLElBQUksQ0FBQztTQUNiO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDOzs4R0E1VlUsaUJBQWlCO2tIQUFqQixpQkFBaUIsY0FGaEIsTUFBTTsyRkFFUCxpQkFBaUI7a0JBSDdCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiLyoqKioqKioqKiogQW5ndWxhciAqKioqKioqKioqL1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlLCBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsIEVtYmVkZGVkVmlld1JlZiwgQ2hhbmdlRGV0ZWN0b3JSZWYgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG4vKioqKioqKioqKiBJb25pYyAqKioqKioqKioqL1xyXG5cclxuLyoqKioqKioqKiogUGx1Z2luICoqKioqKioqKiovXHJcbmltcG9ydCB7IGZvcmtKb2luLCBPYnNlcnZhYmxlLCBvZiwgU3ViamVjdCwgdGFwIH0gZnJvbSBcInJ4anNcIjtcclxuXHJcbi8qKioqKioqKioqIENvbXBvbmVudCAmIFNlcnZpY2UgKioqKioqKioqKi9cclxuaW1wb3J0IHsgRmllbGRFbGVtZW50RGlyZWN0aXZlIH0gZnJvbSAnLi4vZGlyZWN0aXZlcy9maWVsZGVsZW1lbnQuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgQ29tcG9uZW50T2JqZWN0U2VydmljZSB9IGZyb20gJ21taGdsb2JhbC1taWRkbGV3YXJlJztcclxuLy8gaW1wb3J0IHsgQ29tcG9uZW50T2JqZWN0U2VydmljZSB9IGZyb20gJ3Byb2plY3RzL21taGdsb2JhbC1taWRkbGV3YXJlL3NyYy9wdWJsaWMtYXBpJztcclxuaW1wb3J0IHtcclxuICBaQ29yZVNlcnZpY2UsIFRyYW5zbGF0aW9uU2VydmljZSwgRmllbGRTZXJ2aWNlLFxyXG4gIFpDb21wb25lbnQsIFpDb21wb25lbnRIZWxwZXIsIFpDb21wb25lbnRQcm9wZXJ0aWVzLCBaRmllbGQsIFpHcm91cCxcclxuICBVSVNpZ25hbFNlcnZpY2VcclxufSBmcm9tICdtbWhnbG9iYWwtemNvcmUnO1xyXG5cclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFpDb21wb25lbnRTZXJ2aWNlIHtcclxuICBwdWJsaWMgZW52aXJvbm1lbnQ7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIHVpU2lnbmFsU2VydmljZTogVUlTaWduYWxTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjb21wb25lbnRPYmplY3RTZXJ2aWNlOiBDb21wb25lbnRPYmplY3RTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGlvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHpjb3JlU2VydmljZTogWkNvcmVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBmaWVsZFNlcnZpY2U6IEZpZWxkU2VydmljZSxcclxuICApIHtcclxuICAgIHRoaXMuZW52aXJvbm1lbnQgPSB0aGlzLnpjb3JlU2VydmljZS5nZXRFbnZpcm9ubWVudCgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGlzU2tpcENvbXBvbmVudFR5cGUoY29tcG9uZW50VHlwZTogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gWkNvbXBvbmVudEhlbHBlci5pc1NraXBDb21wb25lbnRUeXBlKGNvbXBvbmVudFR5cGUpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGxvYWRDb21wb25lbnQoXHJcbiAgICBjb21wb25lbnRGYWN0b3J5UmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcclxuICAgIGZpZWxkRWxlbWVudDogRmllbGRFbGVtZW50RGlyZWN0aXZlLFxyXG4gICAgZmllbGQ6IGFueSxcclxuICAgIGdyb3VwOiBhbnksXHJcbiAgICBmb3JtOiBGb3JtR3JvdXAsXHJcbiAgICBjb250YWluZXJGaWVsZDogYW55XHJcbiAgKSB7XHJcbiAgICAvLyBpZihmaWVsZC5OYW1lID09PSAnRm9ybURldGFpbENvbnRhY3RHcmlkJykge1xyXG4gICAgLy8gICBkZWJ1Z2dlcjtcclxuICAgIC8vIH1cclxuXHJcbiAgICBpZiAodGhpcy5pc1NraXBDb21wb25lbnRUeXBlKGZpZWxkLlR5cGUpKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgY29tcG9uZW50RmFjdG9yeTtcclxuICAgIGNvbnN0IGNvbXBvbmVudE5hbWUgPSB0aGlzLmNvbXBvbmVudE9iamVjdFNlcnZpY2UuZ2V0T2JqZWN0KGZpZWxkLlR5cGUpO1xyXG4gICAgaWYgKGNvbXBvbmVudE5hbWUpIHtcclxuICAgICAgY29tcG9uZW50RmFjdG9yeSA9IGNvbXBvbmVudEZhY3RvcnlSZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShcclxuICAgICAgICBjb21wb25lbnROYW1lXHJcbiAgICAgICk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb21wb25lbnRGYWN0b3J5ID0gY29tcG9uZW50RmFjdG9yeVJlc29sdmVyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KFxyXG4gICAgICAgIHRoaXMuY29tcG9uZW50T2JqZWN0U2VydmljZS5nZXRPYmplY3QoXCJ1bmtub3duXCIpXHJcbiAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3Qgdmlld0NvbnRhaW5lclJlZiA9IGZpZWxkRWxlbWVudC52aWV3Q29udGFpbmVyUmVmO1xyXG4gICAgdmlld0NvbnRhaW5lclJlZi5jbGVhcigpO1xyXG4gICAgaWYgKCFmb3JtKSB7XHJcbiAgICAgIGNvbnNvbGUud2FybignRm9ybUdyb3VwIGlzIGVtcHR5IScpO1xyXG4gICAgICBkZWJ1Z2dlcjtcclxuICAgIH1cclxuICAgIGNvbnN0IGNvbXBvbmVudFJlZiA9IHZpZXdDb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50KGNvbXBvbmVudEZhY3RvcnkpO1xyXG4gICAgKGNvbXBvbmVudFJlZi5pbnN0YW5jZSBhcyBaQ29tcG9uZW50KS5kYXRhID0gZmllbGQ7XHJcbiAgICAoY29tcG9uZW50UmVmLmluc3RhbmNlIGFzIFpDb21wb25lbnQpLmdyb3VwID0gZ3JvdXA7XHJcbiAgICAoY29tcG9uZW50UmVmLmluc3RhbmNlIGFzIFpDb21wb25lbnQpLmZvcm0gPSBmb3JtO1xyXG4gICAgKGNvbXBvbmVudFJlZi5pbnN0YW5jZSBhcyBaQ29tcG9uZW50KS5jb250YWluZXJGaWVsZCA9IGNvbnRhaW5lckZpZWxkO1xyXG4gICAgLy8gKGNvbXBvbmVudFJlZi5pbnN0YW5jZSBhcyBaQ29tcG9uZW50KS5vdXRwdXRFdmVudC5zdWJzY3JpYmUoKGV2ZW50OiBhbnkpID0+IGdyb3VwLm91dHB1dEV2ZW50KGV2ZW50KSk7XHJcblxyXG4gICAgLy8jcmVnaW9uIGZvciBjb21wb25lbnQgbG9hZCBpbiB6dWRmIGNvbnRhaW5lclxyXG4gICAgaWYgKGZpZWxkLlZhbHVlICYmIGZpZWxkLlN1YlR5cGUpIHtcclxuICAgICAgaWYgKCFBcnJheS5pc0FycmF5KGZpZWxkLlZhbHVlKSkge1xyXG4gICAgICAgIGlmIChmaWVsZC5WYWx1ZS5pbmNsdWRlcygnenVkZicpKSB7XHJcbiAgICAgICAgICBjb25zdCBjb21wb25lbnRWYWx1ZSA9IGZpZWxkLlZhbHVlO1xyXG4gICAgICAgICAgY29uc3QgZm9ybUNvbnRyb2wgPSBmb3JtLmNvbnRyb2xzW2NvbXBvbmVudFZhbHVlXTtcclxuICAgICAgICAgIGlmIChmb3JtQ29udHJvbCkge1xyXG4gICAgICAgICAgICBjb25zdCBbZmlyc3RTZWdtZW50LCBzZWNvbmRTZWdtZW50XSA9IGNvbXBvbmVudFZhbHVlLnNwbGl0KCdfJyk7XHJcbiAgICAgICAgICAgIGNvbnN0IHp1ZGZTY29wZU5hbWUgPSBgJHtmaXJzdFNlZ21lbnR9XyR7c2Vjb25kU2VnbWVudH1gO1xyXG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGdyb3VwW3p1ZGZTY29wZU5hbWVdLnpNb2RlbFtjb21wb25lbnRWYWx1ZV07XHJcblxyXG4gICAgICAgICAgICBpZiAodmFsdWUpIHtcclxuICAgICAgICAgICAgICBmb3JtQ29udHJvbC5zZXRWYWx1ZShncm91cFt6dWRmU2NvcGVOYW1lXS56TW9kZWxbY29tcG9uZW50VmFsdWVdKTtcclxuICAgICAgICAgICAgICBmb3JtQ29udHJvbC5tYXJrQXNUb3VjaGVkKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIC8vI2VuZHJlZ2lvblxyXG4gIH1cclxuXHJcbiAgYXBwZW5kQ29tcG9uZW50VG9EeW5hbWljRm9ybShcclxuICAgIGNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxyXG4gICAgaW5qZWN0b3I6IGFueSxcclxuICAgIGFwcFJlZjogYW55LFxyXG4gICAgZmllbGQ6IGFueSxcclxuICAgIGdyb3VwOiBhbnksXHJcbiAgICBjb250YWluZXJJZDogc3RyaW5nXHJcbiAgKSB7XHJcbiAgICBpZiAodGhpcy5pc1NraXBDb21wb25lbnRUeXBlKGZpZWxkLlR5cGUpKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgY29tcG9uZW50UmVmO1xyXG4gICAgY29uc3QgY29tcG9uZW50TmFtZSA9IHRoaXMuY29tcG9uZW50T2JqZWN0U2VydmljZS5nZXRPYmplY3QoZmllbGQuVHlwZSk7XHJcbiAgICAvLyAxLiBDcmVhdGUgYSBjb21wb25lbnQgcmVmZXJlbmNlIGZyb20gdGhlIGNvbXBvbmVudFxyXG4gICAgaWYgKGNvbXBvbmVudE5hbWUpIHtcclxuICAgICAgY29tcG9uZW50UmVmID0gY29tcG9uZW50RmFjdG9yeVJlc29sdmVyXHJcbiAgICAgICAgLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KGNvbXBvbmVudE5hbWUpXHJcbiAgICAgICAgLmNyZWF0ZShpbmplY3Rvcik7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb21wb25lbnRSZWYgPSBjb21wb25lbnRGYWN0b3J5UmVzb2x2ZXJcclxuICAgICAgICAucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkodGhpcy5jb21wb25lbnRPYmplY3RTZXJ2aWNlLmdldE9iamVjdChcInVua25vd25cIikpXHJcbiAgICAgICAgLmNyZWF0ZShpbmplY3Rvcik7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gMi4gQXR0YWNoIGNvbXBvbmVudCB0byB0aGUgYXBwUmVmIHNvIHRoYXQgaXQncyBpbnNpZGUgdGhlIG5nIGNvbXBvbmVudCB0cmVlXHJcbiAgICBhcHBSZWYuYXR0YWNoVmlldyhjb21wb25lbnRSZWYuaG9zdFZpZXcpO1xyXG5cclxuICAgIC8vIDMuIEdldCBET00gZWxlbWVudCBmcm9tIGNvbXBvbmVudFxyXG4gICAgY29uc3QgZG9tRWxlbSA9IChjb21wb25lbnRSZWYuaG9zdFZpZXcgYXMgRW1iZWRkZWRWaWV3UmVmPGFueT4pXHJcbiAgICAgIC5yb290Tm9kZXNbMF0gYXMgSFRNTEVsZW1lbnQ7XHJcblxyXG4gICAgLy8gNC4gQXBwZW5kIERPTSBlbGVtZW50IHRvIHRoZSBib2R5XHJcbiAgICBjb25zdCBkeW5hbWljRm9ybUhvc3Q6IGFueSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCIjXCIgKyBjb250YWluZXJJZCk7XHJcbiAgICBkeW5hbWljRm9ybUhvc3QuYXBwZW5kQ2hpbGQoZG9tRWxlbSk7XHJcblxyXG4gICAgKGNvbXBvbmVudFJlZi5pbnN0YW5jZSBhcyBaQ29tcG9uZW50KS5kYXRhID0gZmllbGQ7XHJcbiAgICAoY29tcG9uZW50UmVmLmluc3RhbmNlIGFzIFpDb21wb25lbnQpLmdyb3VwID0gZ3JvdXA7XHJcbiAgICByZXR1cm4gY29tcG9uZW50UmVmO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZWFkb25seSBERUZBVUxUX0lTRURJVCA9IHRydWU7XHJcbiAgcHVibGljIHNldEVkaXRNb2RlKG1lOiBhbnkpIHtcclxuICAgIGxldCBlZGl0TW9kZSA9IHsgdmFsdWU6IHRoaXMuREVGQVVMVF9JU0VESVQsIGluaXRWYWx1ZTogdGhpcy5ERUZBVUxUX0lTRURJVCB9O1xyXG5cclxuICAgIGlmIChtZSAmJiBtZS5kYXRhICYmIG1lLmRhdGEuRWRpdE1vZGUgIT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIGlmICh0eXBlb2YgbWUuZGF0YS5FZGl0TW9kZSAhPSBcIm9iamVjdFwiKSB7XHJcbiAgICAgICAgY29uc3QgZ3JwRWRpdE1vZGVWYWx1ZSA9IFpDb21wb25lbnRIZWxwZXIuZ2V0R3JvdXBWYWx1ZShtZS5kYXRhLkVkaXRNb2RlLCBtZS5ncm91cCk7XHJcbiAgICAgICAgZWRpdE1vZGUgPSB7IHZhbHVlOiBncnBFZGl0TW9kZVZhbHVlLCBpbml0VmFsdWU6IGdycEVkaXRNb2RlVmFsdWUgfTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICBlZGl0TW9kZSA9IG1lLmRhdGEuRWRpdE1vZGU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGVsc2UgaWYgKG1lICYmIG1lLmNvbnRhaW5lckZpZWxkICYmIG1lLmNvbnRhaW5lckZpZWxkW2BfRWRpdE1vZGVgXSAhPSB1bmRlZmluZWQpIHtcclxuICAgICAgZWRpdE1vZGUgPSBtZS5jb250YWluZXJGaWVsZFtgX0VkaXRNb2RlYF07XHJcbiAgICB9XHJcbiAgICBtZS5kYXRhW2BfRWRpdE1vZGVgXSA9IGVkaXRNb2RlO1xyXG4gICAgbWUuZGF0YVtgX0VkaXRNb2RlYF0udmFsdWUgPSBlZGl0TW9kZS5pbml0VmFsdWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0Q29tcG9uZW50QWRkaXRpb25hbFByb3BlcnRpZXMobWU6IGFueSkge1xyXG4gICAgbWUuY29tcG9uZW50UHJvcGVydGllcy50aXRsZSA9IG1lLmRhdGEgJiYgbWUuZGF0YS5UaXRsZSAmJiB0eXBlb2YgbWUuZGF0YS5UaXRsZSA9PT0gJ3N0cmluZycgJiYgbWUuZGF0YS5UaXRsZS5zdGFydHNXaXRoKFwiZ3JvdXAuXCIpID8gWkNvbXBvbmVudEhlbHBlci5nZXRHcm91cEV2YWxWYWx1ZS5jYWxsKG1lLCBtZS5kYXRhLlRpdGxlKSA6IG1lLmRhdGEuVGl0bGU7XHJcbiAgICBtZS5jb21wb25lbnRQcm9wZXJ0aWVzLmljb24gPSBtZS5kYXRhICYmIG1lLmRhdGEuSWNvbiAmJiB0eXBlb2YgbWUuZGF0YS5JY29uID09PSAnc3RyaW5nJyAmJiBtZS5kYXRhLkljb24uc3RhcnRzV2l0aChcImdyb3VwLlwiKSA/IFpDb21wb25lbnRIZWxwZXIuZ2V0R3JvdXBFdmFsVmFsdWUuY2FsbChtZSwgbWUuZGF0YS5JY29uKSA6IG1lLmRhdGEuSWNvbjtcclxuICAgIG1lLmNvbXBvbmVudFByb3BlcnRpZXMubGFiZWwgPSBtZS5kYXRhICYmIG1lLmRhdGEuTGFiZWwgJiYgdHlwZW9mIG1lLmRhdGEuTGFiZWwgPT09ICdzdHJpbmcnICYmIG1lLmRhdGEuTGFiZWwuc3RhcnRzV2l0aChcImdyb3VwLlwiKSA/IFpDb21wb25lbnRIZWxwZXIuZ2V0R3JvdXBFdmFsVmFsdWUuY2FsbChtZSwgbWUuZGF0YS5MYWJlbCkgOiBtZS5kYXRhLkxhYmVsO1xyXG4gICAgaWYgKG1lLmdyb3VwLmZpZWxkcyAmJiBtZS5ncm91cC5maWVsZHMubGVuZ3RoID4gMCkge1xyXG4gICAgICBjb25zdCBmaWVsZCA9IFpDb21wb25lbnRIZWxwZXIuZ2V0RmllbGRGcm9tRmllbGRzQnlWYWx1ZShtZS5ncm91cC5maWVsZHMsIG1lLmRhdGEuVmFsdWUpO1xyXG4gICAgICBpZiAoZmllbGQpIHtcclxuICAgICAgICBmaWVsZFtgY29tcG9uZW50UHJvcGVydGllc2BdID0gbWUuY29tcG9uZW50UHJvcGVydGllcztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldENvbXBTdHlsZXNCeUluZGV4KG1lOiBhbnkpIHtcclxuICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKG1lLmNvbXBvbmVudFByb3BlcnRpZXMuc3R5bGUpKSB7XHJcbiAgICAgIGNvbnN0IGluZCA9IGtleS5yZXBsYWNlKCdzdHlsZScsICcnKTtcclxuXHJcbiAgICAgIGxldCBzdHlsZSA9IG1lLmRhdGFbYFN0eWxlJHtpbmR9YF07XHJcbiAgICAgIGlmIChtZS5kYXRhICYmIG1lLmRhdGFbYFN0eWxlJHtpbmR9YF0gJiYgdHlwZW9mIG1lLmRhdGFbYFN0eWxlJHtpbmR9YF0gPT09ICdzdHJpbmcnICYmIG1lLmRhdGFbYFN0eWxlJHtpbmR9YF0uc3RhcnRzV2l0aCgnZ3JvdXAnKSkge1xyXG4gICAgICAgIHN0eWxlID0gWkNvbXBvbmVudEhlbHBlci5nZXRHcm91cFZhbHVlKG1lLmRhdGFbYFN0eWxlJHtpbmR9YF0sIG1lLmdyb3VwKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnNldFN0eWxlQnlJbmRleChtZSwgaW5kLCBzdHlsZSB8fCBcIlwiKTtcclxuICAgIH1cclxuXHJcbiAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhtZS5jb21wb25lbnRQcm9wZXJ0aWVzLmNvbnRhaW5lclN0eWxlKSkge1xyXG4gICAgICBjb25zdCBpbmQgPSBrZXkucmVwbGFjZSgnc3R5bGUnLCAnJyk7XHJcbiAgICAgIGxldCBzdHlsZSA9IG1lLmRhdGFbYENvbnRhaW5lclN0eWxlJHtpbmR9YF07XHJcbiAgICAgIGlmIChtZS5kYXRhICYmIG1lLmRhdGFbYENvbnRhaW5lclN0eWxlJHtpbmR9YF0gJiYgdHlwZW9mIG1lLmRhdGFbYENvbnRhaW5lclN0eWxlJHtpbmR9YF0gPT09ICdzdHJpbmcnICYmIG1lLmRhdGFbYENvbnRhaW5lclN0eWxlJHtpbmR9YF0uc3RhcnRzV2l0aCgnZ3JvdXAnKSkge1xyXG4gICAgICAgIHN0eWxlID0gWkNvbXBvbmVudEhlbHBlci5nZXRHcm91cFZhbHVlKG1lLmRhdGFbYENvbnRhaW5lclN0eWxlJHtpbmR9YF0sIG1lLmdyb3VwKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnNldENvbnRhaW5lclN0eWxlQnlJbmRleChtZSwgaW5kLCBzdHlsZSB8fCBcIlwiKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXRTdHlsZUJ5SW5kZXgobWU6IGFueSwgaW5kOiBzdHJpbmcsIHN0eWxlOiBzdHJpbmcpIHtcclxuICAgIG1lLmNvbXBvbmVudFByb3BlcnRpZXMuc3R5bGVbYHN0eWxlJHtpbmR9YF0gPSBzdHlsZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXRDb250YWluZXJTdHlsZUJ5SW5kZXgobWU6IGFueSwgaW5kOiBzdHJpbmcsIHN0eWxlOiBzdHJpbmcpIHtcclxuICAgIG1lLmNvbXBvbmVudFByb3BlcnRpZXMuY29udGFpbmVyU3R5bGVbYHN0eWxlJHtpbmR9YF0gPSBzdHlsZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjb252ZXJ0U3R5bGVTdHJpbmdUb09iamVjdChzdHlsZVN0cmluZzogc3RyaW5nKTogYW55IHtcclxuICAgIHRyeSB7XHJcbiAgICAgIGNvbnN0IHN0eWxlQXJyID0gc3R5bGVTdHJpbmcuc3BsaXQoXCI7XCIpLmZpbHRlcih4ID0+IHgpO1xyXG4gICAgICBjb25zdCBzdHlsZU9iaiA9IHt9O1xyXG4gICAgICBmb3IgKGNvbnN0IHN0eWxlIG9mIHN0eWxlQXJyKSB7XHJcbiAgICAgICAgY29uc3Qga3ZwID0gc3R5bGUuc3BsaXQoXCI6XCIpO1xyXG4gICAgICAgIHN0eWxlT2JqW2t2cFswXS50cmltKCldID0ga3ZwWzFdLnRyaW0oKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgcmV0dXJuIHN0eWxlT2JqO1xyXG4gICAgfVxyXG4gICAgY2F0Y2ggKGVycikge1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyB0cmFuc2xhdGVUb29sQmFySXRlbXMoaXRlbXM6IEFycmF5PGFueT4sIGdyb3VwOiBaR3JvdXApOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgY29uc3Qgb2JzTGlzdCA9IG5ldyBBcnJheTxPYnNlcnZhYmxlPGFueT4+KCk7XHJcbiAgICBvYnNMaXN0LnB1c2godGhpcy50cmFuc2xhdGVTZXJ2aWNlLiR0cmFuc2xhdGVJdGVtTGlzdChpdGVtcywgXCJ0ZXh0XCIsIHsgZWxlbWVudE5hbWU6ICdnZW5lcmFsJywgZ3JvdXAgfSkpO1xyXG5cclxuICAgIGlmIChvYnNMaXN0Lmxlbmd0aCA8PSAwKSB7XHJcbiAgICAgIHJldHVybiBvZih7fSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZm9ya0pvaW4ob2JzTGlzdCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgdHJhbnNsYXRlR3JpZENvbHVtbkhlYWRlcihjb2x1bW5zOiBBcnJheTxhbnk+LCBncm91cDogWkdyb3VwKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGNvbnN0IG9ic0xpc3QgPSBuZXcgQXJyYXk8T2JzZXJ2YWJsZTxhbnk+PigpO1xyXG4gICAgb2JzTGlzdC5wdXNoKHRoaXMudHJhbnNsYXRlU2VydmljZS4kdHJhbnNsYXRlSXRlbUxpc3QoY29sdW1ucywgXCJ0aXRsZVwiLCB7IGVsZW1lbnROYW1lOiAnbWVudScsIGdyb3VwIH0pKTtcclxuXHJcbiAgICBpZiAob2JzTGlzdC5sZW5ndGggPD0gMCkge1xyXG4gICAgICByZXR1cm4gb2Yoe30pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZvcmtKb2luKG9ic0xpc3QpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHRyYW5zbGF0ZUJ1dHRvbkNvbXBvbmVudChidXR0b25zOiBBcnJheTxhbnk+LCBncm91cDogWkdyb3VwKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGxldCBvYnNMaXN0ID0gbmV3IEFycmF5PE9ic2VydmFibGU8YW55Pj4oKTtcclxuICAgIG9ic0xpc3QucHVzaCh0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuJHRyYW5zbGF0ZUl0ZW1MaXN0KGJ1dHRvbnMsIFwidGV4dFwiLCB7IGVsZW1lbnROYW1lOiBncm91cC5maWVsZE5hbWUsIGdyb3VwIH0pKTtcclxuXHJcbiAgICBpZiAob2JzTGlzdC5sZW5ndGggPD0gMCkge1xyXG4gICAgICByZXR1cm4gb2Yoe30pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZvcmtKb2luKG9ic0xpc3QpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHRyYW5zbGF0ZUNvbXBvbmVudEZpZWxkKGRhdGE6IFpGaWVsZCwgZ3JvdXA6IFpHcm91cCk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICBsZXQgb2JzTGlzdCA9IG5ldyBBcnJheTxPYnNlcnZhYmxlPGFueT4+KCk7XHJcblxyXG4gICAgY29uc3QgcHJvcExpc3QgPSBbXCJMYWJlbFwiLCBcIlBsYWNlSG9sZGVyXCIsIFwiVGl0bGVcIl07IC8vIFRvb2xUaXBcclxuICAgIGZvciAoY29uc3QgcHJvcCBvZiBwcm9wTGlzdCkge1xyXG4gICAgICBpZiAoZGF0YVtwcm9wXSAhPSB1bmRlZmluZWQpIHtcclxuICAgICAgICBjb25zdCBvYnMgPSB0aGlzLnRyYW5zbGF0ZUNvbXBCeVByb3BlcnR5KGRhdGEsIHByb3AsIGdyb3VwLmZpZWxkTmFtZSwgZ3JvdXApO1xyXG4gICAgICAgIGlmIChvYnMpIHtcclxuICAgICAgICAgIG9ic0xpc3QgPSBvYnNMaXN0LmNvbmNhdChvYnMpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlmIChvYnNMaXN0Lmxlbmd0aCA8PSAwKSB7XHJcbiAgICAgIHJldHVybiBvZih7fSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZm9ya0pvaW4ob2JzTGlzdCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgdHJhbnNsYXRlQ29tcG9uZW50UHJvcGVydGllcyhjb21wb25lbnRQcm9wZXJ0aWVzOiBaQ29tcG9uZW50UHJvcGVydGllcywgZ3JvdXA6IFpHcm91cCk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICBsZXQgb2JzTGlzdCA9IG5ldyBBcnJheTxPYnNlcnZhYmxlPGFueT4+KCk7XHJcblxyXG4gICAgY29uc3QgcHJvcExpc3QgPSBbXCJsYWJlbFwiLCBcInRpdGxlXCJdO1xyXG4gICAgZm9yIChjb25zdCBwcm9wIG9mIHByb3BMaXN0KSB7XHJcbiAgICAgIGlmIChjb21wb25lbnRQcm9wZXJ0aWVzW3Byb3BdICE9IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIGNvbnN0IG9icyA9IHRoaXMudHJhbnNsYXRlQ29tcEJ5UHJvcGVydHkoY29tcG9uZW50UHJvcGVydGllcywgcHJvcCwgZ3JvdXAuZmllbGROYW1lLCBncm91cCk7XHJcbiAgICAgICAgaWYgKG9icykge1xyXG4gICAgICAgICAgb2JzTGlzdCA9IG9ic0xpc3QuY29uY2F0KG9icyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKG9ic0xpc3QubGVuZ3RoIDw9IDApIHtcclxuICAgICAgcmV0dXJuIG9mKHt9KTtcclxuICAgIH1cclxuICAgIHJldHVybiBmb3JrSm9pbihvYnNMaXN0KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdHJhbnNsYXRlQ29tcEJ5UHJvcGVydHkoZGF0YTogYW55LCBwcm9wTmFtZTogc3RyaW5nLCBmaWVsZE5hbWU6IHN0cmluZywgZ3JvdXA6IFpHcm91cCk6IEFycmF5PE9ic2VydmFibGU8YW55Pj4ge1xyXG4gICAgaWYgKGRhdGFbcHJvcE5hbWVdID09IHVuZGVmaW5lZCB8fCBkYXRhW3Byb3BOYW1lXSA9PSBcIlwiKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBvYnNMaXN0ID0gbmV3IEFycmF5PE9ic2VydmFibGU8YW55Pj4oKTtcclxuICAgIGlmIChBcnJheS5pc0FycmF5KGRhdGFbcHJvcE5hbWVdKSAmJiBkYXRhW3Byb3BOYW1lXS5sZW5ndGggPiAwKSB7XHJcbiAgICAgIG9ic0xpc3QucHVzaCh0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuJHRyYW5zbGF0ZUl0ZW1MaXN0KGRhdGFbcHJvcE5hbWVdLCBudWxsLCB7IGVsZW1lbnROYW1lOiBmaWVsZE5hbWUsIGdyb3VwIH0pLnBpcGUoXHJcbiAgICAgICAgdGFwKHJlc3AgPT4ge1xyXG4gICAgICAgICAgZGF0YVtwcm9wTmFtZV0gPSByZXNwO1xyXG4gICAgICAgIH0pKVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIG9ic0xpc3QucHVzaCh0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuJHRyYW5zbGF0ZVNpbmdsZUl0ZW0oZGF0YSwgcHJvcE5hbWUsIHsgZWxlbWVudE5hbWU6IGZpZWxkTmFtZSwgZ3JvdXAgfSkucGlwZShcclxuICAgICAgICB0YXAocmVzcCA9PiB7XHJcbiAgICAgICAgICBkYXRhW3Byb3BOYW1lXSA9IHJlc3A7XHJcbiAgICAgICAgfSkpXHJcbiAgICAgIClcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gb2JzTGlzdDtcclxuICB9XHJcblxyXG4gIC8vI3JlZ2lvbiBEYXRlVGltZSBDb252ZXJzaW9uXHJcbiAgcHJpdmF0ZSByZWFkb25seSB0aW1lUGlja2VyRGF0ZVR5cGUgPSBbJ3p1aWRhdGV0aW1lJywgJ3p0aW1lJywgJ3p1aXRpbWUnLCAnc2ZkYXRldGltZXBpY2tlciddO1xyXG4gIHB1YmxpYyBsb2NhbGl6ZURhdGVUaW1lQnlJZ25vcmluZ1RpbWVab25lKHZhbHVlOiBzdHJpbmcsIGRhdGE6IFpGaWVsZCk6IERhdGUge1xyXG4gICAgaWYgKHRoaXMudGltZVBpY2tlckRhdGVUeXBlLmluY2x1ZGVzKGRhdGEuVHlwZSkpIHtcclxuICAgICAgY29uc3QgdXNlclRpbWVab25lT2ZmU2V0ID0gdGhpcy5jb252ZXJ0T2Zmc2V0TWluVG9Ib3VyKChuZXcgRGF0ZSh2YWx1ZSkuZ2V0VGltZXpvbmVPZmZzZXQoKSkpO1xyXG4gICAgICBjb25zdCBkYXRldGltZVdpdGhvdXRUaW1lWm9uZSA9IHRoaXMucmVtb3ZlVGltZVpvbmVBbmRDb252ZXJ0VG9JU09TdHJpbmcodmFsdWUpO1xyXG5cclxuICAgICAgLy9yZXR1cm4gbmV3IERhdGUoYCR7ZGF0ZXRpbWVXaXRob3V0VGltZVpvbmUuc3BsaXQoJy4wMDBaJylbMF19JHt1c2VyVGltZVpvbmVPZmZTZXR9YCk7XHJcbiAgICAgIHJldHVybiBuZXcgRGF0ZShgJHtkYXRldGltZVdpdGhvdXRUaW1lWm9uZS5zcGxpdCgnWicpWzBdfSR7dXNlclRpbWVab25lT2ZmU2V0fWApO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAoZGF0YS5UeXBlID09PSAnenNob3J0ZGF0ZScpIHtcclxuICAgICAgY29uc3QgZGF0ZU9ubHkgPSB2YWx1ZS5pbmNsdWRlcygnVCcpID8gdmFsdWUuc3BsaXQoJ1QnKVswXSA6IHZhbHVlOyAvLyBFeHRyYWN0IGRhdGUgcG9ydGlvblxyXG4gICAgICBjb25zdCBkYXRlID0gbmV3IERhdGUoZGF0ZU9ubHkpOyAvLyBDcmVhdGUgYSBkYXRlIG9iamVjdCBmcm9tIHRoZSBleHRyYWN0ZWQgZGF0ZVxyXG4gICAgICBkYXRlLnNldFVUQ0RhdGUoMSk7IC8vIFNldCBkYXkgdG8gdGhlIGZpcnN0IG9mIHRoZSBtb250aFxyXG5cclxuICAgICAgLy8gQ29udmVydCB0byBVVEMsIGFjY291bnRpbmcgZm9yIHRoZSB0aW1lem9uZSBvZmZzZXRcclxuICAgICAgY29uc3QgdGltZXpvbmVPZmZzZXQgPSBkYXRlLmdldFRpbWV6b25lT2Zmc2V0KCk7IC8vIEdldCB0aW1lem9uZSBvZmZzZXQgaW4gbWludXRlc1xyXG4gICAgICBkYXRlLnNldE1pbnV0ZXMoZGF0ZS5nZXRNaW51dGVzKCkgKyB0aW1lem9uZU9mZnNldCk7IC8vIEFkanVzdCBmb3IgdGltZXpvbmUgb2Zmc2V0XHJcblxyXG4gICAgICAvLyBSZXR1cm4gdGhlIGZpbmFsIGRhdGUgb2JqZWN0XHJcbiAgICAgIHJldHVybiBkYXRlO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIGNvbnN0IGRhdGVPbmx5ID0gdmFsdWUuaW5jbHVkZXMoJ1QnKSA/IHZhbHVlLnNwbGl0KCdUJylbMF0gOiB2YWx1ZTtcclxuICAgICAgcmV0dXJuIG5ldyBEYXRlKGRhdGVPbmx5ICsgXCIgXCIgKyBuZXcgRGF0ZShkYXRlT25seSkudG9Mb2NhbGVUaW1lU3RyaW5nKCkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZW1vdmVUaW1lWm9uZUFuZENvbnZlcnRUb0lTT1N0cmluZyh2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IHJlc3VsdCA9IHZhbHVlLnNwbGl0KCcrJylbMF07XHJcbiAgICByZXR1cm4gbmV3IERhdGUocmVzdWx0LmVuZHNXaXRoKCdaJykgPyByZXN1bHQgOiBgJHtyZXN1bHR9WmApLnRvSVNPU3RyaW5nKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNvbnZlcnRPZmZzZXRNaW5Ub0hvdXIobnVtOiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgbnVtID0gLW51bTtcclxuICAgIGNvbnN0IHByZWZpeCA9IG51bS50b1N0cmluZygpLnN0YXJ0c1dpdGgoJy0nKSA/ICctJyA6ICcrJztcclxuICAgIGNvbnN0IHJlc3VsdCA9IGAkeyhNYXRoLmFicyhudW0pIC8gNjApLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgJzAnKX06MDBgO1xyXG4gICAgcmV0dXJuIGAke3ByZWZpeH0ke3Jlc3VsdH1gO1xyXG4gIH1cclxuICAvLyNlbmRyZWdpb25cclxuXHJcbiAgcHVibGljIGRlY3JlbWVudENvbXBvbmVudENvdW50ZXJGb3JGaWVsZChmaWVsZDogWkZpZWxkKSB7XHJcbiAgICBpZiAoZmllbGQuU3ViVHlwZSA9PT0gJ3p1ZGYnKSB7XHJcbiAgICAgIHRoaXMuZmllbGRTZXJ2aWNlLmRlY3JlbWVudENvbXBvbmVudENvdW50ZXIoJ3p1ZGYnKTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKGZpZWxkLkZpZWxkRWxlbWVudE5hbWUpIHtcclxuICAgICAgdGhpcy5maWVsZFNlcnZpY2UuZGVjcmVtZW50Q29tcG9uZW50Q291bnRlcihmaWVsZC5GaWVsZEVsZW1lbnROYW1lKTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICB0aGlzLmZpZWxkU2VydmljZS5kZWNyZW1lbnRDb21wb25lbnRDb3VudGVyKCdtYWluJyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaXNNb2JpbGVTY3JlZW4oKSB7XHJcbiAgICBpZiAodGhpcy5lbnZpcm9ubWVudC5tb2JpbGVNb2RlICYmICEhdGhpcy5lbnZpcm9ubWVudC5tb2JpbGVNb2RlLmlzRW5hYmxlZCAmJiB3aW5kb3cuaW5uZXJXaWR0aCA8IDc2OCkge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -7,8 +7,9 @@ import * as i0 from "@angular/core";
|
|
|
7
7
|
import * as i1 from "../services/zcomponent.service";
|
|
8
8
|
import * as i2 from "@syncfusion/ej2-angular-calendars";
|
|
9
9
|
import * as i3 from "@angular/common";
|
|
10
|
-
import * as i4 from "
|
|
11
|
-
import * as i5 from "../zdatetime/
|
|
10
|
+
import * as i4 from "@angular/forms";
|
|
11
|
+
import * as i5 from "../zdatetime/dateParser.pipe";
|
|
12
|
+
import * as i6 from "../zdatetime/dateKendoFormatParser.pipe";
|
|
12
13
|
export class SfdatetimepickerComponent extends InputFieldBase {
|
|
13
14
|
constructor(componentService) {
|
|
14
15
|
super(componentService);
|
|
@@ -42,12 +43,12 @@ export class SfdatetimepickerComponent extends InputFieldBase {
|
|
|
42
43
|
}
|
|
43
44
|
}
|
|
44
45
|
SfdatetimepickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: SfdatetimepickerComponent, deps: [{ token: i1.ZComponentService }], target: i0.ɵɵFactoryTarget.Component });
|
|
45
|
-
SfdatetimepickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.3", type: SfdatetimepickerComponent, selector: "app-sfdatetimepicker", viewQueries: [{ propertyName: "sfdatetimepicker", first: true, predicate: ["sfdatetimepicker"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"zdate-container e1tag-style\" [style]=\"componentProperties.style.style\">\r\n <div class=\"dateTimeDesktopContainer\" *ngIf=\"!isMobileScreen()\">\r\n <ejs-datetimepicker #sfdatetimepicker\r\n [
|
|
46
|
+
SfdatetimepickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.3", type: SfdatetimepickerComponent, selector: "app-sfdatetimepicker", viewQueries: [{ propertyName: "sfdatetimepicker", first: true, predicate: ["sfdatetimepicker"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"zdate-container e1tag-style\" [style]=\"componentProperties.style.style\">\r\n <div class=\"dateTimeDesktopContainer\" *ngIf=\"!isMobileScreen()\">\r\n <ejs-datetimepicker #sfdatetimepicker\r\n [ngModel]=\"form.get(data.Value).value | dateParser : data\" \r\n (change)=\"onChange($event)\"\r\n [min]=\"minDate\"\r\n [max]=\"maxDate\"\r\n [step]=\"interval\"\r\n [format]=\"data | dateFormatKendo\"\r\n [required]=\"data.IsRequired\"\r\n [placeholder]=\"data.PlaceHolder\" \r\n [showClearButton]=\"data.ClearButton\" \r\n [strictMode]=\"disableStrictMode\"\r\n cssClass=\"e-custom\" \r\n [class.disabled]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\">\r\n </ejs-datetimepicker>\r\n </div>\r\n</div> \r\n", styles: [".e-custom.e-input-group.e-control-wrapper input.e-input,.e-custom.e-input-focus input.e-input{font-size:var(--content-font-size);padding-left:8px}.e-custom.e-input-group.e-control-wrapper{border-radius:5px!important;border:.1px solid rgba(0,0,0,.3)!important}.e-custom.e-input-group.e-control-wrapper:focus-within{box-shadow:0 0 3px 1px var(--ion-color-primary)!important}.e-custom.e-input-group.e-control-wrapper input.e-input:focus{padding-left:8px}.e-custom.e-input-group:not(.e-float-icon-left):not(.e-float-input):before,.e-custom.e-input-group:not(.e-float-icon-left):not(.e-float-input):after{background:transparent!important}.e-custom.e-input-group.e-error,.e-custom.e-input-group.e-control-wrapper.e-error,.e-custom.e-input-group.e-error:not(.e-float-icon-left),.e-custom.e-input-group.e-control-wrapper.e-error:not(.e-float-icon-left){border-color:#f31700!important}.e-custom.e-input-group.e-error.e-control-wrapper:focus-within{box-shadow:0 0 3px #f31700!important}\n"], components: [{ type: i2.DateTimePickerComponent, selector: "ejs-datetimepicker", inputs: ["allowEdit", "calendarMode", "cssClass", "dayHeaderFormat", "depth", "enableMask", "enablePersistence", "enableRtl", "enabled", "firstDayOfWeek", "floatLabelType", "format", "htmlAttributes", "isMultiSelection", "keyConfigs", "locale", "maskPlaceholder", "max", "min", "openOnFocus", "placeholder", "readonly", "scrollTo", "serverTimezoneOffset", "showClearButton", "showTodayButton", "start", "step", "strictMode", "timeFormat", "value", "values", "weekNumber", "weekRule", "width", "zIndex"], outputs: ["blur", "change", "cleared", "close", "created", "destroyed", "focus", "navigated", "open", "renderDayCell", "valueChange"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }], pipes: { "dateParser": i5.DateParserFilter, "dateFormatKendo": i6.DateKendoFormatParser }, encapsulation: i0.ViewEncapsulation.None });
|
|
46
47
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: SfdatetimepickerComponent, decorators: [{
|
|
47
48
|
type: Component,
|
|
48
|
-
args: [{ selector: 'app-sfdatetimepicker', encapsulation: ViewEncapsulation.None, template: "<div class=\"zdate-container e1tag-style\" [style]=\"componentProperties.style.style\">\r\n <div class=\"dateTimeDesktopContainer\" *ngIf=\"!isMobileScreen()\">\r\n <ejs-datetimepicker #sfdatetimepicker\r\n [
|
|
49
|
+
args: [{ selector: 'app-sfdatetimepicker', encapsulation: ViewEncapsulation.None, template: "<div class=\"zdate-container e1tag-style\" [style]=\"componentProperties.style.style\">\r\n <div class=\"dateTimeDesktopContainer\" *ngIf=\"!isMobileScreen()\">\r\n <ejs-datetimepicker #sfdatetimepicker\r\n [ngModel]=\"form.get(data.Value).value | dateParser : data\" \r\n (change)=\"onChange($event)\"\r\n [min]=\"minDate\"\r\n [max]=\"maxDate\"\r\n [step]=\"interval\"\r\n [format]=\"data | dateFormatKendo\"\r\n [required]=\"data.IsRequired\"\r\n [placeholder]=\"data.PlaceHolder\" \r\n [showClearButton]=\"data.ClearButton\" \r\n [strictMode]=\"disableStrictMode\"\r\n cssClass=\"e-custom\" \r\n [class.disabled]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\">\r\n </ejs-datetimepicker>\r\n </div>\r\n</div> \r\n", styles: [".e-custom.e-input-group.e-control-wrapper input.e-input,.e-custom.e-input-focus input.e-input{font-size:var(--content-font-size);padding-left:8px}.e-custom.e-input-group.e-control-wrapper{border-radius:5px!important;border:.1px solid rgba(0,0,0,.3)!important}.e-custom.e-input-group.e-control-wrapper:focus-within{box-shadow:0 0 3px 1px var(--ion-color-primary)!important}.e-custom.e-input-group.e-control-wrapper input.e-input:focus{padding-left:8px}.e-custom.e-input-group:not(.e-float-icon-left):not(.e-float-input):before,.e-custom.e-input-group:not(.e-float-icon-left):not(.e-float-input):after{background:transparent!important}.e-custom.e-input-group.e-error,.e-custom.e-input-group.e-control-wrapper.e-error,.e-custom.e-input-group.e-error:not(.e-float-icon-left),.e-custom.e-input-group.e-control-wrapper.e-error:not(.e-float-icon-left){border-color:#f31700!important}.e-custom.e-input-group.e-error.e-control-wrapper:focus-within{box-shadow:0 0 3px #f31700!important}\n"] }]
|
|
49
50
|
}], ctorParameters: function () { return [{ type: i1.ZComponentService }]; }, propDecorators: { sfdatetimepicker: [{
|
|
50
51
|
type: ViewChild,
|
|
51
52
|
args: ["sfdatetimepicker"]
|
|
52
53
|
}] } });
|
|
53
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ZkYXRldGltZXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tbWhnbG9iYWwtZHluYW1pY2Zvcm0vc3JjL2xpYi9zZmRhdGV0aW1lcGlja2VyL3NmZGF0ZXRpbWVwaWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvc2ZkYXRldGltZXBpY2tlci9zZmRhdGV0aW1lcGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtCQUErQjtBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFVLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQU9oRiwyQ0FBMkM7QUFDM0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBRXhFLE9BQU8sRUFBYyxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7Ozs7OztBQVUvRCxNQUFNLE9BQU8seUJBQTBCLFNBQVEsY0FBYztJQVEzRCxZQUNFLGdCQUFtQztRQUVuQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQVJuQixZQUFPLEdBQVMsSUFBSSxDQUFDO1FBQ3JCLFlBQU8sR0FBUyxJQUFJLENBQUM7UUFFckIsc0JBQWlCLEdBQVksS0FBSyxDQUFDO1FBbUJuQyxpQkFBWSxHQUFHLENBQUMsT0FBWSxFQUFFLE9BQVksRUFBTyxFQUFFO1lBQ3hELElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFO2dCQUMvQixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2FBQ2xDO1lBQ0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUU7Z0JBQy9CLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7YUFDbEM7UUFDSCxDQUFDLENBQUE7SUFwQkQsQ0FBQztJQUVELFFBQVE7UUFDTixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUN2RSxJQUFJLENBQUMsaUJBQWlCLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDO1FBQ3RELElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGlDQUFpQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBV08scUJBQXFCO1FBQzNCLE1BQU0saUJBQWlCLEdBQUcsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBYyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMvRixNQUFNLFlBQVksR0FBRyxpQkFBaUIsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUU1RCxNQUFNLGlCQUFpQixHQUFHLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQWMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDL0YsTUFBTSxZQUFZLEdBQUcsaUJBQWlCLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDNUQsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLEVBQUUsWUFBWSxDQUFDLENBQUM7SUFDaEQsQ0FBQzs7c0hBekNVLHlCQUF5QjswR0FBekIseUJBQXlCLHlNQ3JCdEMscWpDQWtCQTsyRkRHYSx5QkFBeUI7a0JBUHJDLFNBQVM7K0JBQ0Usc0JBQXNCLGlCQUdqQixpQkFBaUIsQ0FBQyxJQUFJO3dHQUlOLGdCQUFnQjtzQkFBOUMsU0FBUzt1QkFBQyxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyIvKioqKioqKioqKiBBbmd1bGFyICoqKioqKioqKiovXHJcbmltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBWaWV3Q2hpbGQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbi8qKioqKioqKioqIElvbmljICoqKioqKioqKiovXHJcblxyXG4vKioqKioqKioqKiBQbHVnaW4gKioqKioqKioqKi8gXHJcbmltcG9ydCB7IERhdGVUaW1lUGlja2VyIH0gZnJvbSBcIkBzeW5jZnVzaW9uL2VqMi1hbmd1bGFyLWNhbGVuZGFyc1wiOyBcclxuXHJcbi8qKioqKioqKioqIENvbXBvbmVudCAmIFNlcnZpY2UgKioqKioqKioqKi9cclxuaW1wb3J0IHsgSW5wdXRGaWVsZEJhc2UgfSBmcm9tIFwiLi4vY29tcG9uZW50cy9pbnB1dGZpZWxkYmFzZS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgWkNvbXBvbmVudFNlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvemNvbXBvbmVudC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFpDb21wb25lbnQsIFpDb21wb25lbnRIZWxwZXIgfSBmcm9tIFwibW1oZ2xvYmFsLXpjb3JlXCI7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtc2ZkYXRldGltZXBpY2tlcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3NmZGF0ZXRpbWVwaWNrZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3NmZGF0ZXRpbWVwaWNrZXIuY29tcG9uZW50LnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIFNmZGF0ZXRpbWVwaWNrZXJDb21wb25lbnQgZXh0ZW5kcyBJbnB1dEZpZWxkQmFzZSBpbXBsZW1lbnRzIFpDb21wb25lbnQsIE9uSW5pdCB7IFxyXG4gIEBWaWV3Q2hpbGQoXCJzZmRhdGV0aW1lcGlja2VyXCIpIHNmZGF0ZXRpbWVwaWNrZXI6IERhdGVUaW1lUGlja2VyOyBcclxuICBcclxuICBwdWJsaWMgbWluRGF0ZTogRGF0ZSA9IG51bGw7XHJcbiAgcHVibGljIG1heERhdGU6IERhdGUgPSBudWxsO1xyXG4gIHB1YmxpYyBpbnRlcnZhbDogbnVtYmVyOyBcclxuICBwdWJsaWMgZGlzYWJsZVN0cmljdE1vZGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBjb21wb25lbnRTZXJ2aWNlOiBaQ29tcG9uZW50U2VydmljZVxyXG4gICkge1xyXG4gICAgc3VwZXIoY29tcG9uZW50U2VydmljZSk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHN1cGVyLnNldHVwSW5uZXJGaWVsZCgpOyBcclxuICAgIHRoaXMuaW50ZXJ2YWwgPSB0aGlzLmRhdGEuU3RlcFZhbHVlID8gTnVtYmVyKHRoaXMuZGF0YS5TdGVwVmFsdWUpIDogMzA7XHJcbiAgICB0aGlzLmRpc2FibGVTdHJpY3RNb2RlID0gIXRoaXMuZGF0YS5EaXNhYmxlU3RyaWN0TW9kZTtcclxuICAgIHRoaXMuc2V0TWluQW5kTWF4RGF0ZVJhbmdlKCk7IFxyXG4gIH1cclxuIFxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMuY29tcG9uZW50U2VydmljZS5kZWNyZW1lbnRDb21wb25lbnRDb3VudGVyRm9yRmllbGQodGhpcy5kYXRhKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXREYXRlUmFuZ2UgPSAoTWluRGF0ZTogYW55LCBNYXhEYXRlOiBhbnkpOiBhbnkgPT4ge1xyXG4gICAgaWYgKCFpc05hTihEYXRlLnBhcnNlKE1pbkRhdGUpKSkge1xyXG4gICAgICB0aGlzLm1pbkRhdGUgPSBuZXcgRGF0ZShNaW5EYXRlKTtcclxuICAgIH1cclxuICAgIGlmICghaXNOYU4oRGF0ZS5wYXJzZShNYXhEYXRlKSkpIHtcclxuICAgICAgdGhpcy5tYXhEYXRlID0gbmV3IERhdGUoTWF4RGF0ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldE1pbkFuZE1heERhdGVSYW5nZSgpIHtcclxuICAgIGNvbnN0IG1pbkRhdGVHcm91cFZhbHVlID0gWkNvbXBvbmVudEhlbHBlci5nZXRHcm91cFZhbHVlKHRoaXMuZGF0YS5NaW5EYXRlIGFzIGFueSwgdGhpcy5ncm91cCk7XHJcbiAgICBjb25zdCBtaW5EYXRlVmFsdWUgPSBtaW5EYXRlR3JvdXBWYWx1ZSB8fCB0aGlzLmRhdGEuTWluRGF0ZTtcclxuXHJcbiAgICBjb25zdCBtYXhEYXRlR3JvdXBWYWx1ZSA9IFpDb21wb25lbnRIZWxwZXIuZ2V0R3JvdXBWYWx1ZSh0aGlzLmRhdGEuTWF4RGF0ZSBhcyBhbnksIHRoaXMuZ3JvdXApO1xyXG4gICAgY29uc3QgbWF4RGF0ZVZhbHVlID0gbWF4RGF0ZUdyb3VwVmFsdWUgfHwgdGhpcy5kYXRhLk1heERhdGU7XHJcbiAgICB0aGlzLnNldERhdGVSYW5nZShtaW5EYXRlVmFsdWUsIG1heERhdGVWYWx1ZSk7XHJcbiAgfSBcclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiemRhdGUtY29udGFpbmVyIGUxdGFnLXN0eWxlXCIgW3N0eWxlXT1cImNvbXBvbmVudFByb3BlcnRpZXMuc3R5bGUuc3R5bGVcIj5cclxuICA8ZGl2IGNsYXNzPVwiZGF0ZVRpbWVEZXNrdG9wQ29udGFpbmVyXCIgKm5nSWY9XCIhaXNNb2JpbGVTY3JlZW4oKVwiPlxyXG4gICAgPGVqcy1kYXRldGltZXBpY2tlciAjc2ZkYXRldGltZXBpY2tlclxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmdNb2RlbF09XCJmb3JtLmdldChkYXRhLlZhbHVlKS52YWx1ZSB8IGRhdGVQYXJzZXIgOiBkYXRhXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwib25DaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFttaW5dPVwibWluRGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFttYXhdPVwibWF4RGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtzdGVwXT1cImludGVydmFsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2Zvcm1hdF09XCJkYXRhIHwgZGF0ZUZvcm1hdEtlbmRvXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW3JlcXVpcmVkXT1cImRhdGEuSXNSZXF1aXJlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJkYXRhLlBsYWNlSG9sZGVyXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtzaG93Q2xlYXJCdXR0b25dPVwiZGF0YS5DbGVhckJ1dHRvblwiIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbc3RyaWN0TW9kZV09XCJkaXNhYmxlU3RyaWN0TW9kZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNzc0NsYXNzPVwiZS1jdXN0b21cIiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cIighIWNvbXBvbmVudFByb3BlcnRpZXMuaXNSZWFkT25seUZpZWxkID8gZ3JvdXBbY29tcG9uZW50UHJvcGVydGllcy5pc1JlYWRPbmx5RmllbGRdIDogY29tcG9uZW50UHJvcGVydGllcy5pc1JlYWRPbmx5KVwiPlxyXG4gICAgPC9lanMtZGF0ZXRpbWVwaWNrZXI+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PiBcclxuIl19
|
|
@@ -152,9 +152,9 @@ export class ZganttchartComponent extends DataListingFieldBase {
|
|
|
152
152
|
}
|
|
153
153
|
}
|
|
154
154
|
ZganttchartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: ZganttchartComponent, deps: [{ token: i1.ZComponentService }], target: i0.ɵɵFactoryTarget.Component });
|
|
155
|
-
ZganttchartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.3", type: ZganttchartComponent, selector: "app-zganttchart", usesInheritance: true, ngImport: i0, template: "<kendo-gantt [style.height.px]=\"500\"\n [data]=\"ganttData\"\n kendoGanttExpandable\n [initiallyExpanded]=\"true\"\n [toolbarSettings]=\"{ position: 'both', addTaskTool: 'none' }\"\n [activeView]=\"activeView\"\n [sortable]=\"true\"\n [selectable]=\"selectable\"\n [isSelected]=\"isSelected\"\n (cellClick)=\"toggleSelection($event)\"\n (taskClick)=\"toggleSelection($event)\"\n [timelinePaneOptions]=\"{ collapsed: collapsed,\n collapsible: collapsible,\n size: timelineSize\n }\">\n <kendo-gantt-column *ngFor=\"let col of columns;\"\n [field]=\"col.field\"\n [title]=\"col.title\"\n [width]=\"col.width\"\n [format]=\"col.format\">\n </kendo-gantt-column>\n <ng-template kendoGanttToolbarTemplate\n position=\"both\"\n let-position=\"position\">\n <div *ngIf=\"position === 'top'\" class=\"toolbar-top\">\n <span>{{data.Title}}</span>\n <kendo-gantt-view-selector [views]=\"views\"\n [(activeView)]=\"activeView\"></kendo-gantt-view-selector>\n </div>\n <div *ngIf=\"position === 'bottom'\" class=\"toolbar-bottom\">\n <span>Total {{totalCount}} records</span>\n </div>\n </ng-template>\n <kendo-gantt-timeline-day-view></kendo-gantt-timeline-day-view>\n <kendo-gantt-timeline-week-view></kendo-gantt-timeline-week-view>\n <kendo-gantt-timeline-month-view></kendo-gantt-timeline-month-view>\n <kendo-gantt-timeline-year-view></kendo-gantt-timeline-year-view>\n</kendo-gantt>\n", styles: ["label.k-radio-label{display:inline-block;margin-right:10px}.toolbar-top{display:flex;width:100%;justify-content:space-between;align-items:center}.toolbar-bottom{display:flex;width:100%;align-items:end}\n"], components: [{ type: i2.GanttComponent, selector: "kendo-gantt", inputs: ["aria-roledescription", "role", "taskModelFields", "dependencyModelFields", "activeView", "data", "isSelected", "validateNewDependency", "selectable", "toolbarSettings", "fetchChildren", "hasChildren", "dependencies", "sortable", "sort", "filterable", "filter", "workDayStart", "workDayEnd", "workWeekStart", "workWeekEnd", "navigable", "timelinePaneOptions", "treeListPaneOptions", "taskClass", "rowClass", "isExpanded", "columnsAutoSize", "columnMenu", "columnsReorderable", "columnsResizable", "dragScrollSettings"], outputs: ["selectionChange", "rowExpand", "taskDblClick", "cellDblClick", "cellClose", "taskDelete", "rowCollapse", "remove", "cancel", "save", "taskAdd", "dependencyAdd", "sortChange", "filterChange", "dataStateChange", "treeListPaneCollapsedChange", "timelinePaneCollapsedChange", "timelinePaneSizeChange", "activeViewChange", "columnResize", "columnReorder", "columnVisibilityChange", "columnLockedChange", "cellClick", "taskClick"], exportAs: ["kendoGantt"] }, { type: i2.GanttColumnComponent, selector: "kendo-gantt-column", inputs: ["format", "filter", "filterable", "editor", "editable", "locked", "lockable", "hidden", "media", "style", "headerStyle", "footerStyle", "class", "headerClass", "footerClass"] }, { type: i2.ViewSelectorComponent, selector: "kendo-gantt-view-selector", inputs: ["views", "activeView"], outputs: ["activeViewChange"] }, { type: i2.TimelineDayViewComponent, selector: "kendo-gantt-timeline-day-view" }, { type: i2.TimelineWeekViewComponent, selector: "kendo-gantt-timeline-week-view" }, { type: i2.TimelineMonthViewComponent, selector: "kendo-gantt-timeline-month-view" }, { type: i2.TimelineYearViewComponent, selector: "kendo-gantt-timeline-year-view" }], directives: [{ type: i2.GanttExpandableDirective, selector: "[kendoGanttExpandable]", inputs: ["expandBy"], exportAs: ["kendoGanttExpandable"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.ToolbarTemplateDirective, selector: "[kendoGanttToolbarTemplate]", inputs: ["position"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
155
|
+
ZganttchartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.3", type: ZganttchartComponent, selector: "app-zganttchart", usesInheritance: true, ngImport: i0, template: "<kendo-gantt [style.height.px]=\"500\"\r\n [data]=\"ganttData\"\r\n kendoGanttExpandable\r\n [initiallyExpanded]=\"true\"\r\n [toolbarSettings]=\"{ position: 'both', addTaskTool: 'none' }\"\r\n [activeView]=\"activeView\"\r\n [sortable]=\"true\"\r\n [selectable]=\"selectable\"\r\n [isSelected]=\"isSelected\"\r\n (cellClick)=\"toggleSelection($event)\"\r\n (taskClick)=\"toggleSelection($event)\"\r\n [timelinePaneOptions]=\"{ collapsed: collapsed,\r\n collapsible: collapsible,\r\n size: timelineSize\r\n }\">\r\n <kendo-gantt-column *ngFor=\"let col of columns;\"\r\n [field]=\"col.field\"\r\n [title]=\"col.title\"\r\n [width]=\"col.width\"\r\n [format]=\"col.format\">\r\n </kendo-gantt-column>\r\n <ng-template kendoGanttToolbarTemplate\r\n position=\"both\"\r\n let-position=\"position\">\r\n <div *ngIf=\"position === 'top'\" class=\"toolbar-top\">\r\n <span>{{data.Title}}</span>\r\n <kendo-gantt-view-selector [views]=\"views\"\r\n [(activeView)]=\"activeView\"></kendo-gantt-view-selector>\r\n </div>\r\n <div *ngIf=\"position === 'bottom'\" class=\"toolbar-bottom\">\r\n <span>Total {{totalCount}} records</span>\r\n </div>\r\n </ng-template>\r\n <kendo-gantt-timeline-day-view></kendo-gantt-timeline-day-view>\r\n <kendo-gantt-timeline-week-view></kendo-gantt-timeline-week-view>\r\n <kendo-gantt-timeline-month-view></kendo-gantt-timeline-month-view>\r\n <kendo-gantt-timeline-year-view></kendo-gantt-timeline-year-view>\r\n</kendo-gantt>\r\n", styles: ["label.k-radio-label{display:inline-block;margin-right:10px}.toolbar-top{display:flex;width:100%;justify-content:space-between;align-items:center}.toolbar-bottom{display:flex;width:100%;align-items:end}\n"], components: [{ type: i2.GanttComponent, selector: "kendo-gantt", inputs: ["aria-roledescription", "role", "taskModelFields", "dependencyModelFields", "activeView", "data", "isSelected", "validateNewDependency", "selectable", "toolbarSettings", "fetchChildren", "hasChildren", "dependencies", "sortable", "sort", "filterable", "filter", "workDayStart", "workDayEnd", "workWeekStart", "workWeekEnd", "navigable", "timelinePaneOptions", "treeListPaneOptions", "taskClass", "rowClass", "isExpanded", "columnsAutoSize", "columnMenu", "columnsReorderable", "columnsResizable", "dragScrollSettings"], outputs: ["selectionChange", "rowExpand", "taskDblClick", "cellDblClick", "cellClose", "taskDelete", "rowCollapse", "remove", "cancel", "save", "taskAdd", "dependencyAdd", "sortChange", "filterChange", "dataStateChange", "treeListPaneCollapsedChange", "timelinePaneCollapsedChange", "timelinePaneSizeChange", "activeViewChange", "columnResize", "columnReorder", "columnVisibilityChange", "columnLockedChange", "cellClick", "taskClick"], exportAs: ["kendoGantt"] }, { type: i2.GanttColumnComponent, selector: "kendo-gantt-column", inputs: ["format", "filter", "filterable", "editor", "editable", "locked", "lockable", "hidden", "media", "style", "headerStyle", "footerStyle", "class", "headerClass", "footerClass"] }, { type: i2.ViewSelectorComponent, selector: "kendo-gantt-view-selector", inputs: ["views", "activeView"], outputs: ["activeViewChange"] }, { type: i2.TimelineDayViewComponent, selector: "kendo-gantt-timeline-day-view" }, { type: i2.TimelineWeekViewComponent, selector: "kendo-gantt-timeline-week-view" }, { type: i2.TimelineMonthViewComponent, selector: "kendo-gantt-timeline-month-view" }, { type: i2.TimelineYearViewComponent, selector: "kendo-gantt-timeline-year-view" }], directives: [{ type: i2.GanttExpandableDirective, selector: "[kendoGanttExpandable]", inputs: ["expandBy"], exportAs: ["kendoGanttExpandable"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.ToolbarTemplateDirective, selector: "[kendoGanttToolbarTemplate]", inputs: ["position"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
156
156
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: ZganttchartComponent, decorators: [{
|
|
157
157
|
type: Component,
|
|
158
|
-
args: [{ selector: 'app-zganttchart', template: "<kendo-gantt [style.height.px]=\"500\"\n [data]=\"ganttData\"\n kendoGanttExpandable\n [initiallyExpanded]=\"true\"\n [toolbarSettings]=\"{ position: 'both', addTaskTool: 'none' }\"\n [activeView]=\"activeView\"\n [sortable]=\"true\"\n [selectable]=\"selectable\"\n [isSelected]=\"isSelected\"\n (cellClick)=\"toggleSelection($event)\"\n (taskClick)=\"toggleSelection($event)\"\n [timelinePaneOptions]=\"{ collapsed: collapsed,\n collapsible: collapsible,\n size: timelineSize\n }\">\n <kendo-gantt-column *ngFor=\"let col of columns;\"\n [field]=\"col.field\"\n [title]=\"col.title\"\n [width]=\"col.width\"\n [format]=\"col.format\">\n </kendo-gantt-column>\n <ng-template kendoGanttToolbarTemplate\n position=\"both\"\n let-position=\"position\">\n <div *ngIf=\"position === 'top'\" class=\"toolbar-top\">\n <span>{{data.Title}}</span>\n <kendo-gantt-view-selector [views]=\"views\"\n [(activeView)]=\"activeView\"></kendo-gantt-view-selector>\n </div>\n <div *ngIf=\"position === 'bottom'\" class=\"toolbar-bottom\">\n <span>Total {{totalCount}} records</span>\n </div>\n </ng-template>\n <kendo-gantt-timeline-day-view></kendo-gantt-timeline-day-view>\n <kendo-gantt-timeline-week-view></kendo-gantt-timeline-week-view>\n <kendo-gantt-timeline-month-view></kendo-gantt-timeline-month-view>\n <kendo-gantt-timeline-year-view></kendo-gantt-timeline-year-view>\n</kendo-gantt>\n", styles: ["label.k-radio-label{display:inline-block;margin-right:10px}.toolbar-top{display:flex;width:100%;justify-content:space-between;align-items:center}.toolbar-bottom{display:flex;width:100%;align-items:end}\n"] }]
|
|
158
|
+
args: [{ selector: 'app-zganttchart', template: "<kendo-gantt [style.height.px]=\"500\"\r\n [data]=\"ganttData\"\r\n kendoGanttExpandable\r\n [initiallyExpanded]=\"true\"\r\n [toolbarSettings]=\"{ position: 'both', addTaskTool: 'none' }\"\r\n [activeView]=\"activeView\"\r\n [sortable]=\"true\"\r\n [selectable]=\"selectable\"\r\n [isSelected]=\"isSelected\"\r\n (cellClick)=\"toggleSelection($event)\"\r\n (taskClick)=\"toggleSelection($event)\"\r\n [timelinePaneOptions]=\"{ collapsed: collapsed,\r\n collapsible: collapsible,\r\n size: timelineSize\r\n }\">\r\n <kendo-gantt-column *ngFor=\"let col of columns;\"\r\n [field]=\"col.field\"\r\n [title]=\"col.title\"\r\n [width]=\"col.width\"\r\n [format]=\"col.format\">\r\n </kendo-gantt-column>\r\n <ng-template kendoGanttToolbarTemplate\r\n position=\"both\"\r\n let-position=\"position\">\r\n <div *ngIf=\"position === 'top'\" class=\"toolbar-top\">\r\n <span>{{data.Title}}</span>\r\n <kendo-gantt-view-selector [views]=\"views\"\r\n [(activeView)]=\"activeView\"></kendo-gantt-view-selector>\r\n </div>\r\n <div *ngIf=\"position === 'bottom'\" class=\"toolbar-bottom\">\r\n <span>Total {{totalCount}} records</span>\r\n </div>\r\n </ng-template>\r\n <kendo-gantt-timeline-day-view></kendo-gantt-timeline-day-view>\r\n <kendo-gantt-timeline-week-view></kendo-gantt-timeline-week-view>\r\n <kendo-gantt-timeline-month-view></kendo-gantt-timeline-month-view>\r\n <kendo-gantt-timeline-year-view></kendo-gantt-timeline-year-view>\r\n</kendo-gantt>\r\n", styles: ["label.k-radio-label{display:inline-block;margin-right:10px}.toolbar-top{display:flex;width:100%;justify-content:space-between;align-items:center}.toolbar-bottom{display:flex;width:100%;align-items:end}\n"] }]
|
|
159
159
|
}], ctorParameters: function () { return [{ type: i1.ZComponentService }]; } });
|
|
160
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiemdhbnR0Y2hhcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvemdhbnR0Y2hhcnQvemdhbnR0Y2hhcnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvemdhbnR0Y2hhcnQvemdhbnR0Y2hhcnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0JBQStCO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBTzdELDJDQUEyQztBQUMzQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUVwRixPQUFPLEVBRUwsZ0JBQWdCLEVBQ2pCLE1BQU0saUJBQWlCLENBQUM7Ozs7O0FBT3pCLE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxvQkFBb0I7SUFVNUQsWUFDUyxnQkFBbUM7UUFFMUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFGakIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFtQjtRQVZyQyxlQUFVLEdBQXFCLEtBQUssQ0FBQztRQUNyQyxVQUFLLEdBQXVCLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDN0QsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFDcEIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsQixpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUNyQixZQUFPLEdBQVUsRUFBRSxDQUFDLENBQUMsMkJBQTJCO1FBQ2hELGVBQVUsR0FBRyxLQUFLLENBQUM7UUFDbkIsZUFBVSxHQUFXLENBQUMsQ0FBQztRQStIdkIsbUJBQWMsR0FBYSxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBRXJDLGVBQVUsR0FBRyxDQUFDLFFBQWEsRUFBVyxFQUFFO1lBQzdDLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDeEUsQ0FBQyxDQUFDO0lBN0hGLENBQUM7SUFLRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsSUFBSSxLQUFLLENBQUM7UUFDcEQsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsSUFBSSxLQUFLLENBQUM7UUFDcEQsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksSUFBSSxLQUFLLENBQUM7UUFDcEQsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsSUFBSSxLQUFLLENBQUM7UUFDaEQsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztRQUMzQixnQkFBZ0IsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxpQ0FBaUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDckUsQ0FBQztJQUVELFdBQVc7SUFDWCxDQUFDO0lBRU8sU0FBUztRQUNmLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsRUFBRTtZQUMzRSxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCO2lCQUNwQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7aUJBQy9CLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsQ0FBdUIsQ0FBQztTQUN6RTtJQUNILENBQUM7SUFFTyxhQUFhO1FBQ25CLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUU7WUFDN0IsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDNUQsSUFBSSxJQUFJLENBQUMsbUJBQW1CLENBQUMsV0FBVyxDQUFDLEVBQUU7Z0JBQ3pDLElBQUksQ0FBQyxVQUFVLEdBQUcsV0FBK0IsQ0FBQzthQUNuRDtTQUNGO0lBQ0gsQ0FBQztJQUVPLG1CQUFtQixDQUFDLElBQVk7UUFDdEMsT0FBTyxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRU8sbUJBQW1CO1FBQ3pCLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUNqRixPQUFPLENBQUMsSUFBSSxDQUFDLDZDQUE2QyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUM7WUFDN0UsT0FBTztTQUNSO1FBRUQsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ2xELElBQUksRUFBRSxLQUFLLENBQUMsSUFBSTtZQUNoQixLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUs7WUFDbEIsS0FBSyxFQUFFLEtBQUssQ0FBQyxJQUFJO1lBQ2pCLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSyxJQUFJLEVBQUU7WUFDeEIsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNO1NBQ3JCLENBQUMsQ0FBQyxDQUFDO0lBQ04sQ0FBQztJQUVNLE9BQU8sQ0FBQyxTQUFnQjtRQUM3QixJQUFJLFNBQVMsRUFBRTtZQUNiLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ3RDLEdBQUcsSUFBSTtnQkFDUCxLQUFLLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO2dCQUNsQyxHQUFHLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDO2FBQy9CLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsb0RBQW9EO1lBRWhHLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7Z0JBQ2pCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7YUFDekQ7WUFFRCxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztZQUUzQixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDO1NBQ3pDO2FBQ0k7WUFDSCxPQUFPLENBQUMsSUFBSSxDQUFDLHNFQUFzRSxDQUFDLENBQUM7U0FDdEY7SUFDSCxDQUFDO0lBRU8sbUJBQW1CO1FBQ3pCLCtEQUErRDtRQUMvRCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyx3Q0FBd0M7UUFFNUYsSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNkLE9BQU8sQ0FBQyxJQUFJLENBQUMsZUFBZSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksaUNBQWlDLENBQUMsQ0FBQztZQUM3RSxPQUFPO1NBQ1I7UUFFRCwrQkFBK0I7UUFDL0IsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNwRCxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7U0FDeEM7YUFDSTtZQUNILElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsRUFBRTtnQkFDbEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7YUFDbEM7U0FDRjtJQUNILENBQUM7SUFFTyxVQUFVLENBQUMsSUFBbUI7UUFDcEMsNkNBQTZDO1FBQzdDLElBQUksSUFBSSxZQUFZLElBQUksRUFBRTtZQUN4QixPQUFPLElBQUksQ0FBQztTQUNiO1FBRUQsdURBQXVEO1FBQ3ZELE1BQU0sVUFBVSxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFDLEVBQUU7WUFDaEMsT0FBTyxVQUFVLENBQUM7U0FDbkI7YUFBTTtZQUNMLGdGQUFnRjtZQUNoRixnREFBZ0Q7WUFDaEQsT0FBTyxJQUFJLENBQUMsQ0FBQyxtRUFBbUU7U0FDakY7SUFDSCxDQUFDO0lBRUQsSUFBVyxZQUFZO1FBQ3JCLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDekMsQ0FBQztJQVFNLGVBQWUsQ0FBQyxFQUNyQixRQUFRLEVBQ1IsTUFBTSxFQUNOLGFBQWEsR0FDbUI7UUFDaEMsZ0NBQWdDO1FBQ2hDLGFBQWEsQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUUvQixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUM7UUFFOUMsb0NBQW9DO1FBQ3BDLG1DQUFtQztRQUNuQyxxREFBcUQ7UUFDckQsSUFBSTtRQUNKLFNBQVM7UUFDVCxrREFBa0Q7UUFDbEQsSUFBSTtRQUVKLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxHQUFHLENBQUM7UUFDOUIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFFN0Msa0ZBQWtGO1FBQ2xGLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUVwQixJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ3pCLE1BQU0sSUFBSSxHQUFHLGdCQUFnQixDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUNsRixJQUFJLE9BQU8sSUFBSSxLQUFLLFVBQVUsRUFBRTtnQkFDOUIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUNqRCxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDcEI7WUFDRCxPQUFPO1NBQ1I7SUFDSCxDQUFDO0lBRU0sY0FBYztRQUNuQixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksR0FBRyxDQUFDO0lBQ2hDLENBQUM7O2lIQWpMVSxvQkFBb0I7cUdBQXBCLG9CQUFvQiw4RUNyQmpDLDB3REFzQ0E7MkZEakJhLG9CQUFvQjtrQkFMaEMsU0FBUzsrQkFDRSxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyIvKioqKioqKioqKiBBbmd1bGFyICoqKioqKioqKiovXG5pbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgT25EZXN0cm95IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcblxuLyoqKioqKioqKiogSW9uaWMgKioqKioqKioqKi9cblxuLyoqKioqKioqKiogUGx1Z2luICoqKioqKioqKiovXG5pbXBvcnQgeyBDZWxsQ2xpY2tFdmVudCwgVGFza0NsaWNrRXZlbnQsIFRpbWVsaW5lVmlld1R5cGUgfSBmcm9tIFwiQHByb2dyZXNzL2tlbmRvLWFuZ3VsYXItZ2FudHRcIjtcblxuLyoqKioqKioqKiogQ29tcG9uZW50ICYgU2VydmljZSAqKioqKioqKioqL1xuaW1wb3J0IHsgRGF0YUxpc3RpbmdGaWVsZEJhc2UgfSBmcm9tIFwiLi4vY29tcG9uZW50cy9kYXRhbGlzdGluZ2ZpZWxkYmFzZS5jb21wb25lbnRcIjtcbmltcG9ydCB7IFpDb21wb25lbnRTZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2VzL3pjb21wb25lbnQuc2VydmljZVwiO1xuaW1wb3J0IHtcbiAgWkNvbXBvbmVudCxcbiAgWkNvbXBvbmVudEhlbHBlclxufSBmcm9tIFwibW1oZ2xvYmFsLXpjb3JlXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC16Z2FudHRjaGFydCcsXG4gIHRlbXBsYXRlVXJsOiAnLi96Z2FudHRjaGFydC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3pnYW50dGNoYXJ0LmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFpnYW50dGNoYXJ0Q29tcG9uZW50IGV4dGVuZHMgRGF0YUxpc3RpbmdGaWVsZEJhc2UgaW1wbGVtZW50cyBaQ29tcG9uZW50LCBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHB1YmxpYyBhY3RpdmVWaWV3OiBUaW1lbGluZVZpZXdUeXBlID0gXCJkYXlcIjtcbiAgcHVibGljIHZpZXdzOiBUaW1lbGluZVZpZXdUeXBlW10gPSBbXCJkYXlcIiwgXCJ3ZWVrXCIsIFwibW9udGhcIiwgXCJ5ZWFyXCJdO1xuICBwdWJsaWMgY29sbGFwc2libGUgPSBmYWxzZTtcbiAgcHVibGljIGNvbGxhcHNlZCA9IGZhbHNlO1xuICBwdWJsaWMgdGltZWxpbmVTaXplID0gJzcwJSc7XG4gIHB1YmxpYyBjb2x1bW5zOiBhbnlbXSA9IFtdOyAvLyBJbml0aWFsaXplIGNvbHVtbnMgYXJyYXlcbiAgcHVibGljIHNlbGVjdGFibGUgPSBmYWxzZTtcbiAgcHVibGljIHRvdGFsQ291bnQ6IG51bWJlciA9IDA7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGNvbXBvbmVudFNlcnZpY2U6IFpDb21wb25lbnRTZXJ2aWNlXG4gICkge1xuICAgIHN1cGVyKGNvbXBvbmVudFNlcnZpY2UpO1xuICB9XG5cbiAgcHVibGljIGdhbnR0RGF0YTogYW55O1xuXG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5jb2xsYXBzaWJsZSA9IHRoaXMuZGF0YS5BbGxvd0NvbGxhcHNlID8/IGZhbHNlO1xuICAgIHRoaXMuY29sbGFwc2VkID0gdGhpcy5kYXRhLkRlZmF1bHRDb2xsYXBzZSA/PyBmYWxzZTtcbiAgICB0aGlzLnRpbWVsaW5lU2l6ZSA9IHRoaXMuZGF0YS5UaW1lbGluZVNpemUgPz8gJzcwJSc7XG4gICAgdGhpcy5zZWxlY3RhYmxlID0gdGhpcy5kYXRhLlNlbGVjdGFibGUgPz8gZmFsc2U7XG4gICAgdGhpcy5pbml0Vmlld3MoKTtcbiAgICB0aGlzLnNldEFjdGl2ZVZpZXcoKTtcbiAgICB0aGlzLmdlbmVyYXRlR3JpZENvbHVtbnMoKTtcbiAgICBaQ29tcG9uZW50SGVscGVyLnJlZ2lzdGVyQ29tcG9uZW50KHRoaXMpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMuY29tcG9uZW50U2VydmljZS5kZWNyZW1lbnRDb21wb25lbnRDb3VudGVyRm9yRmllbGQodGhpcy5kYXRhKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0Vmlld3MoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZGF0YS5UaW1lbGluZVZpZXdUeXBlICYmIEFycmF5LmlzQXJyYXkodGhpcy5kYXRhLlRpbWVsaW5lVmlld1R5cGUpKSB7XG4gICAgICB0aGlzLnZpZXdzID0gdGhpcy5kYXRhLlRpbWVsaW5lVmlld1R5cGVcbiAgICAgICAgLm1hcCh2aWV3ID0+IHZpZXcudG9Mb3dlckNhc2UoKSlcbiAgICAgICAgLmZpbHRlcih2aWV3ID0+IHRoaXMuaXNWYWxpZFRpbWVsaW5lVmlldyh2aWV3KSkgYXMgVGltZWxpbmVWaWV3VHlwZVtdO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0QWN0aXZlVmlldygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kYXRhLlRpbWVsaW1lRGVmYXVsdCkge1xuICAgICAgY29uc3QgZGVmYXVsdFZpZXcgPSB0aGlzLmRhdGEuVGltZWxpbWVEZWZhdWx0LnRvTG93ZXJDYXNlKCk7XG4gICAgICBpZiAodGhpcy5pc1ZhbGlkVGltZWxpbmVWaWV3KGRlZmF1bHRWaWV3KSkge1xuICAgICAgICB0aGlzLmFjdGl2ZVZpZXcgPSBkZWZhdWx0VmlldyBhcyBUaW1lbGluZVZpZXdUeXBlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaXNWYWxpZFRpbWVsaW5lVmlldyh2aWV3OiBzdHJpbmcpOiB2aWV3IGlzIFRpbWVsaW5lVmlld1R5cGUge1xuICAgIHJldHVybiBbJ2RheScsICd3ZWVrJywgJ21vbnRoJywgJ3llYXInXS5pbmNsdWRlcyh2aWV3KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2VuZXJhdGVHcmlkQ29sdW1ucygpOiB2b2lkIHtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkodGhpcy5kYXRhLkNvbHVtbkZpZWxkcykgfHwgdGhpcy5kYXRhLkNvbHVtbkZpZWxkcy5sZW5ndGggPT09IDApIHtcbiAgICAgIGNvbnNvbGUud2FybihgSW52YWxpZC9FbXB0eSBnYW50dCBjaGFydCBjb2x1bW4gZmllbGRzOiAnJHt0aGlzLmRhdGEuTmFtZX0nYCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5jb2x1bW5zID0gdGhpcy5kYXRhLkNvbHVtbkZpZWxkcy5tYXAoZmllbGQgPT4gKHtcbiAgICAgIG5hbWU6IGZpZWxkLk5hbWUsXG4gICAgICBmaWVsZDogZmllbGQuVmFsdWUsXG4gICAgICB0aXRsZTogZmllbGQuTmFtZSxcbiAgICAgIHdpZHRoOiBmaWVsZC53aWR0aCB8fCA4MCxcbiAgICAgIGZvcm1hdDogZmllbGQuRm9ybWF0XG4gICAgfSkpO1xuICB9XG5cbiAgcHVibGljIHNldERhdGEoZ2FudHREYXRhOiBhbnlbXSk6IHZvaWQge1xuICAgIGlmIChnYW50dERhdGEpIHtcbiAgICAgIHRoaXMuZ2FudHREYXRhID0gZ2FudHREYXRhLm1hcCh0YXNrID0+ICh7XG4gICAgICAgIC4uLnRhc2ssXG4gICAgICAgIHN0YXJ0OiB0aGlzLmVuc3VyZURhdGUodGFzay5zdGFydCksXG4gICAgICAgIGVuZDogdGhpcy5lbnN1cmVEYXRlKHRhc2suZW5kKVxuICAgICAgfSkpLmZpbHRlcih0YXNrID0+IHRhc2suc3RhcnQgJiYgdGFzay5lbmQpOyAvLyBPbmx5IGluY2x1ZGUgdGFza3Mgd2l0aCB2YWxpZCBzdGFydCBhbmQgZW5kIGRhdGVzXG5cbiAgICAgIGlmICh0aGlzLmRhdGEuTWF4KSB7XG4gICAgICAgIHRoaXMuZ2FudHREYXRhID0gdGhpcy5nYW50dERhdGEuc2xpY2UoMCwgdGhpcy5kYXRhLk1heCk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMudXBkYXRlVmFsdWVWYXJpYWJsZSgpO1xuXG4gICAgICB0aGlzLnRvdGFsQ291bnQgPSB0aGlzLmdhbnR0RGF0YS5sZW5ndGg7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgY29uc29sZS53YXJuKCdObyBkYXRhIHByb3ZpZGVkIHRvIHNldERhdGE7IHJlY2VpdmVkIGEgbnVsbCBvciB1bmRlZmluZWQgcGFyYW1ldGVyLicpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlVmFsdWVWYXJpYWJsZSgpIHtcbiAgICAvLyBFeHRyYWN0IGFuZCB0cmltIHRoZSB2YWx1ZSBmcm9tIHRoaXMuZGF0YS52YWx1ZSBpZiBpdCBleGlzdHNcbiAgICBjb25zdCBmaWVsZE5hbWUgPSB0aGlzLmRhdGEuVmFsdWUuc3BsaXQoJy4nKS5wb3AoKTsgLy8gR2V0cyB0aGUgbGFzdCBwYXJ0IGFmdGVyIHRoZSBsYXN0IGRvdFxuXG4gICAgaWYgKCFmaWVsZE5hbWUpIHtcbiAgICAgIGNvbnNvbGUud2FybihgR2FudHQgQ2hhcnQgJHt0aGlzLmRhdGEuTmFtZX0gVmFsdWUgY291bGQgbm90IGJlIGRldGVybWluZWQuYCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gRGV0ZXJtaW5lIHRoZSB0YXJnZXQgb2JqZWN0IFxuICAgIGlmICh0aGlzLmRhdGEuVmFsdWUuaW5jbHVkZXMoJ2dyb3VwLicpICYmIHRoaXMuZ3JvdXApIHtcbiAgICAgIHRoaXMuZ3JvdXBbZmllbGROYW1lXSA9IHRoaXMuZ2FudHREYXRhO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIGlmICh0aGlzLmhhc093blByb3BlcnR5KGZpZWxkTmFtZSkpIHtcbiAgICAgICAgdGhpc1tmaWVsZE5hbWVdID0gdGhpcy5nYW50dERhdGE7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBlbnN1cmVEYXRlKGRhdGU6IHN0cmluZyB8IERhdGUpOiBEYXRlIHwgbnVsbCB7XG4gICAgLy8gQ2hlY2sgaWYgdGhlIGRhdGUgaXMgYWxyZWFkeSBhIERhdGUgb2JqZWN0XG4gICAgaWYgKGRhdGUgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgICByZXR1cm4gZGF0ZTtcbiAgICB9XG5cbiAgICAvLyBJZiB0aGUgZGF0ZSBpcyBhIHN0cmluZywgY29udmVydCBpdCB0byBhIERhdGUgb2JqZWN0XG4gICAgY29uc3QgcGFyc2VkRGF0ZSA9IG5ldyBEYXRlKGRhdGUpO1xuICAgIGlmICghaXNOYU4ocGFyc2VkRGF0ZS5nZXRUaW1lKCkpKSB7XG4gICAgICByZXR1cm4gcGFyc2VkRGF0ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gTG9nIGEgd2FybmluZyBpZiB0aGUgZGF0ZSBzdHJpbmcgaXMgaW52YWxpZCBhbmQgcmV0dXJuIGEgZGVmYXVsdCBkYXRlIG9yIG51bGxcbiAgICAgIC8vIGNvbnNvbGUud2FybihgSW52YWxpZCBkYXRlIGZvcm1hdDogJHtkYXRlfWApO1xuICAgICAgcmV0dXJuIG51bGw7IC8vIG9yIHJldHVybiBudWxsIGlmIHlvdSBwcmVmZXIgdG8gaGFuZGxlIGludmFsaWQgZGF0ZXMgZGlmZmVyZW50bHlcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IHNlbGVjdGVkS2V5cygpOiBudW1iZXJbXSB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20odGhpcy5zZWxlY3Rpb25TdGF0ZSk7XG4gIH1cblxuICBwdWJsaWMgc2VsZWN0aW9uU3RhdGU6IFNldDxhbnk+ID0gbmV3IFNldCgpO1xuXG4gIHB1YmxpYyBpc1NlbGVjdGVkID0gKGRhdGFJdGVtOiBhbnkpOiBib29sZWFuID0+IHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3Rpb25TdGF0ZS5oYXMoZGF0YUl0ZW1bdGhpcy5kYXRhLlVuaXF1ZUtleSA/PyBcIklkXCJdKTtcbiAgfTtcblxuICBwdWJsaWMgdG9nZ2xlU2VsZWN0aW9uKHtcbiAgICBkYXRhSXRlbSxcbiAgICBzZW5kZXIsXG4gICAgb3JpZ2luYWxFdmVudCxcbiAgfTogQ2VsbENsaWNrRXZlbnQgfCBUYXNrQ2xpY2tFdmVudCk6IHZvaWQge1xuICAgIC8vIFByZXZlbnRzIGNvbnRleHQgbWVudSBvcGVuaW5nXG4gICAgb3JpZ2luYWxFdmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgY29uc3QgdW5pcXVlS2V5ID0gdGhpcy5kYXRhLlVuaXF1ZUtleSA/PyBcIklkXCI7XG5cbiAgICAvLyBGb3IgZnV0dXJlIHRvZ2dsaW5nIG11bHRpIHNlbGVjdCBcbiAgICAvLyBpZiAodGhpcy5pc1NlbGVjdGVkKGRhdGFJdGVtKSkge1xuICAgIC8vICAgdGhpcy5zZWxlY3Rpb25TdGF0ZS5kZWxldGUoZGF0YUl0ZW1bdW5pcXVlS2V5XSk7XG4gICAgLy8gfVxuICAgIC8vIGVsc2Uge1xuICAgIC8vICAgdGhpcy5zZWxlY3Rpb25TdGF0ZS5hZGQoZGF0YUl0ZW1bdW5pcXVlS2V5XSk7XG4gICAgLy8gfVxuXG4gICAgdGhpcy5zZWxlY3Rpb25TdGF0ZSA9IG5ldyBTZXQ7XG4gICAgdGhpcy5zZWxlY3Rpb25TdGF0ZS5hZGQoZGF0YUl0ZW1bdW5pcXVlS2V5XSk7XG5cbiAgICAvLyBNYW51YWxseSB0cmlnZ2VyIHRoZSBHYW50dCB0byByZS1ldmFsdWF0ZSB0aGUgaXNTZWxlY3RlZCBjYWxsYmFjayBmb3IgZWFjaCB0YXNrXG4gICAgc2VuZGVyLnVwZGF0ZVZpZXcoKTtcblxuICAgIGlmICh0aGlzLmRhdGEuT25JdGVtQ2xpY2spIHtcbiAgICAgIGNvbnN0IGZ1bmMgPSBaQ29tcG9uZW50SGVscGVyLmdldEdyb3VwRXZhbFZhbHVlLmNhbGwodGhpcywgdGhpcy5kYXRhLk9uSXRlbUNsaWNrKTtcbiAgICAgIGlmICh0eXBlb2YgZnVuYyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBjb25zdCBjYWxsRnVuYyA9IGZ1bmMuYmluZCh0aGlzLmdyb3VwLmN0cmxTY29wZSk7XG4gICAgICAgIGNhbGxGdW5jKGRhdGFJdGVtKTtcbiAgICAgIH1cbiAgICAgIHJldHVybjtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgY2xlYXJTZWxlY3Rpb24oKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3Rpb25TdGF0ZSA9IG5ldyBTZXQ7XG4gIH1cbn1cbiIsIjxrZW5kby1nYW50dCBbc3R5bGUuaGVpZ2h0LnB4XT1cIjUwMFwiXG4gICAgICAgICAgICAgW2RhdGFdPVwiZ2FudHREYXRhXCJcbiAgICAgICAgICAgICBrZW5kb0dhbnR0RXhwYW5kYWJsZVxuICAgICAgICAgICAgIFtpbml0aWFsbHlFeHBhbmRlZF09XCJ0cnVlXCJcbiAgICAgICAgICAgICBbdG9vbGJhclNldHRpbmdzXT1cInsgcG9zaXRpb246ICdib3RoJywgYWRkVGFza1Rvb2w6ICdub25lJyB9XCJcbiAgICAgICAgICAgICBbYWN0aXZlVmlld109XCJhY3RpdmVWaWV3XCJcbiAgICAgICAgICAgICBbc29ydGFibGVdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgW3NlbGVjdGFibGVdPVwic2VsZWN0YWJsZVwiXG4gICAgICAgICAgICAgW2lzU2VsZWN0ZWRdPVwiaXNTZWxlY3RlZFwiXG4gICAgICAgICAgICAgKGNlbGxDbGljayk9XCJ0b2dnbGVTZWxlY3Rpb24oJGV2ZW50KVwiXG4gICAgICAgICAgICAgKHRhc2tDbGljayk9XCJ0b2dnbGVTZWxlY3Rpb24oJGV2ZW50KVwiXG4gICAgICAgICAgICAgW3RpbWVsaW5lUGFuZU9wdGlvbnNdPVwieyBjb2xsYXBzZWQ6IGNvbGxhcHNlZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sbGFwc2libGU6IGNvbGxhcHNpYmxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplOiB0aW1lbGluZVNpemVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cIj5cbiAgPGtlbmRvLWdhbnR0LWNvbHVtbiAqbmdGb3I9XCJsZXQgY29sIG9mIGNvbHVtbnM7XCJcbiAgICAgICAgICAgICAgICAgICAgICBbZmllbGRdPVwiY29sLmZpZWxkXCJcbiAgICAgICAgICAgICAgICAgICAgICBbdGl0bGVdPVwiY29sLnRpdGxlXCJcbiAgICAgICAgICAgICAgICAgICAgICBbd2lkdGhdPVwiY29sLndpZHRoXCJcbiAgICAgICAgICAgICAgICAgICAgICBbZm9ybWF0XT1cImNvbC5mb3JtYXRcIj5cbiAgPC9rZW5kby1nYW50dC1jb2x1bW4+XG4gIDxuZy10ZW1wbGF0ZSBrZW5kb0dhbnR0VG9vbGJhclRlbXBsYXRlXG4gICAgICAgICAgICAgICBwb3NpdGlvbj1cImJvdGhcIlxuICAgICAgICAgICAgICAgbGV0LXBvc2l0aW9uPVwicG9zaXRpb25cIj5cbiAgICA8ZGl2ICpuZ0lmPVwicG9zaXRpb24gPT09ICd0b3AnXCIgY2xhc3M9XCJ0b29sYmFyLXRvcFwiPlxuICAgICAgPHNwYW4+e3tkYXRhLlRpdGxlfX08L3NwYW4+XG4gICAgICA8a2VuZG8tZ2FudHQtdmlldy1zZWxlY3RvciBbdmlld3NdPVwidmlld3NcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhhY3RpdmVWaWV3KV09XCJhY3RpdmVWaWV3XCI+PC9rZW5kby1nYW50dC12aWV3LXNlbGVjdG9yPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgKm5nSWY9XCJwb3NpdGlvbiA9PT0gJ2JvdHRvbSdcIiBjbGFzcz1cInRvb2xiYXItYm90dG9tXCI+XG4gICAgICA8c3Bhbj5Ub3RhbCB7e3RvdGFsQ291bnR9fSByZWNvcmRzPC9zcGFuPlxuICAgIDwvZGl2PlxuICA8L25nLXRlbXBsYXRlPlxuICA8a2VuZG8tZ2FudHQtdGltZWxpbmUtZGF5LXZpZXc+PC9rZW5kby1nYW50dC10aW1lbGluZS1kYXktdmlldz5cbiAgPGtlbmRvLWdhbnR0LXRpbWVsaW5lLXdlZWstdmlldz48L2tlbmRvLWdhbnR0LXRpbWVsaW5lLXdlZWstdmlldz5cbiAgPGtlbmRvLWdhbnR0LXRpbWVsaW5lLW1vbnRoLXZpZXc+PC9rZW5kby1nYW50dC10aW1lbGluZS1tb250aC12aWV3PlxuICA8a2VuZG8tZ2FudHQtdGltZWxpbmUteWVhci12aWV3Pjwva2VuZG8tZ2FudHQtdGltZWxpbmUteWVhci12aWV3PlxuPC9rZW5kby1nYW50dD5cbiJdfQ==
|
|
160
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiemdhbnR0Y2hhcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvemdhbnR0Y2hhcnQvemdhbnR0Y2hhcnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvemdhbnR0Y2hhcnQvemdhbnR0Y2hhcnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0JBQStCO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBTzdELDJDQUEyQztBQUMzQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUVwRixPQUFPLEVBRUwsZ0JBQWdCLEVBQ2pCLE1BQU0saUJBQWlCLENBQUM7Ozs7O0FBT3pCLE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxvQkFBb0I7SUFVNUQsWUFDUyxnQkFBbUM7UUFFMUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFGakIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFtQjtRQVZyQyxlQUFVLEdBQXFCLEtBQUssQ0FBQztRQUNyQyxVQUFLLEdBQXVCLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDN0QsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFDcEIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsQixpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUNyQixZQUFPLEdBQVUsRUFBRSxDQUFDLENBQUMsMkJBQTJCO1FBQ2hELGVBQVUsR0FBRyxLQUFLLENBQUM7UUFDbkIsZUFBVSxHQUFXLENBQUMsQ0FBQztRQStIdkIsbUJBQWMsR0FBYSxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBRXJDLGVBQVUsR0FBRyxDQUFDLFFBQWEsRUFBVyxF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QUNuQyxxREFBcUQ7UUFDckQsSUFBSTtRQUNKLFNBQVM7UUFDVCxrREFBa0Q7UUFDbEQsSUFBSTtRQUVKLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxHQUFHLENBQUM7UUFDOUIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFFN0Msa0ZBQWtGO1FBQ2xGLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUVwQixJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ3pCLE1BQU0sSUFBSSxHQUFHLGdCQUFnQixDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUNsRixJQUFJLE9BQU8sSUFBSSxLQUFLLFVBQVUsRUFBRTtnQkFDOUIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUNqRCxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDcEI7WUFDRCxPQUFPO1NBQ1I7SUFDSCxDQUFDO0lBRU0sY0FBYztRQUNuQixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksR0FBRyxDQUFDO0lBQ2hDLENBQUM7O2lIQWpMVSxvQkFBb0I7cUdBQXBCLG9CQUFvQiw4RUNyQmpDLHMxREFzQ0E7MkZEakJhLG9CQUFvQjtrQkFMaEMsU0FBUzsrQkFDRSxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyIvKioqKioqKioqKiBBbmd1bGFyICoqKioqKioqKiovXHJcbmltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBPbkRlc3Ryb3kgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuLyoqKioqKioqKiogSW9uaWMgKioqKioqKioqKi9cclxuXHJcbi8qKioqKioqKioqIFBsdWdpbiAqKioqKioqKioqL1xyXG5pbXBvcnQgeyBDZWxsQ2xpY2tFdmVudCwgVGFza0NsaWNrRXZlbnQsIFRpbWVsaW5lVmlld1R5cGUgfSBmcm9tIFwiQHByb2dyZXNzL2tlbmRvLWFuZ3VsYXItZ2FudHRcIjtcclxuXHJcbi8qKioqKioqKioqIENvbXBvbmVudCAmIFNlcnZpY2UgKioqKioqKioqKi9cclxuaW1wb3J0IHsgRGF0YUxpc3RpbmdGaWVsZEJhc2UgfSBmcm9tIFwiLi4vY29tcG9uZW50cy9kYXRhbGlzdGluZ2ZpZWxkYmFzZS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgWkNvbXBvbmVudFNlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvemNvbXBvbmVudC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7XHJcbiAgWkNvbXBvbmVudCxcclxuICBaQ29tcG9uZW50SGVscGVyXHJcbn0gZnJvbSBcIm1taGdsb2JhbC16Y29yZVwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtemdhbnR0Y2hhcnQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi96Z2FudHRjaGFydC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vemdhbnR0Y2hhcnQuY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFpnYW50dGNoYXJ0Q29tcG9uZW50IGV4dGVuZHMgRGF0YUxpc3RpbmdGaWVsZEJhc2UgaW1wbGVtZW50cyBaQ29tcG9uZW50LCBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgcHVibGljIGFjdGl2ZVZpZXc6IFRpbWVsaW5lVmlld1R5cGUgPSBcImRheVwiO1xyXG4gIHB1YmxpYyB2aWV3czogVGltZWxpbmVWaWV3VHlwZVtdID0gW1wiZGF5XCIsIFwid2Vla1wiLCBcIm1vbnRoXCIsIFwieWVhclwiXTtcclxuICBwdWJsaWMgY29sbGFwc2libGUgPSBmYWxzZTtcclxuICBwdWJsaWMgY29sbGFwc2VkID0gZmFsc2U7XHJcbiAgcHVibGljIHRpbWVsaW5lU2l6ZSA9ICc3MCUnO1xyXG4gIHB1YmxpYyBjb2x1bW5zOiBhbnlbXSA9IFtdOyAvLyBJbml0aWFsaXplIGNvbHVtbnMgYXJyYXlcclxuICBwdWJsaWMgc2VsZWN0YWJsZSA9IGZhbHNlO1xyXG4gIHB1YmxpYyB0b3RhbENvdW50OiBudW1iZXIgPSAwO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBjb21wb25lbnRTZXJ2aWNlOiBaQ29tcG9uZW50U2VydmljZVxyXG4gICkge1xyXG4gICAgc3VwZXIoY29tcG9uZW50U2VydmljZSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2FudHREYXRhOiBhbnk7XHJcblxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuY29sbGFwc2libGUgPSB0aGlzLmRhdGEuQWxsb3dDb2xsYXBzZSA/PyBmYWxzZTtcclxuICAgIHRoaXMuY29sbGFwc2VkID0gdGhpcy5kYXRhLkRlZmF1bHRDb2xsYXBzZSA/PyBmYWxzZTtcclxuICAgIHRoaXMudGltZWxpbmVTaXplID0gdGhpcy5kYXRhLlRpbWVsaW5lU2l6ZSA/PyAnNzAlJztcclxuICAgIHRoaXMuc2VsZWN0YWJsZSA9IHRoaXMuZGF0YS5TZWxlY3RhYmxlID8/IGZhbHNlO1xyXG4gICAgdGhpcy5pbml0Vmlld3MoKTtcclxuICAgIHRoaXMuc2V0QWN0aXZlVmlldygpO1xyXG4gICAgdGhpcy5nZW5lcmF0ZUdyaWRDb2x1bW5zKCk7XHJcbiAgICBaQ29tcG9uZW50SGVscGVyLnJlZ2lzdGVyQ29tcG9uZW50KHRoaXMpO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy5jb21wb25lbnRTZXJ2aWNlLmRlY3JlbWVudENvbXBvbmVudENvdW50ZXJGb3JGaWVsZCh0aGlzLmRhdGEpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGluaXRWaWV3cygpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmRhdGEuVGltZWxpbmVWaWV3VHlwZSAmJiBBcnJheS5pc0FycmF5KHRoaXMuZGF0YS5UaW1lbGluZVZpZXdUeXBlKSkge1xyXG4gICAgICB0aGlzLnZpZXdzID0gdGhpcy5kYXRhLlRpbWVsaW5lVmlld1R5cGVcclxuICAgICAgICAubWFwKHZpZXcgPT4gdmlldy50b0xvd2VyQ2FzZSgpKVxyXG4gICAgICAgIC5maWx0ZXIodmlldyA9PiB0aGlzLmlzVmFsaWRUaW1lbGluZVZpZXcodmlldykpIGFzIFRpbWVsaW5lVmlld1R5cGVbXTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0QWN0aXZlVmlldygpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmRhdGEuVGltZWxpbWVEZWZhdWx0KSB7XHJcbiAgICAgIGNvbnN0IGRlZmF1bHRWaWV3ID0gdGhpcy5kYXRhLlRpbWVsaW1lRGVmYXVsdC50b0xvd2VyQ2FzZSgpO1xyXG4gICAgICBpZiAodGhpcy5pc1ZhbGlkVGltZWxpbmVWaWV3KGRlZmF1bHRWaWV3KSkge1xyXG4gICAgICAgIHRoaXMuYWN0aXZlVmlldyA9IGRlZmF1bHRWaWV3IGFzIFRpbWVsaW5lVmlld1R5cGU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgaXNWYWxpZFRpbWVsaW5lVmlldyh2aWV3OiBzdHJpbmcpOiB2aWV3IGlzIFRpbWVsaW5lVmlld1R5cGUge1xyXG4gICAgcmV0dXJuIFsnZGF5JywgJ3dlZWsnLCAnbW9udGgnLCAneWVhciddLmluY2x1ZGVzKHZpZXcpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZW5lcmF0ZUdyaWRDb2x1bW5zKCk6IHZvaWQge1xyXG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHRoaXMuZGF0YS5Db2x1bW5GaWVsZHMpIHx8IHRoaXMuZGF0YS5Db2x1bW5GaWVsZHMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIGNvbnNvbGUud2FybihgSW52YWxpZC9FbXB0eSBnYW50dCBjaGFydCBjb2x1bW4gZmllbGRzOiAnJHt0aGlzLmRhdGEuTmFtZX0nYCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmNvbHVtbnMgPSB0aGlzLmRhdGEuQ29sdW1uRmllbGRzLm1hcChmaWVsZCA9PiAoe1xyXG4gICAgICBuYW1lOiBmaWVsZC5OYW1lLFxyXG4gICAgICBmaWVsZDogZmllbGQuVmFsdWUsXHJcbiAgICAgIHRpdGxlOiBmaWVsZC5OYW1lLFxyXG4gICAgICB3aWR0aDogZmllbGQud2lkdGggfHwgODAsXHJcbiAgICAgIGZvcm1hdDogZmllbGQuRm9ybWF0XHJcbiAgICB9KSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0RGF0YShnYW50dERhdGE6IGFueVtdKTogdm9pZCB7XHJcbiAgICBpZiAoZ2FudHREYXRhKSB7XHJcbiAgICAgIHRoaXMuZ2FudHREYXRhID0gZ2FudHREYXRhLm1hcCh0YXNrID0+ICh7XHJcbiAgICAgICAgLi4udGFzayxcclxuICAgICAgICBzdGFydDogdGhpcy5lbnN1cmVEYXRlKHRhc2suc3RhcnQpLFxyXG4gICAgICAgIGVuZDogdGhpcy5lbnN1cmVEYXRlKHRhc2suZW5kKVxyXG4gICAgICB9KSkuZmlsdGVyKHRhc2sgPT4gdGFzay5zdGFydCAmJiB0YXNrLmVuZCk7IC8vIE9ubHkgaW5jbHVkZSB0YXNrcyB3aXRoIHZhbGlkIHN0YXJ0IGFuZCBlbmQgZGF0ZXNcclxuXHJcbiAgICAgIGlmICh0aGlzLmRhdGEuTWF4KSB7XHJcbiAgICAgICAgdGhpcy5nYW50dERhdGEgPSB0aGlzLmdhbnR0RGF0YS5zbGljZSgwLCB0aGlzLmRhdGEuTWF4KTtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy51cGRhdGVWYWx1ZVZhcmlhYmxlKCk7XHJcblxyXG4gICAgICB0aGlzLnRvdGFsQ291bnQgPSB0aGlzLmdhbnR0RGF0YS5sZW5ndGg7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgY29uc29sZS53YXJuKCdObyBkYXRhIHByb3ZpZGVkIHRvIHNldERhdGE7IHJlY2VpdmVkIGEgbnVsbCBvciB1bmRlZmluZWQgcGFyYW1ldGVyLicpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB1cGRhdGVWYWx1ZVZhcmlhYmxlKCkge1xyXG4gICAgLy8gRXh0cmFjdCBhbmQgdHJpbSB0aGUgdmFsdWUgZnJvbSB0aGlzLmRhdGEudmFsdWUgaWYgaXQgZXhpc3RzXHJcbiAgICBjb25zdCBmaWVsZE5hbWUgPSB0aGlzLmRhdGEuVmFsdWUuc3BsaXQoJy4nKS5wb3AoKTsgLy8gR2V0cyB0aGUgbGFzdCBwYXJ0IGFmdGVyIHRoZSBsYXN0IGRvdFxyXG5cclxuICAgIGlmICghZmllbGROYW1lKSB7XHJcbiAgICAgIGNvbnNvbGUud2FybihgR2FudHQgQ2hhcnQgJHt0aGlzLmRhdGEuTmFtZX0gVmFsdWUgY291bGQgbm90IGJlIGRldGVybWluZWQuYCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICAvLyBEZXRlcm1pbmUgdGhlIHRhcmdldCBvYmplY3QgXHJcbiAgICBpZiAodGhpcy5kYXRhLlZhbHVlLmluY2x1ZGVzKCdncm91cC4nKSAmJiB0aGlzLmdyb3VwKSB7XHJcbiAgICAgIHRoaXMuZ3JvdXBbZmllbGROYW1lXSA9IHRoaXMuZ2FudHREYXRhO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIGlmICh0aGlzLmhhc093blByb3BlcnR5KGZpZWxkTmFtZSkpIHtcclxuICAgICAgICB0aGlzW2ZpZWxkTmFtZV0gPSB0aGlzLmdhbnR0RGF0YTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBlbnN1cmVEYXRlKGRhdGU6IHN0cmluZyB8IERhdGUpOiBEYXRlIHwgbnVsbCB7XHJcbiAgICAvLyBDaGVjayBpZiB0aGUgZGF0ZSBpcyBhbHJlYWR5IGEgRGF0ZSBvYmplY3RcclxuICAgIGlmIChkYXRlIGluc3RhbmNlb2YgRGF0ZSkge1xyXG4gICAgICByZXR1cm4gZGF0ZTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBJZiB0aGUgZGF0ZSBpcyBhIHN0cmluZywgY29udmVydCBpdCB0byBhIERhdGUgb2JqZWN0XHJcbiAgICBjb25zdCBwYXJzZWREYXRlID0gbmV3IERhdGUoZGF0ZSk7XHJcbiAgICBpZiAoIWlzTmFOKHBhcnNlZERhdGUuZ2V0VGltZSgpKSkge1xyXG4gICAgICByZXR1cm4gcGFyc2VkRGF0ZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIC8vIExvZyBhIHdhcm5pbmcgaWYgdGhlIGRhdGUgc3RyaW5nIGlzIGludmFsaWQgYW5kIHJldHVybiBhIGRlZmF1bHQgZGF0ZSBvciBudWxsXHJcbiAgICAgIC8vIGNvbnNvbGUud2FybihgSW52YWxpZCBkYXRlIGZvcm1hdDogJHtkYXRlfWApO1xyXG4gICAgICByZXR1cm4gbnVsbDsgLy8gb3IgcmV0dXJuIG51bGwgaWYgeW91IHByZWZlciB0byBoYW5kbGUgaW52YWxpZCBkYXRlcyBkaWZmZXJlbnRseVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBzZWxlY3RlZEtleXMoKTogbnVtYmVyW10ge1xyXG4gICAgcmV0dXJuIEFycmF5LmZyb20odGhpcy5zZWxlY3Rpb25TdGF0ZSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2VsZWN0aW9uU3RhdGU6IFNldDxhbnk+ID0gbmV3IFNldCgpO1xyXG5cclxuICBwdWJsaWMgaXNTZWxlY3RlZCA9IChkYXRhSXRlbTogYW55KTogYm9vbGVhbiA9PiB7XHJcbiAgICByZXR1cm4gdGhpcy5zZWxlY3Rpb25TdGF0ZS5oYXMoZGF0YUl0ZW1bdGhpcy5kYXRhLlVuaXF1ZUtleSA/PyBcIklkXCJdKTtcclxuICB9O1xyXG5cclxuICBwdWJsaWMgdG9nZ2xlU2VsZWN0aW9uKHtcclxuICAgIGRhdGFJdGVtLFxyXG4gICAgc2VuZGVyLFxyXG4gICAgb3JpZ2luYWxFdmVudCxcclxuICB9OiBDZWxsQ2xpY2tFdmVudCB8IFRhc2tDbGlja0V2ZW50KTogdm9pZCB7XHJcbiAgICAvLyBQcmV2ZW50cyBjb250ZXh0IG1lbnUgb3BlbmluZ1xyXG4gICAgb3JpZ2luYWxFdmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG5cclxuICAgIGNvbnN0IHVuaXF1ZUtleSA9IHRoaXMuZGF0YS5VbmlxdWVLZXkgPz8gXCJJZFwiO1xyXG5cclxuICAgIC8vIEZvciBmdXR1cmUgdG9nZ2xpbmcgbXVsdGkgc2VsZWN0IFxyXG4gICAgLy8gaWYgKHRoaXMuaXNTZWxlY3RlZChkYXRhSXRlbSkpIHtcclxuICAgIC8vICAgdGhpcy5zZWxlY3Rpb25TdGF0ZS5kZWxldGUoZGF0YUl0ZW1bdW5pcXVlS2V5XSk7XHJcbiAgICAvLyB9XHJcbiAgICAvLyBlbHNlIHtcclxuICAgIC8vICAgdGhpcy5zZWxlY3Rpb25TdGF0ZS5hZGQoZGF0YUl0ZW1bdW5pcXVlS2V5XSk7XHJcbiAgICAvLyB9XHJcblxyXG4gICAgdGhpcy5zZWxlY3Rpb25TdGF0ZSA9IG5ldyBTZXQ7XHJcbiAgICB0aGlzLnNlbGVjdGlvblN0YXRlLmFkZChkYXRhSXRlbVt1bmlxdWVLZXldKTtcclxuXHJcbiAgICAvLyBNYW51YWxseSB0cmlnZ2VyIHRoZSBHYW50dCB0byByZS1ldmFsdWF0ZSB0aGUgaXNTZWxlY3RlZCBjYWxsYmFjayBmb3IgZWFjaCB0YXNrXHJcbiAgICBzZW5kZXIudXBkYXRlVmlldygpO1xyXG5cclxuICAgIGlmICh0aGlzLmRhdGEuT25JdGVtQ2xpY2spIHtcclxuICAgICAgY29uc3QgZnVuYyA9IFpDb21wb25lbnRIZWxwZXIuZ2V0R3JvdXBFdmFsVmFsdWUuY2FsbCh0aGlzLCB0aGlzLmRhdGEuT25JdGVtQ2xpY2spO1xyXG4gICAgICBpZiAodHlwZW9mIGZ1bmMgPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgICBjb25zdCBjYWxsRnVuYyA9IGZ1bmMuYmluZCh0aGlzLmdyb3VwLmN0cmxTY29wZSk7XHJcbiAgICAgICAgY2FsbEZ1bmMoZGF0YUl0ZW0pO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBjbGVhclNlbGVjdGlvbigpOiB2b2lkIHtcclxuICAgIHRoaXMuc2VsZWN0aW9uU3RhdGUgPSBuZXcgU2V0O1xyXG4gIH1cclxufVxyXG4iLCI8a2VuZG8tZ2FudHQgW3N0eWxlLmhlaWdodC5weF09XCI1MDBcIlxyXG4gICAgICAgICAgICAgW2RhdGFdPVwiZ2FudHREYXRhXCJcclxuICAgICAgICAgICAgIGtlbmRvR2FudHRFeHBhbmRhYmxlXHJcbiAgICAgICAgICAgICBbaW5pdGlhbGx5RXhwYW5kZWRdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICBbdG9vbGJhclNldHRpbmdzXT1cInsgcG9zaXRpb246ICdib3RoJywgYWRkVGFza1Rvb2w6ICdub25lJyB9XCJcclxuICAgICAgICAgICAgIFthY3RpdmVWaWV3XT1cImFjdGl2ZVZpZXdcIlxyXG4gICAgICAgICAgICAgW3NvcnRhYmxlXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgW3NlbGVjdGFibGVdPVwic2VsZWN0YWJsZVwiXHJcbiAgICAgICAgICAgICBbaXNTZWxlY3RlZF09XCJpc1NlbGVjdGVkXCJcclxuICAgICAgICAgICAgIChjZWxsQ2xpY2spPVwidG9nZ2xlU2VsZWN0aW9uKCRldmVudClcIlxyXG4gICAgICAgICAgICAgKHRhc2tDbGljayk9XCJ0b2dnbGVTZWxlY3Rpb24oJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICBbdGltZWxpbmVQYW5lT3B0aW9uc109XCJ7IGNvbGxhcHNlZDogY29sbGFwc2VkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbGxhcHNpYmxlOiBjb2xsYXBzaWJsZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplOiB0aW1lbGluZVNpemVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVwiPlxyXG4gIDxrZW5kby1nYW50dC1jb2x1bW4gKm5nRm9yPVwibGV0IGNvbCBvZiBjb2x1bW5zO1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbZmllbGRdPVwiY29sLmZpZWxkXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCJjb2wudGl0bGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW3dpZHRoXT1cImNvbC53aWR0aFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbZm9ybWF0XT1cImNvbC5mb3JtYXRcIj5cclxuICA8L2tlbmRvLWdhbnR0LWNvbHVtbj5cclxuICA8bmctdGVtcGxhdGUga2VuZG9HYW50dFRvb2xiYXJUZW1wbGF0ZVxyXG4gICAgICAgICAgICAgICBwb3NpdGlvbj1cImJvdGhcIlxyXG4gICAgICAgICAgICAgICBsZXQtcG9zaXRpb249XCJwb3NpdGlvblwiPlxyXG4gICAgPGRpdiAqbmdJZj1cInBvc2l0aW9uID09PSAndG9wJ1wiIGNsYXNzPVwidG9vbGJhci10b3BcIj5cclxuICAgICAgPHNwYW4+e3tkYXRhLlRpdGxlfX08L3NwYW4+XHJcbiAgICAgIDxrZW5kby1nYW50dC12aWV3LXNlbGVjdG9yIFt2aWV3c109XCJ2aWV3c1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsoYWN0aXZlVmlldyldPVwiYWN0aXZlVmlld1wiPjwva2VuZG8tZ2FudHQtdmlldy1zZWxlY3Rvcj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiAqbmdJZj1cInBvc2l0aW9uID09PSAnYm90dG9tJ1wiIGNsYXNzPVwidG9vbGJhci1ib3R0b21cIj5cclxuICAgICAgPHNwYW4+VG90YWwge3t0b3RhbENvdW50fX0gcmVjb3Jkczwvc3Bhbj5cclxuICAgIDwvZGl2PlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcbiAgPGtlbmRvLWdhbnR0LXRpbWVsaW5lLWRheS12aWV3Pjwva2VuZG8tZ2FudHQtdGltZWxpbmUtZGF5LXZpZXc+XHJcbiAgPGtlbmRvLWdhbnR0LXRpbWVsaW5lLXdlZWstdmlldz48L2tlbmRvLWdhbnR0LXRpbWVsaW5lLXdlZWstdmlldz5cclxuICA8a2VuZG8tZ2FudHQtdGltZWxpbmUtbW9udGgtdmlldz48L2tlbmRvLWdhbnR0LXRpbWVsaW5lLW1vbnRoLXZpZXc+XHJcbiAgPGtlbmRvLWdhbnR0LXRpbWVsaW5lLXllYXItdmlldz48L2tlbmRvLWdhbnR0LXRpbWVsaW5lLXllYXItdmlldz5cclxuPC9rZW5kby1nYW50dD5cclxuIl19
|