ng-wsl-library 0.19.0 → 0.21.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/components/wsl-datetime-picker/wsl-datetime-picker.component.mjs +2 -2
- package/esm2020/lib/constants/datetime-picker.constants.mjs +6 -6
- package/fesm2015/ng-wsl-library.mjs +7 -7
- package/fesm2015/ng-wsl-library.mjs.map +1 -1
- package/fesm2020/ng-wsl-library.mjs +6 -6
- package/fesm2020/ng-wsl-library.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -339,7 +339,7 @@ export class WslDatetimePickerComponent {
|
|
|
339
339
|
generateCalendar() {
|
|
340
340
|
const firstDay = new Date(this.currentYear, this.currentMonth - 1, 1);
|
|
341
341
|
const startDate = new Date(firstDay);
|
|
342
|
-
const weekStart = this.dateConfig?.weekStart
|
|
342
|
+
const weekStart = (this.dateConfig?.weekStart ?? 1) % 7;
|
|
343
343
|
const dayOfWeek = (firstDay.getDay() + 7 - weekStart) % 7;
|
|
344
344
|
startDate.setDate(startDate.getDate() - dayOfWeek);
|
|
345
345
|
this.calendarDays = [];
|
|
@@ -856,4 +856,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
856
856
|
type: HostListener,
|
|
857
857
|
args: ['window:scroll', ['$event']]
|
|
858
858
|
}] } });
|
|
859
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3NsLWRhdGV0aW1lLXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy13c2wtbGlicmFyeS9zcmMvbGliL2NvbXBvbmVudHMvd3NsLWRhdGV0aW1lLXBpY2tlci93c2wtZGF0ZXRpbWUtcGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLXdzbC1saWJyYXJ5L3NyYy9saWIvY29tcG9uZW50cy93c2wtZGF0ZXRpbWUtcGlja2VyL3dzbC1kYXRldGltZS1waWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM1QixPQUFPLEVBQ0wsYUFBYSxHQUdkLE1BQU0sa0NBQWtDLENBQUM7QUFDMUMsT0FBTyxFQUVMLGlCQUFpQixFQUNqQixTQUFTLEdBQ1YsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQ0wsdUJBQXVCLEVBRXZCLFNBQVMsRUFFVCxZQUFZLEVBQ1osVUFBVSxFQUNWLFlBQVksRUFFWixLQUFLLEVBSUwsTUFBTSxHQUVQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBSXBFLE9BQU8sRUFBRSxjQUFjLEVBQTJCLE1BQU0sdUJBQXVCLENBQUM7QUFDaEYsT0FBTyxFQUNMLFVBQVUsRUFDVixrQkFBa0IsR0FDbkIsTUFBTSwyQ0FBMkMsQ0FBQzs7Ozs7O0FBK0JuRCxNQUFNLE9BQU8sMEJBQTBCO0lBa0dyQyxZQUNVLEdBQWEsRUFDYixhQUErQixFQUMvQixHQUFzQixFQUN0QixLQUFpQjtRQUhqQixRQUFHLEdBQUgsR0FBRyxDQUFVO1FBQ2Isa0JBQWEsR0FBYixhQUFhLENBQWtCO1FBQy9CLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQ3RCLFVBQUssR0FBTCxLQUFLLENBQVk7UUFoR25CLG1CQUFjLEdBQUcsS0FBSyxDQUFDO1FBYXRCLGNBQVMsR0FBVyxVQUFVLENBQUMsS0FBSyxDQUFDO1FBQ3JDLGdCQUFXLEdBQVcsVUFBVSxDQUFDLE9BQU8sQ0FBQztRQUN6QyxnQkFBVyxHQUFXLFVBQVUsQ0FBQyxPQUFPLENBQUM7UUFDekMsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUdqQixvQkFBZSxHQUFHLEtBQUssQ0FBQztRQUN4QixxQkFBZ0IsR0FBeUIsU0FBUyxDQUFDO1FBZ0I1RCxtQkFBYyxHQUFXLGtCQUFrQixDQUFDLFNBQVMsQ0FBQztRQUM5QyxvQkFBZSxHQUFXLGtCQUFrQixDQUFDLFlBQVksQ0FBQztRQUVsRSxnQkFBVyxHQUFHLEVBQUUsQ0FBQztRQUNqQixjQUFTLEdBQW9DLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLENBQUM7UUFDbkUseUJBQW9CLEdBQUcsS0FBSyxDQUFDO1FBQzdCLGFBQVEsR0FBa0IsSUFBSSxhQUFhLEVBQUUsQ0FBQztRQUM5QyxjQUFTLEdBQXFCLElBQUksQ0FBQztRQUd6QixpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFDMUMsd0JBQW1CLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUNwRCxjQUFTLEdBQWUsSUFBSSxDQUFDO1FBQzdCLGFBQVEsR0FBcUIsSUFBSSxDQUFDO1FBRzFDLHFCQUFnQixHQUFHLEtBQUssQ0FBQztRQUNqQixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLG1CQUFjLEdBQUcsS0FBSyxDQUFDO1FBRS9CLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBR3JCLGlCQUFZLEdBQWtCLEVBQUUsQ0FBQztRQUNqQyxrQkFBYSxHQUFhLEVBQUUsQ0FBQztRQUU3QiwwQkFBcUIsR0FBRyxFQUFFLENBQUM7UUFFM0IsV0FBTSxHQUFhLEVBQUUsQ0FBQztRQUN0QixVQUFLLEdBQWEsRUFBRSxDQUFDO1FBQ3JCLHFCQUFnQixHQUFHLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLENBQUM7UUF3QjlDLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFRakIsTUFBTSxXQUFXLEdBQUcsY0FBYyxFQUFFLENBQUM7UUFDckMsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxZQUFZLEdBQUcsV0FBVyxDQUFDLEtBQUssQ0FBQztRQUV0QyxJQUFJLENBQUMsVUFBVSxHQUFHLG1CQUFtQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBRTVDLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUMsYUFBYTthQUMzQyxhQUFhLEVBQUU7YUFDZixTQUFTLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtZQUN0QixJQUFJO2dCQUNGLElBQUksQ0FBQyxVQUFVLEdBQUcsbUJBQW1CLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxDQUFDO2dCQUN4RCxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztnQkFDM0IsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO2FBQ3ZCO1lBQUMsT0FBTyxLQUFLLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLFVBQVUsR0FBRyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDNUMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7Z0JBQzNCLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQzthQUN2QjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQW5IRCxJQUNJLG1CQUFtQixDQUFDLEtBQXlCO1FBQy9DLElBQUksSUFBSSxDQUFDLG9CQUFvQixLQUFLLEtBQUs7WUFBRSxPQUFPO1FBQ2hELElBQUksQ0FBQyxvQkFBb0IsR0FBRyxLQUFLLENBQUM7UUFDbEMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFRCxJQUFJLG1CQUFtQjtRQUNyQixPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQztJQUNuQyxDQUFDO0lBYUQsSUFDSSxZQUFZLENBQUMsS0FBc0I7UUFDckMsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7UUFDM0IsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ3ZCLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7U0FDekI7SUFDSCxDQUFDO0lBRUQsSUFBSSxZQUFZO1FBQ2QsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQzVCLENBQUM7SUFrQ0QsSUFDSSxjQUFjLENBQUMsS0FBYTtRQUM5QixJQUFJLElBQUksQ0FBQyxlQUFlLEtBQUssS0FBSztZQUFFLE9BQU87UUFDM0MsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUM7UUFDN0IsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFRCxJQUFJLGNBQWM7UUFDaEIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDO0lBQzlCLENBQUM7SUFFRCxJQUNJLE9BQU8sQ0FBQyxLQUFjO1FBQ3hCLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxLQUFLO1lBQUUsT0FBTztRQUNwQyxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUN0QixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVELElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN2QixDQUFDO0lBZ0NELGVBQWUsQ0FBQyxLQUFZO1FBQzFCLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNyQixNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBcUIsQ0FBQztZQUMzQyxNQUFNLGVBQWUsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLG1CQUFtQixDQUFDLENBQUM7WUFDcEUsTUFBTSxhQUFhLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBRS9ELElBQ0UsZUFBZTtnQkFDZixhQUFhO2dCQUNiLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUM7Z0JBQ2pDLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFDL0I7Z0JBQ0EsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO2FBQ3RCO1NBQ0Y7SUFDSCxDQUFDO0lBR0QsY0FBYztRQUNaLElBQUksSUFBSSxDQUFDLFlBQVksSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEtBQUssU0FBUyxFQUFFO1lBQzVELElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO1NBQ2pDO0lBQ0gsQ0FBQztJQUdELGNBQWM7UUFDWixJQUFJLElBQUksQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLGdCQUFnQixLQUFLLFNBQVMsRUFBRTtZQUM1RCxJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztTQUNqQztJQUNILENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN6QyxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztRQUMzQixJQUFJLENBQUMsK0JBQStCLEVBQUUsQ0FBQztRQUN2QyxJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztRQUNoQyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztRQUMzQixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRU8sK0JBQStCO1FBQ3JDLElBQUk7WUFDRixNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQztZQUNwRCxJQUFJLENBQUMsVUFBVSxHQUFHLG1CQUFtQixDQUFDLGVBQWUsSUFBSSxJQUFJLENBQUMsQ0FBQztZQUMvRCxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztTQUM1QjtRQUFDLE9BQU8sS0FBSyxFQUFFO1lBQ2QsSUFBSSxDQUFDLFVBQVUsR0FBRyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUM1QyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztTQUM1QjtJQUNILENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFO1lBQzVDLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO1lBQ2hDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7U0FDekI7UUFDRCxJQUFJLE9BQU8sQ0FBQyxjQUFjLENBQUMsRUFBRTtZQUMzQixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztTQUN6QjtJQUNILENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxJQUFJLENBQUMsb0JBQW9CLEVBQUU7WUFDN0IsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ3pDO0lBQ0gsQ0FBQztJQUVELGNBQWMsQ0FBQyxLQUFZO1FBQ3pCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUU7WUFDM0MsSUFBSSxDQUFDLFlBQVksR0FBRyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUM7WUFDdkMsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO2dCQUNyQixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztnQkFDeEIsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEtBQUssU0FBUyxFQUFFO29CQUN2QyxJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztvQkFDaEMsbUNBQW1DO29CQUNuQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO2lCQUMzRDtxQkFBTTtvQkFDTCxJQUFJLENBQUMscUJBQXFCLEdBQUcsRUFBRSxDQUFDO2lCQUNqQzthQUNGO1lBQ0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUV4QixVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUNkLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ25ELENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztTQUNQO0lBQ0gsQ0FBQztJQUVELGFBQWE7UUFDWCxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztRQUMxQixJQUFJLENBQUMsb0JBQW9CLEdBQUcsS0FBSyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7UUFFeEIsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ1IsQ0FBQztJQUVPLHdCQUF3QjtRQUM5QixVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQztZQUNsRCxNQUFNLGVBQWUsR0FBRyxnQkFBZ0IsRUFBRSxhQUFhLENBQ3JELG1CQUFtQixDQUNMLENBQUM7WUFFakIsSUFBSSxDQUFDLGdCQUFnQixJQUFJLENBQUMsZUFBZTtnQkFBRSxPQUFPO1lBRWxELE1BQU0sYUFBYSxHQUFHLGdCQUFnQixDQUFDLHFCQUFxQixFQUFFLENBQUM7WUFDL0QsTUFBTSxtQkFBbUIsR0FBRyxnQkFBZ0IsQ0FBQyxhQUFhLENBQ3hELGdCQUFnQixDQUNGLENBQUM7WUFDakIsTUFBTSxRQUFRLEdBQ1osbUJBQW1CLEVBQUUscUJBQXFCLEVBQUUsSUFBSSxhQUFhLENBQUM7WUFDaEUsTUFBTSxhQUFhLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQztZQUN4QyxNQUFNLGNBQWMsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDO1lBQzFDLE1BQU0sUUFBUSxHQUFHLGFBQWEsSUFBSSxHQUFHLENBQUM7WUFFdEMsTUFBTSxhQUFhLEdBQUcsUUFBUTtnQkFDNUIsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLFdBQVcsSUFBSSxHQUFHLEVBQUUsYUFBYSxHQUFHLEVBQUUsQ0FBQztnQkFDbEUsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxXQUFXLElBQUksR0FBRyxDQUFDO1lBQ3ZDLE1BQU0sY0FBYyxHQUFHLGVBQWUsQ0FBQyxZQUFZLElBQUksR0FBRyxDQUFDO1lBRTNELElBQUksUUFBUSxFQUFFO2dCQUNaLElBQUksQ0FBQyxzQkFBc0IsQ0FDekIsZUFBZSxFQUNmLFFBQVEsRUFDUixhQUFhLEVBQ2IsYUFBYSxDQUNkLENBQUM7Z0JBQ0YsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLHdCQUF3QixDQUNqRCxhQUFhLEVBQ2IsY0FBYyxFQUNkLGNBQWMsQ0FDZixDQUFDO2dCQUNGLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxhQUFhLENBQUM7YUFDNUM7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGVBQWUsQ0FBQyxDQUFDO2dCQUN4QyxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsMEJBQTBCLENBQ3JELGFBQWEsRUFDYixhQUFhLEVBQ2IsYUFBYSxFQUNiLFFBQVEsQ0FDVCxDQUFDO2dCQUNGLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyx3QkFBd0IsQ0FDakQsYUFBYSxFQUNiLGNBQWMsRUFDZCxjQUFjLENBQ2YsQ0FBQztnQkFDRixJQUFJLENBQUMscUJBQXFCO29CQUN4QixHQUFHLGVBQWUsSUFBSSxhQUFhLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQzthQUNoRDtZQUNELElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDMUIsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ1IsQ0FBQztJQUVPLHNCQUFzQixDQUM1QixPQUFvQixFQUNwQixRQUFpQixFQUNqQixhQUFxQixFQUNyQixhQUFxQjtRQUVyQixNQUFNLE9BQU8sR0FBRyxFQUFFLENBQUM7UUFDbkIsTUFBTSxrQkFBa0IsR0FDdEIsUUFBUSxDQUFDLEtBQUssR0FBRyxhQUFhLEdBQUcsT0FBTyxHQUFHLGFBQWEsQ0FBQztRQUMzRCxNQUFNLGlCQUFpQixHQUFHLFFBQVEsQ0FBQyxJQUFJLEdBQUcsYUFBYSxHQUFHLE9BQU8sR0FBRyxDQUFDLENBQUM7UUFFdEUsSUFBSSxrQkFBa0IsSUFBSSxpQkFBaUIsRUFBRTtZQUMzQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxHQUFHLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDO1lBQ2hFLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQztTQUM5QjthQUFNLElBQUksa0JBQWtCLEVBQUU7WUFDN0IsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDO1lBQzdCLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQztTQUMzQjthQUFNLElBQUksaUJBQWlCLEVBQUU7WUFDNUIsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDO1lBQ3pCLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQztTQUMvQjthQUFNO1lBQ0wsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDO1lBQzdCLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQztTQUMzQjtRQUVELE9BQU8sQ0FBQyxLQUFLLENBQUMsUUFBUSxHQUFHLEdBQUcsYUFBYSxJQUFJLENBQUM7UUFDOUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxTQUFTLEdBQUcsbUJBQW1CLENBQUM7SUFDaEQsQ0FBQztJQUVPLGlCQUFpQixDQUFDLE9BQW9CO1FBQzVDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUN4QixPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7UUFDekIsT0FBTyxDQUFDLEtBQUssQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO1FBQzVCLE9BQU8sQ0FBQyxLQUFLLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRU8sd0JBQXdCLENBQUMsTUFBZTtRQUM5QyxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDO1FBQ2xELElBQUksQ0FBQyxnQkFBZ0I7WUFBRSxPQUFPO1FBRTlCLE1BQU0sZUFBZSxHQUFHLGdCQUFnQixDQUFDLGFBQWEsQ0FDcEQsbUJBQW1CLENBQ0wsQ0FBQztRQUNqQixJQUFJLENBQUMsZUFBZTtZQUFFLE9BQU87UUFFN0IsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLFVBQVUsSUFBSSxHQUFHLENBQUM7UUFDMUMsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFFBQVEsQ0FDdkQsdUJBQXVCLENBQ3hCLENBQUM7UUFFRixJQUNFLFFBQVE7WUFDUixJQUFJLENBQUMscUJBQXFCLENBQUMsUUFBUSxDQUFDLHdCQUF3QixDQUFDLEVBQzdEO1lBQ0Esa0RBQWtEO1lBQ2xELElBQUksTUFBTSxFQUFFO2dCQUNWLGVBQWUsQ0FBQyxLQUFLLENBQUMsU0FBUyxHQUFHLGFBQWE7b0JBQzdDLENBQUMsQ0FBQyxlQUFlO29CQUNqQixDQUFDLENBQUMsZUFBZSxDQUFDO2FBQ3JCO2lCQUFNO2dCQUNMLGVBQWUsQ0FBQyxLQUFLLENBQUMsU0FBUyxHQUFHLGFBQWE7b0JBQzdDLENBQUMsQ0FBQyxrQkFBa0I7b0JBQ3BCLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQzthQUN6QjtTQUNGO0lBQ0gsQ0FBQztJQUVPLDBCQUEwQixDQUNoQyxhQUFzQixFQUN0QixhQUFxQixFQUNyQixhQUFxQixFQUNyQixRQUFpQjtRQUVqQixJQUFJLFFBQVEsRUFBRTtZQUNaLE1BQU0sYUFBYSxHQUFHLEVBQUUsQ0FBQztZQUV6QiwwRUFBMEU7WUFDMUUsTUFBTSxrQkFBa0IsR0FDdEIsYUFBYSxDQUFDLEtBQUssR0FBRyxhQUFhLEdBQUcsYUFBYSxHQUFHLGFBQWEsQ0FBQztZQUV0RSxvRUFBb0U7WUFDcEUsTUFBTSxpQkFBaUIsR0FDckIsYUFBYSxDQUFDLElBQUksR0FBRyxhQUFhLEdBQUcsYUFBYSxHQUFHLENBQUMsQ0FBQztZQUV6RCxJQUFJLGtCQUFrQixJQUFJLGlCQUFpQixFQUFFO2dCQUMzQyxzQ0FBc0M7Z0JBQ3RDLE9BQU8sd0JBQXdCLENBQUM7YUFDakM7WUFFRCxJQUFJLENBQUMsa0JBQWtCLEVBQUU7Z0JBQ3ZCLGlGQUFpRjtnQkFDakYsT0FBTyxzQkFBc0IsQ0FBQzthQUMvQjtZQUVELDZEQUE2RDtZQUM3RCxPQUFPLHFCQUFxQixDQUFDO1NBQzlCO1FBRUQsZ0JBQWdCO1FBQ2hCLE1BQU0sa0JBQWtCLEdBQ3RCLGFBQWEsQ0FBQyxLQUFLLEdBQUcsYUFBYSxHQUFHLGFBQWEsQ0FBQztRQUV0RCxJQUFJLENBQUMsa0JBQWtCLEVBQUU7WUFDdkIsT0FBTyxFQUFFLENBQUMsQ0FBQyw4Q0FBOEM7U0FDMUQ7UUFFRCxNQUFNLFNBQVMsR0FBRyxhQUFhLENBQUMsSUFBSSxDQUFDO1FBQ3JDLElBQUksU0FBUyxJQUFJLGFBQWEsRUFBRTtZQUM5QixPQUFPLHFCQUFxQixDQUFDLENBQUMsNEJBQTRCO1NBQzNEO1FBRUQsT0FBTyxFQUFFLENBQUMsQ0FBQywwQkFBMEI7SUFDdkMsQ0FBQztJQUVPLHdCQUF3QixDQUM5QixhQUFzQixFQUN0QixjQUFzQixFQUN0QixjQUFzQjtRQUV0QixNQUFNLFVBQVUsR0FBRyxjQUFjLEdBQUcsYUFBYSxDQUFDLE1BQU0sQ0FBQztRQUN6RCxNQUFNLFVBQVUsR0FBRyxhQUFhLENBQUMsR0FBRyxDQUFDO1FBRXJDLElBQUksVUFBVSxJQUFJLGNBQWM7WUFBRSxPQUFPLDBCQUEwQixDQUFDO1FBQ3BFLElBQUksVUFBVSxJQUFJLGNBQWM7WUFBRSxPQUFPLHVCQUF1QixDQUFDO1FBQ2pFLE9BQU8sVUFBVSxJQUFJLFVBQVU7WUFDN0IsQ0FBQyxDQUFDLDBCQUEwQjtZQUM1QixDQUFDLENBQUMsdUJBQXVCLENBQUM7SUFDOUIsQ0FBQztJQUVELGFBQWEsQ0FBQyxTQUFpQjtRQUM3QixJQUFJLENBQUMsWUFBWSxJQUFJLFNBQVMsQ0FBQztRQUMvQixJQUFJLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxFQUFFO1lBQzFCLElBQUksQ0FBQyxZQUFZLEdBQUcsQ0FBQyxDQUFDO1lBQ3RCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUNwQjthQUFNLElBQUksSUFBSSxDQUFDLFlBQVksR0FBRyxDQUFDLEVBQUU7WUFDaEMsSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7WUFDdkIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ3BCO1FBRUQsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzFDLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELFVBQVUsQ0FBQyxHQUFnQjtRQUN6QixJQUFJLEdBQUcsQ0FBQyxRQUFRO1lBQUUsT0FBTztRQUV6QixNQUFNLFlBQVksR0FBa0I7WUFDbEMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxJQUFJO1lBQ2QsS0FBSyxFQUFFLEdBQUcsQ0FBQyxLQUFLO1lBQ2hCLEdBQUcsRUFBRSxHQUFHLENBQUMsR0FBRztTQUNiLENBQUM7UUFFRixJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELGdCQUFnQjtRQUNkLE1BQU0sUUFBUSxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLFlBQVksR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDdEUsTUFBTSxTQUFTLEdBQUcsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFckMsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxTQUFTLElBQUksQ0FBQyxDQUFDO1FBQ2xELE1BQU0sU0FBUyxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsR0FBRyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDMUQsU0FBUyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLEdBQUcsU0FBUyxDQUFDLENBQUM7UUFFbkQsSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7UUFDdkIsTUFBTSxTQUFTLEdBQUcsY0FBYyxFQUFFLENBQUM7UUFDbkMsTUFBTSxLQUFLLEdBQUcsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsS0FBSyxHQUFHLENBQUMsRUFBRSxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFM0UsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUMzQixNQUFNLFdBQVcsR0FBRyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUN4QyxXQUFXLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUU3QyxNQUFNLFNBQVMsR0FBa0I7Z0JBQy9CLElBQUksRUFBRSxXQUFXLENBQUMsV0FBVyxFQUFFO2dCQUMvQixLQUFLLEVBQUUsV0FBVyxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUM7Z0JBQ2pDLEdBQUcsRUFBRSxXQUFXLENBQUMsT0FBTyxFQUFFO2FBQzNCLENBQUM7WUFFRixNQUFNLFdBQVcsR0FBZ0I7Z0JBQy9CLEdBQUcsRUFBRSxXQUFXLENBQUMsT0FBTyxFQUFFO2dCQUMxQixLQUFLLEVBQUUsV0FBVyxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUM7Z0JBQ2pDLElBQUksRUFBRSxXQUFXLENBQUMsV0FBVyxFQUFFO2dCQUMvQixVQUFVLEVBQUUsV0FBVyxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsS0FBSyxJQUFJLENBQUMsWUFBWTtnQkFDNUQsUUFBUSxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDO2dCQUN4QyxRQUFRLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUM7Z0JBQ3hDLEtBQUssRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsRUFBRSxLQUFLLENBQUM7YUFDM0MsQ0FBQztZQUVGLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1NBQ3JDO0lBQ0gsQ0FBQztJQUVPLGNBQWMsQ0FBQyxJQUFtQjtRQUN4QyxPQUFPLENBQUMsQ0FBQyxDQUNQLElBQUksQ0FBQyxRQUFRO1lBQ2IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLElBQUk7WUFDaEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEtBQUssSUFBSSxDQUFDLEtBQUs7WUFDbEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FDL0IsQ0FBQztJQUNKLENBQUM7SUFFTyxjQUFjLENBQUMsSUFBbUI7UUFDeEMsTUFBTSxZQUFZLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbkUsTUFBTSxTQUFTLEdBQUcsY0FBYyxFQUFFLENBQUM7UUFDbkMsTUFBTSxLQUFLLEdBQUcsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsS0FBSyxHQUFHLENBQUMsRUFBRSxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDM0UsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUUzQixJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDaEIsTUFBTSxPQUFPLEdBQUcsSUFBSSxJQUFJLENBQ3RCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUNqQixJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssR0FBRyxDQUFDLEVBQ3RCLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUNqQixDQUFDO1lBQ0YsSUFBSSxZQUFZLEdBQUcsT0FBTyxFQUFFO2dCQUMxQixPQUFPLElBQUksQ0FBQzthQUNiO1NBQ0Y7UUFFRCxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDaEIsTUFBTSxPQUFPLEdBQUcsSUFBSSxJQUFJLENBQ3RCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUNqQixJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssR0FBRyxDQUFDLEVBQ3RCLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUNqQixDQUFDO1lBQ0YsSUFBSSxZQUFZLEdBQUcsT0FBTyxFQUFFO2dCQUMxQixPQUFPLElBQUksQ0FBQzthQUNiO1NBQ0Y7UUFFRCxJQUNFLElBQUksQ0FBQyxZQUFZO1lBQ2pCLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxLQUFLLENBQUM7WUFDOUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLEVBQy9CO1lBQ0EsT0FBTyxZQUFZLEdBQUcsS0FBSyxDQUFDO1NBQzdCO1FBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ3hELE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFFRCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FDdEMsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUNiLFVBQVUsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLElBQUk7WUFDN0IsVUFBVSxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUMsS0FBSztZQUMvQixVQUFVLENBQUMsR0FBRyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQzlCLENBQUM7UUFFRixPQUFPLENBQUMsU0FBUyxDQUFDO0lBQ3BCLENBQUM7SUFFTyxVQUFVLENBQUMsS0FBVyxFQUFFLEtBQVc7UUFDekMsT0FBTyxDQUNMLEtBQUssQ0FBQyxXQUFXLEVBQUUsS0FBSyxLQUFLLENBQUMsV0FBVyxFQUFFO1lBQzNDLEtBQUssQ0FBQyxRQUFRLEVBQUUsS0FBSyxLQUFLLENBQUMsUUFBUSxFQUFFO1lBQ3JDLEtBQUssQ0FBQyxPQUFPLEVBQUUsS0FBSyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQ3BDLENBQUM7SUFDSixDQUFDO0lBRUQsWUFBWSxDQUFDLEtBQWE7UUFDeEIsTUFBTSxVQUFVLEdBQUcsS0FBSyxHQUFHLENBQUMsQ0FBQztRQUM3QixPQUFPLENBQ0wsSUFBSSxDQUFDLFVBQVUsRUFBRSxVQUFVLEVBQUUsQ0FBQyxVQUFVLENBQUM7WUFDekMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUNqRCxDQUFDO0lBQ0osQ0FBQztJQUVPLG1CQUFtQjtRQUN6QixJQUFJLENBQUMsYUFBYTtZQUNoQixJQUFJLENBQUMsVUFBVSxFQUFFLGFBQWEsSUFBSSxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxhQUFhLENBQUM7SUFDOUUsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUFzQyxFQUFFLElBQVk7UUFDN0QsSUFBSSxJQUFJLENBQUMsUUFBUTtZQUFFLE9BQU87UUFFMUIsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDL0MsSUFBSSxRQUFnQixDQUFDO1FBRXJCLElBQUksSUFBSSxHQUFHLENBQUMsRUFBRTtZQUNaLFFBQVEsR0FBRyxZQUFZLEdBQUcsSUFBSSxDQUFDO1NBQ2hDO2FBQU07WUFDTCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2hDLFFBQVEsR0FBRyxZQUFZLEdBQUcsUUFBUSxDQUFDO1NBQ3BDO1FBRUQsUUFBUSxLQUFLLEVBQUU7WUFDYixLQUFLLE9BQU87Z0JBQ1YsSUFBSSxRQUFRLEdBQUcsQ0FBQyxFQUFFO29CQUNoQixRQUFRLEdBQUcsRUFBRSxHQUFHLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQyxDQUFDO2lCQUNqQztxQkFBTSxJQUFJLFFBQVEsR0FBRyxFQUFFLEVBQUU7b0JBQ3hCLFFBQVEsR0FBRyxRQUFRLEdBQUcsRUFBRSxDQUFDO2lCQUMxQjtnQkFDRCxNQUFNO1lBQ1IsS0FBSyxTQUFTLENBQUM7WUFDZixLQUFLLFNBQVM7Z0JBQ1osSUFBSSxRQUFRLEdBQUcsQ0FBQyxFQUFFO29CQUNoQixRQUFRLEdBQUcsRUFBRSxHQUFHLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQyxDQUFDO2lCQUNqQztxQkFBTSxJQUFJLFFBQVEsR0FBRyxFQUFFLEVBQUU7b0JBQ3hCLFFBQVEsR0FBRyxRQUFRLEdBQUcsRUFBRSxDQUFDO2lCQUMxQjtnQkFDRCxNQUFNO1NBQ1Q7UUFFRCxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLFFBQVEsQ0FBQztRQUNoQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUMxQixJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxpQkFBaUIsQ0FDZixLQUFzQyxFQUN0QyxLQUFZO1FBRVosTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLE1BQTBCLENBQUM7UUFDL0MsSUFBSSxLQUFLLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFdEMsSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDaEIsS0FBSyxHQUFHLENBQUMsQ0FBQztTQUNYO1FBRUQsUUFBUSxLQUFLLEVBQUU7WUFDYixLQUFLLE9BQU87Z0JBQ1YsSUFBSSxLQUFLLEdBQUcsQ0FBQztvQkFBRSxLQUFLLEdBQUcsQ0FBQyxDQUFDO2dCQUN6QixJQUFJLEtBQUssR0FBRyxFQUFFO29CQUFFLEtBQUssR0FBRyxFQUFFLENBQUM7Z0JBQzNCLE1BQU07WUFDUixLQUFLLFNBQVMsQ0FBQztZQUNmLEtBQUssU0FBUztnQkFDWixJQUFJLEtBQUssR0FBRyxDQUFDO29CQUFFLEtBQUssR0FBRyxDQUFDLENBQUM7Z0JBQ3pCLElBQUksS0FBSyxHQUFHLEVBQUU7b0JBQUUsS0FBSyxHQUFHLEVBQUUsQ0FBQztnQkFDM0IsTUFBTTtTQUNUO1FBRUQsS0FBSyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUVoRCxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLEtBQUssQ0FBQztRQUM3QixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRU8sY0FBYztRQUNwQixJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsSUFBSSxJQUFJLENBQUMsY0FBYztZQUFFLE9BQU87UUFFeEQsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7UUFDM0IsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDO1lBQzVCLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBQzdCLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNSLENBQUM7SUFFTyxtQkFBbUI7UUFDekIsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7UUFDNUIsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVPLG9CQUFvQjtRQUMxQixJQUFJLElBQUksQ0FBQyxtQkFBbUIsRUFBRTtZQUM1QixNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1lBRXJFLElBQUksQ0FBQyxhQUFhLEVBQUU7Z0JBQ2xCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7Z0JBQzlCLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO2dCQUN0QixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztnQkFDdkIsT0FBTzthQUNSO1lBRUQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQztZQUM3QixJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztZQUN4QixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDMUQ7YUFBTTtZQUNMLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1lBQ3RDLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO1NBQ2xDO0lBQ0gsQ0FBQztJQUVPLGVBQWUsQ0FBQyxNQUFjO1FBQ3BDLE9BQU8sQ0FDTCxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQztZQUN0QixNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQztZQUN0QixNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQztZQUN0QixNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUN2QixDQUFDO0lBQ0osQ0FBQztJQUVPLGlCQUFpQjtRQUN2QixJQUFJLENBQUMsY0FBYztZQUNqQixJQUFJLENBQUMsbUJBQW1CLElBQUksa0JBQWtCLENBQUMsU0FBUyxDQUFDO1FBQzNELElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQztRQUUzQyxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxFQUFFO1lBQ3hFLElBQUksQ0FBQyxlQUFlLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7U0FDaEU7SUFDSCxDQUFDO0lBRU8sY0FBYztRQUNwQixJQUFJLENBQUMsV0FBVztZQUNkLElBQUksQ0FBQyxVQUFVLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRTtnQkFDM0Msa0JBQWtCLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBRTdDLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQ3pCLElBQUksQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7U0FDNUQ7SUFDSCxDQUFDO0lBRUQsVUFBVSxDQUFDLFFBQWdCO1FBQ3pCLElBQUksUUFBUSxFQUFFO1lBQ1osTUFBTSxXQUFXLEdBQUcsYUFBYSxDQUFDLGVBQWUsQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFFbkUsSUFBSSxXQUFXLElBQUksT0FBTyxXQUFXLENBQUMsSUFBSSxLQUFLLFFBQVEsRUFBRTtnQkFDdkQsSUFBSSxDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUMzQixJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksYUFBYSxFQUFFLEVBQ3BDLFdBQVcsQ0FDWixDQUFDO2dCQUNGLElBQUksQ0FBQyxVQUFVLEdBQUcsUUFBUSxDQUFDO2dCQUMzQixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQzthQUMzQjtTQUNGO2FBQU07WUFDTCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksYUFBYSxFQUFFLENBQUM7WUFDcEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7WUFDckIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztTQUN6QjtJQUNILENBQUM7SUFFRCxRQUFRLENBQUMsS0FBaUM7UUFDeEMsSUFBSSxLQUFLLEVBQUUsT0FBTyxJQUFJLEtBQUssRUFBRSxPQUFPLENBQUMsS0FBSyxLQUFLLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ2hFLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDM0M7SUFDSCxDQUFDO0lBRUQsVUFBVSxDQUNSLEtBQXNCO1FBS3RCLE9BQU8sQ0FBQyxVQUF5QixFQUFFLEVBQUU7WUFDbkMsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDO1lBQy9DLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1lBQzFCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDL0MsSUFBSSxDQUFDLFlBQVksR0FBRyxvQkFBb0IsQ0FBQztZQUN6QyxPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDLENBQUM7SUFDSixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsRUFBYztRQUM3QixJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsaUJBQWlCLENBQUMsRUFBYztRQUM5QixJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQsbUJBQW1CLENBQUMsS0FBWTtRQUM5QixJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsRUFBRTtZQUN2QixJQUFJLENBQUMsb0JBQW9CLEdBQUcsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUM7WUFDdkQsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1NBQ3pCO0lBQ0gsQ0FBQztJQUVELGdCQUFnQixDQUFFLFVBQW1CO1FBQ25DLElBQUksQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDO1FBQzNCLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVPLFlBQVk7UUFDbEIsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLE1BQU0sRUFBRTtZQUMzQixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDM0QsSUFBSSxLQUFLLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUNyQixPQUFPLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNqQjtTQUNGO1FBQ0QsT0FBTyxJQUFJLENBQUMsVUFBVSxFQUFFLGFBQWEsSUFBSSxHQUFHLENBQUM7SUFDL0MsQ0FBQztJQUVPLFNBQVMsQ0FBQyxLQUFhO1FBQzdCLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDVixPQUFPLElBQUksQ0FBQztTQUNiO1FBRUQsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3RDLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFcEMsSUFBSSxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUNuQixPQUFPLElBQUksQ0FBQztTQUNiO1FBRUQsSUFBSTtZQUNGLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUU7Z0JBQzdCLE1BQU0sR0FBRyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQ2xDLE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQ3BDLE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBRW5DLElBQ0UsS0FBSyxDQUFDLEdBQUcsQ0FBQztvQkFDVixLQUFLLENBQUMsS0FBSyxDQUFDO29CQUNaLEtBQUssQ0FBQyxJQUFJLENBQUM7b0JBQ1gsR0FBRyxHQUFHLENBQUM7b0JBQ1AsR0FBRyxHQUFHLEVBQUU7b0JBQ1IsS0FBSyxHQUFHLENBQUM7b0JBQ1QsS0FBSyxHQUFHLEVBQUUsRUFDVjtvQkFDQSxPQUFPLElBQUksQ0FBQztpQkFDYjtnQkFFRCxPQUFPLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQzthQUM3QjtpQkFBTTtnQkFDTCxvREFBb0Q7Z0JBQ3BELE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQ25DLE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQ3BDLE1BQU0sR0FBRyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBRWxDLElBQ0UsS0FBSyxDQUFDLEdBQUcsQ0FBQztvQkFDVixLQUFLLENBQUMsS0FBSyxDQUFDO29CQUNaLEtBQUssQ0FBQyxJQUFJLENBQUM7b0JBQ1gsR0FBRyxHQUFHLENBQUM7b0JBQ1AsR0FBRyxHQUFHLEVBQUU7b0JBQ1IsS0FBSyxHQUFHLENBQUM7b0JBQ1QsS0FBSyxHQUFHLEVBQUUsRUFDVjtvQkFDQSxPQUFPLElBQUksQ0FBQztpQkFDYjtnQkFFRCxPQUFPLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsQ0FBQzthQUM3QjtTQUNGO1FBQUMsT0FBTyxLQUFLLEVBQUU7WUFDZCxPQUFPLElBQUksQ0FBQztTQUNiO0lBQ0gsQ0FBQztJQUVPLFVBQVUsQ0FBQyxJQUEwQjtRQUMzQyxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ1QsT0FBTyxFQUFFLENBQUM7U0FDWDtRQUVELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN0QyxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDMUUsTUFBTSxjQUFjLEdBQ2xCLElBQUksQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUM3RCxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBRTNDLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUU7WUFDN0IsT0FBTyxHQUFHLFlBQVksR0FBRyxTQUFTLEdBQUcsY0FBYyxHQUFHLFNBQVMsR0FBRyxhQUFhLEVBQUUsQ0FBQztTQUNuRjtRQUVELE9BQU8sR0FBRyxhQUFhLEdBQUcsU0FBUyxHQUFHLGNBQWMsR0FBRyxTQUFTLEdBQUcsWUFBWSxFQUFFLENBQUM7SUFDcEYsQ0FBQztJQUVELGFBQWEsQ0FBQyxLQUFZO1FBQ3hCLE1BQU0sS0FBSyxHQUFJLEtBQUssQ0FBQyxNQUEyQixDQUFDLEtBQUssQ0FBQztRQUV2RCxJQUFJLEtBQUssQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUU7WUFDdkIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLGFBQWEsRUFBRSxDQUFDO1lBQ3BDLElBQUksQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQy9CLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDeEIsT0FBTztTQUNSO1FBRUQsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6QyxJQUFJLFVBQVUsRUFBRTtZQUNkLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxhQUFhLENBQUM7Z0JBQ2hDLElBQUksRUFBRSxVQUFVLENBQUMsSUFBSTtnQkFDckIsS0FBSyxFQUFFLFVBQVUsQ0FBQyxLQUFLO2dCQUN2QixHQUFHLEVBQUUsVUFBVSxDQUFDLEdBQUc7Z0JBQ25CLEtBQUssRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLEtBQUssSUFBSSxDQUFDO2dCQUNoQyxPQUFPLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxPQUFPLElBQUksQ0FBQztnQkFDcEMsT0FBTyxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsT0FBTyxJQUFJLENBQUM7YUFDckMsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7WUFDMUIsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDeEIsT0FBTztTQUNSO1FBRUQsTUFBTSxFQUFFLEdBQUcsYUFBYSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNoRCxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsSUFBSSxFQUFFO1lBQ2pCLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO1lBQ25CLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1lBQzFCLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1NBQ3pCO2FBQU07WUFDTCxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3RCO0lBQ0gsQ0FBQztJQUVELFlBQVksQ0FBQyxLQUE2QjtRQUN4QyxJQUFJLElBQW1CLENBQUM7UUFFeEIsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUU7WUFDN0IsSUFBSSxHQUFHLElBQUksYUFBYSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztTQUNqRDthQUFNO1lBQ0wsSUFBSSxHQUFHLElBQUksYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ2pDO1FBRUQsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDdkIsT0FBTztTQUNSO1FBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDbEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7U0FDdEI7UUFFRCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQy9CLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDakMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQztRQUU3QixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDN0IsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBRS9CLElBQUksQ0FBQyxTQUFTLEdBQUc7WUFDZixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7WUFDZixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7U0FDbEIsQ0FBQztRQUVGLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEtBQUssUUFBUSxFQUFFO1lBQzNELElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUMzQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztTQUNoQzthQUFNO1lBQ0wsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7WUFDckIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7U0FDaEM7UUFFRCxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFO1lBQ3ZDLE1BQU0sVUFBVSxHQUFrQjtnQkFDaEMsSUFBSSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSTtnQkFDeEIsS0FBSyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSztnQkFDMUIsR0FBRyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRzthQUN2QixDQUFDO1lBRUYsSUFBSSxZQUFZLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUUvQyxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUU7Z0JBQzdDLE1BQU0sSUFBSSxHQUNSLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDOUQsTUFBTSxNQUFNLEdBQ1YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNsRSxNQUFNLE1BQU0sR0FDVixJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBRWxFLE1BQU0sYUFBYSxHQUFHLElBQUksR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDL0QsTUFBTSxlQUFlLEdBQUcsTUFBTSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUN2RSxNQUFNLGVBQWUsR0FBRyxNQUFNLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBRXZFLFlBQVksSUFBSSxJQUFJLGFBQWEsSUFBSSxlQUFlLEVBQUUsQ0FBQztnQkFFdkQsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO29CQUNoQixZQUFZLElBQUksSUFBSSxlQUFlLEVBQUUsQ0FBQztpQkFDdkM7YUFDRjtZQUVELE9BQU8sWUFBWSxDQUFDO1NBQ3JCO1FBQ0QsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRUQsU0FBUztRQUNQLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsSUFBSSxrQkFBa0IsQ0FBQyxTQUFTLENBQUM7UUFFdEUsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQzFELE1BQU0sSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQztTQUNsRDtRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxZQUFZLENBQUMsS0FBb0I7UUFDL0IsSUFBSSxJQUFJLENBQUMsUUFBUTtZQUFFLE9BQU87UUFFMUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLGFBQWEsQ0FBQztZQUNoQyxHQUFHLElBQUksQ0FBQyxRQUFRO1lBQ2hCLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSztZQUNsQixPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU87WUFDdEIsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPO1NBQ3ZCLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQzFCLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELFlBQVk7UUFDVixPQUFPLENBQUMsQ0FBQyxDQUNQLElBQUksQ0FBQyxRQUFRO1lBQ2IsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksS0FBSyxRQUFRO1lBQ3RDLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEtBQUssUUFBUTtZQUN2QyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxLQUFLLFFBQVEsQ0FDdEMsQ0FBQztJQUNKLENBQUM7SUFFTyx3QkFBd0I7UUFDOUIsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQ2hELElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUN6QixDQUFDO1FBQ0YsTUFBTSxXQUFXLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUM3QyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksSUFBSSxXQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ3pELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxJQUFJLFdBQVcsR0FBRyxFQUFFLENBQUM7UUFFdkQsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsSUFBSSxDQUNyQixFQUFFLE1BQU0sRUFBRSxPQUFPLEdBQUcsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUNuQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQ3RCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFFRCxhQUFhLENBQUMsS0FBWTtRQUN4QixNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBMkIsQ0FBQztRQUNqRCxNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUM1QyxJQUFJLFFBQVEsS0FBSyxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ2xDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7WUFDbkMsSUFBSSxDQUFDLFlBQVksR0FBRyxRQUFRLENBQUM7WUFDN0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDakMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDeEIsSUFBSSxDQUFDLFFBQVEsQ0FBQztnQkFDWixPQUFPLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFO2dCQUNwRCxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFO2FBQ2xELENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQztJQUVELFlBQVksQ0FBQyxLQUFZO1FBQ3ZCLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUEyQixDQUFDO1FBQ2pELE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzNDLElBQUksT0FBTyxLQUFLLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDaEMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztZQUNqQyxJQUFJLENBQUMsV0FBVyxHQUFHLE9BQU8sQ0FBQztZQUMzQixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUN4QixJQUFJLENBQUMsUUFBUSxDQUFDO2dCQUNaLE9BQU8sRUFBRSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxZQUFZLEVBQUU7Z0JBQ3BELElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxZQUFZLEVBQUU7YUFDbEQsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDOzt1SEFoZ0NVLDBCQUEwQjsyR0FBMUIsMEJBQTBCLCtwQkFSMUI7UUFDVDtZQUNFLE9BQU8sRUFBRSxpQkFBaUI7WUFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQywwQkFBMEIsQ0FBQztZQUN6RCxLQUFLLEVBQUUsSUFBSTtTQUNaO0tBQ0YsK0NDaEVILG05UUF3UEE7MkZEdExhLDBCQUEwQjtrQkFidEMsU0FBUzsrQkFDRSxxQkFBcUIsbUJBR2QsdUJBQXVCLENBQUMsTUFBTSxhQUNwQzt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSwyQkFBMkIsQ0FBQzs0QkFDekQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7dUxBS1EsVUFBVTtzQkFBbEIsS0FBSztnQkFNRixtQkFBbUI7c0JBRHRCLEtBQUs7Z0JBV0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUtGLFlBQVk7c0JBRGYsS0FBSztnQkFzQkksWUFBWTtzQkFBckIsTUFBTTtnQkFDRyxtQkFBbUI7c0JBQTVCLE1BQU07Z0JBc0JILGNBQWM7c0JBRGpCLEtBQUs7Z0JBWUYsT0FBTztzQkFEVixLQUFLO2dCQXlDTixlQUFlO3NCQURkLFlBQVk7dUJBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBbUIxQyxjQUFjO3NCQURiLFlBQVk7dUJBQUMsZUFBZSxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQVF6QyxjQUFjO3NCQURiLFlBQVk7dUJBQUMsZUFBZSxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbm9vcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgRGF0ZVRpbWVNb2RlbCxcbiAgV3NsRGF0ZVN0cnVjdCxcbiAgV3NsVGltZVN0cnVjdCxcbn0gZnJvbSAnLi4vLi4vbW9kZWxzL3dzbC1kYXRlLXRpbWUubW9kZWwnO1xuaW1wb3J0IHtcbiAgQ29udHJvbFZhbHVlQWNjZXNzb3IsXG4gIE5HX1ZBTFVFX0FDQ0VTU09SLFxuICBOZ0NvbnRyb2wsXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIGZvcndhcmRSZWYsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5qZWN0b3IsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZ2V0RGF0ZUZvcm1hdENvbmZpZyB9IGZyb20gJy4uLy4uL21vZGVscy93c2wtZGF0ZS1mb3JtYXRzJztcbmltcG9ydCB7IERhdGVGb3JtYXRDb25maWcgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2RhdGUtZm9ybWF0LmludGVyZmFjZSc7XG5pbXBvcnQgeyBXc2xDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY29uZmlnL3dzbC1jb25maWcuc2VydmljZSc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGdldEN1cnJlbnREYXRlLCBnZXRDdXJyZW50RGF0ZVRpbWVNb2RlbCB9IGZyb20gJy4uLy4uL3V0aWxzL2RhdGUtdGltZSc7XG5pbXBvcnQge1xuICBUSU1FX1NURVBTLFxuICBJTlBVVF9EQVRFX0ZPUk1BVFMsXG59IGZyb20gJy4uLy4uL2NvbnN0YW50cy9kYXRldGltZS1waWNrZXIuY29uc3RhbnRzJztcblxuLy8gV1NMIGludGVyZmFjZXMgZm9yIGNvbXBvbmVudC1zcGVjaWZpYyB0eXBlc1xuZXhwb3J0IGludGVyZmFjZSBXc2xEYXRlcGlja2VyTmF2aWdhdGVFdmVudCB7XG4gIGN1cnJlbnQ6IHsgeWVhcjogbnVtYmVyOyBtb250aDogbnVtYmVyIH07XG4gIG5leHQ6IHsgeWVhcjogbnVtYmVyOyBtb250aDogbnVtYmVyIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2FsZW5kYXJEYXkge1xuICBkYXk6IG51bWJlcjtcbiAgbW9udGg6IG51bWJlcjtcbiAgeWVhcjogbnVtYmVyO1xuICBvdGhlck1vbnRoOiBib29sZWFuO1xuICBzZWxlY3RlZDogYm9vbGVhbjtcbiAgZGlzYWJsZWQ6IGJvb2xlYW47XG4gIHRvZGF5OiBib29sZWFuO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd3c2wtZGF0ZXRpbWUtcGlja2VyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3dzbC1kYXRldGltZS1waWNrZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi93c2wtZGF0ZXRpbWUtcGlja2VyLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFdzbERhdGV0aW1lUGlja2VyQ29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFdzbERhdGV0aW1lUGlja2VyQ29tcG9uZW50XG4gIGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uSW5pdCwgT25EZXN0cm95LCBPbkNoYW5nZXNcbntcbiAgQElucHV0KCkgZGF0ZVN0cmluZyE6IHN0cmluZztcblxuICBwcml2YXRlIF9pbnB1dERhdGV0aW1lRm9ybWF0Pzogc3RyaW5nO1xuICBwcml2YXRlIF9pc0luaXRpYWxpemVkID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgc2V0IGlucHV0RGF0ZXRpbWVGb3JtYXQodmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuICAgIGlmICh0aGlzLl9pbnB1dERhdGV0aW1lRm9ybWF0ID09PSB2YWx1ZSkgcmV0dXJuO1xuICAgIHRoaXMuX2lucHV0RGF0ZXRpbWVGb3JtYXQgPSB2YWx1ZTtcbiAgICB0aGlzLnNjaGVkdWxlVXBkYXRlKCk7XG4gIH1cblxuICBnZXQgaW5wdXREYXRldGltZUZvcm1hdCgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl9pbnB1dERhdGV0aW1lRm9ybWF0O1xuICB9XG5cbiAgQElucHV0KCkgaG91cnNTdGVwOiBudW1iZXIgPSBUSU1FX1NURVBTLkhPVVJTO1xuICBASW5wdXQoKSBtaW51dGVzU3RlcDogbnVtYmVyID0gVElNRV9TVEVQUy5NSU5VVEVTO1xuICBASW5wdXQoKSBzZWNvbmRzU3RlcDogbnVtYmVyID0gVElNRV9TVEVQUy5TRUNPTkRTO1xuICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xuICBASW5wdXQoKSBtYXhEYXRlOiBXc2xEYXRlU3RydWN0O1xuICBASW5wdXQoKSBtaW5EYXRlOiBXc2xEYXRlU3RydWN0O1xuICBASW5wdXQoKSBkaXNhYmxlQ2FsZW5kYXIgPSBmYWxzZTtcbiAgQElucHV0KCkgY2FsZW5kYXJQb3NpdGlvbjogJ3N0YXRpYycgfCAnZHluYW1pYycgPSAnZHluYW1pYyc7XG5cbiAgcHJpdmF0ZSBfYWxsb3dlZERhdGVzITogV3NsRGF0ZVN0cnVjdFtdO1xuXG4gIEBJbnB1dCgpXG4gIHNldCBhbGxvd2VkRGF0ZXModmFsdWU6IFdzbERhdGVTdHJ1Y3RbXSkge1xuICAgIHRoaXMuX2FsbG93ZWREYXRlcyA9IHZhbHVlO1xuICAgIGlmICh0aGlzLl9pc0luaXRpYWxpemVkKSB7XG4gICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG4gIH1cblxuICBnZXQgYWxsb3dlZERhdGVzKCk6IFdzbERhdGVTdHJ1Y3RbXSB7XG4gICAgcmV0dXJuIHRoaXMuX2FsbG93ZWREYXRlcztcbiAgfVxuXG4gIGludGVybmFsRm9ybWF0OiBzdHJpbmcgPSBJTlBVVF9EQVRFX0ZPUk1BVFMuREFURV9PTkxZO1xuICBwcml2YXRlIF9zdGFuZGFyZEZvcm1hdDogc3RyaW5nID0gSU5QVVRfREFURV9GT1JNQVRTLkVVX0RBVEVfREFTSDtcblxuICBwbGFjZWhvbGRlciA9ICcnO1xuICBzdGFydERhdGU6IHsgeWVhcjogbnVtYmVyOyBtb250aDogbnVtYmVyIH0gPSB7IHllYXI6IDAsIG1vbnRoOiAwIH07XG4gIHNob3dUaW1lUGlja2VyVG9nZ2xlID0gZmFsc2U7XG4gIGRhdGV0aW1lOiBEYXRlVGltZU1vZGVsID0gbmV3IERhdGVUaW1lTW9kZWwoKTtcbiAgbmdDb250cm9sOiBOZ0NvbnRyb2wgfCBudWxsID0gbnVsbDtcbiAgZGF0ZUNvbmZpZyE6IERhdGVGb3JtYXRDb25maWc7XG5cbiAgQE91dHB1dCgpIG1vbnRoQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuICBAT3V0cHV0KCkgY2FsZW5kYXJTdGF0ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcbiAgcHJpdmF0ZSBvblRvdWNoZWQ6ICgpID0+IHZvaWQgPSBub29wO1xuICBwcml2YXRlIG9uQ2hhbmdlOiAoXzogYW55KSA9PiB2b2lkID0gbm9vcDtcbiAgcHJpdmF0ZSBsYW5ndWFnZVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gIHNob3dUaW1lQ29udHJvbHMgPSBmYWxzZTtcbiAgcHJpdmF0ZSBfc2Vjb25kcyA9IGZhbHNlO1xuICBwcml2YXRlIF91cGRhdGVQZW5kaW5nID0gZmFsc2U7XG5cbiAgc2hvd0NhbGVuZGFyID0gZmFsc2U7XG4gIGN1cnJlbnRZZWFyOiBudW1iZXI7XG4gIGN1cnJlbnRNb250aDogbnVtYmVyO1xuICBjYWxlbmRhckRheXM6IENhbGVuZGFyRGF5W10gPSBbXTtcbiAgd2Vla2RheUxhYmVsczogc3RyaW5nW10gPSBbXTtcblxuICBjYWxlbmRhclBvc2l0aW9uQ2xhc3MgPSAnJztcblxuICBtb250aHM6IHN0cmluZ1tdID0gW107XG4gIHllYXJzOiBudW1iZXJbXSA9IFtdO1xuICBkZWZhdWx0WWVhclJhbmdlID0geyBzdGFydDogMjAwMCwgZW5kOiAyMDUwIH07XG5cbiAgQElucHV0KClcbiAgc2V0IHN0YW5kYXJkRm9ybWF0KHZhbHVlOiBzdHJpbmcpIHtcbiAgICBpZiAodGhpcy5fc3RhbmRhcmRGb3JtYXQgPT09IHZhbHVlKSByZXR1cm47XG4gICAgdGhpcy5fc3RhbmRhcmRGb3JtYXQgPSB2YWx1ZTtcbiAgICB0aGlzLnNjaGVkdWxlVXBkYXRlKCk7XG4gIH1cblxuICBnZXQgc3RhbmRhcmRGb3JtYXQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fc3RhbmRhcmRGb3JtYXQ7XG4gIH1cblxuICBASW5wdXQoKVxuICBzZXQgc2Vjb25kcyh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICh0aGlzLl9zZWNvbmRzID09PSB2YWx1ZSkgcmV0dXJuO1xuICAgIHRoaXMuX3NlY29uZHMgPSB2YWx1ZTtcbiAgICB0aGlzLnNjaGVkdWxlVXBkYXRlKCk7XG4gIH1cblxuICBnZXQgc2Vjb25kcygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fc2Vjb25kcztcbiAgfVxuXG4gIGlzRGF0ZU9ubHkgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGluajogSW5qZWN0b3IsXG4gICAgcHJpdmF0ZSBjb25maWdTZXJ2aWNlOiBXc2xDb25maWdTZXJ2aWNlLFxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIGVsUmVmOiBFbGVtZW50UmVmXG4gICkge1xuICAgIGNvbnN0IGN1cnJlbnREYXRlID0gZ2V0Q3VycmVudERhdGUoKTtcbiAgICB0aGlzLmN1cnJlbnRZZWFyID0gY3VycmVudERhdGUueWVhcjtcbiAgICB0aGlzLmN1cnJlbnRNb250aCA9IGN1cnJlbnREYXRlLm1vbnRoO1xuXG4gICAgdGhpcy5kYXRlQ29uZmlnID0gZ2V0RGF0ZUZvcm1hdENvbmZpZygnZW4nKTtcblxuICAgIHRoaXMubGFuZ3VhZ2VTdWJzY3JpcHRpb24gPSB0aGlzLmNvbmZpZ1NlcnZpY2VcbiAgICAgIC53YXRjaExhbmd1YWdlKClcbiAgICAgIC5zdWJzY3JpYmUoKGxhbmd1YWdlKSA9PiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgdGhpcy5kYXRlQ29uZmlnID0gZ2V0RGF0ZUZvcm1hdENvbmZpZyhsYW5ndWFnZSB8fCAnZW4nKTtcbiAgICAgICAgICB0aGlzLnVwZGF0ZVdlZWtkYXlMYWJlbHMoKTtcbiAgICAgICAgICB0aGlzLnNjaGVkdWxlVXBkYXRlKCk7XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgdGhpcy5kYXRlQ29uZmlnID0gZ2V0RGF0ZUZvcm1hdENvbmZpZygnZW4nKTtcbiAgICAgICAgICB0aGlzLnVwZGF0ZVdlZWtkYXlMYWJlbHMoKTtcbiAgICAgICAgICB0aGlzLnNjaGVkdWxlVXBkYXRlKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6Y2xpY2snLCBbJyRldmVudCddKVxuICBvbkRvY3VtZW50Q2xpY2soZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc2hvd0NhbGVuZGFyKSB7XG4gICAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICBjb25zdCBjYWxlbmRhckVsZW1lbnQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuY2FsZW5kYXItcG9wb3ZlcicpO1xuICAgICAgY29uc3QgYnV0dG9uRWxlbWVudCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5jYWxlbmRhci1pY29uJyk7XG5cbiAgICAgIGlmIChcbiAgICAgICAgY2FsZW5kYXJFbGVtZW50ICYmXG4gICAgICAgIGJ1dHRvbkVsZW1lbnQgJiZcbiAgICAgICAgIWNhbGVuZGFyRWxlbWVudC5jb250YWlucyh0YXJnZXQpICYmXG4gICAgICAgICFidXR0b25FbGVtZW50LmNvbnRhaW5zKHRhcmdldClcbiAgICAgICkge1xuICAgICAgICB0aGlzLmNsb3NlQ2FsZW5kYXIoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJywgWyckZXZlbnQnXSlcbiAgb25XaW5kb3dSZXNpemUoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc2hvd0NhbGVuZGFyICYmIHRoaXMuY2FsZW5kYXJQb3NpdGlvbiA9PT0gJ2R5bmFtaWMnKSB7XG4gICAgICB0aGlzLmNhbGN1bGF0ZUR5bmFtaWNQb3NpdGlvbigpO1xuICAgIH1cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpzY3JvbGwnLCBbJyRldmVudCddKVxuICBvbldpbmRvd1Njcm9sbCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zaG93Q2FsZW5kYXIgJiYgdGhpcy5jYWxlbmRhclBvc2l0aW9uID09PSAnZHluYW1pYycpIHtcbiAgICAgIHRoaXMuY2FsY3VsYXRlRHluYW1pY1Bvc2l0aW9uKCk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5uZ0NvbnRyb2wgPSB0aGlzLmluai5nZXQoTmdDb250cm9sKTtcbiAgICB0aGlzLl9pc0luaXRpYWxpemVkID0gdHJ1ZTtcbiAgICB0aGlzLmluaXRpYWxpemVMYW5ndWFnZUNvbmZpZ3VyYXRpb24oKTtcbiAgICB0aGlzLmluaXRpYWxpemVNb250aHNBbmRZZWFycygpO1xuICAgIHRoaXMudXBkYXRlV2Vla2RheUxhYmVscygpO1xuICAgIHRoaXMuZ2VuZXJhdGVDYWxlbmRhcigpO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0aWFsaXplTGFuZ3VhZ2VDb25maWd1cmF0aW9uKCk6IHZvaWQge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBjdXJyZW50TGFuZ3VhZ2UgPSB0aGlzLmNvbmZpZ1NlcnZpY2UubGFuZ3VhZ2U7XG4gICAgICB0aGlzLmRhdGVDb25maWcgPSBnZXREYXRlRm9ybWF0Q29uZmlnKGN1cnJlbnRMYW5ndWFnZSB8fCAnZW4nKTtcbiAgICAgIHRoaXMudXBkYXRlQ29uZmlndXJhdGlvbigpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aGlzLmRhdGVDb25maWcgPSBnZXREYXRlRm9ybWF0Q29uZmlnKCdlbicpO1xuICAgICAgdGhpcy51cGRhdGVDb25maWd1cmF0aW9uKCk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzWydtaW5EYXRlJ10gfHwgY2hhbmdlc1snbWF4RGF0ZSddKSB7XG4gICAgICB0aGlzLmluaXRpYWxpemVNb250aHNBbmRZZWFycygpO1xuICAgICAgdGhpcy5nZW5lcmF0ZUNhbGVuZGFyKCk7XG4gICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG4gICAgaWYgKGNoYW5nZXNbJ2FsbG93ZWREYXRlcyddKSB7XG4gICAgICB0aGlzLmdlbmVyYXRlQ2FsZW5kYXIoKTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5sYW5ndWFnZVN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5sYW5ndWFnZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIHRvZ2dsZUNhbGVuZGFyKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGlmICghdGhpcy5kaXNhYmxlZCAmJiAhdGhpcy5kaXNhYmxlQ2FsZW5kYXIpIHtcbiAgICAgIHRoaXMuc2hvd0NhbGVuZGFyID0gIXRoaXMuc2hvd0NhbGVuZGFyO1xuICAgICAgaWYgKHRoaXMuc2hvd0NhbGVuZGFyKSB7XG4gICAgICAgIHRoaXMuZ2VuZXJhdGVDYWxlbmRhcigpO1xuICAgICAgICBpZiAodGhpcy5jYWxlbmRhclBvc2l0aW9uID09PSAnZHluYW1pYycpIHtcbiAgICAgICAgICB0aGlzLmNhbGN1bGF0ZUR5bmFtaWNQb3NpdGlvbigpO1xuICAgICAgICAgIC8vIFVwZGF0ZSB0cmFuc2Zvcm1zIGZvciBzaG93IHN0YXRlXG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLnVwZGF0ZUNhbGVuZGFyVHJhbnNmb3Jtcyh0cnVlKSwgMTApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuY2FsZW5kYXJQb3NpdGlvbkNsYXNzID0gJyc7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5jYWxlbmRhclN0YXRlQ2hhbmdlLmVtaXQodGhpcy5zaG93Q2FsZW5kYXIpO1xuICAgICAgfSwgMCk7XG4gICAgfVxuICB9XG5cbiAgY2xvc2VDYWxlbmRhcigpOiB2b2lkIHtcbiAgICB0aGlzLnNob3dDYWxlbmRhciA9IGZhbHNlO1xuICAgIHRoaXMuc2hvd1RpbWVQaWNrZXJUb2dnbGUgPSBmYWxzZTtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5jYWxlbmRhclN0YXRlQ2hhbmdlLmVtaXQoZmFsc2UpO1xuICAgIH0sIDApO1xuICB9XG5cbiAgcHJpdmF0ZSBjYWxjdWxhdGVEeW5hbWljUG9zaXRpb24oKTogdm9pZCB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBjb25zdCBjb250YWluZXJFbGVtZW50ID0gdGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50O1xuICAgICAgY29uc3QgY2FsZW5kYXJFbGVtZW50ID0gY29udGFpbmVyRWxlbWVudD8ucXVlcnlTZWxlY3RvcihcbiAgICAgICAgJy5jYWxlbmRhci1wb3BvdmVyJ1xuICAgICAgKSBhcyBIVE1MRWxlbWVudDtcblxuICAgICAgaWYgKCFjb250YWluZXJFbGVtZW50IHx8ICFjYWxlbmRhckVsZW1lbnQpIHJldHVybjtcblxuICAgICAgY29uc3QgY29udGFpbmVyUmVjdCA9IGNvbnRhaW5lckVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICBjb25zdCBjYWxlbmRhckljb25FbGVtZW50ID0gY29udGFpbmVyRWxlbWVudC5xdWVyeVNlbGVjdG9yKFxuICAgICAgICAnLmNhbGVuZGFyLWljb24nXG4gICAgICApIGFzIEhUTUxFbGVtZW50O1xuICAgICAgY29uc3QgaWNvblJlY3QgPVxuICAgICAgICBjYWxlbmRhckljb25FbGVtZW50Py5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSB8fCBjb250YWluZXJSZWN0O1xuICAgICAgY29uc3Qgdmlld3BvcnRXaWR0aCA9IHdpbmRvdy5pbm5lcldpZHRoO1xuICAgICAgY29uc3Qgdmlld3BvcnRIZWlnaHQgPSB3aW5kb3cuaW5uZXJIZWlnaHQ7XG4gICAgICBjb25zdCBpc01vYmlsZSA9IHZpZXdwb3J0V2lkdGggPD0gNTc2O1xuXG4gICAgICBjb25zdCBjYWxlbmRhcldpZHRoID0gaXNNb2JpbGVcbiAgICAgICAgPyBNYXRoLm1pbihjYWxlbmRhckVsZW1lbnQub2Zmc2V0V2lkdGggfHwgMzUwLCB2aWV3cG9ydFdpZHRoIC0gMzIpXG4gICAgICAgIDogY2FsZW5kYXJFbGVtZW50Lm9mZnNldFdpZHRoIHx8IDM1MDtcbiAgICAgIGNvbnN0IGNhbGVuZGFySGVpZ2h0ID0gY2FsZW5kYXJFbGVtZW50Lm9mZnNldEhlaWdodCB8fCA0MDA7XG5cbiAgICAgIGlmIChpc01vYmlsZSkge1xuICAgICAgICB0aGlzLmFwcGx5TW9iaWxlUG9zaXRpb25pbmcoXG4gICAgICAgICAgY2FsZW5kYXJFbGVtZW50LFxuICAgICAgICAgIGljb25SZWN0LFxuICAgICAgICAgIHZpZXdwb3J0V2lkdGgsXG4gICAgICAgICAgY2FsZW5kYXJXaWR0aFxuICAgICAgICApO1xuICAgICAgICBjb25zdCB2ZXJ0aWNhbENsYXNzID0gdGhpcy5nZXRWZXJ0aWNhbFBvc2l0aW9uQ2xhc3MoXG4gICAgICAgICAgY29udGFpbmVyUmVjdCxcbiAgICAgICAgICB2aWV3cG9ydEhlaWdodCxcbiAgICAgICAgICBjYWxlbmRhckhlaWdodFxuICAgICAgICApO1xuICAgICAgICB0aGlzLmNhbGVuZGFyUG9zaXRpb25DbGFzcyA9IHZlcnRpY2FsQ2xhc3M7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmNsZWFySW5saW5lU3R5bGVzKGNhbGVuZGFyRWxlbWVudCk7XG4gICAgICAgIGNvbnN0IGhvcml6b250YWxDbGFzcyA9IHRoaXMuZ2V0SG9yaXpvbnRhbFBvc2l0aW9uQ2xhc3MoXG4gICAgICAgICAgY29udGFpbmVyUmVjdCxcbiAgICAgICAgICB2aWV3cG9ydFdpZHRoLFxuICAgICAgICAgIGNhbGVuZGFyV2lkdGgsXG4gICAgICAgICAgaXNNb2JpbGVcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3QgdmVydGljYWxDbGFzcyA9IHRoaXMuZ2V0VmVydGljYWxQb3NpdGlvbkNsYXNzKFxuICAgICAgICAgIGNvbnRhaW5lclJlY3QsXG4gICAgICAgICAgdmlld3BvcnRIZWlnaHQsXG4gICAgICAgICAgY2FsZW5kYXJIZWlnaHRcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5jYWxlbmRhclBvc2l0aW9uQ2xhc3MgPVxuICAgICAgICAgIGAke2hvcml6b250YWxDbGFzc30gJHt2ZXJ0aWNhbENsYXNzfWAudHJpbSgpO1xuICAgICAgfVxuICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfSwgMCk7XG4gIH1cblxuICBwcml2YXRlIGFwcGx5TW9iaWxlUG9zaXRpb25pbmcoXG4gICAgZWxlbWVudDogSFRNTEVsZW1lbnQsXG4gICAgaWNvblJlY3Q6IERPTVJlY3QsXG4gICAgdmlld3BvcnRXaWR0aDogbnVtYmVyLFxuICAgIGNhbGVuZGFyV2lkdGg6IG51bWJlclxuICApOiB2b2lkIHtcbiAgICBjb25zdCBwYWRkaW5nID0gMTY7XG4gICAgY29uc3Qgd291bGRPdmVyZmxvd1JpZ2h0ID1cbiAgICAgIGljb25SZWN0LnJpZ2h0ICsgY2FsZW5kYXJXaWR0aCArIHBhZGRpbmcgPiB2aWV3cG9ydFdpZHRoO1xuICAgIGNvbnN0IHdvdWxkT3ZlcmZsb3dMZWZ0ID0gaWNvblJlY3QubGVmdCAtIGNhbGVuZGFyV2lkdGggLSBwYWRkaW5nIDwgMDtcblxuICAgIGlmICh3b3VsZE92ZXJmbG93UmlnaHQgJiYgd291bGRPdmVyZmxvd0xlZnQpIHtcbiAgICAgIGVsZW1lbnQuc3R5bGUubGVmdCA9IGAkeyh2aWV3cG9ydFdpZHRoIC0gY2FsZW5kYXJXaWR0aCkgLyAyfXB4YDtcbiAgICAgIGVsZW1lbnQuc3R5bGUucmlnaHQgPSAnYXV0byc7XG4gICAgfSBlbHNlIGlmICh3b3VsZE92ZXJmbG93UmlnaHQpIHtcbiAgICAgIGVsZW1lbnQuc3R5bGUubGVmdCA9ICd1bnNldCc7XG4gICAgICBlbGVtZW50LnN0eWxlLnJpZ2h0ID0gJzAnO1xuICAgIH0gZWxzZSBpZiAod291bGRPdmVyZmxvd0xlZnQpIHtcbiAgICAgIGVsZW1lbnQuc3R5bGUubGVmdCA9ICcwJztcbiAgICAgIGVsZW1lbnQuc3R5bGUucmlnaHQgPSAndW5zZXQnO1xuICAgIH0gZWxzZSB7XG4gICAgICBlbGVtZW50LnN0eWxlLmxlZnQgPSAndW5zZXQnO1xuICAgICAgZWxlbWVudC5zdHlsZS5yaWdodCA9ICcwJztcbiAgICB9XG5cbiAgICBlbGVtZW50LnN0eWxlLm1heFdpZHRoID0gYCR7Y2FsZW5kYXJXaWR0aH1weGA7XG4gICAgZWxlbWVudC5zdHlsZS50cmFuc2Zvcm0gPSAndHJhbnNsYXRlWSgtMTBweCknO1xuICB9XG5cbiAgcHJpdmF0ZSBjbGVhcklubGluZVN0eWxlcyhlbGVtZW50OiBIVE1MRWxlbWVudCk6IHZvaWQge1xuICAgIGVsZW1lbnQuc3R5bGUubGVmdCA9ICcnO1xuICAgIGVsZW1lbnQuc3R5bGUucmlnaHQgPSAnJztcbiAgICBlbGVtZW50LnN0eWxlLm1heFdpZHRoID0gJyc7XG4gICAgZWxlbWVudC5zdHlsZS50cmFuc2Zvcm0gPSAnJztcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlQ2FsZW5kYXJUcmFuc2Zvcm1zKGlzU2hvdzogYm9vbGVhbik6IHZvaWQge1xuICAgIGNvbnN0IGNvbnRhaW5lckVsZW1lbnQgPSB0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgaWYgKCFjb250YWluZXJFbGVtZW50KSByZXR1cm47XG5cbiAgICBjb25zdCBjYWxlbmRhckVsZW1lbnQgPSBjb250YWluZXJFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoXG4gICAgICAnLmNhbGVuZGFyLXBvcG92ZXInXG4gICAgKSBhcyBIVE1MRWxlbWVudDtcbiAgICBpZiAoIWNhbGVuZGFyRWxlbWVudCkgcmV0dXJuO1xuXG4gICAgY29uc3QgaXNNb2JpbGUgPSB3aW5kb3cuaW5uZXJXaWR0aCA8PSA1NzY7XG4gICAgY29uc3QgaXNUb3BQb3NpdGlvbiA9IHRoaXMuY2FsZW5kYXJQb3NpdGlvbkNsYXNzLmluY2x1ZGVzKFxuICAgICAgJ2NhbGVuZGFyLXBvc2l0aW9uLXRvcCdcbiAgICApO1xuXG4gICAgaWYgKFxuICAgICAgaXNNb2JpbGUgJiZcbiAgICAgIHRoaXMuY2FsZW5kYXJQb3NpdGlvbkNsYXNzLmluY2x1ZGVzKCdjYWxlbmRhci1tb2JpbGUtY2VudGVyJylcbiAgICApIHtcbiAgICAgIC8vIER5bmFtaWMgbW9iaWxlIGNlbnRlcmluZyB3aXRoIHByb3BlciB0cmFuc2Zvcm1zXG4gICAgICBpZiAoaXNTaG93KSB7XG4gICAgICAgIGNhbGVuZGFyRWxlbWVudC5zdHlsZS50cmFuc2Zvcm0gPSBpc1RvcFBvc2l0aW9uXG4gICAgICAgICAgPyAndHJhbnNsYXRlWSgwKSdcbiAgICAgICAgICA6ICd0cmFuc2xhdGVZKDApJztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNhbGVuZGFyRWxlbWVudC5zdHlsZS50cmFuc2Zvcm0gPSBpc1RvcFBvc2l0aW9uXG4gICAgICAgICAgPyAndHJhbnNsYXRlWSgxMHB4KSdcbiAgICAgICAgICA6ICd0cmFuc2xhdGVZKC0xMHB4KSc7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRIb3Jpem9udGFsUG9zaXRpb25DbGFzcyhcbiAgICBjb250YWluZXJSZWN0OiBET01SZWN0LFxuICAgIHZpZXdwb3J0V2lkdGg6IG51bWJlcixcbiAgICBjYWxlbmRhcldpZHRoOiBudW1iZXIsXG4gICAgaXNNb2JpbGU6IGJvb2xlYW5cbiAgKTogc3RyaW5nIHtcbiAgICBpZiAoaXNNb2JpbGUpIHtcbiAgICAgIGNvbnN0IG1vYmlsZVBhZGRpbmcgPSAxNjtcblxuICAgICAgLy8gQ2hlY2sgaWYgY2FsZW5kYXIgd291bGQgb3ZlcmZsb3cgd2hlbiBncm93aW5nIHJpZ2h0IGZyb20gaWNvbiAoZGVmYXVsdClcbiAgICAgIGNvbnN0IHdvdWxkT3ZlcmZsb3dSaWdodCA9XG4gICAgICAgIGNvbnRhaW5lclJlY3QucmlnaHQgKyBjYWxlbmRhcldpZHRoICsgbW9iaWxlUGFkZGluZyA+IHZpZXdwb3J0V2lkdGg7XG5cbiAgICAgIC8vIENoZWNrIGlmIGNhbGVuZGFyIHdvdWxkIG92ZXJmbG93IHdoZW4gZ3Jvd2luZyBsZWZ0IGZyb20gbGVmdCBlZGdlXG4gICAgICBjb25zdCB3b3VsZE92ZXJmbG93TGVmdCA9XG4gICAgICAgIGNvbnRhaW5lclJlY3QubGVmdCAtIGNhbGVuZGFyV2lkdGggLSBtb2JpbGVQYWRkaW5nIDwgMDtcblxuICAgICAgaWYgKHdvdWxkT3ZlcmZsb3dSaWdodCAmJiB3b3VsZE92ZXJmbG93TGVmdCkge1xuICAgICAgICAvLyBObyBzcGFjZSBvbiBlaXRoZXIgc2lkZSAtIGNlbnRlciBpdFxuICAgICAgICByZXR1cm4gJ2NhbGVuZGFyLW1vYmlsZS1jZW50ZXInO1xuICAgICAgfVxuXG4gICAgICBpZiAoIXdvdWxkT3ZlcmZsb3dSaWdodCkge1xuICAgICAgICAvLyBGaXRzIGdyb3dpbmcgcmlnaHQgZnJvbSBpY29uIC0gYnV0IHN0aWxsIHVzZSByaWdodCBhbGlnbm1lbnQgdG8gZW5zdXJlIHBhZGRpbmdcbiAgICAgICAgcmV0dXJuICdjYWxlbmRhci1hbGlnbi1yaWdodCc7XG4gICAgICB9XG5cbiAgICAgIC8vIFdvdWxkIG92ZXJmbG93IHJpZ2h0IGJ1dCBmaXRzIG9uIGxlZnQgLSBhbGlnbiB0byBsZWZ0IGVkZ2VcbiAgICAgIHJldHVybiAnY2FsZW5kYXItYWxpZ24tbGVmdCc7XG4gICAgfVxuXG4gICAgLy8gRGVza3RvcCBsb2dpY1xuICAgIGNvbnN0IHdvdWxkT3ZlcmZsb3dSaWdodCA9XG4gICAgICBjb250YWluZXJSZWN0LnJpZ2h0ICsgY2FsZW5kYXJXaWR0aCA+IHZpZXdwb3J0V2lkdGg7XG5cbiAgICBpZiAoIXdvdWxkT3ZlcmZsb3dSaWdodCkge1xuICAgICAgcmV0dXJuICcnOyAvLyBEZWZhdWx0IHBvc2l0aW9uaW5nIChncm93cyByaWdodCBmcm9tIGljb24pXG4gICAgfVxuXG4gICAgY29uc3Qgc3BhY2VMZWZ0ID0gY29udGFpbmVyUmVjdC5sZWZ0O1xuICAgIGlmIChzcGFjZUxlZnQgPj0gY2FsZW5kYXJXaWR0aCkge1xuICAgICAgcmV0dXJuICdjYWxlbmRhci1hbGlnbi1sZWZ0JzsgLy8gR3JvdyByaWdodCBmcm9tIGxlZnQgZWRnZVxuICAgIH1cblxuICAgIHJldHVybiAnJzsgLy8gVXNlIGRlZmF1bHQgYXMgZmFsbGJhY2tcbiAgfVxuXG4gIHByaXZhdGUgZ2V0VmVydGljYWxQb3NpdGlvbkNsYXNzKFxuICAgIGNvbnRhaW5lclJlY3Q6IERPTVJlY3QsXG4gICAgdmlld3BvcnRIZWlnaHQ6IG51bWJlcixcbiAgICBjYWxlbmRhckhlaWdodDogbnVtYmVyXG4gICk6IHN0cmluZyB7XG4gICAgY29uc3Qgc3BhY2VCZWxvdyA9IHZpZXdwb3J0SGVpZ2h0IC0gY29udGFpbmVyUmVjdC5ib3R0b207XG4gICAgY29uc3Qgc3BhY2VBYm92ZSA9IGNvbnRhaW5lclJlY3QudG9wO1xuXG4gICAgaWYgKHNwYWNlQmVsb3cgPj0gY2FsZW5kYXJIZWlnaHQpIHJldHVybiAnY2FsZW5kYXItcG9zaXRpb24tYm90dG9tJztcbiAgICBpZiAoc3BhY2VBYm92ZSA+PSBjYWxlbmRhckhlaWdodCkgcmV0dXJuICdjYWxlbmRhci1wb3NpdGlvbi10b3AnO1xuICAgIHJldHVybiBzcGFjZUJlbG93ID49IHNwYWNlQWJvdmVcbiAgICAgID8gJ2NhbGVuZGFyLXBvc2l0aW9uLWJvdHRvbSdcbiAgICAgIDogJ2NhbGVuZGFyLXBvc2l0aW9uLXRvcCc7XG4gIH1cblxuICBuYXZpZ2F0ZU1vbnRoKGRpcmVjdGlvbjogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5jdXJyZW50TW9udGggKz0gZGlyZWN0aW9uO1xuICAgIGlmICh0aGlzLmN1cnJlbnRNb250aCA+IDEyKSB7XG4gICAgICB0aGlzLmN1cnJlbnRNb250aCA9IDE7XG4gICAgICB0aGlzLmN1cnJlbnRZZWFyKys7XG4gICAgfSBlbHNlIGlmICh0aGlzLmN1cnJlbnRNb250aCA8IDEpIHtcbiAgICAgIHRoaXMuY3VycmVudE1vbnRoID0gMTI7XG4gICAgICB0aGlzLmN1cnJlbnRZZWFyLS07XG4gICAgfVxuXG4gICAgdGhpcy5nZW5lcmF0ZUNhbGVuZGFyKCk7XG4gICAgdGhpcy5tb250aENoYW5nZWQuZW1pdCh0aGlzLmN1cnJlbnRNb250aCk7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBzZWxlY3REYXRlKGRheTogQ2FsZW5kYXJEYXkpOiB2b2lkIHtcbiAgICBpZiAoZGF5LmRpc2FibGVkKSByZXR1cm47XG5cbiAgICBjb25zdCBzZWxlY3RlZERhdGU6IFdzbERhdGVTdHJ1Y3QgPSB7XG4gICAgICB5ZWFyOiBkYXkueWVhcixcbiAgICAgIG1vbnRoOiBkYXkubW9udGgsXG4gICAgICBkYXk6IGRheS5kYXksXG4gICAgfTtcblxuICAgIHRoaXMub25EYXRlQ2hhbmdlKHNlbGVjdGVkRGF0ZSk7XG4gICAgdGhpcy5nZW5lcmF0ZUNhbGVuZGFyKCk7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBnZW5lcmF0ZUNhbGVuZGFyKCk6IHZvaWQge1xuICAgIGNvbnN0IGZpcnN0RGF5ID0gbmV3IERhdGUodGhpcy5jdXJyZW50WWVhciwgdGhpcy5jdXJyZW50TW9udGggLSAxLCAxKTtcbiAgICBjb25zdCBzdGFydERhdGUgPSBuZXcgRGF0ZShmaXJzdERheSk7XG5cbiAgICBjb25zdCB3ZWVrU3RhcnQgPSB0aGlzLmRhdGVDb25maWc/LndlZWtTdGFydCB8fCAxO1xuICAgIGNvbnN0IGRheU9mV2VlayA9IChmaXJzdERheS5nZXREYXkoKSArIDcgLSB3ZWVrU3RhcnQpICUgNztcbiAgICBzdGFydERhdGUuc2V0RGF0ZShzdGFydERhdGUuZ2V0RGF0ZSgpIC0gZGF5T2ZXZWVrKTtcblxuICAgIHRoaXMuY2FsZW5kYXJEYXlzID0gW107XG4gICAgY29uc3QgdG9kYXlEYXRlID0gZ2V0Q3VycmVudERhdGUoKTtcbiAgICBjb25zdCB0b2RheSA9IG5ldyBEYXRlKHRvZGF5RGF0ZS55ZWFyLCB0b2RheURhdGUubW9udGggLSAxLCB0b2RheURhdGUuZGF5KTtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgNDI7IGkrKykge1xuICAgICAgY29uc3QgY3VycmVudERhdGUgPSBuZXcgRGF0ZShzdGFydERhdGUpO1xuICAgICAgY3VycmVudERhdGUuc2V0RGF0ZShzdGFydERhdGUuZ2V0RGF0ZSgpICsgaSk7XG5cbiAgICAgIGNvbnN0IGRheVN0cnVjdDogV3NsRGF0ZVN0cnVjdCA9IHtcbiAgICAgICAgeWVhcjogY3VycmVudERhdGUuZ2V0RnVsbFllYXIoKSxcbiAgICAgICAgbW9udGg6IGN1cnJlbnREYXRlLmdldE1vbnRoKCkgKyAxLFxuICAgICAgICBkYXk6IGN1cnJlbnREYXRlLmdldERhdGUoKSxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IGNhbGVuZGFyRGF5OiBDYWxlbmRhckRheSA9IHtcbiAgICAgICAgZGF5OiBjdXJyZW50RGF0ZS5nZXREYXRlKCksXG4gICAgICAgIG1vbnRoOiBjdXJyZW50RGF0ZS5nZXRNb250aCgpICsgMSxcbiAgICAgICAgeWVhcjogY3VycmVudERhdGUuZ2V0RnVsbFllYXIoKSxcbiAgICAgICAgb3RoZXJNb250aDogY3VycmVudERhdGUuZ2V0TW9udGgoKSArIDEgIT09IHRoaXMuY3VycmVudE1vbnRoLFxuICAgICAgICBzZWxlY3RlZDogdGhpcy5pc0RhdGVTZWxlY3RlZChkYXlTdHJ1Y3QpLFxuICAgICAgICBkaXNhYmxlZDogdGhpcy5pc0RhdGVEaXNhYmxlZChkYXlTdHJ1Y3QpLFxuICAgICAgICB0b2RheTogdGhpcy5pc1NhbWVEYXRlKGN1cnJlbnREYXRlLCB0b2RheSksXG4gICAgICB9O1xuXG4gICAgICB0aGlzLmNhbGVuZGFyRGF5cy5wdXNoKGNhbGVuZGFyRGF5KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGlzRGF0ZVNlbGVjdGVkKGRhdGU6IFdzbERhdGVTdHJ1Y3QpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISEoXG4gICAgICB0aGlzLmRhdGV0aW1lICYmXG4gICAgICB0aGlzLmRhdGV0aW1lLnllYXIgPT09IGRhdGUueWVhciAmJlxuICAgICAgdGhpcy5kYXRldGltZS5tb250aCA9PT0gZGF0ZS5tb250aCAmJlxuICAgICAgdGhpcy5kYXRldGltZS5kYXkgPT09IGRhdGUuZGF5XG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgaXNEYXRlRGlzYWJsZWQoZGF0ZTogV3NsRGF0ZVN0cnVjdCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHNlbGVjdGVkRGF0ZSA9IG5ldyBEYXRlKGRhdGUueWVhciwgZGF0ZS5tb250aCAtIDEsIGRhdGUuZGF5KTtcbiAgICBjb25zdCB0b2RheURhdGUgPSBnZXRDdXJyZW50RGF0ZSgpO1xuICAgIGNvbnN0IHRvZGF5ID0gbmV3IERhdGUodG9kYXlEYXRlLnllYXIsIHRvZGF5RGF0ZS5tb250aCAtIDEsIHRvZGF5RGF0ZS5kYXkpO1xuICAgIHRvZGF5LnNldEhvdXJzKDAsIDAsIDAsIDApO1xuXG4gICAgaWYgKHRoaXMubWF4RGF0ZSkge1xuICAgICAgY29uc3QgbWF4RGF0ZSA9IG5ldyBEYXRlKFxuICAgICAgICB0aGlzLm1heERhdGUueWVhcixcbiAgICAgICAgdGhpcy5tYXhEYXRlLm1vbnRoIC0gMSxcbiAgICAgICAgdGhpcy5tYXhEYXRlLmRheVxuICAgICAgKTtcbiAgICAgIGlmIChzZWxlY3RlZERhdGUgPiBtYXhEYXRlKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0aGlzLm1pbkRhdGUpIHtcbiAgICAgIGNvbnN0IG1pbkRhdGUgPSBuZXcgRGF0ZShcbiAgICAgICAgdGhpcy5taW5EYXRlLnllYXIsXG4gICAgICAgIHRoaXMubWluRGF0ZS5tb250aCAtIDEsXG4gICAgICAgIHRoaXMubWluRGF0ZS5kYXlcbiAgICAgICk7XG4gICAgICBpZiAoc2VsZWN0ZWREYXRlIDwgbWluRGF0ZSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICB0aGlzLmFsbG93ZWREYXRlcyAmJlxuICAgICAgdGhpcy5hbGxvd2VkRGF0ZXMubGVuZ3RoID09PSAxICYmXG4gICAgICB0aGlzLmFsbG93ZWREYXRlc1swXS5kYXkgPT09IC0xXG4gICAgKSB7XG4gICAgICByZXR1cm4gc2VsZWN0ZWREYXRlID4gdG9kYXk7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLmFsbG93ZWREYXRlcyB8fCB0aGlzLmFsbG93ZWREYXRlcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGNvbnN0IGlzQWxsb3dlZCA9IHRoaXMuYWxsb3dlZERhdGVzLmZpbmQoXG4gICAgICAoZGF5QWxsb3dlZCkgPT5cbiAgICAgICAgZGF5QWxsb3dlZC55ZWFyID09PSBkYXRlLnllYXIgJiZcbiAgICAgICAgZGF5QWxsb3dlZC5tb250aCA9PT0gZGF0ZS5tb250aCAmJlxuICAgICAgICBkYXlBbGxvd2VkLmRheSA9PT0gZGF0ZS5kYXlcbiAgICApO1xuXG4gICAgcmV0dXJuICFpc0FsbG93ZWQ7XG4gIH1cblxuICBwcml2YXRlIGlzU2FtZURhdGUoZGF0ZTE6IERhdGUsIGRhdGUyOiBEYXRlKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgIGRhdGUxLmdldEZ1bGxZZWFyKCkgPT09IGRhdGUyLmdldEZ1bGxZZWFyKCkgJiZcbiAgICAgIGRhdGUxLmdldE1vbnRoKCkgPT09IGRhdGUyLmdldE1vbnRoKCkgJiZcbiAgICAgIGRhdGUxLmdldERhdGUoKSA9PT0gZGF0ZTIuZ2V0RGF0ZSgpXG4gICAgKTtcbiAgfVxuXG4gIGdldE1vbnRoTmFtZShtb250aDogbnVtYmVyKTogc3RyaW5nIHtcbiAgICBjb25zdCBtb250aEluZGV4ID0gbW9udGggLSAxO1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLmRhdGVDb25maWc/Lm1vbnRoTmFtZXM/Llttb250aEluZGV4XSB8fFxuICAgICAgZ2V0RGF0ZUZvcm1hdENvbmZpZygnZW4nKS5tb250aE5hbWVzW21vbnRoSW5kZXhdXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlV2Vla2RheUxhYmVscygpOiB2b2lkIHtcbiAgICB0aGlzLndlZWtkYXlMYWJlbHMgPVxuICAgICAgdGhpcy5kYXRlQ29uZmlnPy53ZWVrZGF5TGFiZWxzIHx8IGdldERhdGVGb3JtYXRDb25maWcoJ2VuJykud2Vla2RheUxhYmVscztcbiAgfVxuXG4gIGFkanVzdFRpbWUoZmllbGQ6ICdob3VycycgfCAnbWludXRlcycgfCAnc2Vjb25kcycsIHN0ZXA6IG51bWJlcik6IHZvaWQge1xuICAgIGlmICh0aGlzLmRpc2FibGVkKSByZXR1cm47XG5cbiAgICBjb25zdCBjdXJyZW50VmFsdWUgPSB0aGlzLmRhdGV0aW1lW2ZpZWxkXSB8fCAwO1xuICAgIGxldCBuZXdWYWx1ZTogbnVtYmVyO1xuXG4gICAgaWYgKHN0ZXAgPiAwKSB7XG4gICAgICBuZXdWYWx1ZSA9IGN1cnJlbnRWYWx1ZSArIHN0ZXA7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHN0ZXBTaXplID0gTWF0aC5hYnMoc3RlcCk7XG4gICAgICBuZXdWYWx1ZSA9IGN1cnJlbnRWYWx1ZSAtIHN0ZXBTaXplO1xuICAgIH1cblxuICAgIHN3aXRjaCAoZmllbGQpIHtcbiAgICAgIGNhc2UgJ2hvdXJzJzpcbiAgICAgICAgaWYgKG5ld1ZhbHVlIDwgMCkge1xuICAgICAgICAgIG5ld1ZhbHVlID0gMjQgKyAobmV3VmFsdWUgJSAyNCk7XG4gICAgICAgIH0gZWxzZSBpZiAobmV3VmFsdWUgPiAyMykge1xuICAgICAgICAgIG5ld1ZhbHVlID0gbmV3VmFsdWUgJSAyNDtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ21pbnV0ZXMnOlxuICAgICAgY2FzZSAnc2Vjb25kcyc6XG4gICAgICAgIGlmIChuZXdWYWx1ZSA8IDApIHtcbiAgICAgICAgICBuZXdWYWx1ZSA9IDYwICsgKG5ld1ZhbHVlICUgNjApO1xuICAgICAgICB9IGVsc2UgaWYgKG5ld1ZhbHVlID4gNTkpIHtcbiAgICAgICAgICBuZXdWYWx1ZSA9IG5ld1ZhbHVlICUgNjA7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgdGhpcy5kYXRldGltZVtmaWVsZF0gPSBuZXdWYWx1ZTtcbiAgICB0aGlzLnNldERhdGVTdHJpbmdNb2RlbCgpO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgb25UaW1lRmllbGRDaGFuZ2UoXG4gICAgZmllbGQ6ICdob3VycycgfCAnbWludXRlcycgfCAnc2Vjb25kcycsXG4gICAgZXZlbnQ6IEV2ZW50XG4gICk6IHZvaWQge1xuICAgIGNvbnN0IGlucHV0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgbGV0IHZhbHVlID0gcGFyc2VJbnQoaW5wdXQudmFsdWUsIDEwKTtcblxuICAgIGlmIChpc05hTih2YWx1ZSkpIHtcbiAgICAgIHZhbHVlID0gMDtcbiAgICB9XG5cbiAgICBzd2l0Y2ggKGZpZWxkKSB7XG4gICAgICBjYXNlICdob3Vycyc6XG4gICAgICAgIGlmICh2YWx1ZSA8IDApIHZhbHVlID0gMDtcbiAgICAgICAgaWYgKHZhbHVlID4gMjMpIHZhbHVlID0gMjM7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnbWludXRlcyc6XG4gICAgICBjYXNlICdzZWNvbmRzJzpcbiAgICAgICAgaWYgKHZhbHVlIDwgMCkgdmFsdWUgPSAwO1xuICAgICAgICBpZiAodmFsdWUgPiA1OSkgdmFsdWUgPSA1OTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgaW5wdXQudmFsdWUgPSB2YWx1ZS50b1N0cmluZygpLnBhZFN0YXJ0KDIsICcwJyk7XG5cbiAgICB0aGlzLmRhdGV0aW1lW2ZpZWxkXSA9IHZhbHVlO1xuICAgIHRoaXMuc2V0RGF0ZVN0cmluZ01vZGVsKCk7XG4gIH1cblxuICBwcml2YXRlIHNjaGVkdWxlVXBkYXRlKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5faXNJbml0aWFsaXplZCB8fCB0aGlzLl91cGRhdGVQZW5kaW5nKSByZXR1cm47XG5cbiAgICB0aGlzLl91cGRhdGVQZW5kaW5nID0gdHJ1ZTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuX3VwZGF0ZVBlbmRpbmcgPSBmYWxzZTtcbiAgICAgIHRoaXMudXBkYXRlQ29uZmlndXJhdGlvbigpO1xuICAgIH0sIDApO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVDb25maWd1cmF0aW9uKCk6IHZvaWQge1xuICAgIHRoaXMuZGV0ZWN0VGltZUNvbXBvbmVudHMoKTtcbiAgICB0aGlzLnNldFN0YW5kYXJkRm9ybWF0KCk7XG4gICAgdGhpcy5zZXRQbGFjZWhvbGRlcigpO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHJpdmF0ZSBkZXRlY3RUaW1lQ29tcG9uZW50cygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pbnB1dERhdGV0aW1lRm9ybWF0KSB7XG4gICAgICBjb25zdCBoYXNUaW1lRm9ybWF0ID0gdGhpcy5oYXNUaW1lSW5Gb3JtYXQodGhpcy5pbnB1dERhdGV0aW1lRm9ybWF0KTtcblxuICAgICAgaWYgKCFoYXNUaW1lRm9ybWF0KSB7XG4gICAgICAgIHRoaXMuc2hvd1RpbWVDb250cm9scyA9IGZhbHNlO1xuICAgICAgICB0aGlzLl9zZWNvbmRzID0gZmFsc2U7XG4gICAgICAgIHRoaXMuaXNEYXRlT25seSA9IHRydWU7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgdGhpcy5zaG93VGltZUNvbnRyb2xzID0gdHJ1ZTtcbiAgICAgIHRoaXMuaXNEYXRlT25seSA9IGZhbHNlO1xuICAgICAgdGhpcy5fc2Vjb25kcyA9IHRoaXMuaW5wdXREYXRldGltZUZvcm1hdC5pbmNsdWRlcygnOnNzJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2hvd1RpbWVDb250cm9scyA9IHRoaXMuX3NlY29uZHM7XG4gICAgICB0aGlzLmlzRGF0ZU9ubHkgPSAhdGhpcy5fc2Vjb25kcztcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGhhc1RpbWVJbkZvcm1hdChmb3JtYXQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICBmb3JtYXQuaW5jbHVkZXMoJ0hIOicpIHx8XG4gICAgICBmb3JtYXQuaW5jbHVkZXMoJ2hoOicpIHx8XG4gICAgICBmb3JtYXQuaW5jbHVkZXMoJzptbScpIHx8XG4gICAgICBmb3JtYXQuaW5jbHVkZXMoJzpzcycpXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0U3RhbmRhcmRGb3JtYXQoKTogdm9pZCB7XG4gICAgdGhpcy5pbnRlcm5hbEZvcm1hdCA9XG4gICAgICB0aGlzLmlucHV0RGF0ZXRpbWVGb3JtYXQgfHwgSU5QVVRfREFURV9GT1JNQVRTLkRBVEVfT05MWTtcbiAgICB0aGlzLl9zdGFuZGFyZEZvcm1hdCA9IHRoaXMuaW50ZXJuYWxGb3JtYXQ7XG5cbiAgICBpZiAodGhpcy5zaG93VGltZUNvbnRyb2xzICYmICF0aGlzLmhhc1RpbWVJbkZvcm1hdCh0aGlzLl9zdGFuZGFyZEZvcm1hdCkpIHtcbiAgICAgIHRoaXMuX3N0YW5kYXJkRm9ybWF0ICs9IHRoaXMuX3NlY29uZHMgPyAnIEhIOm1tOnNzJyA6ICcgSEg6bW0nO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0UGxhY2Vob2xkZXIoKTogdm9pZCB7XG4gICAgdGhpcy5wbGFjZWhvbGRlciA9XG4gICAgICB0aGlzLmRhdGVDb25maWc/LnBsYWNlaG9sZGVyPy50b0xvd2VyQ2FzZSgpIHx8XG4gICAgICBJTlBVVF9EQVRFX0ZPUk1BVFMuREFURV9PTkxZLnRvTG93ZXJDYXNlKCk7XG5cbiAgICBpZiAodGhpcy5zaG93VGltZUNvbnRyb2xzKSB7XG4gICAgICB0aGlzLnBsYWNlaG9sZGVyICs9IHRoaXMuX3NlY29uZHMgPyAnIGhoOm1tOnNzJyA6ICcgaGg6bW0nO1xuICAgIH1cbiAgfVxuXG4gIHdyaXRlVmFsdWUobmV3TW9kZWw6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmIChuZXdNb2RlbCkge1xuICAgICAgY29uc3QgcGFyc2VkTW9kZWwgPSBEYXRlVGltZU1vZGVsLmZyb21Mb2NhbFN0cmluZyhuZXdNb2RlbCwgZmFsc2UpO1xuXG4gICAgICBpZiAocGFyc2VkTW9kZWwgJiYgdHlwZW9mIHBhcnNlZE1vZGVsLnllYXIgPT09ICdudW1iZXInKSB7XG4gICAgICAgIHRoaXMuZGF0ZXRpbWUgPSBPYmplY3QuYXNzaWduKFxuICAgICAgICAgIHRoaXMuZGF0ZXRpbWUgfHwgbmV3IERhdGVUaW1lTW9kZWwoKSxcbiAgICAgICAgICBwYXJzZWRNb2RlbFxuICAgICAgICApO1xuICAgICAgICB0aGlzLmRhdGVTdHJpbmcgPSBuZXdNb2RlbDtcbiAgICAgICAgdGhpcy5zZXREYXRlU3RyaW5nTW9kZWwoKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5kYXRldGltZSA9IG5ldyBEYXRlVGltZU1vZGVsKCk7XG4gICAgICB0aGlzLmRhdGVTdHJpbmcgPSAnJztcbiAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cbiAgfVxuXG4gIG5hdmlnYXRlKGV2ZW50OiBXc2xEYXRlcGlja2VyTmF2aWdhdGVFdmVudCk6IHZvaWQge1xuICAgIGlmIChldmVudD8uY3VycmVudCAmJiBldmVudD8uY3VycmVudC5tb250aCAhPT0gZXZlbnQ/Lm5leHQubW9udGgpIHtcbiAgICAgIHRoaXMubW9udGhDaGFuZ2VkLmVtaXQoZXZlbnQ/Lm5leHQubW9udGgpO1xuICAgIH1cbiAgfVxuXG4gIGlzRGlzYWJsZWQoXG4gICAgZGF0ZXM6IFdzbERhdGVTdHJ1Y3RbXVxuICApOiAoXG4gICAgZGF0ZTogV3NsRGF0ZVN0cnVjdCxcbiAgICBjdXJyZW50PzogeyB5ZWFyOiBudW1iZXI7IG1vbnRoOiBudW1iZXIgfVxuICApID0+IGJvb2xlYW4ge1xuICAgIHJldHVybiAocGlja2VyRGF0ZTogV3NsRGF0ZVN0cnVjdCkgPT4ge1xuICAgICAgY29uc3Qgb3JpZ2luYWxBbGxvd2VkRGF0ZXMgPSB0aGlzLmFsbG93ZWREYXRlcztcbiAgICAgIHRoaXMuYWxsb3dlZERhdGVzID0gZGF0ZXM7XG4gICAgICBjb25zdCByZXN1bHQgPSB0aGlzLmlzRGF0ZURpc2FibGVkKHBpY2tlckRhdGUpO1xuICAgICAgdGhpcy5hbGxvd2VkRGF0ZXMgPSBvcmlnaW5hbEFsbG93ZWREYXRlcztcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfTtcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gIH1cblxuICB0b2dnbGVEYXRlVGltZVN0YXRlKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmhhc1ZhbGlkRGF0ZSgpKSB7XG4gICAgICB0aGlzLnNob3dUaW1lUGlja2VyVG9nZ2xlID0gIXRoaXMuc2hvd1RpbWVQaWNrZXJUb2dnbGU7XG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlPyhpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwcml2YXRlIGdldERlbGltaXRlcigpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLmRhdGVDb25maWc/LmZvcm1hdCkge1xuICAgICAgY29uc3QgbWF0Y2ggPSB0aGlzLmRhdGVDb25maWcuZm9ybWF0Lm1hdGNoKC9bXmEtekEtWjAtOV0vKTtcbiAgICAgIGlmIChtYXRjaCAmJiBtYXRjaFswXSkge1xuICAgICAgICByZXR1cm4gbWF0Y2hbMF07XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmRhdGVDb25maWc/LmRhdGVTZXBhcmF0b3IgfHwgJy0nO1xuICB9XG5cbiAgcHJpdmF0ZSBwYXJzZURhdGUodmFsdWU6IHN0cmluZyk6IFdzbERhdGVTdHJ1Y3QgfCBudWxsIHtcbiAgICBpZiAoIXZhbHVlKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCBkZWxpbWl0ZXIgPSB0aGlzLmdldERlbGltaXRlcigpO1xuICAgIGNvbnN0IGRhdGUgPSB2YWx1ZS5zcGxpdChkZWxpbWl0ZXIpO1xuXG4gICAgaWYgKGRhdGUubGVuZ3RoIDwgMykge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIGlmICh0aGlzLmRhdGVDb25maWc/LmRheUZpcnN0KSB7XG4gICAgICAgIGNvbnN0IGRheSA9IHBhcnNlSW50KGRhdGVbMF0sIDEwKTtcbiAgICAgICAgY29uc3QgbW9udGggPSBwYXJzZUludChkYXRlWzFdLCAxMCk7XG4gICAgICAgIGNvbnN0IHllYXIgPSBwYXJzZUludChkYXRlWzJdLCAxMCk7XG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgIGlzTmFOKGRheSkgfHxcbiAgICAgICAgICBpc05hTihtb250aCkgfHxcbiAgICAgICAgICBpc05hTih5ZWFyKSB8fFxuICAgICAgICAgIGRheSA8IDEgfHxcbiAgICAgICAgICBkYXkgPiAzMSB8fFxuICAgICAgICAgIG1vbnRoIDwgMSB8fFxuICAgICAgICAgIG1vbnRoID4gMTJcbiAgICAgICAgKSB7XG4gICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4geyBkYXksIG1vbnRoLCB5ZWFyIH07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBGb3JtYXQ6IElOUFVUX0RBVEVfRk9STUFUUy5EQVRFX09OTFkgKHl5eXktTU0tZGQpXG4gICAgICAgIGNvbnN0IHllYXIgPSBwYXJzZUludChkYXRlWzBdLCAxMCk7XG4gICAgICAgIGNvbnN0IG1vbnRoID0gcGFyc2VJbnQoZGF0ZVsxXSwgMTApO1xuICAgICAgICBjb25zdCBkYXkgPSBwYXJzZUludChkYXRlWzJdLCAxMCk7XG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgIGlzTmFOKGRheSkgfHxcbiAgICAgICAgICBpc05hTihtb250aCkgfHxcbiAgICAgICAgICBpc05hTih5ZWFyKSB8fFxuICAgICAgICAgIGRheSA8IDEgfHxcbiAgICAgICAgICBkYXkgPiAzMSB8fFxuICAgICAgICAgIG1vbnRoIDwgMSB8fFxuICAgICAgICAgIG1vbnRoID4gMTJcbiAgICAgICAgKSB7XG4gICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4geyB5ZWFyLCBtb250aCwgZGF5IH07XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZm9ybWF0RGF0ZShkYXRlOiBXc2xEYXRlU3RydWN0IHwgbnVsbCk6IHN0cmluZyB7XG4gICAgaWYgKCFkYXRlKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuXG4gICAgY29uc3QgZGVsaW1pdGVyID0gdGhpcy5nZXREZWxpbWl0ZXIoKTtcbiAgICBjb25zdCBkYXlGb3JtYXR0ZWQgPSBkYXRlLmRheSA8IDEwID8gJzAnICsgZGF0ZS5kYXkgOiBkYXRlLmRheS50b1N0cmluZygpO1xuICAgIGNvbnN0IG1vbnRoRm9ybWF0dGVkID1cbiAgICAgIGRhdGUubW9udGggPCAxMCA/ICcwJyArIGRhdGUubW9udGggOiBkYXRlLm1vbnRoLnRvU3RyaW5nKCk7XG4gICAgY29uc3QgeWVhckZvcm1hdHRlZCA9IGRhdGUueWVhci50b1N0cmluZygpO1xuXG4gICAgaWYgKHRoaXMuZGF0ZUNvbmZpZz8uZGF5Rmlyc3QpIHtcbiAgICAgIHJldHVybiBgJHtkYXlGb3JtYXR0ZWR9JHtkZWxpbWl0ZXJ9JHttb250aEZvcm1hdHRlZH0ke2RlbGltaXRlcn0ke3llYXJGb3JtYXR0ZWR9YDtcbiAgICB9XG5cbiAgICByZXR1cm4gYCR7eWVhckZvcm1hdHRlZH0ke2RlbGltaXRlcn0ke21vbnRoRm9ybWF0dGVkfSR7ZGVsaW1pdGVyfSR7ZGF5Rm9ybWF0dGVkfWA7XG4gIH1cblxuICBvbklucHV0Q2hhbmdlKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IHZhbHVlID0gKGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS52YWx1ZTtcblxuICAgIGlmICh2YWx1ZS50cmltKCkgPT09ICcnKSB7XG4gICAgICB0aGlzLmRhdGV0aW1lID0gbmV3IERhdGVUaW1lTW9kZWwoKTtcbiAgICAgIHRoaXMuZGF0ZVN0cmluZyA9ICcnO1xuICAgICAgdGhpcy5vbkNoYW5nZSh0aGlzLmRhdGVTdHJpbmcpO1xuICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgcGFyc2VkRGF0ZSA9IHRoaXMucGFyc2VEYXRlKHZhbHVlKTtcbiAgICBpZiAocGFyc2VkRGF0ZSkge1xuICAgICAgdGhpcy5kYXRldGltZSA9IG5ldyBEYXRlVGltZU1vZGVsKHtcbiAgICAgICAgeWVhcjogcGFyc2VkRGF0ZS55ZWFyLFxuICAgICAgICBtb250aDogcGFyc2VkRGF0ZS5tb250aCxcbiAgICAgICAgZGF5OiBwYXJzZWREYXRlLmRheSxcbiAgICAgICAgaG91cnM6IHRoaXMuZGF0ZXRpbWU/LmhvdXJzIHx8IDAsXG4gICAgICAgIG1pbnV0ZXM6IHRoaXMuZGF0ZXRpbWU/Lm1pbnV0ZXMgfHwgMCxcbiAgICAgICAgc2Vjb25kczogdGhpcy5kYXRldGltZT8uc2Vjb25kcyB8fCAwLFxuICAgICAgfSk7XG4gICAgICB0aGlzLnNldERhdGVTdHJpbmdNb2RlbCgpO1xuICAgICAgdGhpcy5nZW5lcmF0ZUNhbGVuZGFyKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZHQgPSBEYXRlVGltZU1vZGVsLmZyb21Mb2NhbFN0cmluZyh2YWx1ZSk7XG4gICAgaWYgKGR0ICYmIGR0LnllYXIpIHtcbiAgICAgIHRoaXMuZGF0ZXRpbWUgPSBkdDtcbiAgICAgIHRoaXMuc2V0RGF0ZVN0cmluZ01vZGVsKCk7XG4gICAgICB0aGlzLmdlbmVyYXRlQ2FsZW5kYXIoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5vbkNoYW5nZSh2YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgb25EYXRlQ2hhbmdlKGV2ZW50OiBzdHJpbmcgfCBXc2xEYXRlU3RydWN0KTogdm9pZCB7XG4gICAgbGV0IGRhdGU6IERhdGVUaW1lTW9kZWw7XG5cbiAgICBpZiAodHlwZW9mIGV2ZW50ID09PSAnc3RyaW5nJykge1xuICAgICAgZGF0ZSA9IG5ldyBEYXRlVGltZU1vZGVsKHRoaXMucGFyc2VEYXRlKGV2ZW50KSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGRhdGUgPSBuZXcgRGF0ZVRpbWVNb2RlbChldmVudCk7XG4gICAgfVxuXG4gICAgaWYgKCFkYXRlIHx8ICFkYXRlLnllYXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuZGF0ZXRpbWUpIHtcbiAgICAgIHRoaXMuZGF0ZXRpbWUgPSBkYXRlO1xuICAgIH1cblxuICAgIHRoaXMuZGF0ZXRpbWUueWVhciA9IGRhdGUueWVhcjtcbiAgICB0aGlzLmRhdGV0aW1lLm1vbnRoID0gZGF0ZS5tb250aDtcbiAgICB0aGlzLmRhdGV0aW1lLmRheSA9IGRhdGUuZGF5O1xuXG4gICAgdGhpcy5jdXJyZW50WWVhciA9IGRhdGUueWVhcjtcbiAgICB0aGlzLmN1cnJlbnRNb250aCA9IGRhdGUubW9udGg7XG5cbiAgICB0aGlzLnN0YXJ0RGF0ZSA9IHtcbiAgICAgIHllYXI6IGRhdGUueWVhcixcbiAgICAgIG1vbnRoOiBkYXRlLm1vbnRoLFxuICAgIH07XG5cbiAgICB0aGlzLnNldERhdGVTdHJpbmdNb2RlbCgpO1xuICB9XG5cbiAgc2V0RGF0ZVN0cmluZ01vZGVsKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmRhdGV0aW1lICYmIHR5cGVvZiB0aGlzLmRhdGV0aW1lLnllYXIgPT09ICdudW1iZXInKSB7XG4gICAgICB0aGlzLmRhdGVTdHJpbmcgPSB0aGlzLmRhdGV0aW1lLnRvU3RyaW5nKCk7XG4gICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMuZGF0ZVN0cmluZyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZGF0ZVN0cmluZyA9ICcnO1xuICAgICAgdGhpcy5vbkNoYW5nZSh0aGlzLmRhdGVTdHJpbmcpO1xuICAgIH1cblxuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgZ2V0RGlzcGxheVZhbHVlKCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMuZGF0ZXRpbWUgJiYgdGhpcy5kYXRldGltZS55ZWFyKSB7XG4gICAgICBjb25zdCBkYXRlU3RydWN0OiBXc2xEYXRlU3RydWN0ID0ge1xuICAgICAgICB5ZWFyOiB0aGlzLmRhdGV0aW1lLnllYXIsXG4gICAgICAgIG1vbnRoOiB0aGlzLmRhdGV0aW1lLm1vbnRoLFxuICAgICAgICBkYXk6IHRoaXMuZGF0ZXRpbWUuZGF5LFxuICAgICAgfTtcblxuICAgICAgbGV0IGRpc3BsYXlWYWx1ZSA9IHRoaXMuZm9ybWF0RGF0ZShkYXRlU3RydWN0KTtcblxuICAgICAgaWYgKHRoaXMuc2hvd1RpbWVDb250cm9scyAmJiAhdGhpcy5pc0RhdGVPbmx5KSB7XG4gICAgICAgIGNvbnN0IGhvdXIgPVxuICAgICAgICAgIHRoaXMuZGF0ZXRpbWUuaG91cnMgIT09IHVuZGVmaW5lZCA/IHRoaXMuZGF0ZXRpbWUuaG91cnMgOiAwO1xuICAgICAgICBjb25zdCBtaW51dGUgPVxuICAgICAgICAgIHRoaXMuZGF0ZXRpbWUubWludXRlcyAhPT0gdW5kZWZpbmVkID8gdGhpcy5kYXRldGltZS5taW51dGVzIDogMDtcbiAgICAgICAgY29uc3Qgc2Vjb25kID1cbiAgICAgICAgICB0aGlzLmRhdGV0aW1lLnNlY29uZHMgIT09IHVuZGVmaW5lZCA/IHRoaXMuZGF0ZXRpbWUuc2Vjb25kcyA6IDA7XG5cbiAgICAgICAgY29uc3QgaG91ckZvcm1hdHRlZCA9IGhvdXIgPCAxMCA/ICcwJyArIGhvdXIgOiBob3VyLnRvU3RyaW5nKCk7XG4gICAgICAgIGNvbnN0IG1pbnV0ZUZvcm1hdHRlZCA9IG1pbnV0ZSA8IDEwID8gJzAnICsgbWludXRlIDogbWludXRlLnRvU3RyaW5nKCk7XG4gICAgICAgIGNvbnN0IHNlY29uZEZvcm1hdHRlZCA9IHNlY29uZCA8IDEwID8gJzAnICsgc2Vjb25kIDogc2Vjb25kLnRvU3RyaW5nKCk7XG5cbiAgICAgICAgZGlzcGxheVZhbHVlICs9IGAgJHtob3VyRm9ybWF0dGVkfToke21pbnV0ZUZvcm1hdHRlZH1gO1xuXG4gICAgICAgIGlmICh0aGlzLnNlY29uZHMpIHtcbiAgICAgICAgICBkaXNwbGF5VmFsdWUgKz0gYDoke3NlY29uZEZvcm1hdHRlZH1gO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBkaXNwbGF5VmFsdWU7XG4gICAgfVxuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIGlucHV0Qmx1cigpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICB9XG5cbiAgZ2V0RWZmZWN0aXZlRm9ybWF0KCk6IHN0cmluZyB7XG4gICAgbGV0IGZvcm1hdCA9IHRoaXMuaW5wdXREYXRldGltZUZvcm1hdCB8fCBJTlBVVF9EQVRFX0ZPUk1BVFMuREFURV9PTkxZO1xuXG4gICAgaWYgKHRoaXMuc2hvd1RpbWVDb250cm9scyAmJiAhdGhpcy5oYXNUaW1lSW5Gb3JtYXQoZm9ybWF0KSkge1xuICAgICAgZm9ybWF0ICs9IHRoaXMuX3NlY29uZHMgPyAnIEhIOm1tOnNzJyA6ICcgSEg6bW0nO1xuICAgIH1cblxuICAgIHJldHVybiBmb3JtYXQ7XG4gIH1cblxuICBvblRpbWVDaGFuZ2UoZXZlbnQ6IFdzbFRpbWVTdHJ1Y3QpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkgcmV0dXJuO1xuXG4gICAgdGhpcy5kYXRldGltZSA9IG5ldyBEYXRlVGltZU1vZGVsKHtcbiAgICAgIC4uLnRoaXMuZGF0ZXRpbWUsXG4gICAgICBob3VyczogZXZlbnQuaG91cnMsXG4gICAgICBtaW51dGVzOiBldmVudC5taW51dGVzLFxuICAgICAgc2Vjb25kczogZXZlbnQuc2Vjb25kcyxcbiAgICB9KTtcblxuICAgIHRoaXMuc2V0RGF0ZVN0cmluZ01vZGVsKCk7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBoYXNWYWxpZERhdGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhKFxuICAgICAgdGhpcy5kYXRldGltZSAmJlxuICAgICAgdHlwZW9mIHRoaXMuZGF0ZXRpbWUueWVhciA9PT0gJ251bWJlcicgJiZcbiAgICAgIHR5cGVvZiB0aGlzLmRhdGV0aW1lLm1vbnRoID09PSAnbnVtYmVyJyAmJlxuICAgICAgdHlwZW9mIHRoaXMuZGF0ZXRpbWUuZGF5ID09PSAnbnVtYmVyJ1xuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGluaXRpYWxpemVNb250aHNBbmRZZWFycygpOiB2b2lkIHtcbiAgICB0aGlzLm1vbnRocyA9IEFycmF5LmZyb20oeyBsZW5ndGg6IDEyIH0sIChfLCBpKSA9PlxuICAgICAgdGhpcy5nZXRNb250aE5hbWUoaSArIDEpXG4gICAgKTtcbiAgICBjb25zdCBjdXJyZW50WWVhciA9IG5ldyBEYXRlKCkuZ2V0RnVsbFllYXIoKTtcbiAgICBjb25zdCBzdGFydFllYXIgPSB0aGlzLm1pbkRhdGU/LnllYXIgfHwgY3VycmVudFllYXIgLSA1MDtcbiAgICBjb25zdCBlbmRZZWFyID0gdGhpcy5tYXhEYXRlPy55ZWFyIHx8IGN1cnJlbnRZZWFyICsgNTA7XG5cbiAgICB0aGlzLnllYXJzID0gQXJyYXkuZnJvbShcbiAgICAgIHsgbGVuZ3RoOiBlbmRZZWFyIC0gc3RhcnRZZWFyICsgMSB9LFxuICAgICAgKF8sIGkpID0+IGVuZFllYXIgLSBpXG4gICAgKS5zb3J0KChhLCBiKSA9PiBiIC0gYSk7XG4gIH1cblxuICBvbk1vbnRoU2VsZWN0KGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IHNlbGVjdCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MU2VsZWN0RWxlbWVudDtcbiAgICBjb25zdCBuZXdNb250aCA9IHBhcnNlSW50KHNlbGVjdC52YWx1ZSwgMTApO1xuICAgIGlmIChuZXdNb250aCAhPT0gdGhpcy5jdXJyZW50TW9udGgpIHtcbiAgICAgIGNvbnN0IG9sZE1vbnRoID0gdGhpcy5jdXJyZW50TW9udGg7XG4gICAgICB0aGlzLmN1cnJlbnRNb250aCA9IG5ld01vbnRoO1xuICAgICAgdGhpcy5tb250aENoYW5nZWQuZW1pdChuZXdNb250aCk7XG4gICAgICB0aGlzLmdlbmVyYXRlQ2FsZW5kYXIoKTtcbiAgICAgIHRoaXMubmF2aWdhdGUoe1xuICAgICAgICBjdXJyZW50OiB7IHllYXI6IHRoaXMuY3VycmVudFllYXIsIG1vbnRoOiBvbGRNb250aCB9LFxuICAgICAgICBuZXh0OiB7IHllYXI6IHRoaXMuY3VycmVudFllYXIsIG1vbnRoOiBuZXdNb250aCB9LFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgb25ZZWFyU2VsZWN0KGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IHNlbGVjdCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MU2VsZWN0RWxlbWVudDtcbiAgICBjb25zdCBuZXdZZWFyID0gcGFyc2VJbnQoc2VsZWN0LnZhbHVlLCAxMCk7XG4gICAgaWYgKG5ld1llYXIgIT09IHRoaXMuY3VycmVudFllYXIpIHtcbiAgICAgIGNvbnN0IG9sZFllYXIgPSB0aGlzLmN1cnJlbnRZZWFyO1xuICAgICAgdGhpcy5jdXJyZW50WWVhciA9IG5ld1llYXI7XG4gICAgICB0aGlzLmdlbmVyYXRlQ2FsZW5kYXIoKTtcbiAgICAgIHRoaXMubmF2aWdhdGUoe1xuICAgICAgICBjdXJyZW50OiB7IHllYXI6IG9sZFllYXIsIG1vbnRoOiB0aGlzLmN1cnJlbnRNb250aCB9LFxuICAgICAgICBuZXh0OiB7IHllYXI6IG5ld1llYXIsIG1vbnRoOiB0aGlzLmN1cnJlbnRNb250aCB9LFxuICAgICAgfSk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZGF0ZXRpbWUtcGlja2VyLWNvbnRhaW5lclwiPlxuICA8ZGl2IGNsYXNzPVwiaW5wdXQtY29udGFpbmVyXCI+XG4gICAgPGlucHV0XG4gICAgICAjZGF0ZUlucHV0XG4gICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICduZy12YWxpZCc6IG5nQ29udHJvbD8udmFsaWQgPT09IHRydWUsXG4gICAgICAgICduZy1pbnZhbGlkJzogbmdDb250cm9sPy5pbnZhbGlkID09PSB0cnVlLFxuICAgICAgICAnbmctZGlzYWJsZWQnOiBkaXNhYmxlZFxuICAgICAgfVwiXG4gICAgICBjbGFzcz1cImRhdGV0aW1lLWlucHV0XCJcbiAgICAgIChibHVyKT1cImlucHV0Qmx1cigpXCJcbiAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgICBbbmdNb2RlbF09XCJnZXREaXNwbGF5VmFsdWUoKVwiXG4gICAgICAoY2hhbmdlKT1cIm9uSW5wdXRDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgd3NsVG9vbHRpcFxuICAgICAgW3Rvb2x0aXBJY29uT3ZlcmxhcF09XCIxMlwiXG4gICAgICB0b29sdGlwUGxhY2VtZW50PVwidG9wXCJcbiAgICAvPlxuICA8L2Rpdj5cblxuICA8YnV0dG9uXG4gICAgdHlwZT1cImJ1dHRvblwiXG4gICAgY2xhc3M9XCJjYWxlbmRhci1pY29uXCJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgZGlzYWJsZUNhbGVuZGFyXCJcbiAgICBbbmdDbGFzc109XCJ7ICdkaXNhYmxlZC1idG4nOiBkaXNhYmxlZCB8fCBkaXNhYmxlQ2FsZW5kYXIgfVwiXG4gICAgKGNsaWNrKT1cInRvZ2dsZUNhbGVuZGFyKCRldmVudClcIlxuICA+XG4gICAgPGkgY2xhc3M9XCJmYSBmYS1jYWxlbmRhciBmYS1sZ1wiPjwvaT5cbiAgPC9idXR0b24+XG5cbiAgPCEtLSBDdXN0b20gQ2FsZW5kYXIgUG9wb3ZlciAtLT5cbiAgPGRpdlxuICAgIGNsYXNzPVwiY2FsZW5kYXItcG9wb3ZlclwiXG4gICAgW2NsYXNzLnNob3ddPVwic2hvd0NhbGVuZGFyXCJcbiAgICBbY2xhc3MuaGlkZGVuXT1cIiFzaG93Q2FsZW5kYXJcIlxuICAgIFtuZ0NsYXNzXT1cImNhbGVuZGFyUG9zaXRpb25DbGFzc1wiXG4gICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gID5cbiAgICA8ZGl2IGNsYXNzPVwicG9wb3Zlci1jb250ZW50XCI+XG4gICAgICA8ZGl2ICpuZ0lmPVwiIXNob3dUaW1lUGlja2VyVG9nZ2xlXCI+XG4gICAgICAgIDwhLS0gQ3VzdG9tIERhdGUgUGlja2VyIC0tPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY3VzdG9tLWRhdGVwaWNrZXJcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGF0ZXBpY2tlci1oZWFkZXJcIj5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgIGNsYXNzPVwibmF2LWJ0blwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJuYXZpZ2F0ZU1vbnRoKC0xKVwiXG4gICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtY2hldnJvbi1sZWZ0XCI+PC9pPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibW9udGgteWVhci1zZWxlY3RzXCI+XG4gICAgICAgICAgICAgIDxzZWxlY3RcbiAgICAgICAgICAgICAgICBjbGFzcz1cIm1vbnRoLXNlbGVjdFwiXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJjdXJyZW50TW9udGhcIlxuICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwib25Nb250aFNlbGVjdCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPG9wdGlvblxuICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IG1vbnRoIG9mIG1vbnRoczsgbGV0IGkgPSBpbmRleFwiXG4gICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiaSArIDFcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHt7IG1vbnRoIH19XG4gICAgICAgICAgICAgICAgPC9vcHRpb24+XG4gICAgICAgICAgICAgIDwvc2VsZWN0PlxuICAgICAgICAgICAgICA8c2VsZWN0XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ5ZWFyLXNlbGVjdFwiXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJjdXJyZW50WWVhclwiXG4gICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJvblllYXJTZWxlY3QoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IHllYXIgb2YgeWVhcnNcIiBbdmFsdWVdPVwieWVhclwiPlxuICAgICAgICAgICAgICAgICAge3sgeWVhciB9fVxuICAgICAgICAgICAgICAgIDwvb3B0aW9uPlxuICAgICAgICAgICAgICA8L3NlbGVjdD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJuYXYtYnRuXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cIm5hdmlnYXRlTW9udGgoMSlcIlxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWNoZXZyb24tcmlnaHRcIj48L2k+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJkYXRlcGlja2VyLWNhbGVuZGFyXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwid2Vla2RheXNcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndlZWtkYXlcIiAqbmdGb3I9XCJsZXQgZGF5IG9mIHdlZWtkYXlMYWJlbHNcIj5cbiAgICAgICAgICAgICAgICB7eyBkYXkgfX1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRheXNcIj5cbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZGF5LWNlbGxcIlxuICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBkYXkgb2YgY2FsZW5kYXJEYXlzXCJcbiAgICAgICAgICAgICAgICBbY2xhc3Mub3RoZXItbW9udGhdPVwiZGF5Lm90aGVyTW9udGhcIlxuICAgICAgICAgICAgICAgIFtjbGFzcy5zZWxlY3RlZF09XCJkYXkuc2VsZWN0ZWRcIlxuICAgICAgICAgICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCJkYXkuZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgIFtjbGFzcy50b2RheV09XCJkYXkudG9kYXlcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3REYXRlKGRheSlcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3sgZGF5LmRheSB9fVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgKm5nSWY9XCJzaG93VGltZUNvbnRyb2xzICYmICFpc0RhdGVPbmx5XCJcbiAgICAgICAgICBjbGFzcz1cInRvZ2dsZS10aW1lLWJ0blwiXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIiFoYXNWYWxpZERhdGUoKSB8fCBkaXNhYmxlZFwiXG4gICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZURhdGVUaW1lU3RhdGUoJGV2ZW50KVwiXG4gICAgICAgID5cbiAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWNsb2NrIGZhLWNsb2NrLW8gZmEtbGdcIj48L2k+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgKm5nSWY9XCJzaG93VGltZVBpY2tlclRvZ2dsZVwiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgKm5nSWY9XCJzaG93VGltZUNvbnRyb2xzICYmICFpc0RhdGVPbmx5XCJcbiAgICAgICAgICBjbGFzcz1cInRvZ2dsZS1jYWxlbmRhci1idG5cIlxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVEYXRlVGltZVN0YXRlKCRldmVudClcIlxuICAgICAgICA+XG4gICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1jYWxlbmRhciBmYS1sZ1wiPjwvaT5cbiAgICAgICAgPC9idXR0b24+XG5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwidGltZS1waWNrZXItY29udGFpbmVyXCJcbiAgICAgICAgICAqbmdJZj1cInNob3dUaW1lQ29udHJvbHMgJiYgIWlzRGF0ZU9ubHlcIlxuICAgICAgICA+XG4gICAgICAgICAgPCEtLSBDdXN0b20gVGltZSBQaWNrZXIgLS0+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImN1c3RvbS10aW1lcGlja2VyXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGltZS1jb250cm9sc1wiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGltZS1maWVsZFwiPlxuICAgICAgICAgICAgICAgIDxsYWJlbD57eyBkYXRlQ29uZmlnPy50b2tlbnM/LmhvdXJzIHx8IFwiSEhcIiB9fTwvbGFiZWw+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpbWUtaW5wdXQtZ3JvdXBcIj5cbiAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidGltZS1idG5cIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiYWRqdXN0VGltZSgnaG91cnMnLCBob3Vyc1N0ZXAgfHwgMSlcIlxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIWhhc1ZhbGlkRGF0ZSgpIHx8IGRpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1jaGV2cm9uLXVwXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidGltZS1pbnB1dFwiXG4gICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJkYXRldGltZT8uaG91cnMgfHwgMFwiXG4gICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwib25UaW1lRmllbGRDaGFuZ2UoJ2hvdXJzJywgJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhaGFzVmFsaWREYXRlKCkgfHwgZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgICBtaW49XCIwXCJcbiAgICAgICAgICAgICAgICAgICAgbWF4PVwiMjNcIlxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidGltZS1idG5cIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiYWRqdXN0VGltZSgnaG91cnMnLCAtKGhvdXJzU3RlcCB8fCAxKSlcIlxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIWhhc1ZhbGlkRGF0ZSgpIHx8IGRpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1jaGV2cm9uLWRvd25cIj48L2k+XG4gICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpbWUtc2VwYXJhdG9yXCI+OjwvZGl2PlxuXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aW1lLWZpZWxkXCI+XG4gICAgICAgICAgICAgICAgPGxhYmVsPnt7IGRhdGVDb25maWc/LnRva2Vucz8ubWludXRlcyB8fCBcIm1tXCIgfX08L2xhYmVsPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aW1lLWlucHV0LWdyb3VwXCI+XG4gICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInRpbWUtYnRuXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImFkanVzdFRpbWUoJ21pbnV0ZXMnLCBtaW51dGVzU3RlcCB8fCAxKVwiXG4gICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhaGFzVmFsaWREYXRlKCkgfHwgZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWNoZXZyb24tdXBcIj48L2k+XG4gICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0aW1lLWlucHV0XCJcbiAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImRhdGV0aW1lPy5taW51dGVzIHx8IDBcIlxuICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cIm9uVGltZUZpZWxkQ2hhbmdlKCdtaW51dGVzJywgJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhaGFzVmFsaWREYXRlKCkgfHwgZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgICBtaW49XCIwXCJcbiAgICAgICAgICAgICAgICAgICAgbWF4PVwiNTlcIlxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidGltZS1idG5cIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiYWRqdXN0VGltZSgnbWludXRlcycsIC0obWludXRlc1N0ZXAgfHwgMSkpXCJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFoYXNWYWxpZERhdGUoKSB8fCBkaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtY2hldnJvbi1kb3duXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aW1lLXNlcGFyYXRvclwiICpuZ0lmPVwic2Vjb25kc1wiPjo8L2Rpdj5cblxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGltZS1maWVsZFwiICpuZ0lmPVwic2Vjb25kc1wiPlxuICAgICAgICAgICAgICAgIDxsYWJlbD57eyBkYXRlQ29uZmlnPy50b2tlbnM/LnNlY29uZHMgfHwgXCJzc1wiIH19PC9sYWJlbD5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGltZS1pbnB1dC1ncm91cFwiPlxuICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0aW1lLWJ0blwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJhZGp1c3RUaW1lKCdzZWNvbmRzJywgc2Vjb25kc1N0ZXAgfHwgMSlcIlxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIWhhc1ZhbGlkRGF0ZSgpIHx8IGRpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1jaGV2cm9uLXVwXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidGltZS1pbnB1dFwiXG4gICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJkYXRldGltZT8uc2Vjb25kcyB8fCAwXCJcbiAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJvblRpbWVGaWVsZENoYW5nZSgnc2Vjb25kcycsICRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIWhhc1ZhbGlkRGF0ZSgpIHx8IGRpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAgICAgbWluPVwiMFwiXG4gICAgICAgICAgICAgICAgICAgIG1heD1cIjU5XCJcbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInRpbWUtYnRuXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImFkanVzdFRpbWUoJ3NlY29uZHMnLCAtKHNlY29uZHNTdGVwIHx8IDEpKVwiXG4gICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhaGFzVmFsaWREYXRlKCkgfHwgZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWNoZXZyb24tZG93blwiPjwvaT5cbiAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48IS0tIEJhY2tkcm9wIGZvciBjbG9zaW5nIHBvcG92ZXIgLS0+XG48ZGl2XG4gIGNsYXNzPVwiY2FsZW5kYXItYmFja2Ryb3BcIlxuICBbY2xhc3Muc2hvd109XCJzaG93Q2FsZW5kYXJcIlxuICAoY2xpY2spPVwiY2xvc2VDYWxlbmRhcigpXCJcbj48L2Rpdj5cbiJdfQ==
|
|
859
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3NsLWRhdGV0aW1lLXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy13c2wtbGlicmFyeS9zcmMvbGliL2NvbXBvbmVudHMvd3NsLWRhdGV0aW1lLXBpY2tlci93c2wtZGF0ZXRpbWUtcGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLXdzbC1saWJyYXJ5L3NyYy9saWIvY29tcG9uZW50cy93c2wtZGF0ZXRpbWUtcGlja2VyL3dzbC1kYXRldGltZS1waWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM1QixPQUFPLEVBQ0wsYUFBYSxHQUdkLE1BQU0sa0NBQWtDLENBQUM7QUFDMUMsT0FBTyxFQUVMLGlCQUFpQixFQUNqQixTQUFTLEdBQ1YsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQ0wsdUJBQXVCLEVBRXZCLFNBQVMsRUFFVCxZQUFZLEVBQ1osVUFBVSxFQUNWLFlBQVksRUFFWixLQUFLLEVBSUwsTUFBTSxHQUVQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBSXBFLE9BQU8sRUFBRSxjQUFjLEVBQTJCLE1BQU0sdUJBQXVCLENBQUM7QUFDaEYsT0FBTyxFQUNMLFVBQVUsRUFDVixrQkFBa0IsR0FDbkIsTUFBTSwyQ0FBMkMsQ0FBQzs7Ozs7O0FBK0JuRCxNQUFNLE9BQU8sMEJBQTBCO0lBa0dyQyxZQUNVLEdBQWEsRUFDYixhQUErQixFQUMvQixHQUFzQixFQUN0QixLQUFpQjtRQUhqQixRQUFHLEdBQUgsR0FBRyxDQUFVO1FBQ2Isa0JBQWEsR0FBYixhQUFhLENBQWtCO1FBQy9CLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQ3RCLFVBQUss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QkFHZCx1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLDJCQUEyQixDQUFDOzRCQUN6RCxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjt1TEFLUSxVQUFVO3NCQUFsQixLQUFLO2dCQU1GLG1CQUFtQjtzQkFEdEIsS0FBSztnQkFXRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBS0YsWUFBWTtzQkFEZixLQUFLO2dCQXNCSSxZQUFZO3NCQUFyQixNQUFNO2dCQUNHLG1CQUFtQjtzQkFBNUIsTUFBTTtnQkFzQkgsY0FBYztzQkFEakIsS0FBSztnQkFZRixPQUFPO3NCQURWLEtBQUs7Z0JBeUNOLGVBQWU7c0JBRGQsWUFBWTt1QkFBQyxnQkFBZ0IsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFtQjFDLGNBQWM7c0JBRGIsWUFBWTt1QkFBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBUXpDLGNBQWM7c0JBRGIsWUFBWTt1QkFBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBub29wIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICBEYXRlVGltZU1vZGVsLFxuICBXc2xEYXRlU3RydWN0LFxuICBXc2xUaW1lU3RydWN0LFxufSBmcm9tICcuLi8uLi9tb2RlbHMvd3NsLWRhdGUtdGltZS5tb2RlbCc7XG5pbXBvcnQge1xuICBDb250cm9sVmFsdWVBY2Nlc3NvcixcbiAgTkdfVkFMVUVfQUNDRVNTT1IsXG4gIE5nQ29udHJvbCxcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgZm9yd2FyZFJlZixcbiAgSG9zdExpc3RlbmVyLFxuICBJbmplY3RvcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBnZXREYXRlRm9ybWF0Q29uZmlnIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3dzbC1kYXRlLWZvcm1hdHMnO1xuaW1wb3J0IHsgRGF0ZUZvcm1hdENvbmZpZyB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvZGF0ZS1mb3JtYXQuaW50ZXJmYWNlJztcbmltcG9ydCB7IFdzbENvbmZpZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jb25maWcvd3NsLWNvbmZpZy5zZXJ2aWNlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZ2V0Q3VycmVudERhdGUsIGdldEN1cnJlbnREYXRlVGltZU1vZGVsIH0gZnJvbSAnLi4vLi4vdXRpbHMvZGF0ZS10aW1lJztcbmltcG9ydCB7XG4gIFRJTUVfU1RFUFMsXG4gIElOUFVUX0RBVEVfRk9STUFUUyxcbn0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL2RhdGV0aW1lLXBpY2tlci5jb25zdGFudHMnO1xuXG4vLyBXU0wgaW50ZXJmYWNlcyBmb3IgY29tcG9uZW50LXNwZWNpZmljIHR5cGVzXG5leHBvcnQgaW50ZXJmYWNlIFdzbERhdGVwaWNrZXJOYXZpZ2F0ZUV2ZW50IHtcbiAgY3VycmVudDogeyB5ZWFyOiBudW1iZXI7IG1vbnRoOiBudW1iZXIgfTtcbiAgbmV4dDogeyB5ZWFyOiBudW1iZXI7IG1vbnRoOiBudW1iZXIgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDYWxlbmRhckRheSB7XG4gIGRheTogbnVtYmVyO1xuICBtb250aDogbnVtYmVyO1xuICB5ZWFyOiBudW1iZXI7XG4gIG90aGVyTW9udGg6IGJvb2xlYW47XG4gIHNlbGVjdGVkOiBib29sZWFuO1xuICBkaXNhYmxlZDogYm9vbGVhbjtcbiAgdG9kYXk6IGJvb2xlYW47XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3dzbC1kYXRldGltZS1waWNrZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vd3NsLWRhdGV0aW1lLXBpY2tlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3dzbC1kYXRldGltZS1waWNrZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gV3NsRGF0ZXRpbWVQaWNrZXJDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgV3NsRGF0ZXRpbWVQaWNrZXJDb21wb25lbnRcbiAgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25Jbml0LCBPbkRlc3Ryb3ksIE9uQ2hhbmdlc1xue1xuICBASW5wdXQoKSBkYXRlU3RyaW5nITogc3RyaW5nO1xuXG4gIHByaXZhdGUgX2lucHV0RGF0ZXRpbWVGb3JtYXQ/OiBzdHJpbmc7XG4gIHByaXZhdGUgX2lzSW5pdGlhbGl6ZWQgPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBzZXQgaW5wdXREYXRldGltZUZvcm1hdCh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgaWYgKHRoaXMuX2lucHV0RGF0ZXRpbWVGb3JtYXQgPT09IHZhbHVlKSByZXR1cm47XG4gICAgdGhpcy5faW5wdXREYXRldGltZUZvcm1hdCA9IHZhbHVlO1xuICAgIHRoaXMuc2NoZWR1bGVVcGRhdGUoKTtcbiAgfVxuXG4gIGdldCBpbnB1dERhdGV0aW1lRm9ybWF0KCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX2lucHV0RGF0ZXRpbWVGb3JtYXQ7XG4gIH1cblxuICBASW5wdXQoKSBob3Vyc1N0ZXA6IG51bWJlciA9IFRJTUVfU1RFUFMuSE9VUlM7XG4gIEBJbnB1dCgpIG1pbnV0ZXNTdGVwOiBudW1iZXIgPSBUSU1FX1NURVBTLk1JTlVURVM7XG4gIEBJbnB1dCgpIHNlY29uZHNTdGVwOiBudW1iZXIgPSBUSU1FX1NURVBTLlNFQ09ORFM7XG4gIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XG4gIEBJbnB1dCgpIG1heERhdGU6IFdzbERhdGVTdHJ1Y3Q7XG4gIEBJbnB1dCgpIG1pbkRhdGU6IFdzbERhdGVTdHJ1Y3Q7XG4gIEBJbnB1dCgpIGRpc2FibGVDYWxlbmRhciA9IGZhbHNlO1xuICBASW5wdXQoKSBjYWxlbmRhclBvc2l0aW9uOiAnc3RhdGljJyB8ICdkeW5hbWljJyA9ICdkeW5hbWljJztcblxuICBwcml2YXRlIF9hbGxvd2VkRGF0ZXMhOiBXc2xEYXRlU3RydWN0W107XG5cbiAgQElucHV0KClcbiAgc2V0IGFsbG93ZWREYXRlcyh2YWx1ZTogV3NsRGF0ZVN0cnVjdFtdKSB7XG4gICAgdGhpcy5fYWxsb3dlZERhdGVzID0gdmFsdWU7XG4gICAgaWYgKHRoaXMuX2lzSW5pdGlhbGl6ZWQpIHtcbiAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cbiAgfVxuXG4gIGdldCBhbGxvd2VkRGF0ZXMoKTogV3NsRGF0ZVN0cnVjdFtdIHtcbiAgICByZXR1cm4gdGhpcy5fYWxsb3dlZERhdGVzO1xuICB9XG5cbiAgaW50ZXJuYWxGb3JtYXQ6IHN0cmluZyA9IElOUFVUX0RBVEVfRk9STUFUUy5EQVRFX09OTFk7XG4gIHByaXZhdGUgX3N0YW5kYXJkRm9ybWF0OiBzdHJpbmcgPSBJTlBVVF9EQVRFX0ZPUk1BVFMuRVVfREFURV9EQVNIO1xuXG4gIHBsYWNlaG9sZGVyID0gJyc7XG4gIHN0YXJ0RGF0ZTogeyB5ZWFyOiBudW1iZXI7IG1vbnRoOiBudW1iZXIgfSA9IHsgeWVhcjogMCwgbW9udGg6IDAgfTtcbiAgc2hvd1RpbWVQaWNrZXJUb2dnbGUgPSBmYWxzZTtcbiAgZGF0ZXRpbWU6IERhdGVUaW1lTW9kZWwgPSBuZXcgRGF0ZVRpbWVNb2RlbCgpO1xuICBuZ0NvbnRyb2w6IE5nQ29udHJvbCB8IG51bGwgPSBudWxsO1xuICBkYXRlQ29uZmlnITogRGF0ZUZvcm1hdENvbmZpZztcblxuICBAT3V0cHV0KCkgbW9udGhDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG4gIEBPdXRwdXQoKSBjYWxlbmRhclN0YXRlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuICBwcml2YXRlIG9uVG91Y2hlZDogKCkgPT4gdm9pZCA9IG5vb3A7XG4gIHByaXZhdGUgb25DaGFuZ2U6IChfOiBhbnkpID0+IHZvaWQgPSBub29wO1xuICBwcml2YXRlIGxhbmd1YWdlU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgc2hvd1RpbWVDb250cm9scyA9IGZhbHNlO1xuICBwcml2YXRlIF9zZWNvbmRzID0gZmFsc2U7XG4gIHByaXZhdGUgX3VwZGF0ZVBlbmRpbmcgPSBmYWxzZTtcblxuICBzaG93Q2FsZW5kYXIgPSBmYWxzZTtcbiAgY3VycmVudFllYXI6IG51bWJlcjtcbiAgY3VycmVudE1vbnRoOiBudW1iZXI7XG4gIGNhbGVuZGFyRGF5czogQ2FsZW5kYXJEYXlbXSA9IFtdO1xuICB3ZWVrZGF5TGFiZWxzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIGNhbGVuZGFyUG9zaXRpb25DbGFzcyA9ICcnO1xuXG4gIG1vbnRoczogc3RyaW5nW10gPSBbXTtcbiAgeWVhcnM6IG51bWJlcltdID0gW107XG4gIGRlZmF1bHRZZWFyUmFuZ2UgPSB7IHN0YXJ0OiAyMDAwLCBlbmQ6IDIwNTAgfTtcblxuICBASW5wdXQoKVxuICBzZXQgc3RhbmRhcmRGb3JtYXQodmFsdWU6IHN0cmluZykge1xuICAgIGlmICh0aGlzLl9zdGFuZGFyZEZvcm1hdCA9PT0gdmFsdWUpIHJldHVybjtcbiAgICB0aGlzLl9zdGFuZGFyZEZvcm1hdCA9IHZhbHVlO1xuICAgIHRoaXMuc2NoZWR1bGVVcGRhdGUoKTtcbiAgfVxuXG4gIGdldCBzdGFuZGFyZEZvcm1hdCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9zdGFuZGFyZEZvcm1hdDtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHNldCBzZWNvbmRzKHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKHRoaXMuX3NlY29uZHMgPT09IHZhbHVlKSByZXR1cm47XG4gICAgdGhpcy5fc2Vjb25kcyA9IHZhbHVlO1xuICAgIHRoaXMuc2NoZWR1bGVVcGRhdGUoKTtcbiAgfVxuXG4gIGdldCBzZWNvbmRzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9zZWNvbmRzO1xuICB9XG5cbiAgaXNEYXRlT25seSA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgaW5qOiBJbmplY3RvcixcbiAgICBwcml2YXRlIGNvbmZpZ1NlcnZpY2U6IFdzbENvbmZpZ1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgZWxSZWY6IEVsZW1lbnRSZWZcbiAgKSB7XG4gICAgY29uc3QgY3VycmVudERhdGUgPSBnZXRDdXJyZW50RGF0ZSgpO1xuICAgIHRoaXMuY3VycmVudFllYXIgPSBjdXJyZW50RGF0ZS55ZWFyO1xuICAgIHRoaXMuY3VycmVudE1vbnRoID0gY3VycmVudERhdGUubW9udGg7XG5cbiAgICB0aGlzLmRhdGVDb25maWcgPSBnZXREYXRlRm9ybWF0Q29uZmlnKCdlbicpO1xuXG4gICAgdGhpcy5sYW5ndWFnZVN1YnNjcmlwdGlvbiA9IHRoaXMuY29uZmlnU2VydmljZVxuICAgICAgLndhdGNoTGFuZ3VhZ2UoKVxuICAgICAgLnN1YnNjcmliZSgobGFuZ3VhZ2UpID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICB0aGlzLmRhdGVDb25maWcgPSBnZXREYXRlRm9ybWF0Q29uZmlnKGxhbmd1YWdlIHx8ICdlbicpO1xuICAgICAgICAgIHRoaXMudXBkYXRlV2Vla2RheUxhYmVscygpO1xuICAgICAgICAgIHRoaXMuc2NoZWR1bGVVcGRhdGUoKTtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICB0aGlzLmRhdGVDb25maWcgPSBnZXREYXRlRm9ybWF0Q29uZmlnKCdlbicpO1xuICAgICAgICAgIHRoaXMudXBkYXRlV2Vla2RheUxhYmVscygpO1xuICAgICAgICAgIHRoaXMuc2NoZWR1bGVVcGRhdGUoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDpjbGljaycsIFsnJGV2ZW50J10pXG4gIG9uRG9jdW1lbnRDbGljayhldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zaG93Q2FsZW5kYXIpIHtcbiAgICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudDtcbiAgICAgIGNvbnN0IGNhbGVuZGFyRWxlbWVudCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5jYWxlbmRhci1wb3BvdmVyJyk7XG4gICAgICBjb25zdCBidXR0b25FbGVtZW50ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmNhbGVuZGFyLWljb24nKTtcblxuICAgICAgaWYgKFxuICAgICAgICBjYWxlbmRhckVsZW1lbnQgJiZcbiAgICAgICAgYnV0dG9uRWxlbWVudCAmJlxuICAgICAgICAhY2FsZW5kYXJFbGVtZW50LmNvbnRhaW5zKHRhcmdldCkgJiZcbiAgICAgICAgIWJ1dHRvbkVsZW1lbnQuY29udGFpbnModGFyZ2V0KVxuICAgICAgKSB7XG4gICAgICAgIHRoaXMuY2xvc2VDYWxlbmRhcigpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnLCBbJyRldmVudCddKVxuICBvbldpbmRvd1Jlc2l6ZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zaG93Q2FsZW5kYXIgJiYgdGhpcy5jYWxlbmRhclBvc2l0aW9uID09PSAnZHluYW1pYycpIHtcbiAgICAgIHRoaXMuY2FsY3VsYXRlRHluYW1pY1Bvc2l0aW9uKCk7XG4gICAgfVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OnNjcm9sbCcsIFsnJGV2ZW50J10pXG4gIG9uV2luZG93U2Nyb2xsKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnNob3dDYWxlbmRhciAmJiB0aGlzLmNhbGVuZGFyUG9zaXRpb24gPT09ICdkeW5hbWljJykge1xuICAgICAgdGhpcy5jYWxjdWxhdGVEeW5hbWljUG9zaXRpb24oKTtcbiAgICB9XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLm5nQ29udHJvbCA9IHRoaXMuaW5qLmdldChOZ0NvbnRyb2wpO1xuICAgIHRoaXMuX2lzSW5pdGlhbGl6ZWQgPSB0cnVlO1xuICAgIHRoaXMuaW5pdGlhbGl6ZUxhbmd1YWdlQ29uZmlndXJhdGlvbigpO1xuICAgIHRoaXMuaW5pdGlhbGl6ZU1vbnRoc0FuZFllYXJzKCk7XG4gICAgdGhpcy51cGRhdGVXZWVrZGF5TGFiZWxzKCk7XG4gICAgdGhpcy5nZW5lcmF0ZUNhbGVuZGFyKCk7XG4gIH1cblxuICBwcml2YXRlIGluaXRpYWxpemVMYW5ndWFnZUNvbmZpZ3VyYXRpb24oKTogdm9pZCB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGN1cnJlbnRMYW5ndWFnZSA9IHRoaXMuY29uZmlnU2VydmljZS5sYW5ndWFnZTtcbiAgICAgIHRoaXMuZGF0ZUNvbmZpZyA9IGdldERhdGVGb3JtYXRDb25maWcoY3VycmVudExhbmd1YWdlIHx8ICdlbicpO1xuICAgICAgdGhpcy51cGRhdGVDb25maWd1cmF0aW9uKCk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRoaXMuZGF0ZUNvbmZpZyA9IGdldERhdGVGb3JtYXRDb25maWcoJ2VuJyk7XG4gICAgICB0aGlzLnVwZGF0ZUNvbmZpZ3VyYXRpb24oKTtcbiAgICB9XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXNbJ21pbkRhdGUnXSB8fCBjaGFuZ2VzWydtYXhEYXRlJ10pIHtcbiAgICAgIHRoaXMuaW5pdGlhbGl6ZU1vbnRoc0FuZFllYXJzKCk7XG4gICAgICB0aGlzLmdlbmVyYXRlQ2FsZW5kYXIoKTtcbiAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cbiAgICBpZiAoY2hhbmdlc1snYWxsb3dlZERhdGVzJ10pIHtcbiAgICAgIHRoaXMuZ2VuZXJhdGVDYWxlbmRhcigpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmxhbmd1YWdlU3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLmxhbmd1YWdlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgdG9nZ2xlQ2FsZW5kYXIoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgaWYgKCF0aGlzLmRpc2FibGVkICYmICF0aGlzLmRpc2FibGVDYWxlbmRhcikge1xuICAgICAgdGhpcy5zaG93Q2FsZW5kYXIgPSAhdGhpcy5zaG93Q2FsZW5kYXI7XG4gICAgICBpZiAodGhpcy5zaG93Q2FsZW5kYXIpIHtcbiAgICAgICAgdGhpcy5nZW5lcmF0ZUNhbGVuZGFyKCk7XG4gICAgICAgIGlmICh0aGlzLmNhbGVuZGFyUG9zaXRpb24gPT09ICdkeW5hbWljJykge1xuICAgICAgICAgIHRoaXMuY2FsY3VsYXRlRHluYW1pY1Bvc2l0aW9uKCk7XG4gICAgICAgICAgLy8gVXBkYXRlIHRyYW5zZm9ybXMgZm9yIHNob3cgc3RhdGVcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMudXBkYXRlQ2FsZW5kYXJUcmFuc2Zvcm1zKHRydWUpLCAxMCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5jYWxlbmRhclBvc2l0aW9uQ2xhc3MgPSAnJztcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG5cbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLmNhbGVuZGFyU3RhdGVDaGFuZ2UuZW1pdCh0aGlzLnNob3dDYWxlbmRhcik7XG4gICAgICB9LCAwKTtcbiAgICB9XG4gIH1cblxuICBjbG9zZUNhbGVuZGFyKCk6IHZvaWQge1xuICAgIHRoaXMuc2hvd0NhbGVuZGFyID0gZmFsc2U7XG4gICAgdGhpcy5zaG93VGltZVBpY2tlclRvZ2dsZSA9IGZhbHNlO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmNhbGVuZGFyU3RhdGVDaGFuZ2UuZW1pdChmYWxzZSk7XG4gICAgfSwgMCk7XG4gIH1cblxuICBwcml2YXRlIGNhbGN1bGF0ZUR5bmFtaWNQb3NpdGlvbigpOiB2b2lkIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGNvbnN0IGNvbnRhaW5lckVsZW1lbnQgPSB0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICBjb25zdCBjYWxlbmRhckVsZW1lbnQgPSBjb250YWluZXJFbGVtZW50Py5xdWVyeVNlbGVjdG9yKFxuICAgICAgICAnLmNhbGVuZGFyLXBvcG92ZXInXG4gICAgICApIGFzIEhUTUxFbGVtZW50O1xuXG4gICAgICBpZiAoIWNvbnRhaW5lckVsZW1lbnQgfHwgIWNhbGVuZGFyRWxlbWVudCkgcmV0dXJuO1xuXG4gICAgICBjb25zdCBjb250YWluZXJSZWN0ID0gY29udGFpbmVyRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgIGNvbnN0IGNhbGVuZGFySWNvbkVsZW1lbnQgPSBjb250YWluZXJFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoXG4gICAgICAgICcuY2FsZW5kYXItaWNvbidcbiAgICAgICkgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICBjb25zdCBpY29uUmVjdCA9XG4gICAgICAgIGNhbGVuZGFySWNvbkVsZW1lbnQ/LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpIHx8IGNvbnRhaW5lclJlY3Q7XG4gICAgICBjb25zdCB2aWV3cG9ydFdpZHRoID0gd2luZG93LmlubmVyV2lkdGg7XG4gICAgICBjb25zdCB2aWV3cG9ydEhlaWdodCA9IHdpbmRvdy5pbm5lckhlaWdodDtcbiAgICAgIGNvbnN0IGlzTW9iaWxlID0gdmlld3BvcnRXaWR0aCA8PSA1NzY7XG5cbiAgICAgIGNvbnN0IGNhbGVuZGFyV2lkdGggPSBpc01vYmlsZVxuICAgICAgICA/IE1hdGgubWluKGNhbGVuZGFyRWxlbWVudC5vZmZzZXRXaWR0aCB8fCAzNTAsIHZpZXdwb3J0V2lkdGggLSAzMilcbiAgICAgICAgOiBjYWxlbmRhckVsZW1lbnQub2Zmc2V0V2lkdGggfHwgMzUwO1xuICAgICAgY29uc3QgY2FsZW5kYXJIZWlnaHQgPSBjYWxlbmRhckVsZW1lbnQub2Zmc2V0SGVpZ2h0IHx8IDQwMDtcblxuICAgICAgaWYgKGlzTW9iaWxlKSB7XG4gICAgICAgIHRoaXMuYXBwbHlNb2JpbGVQb3NpdGlvbmluZyhcbiAgICAgICAgICBjYWxlbmRhckVsZW1lbnQsXG4gICAgICAgICAgaWNvblJlY3QsXG4gICAgICAgICAgdmlld3BvcnRXaWR0aCxcbiAgICAgICAgICBjYWxlbmRhcldpZHRoXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IHZlcnRpY2FsQ2xhc3MgPSB0aGlzLmdldFZlcnRpY2FsUG9zaXRpb25DbGFzcyhcbiAgICAgICAgICBjb250YWluZXJSZWN0LFxuICAgICAgICAgIHZpZXdwb3J0SGVpZ2h0LFxuICAgICAgICAgIGNhbGVuZGFySGVpZ2h0XG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuY2FsZW5kYXJQb3NpdGlvbkNsYXNzID0gdmVydGljYWxDbGFzcztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuY2xlYXJJbmxpbmVTdHlsZXMoY2FsZW5kYXJFbGVtZW50KTtcbiAgICAgICAgY29uc3QgaG9yaXpvbnRhbENsYXNzID0gdGhpcy5nZXRIb3Jpem9udGFsUG9zaXRpb25DbGFzcyhcbiAgICAgICAgICBjb250YWluZXJSZWN0LFxuICAgICAgICAgIHZpZXdwb3J0V2lkdGgsXG4gICAgICAgICAgY2FsZW5kYXJXaWR0aCxcbiAgICAgICAgICBpc01vYmlsZVxuICAgICAgICApO1xuICAgICAgICBjb25zdCB2ZXJ0aWNhbENsYXNzID0gdGhpcy5nZXRWZXJ0aWNhbFBvc2l0aW9uQ2xhc3MoXG4gICAgICAgICAgY29udGFpbmVyUmVjdCxcbiAgICAgICAgICB2aWV3cG9ydEhlaWdodCxcbiAgICAgICAgICBjYWxlbmRhckhlaWdodFxuICAgICAgICApO1xuICAgICAgICB0aGlzLmNhbGVuZGFyUG9zaXRpb25DbGFzcyA9XG4gICAgICAgICAgYCR7aG9yaXpvbnRhbENsYXNzfSAke3ZlcnRpY2FsQ2xhc3N9YC50cmltKCk7XG4gICAgICB9XG4gICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9LCAwKTtcbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlNb2JpbGVQb3NpdGlvbmluZyhcbiAgICBlbGVtZW50OiBIVE1MRWxlbWVudCxcbiAgICBpY29uUmVjdDogRE9NUmVjdCxcbiAgICB2aWV3cG9ydFdpZHRoOiBudW1iZXIsXG4gICAgY2FsZW5kYXJXaWR0aDogbnVtYmVyXG4gICk6IHZvaWQge1xuICAgIGNvbnN0IHBhZGRpbmcgPSAxNjtcbiAgICBjb25zdCB3b3VsZE92ZXJmbG93UmlnaHQgPVxuICAgICAgaWNvblJlY3QucmlnaHQgKyBjYWxlbmRhcldpZHRoICsgcGFkZGluZyA+IHZpZXdwb3J0V2lkdGg7XG4gICAgY29uc3Qgd291bGRPdmVyZmxvd0xlZnQgPSBpY29uUmVjdC5sZWZ0IC0gY2FsZW5kYXJXaWR0aCAtIHBhZGRpbmcgPCAwO1xuXG4gICAgaWYgKHdvdWxkT3ZlcmZsb3dSaWdodCAmJiB3b3VsZE92ZXJmbG93TGVmdCkge1xuICAgICAgZWxlbWVudC5zdHlsZS5sZWZ0ID0gYCR7KHZpZXdwb3J0V2lkdGggLSBjYWxlbmRhcldpZHRoKSAvIDJ9cHhgO1xuICAgICAgZWxlbWVudC5zdHlsZS5yaWdodCA9ICdhdXRvJztcbiAgICB9IGVsc2UgaWYgKHdvdWxkT3ZlcmZsb3dSaWdodCkge1xuICAgICAgZWxlbWVudC5zdHlsZS5sZWZ0ID0gJ3Vuc2V0JztcbiAgICAgIGVsZW1lbnQuc3R5bGUucmlnaHQgPSAnMCc7XG4gICAgfSBlbHNlIGlmICh3b3VsZE92ZXJmbG93TGVmdCkge1xuICAgICAgZWxlbWVudC5zdHlsZS5sZWZ0ID0gJzAnO1xuICAgICAgZWxlbWVudC5zdHlsZS5yaWdodCA9ICd1bnNldCc7XG4gICAgfSBlbHNlIHtcbiAgICAgIGVsZW1lbnQuc3R5bGUubGVmdCA9ICd1bnNldCc7XG4gICAgICBlbGVtZW50LnN0eWxlLnJpZ2h0ID0gJzAnO1xuICAgIH1cblxuICAgIGVsZW1lbnQuc3R5bGUubWF4V2lkdGggPSBgJHtjYWxlbmRhcldpZHRofXB4YDtcbiAgICBlbGVtZW50LnN0eWxlLnRyYW5zZm9ybSA9ICd0cmFuc2xhdGVZKC0xMHB4KSc7XG4gIH1cblxuICBwcml2YXRlIGNsZWFySW5saW5lU3R5bGVzKGVsZW1lbnQ6IEhUTUxFbGVtZW50KTogdm9pZCB7XG4gICAgZWxlbWVudC5zdHlsZS5sZWZ0ID0gJyc7XG4gICAgZWxlbWVudC5zdHlsZS5yaWdodCA9ICcnO1xuICAgIGVsZW1lbnQuc3R5bGUubWF4V2lkdGggPSAnJztcbiAgICBlbGVtZW50LnN0eWxlLnRyYW5zZm9ybSA9ICcnO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVDYWxlbmRhclRyYW5zZm9ybXMoaXNTaG93OiBib29sZWFuKTogdm9pZCB7XG4gICAgY29uc3QgY29udGFpbmVyRWxlbWVudCA9IHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudDtcbiAgICBpZiAoIWNvbnRhaW5lckVsZW1lbnQpIHJldHVybjtcblxuICAgIGNvbnN0IGNhbGVuZGFyRWxlbWVudCA9IGNvbnRhaW5lckVsZW1lbnQucXVlcnlTZWxlY3RvcihcbiAgICAgICcuY2FsZW5kYXItcG9wb3ZlcidcbiAgICApIGFzIEhUTUxFbGVtZW50O1xuICAgIGlmICghY2FsZW5kYXJFbGVtZW50KSByZXR1cm47XG5cbiAgICBjb25zdCBpc01vYmlsZSA9IHdpbmRvdy5pbm5lcldpZHRoIDw9IDU3NjtcbiAgICBjb25zdCBpc1RvcFBvc2l0aW9uID0gdGhpcy5jYWxlbmRhclBvc2l0aW9uQ2xhc3MuaW5jbHVkZXMoXG4gICAgICAnY2FsZW5kYXItcG9zaXRpb24tdG9wJ1xuICAgICk7XG5cbiAgICBpZiAoXG4gICAgICBpc01vYmlsZSAmJlxuICAgICAgdGhpcy5jYWxlbmRhclBvc2l0aW9uQ2xhc3MuaW5jbHVkZXMoJ2NhbGVuZGFyLW1vYmlsZS1jZW50ZXInKVxuICAgICkge1xuICAgICAgLy8gRHluYW1pYyBtb2JpbGUgY2VudGVyaW5nIHdpdGggcHJvcGVyIHRyYW5zZm9ybXNcbiAgICAgIGlmIChpc1Nob3cpIHtcbiAgICAgICAgY2FsZW5kYXJFbGVtZW50LnN0eWxlLnRyYW5zZm9ybSA9IGlzVG9wUG9zaXRpb25cbiAgICAgICAgICA/ICd0cmFuc2xhdGVZKDApJ1xuICAgICAgICAgIDogJ3RyYW5zbGF0ZVkoMCknO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY2FsZW5kYXJFbGVtZW50LnN0eWxlLnRyYW5zZm9ybSA9IGlzVG9wUG9zaXRpb25cbiAgICAgICAgICA/ICd0cmFuc2xhdGVZKDEwcHgpJ1xuICAgICAgICAgIDogJ3RyYW5zbGF0ZVkoLTEwcHgpJztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldEhvcml6b250YWxQb3NpdGlvbkNsYXNzKFxuICAgIGNvbnRhaW5lclJlY3Q6IERPTVJlY3QsXG4gICAgdmlld3BvcnRXaWR0aDogbnVtYmVyLFxuICAgIGNhbGVuZGFyV2lkdGg6IG51bWJlcixcbiAgICBpc01vYmlsZTogYm9vbGVhblxuICApOiBzdHJpbmcge1xuICAgIGlmIChpc01vYmlsZSkge1xuICAgICAgY29uc3QgbW9iaWxlUGFkZGluZyA9IDE2O1xuXG4gICAgICAvLyBDaGVjayBpZiBjYWxlbmRhciB3b3VsZCBvdmVyZmxvdyB3aGVuIGdyb3dpbmcgcmlnaHQgZnJvbSBpY29uIChkZWZhdWx0KVxuICAgICAgY29uc3Qgd291bGRPdmVyZmxvd1JpZ2h0ID1cbiAgICAgICAgY29udGFpbmVyUmVjdC5yaWdodCArIGNhbGVuZGFyV2lkdGggKyBtb2JpbGVQYWRkaW5nID4gdmlld3BvcnRXaWR0aDtcblxuICAgICAgLy8gQ2hlY2sgaWYgY2FsZW5kYXIgd291bGQgb3ZlcmZsb3cgd2hlbiBncm93aW5nIGxlZnQgZnJvbSBsZWZ0IGVkZ2VcbiAgICAgIGNvbnN0IHdvdWxkT3ZlcmZsb3dMZWZ0ID1cbiAgICAgICAgY29udGFpbmVyUmVjdC5sZWZ0IC0gY2FsZW5kYXJXaWR0aCAtIG1vYmlsZVBhZGRpbmcgPCAwO1xuXG4gICAgICBpZiAod291bGRPdmVyZmxvd1JpZ2h0ICYmIHdvdWxkT3ZlcmZsb3dMZWZ0KSB7XG4gICAgICAgIC8vIE5vIHNwYWNlIG9uIGVpdGhlciBzaWRlIC0gY2VudGVyIGl0XG4gICAgICAgIHJldHVybiAnY2FsZW5kYXItbW9iaWxlLWNlbnRlcic7XG4gICAgICB9XG5cbiAgICAgIGlmICghd291bGRPdmVyZmxvd1JpZ2h0KSB7XG4gICAgICAgIC8vIEZpdHMgZ3Jvd2luZyByaWdodCBmcm9tIGljb24gLSBidXQgc3RpbGwgdXNlIHJpZ2h0IGFsaWdubWVudCB0byBlbnN1cmUgcGFkZGluZ1xuICAgICAgICByZXR1cm4gJ2NhbGVuZGFyLWFsaWduLXJpZ2h0JztcbiAgICAgIH1cblxuICAgICAgLy8gV291bGQgb3ZlcmZsb3cgcmlnaHQgYnV0IGZpdHMgb24gbGVmdCAtIGFsaWduIHRvIGxlZnQgZWRnZVxuICAgICAgcmV0dXJuICdjYWxlbmRhci1hbGlnbi1sZWZ0JztcbiAgICB9XG5cbiAgICAvLyBEZXNrdG9wIGxvZ2ljXG4gICAgY29uc3Qgd291bGRPdmVyZmxvd1JpZ2h0ID1cbiAgICAgIGNvbnRhaW5lclJlY3QucmlnaHQgKyBjYWxlbmRhcldpZHRoID4gdmlld3BvcnRXaWR0aDtcblxuICAgIGlmICghd291bGRPdmVyZmxvd1JpZ2h0KSB7XG4gICAgICByZXR1cm4gJyc7IC8vIERlZmF1bHQgcG9zaXRpb25pbmcgKGdyb3dzIHJpZ2h0IGZyb20gaWNvbilcbiAgICB9XG5cbiAgICBjb25zdCBzcGFjZUxlZnQgPSBjb250YWluZXJSZWN0LmxlZnQ7XG4gICAgaWYgKHNwYWNlTGVmdCA+PSBjYWxlbmRhcldpZHRoKSB7XG4gICAgICByZXR1cm4gJ2NhbGVuZGFyLWFsaWduLWxlZnQnOyAvLyBHcm93IHJpZ2h0IGZyb20gbGVmdCBlZGdlXG4gICAgfVxuXG4gICAgcmV0dXJuICcnOyAvLyBVc2UgZGVmYXVsdCBhcyBmYWxsYmFja1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRWZXJ0aWNhbFBvc2l0aW9uQ2xhc3MoXG4gICAgY29udGFpbmVyUmVjdDogRE9NUmVjdCxcbiAgICB2aWV3cG9ydEhlaWdodDogbnVtYmVyLFxuICAgIGNhbGVuZGFySGVpZ2h0OiBudW1iZXJcbiAgKTogc3RyaW5nIHtcbiAgICBjb25zdCBzcGFjZUJlbG93ID0gdmlld3BvcnRIZWlnaHQgLSBjb250YWluZXJSZWN0LmJvdHRvbTtcbiAgICBjb25zdCBzcGFjZUFib3ZlID0gY29udGFpbmVyUmVjdC50b3A7XG5cbiAgICBpZiAoc3BhY2VCZWxvdyA+PSBjYWxlbmRhckhlaWdodCkgcmV0dXJuICdjYWxlbmRhci1wb3NpdGlvbi1ib3R0b20nO1xuICAgIGlmIChzcGFjZUFib3ZlID49IGNhbGVuZGFySGVpZ2h0KSByZXR1cm4gJ2NhbGVuZGFyLXBvc2l0aW9uLXRvcCc7XG4gICAgcmV0dXJuIHNwYWNlQmVsb3cgPj0gc3BhY2VBYm92ZVxuICAgICAgPyAnY2FsZW5kYXItcG9zaXRpb24tYm90dG9tJ1xuICAgICAgOiAnY2FsZW5kYXItcG9zaXRpb24tdG9wJztcbiAgfVxuXG4gIG5hdmlnYXRlTW9udGgoZGlyZWN0aW9uOiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLmN1cnJlbnRNb250aCArPSBkaXJlY3Rpb247XG4gICAgaWYgKHRoaXMuY3VycmVudE1vbnRoID4gMTIpIHtcbiAgICAgIHRoaXMuY3VycmVudE1vbnRoID0gMTtcbiAgICAgIHRoaXMuY3VycmVudFllYXIrKztcbiAgICB9IGVsc2UgaWYgKHRoaXMuY3VycmVudE1vbnRoIDwgMSkge1xuICAgICAgdGhpcy5jdXJyZW50TW9udGggPSAxMjtcbiAgICAgIHRoaXMuY3VycmVudFllYXItLTtcbiAgICB9XG5cbiAgICB0aGlzLmdlbmVyYXRlQ2FsZW5kYXIoKTtcbiAgICB0aGlzLm1vbnRoQ2hhbmdlZC5lbWl0KHRoaXMuY3VycmVudE1vbnRoKTtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHNlbGVjdERhdGUoZGF5OiBDYWxlbmRhckRheSk6IHZvaWQge1xuICAgIGlmIChkYXkuZGlzYWJsZWQpIHJldHVybjtcblxuICAgIGNvbnN0IHNlbGVjdGVkRGF0ZTogV3NsRGF0ZVN0cnVjdCA9IHtcbiAgICAgIHllYXI6IGRheS55ZWFyLFxuICAgICAgbW9udGg6IGRheS5tb250aCxcbiAgICAgIGRheTogZGF5LmRheSxcbiAgICB9O1xuXG4gICAgdGhpcy5vbkRhdGVDaGFuZ2Uoc2VsZWN0ZWREYXRlKTtcbiAgICB0aGlzLmdlbmVyYXRlQ2FsZW5kYXIoKTtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIGdlbmVyYXRlQ2FsZW5kYXIoKTogdm9pZCB7XG4gICAgY29uc3QgZmlyc3REYXkgPSBuZXcgRGF0ZSh0aGlzLmN1cnJlbnRZZWFyLCB0aGlzLmN1cnJlbnRNb250aCAtIDEsIDEpO1xuICAgIGNvbnN0IHN0YXJ0RGF0ZSA9IG5ldyBEYXRlKGZpcnN0RGF5KTtcbiAgICBjb25zdCB3ZWVrU3RhcnQgPSAodGhpcy5kYXRlQ29uZmlnPy53ZWVrU3RhcnQgPz8gMSkgJSA3O1xuICAgIGNvbnN0IGRheU9mV2VlayA9IChmaXJzdERheS5nZXREYXkoKSArIDcgLSB3ZWVrU3RhcnQpICUgNztcbiAgICBzdGFydERhdGUuc2V0RGF0ZShzdGFydERhdGUuZ2V0RGF0ZSgpIC0gZGF5T2ZXZWVrKTtcblxuICAgIHRoaXMuY2FsZW5kYXJEYXlzID0gW107XG4gICAgY29uc3QgdG9kYXlEYXRlID0gZ2V0Q3VycmVudERhdGUoKTtcbiAgICBjb25zdCB0b2RheSA9IG5ldyBEYXRlKHRvZGF5RGF0ZS55ZWFyLCB0b2RheURhdGUubW9udGggLSAxLCB0b2RheURhdGUuZGF5KTtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgNDI7IGkrKykge1xuICAgICAgY29uc3QgY3VycmVudERhdGUgPSBuZXcgRGF0ZShzdGFydERhdGUpO1xuICAgICAgY3VycmVudERhdGUuc2V0RGF0ZShzdGFydERhdGUuZ2V0RGF0ZSgpICsgaSk7XG5cbiAgICAgIGNvbnN0IGRheVN0cnVjdDogV3NsRGF0ZVN0cnVjdCA9IHtcbiAgICAgICAgeWVhcjogY3VycmVudERhdGUuZ2V0RnVsbFllYXIoKSxcbiAgICAgICAgbW9udGg6IGN1cnJlbnREYXRlLmdldE1vbnRoKCkgKyAxLFxuICAgICAgICBkYXk6IGN1cnJlbnREYXRlLmdldERhdGUoKSxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IGNhbGVuZGFyRGF5OiBDYWxlbmRhckRheSA9IHtcbiAgICAgICAgZGF5OiBjdXJyZW50RGF0ZS5nZXREYXRlKCksXG4gICAgICAgIG1vbnRoOiBjdXJyZW50RGF0ZS5nZXRNb250aCgpICsgMSxcbiAgICAgICAgeWVhcjogY3VycmVudERhdGUuZ2V0RnVsbFllYXIoKSxcbiAgICAgICAgb3RoZXJNb250aDogY3VycmVudERhdGUuZ2V0TW9udGgoKSArIDEgIT09IHRoaXMuY3VycmVudE1vbnRoLFxuICAgICAgICBzZWxlY3RlZDogdGhpcy5pc0RhdGVTZWxlY3RlZChkYXlTdHJ1Y3QpLFxuICAgICAgICBkaXNhYmxlZDogdGhpcy5pc0RhdGVEaXNhYmxlZChkYXlTdHJ1Y3QpLFxuICAgICAgICB0b2RheTogdGhpcy5pc1NhbWVEYXRlKGN1cnJlbnREYXRlLCB0b2RheSksXG4gICAgICB9O1xuXG4gICAgICB0aGlzLmNhbGVuZGFyRGF5cy5wdXNoKGNhbGVuZGFyRGF5KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGlzRGF0ZVNlbGVjdGVkKGRhdGU6IFdzbERhdGVTdHJ1Y3QpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISEoXG4gICAgICB0aGlzLmRhdGV0aW1lICYmXG4gICAgICB0aGlzLmRhdGV0aW1lLnllYXIgPT09IGRhdGUueWVhciAmJlxuICAgICAgdGhpcy5kYXRldGltZS5tb250aCA9PT0gZGF0ZS5tb250aCAmJlxuICAgICAgdGhpcy5kYXRldGltZS5kYXkgPT09IGRhdGUuZGF5XG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgaXNEYXRlRGlzYWJsZWQoZGF0ZTogV3NsRGF0ZVN0cnVjdCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHNlbGVjdGVkRGF0ZSA9IG5ldyBEYXRlKGRhdGUueWVhciwgZGF0ZS5tb250aCAtIDEsIGRhdGUuZGF5KTtcbiAgICBjb25zdCB0b2RheURhdGUgPSBnZXRDdXJyZW50RGF0ZSgpO1xuICAgIGNvbnN0IHRvZGF5ID0gbmV3IERhdGUodG9kYXlEYXRlLnllYXIsIHRvZGF5RGF0ZS5tb250aCAtIDEsIHRvZGF5RGF0ZS5kYXkpO1xuICAgIHRvZGF5LnNldEhvdXJzKDAsIDAsIDAsIDApO1xuXG4gICAgaWYgKHRoaXMubWF4RGF0ZSkge1xuICAgICAgY29uc3QgbWF4RGF0ZSA9IG5ldyBEYXRlKFxuICAgICAgICB0aGlzLm1heERhdGUueWVhcixcbiAgICAgICAgdGhpcy5tYXhEYXRlLm1vbnRoIC0gMSxcbiAgICAgICAgdGhpcy5tYXhEYXRlLmRheVxuICAgICAgKTtcbiAgICAgIGlmIChzZWxlY3RlZERhdGUgPiBtYXhEYXRlKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0aGlzLm1pbkRhdGUpIHtcbiAgICAgIGNvbnN0IG1pbkRhdGUgPSBuZXcgRGF0ZShcbiAgICAgICAgdGhpcy5taW5EYXRlLnllYXIsXG4gICAgICAgIHRoaXMubWluRGF0ZS5tb250aCAtIDEsXG4gICAgICAgIHRoaXMubWluRGF0ZS5kYXlcbiAgICAgICk7XG4gICAgICBpZiAoc2VsZWN0ZWREYXRlIDwgbWluRGF0ZSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICB0aGlzLmFsbG93ZWREYXRlcyAmJlxuICAgICAgdGhpcy5hbGxvd2VkRGF0ZXMubGVuZ3RoID09PSAxICYmXG4gICAgICB0aGlzLmFsbG93ZWREYXRlc1swXS5kYXkgPT09IC0xXG4gICAgKSB7XG4gICAgICByZXR1cm4gc2VsZWN0ZWREYXRlID4gdG9kYXk7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLmFsbG93ZWREYXRlcyB8fCB0aGlzLmFsbG93ZWREYXRlcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGNvbnN0IGlzQWxsb3dlZCA9IHRoaXMuYWxsb3dlZERhdGVzLmZpbmQoXG4gICAgICAoZGF5QWxsb3dlZCkgPT5cbiAgICAgICAgZGF5QWxsb3dlZC55ZWFyID09PSBkYXRlLnllYXIgJiZcbiAgICAgICAgZGF5QWxsb3dlZC5tb250aCA9PT0gZGF0ZS5tb250aCAmJlxuICAgICAgICBkYXlBbGxvd2VkLmRheSA9PT0gZGF0ZS5kYXlcbiAgICApO1xuXG4gICAgcmV0dXJuICFpc0FsbG93ZWQ7XG4gIH1cblxuICBwcml2YXRlIGlzU2FtZURhdGUoZGF0ZTE6IERhdGUsIGRhdGUyOiBEYXRlKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgIGRhdGUxLmdldEZ1bGxZZWFyKCkgPT09IGRhdGUyLmdldEZ1bGxZZWFyKCkgJiZcbiAgICAgIGRhdGUxLmdldE1vbnRoKCkgPT09IGRhdGUyLmdldE1vbnRoKCkgJiZcbiAgICAgIGRhdGUxLmdldERhdGUoKSA9PT0gZGF0ZTIuZ2V0RGF0ZSgpXG4gICAgKTtcbiAgfVxuXG4gIGdldE1vbnRoTmFtZShtb250aDogbnVtYmVyKTogc3RyaW5nIHtcbiAgICBjb25zdCBtb250aEluZGV4ID0gbW9udGggLSAxO1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLmRhdGVDb25maWc/Lm1vbnRoTmFtZXM/Llttb250aEluZGV4XSB8fFxuICAgICAgZ2V0RGF0ZUZvcm1hdENvbmZpZygnZW4nKS5tb250aE5hbWVzW21vbnRoSW5kZXhdXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlV2Vla2RheUxhYmVscygpOiB2b2lkIHtcbiAgICB0aGlzLndlZWtkYXlMYWJlbHMgPVxuICAgICAgdGhpcy5kYXRlQ29uZmlnPy53ZWVrZGF5TGFiZWxzIHx8IGdldERhdGVGb3JtYXRDb25maWcoJ2VuJykud2Vla2RheUxhYmVscztcbiAgfVxuXG4gIGFkanVzdFRpbWUoZmllbGQ6ICdob3VycycgfCAnbWludXRlcycgfCAnc2Vjb25kcycsIHN0ZXA6IG51bWJlcik6IHZvaWQge1xuICAgIGlmICh0aGlzLmRpc2FibGVkKSByZXR1cm47XG5cbiAgICBjb25zdCBjdXJyZW50VmFsdWUgPSB0aGlzLmRhdGV0aW1lW2ZpZWxkXSB8fCAwO1xuICAgIGxldCBuZXdWYWx1ZTogbnVtYmVyO1xuXG4gICAgaWYgKHN0ZXAgPiAwKSB7XG4gICAgICBuZXdWYWx1ZSA9IGN1cnJlbnRWYWx1ZSArIHN0ZXA7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHN0ZXBTaXplID0gTWF0aC5hYnMoc3RlcCk7XG4gICAgICBuZXdWYWx1ZSA9IGN1cnJlbnRWYWx1ZSAtIHN0ZXBTaXplO1xuICAgIH1cblxuICAgIHN3aXRjaCAoZmllbGQpIHtcbiAgICAgIGNhc2UgJ2hvdXJzJzpcbiAgICAgICAgaWYgKG5ld1ZhbHVlIDwgMCkge1xuICAgICAgICAgIG5ld1ZhbHVlID0gMjQgKyAobmV3VmFsdWUgJSAyNCk7XG4gICAgICAgIH0gZWxzZSBpZiAobmV3VmFsdWUgPiAyMykge1xuICAgICAgICAgIG5ld1ZhbHVlID0gbmV3VmFsdWUgJSAyNDtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ21pbnV0ZXMnOlxuICAgICAgY2FzZSAnc2Vjb25kcyc6XG4gICAgICAgIGlmIChuZXdWYWx1ZSA8IDApIHtcbiAgICAgICAgICBuZXdWYWx1ZSA9IDYwICsgKG5ld1ZhbHVlICUgNjApO1xuICAgICAgICB9IGVsc2UgaWYgKG5ld1ZhbHVlID4gNTkpIHtcbiAgICAgICAgICBuZXdWYWx1ZSA9IG5ld1ZhbHVlICUgNjA7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgdGhpcy5kYXRldGltZVtmaWVsZF0gPSBuZXdWYWx1ZTtcbiAgICB0aGlzLnNldERhdGVTdHJpbmdNb2RlbCgpO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgb25UaW1lRmllbGRDaGFuZ2UoXG4gICAgZmllbGQ6ICdob3VycycgfCAnbWludXRlcycgfCAnc2Vjb25kcycsXG4gICAgZXZlbnQ6IEV2ZW50XG4gICk6IHZvaWQge1xuICAgIGNvbnN0IGlucHV0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgbGV0IHZhbHVlID0gcGFyc2VJbnQoaW5wdXQudmFsdWUsIDEwKTtcblxuICAgIGlmIChpc05hTih2YWx1ZSkpIHtcbiAgICAgIHZhbHVlID0gMDtcbiAgICB9XG5cbiAgICBzd2l0Y2ggKGZpZWxkKSB7XG4gICAgICBjYXNlICdob3Vycyc6XG4gICAgICAgIGlmICh2YWx1ZSA8IDApIHZhbHVlID0gMDtcbiAgICAgICAgaWYgKHZhbHVlID4gMjMpIHZhbHVlID0gMjM7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnbWludXRlcyc6XG4gICAgICBjYXNlICdzZWNvbmRzJzpcbiAgICAgICAgaWYgKHZhbHVlIDwgMCkgdmFsdWUgPSAwO1xuICAgICAgICBpZiAodmFsdWUgPiA1OSkgdmFsdWUgPSA1OTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgaW5wdXQudmFsdWUgPSB2YWx1ZS50b1N0cmluZygpLnBhZFN0YXJ0KDIsICcwJyk7XG5cbiAgICB0aGlzLmRhdGV0aW1lW2ZpZWxkXSA9IHZhbHVlO1xuICAgIHRoaXMuc2V0RGF0ZVN0cmluZ01vZGVsKCk7XG4gIH1cblxuICBwcml2YXRlIHNjaGVkdWxlVXBkYXRlKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5faXNJbml0aWFsaXplZCB8fCB0aGlzLl91cGRhdGVQZW5kaW5nKSByZXR1cm47XG5cbiAgICB0aGlzLl91cGRhdGVQZW5kaW5nID0gdHJ1ZTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuX3VwZGF0ZVBlbmRpbmcgPSBmYWxzZTtcbiAgICAgIHRoaXMudXBkYXRlQ29uZmlndXJhdGlvbigpO1xuICAgIH0sIDApO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVDb25maWd1cmF0aW9uKCk6IHZvaWQge1xuICAgIHRoaXMuZGV0ZWN0VGltZUNvbXBvbmVudHMoKTtcbiAgICB0aGlzLnNldFN0YW5kYXJkRm9ybWF0KCk7XG4gICAgdGhpcy5zZXRQbGFjZWhvbGRlcigpO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHJpdmF0ZSBkZXRlY3RUaW1lQ29tcG9uZW50cygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pbnB1dERhdGV0aW1lRm9ybWF0KSB7XG4gICAgICBjb25zdCBoYXNUaW1lRm9ybWF0ID0gdGhpcy5oYXNUaW1lSW5Gb3JtYXQodGhpcy5pbnB1dERhdGV0aW1lRm9ybWF0KTtcblxuICAgICAgaWYgKCFoYXNUaW1lRm9ybWF0KSB7XG4gICAgICAgIHRoaXMuc2hvd1RpbWVDb250cm9scyA9IGZhbHNlO1xuICAgICAgICB0aGlzLl9zZWNvbmRzID0gZmFsc2U7XG4gICAgICAgIHRoaXMuaXNEYXRlT25seSA9IHRydWU7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgdGhpcy5zaG93VGltZUNvbnRyb2xzID0gdHJ1ZTtcbiAgICAgIHRoaXMuaXNEYXRlT25seSA9IGZhbHNlO1xuICAgICAgdGhpcy5fc2Vjb25kcyA9IHRoaXMuaW5wdXREYXRldGltZUZvcm1hdC5pbmNsdWRlcygnOnNzJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2hvd1RpbWVDb250cm9scyA9IHRoaXMuX3NlY29uZHM7XG4gICAgICB0aGlzLmlzRGF0ZU9ubHkgPSAhdGhpcy5fc2Vjb25kcztcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGhhc1RpbWVJbkZvcm1hdChmb3JtYXQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICBmb3JtYXQuaW5jbHVkZXMoJ0hIOicpIHx8XG4gICAgICBmb3JtYXQuaW5jbHVkZXMoJ2hoOicpIHx8XG4gICAgICBmb3JtYXQuaW5jbHVkZXMoJzptbScpIHx8XG4gICAgICBmb3JtYXQuaW5jbHVkZXMoJzpzcycpXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0U3RhbmRhcmRGb3JtYXQoKTogdm9pZCB7XG4gICAgdGhpcy5pbnRlcm5hbEZvcm1hdCA9XG4gICAgICB0aGlzLmlucHV0RGF0ZXRpbWVGb3JtYXQgfHwgSU5QVVRfREFURV9GT1JNQVRTLkRBVEVfT05MWTtcbiAgICB0aGlzLl9zdGFuZGFyZEZvcm1hdCA9IHRoaXMuaW50ZXJuYWxGb3JtYXQ7XG5cbiAgICBpZiAodGhpcy5zaG93VGltZUNvbnRyb2xzICYmICF0aGlzLmhhc1RpbWVJbkZvcm1hdCh0aGlzLl9zdGFuZGFyZEZvcm1hdCkpIHtcbiAgICAgIHRoaXMuX3N0YW5kYXJkRm9ybWF0ICs9IHRoaXMuX3NlY29uZHMgPyAnIEhIOm1tOnNzJyA6ICcgSEg6bW0nO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0UGxhY2Vob2xkZXIoKTogdm9pZCB7XG4gICAgdGhpcy5wbGFjZWhvbGRlciA9XG4gICAgICB0aGlzLmRhdGVDb25maWc/LnBsYWNlaG9sZGVyPy50b0xvd2VyQ2FzZSgpIHx8XG4gICAgICBJTlBVVF9EQVRFX0ZPUk1BVFMuREFURV9PTkxZLnRvTG93ZXJDYXNlKCk7XG5cbiAgICBpZiAodGhpcy5zaG93VGltZUNvbnRyb2xzKSB7XG4gICAgICB0aGlzLnBsYWNlaG9sZGVyICs9IHRoaXMuX3NlY29uZHMgPyAnIGhoOm1tOnNzJyA6ICcgaGg6bW0nO1xuICAgIH1cbiAgfVxuXG4gIHdyaXRlVmFsdWUobmV3TW9kZWw6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmIChuZXdNb2RlbCkge1xuICAgICAgY29uc3QgcGFyc2VkTW9kZWwgPSBEYXRlVGltZU1vZGVsLmZyb21Mb2NhbFN0cmluZyhuZXdNb2RlbCwgZmFsc2UpO1xuXG4gICAgICBpZiAocGFyc2VkTW9kZWwgJiYgdHlwZW9mIHBhcnNlZE1vZGVsLnllYXIgPT09ICdudW1iZXInKSB7XG4gICAgICAgIHRoaXMuZGF0ZXRpbWUgPSBPYmplY3QuYXNzaWduKFxuICAgICAgICAgIHRoaXMuZGF0ZXRpbWUgfHwgbmV3IERhdGVUaW1lTW9kZWwoKSxcbiAgICAgICAgICBwYXJzZWRNb2RlbFxuICAgICAgICApO1xuICAgICAgICB0aGlzLmRhdGVTdHJpbmcgPSBuZXdNb2RlbDtcbiAgICAgICAgdGhpcy5zZXREYXRlU3RyaW5nTW9kZWwoKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5kYXRldGltZSA9IG5ldyBEYXRlVGltZU1vZGVsKCk7XG4gICAgICB0aGlzLmRhdGVTdHJpbmcgPSAnJztcbiAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cbiAgfVxuXG4gIG5hdmlnYXRlKGV2ZW50OiBXc2xEYXRlcGlja2VyTmF2aWdhdGVFdmVudCk6IHZvaWQge1xuICAgIGlmIChldmVudD8uY3VycmVudCAmJiBldmVudD8uY3VycmVudC5tb250aCAhPT0gZXZlbnQ/Lm5leHQubW9udGgpIHtcbiAgICAgIHRoaXMubW9udGhDaGFuZ2VkLmVtaXQoZXZlbnQ/Lm5leHQubW9udGgpO1xuICAgIH1cbiAgfVxuXG4gIGlzRGlzYWJsZWQoXG4gICAgZGF0ZXM6IFdzbERhdGVTdHJ1Y3RbXVxuICApOiAoXG4gICAgZGF0ZTogV3NsRGF0ZVN0cnVjdCxcbiAgICBjdXJyZW50PzogeyB5ZWFyOiBudW1iZXI7IG1vbnRoOiBudW1iZXIgfVxuICApID0+IGJvb2xlYW4ge1xuICAgIHJldHVybiAocGlja2VyRGF0ZTogV3NsRGF0ZVN0cnVjdCkgPT4ge1xuICAgICAgY29uc3Qgb3JpZ2luYWxBbGxvd2VkRGF0ZXMgPSB0aGlzLmFsbG93ZWREYXRlcztcbiAgICAgIHRoaXMuYWxsb3dlZERhdGVzID0gZGF0ZXM7XG4gICAgICBjb25zdCByZXN1bHQgPSB0aGlzLmlzRGF0ZURpc2FibGVkKHBpY2tlckRhdGUpO1xuICAgICAgdGhpcy5hbGxvd2VkRGF0ZXMgPSBvcmlnaW5hbEFsbG93ZWREYXRlcztcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfTtcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gIH1cblxuICB0b2dnbGVEYXRlVGltZVN0YXRlKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmhhc1ZhbGlkRGF0ZSgpKSB7XG4gICAgICB0aGlzLnNob3dUaW1lUGlja2VyVG9nZ2xlID0gIXRoaXMuc2hvd1RpbWVQaWNrZXJUb2dnbGU7XG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlPyhpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwcml2YXRlIGdldERlbGltaXRlcigpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLmRhdGVDb25maWc/LmZvcm1hdCkge1xuICAgICAgY29uc3QgbWF0Y2ggPSB0aGlzLmRhdGVDb25maWcuZm9ybWF0Lm1hdGNoKC9bXmEtekEtWjAtOV0vKTtcbiAgICAgIGlmIChtYXRjaCAmJiBtYXRjaFswXSkge1xuICAgICAgICByZXR1cm4gbWF0Y2hbMF07XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmRhdGVDb25maWc/LmRhdGVTZXBhcmF0b3IgfHwgJy0nO1xuICB9XG5cbiAgcHJpdmF0ZSBwYXJzZURhdGUodmFsdWU6IHN0cmluZyk6IFdzbERhdGVTdHJ1Y3QgfCBudWxsIHtcbiAgICBpZiAoIXZhbHVlKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCBkZWxpbWl0ZXIgPSB0aGlzLmdldERlbGltaXRlcigpO1xuICAgIGNvbnN0IGRhdGUgPSB2YWx1ZS5zcGxpdChkZWxpbWl0ZXIpO1xuXG4gICAgaWYgKGRhdGUubGVuZ3RoIDwgMykge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIGlmICh0aGlzLmRhdGVDb25maWc/LmRheUZpcnN0KSB7XG4gICAgICAgIGNvbnN0IGRheSA9IHBhcnNlSW50KGRhdGVbMF0sIDEwKTtcbiAgICAgICAgY29uc3QgbW9udGggPSBwYXJzZUludChkYXRlWzFdLCAxMCk7XG4gICAgICAgIGNvbnN0IHllYXIgPSBwYXJzZUludChkYXRlWzJdLCAxMCk7XG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgIGlzTmFOKGRheSkgfHxcbiAgICAgICAgICBpc05hTihtb250aCkgfHxcbiAgICAgICAgICBpc05hTih5ZWFyKSB8fFxuICAgICAgICAgIGRheSA8IDEgfHxcbiAgICAgICAgICBkYXkgPiAzMSB8fFxuICAgICAgICAgIG1vbnRoIDwgMSB8fFxuICAgICAgICAgIG1vbnRoID4gMTJcbiAgICAgICAgKSB7XG4gICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4geyBkYXksIG1vbnRoLCB5ZWFyIH07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBGb3JtYXQ6IElOUFVUX0RBVEVfRk9STUFUUy5EQVRFX09OTFkgKHl5eXktTU0tZGQpXG4gICAgICAgIGNvbnN0IHllYXIgPSBwYXJzZUludChkYXRlWzBdLCAxMCk7XG4gICAgICAgIGNvbnN0IG1vbnRoID0gcGFyc2VJbnQoZGF0ZVsxXSwgMTApO1xuICAgICAgICBjb25zdCBkYXkgPSBwYXJzZUludChkYXRlWzJdLCAxMCk7XG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgIGlzTmFOKGRheSkgfHxcbiAgICAgICAgICBpc05hTihtb250aCkgfHxcbiAgICAgICAgICBpc05hTih5ZWFyKSB8fFxuICAgICAgICAgIGRheSA8IDEgfHxcbiAgICAgICAgICBkYXkgPiAzMSB8fFxuICAgICAgICAgIG1vbnRoIDwgMSB8fFxuICAgICAgICAgIG1vbnRoID4gMTJcbiAgICAgICAgKSB7XG4gICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4geyB5ZWFyLCBtb250aCwgZGF5IH07XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZm9ybWF0RGF0ZShkYXRlOiBXc2xEYXRlU3RydWN0IHwgbnVsbCk6IHN0cmluZyB7XG4gICAgaWYgKCFkYXRlKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuXG4gICAgY29uc3QgZGVsaW1pdGVyID0gdGhpcy5nZXREZWxpbWl0ZXIoKTtcbiAgICBjb25zdCBkYXlGb3JtYXR0ZWQgPSBkYXRlLmRheSA8IDEwID8gJzAnICsgZGF0ZS5kYXkgOiBkYXRlLmRheS50b1N0cmluZygpO1xuICAgIGNvbnN0IG1vbnRoRm9ybWF0dGVkID1cbiAgICAgIGRhdGUubW9udGggPCAxMCA/ICcwJyArIGRhdGUubW9udGggOiBkYXRlLm1vbnRoLnRvU3RyaW5nKCk7XG4gICAgY29uc3QgeWVhckZvcm1hdHRlZCA9IGRhdGUueWVhci50b1N0cmluZygpO1xuXG4gICAgaWYgKHRoaXMuZGF0ZUNvbmZpZz8uZGF5Rmlyc3QpIHtcbiAgICAgIHJldHVybiBgJHtkYXlGb3JtYXR0ZWR9JHtkZWxpbWl0ZXJ9JHttb250aEZvcm1hdHRlZH0ke2RlbGltaXRlcn0ke3llYXJGb3JtYXR0ZWR9YDtcbiAgICB9XG5cbiAgICByZXR1cm4gYCR7eWVhckZvcm1hdHRlZH0ke2RlbGltaXRlcn0ke21vbnRoRm9ybWF0dGVkfSR7ZGVsaW1pdGVyfSR7ZGF5Rm9ybWF0dGVkfWA7XG4gIH1cblxuICBvbklucHV0Q2hhbmdlKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IHZhbHVlID0gKGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS52YWx1ZTtcblxuICAgIGlmICh2YWx1ZS50cmltKCkgPT09ICcnKSB7XG4gICAgICB0aGlzLmRhdGV0aW1lID0gbmV3IERhdGVUaW1lTW9kZWwoKTtcbiAgICAgIHRoaXMuZGF0ZVN0cmluZyA9ICcnO1xuICAgICAgdGhpcy5vbkNoYW5nZSh0aGlzLmRhdGVTdHJpbmcpO1xuICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgcGFyc2VkRGF0ZSA9IHRoaXMucGFyc2VEYXRlKHZhbHVlKTtcbiAgICBpZiAocGFyc2VkRGF0ZSkge1xuICAgICAgdGhpcy5kYXRldGltZSA9IG5ldyBEYXRlVGltZU1vZGVsKHtcbiAgICAgICAgeWVhcjogcGFyc2VkRGF0ZS55ZWFyLFxuICAgICAgICBtb250aDogcGFyc2VkRGF0ZS5tb250aCxcbiAgICAgICAgZGF5OiBwYXJzZWREYXRlLmRheSxcbiAgICAgICAgaG91cnM6IHRoaXMuZGF0ZXRpbWU/LmhvdXJzIHx8IDAsXG4gICAgICAgIG1pbnV0ZXM6IHRoaXMuZGF0ZXRpbWU/Lm1pbnV0ZXMgfHwgMCxcbiAgICAgICAgc2Vjb25kczogdGhpcy5kYXRldGltZT8uc2Vjb25kcyB8fCAwLFxuICAgICAgfSk7XG4gICAgICB0aGlzLnNldERhdGVTdHJpbmdNb2RlbCgpO1xuICAgICAgdGhpcy5nZW5lcmF0ZUNhbGVuZGFyKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZHQgPSBEYXRlVGltZU1vZGVsLmZyb21Mb2NhbFN0cmluZyh2YWx1ZSk7XG4gICAgaWYgKGR0ICYmIGR0LnllYXIpIHtcbiAgICAgIHRoaXMuZGF0ZXRpbWUgPSBkdDtcbiAgICAgIHRoaXMuc2V0RGF0ZVN0cmluZ01vZGVsKCk7XG4gICAgICB0aGlzLmdlbmVyYXRlQ2FsZW5kYXIoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5vbkNoYW5nZSh2YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgb25EYXRlQ2hhbmdlKGV2ZW50OiBzdHJpbmcgfCBXc2xEYXRlU3RydWN0KTogdm9pZCB7XG4gICAgbGV0IGRhdGU6IERhdGVUaW1lTW9kZWw7XG5cbiAgICBpZiAodHlwZW9mIGV2ZW50ID09PSAnc3RyaW5nJykge1xuICAgICAgZGF0ZSA9IG5ldyBEYXRlVGltZU1vZGVsKHRoaXMucGFyc2VEYXRlKGV2ZW50KSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGRhdGUgPSBuZXcgRGF0ZVRpbWVNb2RlbChldmVudCk7XG4gICAgfVxuXG4gICAgaWYgKCFkYXRlIHx8ICFkYXRlLnllYXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuZGF0ZXRpbWUpIHtcbiAgICAgIHRoaXMuZGF0ZXRpbWUgPSBkYXRlO1xuICAgIH1cblxuICAgIHRoaXMuZGF0ZXRpbWUueWVhciA9IGRhdGUueWVhcjtcbiAgICB0aGlzLmRhdGV0aW1lLm1vbnRoID0gZGF0ZS5tb250aDtcbiAgICB0aGlzLmRhdGV0aW1lLmRheSA9IGRhdGUuZGF5O1xuXG4gICAgdGhpcy5jdXJyZW50WWVhciA9IGRhdGUueWVhcjtcbiAgICB0aGlzLmN1cnJlbnRNb250aCA9IGRhdGUubW9udGg7XG5cbiAgICB0aGlzLnN0YXJ0RGF0ZSA9IHtcbiAgICAgIHllYXI6IGRhdGUueWVhcixcbiAgICAgIG1vbnRoOiBkYXRlLm1vbnRoLFxuICAgIH07XG5cbiAgICB0aGlzLnNldERhdGVTdHJpbmdNb2RlbCgpO1xuICB9XG5cbiAgc2V0RGF0ZVN0cmluZ01vZGVsKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmRhdGV0aW1lICYmIHR5cGVvZiB0aGlzLmRhdGV0aW1lLnllYXIgPT09ICdudW1iZXInKSB7XG4gICAgICB0aGlzLmRhdGVTdHJpbmcgPSB0aGlzLmRhdGV0aW1lLnRvU3RyaW5nKCk7XG4gICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMuZGF0ZVN0cmluZyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZGF0ZVN0cmluZyA9ICcnO1xuICAgICAgdGhpcy5vbkNoYW5nZSh0aGlzLmRhdGVTdHJpbmcpO1xuICAgIH1cblxuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgZ2V0RGlzcGxheVZhbHVlKCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMuZGF0ZXRpbWUgJiYgdGhpcy5kYXRldGltZS55ZWFyKSB7XG4gICAgICBjb25zdCBkYXRlU3RydWN0OiBXc2xEYXRlU3RydWN0ID0ge1xuICAgICAgICB5ZWFyOiB0aGlzLmRhdGV0aW1lLnllYXIsXG4gICAgICAgIG1vbnRoOiB0aGlzLmRhdGV0aW1lLm1vbnRoLFxuICAgICAgICBkYXk6IHRoaXMuZGF0ZXRpbWUuZGF5LFxuICAgICAgfTtcblxuICAgICAgbGV0IGRpc3BsYXlWYWx1ZSA9IHRoaXMuZm9ybWF0RGF0ZShkYXRlU3RydWN0KTtcblxuICAgICAgaWYgKHRoaXMuc2hvd1RpbWVDb250cm9scyAmJiAhdGhpcy5pc0RhdGVPbmx5KSB7XG4gICAgICAgIGNvbnN0IGhvdXIgPVxuICAgICAgICAgIHRoaXMuZGF0ZXRpbWUuaG91cnMgIT09IHVuZGVmaW5lZCA/IHRoaXMuZGF0ZXRpbWUuaG91cnMgOiAwO1xuICAgICAgICBjb25zdCBtaW51dGUgPVxuICAgICAgICAgIHRoaXMuZGF0ZXRpbWUubWludXRlcyAhPT0gdW5kZWZpbmVkID8gdGhpcy5kYXRldGltZS5taW51dGVzIDogMDtcbiAgICAgICAgY29uc3Qgc2Vjb25kID1cbiAgICAgICAgICB0aGlzLmRhdGV0aW1lLnNlY29uZHMgIT09IHVuZGVmaW5lZCA/IHRoaXMuZGF0ZXRpbWUuc2Vjb25kcyA6IDA7XG5cbiAgICAgICAgY29uc3QgaG91ckZvcm1hdHRlZCA9IGhvdXIgPCAxMCA/ICcwJyArIGhvdXIgOiBob3VyLnRvU3RyaW5nKCk7XG4gICAgICAgIGNvbnN0IG1pbnV0ZUZvcm1hdHRlZCA9IG1pbnV0ZSA8IDEwID8gJzAnICsgbWludXRlIDogbWludXRlLnRvU3RyaW5nKCk7XG4gICAgICAgIGNvbnN0IHNlY29uZEZvcm1hdHRlZCA9IHNlY29uZCA8IDEwID8gJzAnICsgc2Vjb25kIDogc2Vjb25kLnRvU3RyaW5nKCk7XG5cbiAgICAgICAgZGlzcGxheVZhbHVlICs9IGAgJHtob3VyRm9ybWF0dGVkfToke21pbnV0ZUZvcm1hdHRlZH1gO1xuXG4gICAgICAgIGlmICh0aGlzLnNlY29uZHMpIHtcbiAgICAgICAgICBkaXNwbGF5VmFsdWUgKz0gYDoke3NlY29uZEZvcm1hdHRlZH1gO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBkaXNwbGF5VmFsdWU7XG4gICAgfVxuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIGlucHV0Qmx1cigpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICB9XG5cbiAgZ2V0RWZmZWN0aXZlRm9ybWF0KCk6IHN0cmluZyB7XG4gICAgbGV0IGZvcm1hdCA9IHRoaXMuaW5wdXREYXRldGltZUZvcm1hdCB8fCBJTlBVVF9EQVRFX0ZPUk1BVFMuREFURV9PTkxZO1xuXG4gICAgaWYgKHRoaXMuc2hvd1RpbWVDb250cm9scyAmJiAhdGhpcy5oYXNUaW1lSW5Gb3JtYXQoZm9ybWF0KSkge1xuICAgICAgZm9ybWF0ICs9IHRoaXMuX3NlY29uZHMgPyAnIEhIOm1tOnNzJyA6ICcgSEg6bW0nO1xuICAgIH1cblxuICAgIHJldHVybiBmb3JtYXQ7XG4gIH1cblxuICBvblRpbWVDaGFuZ2UoZXZlbnQ6IFdzbFRpbWVTdHJ1Y3QpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkgcmV0dXJuO1xuXG4gICAgdGhpcy5kYXRldGltZSA9IG5ldyBEYXRlVGltZU1vZGVsKHtcbiAgICAgIC4uLnRoaXMuZGF0ZXRpbWUsXG4gICAgICBob3VyczogZXZlbnQuaG91cnMsXG4gICAgICBtaW51dGVzOiBldmVudC5taW51dGVzLFxuICAgICAgc2Vjb25kczogZXZlbnQuc2Vjb25kcyxcbiAgICB9KTtcblxuICAgIHRoaXMuc2V0RGF0ZVN0cmluZ01vZGVsKCk7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBoYXNWYWxpZERhdGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhKFxuICAgICAgdGhpcy5kYXRldGltZSAmJlxuICAgICAgdHlwZW9mIHRoaXMuZGF0ZXRpbWUueWVhciA9PT0gJ251bWJlcicgJiZcbiAgICAgIHR5cGVvZiB0aGlzLmRhdGV0aW1lLm1vbnRoID09PSAnbnVtYmVyJyAmJlxuICAgICAgdHlwZW9mIHRoaXMuZGF0ZXRpbWUuZGF5ID09PSAnbnVtYmVyJ1xuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGluaXRpYWxpemVNb250aHNBbmRZZWFycygpOiB2b2lkIHtcbiAgICB0aGlzLm1vbnRocyA9IEFycmF5LmZyb20oeyBsZW5ndGg6IDEyIH0sIChfLCBpKSA9PlxuICAgICAgdGhpcy5nZXRNb250aE5hbWUoaSArIDEpXG4gICAgKTtcbiAgICBjb25zdCBjdXJyZW50WWVhciA9IG5ldyBEYXRlKCkuZ2V0RnVsbFllYXIoKTtcbiAgICBjb25zdCBzdGFydFllYXIgPSB0aGlzLm1pbkRhdGU/LnllYXIgfHwgY3VycmVudFllYXIgLSA1MDtcbiAgICBjb25zdCBlbmRZZWFyID0gdGhpcy5tYXhEYXRlPy55ZWFyIHx8IGN1cnJlbnRZZWFyICsgNTA7XG5cbiAgICB0aGlzLnllYXJzID0gQXJyYXkuZnJvbShcbiAgICAgIHsgbGVuZ3RoOiBlbmRZZWFyIC0gc3RhcnRZZWFyICsgMSB9LFxuICAgICAgKF8sIGkpID0+IGVuZFllYXIgLSBpXG4gICAgKS5zb3J0KChhLCBiKSA9PiBiIC0gYSk7XG4gIH1cblxuICBvbk1vbnRoU2VsZWN0KGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IHNlbGVjdCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MU2VsZWN0RWxlbWVudDtcbiAgICBjb25zdCBuZXdNb250aCA9IHBhcnNlSW50KHNlbGVjdC52YWx1ZSwgMTApO1xuICAgIGlmIChuZXdNb250aCAhPT0gdGhpcy5jdXJyZW50TW9udGgpIHtcbiAgICAgIGNvbnN0IG9sZE1vbnRoID0gdGhpcy5jdXJyZW50TW9udGg7XG4gICAgICB0aGlzLmN1cnJlbnRNb250aCA9IG5ld01vbnRoO1xuICAgICAgdGhpcy5tb250aENoYW5nZWQuZW1pdChuZXdNb250aCk7XG4gICAgICB0aGlzLmdlbmVyYXRlQ2FsZW5kYXIoKTtcbiAgICAgIHRoaXMubmF2aWdhdGUoe1xuICAgICAgICBjdXJyZW50OiB7IHllYXI6IHRoaXMuY3VycmVudFllYXIsIG1vbnRoOiBvbGRNb250aCB9LFxuICAgICAgICBuZXh0OiB7IHllYXI6IHRoaXMuY3VycmVudFllYXIsIG1vbnRoOiBuZXdNb250aCB9LFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgb25ZZWFyU2VsZWN0KGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IHNlbGVjdCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MU2VsZWN0RWxlbWVudDtcbiAgICBjb25zdCBuZXdZZWFyID0gcGFyc2VJbnQoc2VsZWN0LnZhbHVlLCAxMCk7XG4gICAgaWYgKG5ld1llYXIgIT09IHRoaXMuY3VycmVudFllYXIpIHtcbiAgICAgIGNvbnN0IG9sZFllYXIgPSB0aGlzLmN1cnJlbnRZZWFyO1xuICAgICAgdGhpcy5jdXJyZW50WWVhciA9IG5ld1llYXI7XG4gICAgICB0aGlzLmdlbmVyYXRlQ2FsZW5kYXIoKTtcbiAgICAgIHRoaXMubmF2aWdhdGUoe1xuICAgICAgICBjdXJyZW50OiB7IHllYXI6IG9sZFllYXIsIG1vbnRoOiB0aGlzLmN1cnJlbnRNb250aCB9LFxuICAgICAgICBuZXh0OiB7IHllYXI6IG5ld1llYXIsIG1vbnRoOiB0aGlzLmN1cnJlbnRNb250aCB9LFxuICAgICAgfSk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZGF0ZXRpbWUtcGlja2VyLWNvbnRhaW5lclwiPlxuICA8ZGl2IGNsYXNzPVwiaW5wdXQtY29udGFpbmVyXCI+XG4gICAgPGlucHV0XG4gICAgICAjZGF0ZUlucHV0XG4gICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICduZy12YWxpZCc6IG5nQ29udHJvbD8udmFsaWQgPT09IHRydWUsXG4gICAgICAgICduZy1pbnZhbGlkJzogbmdDb250cm9sPy5pbnZhbGlkID09PSB0cnVlLFxuICAgICAgICAnbmctZGlzYWJsZWQnOiBkaXNhYmxlZFxuICAgICAgfVwiXG4gICAgICBjbGFzcz1cImRhdGV0aW1lLWlucHV0XCJcbiAgICAgIChibHVyKT1cImlucHV0Qmx1cigpXCJcbiAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgICBbbmdNb2RlbF09XCJnZXREaXNwbGF5VmFsdWUoKVwiXG4gICAgICAoY2hhbmdlKT1cIm9uSW5wdXRDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgd3NsVG9vbHRpcFxuICAgICAgW3Rvb2x0aXBJY29uT3ZlcmxhcF09XCIxMlwiXG4gICAgICB0b29sdGlwUGxhY2VtZW50PVwidG9wXCJcbiAgICAvPlxuICA8L2Rpdj5cblxuICA8YnV0dG9uXG4gICAgdHlwZT1cImJ1dHRvblwiXG4gICAgY2xhc3M9XCJjYWxlbmRhci1pY29uXCJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgZGlzYWJsZUNhbGVuZGFyXCJcbiAgICBbbmdDbGFzc109XCJ7ICdkaXNhYmxlZC1idG4nOiBkaXNhYmxlZCB8fCBkaXNhYmxlQ2FsZW5kYXIgfVwiXG4gICAgKGNsaWNrKT1cInRvZ2dsZUNhbGVuZGFyKCRldmVudClcIlxuICA+XG4gICAgPGkgY2xhc3M9XCJmYSBmYS1jYWxlbmRhciBmYS1sZ1wiPjwvaT5cbiAgPC9idXR0b24+XG5cbiAgPCEtLSBDdXN0b20gQ2FsZW5kYXIgUG9wb3ZlciAtLT5cbiAgPGRpdlxuICAgIGNsYXNzPVwiY2FsZW5kYXItcG9wb3ZlclwiXG4gICAgW2NsYXNzLnNob3ddPVwic2hvd0NhbGVuZGFyXCJcbiAgICBbY2xhc3MuaGlkZGVuXT1cIiFzaG93Q2FsZW5kYXJcIlxuICAgIFtuZ0NsYXNzXT1cImNhbGVuZGFyUG9zaXRpb25DbGFzc1wiXG4gICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gID5cbiAgICA8ZGl2IGNsYXNzPVwicG9wb3Zlci1jb250ZW50XCI+XG4gICAgICA8ZGl2ICpuZ0lmPVwiIXNob3dUaW1lUGlja2VyVG9nZ2xlXCI+XG4gICAgICAgIDwhLS0gQ3VzdG9tIERhdGUgUGlja2VyIC0tPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY3VzdG9tLWRhdGVwaWNrZXJcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGF0ZXBpY2tlci1oZWFkZXJcIj5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgIGNsYXNzPVwibmF2LWJ0blwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJuYXZpZ2F0ZU1vbnRoKC0xKVwiXG4gICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtY2hldnJvbi1sZWZ0XCI+PC9pPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibW9udGgteWVhci1zZWxlY3RzXCI+XG4gICAgICAgICAgICAgIDxzZWxlY3RcbiAgICAgICAgICAgICAgICBjbGFzcz1cIm1vbnRoLXNlbGVjdFwiXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJjdXJyZW50TW9udGhcIlxuICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwib25Nb250aFNlbGVjdCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPG9wdGlvblxuICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IG1vbnRoIG9mIG1vbnRoczsgbGV0IGkgPSBpbmRleFwiXG4gICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiaSArIDFcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHt7IG1vbnRoIH19XG4gICAgICAgICAgICAgICAgPC9vcHRpb24+XG4gICAgICAgICAgICAgIDwvc2VsZWN0PlxuICAgICAgICAgICAgICA8c2VsZWN0XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ5ZWFyLXNlbGVjdFwiXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJjdXJyZW50WWVhclwiXG4gICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJvblllYXJTZWxlY3QoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IHllYXIgb2YgeWVhcnNcIiBbdmFsdWVdPVwieWVhclwiPlxuICAgICAgICAgICAgICAgICAge3sgeWVhciB9fVxuICAgICAgICAgICAgICAgIDwvb3B0aW9uPlxuICAgICAgICAgICAgICA8L3NlbGVjdD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJuYXYtYnRuXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cIm5hdmlnYXRlTW9udGgoMSlcIlxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWNoZXZyb24tcmlnaHRcIj48L2k+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJkYXRlcGlja2VyLWNhbGVuZGFyXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwid2Vla2RheXNcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndlZWtkYXlcIiAqbmdGb3I9XCJsZXQgZGF5IG9mIHdlZWtkYXlMYWJlbHNcIj5cbiAgICAgICAgICAgICAgICB7eyBkYXkgfX1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRheXNcIj5cbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZGF5LWNlbGxcIlxuICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBkYXkgb2YgY2FsZW5kYXJEYXlzXCJcbiAgICAgICAgICAgICAgICBbY2xhc3Mub3RoZXItbW9udGhdPVwiZGF5Lm90aGVyTW9udGhcIlxuICAgICAgICAgICAgICAgIFtjbGFzcy5zZWxlY3RlZF09XCJkYXkuc2VsZWN0ZWRcIlxuICAgICAgICAgICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCJkYXkuZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgIFtjbGFzcy50b2RheV09XCJkYXkudG9kYXlcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3REYXRlKGRheSlcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3sgZGF5LmRheSB9fVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgKm5nSWY9XCJzaG93VGltZUNvbnRyb2xzICYmICFpc0RhdGVPbmx5XCJcbiAgICAgICAgICBjbGFzcz1cInRvZ2dsZS10aW1lLWJ0blwiXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIiFoYXNWYWxpZERhdGUoKSB8fCBkaXNhYmxlZFwiXG4gICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZURhdGVUaW1lU3RhdGUoJGV2ZW50KVwiXG4gICAgICAgID5cbiAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWNsb2NrIGZhLWNsb2NrLW8gZmEtbGdcIj48L2k+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgKm5nSWY9XCJzaG93VGltZVBpY2tlclRvZ2dsZVwiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgKm5nSWY9XCJzaG93VGltZUNvbnRyb2xzICYmICFpc0RhdGVPbmx5XCJcbiAgICAgICAgICBjbGFzcz1cInRvZ2dsZS1jYWxlbmRhci1idG5cIlxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVEYXRlVGltZVN0YXRlKCRldmVudClcIlxuICAgICAgICA+XG4gICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1jYWxlbmRhciBmYS1sZ1wiPjwvaT5cbiAgICAgICAgPC9idXR0b24+XG5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwidGltZS1waWNrZXItY29udGFpbmVyXCJcbiAgICAgICAgICAqbmdJZj1cInNob3dUaW1lQ29udHJvbHMgJiYgIWlzRGF0ZU9ubHlcIlxuICAgICAgICA+XG4gICAgICAgICAgPCEtLSBDdXN0b20gVGltZSBQaWNrZXIgLS0+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImN1c3RvbS10aW1lcGlja2VyXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGltZS1jb250cm9sc1wiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGltZS1maWVsZFwiPlxuICAgICAgICAgICAgICAgIDxsYWJlbD57eyBkYXRlQ29uZmlnPy50b2tlbnM/LmhvdXJzIHx8IFwiSEhcIiB9fTwvbGFiZWw+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpbWUtaW5wdXQtZ3JvdXBcIj5cbiAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidGltZS1idG5cIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiYWRqdXN0VGltZSgnaG91cnMnLCBob3Vyc1N0ZXAgfHwgMSlcIlxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIWhhc1ZhbGlkRGF0ZSgpIHx8IGRpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1jaGV2cm9uLXVwXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidGltZS1pbnB1dFwiXG4gICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJkYXRldGltZT8uaG91cnMgfHwgMFwiXG4gICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwib25UaW1lRmllbGRDaGFuZ2UoJ2hvdXJzJywgJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhaGFzVmFsaWREYXRlKCkgfHwgZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgICBtaW49XCIwXCJcbiAgICAgICAgICAgICAgICAgICAgbWF4PVwiMjNcIlxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidGltZS1idG5cIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiYWRqdXN0VGltZSgnaG91cnMnLCAtKGhvdXJzU3RlcCB8fCAxKSlcIlxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIWhhc1ZhbGlkRGF0ZSgpIHx8IGRpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1jaGV2cm9uLWRvd25cIj48L2k+XG4gICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpbWUtc2VwYXJhdG9yXCI+OjwvZGl2PlxuXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aW1lLWZpZWxkXCI+XG4gICAgICAgICAgICAgICAgPGxhYmVsPnt7IGRhdGVDb25maWc/LnRva2Vucz8ubWludXRlcyB8fCBcIm1tXCIgfX08L2xhYmVsPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aW1lLWlucHV0LWdyb3VwXCI+XG4gICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInRpbWUtYnRuXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImFkanVzdFRpbWUoJ21pbnV0ZXMnLCBtaW51dGVzU3RlcCB8fCAxKVwiXG4gICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhaGFzVmFsaWREYXRlKCkgfHwgZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWNoZXZyb24tdXBcIj48L2k+XG4gICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0aW1lLWlucHV0XCJcbiAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImRhdGV0aW1lPy5taW51dGVzIHx8IDBcIlxuICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cIm9uVGltZUZpZWxkQ2hhbmdlKCdtaW51dGVzJywgJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhaGFzVmFsaWREYXRlKCkgfHwgZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgICBtaW49XCIwXCJcbiAgICAgICAgICAgICAgICAgICAgbWF4PVwiNTlcIlxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidGltZS1idG5cIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiYWRqdXN0VGltZSgnbWludXRlcycsIC0obWludXRlc1N0ZXAgfHwgMSkpXCJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFoYXNWYWxpZERhdGUoKSB8fCBkaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtY2hldnJvbi1kb3duXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aW1lLXNlcGFyYXRvclwiICpuZ0lmPVwic2Vjb25kc1wiPjo8L2Rpdj5cblxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGltZS1maWVsZFwiICpuZ0lmPVwic2Vjb25kc1wiPlxuICAgICAgICAgICAgICAgIDxsYWJlbD57eyBkYXRlQ29uZmlnPy50b2tlbnM/LnNlY29uZHMgfHwgXCJzc1wiIH19PC9sYWJlbD5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGltZS1pbnB1dC1ncm91cFwiPlxuICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0aW1lLWJ0blwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJhZGp1c3RUaW1lKCdzZWNvbmRzJywgc2Vjb25kc1N0ZXAgfHwgMSlcIlxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIWhhc1ZhbGlkRGF0ZSgpIHx8IGRpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1jaGV2cm9uLXVwXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidGltZS1pbnB1dFwiXG4gICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJkYXRldGltZT8uc2Vjb25kcyB8fCAwXCJcbiAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJvblRpbWVGaWVsZENoYW5nZSgnc2Vjb25kcycsICRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIWhhc1ZhbGlkRGF0ZSgpIHx8IGRpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAgICAgbWluPVwiMFwiXG4gICAgICAgICAgICAgICAgICAgIG1heD1cIjU5XCJcbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInRpbWUtYnRuXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImFkanVzdFRpbWUoJ3NlY29uZHMnLCAtKHNlY29uZHNTdGVwIHx8IDEpKVwiXG4gICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhaGFzVmFsaWREYXRlKCkgfHwgZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWNoZXZyb24tZG93blwiPjwvaT5cbiAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48IS0tIEJhY2tkcm9wIGZvciBjbG9zaW5nIHBvcG92ZXIgLS0+XG48ZGl2XG4gIGNsYXNzPVwiY2FsZW5kYXItYmFja2Ryb3BcIlxuICBbY2xhc3Muc2hvd109XCJzaG93Q2FsZW5kYXJcIlxuICAoY2xpY2spPVwiY2xvc2VDYWxlbmRhcigpXCJcbj48L2Rpdj5cbiJdfQ==
|
|
@@ -70,8 +70,8 @@ export const DATE_FORMATS = {
|
|
|
70
70
|
},
|
|
71
71
|
es: {
|
|
72
72
|
placeholder: 'dd-mm-aaaa',
|
|
73
|
-
displayFormat: 'DD
|
|
74
|
-
format: 'dd
|
|
73
|
+
displayFormat: 'DD/MM/YYYY',
|
|
74
|
+
format: 'dd/MM/yyyy',
|
|
75
75
|
timeFormat: 'HH:mm',
|
|
76
76
|
timeFormatWithSeconds: 'HH:mm:ss',
|
|
77
77
|
dateSeparator: '-',
|
|
@@ -79,7 +79,7 @@ export const DATE_FORMATS = {
|
|
|
79
79
|
tokens: {
|
|
80
80
|
day: 'dd',
|
|
81
81
|
month: 'MM',
|
|
82
|
-
year: '
|
|
82
|
+
year: 'yyyy',
|
|
83
83
|
hours: 'HH',
|
|
84
84
|
minutes: 'mm',
|
|
85
85
|
seconds: 'ss',
|
|
@@ -153,7 +153,7 @@ export const DATE_FORMATS = {
|
|
|
153
153
|
'Sep',
|
|
154
154
|
'Okt',
|
|
155
155
|
'Nov',
|
|
156
|
-
'
|
|
156
|
+
'Dis',
|
|
157
157
|
],
|
|
158
158
|
monthNamesLong: [
|
|
159
159
|
'Januari',
|
|
@@ -169,7 +169,7 @@ export const DATE_FORMATS = {
|
|
|
169
169
|
'Novemba',
|
|
170
170
|
'Desemba',
|
|
171
171
|
],
|
|
172
|
-
weekdayLabels: ['
|
|
172
|
+
weekdayLabels: ['J3', 'J4', 'J5', 'Alh', 'Iju', 'Jmo', 'Jpl'],
|
|
173
173
|
weekdayLabelsLong: [
|
|
174
174
|
'Jumatatu',
|
|
175
175
|
'Jumanne',
|
|
@@ -248,4 +248,4 @@ export const DateTimePickerConstants = {
|
|
|
248
248
|
STANDARD_DATE_FORMAT_TOKENS,
|
|
249
249
|
DATE_FORMATS,
|
|
250
250
|
};
|
|
251
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXRpbWUtcGlja2VyLmNvbnN0YW50cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLXdzbC1saWJyYXJ5L3NyYy9saWIvY29uc3RhbnRzL2RhdGV0aW1lLXBpY2tlci5jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBTUE7Ozs7R0FJRztBQUVIOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQXFCO0lBQzNELEdBQUcsRUFBRSxJQUFJO0lBQ1QsS0FBSyxFQUFFLElBQUk7SUFDWCxJQUFJLEVBQUUsTUFBTTtJQUNaLEtBQUssRUFBRSxJQUFJO0lBQ1gsT0FBTyxFQUFFLElBQUk7SUFDYixPQUFPLEVBQUUsSUFBSTtDQUNMLENBQUM7QUFFWDs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBd0M7SUFDL0QsRUFBRSxFQUFFO1FBQ0YsV0FBVyxFQUFFLFlBQVk7UUFDekIsYUFBYSxFQUFFLFlBQVk7UUFDM0IsTUFBTSxFQUFFLFlBQVk7UUFDcEIsVUFBVSxFQUFFLE9BQU87UUFDbkIscUJBQXFCLEVBQUUsVUFBVTtRQUNqQyxhQUFhLEVBQUUsR0FBRztRQUNsQixhQUFhLEVBQUUsR0FBRztRQUNsQixNQUFNLEVBQUUsMkJBQTJCO1FBQ25DLFVBQVUsRUFBRTtZQUNWLEtBQUs7WUFDTCxLQUFLO1lBQ0wsS0FBSztZQUNMLEtBQUs7WUFDTCxLQUFLO1lBQ0wsS0FBSztZQUNMLEtBQUs7WUFDTCxLQUFLO1lBQ0wsS0FBSztZQUNMLEtBQUs7WUFDTCxLQUFLO1lBQ0wsS0FBSztTQUNOO1FBQ0QsY0FBYyxFQUFFO1lBQ2QsU0FBUztZQUNULFVBQVU7WUFDVixPQUFPO1lBQ1AsT0FBTztZQUNQLEtBQUs7WUFDTCxNQUFNO1lBQ04sTUFBTTtZQUNOLFFBQVE7WUFDUixXQUFXO1lBQ1gsU0FBUztZQUNULFVBQVU7WUFDVixVQUFVO1NBQ1g7UUFDRCxhQUFhLEVB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LGtCQUFrQjtJQUNsQixVQUFVO0lBQ1YsMkJBQTJCO0lBQzNCLFlBQVk7Q0FDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgV3NsRGF0ZVN0cnVjdCB9IGZyb20gJy4uL21vZGVscy93c2wtZGF0ZS10aW1lLm1vZGVsJztcbmltcG9ydCB7XG4gIERhdGVGb3JtYXRUb2tlbnMsXG4gIERhdGVGb3JtYXRDb25maWcsXG59IGZyb20gJy4uL2ludGVyZmFjZXMvZGF0ZS1mb3JtYXQuaW50ZXJmYWNlJztcblxuLyoqXG4gKiBEYXRlVGltZSBQaWNrZXIgQ29uc3RhbnRzXG4gKlxuICogVGhpcyBmaWxlIGNvbnRhaW5zIHVzZWZ1bCBjb25zdGFudHMgZm9yIGNvbmZpZ3VyaW5nIHRoZSBXU0wgRGF0ZVRpbWUgUGlja2VyIGNvbXBvbmVudC5cbiAqL1xuXG4vKipcbiAqIFN0YW5kYXJkIGZvcm1hdCB0b2tlbnMgLSBjb25zb2xpZGF0ZWQgY29uc3RhbnRcbiAqL1xuZXhwb3J0IGNvbnN0IFNUQU5EQVJEX0RBVEVfRk9STUFUX1RPS0VOUzogRGF0ZUZvcm1hdFRva2VucyA9IHtcbiAgZGF5OiAnZGQnLFxuICBtb250aDogJ01NJyxcbiAgeWVhcjogJ3l5eXknLFxuICBob3VyczogJ0hIJyxcbiAgbWludXRlczogJ21tJyxcbiAgc2Vjb25kczogJ3NzJyxcbn0gYXMgY29uc3Q7XG5cbi8qKlxuICogQ2VudHJhbGl6ZWQgZGF0ZSBmb3JtYXQgY29uZmlndXJhdGlvbnMgZm9yIGRpZmZlcmVudCBsYW5ndWFnZXNcbiAqL1xuZXhwb3J0IGNvbnN0IERBVEVfRk9STUFUUzogeyBba2V5OiBzdHJpbmddOiBEYXRlRm9ybWF0Q29uZmlnIH0gPSB7XG4gIGVuOiB7XG4gICAgcGxhY2Vob2xkZXI6ICd5eXl5LW1tLWRkJyxcbiAgICBkaXNwbGF5Rm9ybWF0OiAnWVlZWS1NTS1ERCcsXG4gICAgZm9ybWF0OiAneXl5eS1NTS1kZCcsXG4gICAgdGltZUZvcm1hdDogJ0hIOm1tJyxcbiAgICB0aW1lRm9ybWF0V2l0aFNlY29uZHM6ICdISDptbTpzcycsXG4gICAgZGF0ZVNlcGFyYXRvcjogJy0nLFxuICAgIHRpbWVTZXBhcmF0b3I6ICc6JyxcbiAgICB0b2tlbnM6IFNUQU5EQVJEX0RBVEVfRk9STUFUX1RPS0VOUyxcbiAgICBtb250aE5hbWVzOiBbXG4gICAgICAnSmFuJyxcbiAgICAgICdGZWInLFxuICAgICAgJ01hcicsXG4gICAgICAnQXByJyxcbiAgICAgICdNYXknLFxuICAgICAgJ0p1bicsXG4gICAgICAnSnVsJyxcbiAgICAgICdBdWcnLFxuICAgICAgJ1NlcCcsXG4gICAgICAnT2N0JyxcbiAgICAgICdOb3YnLFxuICAgICAgJ0RlYycsXG4gICAgXSxcbiAgICBtb250aE5hbWVzTG9uZzogW1xuICAgICAgJ0phbnVhcnknLFxuICAgICAgJ0ZlYnJ1YXJ5JyxcbiAgICAgICdNYXJjaCcsXG4gICAgICAnQXByaWwnLFxuICAgICAgJ01heScsXG4gICAgICAnSnVuZScsXG4gICAgICAnSnVseScsXG4gICAgICAnQXVndXN0JyxcbiAgICAgICdTZXB0ZW1iZXInLFxuICAgICAgJ09jdG9iZXInLFxuICAgICAgJ05vdmVtYmVyJyxcbiAgICAgICdEZWNlbWJlcicsXG4gICAgXSxcbiAgICB3ZWVrZGF5TGFiZWxzOiBbJ01vJywgJ1R1JywgJ1dlJywgJ1RoJywgJ0ZyJywgJ1NhJywgJ1N1J10sXG4gICAgd2Vla2RheUxhYmVsc0xvbmc6IFtcbiAgICAgICdNb25kYXknLFxuICAgICAgJ1R1ZXNkYXknLFxuICAgICAgJ1dlZG5lc2RheScsXG4gICAgICAnVGh1cnNkYXknLFxuICAgICAgJ0ZyaWRheScsXG4gICAgICAnU2F0dXJkYXknLFxuICAgICAgJ1N1bmRheScsXG4gICAgXSxcbiAgICBkYXlGaXJzdDogZmFsc2UsXG4gICAgd2Vla1N0YXJ0OiAxLCAvLyBXZWVrIHN0YXJ0cyBvbiBNb25kYXlcbiAgfSxcbiAgZXM6IHtcbiAgICBwbGFjZWhvbGRlcjogJ2RkLW1tLWFhYWEnLFxuICAgIGRpc3BsYXlGb3JtYXQ6ICdERC1NTS1BQUFBJyxcbiAgICBmb3JtYXQ6ICdkZC1NTS15eXl5JyxcbiAgICB0aW1lRm9ybWF0OiAnSEg6bW0nLFxuICAgIHRpbWVGb3JtYXRXaXRoU2Vjb25kczogJ0hIOm1tOnNzJyxcbiAgICBkYXRlU2VwYXJhdG9yOiAnLScsXG4gICAgdGltZVNlcGFyYXRvcjogJzonLFxuICAgIHRva2Vuczoge1xuICAgICAgZGF5OiAnZGQnLFxuICAgICAgbW9udGg6ICdNTScsXG4gICAgICB5ZWFyOiAnYWFhYScsXG4gICAgICBob3VyczogJ0hIJyxcbiAgICAgIG1pbnV0ZXM6ICdtbScsXG4gICAgICBzZWNvbmRzOiAnc3MnLFxuICAgIH0sXG4gICAgbW9udGhOYW1lczogW1xuICAgICAgJ0VuZScsXG4gICAgICAnRmViJyxcbiAgICAgICdNYXInLFxuICAgICAgJ0FicicsXG4gICAgICAnTWF5JyxcbiAgICAgICdKdW4nLFxuICAgICAgJ0p1bCcsXG4gICAgICAnQWdvJyxcbiAgICAgICdTZXAnLFxuICAgICAgJ09jdCcsXG4gICAgICAnTm92JyxcbiAgICAgICdEaWMnLFxuICAgIF0sXG4gICAgbW9udGhOYW1lc0xvbmc6IFtcbiAgICAgICdFbmVybycsXG4gICAgICAnRmVicmVybycsXG4gICAgICAnTWFyem8nLFxuICAgICAgJ0FicmlsJyxcbiAgICAgICdNYXlvJyxcbiAgICAgICdKdW5pbycsXG4gICAgICAnSnVsaW8nLFxuICAgICAgJ0Fnb3N0bycsXG4gICAgICAnU2VwdGllbWJyZScsXG4gICAgICAnT2N0dWJyZScsXG4gICAgICAnTm92aWVtYnJlJyxcbiAgICAgICdEaWNpZW1icmUnLFxuICAgIF0sXG4gICAgd2Vla2RheUxhYmVsczogWydMdScsICdNYScsICdNaScsICdKdScsICdWaScsICdTYScsICdEbyddLFxuICAgIHdlZWtkYXlMYWJlbHNMb25nOiBbXG4gICAgICAnTHVuZXMnLFxuICAgICAgJ01hcnRlcycsXG4gICAgICAnTWnDqXJjb2xlcycsXG4gICAgICAnSnVldmVzJyxcbiAgICAgICdWaWVybmVzJyxcbiAgICAgICdTw6FiYWRvJyxcbiAgICAgICdEb21pbmdvJyxcbiAgICBdLFxuICAgIGRheUZpcnN0OiB0cnVlLFxuICAgIHdlZWtTdGFydDogMSwgLy8gV2VlayBzdGFydHMgb24gTW9uZGF5XG4gIH0sXG4gIHN3OiB7XG4gICAgcGxhY2Vob2xkZXI6ICdkZC1tbS15eXl5JyxcbiAgICBkaXNwbGF5Rm9ybWF0OiAnREQtTU0tWVlZWScsXG4gICAgZm9ybWF0OiAnZGQtTU0teXl5eScsXG4gICAgdGltZUZvcm1hdDogJ1NTOmRkJyxcbiAgICB0aW1lRm9ybWF0V2l0aFNlY29uZHM6ICdTUzpkZDpzcycsXG4gICAgZGF0ZVNlcGFyYXRvcjogJy0nLFxuICAgIHRpbWVTZXBhcmF0b3I6ICc6JyxcbiAgICB0b2tlbnM6IHtcbiAgICAgIGRheTogJ2RkJyxcbiAgICAgIG1vbnRoOiAnTU0nLFxuICAgICAgeWVhcjogJ3l5eXknLFxuICAgICAgaG91cnM6ICdTUycsXG4gICAgICBtaW51dGVzOiAnZGQnLFxuICAgICAgc2Vjb25kczogJ3NzJyxcbiAgICB9LFxuICAgIG1vbnRoTmFtZXM6IFtcbiAgICAgICdKYW4nLFxuICAgICAgJ0ZlYicsXG4gICAgICAnTWFjJyxcbiAgICAgICdBcHInLFxuICAgICAgJ01laScsXG4gICAgICAnSnVuJyxcbiAgICAgICdKdWwnLFxuICAgICAgJ0FnbycsXG4gICAgICAnU2VwJyxcbiAgICAgICdPa3QnLFxuICAgICAgJ05vdicsXG4gICAgICAnRGVzJyxcbiAgICBdLFxuICAgIG1vbnRoTmFtZXNMb25nOiBbXG4gICAgICAnSmFudWFyaScsXG4gICAgICAnRmVicnVhcmknLFxuICAgICAgJ01hY2hpJyxcbiAgICAgICdBcHJpbGknLFxuICAgICAgJ01laScsXG4gICAgICAnSnVuaScsXG4gICAgICAnSnVsYWknLFxuICAgICAgJ0Fnb3N0aScsXG4gICAgICAnU2VwdGVtYmEnLFxuICAgICAgJ09rdG9iYScsXG4gICAgICAnTm92ZW1iYScsXG4gICAgICAnRGVzZW1iYScsXG4gICAgXSxcbiAgICB3ZWVrZGF5TGFiZWxzOiBbJ0p1JywgJ0FsJywgJ0p1JywgJ0FsJywgJ0lqJywgJ0p1JywgJ0FoJ10sXG4gICAgd2Vla2RheUxhYmVsc0xvbmc6IFtcbiAgICAgICdKdW1hdGF0dScsXG4gICAgICAnSnVtYW5uZScsXG4gICAgICAnSnVtYXRhbm8nLFxuICAgICAgJ0FsaGFtaXNpJyxcbiAgICAgICdJanVtYWEnLFxuICAgICAgJ0p1bWFtb3NpJyxcbiAgICAgICdKdW1hcGlsaScsXG4gICAgXSxcbiAgICBkYXlGaXJzdDogdHJ1ZSxcbiAgICB3ZWVrU3RhcnQ6IDEsIC8vIFdlZWsgc3RhcnRzIG9uIE1vbmRheVxuICB9LFxuICAvLyBBZGQgbW9yZSBsYW5ndWFnZXMgYXMgbmVlZGVkXG59O1xuXG4vKipcbiAqIFNwZWNpYWwgZGF0ZSBjb25maWd1cmF0aW9uIHRoYXQgYWxsb3dzIHVubGltaXRlZC91bnJlc3RyaWN0ZWQgZGF0ZSBzZWxlY3Rpb24uXG4gKiBXaGVuIHVzZWQgYXMgYWxsb3dlZERhdGVzLCBpdCBkaXNhYmxlcyBhbGwgZGF0ZSByZXN0cmljdGlvbnMuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGltcG9ydCB7IERhdGVUaW1lUGlja2VyQ29uc3RhbnRzIH0gZnJvbSAnbmctd3NsLWxpYnJhcnknO1xuICpcbiAqIC8vIEluIHlvdXIgY29tcG9uZW50XG4gKiBhbGxvd2VkRGF0ZXMgPSBEYXRlVGltZVBpY2tlckNvbnN0YW50cy5VTkxJTUlURURfREFURVM7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGNvbnN0IFVOTElNSVRFRF9EQVRFUzogV3NsRGF0ZVN0cnVjdFtdID0gW1xuICB7IHllYXI6IDIwMDAsIG1vbnRoOiAxLCBkYXk6IC0xIH0sXG5dO1xuXG4vKipcbiAqIENvbW1vbiBpbnB1dCBkYXRlIGZvcm1hdCBwYXR0ZXJucyBmb3IgdGhlIGlucHV0RGF0ZXRpbWVGb3JtYXQgcHJvcGVydHkuXG4gKiBUaGVzZSBhcmUgZGlmZmVyZW50IGZyb20gdGhlIGludGVybmFsIERBVEVfRk9STUFUUyB3aGljaCBoYW5kbGUgbG9jYWxpemF0aW9uLlxuICovXG5leHBvcnQgY29uc3QgSU5QVVRfREFURV9GT1JNQVRTID0ge1xuICAvKiogRGF0ZSBvbmx5OiBZWVlZLU1NLUREICovXG4gIERBVEVfT05MWTogJ3l5eXktTU0tZGQnLFxuICAvKiogRGF0ZSB3aXRoIHRpbWU6IFlZWVktTU0tREQgSEg6TU0gKi9cbiAgREFURV9USU1FOiAneXl5eS1NTS1kZCBISDptbScsXG4gIC8qKiBEYXRlIHdpdGggZnVsbCB0aW1lOiBZWVlZLU1NLUREIEhIOk1NOlNTICovXG4gIERBVEVfVElNRV9TRUNPTkRTOiAneXl5eS1NTS1kZCBISDptbTpzcycsXG4gIC8qKiBVUyBmb3JtYXQgZGF0ZTogTU0vREQvWVlZWSAqL1xuICBVU19EQVRFOiAnTU0vZGQveXl5eScsXG4gIC8qKiBVUyBmb3JtYXQgd2l0aCB0aW1lOiBNTS9ERC9ZWVlZIEhIOk1NICovXG4gIFVTX0RBVEVfVElNRTogJ01NL2RkL3l5eXkgSEg6bW0nLFxuICAvKiogRXVyb3BlYW4gZm9ybWF0OiBERC9NTS9ZWVlZICovXG4gIEVVX0RBVEU6ICdkZC9NTS95eXl5JyxcbiAgLyoqIEV1cm9wZWFuIGZvcm1hdCB3aXRoIHRpbWU6IEREL01NL1lZWVkgSEg6TU0gKi9cbiAgRVVfREFURV9USU1FOiAnZGQvTU0veXl5eSBISDptbScsXG4gIC8qKiBFdXJvcGVhbiBmb3JtYXQgd2l0aCBkYXNoOiBERC1NTS1ZWVlZICovXG4gIEVVX0RBVEVfREFTSDogJ2RkLU1NLXl5eXknLFxuICAvKiogRXVyb3BlYW4gZm9ybWF0IHdpdGggZGFzaCBhbmQgdGltZTogREQtTU0tWVlZWSBISDpNTSAqL1xuICBFVV9EQVRFX0RBU0hfVElNRTogJ2RkLU1NLXl5eXkgSEg6bW0nLFxufSBhcyBjb25zdDtcblxuLyoqXG4gKiBEZWZhdWx0IHN0ZXAgdmFsdWVzIGZvciB0aW1lIGNvbnRyb2xzXG4gKi9cbmV4cG9ydCBjb25zdCBUSU1FX1NURVBTID0ge1xuICAvKiogRGVmYXVsdCBob3VyIHN0ZXAgKi9cbiAgSE9VUlM6IDEsXG4gIC8qKiBEZWZhdWx0IG1pbnV0ZSBzdGVwICovXG4gIE1JTlVURVM6IDEsXG4gIC8qKiBEZWZhdWx0IHNlY29uZCBzdGVwICovXG4gIFNFQ09ORFM6IDMwLFxuICAvKiogQ29tbW9uIG1pbnV0ZSBzdGVwcyAqL1xuICBNSU5VVEVfNTogNSxcbiAgTUlOVVRFXzE1OiAxNSxcbiAgTUlOVVRFXzMwOiAzMCxcbn0gYXMgY29uc3Q7XG5cbi8qKlxuICogQ29tYmluZWQgY29uc3RhbnRzIG9iamVjdCBmb3IgZWFzaWVyIGFjY2Vzc1xuICovXG5leHBvcnQgY29uc3QgRGF0ZVRpbWVQaWNrZXJDb25zdGFudHMgPSB7XG4gIFVOTElNSVRFRF9EQVRFUyxcbiAgSU5QVVRfREFURV9GT1JNQVRTLFxuICBUSU1FX1NURVBTLFxuICBTVEFOREFSRF9EQVRFX0ZPUk1BVF9UT0tFTlMsXG4gIERBVEVfRk9STUFUUyxcbn0gYXMgY29uc3Q7XG4iXX0=
|
|
251
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXRpbWUtcGlja2VyLmNvbnN0YW50cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLXdzbC1saWJyYXJ5L3NyYy9saWIvY29uc3RhbnRzL2RhdGV0aW1lLXBpY2tlci5jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBTUE7Ozs7R0FJRztBQUVIOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQXFCO0lBQzNELEdBQUcsRUFBRSxJQUFJO0lBQ1QsS0FBSyxFQUFFLElBQUk7SUFDWCxJQUFJLEVBQUUsTUFBTTtJQUNaLEtBQUssRUFBRSxJQUFJO0lBQ1gsT0FBTyxFQUFFLElBQUk7SUFDYixPQUFPLEVBQUUsSUFBSTtDQUNMLENBQUM7QUFFWDs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBd0M7SUFDL0QsRUFBRSxFQUFFO1FBQ0YsV0FBVyxFQUFFLFlBQVk7UUFDekIsYUFBYSxFQUFFLFlBQVk7UUFDM0IsTUFBTSxFQUFFLFlBQVk7UUFDcEIsVUFBVSxFQUFFLE9BQU87UUFDbkIscUJBQXFCLEVBQUUsVUFBVTtRQUNqQyxhQUFhLEVBQUUsR0FBRztRQUNsQixhQUFhLEVBQUUsR0FBRztRQUNsQixNQUFNLEVBQUUsMkJBQTJCO1FBQ25DLFVBQVUsRUFBRTtZQUNWLEtBQUs7WUFDTCxLQUFLO1lBQ0wsS0FBSztZQUNMLEtBQUs7WUFDTCxLQUFLO1lBQ0wsS0FBSztZQUNMLEtBQUs7WUFDTCxLQUFLO1lBQ0wsS0FBSztZQUNMLEtBQUs7WUFDTCxLQUFLO1lBQ0wsS0FBSztTQUNOO1FBQ0QsY0FBYyxFQUFFO1lBQ2QsU0FBUztZQUNULFVBQVU7WUFDVixPQUFPO1lBQ1AsT0FBTztZQUNQLEtBQUs7WUFDTCxNQUFNO1lBQ04sTUFBTTtZQUNOLFFBQVE7WUFDUixXQUFXO1lBQ1gsU0FBUztZQUNULFVBQVU7WUFDVixVQUFVO1NBQ1g7UUFDRCxhQUFhLEVB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LGtCQUFrQjtJQUNsQixVQUFVO0lBQ1YsMkJBQTJCO0lBQzNCLFlBQVk7Q0FDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgV3NsRGF0ZVN0cnVjdCB9IGZyb20gJy4uL21vZGVscy93c2wtZGF0ZS10aW1lLm1vZGVsJztcbmltcG9ydCB7XG4gIERhdGVGb3JtYXRUb2tlbnMsXG4gIERhdGVGb3JtYXRDb25maWcsXG59IGZyb20gJy4uL2ludGVyZmFjZXMvZGF0ZS1mb3JtYXQuaW50ZXJmYWNlJztcblxuLyoqXG4gKiBEYXRlVGltZSBQaWNrZXIgQ29uc3RhbnRzXG4gKlxuICogVGhpcyBmaWxlIGNvbnRhaW5zIHVzZWZ1bCBjb25zdGFudHMgZm9yIGNvbmZpZ3VyaW5nIHRoZSBXU0wgRGF0ZVRpbWUgUGlja2VyIGNvbXBvbmVudC5cbiAqL1xuXG4vKipcbiAqIFN0YW5kYXJkIGZvcm1hdCB0b2tlbnMgLSBjb25zb2xpZGF0ZWQgY29uc3RhbnRcbiAqL1xuZXhwb3J0IGNvbnN0IFNUQU5EQVJEX0RBVEVfRk9STUFUX1RPS0VOUzogRGF0ZUZvcm1hdFRva2VucyA9IHtcbiAgZGF5OiAnZGQnLFxuICBtb250aDogJ01NJyxcbiAgeWVhcjogJ3l5eXknLFxuICBob3VyczogJ0hIJyxcbiAgbWludXRlczogJ21tJyxcbiAgc2Vjb25kczogJ3NzJyxcbn0gYXMgY29uc3Q7XG5cbi8qKlxuICogQ2VudHJhbGl6ZWQgZGF0ZSBmb3JtYXQgY29uZmlndXJhdGlvbnMgZm9yIGRpZmZlcmVudCBsYW5ndWFnZXNcbiAqL1xuZXhwb3J0IGNvbnN0IERBVEVfRk9STUFUUzogeyBba2V5OiBzdHJpbmddOiBEYXRlRm9ybWF0Q29uZmlnIH0gPSB7XG4gIGVuOiB7XG4gICAgcGxhY2Vob2xkZXI6ICd5eXl5LW1tLWRkJyxcbiAgICBkaXNwbGF5Rm9ybWF0OiAnWVlZWS1NTS1ERCcsXG4gICAgZm9ybWF0OiAneXl5eS1NTS1kZCcsXG4gICAgdGltZUZvcm1hdDogJ0hIOm1tJyxcbiAgICB0aW1lRm9ybWF0V2l0aFNlY29uZHM6ICdISDptbTpzcycsXG4gICAgZGF0ZVNlcGFyYXRvcjogJy0nLFxuICAgIHRpbWVTZXBhcmF0b3I6ICc6JyxcbiAgICB0b2tlbnM6IFNUQU5EQVJEX0RBVEVfRk9STUFUX1RPS0VOUyxcbiAgICBtb250aE5hbWVzOiBbXG4gICAgICAnSmFuJyxcbiAgICAgICdGZWInLFxuICAgICAgJ01hcicsXG4gICAgICAnQXByJyxcbiAgICAgICdNYXknLFxuICAgICAgJ0p1bicsXG4gICAgICAnSnVsJyxcbiAgICAgICdBdWcnLFxuICAgICAgJ1NlcCcsXG4gICAgICAnT2N0JyxcbiAgICAgICdOb3YnLFxuICAgICAgJ0RlYycsXG4gICAgXSxcbiAgICBtb250aE5hbWVzTG9uZzogW1xuICAgICAgJ0phbnVhcnknLFxuICAgICAgJ0ZlYnJ1YXJ5JyxcbiAgICAgICdNYXJjaCcsXG4gICAgICAnQXByaWwnLFxuICAgICAgJ01heScsXG4gICAgICAnSnVuZScsXG4gICAgICAnSnVseScsXG4gICAgICAnQXVndXN0JyxcbiAgICAgICdTZXB0ZW1iZXInLFxuICAgICAgJ09jdG9iZXInLFxuICAgICAgJ05vdmVtYmVyJyxcbiAgICAgICdEZWNlbWJlcicsXG4gICAgXSxcbiAgICB3ZWVrZGF5TGFiZWxzOiBbJ01vJywgJ1R1JywgJ1dlJywgJ1RoJywgJ0ZyJywgJ1NhJywgJ1N1J10sXG4gICAgd2Vla2RheUxhYmVsc0xvbmc6IFtcbiAgICAgICdNb25kYXknLFxuICAgICAgJ1R1ZXNkYXknLFxuICAgICAgJ1dlZG5lc2RheScsXG4gICAgICAnVGh1cnNkYXknLFxuICAgICAgJ0ZyaWRheScsXG4gICAgICAnU2F0dXJkYXknLFxuICAgICAgJ1N1bmRheScsXG4gICAgXSxcbiAgICBkYXlGaXJzdDogZmFsc2UsXG4gICAgd2Vla1N0YXJ0OiAxLCAvLyBXZWVrIHN0YXJ0cyBvbiBNb25kYXlcbiAgfSxcbiAgZXM6IHtcbiAgICBwbGFjZWhvbGRlcjogJ2RkLW1tLWFhYWEnLFxuICAgIGRpc3BsYXlGb3JtYXQ6ICdERC9NTS9ZWVlZJyxcbiAgICBmb3JtYXQ6ICdkZC9NTS95eXl5JyxcbiAgICB0aW1lRm9ybWF0OiAnSEg6bW0nLFxuICAgIHRpbWVGb3JtYXRXaXRoU2Vjb25kczogJ0hIOm1tOnNzJyxcbiAgICBkYXRlU2VwYXJhdG9yOiAnLScsXG4gICAgdGltZVNlcGFyYXRvcjogJzonLFxuICAgIHRva2Vuczoge1xuICAgICAgZGF5OiAnZGQnLFxuICAgICAgbW9udGg6ICdNTScsXG4gICAgICB5ZWFyOiAneXl5eScsXG4gICAgICBob3VyczogJ0hIJyxcbiAgICAgIG1pbnV0ZXM6ICdtbScsXG4gICAgICBzZWNvbmRzOiAnc3MnLFxuICAgIH0sXG4gICAgbW9udGhOYW1lczogW1xuICAgICAgJ0VuZScsXG4gICAgICAnRmViJyxcbiAgICAgICdNYXInLFxuICAgICAgJ0FicicsXG4gICAgICAnTWF5JyxcbiAgICAgICdKdW4nLFxuICAgICAgJ0p1bCcsXG4gICAgICAnQWdvJyxcbiAgICAgICdTZXAnLFxuICAgICAgJ09jdCcsXG4gICAgICAnTm92JyxcbiAgICAgICdEaWMnLFxuICAgIF0sXG4gICAgbW9udGhOYW1lc0xvbmc6IFtcbiAgICAgICdFbmVybycsXG4gICAgICAnRmVicmVybycsXG4gICAgICAnTWFyem8nLFxuICAgICAgJ0FicmlsJyxcbiAgICAgICdNYXlvJyxcbiAgICAgICdKdW5pbycsXG4gICAgICAnSnVsaW8nLFxuICAgICAgJ0Fnb3N0bycsXG4gICAgICAnU2VwdGllbWJyZScsXG4gICAgICAnT2N0dWJyZScsXG4gICAgICAnTm92aWVtYnJlJyxcbiAgICAgICdEaWNpZW1icmUnLFxuICAgIF0sXG4gICAgd2Vla2RheUxhYmVsczogWydMdScsICdNYScsICdNaScsICdKdScsICdWaScsICdTYScsICdEbyddLFxuICAgIHdlZWtkYXlMYWJlbHNMb25nOiBbXG4gICAgICAnTHVuZXMnLFxuICAgICAgJ01hcnRlcycsXG4gICAgICAnTWnDqXJjb2xlcycsXG4gICAgICAnSnVldmVzJyxcbiAgICAgICdWaWVybmVzJyxcbiAgICAgICdTw6FiYWRvJyxcbiAgICAgICdEb21pbmdvJyxcbiAgICBdLFxuICAgIGRheUZpcnN0OiB0cnVlLFxuICAgIHdlZWtTdGFydDogMSwgLy8gV2VlayBzdGFydHMgb24gTW9uZGF5XG4gIH0sXG4gIHN3OiB7XG4gICAgcGxhY2Vob2xkZXI6ICdkZC1tbS15eXl5JyxcbiAgICBkaXNwbGF5Rm9ybWF0OiAnREQtTU0tWVlZWScsXG4gICAgZm9ybWF0OiAnZGQtTU0teXl5eScsXG4gICAgdGltZUZvcm1hdDogJ1NTOmRkJyxcbiAgICB0aW1lRm9ybWF0V2l0aFNlY29uZHM6ICdTUzpkZDpzcycsXG4gICAgZGF0ZVNlcGFyYXRvcjogJy0nLFxuICAgIHRpbWVTZXBhcmF0b3I6ICc6JyxcbiAgICB0b2tlbnM6IHtcbiAgICAgIGRheTogJ2RkJyxcbiAgICAgIG1vbnRoOiAnTU0nLFxuICAgICAgeWVhcjogJ3l5eXknLFxuICAgICAgaG91cnM6ICdTUycsXG4gICAgICBtaW51dGVzOiAnZGQnLFxuICAgICAgc2Vjb25kczogJ3NzJyxcbiAgICB9LFxuICAgIG1vbnRoTmFtZXM6IFtcbiAgICAgICdKYW4nLFxuICAgICAgJ0ZlYicsXG4gICAgICAnTWFjJyxcbiAgICAgICdBcHInLFxuICAgICAgJ01laScsXG4gICAgICAnSnVuJyxcbiAgICAgICdKdWwnLFxuICAgICAgJ0FnbycsXG4gICAgICAnU2VwJyxcbiAgICAgICdPa3QnLFxuICAgICAgJ05vdicsXG4gICAgICAnRGlzJyxcbiAgICBdLFxuICAgIG1vbnRoTmFtZXNMb25nOiBbXG4gICAgICAnSmFudWFyaScsXG4gICAgICAnRmVicnVhcmknLFxuICAgICAgJ01hY2hpJyxcbiAgICAgICdBcHJpbGknLFxuICAgICAgJ01laScsXG4gICAgICAnSnVuaScsXG4gICAgICAnSnVsYWknLFxuICAgICAgJ0Fnb3N0aScsXG4gICAgICAnU2VwdGVtYmEnLFxuICAgICAgJ09rdG9iYScsXG4gICAgICAnTm92ZW1iYScsXG4gICAgICAnRGVzZW1iYScsXG4gICAgXSxcbiAgICB3ZWVrZGF5TGFiZWxzOiBbJ0ozJywgJ0o0JywgJ0o1JywgJ0FsaCcsICdJanUnLCAnSm1vJywgJ0pwbCddLFxuICAgIHdlZWtkYXlMYWJlbHNMb25nOiBbXG4gICAgICAnSnVtYXRhdHUnLFxuICAgICAgJ0p1bWFubmUnLFxuICAgICAgJ0p1bWF0YW5vJyxcbiAgICAgICdBbGhhbWlzaScsXG4gICAgICAnSWp1bWFhJyxcbiAgICAgICdKdW1hbW9zaScsXG4gICAgICAnSnVtYXBpbGknLFxuICAgIF0sXG4gICAgZGF5Rmlyc3Q6IHRydWUsXG4gICAgd2Vla1N0YXJ0OiAxLCAvLyBXZWVrIHN0YXJ0cyBvbiBNb25kYXlcbiAgfSxcbiAgLy8gQWRkIG1vcmUgbGFuZ3VhZ2VzIGFzIG5lZWRlZFxufTtcblxuLyoqXG4gKiBTcGVjaWFsIGRhdGUgY29uZmlndXJhdGlvbiB0aGF0IGFsbG93cyB1bmxpbWl0ZWQvdW5yZXN0cmljdGVkIGRhdGUgc2VsZWN0aW9uLlxuICogV2hlbiB1c2VkIGFzIGFsbG93ZWREYXRlcywgaXQgZGlzYWJsZXMgYWxsIGRhdGUgcmVzdHJpY3Rpb25zLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBpbXBvcnQgeyBEYXRlVGltZVBpY2tlckNvbnN0YW50cyB9IGZyb20gJ25nLXdzbC1saWJyYXJ5JztcbiAqXG4gKiAvLyBJbiB5b3VyIGNvbXBvbmVudFxuICogYWxsb3dlZERhdGVzID0gRGF0ZVRpbWVQaWNrZXJDb25zdGFudHMuVU5MSU1JVEVEX0RBVEVTO1xuICogYGBgXG4gKi9cbmV4cG9ydCBjb25zdCBVTkxJTUlURURfREFURVM6IFdzbERhdGVTdHJ1Y3RbXSA9IFtcbiAgeyB5ZWFyOiAyMDAwLCBtb250aDogMSwgZGF5OiAtMSB9LFxuXTtcblxuLyoqXG4gKiBDb21tb24gaW5wdXQgZGF0ZSBmb3JtYXQgcGF0dGVybnMgZm9yIHRoZSBpbnB1dERhdGV0aW1lRm9ybWF0IHByb3BlcnR5LlxuICogVGhlc2UgYXJlIGRpZmZlcmVudCBmcm9tIHRoZSBpbnRlcm5hbCBEQVRFX0ZPUk1BVFMgd2hpY2ggaGFuZGxlIGxvY2FsaXphdGlvbi5cbiAqL1xuZXhwb3J0IGNvbnN0IElOUFVUX0RBVEVfRk9STUFUUyA9IHtcbiAgLyoqIERhdGUgb25seTogWVlZWS1NTS1ERCAqL1xuICBEQVRFX09OTFk6ICd5eXl5LU1NLWRkJyxcbiAgLyoqIERhdGUgd2l0aCB0aW1lOiBZWVlZLU1NLUREIEhIOk1NICovXG4gIERBVEVfVElNRTogJ3l5eXktTU0tZGQgSEg6bW0nLFxuICAvKiogRGF0ZSB3aXRoIGZ1bGwgdGltZTogWVlZWS1NTS1ERCBISDpNTTpTUyAqL1xuICBEQVRFX1RJTUVfU0VDT05EUzogJ3l5eXktTU0tZGQgSEg6bW06c3MnLFxuICAvKiogVVMgZm9ybWF0IGRhdGU6IE1NL0REL1lZWVkgKi9cbiAgVVNfREFURTogJ01NL2RkL3l5eXknLFxuICAvKiogVVMgZm9ybWF0IHdpdGggdGltZTogTU0vREQvWVlZWSBISDpNTSAqL1xuICBVU19EQVRFX1RJTUU6ICdNTS9kZC95eXl5IEhIOm1tJyxcbiAgLyoqIEV1cm9wZWFuIGZvcm1hdDogREQvTU0vWVlZWSAqL1xuICBFVV9EQVRFOiAnZGQvTU0veXl5eScsXG4gIC8qKiBFdXJvcGVhbiBmb3JtYXQgd2l0aCB0aW1lOiBERC9NTS9ZWVlZIEhIOk1NICovXG4gIEVVX0RBVEVfVElNRTogJ2RkL01NL3l5eXkgSEg6bW0nLFxuICAvKiogRXVyb3BlYW4gZm9ybWF0IHdpdGggZGFzaDogREQtTU0tWVlZWSAqL1xuICBFVV9EQVRFX0RBU0g6ICdkZC1NTS15eXl5JyxcbiAgLyoqIEV1cm9wZWFuIGZvcm1hdCB3aXRoIGRhc2ggYW5kIHRpbWU6IERELU1NLVlZWVkgSEg6TU0gKi9cbiAgRVVfREFURV9EQVNIX1RJTUU6ICdkZC1NTS15eXl5IEhIOm1tJyxcbn0gYXMgY29uc3Q7XG5cbi8qKlxuICogRGVmYXVsdCBzdGVwIHZhbHVlcyBmb3IgdGltZSBjb250cm9sc1xuICovXG5leHBvcnQgY29uc3QgVElNRV9TVEVQUyA9IHtcbiAgLyoqIERlZmF1bHQgaG91ciBzdGVwICovXG4gIEhPVVJTOiAxLFxuICAvKiogRGVmYXVsdCBtaW51dGUgc3RlcCAqL1xuICBNSU5VVEVTOiAxLFxuICAvKiogRGVmYXVsdCBzZWNvbmQgc3RlcCAqL1xuICBTRUNPTkRTOiAzMCxcbiAgLyoqIENvbW1vbiBtaW51dGUgc3RlcHMgKi9cbiAgTUlOVVRFXzU6IDUsXG4gIE1JTlVURV8xNTogMTUsXG4gIE1JTlVURV8zMDogMzAsXG59IGFzIGNvbnN0O1xuXG4vKipcbiAqIENvbWJpbmVkIGNvbnN0YW50cyBvYmplY3QgZm9yIGVhc2llciBhY2Nlc3NcbiAqL1xuZXhwb3J0IGNvbnN0IERhdGVUaW1lUGlja2VyQ29uc3RhbnRzID0ge1xuICBVTkxJTUlURURfREFURVMsXG4gIElOUFVUX0RBVEVfRk9STUFUUyxcbiAgVElNRV9TVEVQUyxcbiAgU1RBTkRBUkRfREFURV9GT1JNQVRfVE9LRU5TLFxuICBEQVRFX0ZPUk1BVFMsXG59IGFzIGNvbnN0O1xuIl19
|
|
@@ -3393,8 +3393,8 @@ const DATE_FORMATS = {
|
|
|
3393
3393
|
},
|
|
3394
3394
|
es: {
|
|
3395
3395
|
placeholder: 'dd-mm-aaaa',
|
|
3396
|
-
displayFormat: 'DD
|
|
3397
|
-
format: 'dd
|
|
3396
|
+
displayFormat: 'DD/MM/YYYY',
|
|
3397
|
+
format: 'dd/MM/yyyy',
|
|
3398
3398
|
timeFormat: 'HH:mm',
|
|
3399
3399
|
timeFormatWithSeconds: 'HH:mm:ss',
|
|
3400
3400
|
dateSeparator: '-',
|
|
@@ -3402,7 +3402,7 @@ const DATE_FORMATS = {
|
|
|
3402
3402
|
tokens: {
|
|
3403
3403
|
day: 'dd',
|
|
3404
3404
|
month: 'MM',
|
|
3405
|
-
year: '
|
|
3405
|
+
year: 'yyyy',
|
|
3406
3406
|
hours: 'HH',
|
|
3407
3407
|
minutes: 'mm',
|
|
3408
3408
|
seconds: 'ss',
|
|
@@ -3476,7 +3476,7 @@ const DATE_FORMATS = {
|
|
|
3476
3476
|
'Sep',
|
|
3477
3477
|
'Okt',
|
|
3478
3478
|
'Nov',
|
|
3479
|
-
'
|
|
3479
|
+
'Dis',
|
|
3480
3480
|
],
|
|
3481
3481
|
monthNamesLong: [
|
|
3482
3482
|
'Januari',
|
|
@@ -3492,7 +3492,7 @@ const DATE_FORMATS = {
|
|
|
3492
3492
|
'Novemba',
|
|
3493
3493
|
'Desemba',
|
|
3494
3494
|
],
|
|
3495
|
-
weekdayLabels: ['
|
|
3495
|
+
weekdayLabels: ['J3', 'J4', 'J5', 'Alh', 'Iju', 'Jmo', 'Jpl'],
|
|
3496
3496
|
weekdayLabelsLong: [
|
|
3497
3497
|
'Jumatatu',
|
|
3498
3498
|
'Jumanne',
|
|
@@ -3979,10 +3979,10 @@ class WslDatetimePickerComponent {
|
|
|
3979
3979
|
this.cdr.markForCheck();
|
|
3980
3980
|
}
|
|
3981
3981
|
generateCalendar() {
|
|
3982
|
-
var _a;
|
|
3982
|
+
var _a, _b;
|
|
3983
3983
|
const firstDay = new Date(this.currentYear, this.currentMonth - 1, 1);
|
|
3984
3984
|
const startDate = new Date(firstDay);
|
|
3985
|
-
const weekStart = ((_a = this.dateConfig) === null || _a === void 0 ? void 0 : _a.weekStart)
|
|
3985
|
+
const weekStart = ((_b = (_a = this.dateConfig) === null || _a === void 0 ? void 0 : _a.weekStart) !== null && _b !== void 0 ? _b : 1) % 7;
|
|
3986
3986
|
const dayOfWeek = (firstDay.getDay() + 7 - weekStart) % 7;
|
|
3987
3987
|
startDate.setDate(startDate.getDate() - dayOfWeek);
|
|
3988
3988
|
this.calendarDays = [];
|