@dev-tcloud/tcloud-ui 0.1.8 → 0.1.9
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/_modules/tcloud-ui-datepicker/tcloud-ui-datepicker.component.mjs +22 -4
- package/esm2020/lib/_modules/tcloud-ui-datepicker-time/tcloud-ui-datepicker-time.component.mjs +10 -8
- package/esm2020/lib/_modules/tcloud-ui-filters/components/range-date/range-date.component.mjs +30 -22
- package/esm2020/lib/_modules/tcloud-ui-filters/tcloud-ui-filters.component.mjs +8 -4
- package/fesm2015/dev-tcloud-tcloud-ui.mjs +66 -34
- package/fesm2015/dev-tcloud-tcloud-ui.mjs.map +1 -1
- package/fesm2020/dev-tcloud-tcloud-ui.mjs +66 -34
- package/fesm2020/dev-tcloud-tcloud-ui.mjs.map +1 -1
- package/lib/_modules/tcloud-ui-datepicker-time/tcloud-ui-datepicker-time.component.d.ts +1 -2
- package/lib/_modules/tcloud-ui-filters/components/range-date/range-date.component.d.ts +2 -2
- package/package.json +1 -1
- package/scss/components/custom/ui-datepicker.scss +10 -0
- package/scss/components/styles.scss +2 -0
|
@@ -73,12 +73,30 @@ export class TCloudUiDatepickerComponent {
|
|
|
73
73
|
return this._DateBRPipe.transform(v);
|
|
74
74
|
}
|
|
75
75
|
get_options() {
|
|
76
|
+
// Função para formatar uma data no fuso horário local
|
|
77
|
+
const formatDateLocal = (date) => {
|
|
78
|
+
const year = date.getFullYear();
|
|
79
|
+
const month = String(date.getMonth() + 1).padStart(2, '0'); // Adiciona 1 porque os meses são indexados a partir de 0
|
|
80
|
+
const day = String(date.getDate()).padStart(2, '0');
|
|
81
|
+
return `${year}-${month}-${day}`;
|
|
82
|
+
};
|
|
83
|
+
// Função para analisar uma data no fuso horário local
|
|
84
|
+
const parseDateLocal = (dateString) => {
|
|
85
|
+
const [year, month, day] = dateString.split('-');
|
|
86
|
+
return new Date(year, month - 1, day); // Subtrai 1 porque os meses são indexados a partir de 0
|
|
87
|
+
};
|
|
76
88
|
let options = {
|
|
77
89
|
nextArrow: `<i class="fas fa-caret-right"></i>`,
|
|
78
90
|
prevArrow: `<i class="fas fa-caret-left"></i>`,
|
|
79
91
|
format: 'dd/mm/yyyy',
|
|
80
92
|
daysOfWeekHighlighted: [0, 6],
|
|
81
|
-
language: 'ptBR'
|
|
93
|
+
language: 'ptBR',
|
|
94
|
+
formatter: {
|
|
95
|
+
date: formatDateLocal,
|
|
96
|
+
},
|
|
97
|
+
parser: {
|
|
98
|
+
date: parseDateLocal,
|
|
99
|
+
},
|
|
82
100
|
};
|
|
83
101
|
if ((this.daysOfWeekDisabled).length > 0) {
|
|
84
102
|
options['daysOfWeekDisabled'] = this.daysOfWeekDisabled;
|
|
@@ -264,10 +282,10 @@ export class TCloudUiDatepickerComponent {
|
|
|
264
282
|
}
|
|
265
283
|
}
|
|
266
284
|
TCloudUiDatepickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: TCloudUiDatepickerComponent, deps: [{ token: i1.DateBRPipe }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
267
|
-
TCloudUiDatepickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: TCloudUiDatepickerComponent, selector: "tcloud-ui-datepicker", inputs: { multiple: "multiple", maxNumberOfDates: "maxNumberOfDates", daysOfWeekDisabled: "daysOfWeekDisabled", minDate: "minDate", maxDate: "maxDate", datesDisabled: "datesDisabled", modeInput: "modeInput", useBorder: "useBorder", childInputDateTime: "childInputDateTime", ngModel: "ngModel", code: "code" }, outputs: { onChange: "onChange", ngModelChange: "ngModelChange" }, providers: [CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR], viewQueries: [{ propertyName: "input_datepicker", first: true, predicate: ["input_datepicker"], descendants: true }], ngImport: i0, template: "<!-- Input mode -->\r\n<ng-container *ngIf=\"modeInput\">\r\n\r\n <div class=\"tcloud-ui-datepicker input-tc-datepicker\" [class.no-border]=\"!useBorder\" [class.child-input-date-time]=\"childInputDateTime\" >\r\n <table class=\"table-box-input\">\r\n <tr>\r\n <td class=\"td-icon\">\r\n <div class=\"delimiter-time-icon\" (click)=\"toClickIn(ID)\" ><i class=\"fas fa-calendar-alt\"></i></div>\r\n </td>\r\n <td class=\"td-date\">\r\n <input #input_datepicker type=\"text\" name=\"{{ID}}\" id=\"{{ID}}\" class=\"form-control\" >\r\n </td>\r\n </tr>\r\n </table>\r\n </div>\r\n\r\n \r\n \r\n</ng-container>\r\n\r\n<!-- Inline mode -->\r\n<ng-container *ngIf=\"!modeInput\"> \r\n <div class=\"tcloud-ui-datepicker tcloud-ui-datepicker-second\" #input_datepicker id=\"{{ID}}\" pattern=\"/^\\d{2}\\/\\d{2}\\/\\d{4}$/\"></div>\r\n</ng-container>\r\n\r\n\r\n<!-- EX de uso \r\n <tc-datepicker \r\n [multiple]=\"false\"\r\n [daysOfWeekDisabled]=\"[0,6]\"\r\n [minDate]=\"'18/11/2021'\"\r\n [maxDate]=\"'18/12/2023'\"\r\n [datesDisabled]=\"['12/10/2022','25/12/2022']\"\r\n [modeInput]=\"false\"\r\n [(ngModel)]=\"dateValue\" >\r\n </tc-datepicker>\r\n \r\n // multiple = false\r\n // dateValue - string - pode ser: 12/12/2022 \r\n\r\n // multiple = true\r\n // dateValue - string - pode ser: 11/12/2022,12/12/2022 ... \r\n\r\n <pre>data: {{ dateValue }}</pre>\r\n-->\r\n", styles: [".input_datepicker{width:100%;max-width:290px}.input-tc-datepicker{background-color:#fff;border:1px solid var(--tc-gray-300);border-radius:3px;height:40px}.input-tc-datepicker.no-border{border:none!important}.input-tc-datepicker .table-box-input{width:100%}.input-tc-datepicker .table-box-input .td-icon{width:14px}.input-tc-datepicker .table-box-input .td-icon .delimiter-time-icon{text-align:center;cursor:pointer}.input-tc-datepicker .table-box-input .td-icon .delimiter-time-icon i{position:relative;left:1px;opacity:.5}.input-tc-datepicker .table-box-input .td-date{width:101px input;width-width:100%}.input-tc-datepicker .table-box-input input{border:none;margin-top:2px;font-size:13px!important}.child-input-date-time{height:28px!important}\n", ".datepicker{display:none}.datepicker.active{display:block}.datepicker-dropdown{left:0;padding-top:4px;position:absolute;top:0;z-index:20}.datepicker-dropdown.datepicker-orient-top{padding-bottom:4px;padding-top:0}.datepicker-picker{background-color:#fff;border-radius:4px;display:inline-block}.datepicker-dropdown .datepicker-picker{box-shadow:0 2px 3px #0a0a0a1a,0 0 0 1px #0a0a0a1a}.datepicker-picker span{-webkit-touch-callout:none;border:0;border-radius:4px;cursor:default;display:block;flex:1;text-align:center;-webkit-user-select:none;user-select:none}.datepicker-main{padding:2px}.datepicker-footer{background-color:#f5f5f5;box-shadow:inset 0 1px 1px #0a0a0a1a}.datepicker-controls,.datepicker-grid,.datepicker-view,.datepicker-view .days-of-week{display:flex}.datepicker-grid{flex-wrap:wrap}.datepicker-view .days .datepicker-cell,.datepicker-view .dow{flex-basis:14.2857142857%}.datepicker-view.datepicker-grid .datepicker-cell{flex-basis:25%}.datepicker-cell,.datepicker-view .week{height:2.25rem;line-height:2.25rem}.datepicker-title{background-color:#f5f5f5;box-shadow:inset 0 -1px 1px #0a0a0a1a;font-weight:700;padding:.375rem .75rem;text-align:center}.datepicker-header .datepicker-controls{padding:2px 2px 0}.datepicker-controls .button{align-items:center;background-color:#fff;border:1px solid #dbdbdb;border-radius:4px;box-shadow:none;color:#363636;cursor:pointer;display:inline-flex;font-size:1rem;height:2.25em;justify-content:center;line-height:1.5;margin:0;padding:calc(.375em - 1px) .75em;position:relative;text-align:center;vertical-align:top;white-space:nowrap}.datepicker-controls .button:active,.datepicker-controls .button:focus{outline:none}.datepicker-controls .button:hover{border-color:#b5b5b5;color:#363636}.datepicker-controls .button:focus{border-color:#3273dc;color:#363636}.datepicker-controls .button:focus:not(:active){box-shadow:0 0 0 .125em #3273dc40}.datepicker-controls .button:active{border-color:#4a4a4a;color:#363636}.datepicker-controls .button[disabled]{cursor:not-allowed}.datepicker-header .datepicker-controls .button{border-color:transparent;font-weight:700}.datepicker-header .datepicker-controls .button:hover{background-color:#f9f9f9}.datepicker-header .datepicker-controls .button:focus:not(:active){box-shadow:0 0 0 .125em #ffffff40}.datepicker-header .datepicker-controls .button:active{background-color:#f2f2f2}.datepicker-header .datepicker-controls .button[disabled]{box-shadow:none}.datepicker-footer .datepicker-controls .button{border-radius:2px;font-size:.75rem;margin:calc(.375rem - 1px) .375rem;width:100%}.datepicker-controls .view-switch{flex:auto}.datepicker-controls .next-btn,.datepicker-controls .prev-btn{padding-left:.375rem;padding-right:.375rem;width:2.25rem}.datepicker-controls .next-btn.disabled,.datepicker-controls .prev-btn.disabled{visibility:hidden}.datepicker-view .dow{font-size:.875rem;font-weight:700;height:1.5rem;line-height:1.5rem}.datepicker-view .week{color:#b5b5b5;font-size:.75rem;width:2.25rem}@media (max-width:22.5rem){.datepicker-view .week{width:1.96875rem}}.datepicker-grid{width:15.75rem}@media (max-width:22.5rem){.calendar-weeks+.days .datepicker-grid{width:13.78125rem}}.datepicker-cell:not(.disabled):hover{background-color:#f9f9f9;cursor:pointer}.datepicker-cell.focused:not(.selected){background-color:#e8e8e8}.datepicker-cell.selected,.datepicker-cell.selected:hover{background-color:#3273dc;color:#fff;font-weight:600}.datepicker-cell.disabled{color:#dbdbdb}.datepicker-cell.next:not(.disabled),.datepicker-cell.prev:not(.disabled){color:#7a7a7a}.datepicker-cell.next.selected,.datepicker-cell.prev.selected{color:#e6e6e6}.datepicker-cell.highlighted:not(.selected):not(.range):not(.today){background-color:#f5f5f5;border-radius:0}.datepicker-cell.highlighted:not(.selected):not(.range):not(.today):not(.disabled):hover{background-color:#eee}.datepicker-cell.highlighted:not(.selected):not(.range):not(.today).focused{background-color:#e8e8e8}.datepicker-cell.today:not(.selected){background-color:#00d1b2}.datepicker-cell.today:not(.selected):not(.disabled){color:#fff}.datepicker-cell.today.focused:not(.selected){background-color:#00c4a7}.datepicker-cell.range-end:not(.selected),.datepicker-cell.range-start:not(.selected){background-color:#b5b5b5;color:#fff}.datepicker-cell.range-end.focused:not(.selected),.datepicker-cell.range-start.focused:not(.selected){background-color:#afafaf}.datepicker-cell.range-start{border-radius:4px 0 0 4px}.datepicker-cell.range-end{border-radius:0 4px 4px 0}.datepicker-cell.range{background-color:#dbdbdb;border-radius:0}.datepicker-cell.range:not(.disabled):not(.focused):not(.today):hover{background-color:#d5d5d5}.datepicker-cell.range.disabled{color:#c2c2c2}.datepicker-cell.range.focused{background-color:#cfcfcf}.datepicker-view.datepicker-grid .datepicker-cell{height:4.5rem;line-height:4.5rem}.datepicker-input.in-edit{border-color:#2366d1}.datepicker-input.in-edit:active,.datepicker-input.in-edit:focus{box-shadow:0 0 .25em .25em #2366d133}\n", ".datepicker-picker{border:1px solid #ccc;padding:10px 15px}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
285
|
+
TCloudUiDatepickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: TCloudUiDatepickerComponent, selector: "tcloud-ui-datepicker", inputs: { multiple: "multiple", maxNumberOfDates: "maxNumberOfDates", daysOfWeekDisabled: "daysOfWeekDisabled", minDate: "minDate", maxDate: "maxDate", datesDisabled: "datesDisabled", modeInput: "modeInput", useBorder: "useBorder", childInputDateTime: "childInputDateTime", ngModel: "ngModel", code: "code" }, outputs: { onChange: "onChange", ngModelChange: "ngModelChange" }, providers: [CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR], viewQueries: [{ propertyName: "input_datepicker", first: true, predicate: ["input_datepicker"], descendants: true }], ngImport: i0, template: "<!-- Input mode -->\r\n<ng-container *ngIf=\"modeInput\">\r\n\r\n <div class=\"tcloud-ui-datepicker input-tc-datepicker\" [class.no-border]=\"!useBorder\" [class.child-input-date-time]=\"childInputDateTime\" >\r\n <table class=\"table-box-input\">\r\n <tr>\r\n <td class=\"td-icon\">\r\n <div class=\"delimiter-time-icon\" (click)=\"toClickIn(ID)\" ><i class=\"fas fa-calendar-alt\"></i></div>\r\n </td>\r\n <td class=\"td-date\">\r\n <input #input_datepicker type=\"text\" name=\"{{ID}}\" id=\"{{ID}}\" class=\"form-control\" [title]=\"innerValue\">\r\n </td>\r\n </tr>\r\n </table>\r\n </div>\r\n\r\n \r\n \r\n</ng-container>\r\n\r\n<!-- Inline mode -->\r\n<ng-container *ngIf=\"!modeInput\"> \r\n <div class=\"tcloud-ui-datepicker tcloud-ui-datepicker-second\" #input_datepicker id=\"{{ID}}\" pattern=\"/^\\d{2}\\/\\d{2}\\/\\d{4}$/\" [title]=\"innerValue\"></div>\r\n</ng-container>\r\n\r\n\r\n<!-- EX de uso \r\n <tc-datepicker \r\n [multiple]=\"false\"\r\n [daysOfWeekDisabled]=\"[0,6]\"\r\n [minDate]=\"'18/11/2021'\"\r\n [maxDate]=\"'18/12/2023'\"\r\n [datesDisabled]=\"['12/10/2022','25/12/2022']\"\r\n [modeInput]=\"false\"\r\n [(ngModel)]=\"dateValue\" >\r\n </tc-datepicker>\r\n \r\n // multiple = false\r\n // dateValue - string - pode ser: 12/12/2022 \r\n\r\n // multiple = true\r\n // dateValue - string - pode ser: 11/12/2022,12/12/2022 ... \r\n\r\n <pre>data: {{ dateValue }}</pre>\r\n-->\r\n", styles: [".input_datepicker{width:100%;max-width:290px}.input-tc-datepicker{background-color:#fff;border:1px solid var(--tc-gray-300);border-radius:3px;height:40px}.input-tc-datepicker.no-border{border:none!important}.input-tc-datepicker .table-box-input{width:100%}.input-tc-datepicker .table-box-input .td-icon{width:14px}.input-tc-datepicker .table-box-input .td-icon .delimiter-time-icon{text-align:center;cursor:pointer}.input-tc-datepicker .table-box-input .td-icon .delimiter-time-icon i{position:relative;left:1px;opacity:.5}.input-tc-datepicker .table-box-input .td-date{min-width:30px;width:101px input;width-width:100%}.input-tc-datepicker .table-box-input input{border:none;margin-top:2px;font-size:13px!important}.child-input-date-time{height:28px!important}\n", ".datepicker{display:none}.datepicker.active{display:block}.datepicker-dropdown{left:0;padding-top:4px;position:absolute;top:0;z-index:20}.datepicker-dropdown.datepicker-orient-top{padding-bottom:4px;padding-top:0}.datepicker-picker{background-color:#fff;border-radius:4px;display:inline-block}.datepicker-dropdown .datepicker-picker{box-shadow:0 2px 3px #0a0a0a1a,0 0 0 1px #0a0a0a1a}.datepicker-picker span{-webkit-touch-callout:none;border:0;border-radius:4px;cursor:default;display:block;flex:1;text-align:center;-webkit-user-select:none;user-select:none}.datepicker-main{padding:2px}.datepicker-footer{background-color:#f5f5f5;box-shadow:inset 0 1px 1px #0a0a0a1a}.datepicker-controls,.datepicker-grid,.datepicker-view,.datepicker-view .days-of-week{display:flex}.datepicker-grid{flex-wrap:wrap}.datepicker-view .days .datepicker-cell,.datepicker-view .dow{flex-basis:14.2857142857%}.datepicker-view.datepicker-grid .datepicker-cell{flex-basis:25%}.datepicker-cell,.datepicker-view .week{height:2.25rem;line-height:2.25rem}.datepicker-title{background-color:#f5f5f5;box-shadow:inset 0 -1px 1px #0a0a0a1a;font-weight:700;padding:.375rem .75rem;text-align:center}.datepicker-header .datepicker-controls{padding:2px 2px 0}.datepicker-controls .button{align-items:center;background-color:#fff;border:1px solid #dbdbdb;border-radius:4px;box-shadow:none;color:#363636;cursor:pointer;display:inline-flex;font-size:1rem;height:2.25em;justify-content:center;line-height:1.5;margin:0;padding:calc(.375em - 1px) .75em;position:relative;text-align:center;vertical-align:top;white-space:nowrap}.datepicker-controls .button:active,.datepicker-controls .button:focus{outline:none}.datepicker-controls .button:hover{border-color:#b5b5b5;color:#363636}.datepicker-controls .button:focus{border-color:#3273dc;color:#363636}.datepicker-controls .button:focus:not(:active){box-shadow:0 0 0 .125em #3273dc40}.datepicker-controls .button:active{border-color:#4a4a4a;color:#363636}.datepicker-controls .button[disabled]{cursor:not-allowed}.datepicker-header .datepicker-controls .button{border-color:transparent;font-weight:700}.datepicker-header .datepicker-controls .button:hover{background-color:#f9f9f9}.datepicker-header .datepicker-controls .button:focus:not(:active){box-shadow:0 0 0 .125em #ffffff40}.datepicker-header .datepicker-controls .button:active{background-color:#f2f2f2}.datepicker-header .datepicker-controls .button[disabled]{box-shadow:none}.datepicker-footer .datepicker-controls .button{border-radius:2px;font-size:.75rem;margin:calc(.375rem - 1px) .375rem;width:100%}.datepicker-controls .view-switch{flex:auto}.datepicker-controls .next-btn,.datepicker-controls .prev-btn{padding-left:.375rem;padding-right:.375rem;width:2.25rem}.datepicker-controls .next-btn.disabled,.datepicker-controls .prev-btn.disabled{visibility:hidden}.datepicker-view .dow{font-size:.875rem;font-weight:700;height:1.5rem;line-height:1.5rem}.datepicker-view .week{color:#b5b5b5;font-size:.75rem;width:2.25rem}@media (max-width:22.5rem){.datepicker-view .week{width:1.96875rem}}.datepicker-grid{width:15.75rem}@media (max-width:22.5rem){.calendar-weeks+.days .datepicker-grid{width:13.78125rem}}.datepicker-cell:not(.disabled):hover{background-color:#f9f9f9;cursor:pointer}.datepicker-cell.focused:not(.selected){background-color:#e8e8e8}.datepicker-cell.selected,.datepicker-cell.selected:hover{background-color:#3273dc;color:#fff;font-weight:600}.datepicker-cell.disabled{color:#dbdbdb}.datepicker-cell.next:not(.disabled),.datepicker-cell.prev:not(.disabled){color:#7a7a7a}.datepicker-cell.next.selected,.datepicker-cell.prev.selected{color:#e6e6e6}.datepicker-cell.highlighted:not(.selected):not(.range):not(.today){background-color:#f5f5f5;border-radius:0}.datepicker-cell.highlighted:not(.selected):not(.range):not(.today):not(.disabled):hover{background-color:#eee}.datepicker-cell.highlighted:not(.selected):not(.range):not(.today).focused{background-color:#e8e8e8}.datepicker-cell.today:not(.selected){background-color:#00d1b2}.datepicker-cell.today:not(.selected):not(.disabled){color:#fff}.datepicker-cell.today.focused:not(.selected){background-color:#00c4a7}.datepicker-cell.range-end:not(.selected),.datepicker-cell.range-start:not(.selected){background-color:#b5b5b5;color:#fff}.datepicker-cell.range-end.focused:not(.selected),.datepicker-cell.range-start.focused:not(.selected){background-color:#afafaf}.datepicker-cell.range-start{border-radius:4px 0 0 4px}.datepicker-cell.range-end{border-radius:0 4px 4px 0}.datepicker-cell.range{background-color:#dbdbdb;border-radius:0}.datepicker-cell.range:not(.disabled):not(.focused):not(.today):hover{background-color:#d5d5d5}.datepicker-cell.range.disabled{color:#c2c2c2}.datepicker-cell.range.focused{background-color:#cfcfcf}.datepicker-view.datepicker-grid .datepicker-cell{height:4.5rem;line-height:4.5rem}.datepicker-input.in-edit{border-color:#2366d1}.datepicker-input.in-edit:active,.datepicker-input.in-edit:focus{box-shadow:0 0 .25em .25em #2366d133}\n", ".datepicker-picker{border:1px solid #ccc;padding:10px 15px}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
268
286
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: TCloudUiDatepickerComponent, decorators: [{
|
|
269
287
|
type: Component,
|
|
270
|
-
args: [{ selector: 'tcloud-ui-datepicker', providers: [CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR], encapsulation: ViewEncapsulation.None, template: "<!-- Input mode -->\r\n<ng-container *ngIf=\"modeInput\">\r\n\r\n <div class=\"tcloud-ui-datepicker input-tc-datepicker\" [class.no-border]=\"!useBorder\" [class.child-input-date-time]=\"childInputDateTime\" >\r\n <table class=\"table-box-input\">\r\n <tr>\r\n <td class=\"td-icon\">\r\n <div class=\"delimiter-time-icon\" (click)=\"toClickIn(ID)\" ><i class=\"fas fa-calendar-alt\"></i></div>\r\n </td>\r\n <td class=\"td-date\">\r\n <input #input_datepicker type=\"text\" name=\"{{ID}}\" id=\"{{ID}}\" class=\"form-control\" >\r\n </td>\r\n </tr>\r\n </table>\r\n </div>\r\n\r\n \r\n \r\n</ng-container>\r\n\r\n<!-- Inline mode -->\r\n<ng-container *ngIf=\"!modeInput\"> \r\n <div class=\"tcloud-ui-datepicker tcloud-ui-datepicker-second\" #input_datepicker id=\"{{ID}}\" pattern=\"/^\\d{2}\\/\\d{2}\\/\\d{4}$/\"></div>\r\n</ng-container>\r\n\r\n\r\n<!-- EX de uso \r\n <tc-datepicker \r\n [multiple]=\"false\"\r\n [daysOfWeekDisabled]=\"[0,6]\"\r\n [minDate]=\"'18/11/2021'\"\r\n [maxDate]=\"'18/12/2023'\"\r\n [datesDisabled]=\"['12/10/2022','25/12/2022']\"\r\n [modeInput]=\"false\"\r\n [(ngModel)]=\"dateValue\" >\r\n </tc-datepicker>\r\n \r\n // multiple = false\r\n // dateValue - string - pode ser: 12/12/2022 \r\n\r\n // multiple = true\r\n // dateValue - string - pode ser: 11/12/2022,12/12/2022 ... \r\n\r\n <pre>data: {{ dateValue }}</pre>\r\n-->\r\n", styles: [".input_datepicker{width:100%;max-width:290px}.input-tc-datepicker{background-color:#fff;border:1px solid var(--tc-gray-300);border-radius:3px;height:40px}.input-tc-datepicker.no-border{border:none!important}.input-tc-datepicker .table-box-input{width:100%}.input-tc-datepicker .table-box-input .td-icon{width:14px}.input-tc-datepicker .table-box-input .td-icon .delimiter-time-icon{text-align:center;cursor:pointer}.input-tc-datepicker .table-box-input .td-icon .delimiter-time-icon i{position:relative;left:1px;opacity:.5}.input-tc-datepicker .table-box-input .td-date{width:101px input;width-width:100%}.input-tc-datepicker .table-box-input input{border:none;margin-top:2px;font-size:13px!important}.child-input-date-time{height:28px!important}\n", ".datepicker{display:none}.datepicker.active{display:block}.datepicker-dropdown{left:0;padding-top:4px;position:absolute;top:0;z-index:20}.datepicker-dropdown.datepicker-orient-top{padding-bottom:4px;padding-top:0}.datepicker-picker{background-color:#fff;border-radius:4px;display:inline-block}.datepicker-dropdown .datepicker-picker{box-shadow:0 2px 3px #0a0a0a1a,0 0 0 1px #0a0a0a1a}.datepicker-picker span{-webkit-touch-callout:none;border:0;border-radius:4px;cursor:default;display:block;flex:1;text-align:center;-webkit-user-select:none;user-select:none}.datepicker-main{padding:2px}.datepicker-footer{background-color:#f5f5f5;box-shadow:inset 0 1px 1px #0a0a0a1a}.datepicker-controls,.datepicker-grid,.datepicker-view,.datepicker-view .days-of-week{display:flex}.datepicker-grid{flex-wrap:wrap}.datepicker-view .days .datepicker-cell,.datepicker-view .dow{flex-basis:14.2857142857%}.datepicker-view.datepicker-grid .datepicker-cell{flex-basis:25%}.datepicker-cell,.datepicker-view .week{height:2.25rem;line-height:2.25rem}.datepicker-title{background-color:#f5f5f5;box-shadow:inset 0 -1px 1px #0a0a0a1a;font-weight:700;padding:.375rem .75rem;text-align:center}.datepicker-header .datepicker-controls{padding:2px 2px 0}.datepicker-controls .button{align-items:center;background-color:#fff;border:1px solid #dbdbdb;border-radius:4px;box-shadow:none;color:#363636;cursor:pointer;display:inline-flex;font-size:1rem;height:2.25em;justify-content:center;line-height:1.5;margin:0;padding:calc(.375em - 1px) .75em;position:relative;text-align:center;vertical-align:top;white-space:nowrap}.datepicker-controls .button:active,.datepicker-controls .button:focus{outline:none}.datepicker-controls .button:hover{border-color:#b5b5b5;color:#363636}.datepicker-controls .button:focus{border-color:#3273dc;color:#363636}.datepicker-controls .button:focus:not(:active){box-shadow:0 0 0 .125em #3273dc40}.datepicker-controls .button:active{border-color:#4a4a4a;color:#363636}.datepicker-controls .button[disabled]{cursor:not-allowed}.datepicker-header .datepicker-controls .button{border-color:transparent;font-weight:700}.datepicker-header .datepicker-controls .button:hover{background-color:#f9f9f9}.datepicker-header .datepicker-controls .button:focus:not(:active){box-shadow:0 0 0 .125em #ffffff40}.datepicker-header .datepicker-controls .button:active{background-color:#f2f2f2}.datepicker-header .datepicker-controls .button[disabled]{box-shadow:none}.datepicker-footer .datepicker-controls .button{border-radius:2px;font-size:.75rem;margin:calc(.375rem - 1px) .375rem;width:100%}.datepicker-controls .view-switch{flex:auto}.datepicker-controls .next-btn,.datepicker-controls .prev-btn{padding-left:.375rem;padding-right:.375rem;width:2.25rem}.datepicker-controls .next-btn.disabled,.datepicker-controls .prev-btn.disabled{visibility:hidden}.datepicker-view .dow{font-size:.875rem;font-weight:700;height:1.5rem;line-height:1.5rem}.datepicker-view .week{color:#b5b5b5;font-size:.75rem;width:2.25rem}@media (max-width:22.5rem){.datepicker-view .week{width:1.96875rem}}.datepicker-grid{width:15.75rem}@media (max-width:22.5rem){.calendar-weeks+.days .datepicker-grid{width:13.78125rem}}.datepicker-cell:not(.disabled):hover{background-color:#f9f9f9;cursor:pointer}.datepicker-cell.focused:not(.selected){background-color:#e8e8e8}.datepicker-cell.selected,.datepicker-cell.selected:hover{background-color:#3273dc;color:#fff;font-weight:600}.datepicker-cell.disabled{color:#dbdbdb}.datepicker-cell.next:not(.disabled),.datepicker-cell.prev:not(.disabled){color:#7a7a7a}.datepicker-cell.next.selected,.datepicker-cell.prev.selected{color:#e6e6e6}.datepicker-cell.highlighted:not(.selected):not(.range):not(.today){background-color:#f5f5f5;border-radius:0}.datepicker-cell.highlighted:not(.selected):not(.range):not(.today):not(.disabled):hover{background-color:#eee}.datepicker-cell.highlighted:not(.selected):not(.range):not(.today).focused{background-color:#e8e8e8}.datepicker-cell.today:not(.selected){background-color:#00d1b2}.datepicker-cell.today:not(.selected):not(.disabled){color:#fff}.datepicker-cell.today.focused:not(.selected){background-color:#00c4a7}.datepicker-cell.range-end:not(.selected),.datepicker-cell.range-start:not(.selected){background-color:#b5b5b5;color:#fff}.datepicker-cell.range-end.focused:not(.selected),.datepicker-cell.range-start.focused:not(.selected){background-color:#afafaf}.datepicker-cell.range-start{border-radius:4px 0 0 4px}.datepicker-cell.range-end{border-radius:0 4px 4px 0}.datepicker-cell.range{background-color:#dbdbdb;border-radius:0}.datepicker-cell.range:not(.disabled):not(.focused):not(.today):hover{background-color:#d5d5d5}.datepicker-cell.range.disabled{color:#c2c2c2}.datepicker-cell.range.focused{background-color:#cfcfcf}.datepicker-view.datepicker-grid .datepicker-cell{height:4.5rem;line-height:4.5rem}.datepicker-input.in-edit{border-color:#2366d1}.datepicker-input.in-edit:active,.datepicker-input.in-edit:focus{box-shadow:0 0 .25em .25em #2366d133}\n", ".datepicker-picker{border:1px solid #ccc;padding:10px 15px}\n"] }]
|
|
288
|
+
args: [{ selector: 'tcloud-ui-datepicker', providers: [CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR], encapsulation: ViewEncapsulation.None, template: "<!-- Input mode -->\r\n<ng-container *ngIf=\"modeInput\">\r\n\r\n <div class=\"tcloud-ui-datepicker input-tc-datepicker\" [class.no-border]=\"!useBorder\" [class.child-input-date-time]=\"childInputDateTime\" >\r\n <table class=\"table-box-input\">\r\n <tr>\r\n <td class=\"td-icon\">\r\n <div class=\"delimiter-time-icon\" (click)=\"toClickIn(ID)\" ><i class=\"fas fa-calendar-alt\"></i></div>\r\n </td>\r\n <td class=\"td-date\">\r\n <input #input_datepicker type=\"text\" name=\"{{ID}}\" id=\"{{ID}}\" class=\"form-control\" [title]=\"innerValue\">\r\n </td>\r\n </tr>\r\n </table>\r\n </div>\r\n\r\n \r\n \r\n</ng-container>\r\n\r\n<!-- Inline mode -->\r\n<ng-container *ngIf=\"!modeInput\"> \r\n <div class=\"tcloud-ui-datepicker tcloud-ui-datepicker-second\" #input_datepicker id=\"{{ID}}\" pattern=\"/^\\d{2}\\/\\d{2}\\/\\d{4}$/\" [title]=\"innerValue\"></div>\r\n</ng-container>\r\n\r\n\r\n<!-- EX de uso \r\n <tc-datepicker \r\n [multiple]=\"false\"\r\n [daysOfWeekDisabled]=\"[0,6]\"\r\n [minDate]=\"'18/11/2021'\"\r\n [maxDate]=\"'18/12/2023'\"\r\n [datesDisabled]=\"['12/10/2022','25/12/2022']\"\r\n [modeInput]=\"false\"\r\n [(ngModel)]=\"dateValue\" >\r\n </tc-datepicker>\r\n \r\n // multiple = false\r\n // dateValue - string - pode ser: 12/12/2022 \r\n\r\n // multiple = true\r\n // dateValue - string - pode ser: 11/12/2022,12/12/2022 ... \r\n\r\n <pre>data: {{ dateValue }}</pre>\r\n-->\r\n", styles: [".input_datepicker{width:100%;max-width:290px}.input-tc-datepicker{background-color:#fff;border:1px solid var(--tc-gray-300);border-radius:3px;height:40px}.input-tc-datepicker.no-border{border:none!important}.input-tc-datepicker .table-box-input{width:100%}.input-tc-datepicker .table-box-input .td-icon{width:14px}.input-tc-datepicker .table-box-input .td-icon .delimiter-time-icon{text-align:center;cursor:pointer}.input-tc-datepicker .table-box-input .td-icon .delimiter-time-icon i{position:relative;left:1px;opacity:.5}.input-tc-datepicker .table-box-input .td-date{min-width:30px;width:101px input;width-width:100%}.input-tc-datepicker .table-box-input input{border:none;margin-top:2px;font-size:13px!important}.child-input-date-time{height:28px!important}\n", ".datepicker{display:none}.datepicker.active{display:block}.datepicker-dropdown{left:0;padding-top:4px;position:absolute;top:0;z-index:20}.datepicker-dropdown.datepicker-orient-top{padding-bottom:4px;padding-top:0}.datepicker-picker{background-color:#fff;border-radius:4px;display:inline-block}.datepicker-dropdown .datepicker-picker{box-shadow:0 2px 3px #0a0a0a1a,0 0 0 1px #0a0a0a1a}.datepicker-picker span{-webkit-touch-callout:none;border:0;border-radius:4px;cursor:default;display:block;flex:1;text-align:center;-webkit-user-select:none;user-select:none}.datepicker-main{padding:2px}.datepicker-footer{background-color:#f5f5f5;box-shadow:inset 0 1px 1px #0a0a0a1a}.datepicker-controls,.datepicker-grid,.datepicker-view,.datepicker-view .days-of-week{display:flex}.datepicker-grid{flex-wrap:wrap}.datepicker-view .days .datepicker-cell,.datepicker-view .dow{flex-basis:14.2857142857%}.datepicker-view.datepicker-grid .datepicker-cell{flex-basis:25%}.datepicker-cell,.datepicker-view .week{height:2.25rem;line-height:2.25rem}.datepicker-title{background-color:#f5f5f5;box-shadow:inset 0 -1px 1px #0a0a0a1a;font-weight:700;padding:.375rem .75rem;text-align:center}.datepicker-header .datepicker-controls{padding:2px 2px 0}.datepicker-controls .button{align-items:center;background-color:#fff;border:1px solid #dbdbdb;border-radius:4px;box-shadow:none;color:#363636;cursor:pointer;display:inline-flex;font-size:1rem;height:2.25em;justify-content:center;line-height:1.5;margin:0;padding:calc(.375em - 1px) .75em;position:relative;text-align:center;vertical-align:top;white-space:nowrap}.datepicker-controls .button:active,.datepicker-controls .button:focus{outline:none}.datepicker-controls .button:hover{border-color:#b5b5b5;color:#363636}.datepicker-controls .button:focus{border-color:#3273dc;color:#363636}.datepicker-controls .button:focus:not(:active){box-shadow:0 0 0 .125em #3273dc40}.datepicker-controls .button:active{border-color:#4a4a4a;color:#363636}.datepicker-controls .button[disabled]{cursor:not-allowed}.datepicker-header .datepicker-controls .button{border-color:transparent;font-weight:700}.datepicker-header .datepicker-controls .button:hover{background-color:#f9f9f9}.datepicker-header .datepicker-controls .button:focus:not(:active){box-shadow:0 0 0 .125em #ffffff40}.datepicker-header .datepicker-controls .button:active{background-color:#f2f2f2}.datepicker-header .datepicker-controls .button[disabled]{box-shadow:none}.datepicker-footer .datepicker-controls .button{border-radius:2px;font-size:.75rem;margin:calc(.375rem - 1px) .375rem;width:100%}.datepicker-controls .view-switch{flex:auto}.datepicker-controls .next-btn,.datepicker-controls .prev-btn{padding-left:.375rem;padding-right:.375rem;width:2.25rem}.datepicker-controls .next-btn.disabled,.datepicker-controls .prev-btn.disabled{visibility:hidden}.datepicker-view .dow{font-size:.875rem;font-weight:700;height:1.5rem;line-height:1.5rem}.datepicker-view .week{color:#b5b5b5;font-size:.75rem;width:2.25rem}@media (max-width:22.5rem){.datepicker-view .week{width:1.96875rem}}.datepicker-grid{width:15.75rem}@media (max-width:22.5rem){.calendar-weeks+.days .datepicker-grid{width:13.78125rem}}.datepicker-cell:not(.disabled):hover{background-color:#f9f9f9;cursor:pointer}.datepicker-cell.focused:not(.selected){background-color:#e8e8e8}.datepicker-cell.selected,.datepicker-cell.selected:hover{background-color:#3273dc;color:#fff;font-weight:600}.datepicker-cell.disabled{color:#dbdbdb}.datepicker-cell.next:not(.disabled),.datepicker-cell.prev:not(.disabled){color:#7a7a7a}.datepicker-cell.next.selected,.datepicker-cell.prev.selected{color:#e6e6e6}.datepicker-cell.highlighted:not(.selected):not(.range):not(.today){background-color:#f5f5f5;border-radius:0}.datepicker-cell.highlighted:not(.selected):not(.range):not(.today):not(.disabled):hover{background-color:#eee}.datepicker-cell.highlighted:not(.selected):not(.range):not(.today).focused{background-color:#e8e8e8}.datepicker-cell.today:not(.selected){background-color:#00d1b2}.datepicker-cell.today:not(.selected):not(.disabled){color:#fff}.datepicker-cell.today.focused:not(.selected){background-color:#00c4a7}.datepicker-cell.range-end:not(.selected),.datepicker-cell.range-start:not(.selected){background-color:#b5b5b5;color:#fff}.datepicker-cell.range-end.focused:not(.selected),.datepicker-cell.range-start.focused:not(.selected){background-color:#afafaf}.datepicker-cell.range-start{border-radius:4px 0 0 4px}.datepicker-cell.range-end{border-radius:0 4px 4px 0}.datepicker-cell.range{background-color:#dbdbdb;border-radius:0}.datepicker-cell.range:not(.disabled):not(.focused):not(.today):hover{background-color:#d5d5d5}.datepicker-cell.range.disabled{color:#c2c2c2}.datepicker-cell.range.focused{background-color:#cfcfcf}.datepicker-view.datepicker-grid .datepicker-cell{height:4.5rem;line-height:4.5rem}.datepicker-input.in-edit{border-color:#2366d1}.datepicker-input.in-edit:active,.datepicker-input.in-edit:focus{box-shadow:0 0 .25em .25em #2366d133}\n", ".datepicker-picker{border:1px solid #ccc;padding:10px 15px}\n"] }]
|
|
271
289
|
}], ctorParameters: function () { return [{ type: i1.DateBRPipe }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { multiple: [{
|
|
272
290
|
type: Input
|
|
273
291
|
}], maxNumberOfDates: [{
|
|
@@ -298,4 +316,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
|
|
|
298
316
|
}], code: [{
|
|
299
317
|
type: Input
|
|
300
318
|
}] } });
|
|
301
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGNsb3VkLXVpLWRhdGVwaWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGNsb3VkLXVpL3NyYy9saWIvX21vZHVsZXMvdGNsb3VkLXVpLWRhdGVwaWNrZXIvdGNsb3VkLXVpLWRhdGVwaWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGNsb3VkLXVpL3NyYy9saWIvX21vZHVsZXMvdGNsb3VkLXVpLWRhdGVwaWNrZXIvdGNsb3VkLXVpLWRhdGVwaWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxTQUFTLEVBQWMsTUFBTSxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLGlCQUFpQixFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUN4SixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQU1uRCxJQUFJLFdBQVcsR0FBRztJQUNoQixJQUFJLEVBQUU7UUFDSixJQUFJLEVBQUUsQ0FBQyxTQUFTLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxRQUFRLENBQUM7UUFDNUUsU0FBUyxFQUFFLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDO1FBQzVELE9BQU8sRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQztRQUNuRCxNQUFNLEVBQUUsQ0FBQyxTQUFTLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFB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QjtJQUNILENBQUM7SUFFRCxxQ0FBcUM7SUFDckMsZ0JBQWdCLENBQUMsRUFBTztRQUN0QixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFRCxxQ0FBcUM7SUFDckMsaUJBQWlCLENBQUMsRUFBTztRQUN2QixJQUFJLENBQUMsaUJBQWlCLEdBQUcsRUFBRSxDQUFDO0lBQzlCLENBQUM7O3lIQXhVVSwyQkFBMkI7NkdBQTNCLDJCQUEyQix3YUFIM0IsQ0FBQyxtQ0FBbUMsQ0FBQyxnSkN2Q2xELHM3Q0E2Q0E7NEZESGEsMkJBQTJCO2tCQVh2QyxTQUFTOytCQUNFLHNCQUFzQixhQU9yQixDQUFDLG1DQUFtQyxDQUFDLGlCQUNqQyxpQkFBaUIsQ0FBQyxJQUFJO2lJQUs1QixRQUFRO3NCQUFoQixLQUFLO2dCQUlHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFHRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBR0csT0FBTztzQkFBZixLQUFLO2dCQUdHLE9BQU87c0JBQWYsS0FBSztnQkFHRyxhQUFhO3NCQUFyQixLQUFLO2dCQUdHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBRUcsU0FBUztzQkFBakIsS0FBSztnQkFFRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBR0ksUUFBUTtzQkFBakIsTUFBTTtnQkFHTSxPQUFPO3NCQUFuQixLQUFLO2dCQU9JLGFBQWE7c0JBQXRCLE1BQU07Z0JBRXlDLGdCQUFnQjtzQkFBL0QsU0FBUzt1QkFBQyxrQkFBa0IsRUFBRSxFQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUM7Z0JBRXJDLElBQUk7c0JBQVosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBWaWV3Q2hpbGQsIEVsZW1lbnRSZWYsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBmb3J3YXJkUmVmLCBJbnB1dCwgVmlld0VuY2Fwc3VsYXRpb24sIENoYW5nZURldGVjdG9yUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBEYXRlQlJQaXBlIH0gZnJvbSAnLi4vLi4vX3BpcGVzJztcclxuXHJcbi8vIGh0dHBzOi8vbXltdGguZ2l0aHViLmlvL3ZhbmlsbGFqcy1kYXRlcGlja2VyLyMvXHJcbmRlY2xhcmUgdmFyIERhdGVwaWNrZXI6IGFueTtcclxuXHJcbnZhciB0cmFuc2xhdGlvbiA9IHtcclxuICBwdEJSOiB7XHJcbiAgICBkYXlzOiBbXCJEb21pbmdvXCIsIFwiU2VndW5kYVwiLCBcIlRlcsOnYVwiLCBcIlF1YXJ0YVwiLCBcIlF1aW50YVwiLCBcIlNleHRhXCIsIFwiU8OhYmFkb1wiXSxcclxuICAgIGRheXNTaG9ydDogW1wiRG9tXCIsIFwiU2VnXCIsIFwiVGVyXCIsIFwiUXVhXCIsIFwiUXVpXCIsIFwiU2V4XCIsIFwiU8OhYlwiXSxcclxuICAgIGRheXNNaW46IFtcIkRvXCIsIFwiU2VcIiwgXCJUZVwiLCBcIlF1XCIsIFwiUXVcIiwgXCJTZVwiLCBcIlNhXCJdLFxyXG4gICAgbW9udGhzOiBbXCJKYW5laXJvXCIsIFwiRmV2ZXJlaXJvXCIsIFwiTWFyw6dvXCIsIFwiQWJyaWxcIiwgXCJNYWlvXCIsIFwiSnVuaG9cIiwgXCJKdWxob1wiLCBcIkFnb3N0b1wiLCBcIlNldGVtYnJvXCIsIFwiT3V0dWJyb1wiLCBcIk5vdmVtYnJvXCIsIFwiRGV6ZW1icm9cIl0sXHJcbiAgICBtb250aHNTaG9ydDogW1wiSmFuXCIsIFwiRmV2XCIsIFwiTWFyXCIsIFwiQWJyXCIsIFwiTWFpXCIsIFwiSnVuXCIsIFwiSnVsXCIsIFwiQWdvXCIsIFwiU2V0XCIsIFwiT3V0XCIsIFwiTm92XCIsIFwiRGV6XCJdLFxyXG4gICAgdG9kYXk6IFwiSG9qZVwiLFxyXG4gICAgY2xlYXI6IFwiTGltcGFyXCIsXHJcbiAgICB0aXRsZUZvcm1hdDogXCJNTSB5XCIsXHJcbiAgICBmb3JtYXQ6IFwiZGQvbW0veXl5eVwiLFxyXG4gICAgd2Vla1N0YXJ0OiAwXHJcbiAgfVxyXG59O1xyXG5cclxuY29uc3QgQ1VTVE9NX0lOUFVUX0NPTlRST0xfVkFMVUVfQUNDRVNTT1I6IGFueSA9IHtcclxuICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBUQ2xvdWRVaURhdGVwaWNrZXJDb21wb25lbnQpLFxyXG4gIG11bHRpOiB0cnVlXHJcbn07XHJcblxyXG5jb25zdCBub29wID0gKCkgPT4ge1xyXG59O1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd0Y2xvdWQtdWktZGF0ZXBpY2tlcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RjbG91ZC11aS1kYXRlcGlja2VyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFtcclxuICAgICcuL3RjbG91ZC11aS1kYXRlcGlja2VyLmNvbXBvbmVudC5zY3NzJyxcclxuICAgICcuL2RhdGVwaWNrZXIvY3NzL2RhdGVwaWNrZXIubWluLmNzcycsXHJcbiAgICAnLi9kYXRlcGlja2VyL2Nzcy9zdHlsZS5jc3MnLFxyXG4gIF0sXHJcbiAgcHJvdmlkZXJzOiBbQ1VTVE9NX0lOUFVUX0NPTlRST0xfVkFMVUVfQUNDRVNTT1JdLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcclxufSlcclxuZXhwb3J0IGNsYXNzIFRDbG91ZFVpRGF0ZXBpY2tlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIC8vIG11bHRpcGxlIHBlcm1pdGUgc2VsZWNpb25hciBtdWx0aXBsYXMgZGF0YXNcclxuICBASW5wdXQoKSBtdWx0aXBsZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAvLyBtYXhOdW1iZXJPZkRhdGVzIC0gTWF4aW11bSBudW1iZXIgb2YgZGF0ZXMgdXNlcnMgY2FuIHNlbGVjdC4gTm8gbGltaXQgaXMgYXBwbGllZCBpZiAwIGlzIHNldC5cclxuICAvLyBEZXBlbmRlIGRlOiBtdWx0aXBsZSBjb21vIHRydWVcclxuICBASW5wdXQoKSBtYXhOdW1iZXJPZkRhdGVzOiBudW1iZXIgPSAwO1xyXG5cclxuICAvLyBkYXlzT2ZXZWVrRGlzYWJsZWQgLSBEaWFzIGRhIHNlbWFuYSBkZXNhYmlsaWRhdG9zID0gMCBwYXJhIHNhYmFkbyBhdMOpIDYgcGFyYSBkb21pbmdvXHJcbiAgQElucHV0KCkgZGF5c09mV2Vla0Rpc2FibGVkOiBudW1iZXJbXSA9IFtdO1xyXG5cclxuICAvLyBtaW5EYXRlIC0gRGF0YSBtaW5pbWEgcGFyYSBleGliaWNhbyBkbyBjYWxlbmRhcmlvIC0gZXg6IDAxLzAxLzIwMjBcclxuICBASW5wdXQoKSBtaW5EYXRlOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgLy8gbWF4RGF0ZSAtIERhdGEgbWF4aW1hIHBhcmEgZXhpYmljYW8gZG8gY2FsZW5kYXJpbyAtIGV4OiAzMS8xMi8yMDIwXHJcbiAgQElucHV0KCkgbWF4RGF0ZTogc3RyaW5nID0gJyc7XHJcblxyXG4gIC8vIGRhdGVzRGlzYWJsZWQgLSBEYXRhcyBkZXNhYmlsaXRhZGFzIC0gRXg6IFsnMTIvMTAvMjAyMCcsJzI1LzEyLzIwMjAnXVxyXG4gIEBJbnB1dCgpIGRhdGVzRGlzYWJsZWQ6IHN0cmluZ1tdID0gW107XHJcblxyXG4gIC8vIG1vZGVJbnB1dCAtIEV4aWJlIHVtIGlucHV0IHBhcmEgcXVhbmRvIGNsaWNhciBhYnJpciBvIGNhbGVuZGFyaW9cclxuICBASW5wdXQoKSBtb2RlSW5wdXQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KCkgdXNlQm9yZGVyOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgQElucHV0KCkgY2hpbGRJbnB1dERhdGVUaW1lOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIC8vIG9uQ2hhbmdlIC0gRGlzcGFyYSBhIGRhdGEgc2VsZWNpb25hZGFcclxuICBAT3V0cHV0KCkgb25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueXx1bmRlZmluZWQ+KCk7XHJcblxyXG4gIHByaXZhdGUgX25nTW9kZWw6IGFueSB8IHVuZGVmaW5lZDtcclxuICBASW5wdXQoKSBzZXQgbmdNb2RlbCh2OiBhbnkpe1xyXG5cclxuICAgIGlmKCB2ICYmIHYgIT09IHRoaXMuaW5uZXJWYWx1ZSApe1xyXG4gICAgICB0aGlzLmlubmVyVmFsdWUgPSB2OyAvL3RoaXMudG9TZXRNYXNrKHYpOyBcclxuICAgICAgdGhpcy5vbkNoYW5nZS5lbWl0KHYpO1xyXG4gICAgfSBcclxuICB9XHJcbiAgQE91dHB1dCgpIG5nTW9kZWxDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueXx1bmRlZmluZWQ+KCk7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2lucHV0X2RhdGVwaWNrZXInLCB7c3RhdGljOiBmYWxzZX0pIGlucHV0X2RhdGVwaWNrZXI6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+IHwgdW5kZWZpbmVkO1xyXG4gIHByaXZhdGUgZGF0ZXBpY2tlcjogYW55IHwgdW5kZWZpbmVkO1xyXG4gIEBJbnB1dCgpIGNvZGU6IHN0cmluZyA9ICd0Y2xvdWQtdWktZGF0ZXBpY2tlcic7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfRGF0ZUJSUGlwZTogRGF0ZUJSUGlwZSxcclxuICAgIHByaXZhdGUgX2NoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZlxyXG4gICkgeyB9XHJcblxyXG4gIElEOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLklEID0gdGhpcy5nZW5lcmF0ZUlEKCk7XHJcbiAgICBEYXRlcGlja2VyLmxvY2FsZXMucHRCUiA9IHRyYW5zbGF0aW9uLnB0QlI7ICAgIFxyXG4gICAgdGhpcy5zdGFydF9kYXRlcGlja2VyKCk7XHJcbiAgfVxyXG5cclxuICBnZW5lcmF0ZUlEKCk6IHN0cmluZ3tcclxuICAgIHJldHVybiBgdGNsb3VkLXVpLWRhdGVwaWNrZXItJHtNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBEYXRlLm5vdygpKSl9YDtcclxuICB9XHJcblxyXG4gIHRvU2V0TWFzayh2OiBzdHJpbmcpe1xyXG4gICAgcmV0dXJuIHRoaXMuX0RhdGVCUlBpcGUudHJhbnNmb3JtKHYpO1xyXG4gIH1cclxuXHJcbiAgZ2V0X29wdGlvbnMoKXtcclxuICAgIGxldCBvcHRpb25zID0ge1xyXG4gICAgICBuZXh0QXJyb3c6IGA8aSBjbGFzcz1cImZhcyBmYS1jYXJldC1yaWdodFwiPjwvaT5gLFxyXG4gICAgICBwcmV2QXJyb3c6IGA8aSBjbGFzcz1cImZhcyBmYS1jYXJldC1sZWZ0XCI+PC9pPmAsXHJcbiAgICAgIGZvcm1hdDogJ2RkL21tL3l5eXknLCAgICAgIFxyXG4gICAgICBkYXlzT2ZXZWVrSGlnaGxpZ2h0ZWQ6IFswLDZdLFxyXG4gICAgICBsYW5ndWFnZTogJ3B0QlInXHJcbiAgICB9IGFzIGFueTtcclxuXHJcbiAgICBpZiggKHRoaXMuZGF5c09mV2Vla0Rpc2FibGVkKS5sZW5ndGggPiAwICl7XHJcbiAgICAgIG9wdGlvbnNbJ2RheXNPZldlZWtEaXNhYmxlZCddID0gdGhpcy5kYXlzT2ZXZWVrRGlzYWJsZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgaWYoICh0aGlzLmRhdGVzRGlzYWJsZWQpLmxlbmd0aCA+IDAgKXtcclxuICAgICAgb3B0aW9uc1snZGF0ZXNEaXNhYmxlZCddID0gdGhpcy5kYXRlc0Rpc2FibGVkO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCB0aGlzLm1pbkRhdGUgIT09ICcnICl7XHJcbiAgICAgIG9wdGlvbnNbJ21pbkRhdGUnXSA9IHRoaXMubWluRGF0ZTtcclxuICAgIH1cclxuXHJcbiAgICBpZiggdGhpcy5tYXhEYXRlICE9PSAnJyApe1xyXG4gICAgICBvcHRpb25zWydtYXhEYXRlJ10gPSB0aGlzLm1heERhdGU7XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIHRoaXMubXVsdGlwbGUgKXsgICAgICBcclxuICAgICAgb3B0aW9uc1snbWF4TnVtYmVyT2ZEYXRlcyddID0gdGhpcy5tYXhOdW1iZXJPZkRhdGVzO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBvcHRpb25zO1xyXG4gIH1cclxuXHJcbiAgY2xlYXJEYXRlKCl7XHJcbiAgICBpZiggdGhpcy5kYXRlcGlja2VyICl7XHJcbiAgICAgIHRoaXMuZGF0ZXBpY2tlci5zZXREYXRlKHtjbGVhcjogdHJ1ZX0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc3RhcnRfZGF0ZXBpY2tlcigpe1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7ICAgICBcclxuICAgICAgY29uc3QgaW5wdXRfZGF0ZXBpY2tlciA9IDxhbnk+IHRoaXMuaW5wdXRfZGF0ZXBpY2tlcj8ubmF0aXZlRWxlbWVudDtcclxuICAgICAgaWYoIGlucHV0X2RhdGVwaWNrZXIgKXtcclxuXHJcbiAgICAgICAgaW5wdXRfZGF0ZXBpY2tlci5zZXRBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJywnREQvTU0vWVlZWScpO1xyXG5cclxuICAgICAgICBpZiggIXRoaXMudXNlQm9yZGVyICl7XHJcbiAgICAgICAgICBpbnB1dF9kYXRlcGlja2VyLnNldEF0dHJpYnV0ZSgnc3R5bGUnLCdib3JkZXI6bm9uZTsgdGV4dC1hbGlnbjogY2VudGVyOyBtYXgtd2lkdGg6IDEwNXB4OyBwYWRkaW5nOiAwOycpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBcclxuXHJcbiAgICAgICAgdGhpcy5kYXRlcGlja2VyID0gbmV3IERhdGVwaWNrZXIoIGlucHV0X2RhdGVwaWNrZXIsIHRoaXMuZ2V0X29wdGlvbnMoKSApO1xyXG5cclxuICAgICAgICBpZiggdGhpcy5pbm5lclZhbHVlICYmIHRoaXMuaW5uZXJWYWx1ZSAhPT0gJycgKXtcclxuICAgICAgICAgIHRoaXMudG9TZXREZWZhdWx0RGF0ZSh0aGlzLmlubmVyVmFsdWUpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaW5wdXRfZGF0ZXBpY2tlci5hZGRFdmVudExpc3RlbmVyKCdrZXl1cCcsIChldmVudDogYW55KSA9PiB7XHJcbiAgICAgICAgICBjb25zdCB2ID0gKGlucHV0X2RhdGVwaWNrZXJbJ3ZhbHVlJ10pID8gaW5wdXRfZGF0ZXBpY2tlclsndmFsdWUnXSA6ICcnO1xyXG4gICAgICAgICAgaW5wdXRfZGF0ZXBpY2tlclsndmFsdWUnXSA9IHRoaXMudG9TZXRNYXNrKHYpO1xyXG5cclxuICAgICAgICAgIGlmKCAoaW5wdXRfZGF0ZXBpY2tlclsndmFsdWUnXSkubGVuZ3RoID49IDEwICl7XHJcbiAgICAgICAgICAgIGNvbnN0IHYgPSAoaW5wdXRfZGF0ZXBpY2tlclsndmFsdWUnXSkuc3Vic3RyaW5nKDAsIDEwKTtcclxuICAgICAgICAgICAgY29uc3QgcGFydF9kYXRlID0gKHYpLnNwbGl0KCcvJyk7XHJcbiAgICAgICAgICAgIGlmKCAocGFydF9kYXRlKS5sZW5ndGggPT09IDMgKXtcclxuXHJcbiAgICAgICAgICAgICAgbGV0IGRpYSA9IHBhcnRfZGF0ZVswXTtcclxuICAgICAgICAgICAgICBsZXQgbWVzID0gcGFydF9kYXRlWzFdO1xyXG4gICAgICAgICAgICAgIGxldCBhbm8gPSBwYXJ0X2RhdGVbMl07XHJcblxyXG4gICAgICAgICAgICAgIG1lcyA9ICgrKG1lcykgPCAxMCApID8gYDAkeyttZXN9YCA6IG1lczsgIFxyXG4gICAgICAgICAgICAgIGRpYSA9ICgrKGRpYSkgPCAxMCApID8gYDAkeytkaWF9YCA6IGRpYTtcclxuXHJcbiAgICAgICAgICAgICAgY29uc3QgZHQgPSBuZXcgRGF0ZShhbm8rJy0nK21lcysnLScrZGlhKTtcclxuICAgICAgICAgICAgICBpZiggZHQgKXtcclxuICAgICAgICAgICAgICAgIGlucHV0X2RhdGVwaWNrZXI/LmNoYW5nZURhdGU7XHJcbiAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLklEKT8uYmx1cigpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5vbkNoYW5nZS5lbWl0KHRoaXMuaW5uZXJWYWx1ZSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5nTW9kZWxDaGFuZ2UuZW1pdCh0aGlzLmlubmVyVmFsdWUpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgIHRoaXMuaW5uZXJWYWx1ZSA9IHVuZGVmaW5lZDtcclxuICAgICAgICAgICAgdGhpcy5vbkNoYW5nZS5lbWl0KHRoaXMuaW5uZXJWYWx1ZSk7XHJcbiAgICAgICAgICAgIHRoaXMubmdNb2RlbENoYW5nZS5lbWl0KHRoaXMuaW5uZXJWYWx1ZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuXHJcblxyXG4gICAgICAgIGlucHV0X2RhdGVwaWNrZXIuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlRGF0ZScsIChldmVudDogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiggZXZlbnQ/LmRldGFpbD8uZGF0ZSApe1xyXG4gICAgICAgICAgICB0aGlzLnRvU2VsZWN0ZWREYXRlKCBldmVudC5kZXRhaWwgKTtcclxuICAgICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICB0aGlzLmlubmVyVmFsdWUgPSAnJztcclxuICAgICAgICAgICAgdGhpcy5uZ01vZGVsQ2hhbmdlLmVtaXQodGhpcy5pbm5lclZhbHVlKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KVxyXG4gICAgICB9ICAgICAgXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHRvU2V0RGF0ZSgpe1xyXG4gICAgLy8gRXggZGUgdXNvXHJcbiAgICBjb25zdCBkYXRlcyA9IFsnMTgvMTEvMjAyMiddO1xyXG4gICAgaWYoIHRoaXMuZGF0ZXBpY2tlciApe1xyXG4gICAgICB0aGlzLmRhdGVwaWNrZXIuc2V0RGF0ZShkYXRlcyk7XHJcbiAgICB9ICAgIFxyXG4gIH1cclxuXHJcbiAgdG9TZXREZWZhdWx0RGF0ZShkYXRlOiBzdHJpbmcgfCBzdHJpbmdbXSl7XHJcbiAgICBcclxuICAgIGlmKCBkYXRlID09PSB1bmRlZmluZWQgfHwgZGF0ZSA9PT0gbnVsbCB8fCBkYXRlID09PSAnJyApe1xyXG4gICAgICB0aGlzLmNsZWFyRGF0ZSgpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IGRhdGVzID0gW10gYXMgc3RyaW5nW107XHJcblxyXG4gICAgaWYoIGRhdGUgJiYgdHlwZW9mIGRhdGUgPT09ICdzdHJpbmcnICl7XHJcbiAgICAgIGlmKCAoZGF0ZSkuaW5jbHVkZXMoJywnKSApe1xyXG4gICAgICAgIGNvbnN0IGRhdGVzID0gKGRhdGUpLnNwbGl0KCcsJyk7XHJcbiAgICAgICAgZGF0ZSA9IGRhdGVzO1xyXG4gICAgICAgIGlmKCAhdGhpcy5tdWx0aXBsZSApe1xyXG4gICAgICAgICAgdGhpcy5pbm5lclZhbHVlID0gZGF0ZSA9IGRhdGVzWzBdO1xyXG4gICAgICAgICAgdGhpcy5uZ01vZGVsQ2hhbmdlLmVtaXQodGhpcy5pbm5lclZhbHVlKTsgXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBcclxuICAgIGlmKCBkYXRlICYmIHR5cGVvZiBkYXRlID09PSAnc3RyaW5nJyApe1xyXG4gICAgICAoZGF0ZXMpLnB1c2goIGRhdGUgKTsgXHJcbiAgICB9ZWxzZXtcclxuICAgICAgZGF0ZXMgPSA8QXJyYXk8c3RyaW5nPj4gZGF0ZTtcclxuICAgIH1cclxuICAgIGlmKCB0aGlzLmRhdGVwaWNrZXIgKXtcclxuICAgICAgdGhpcy5kYXRlcGlja2VyLnNldERhdGUoZGF0ZXMpOyAgICAgIFxyXG4gICAgfSBcclxuICB9XHJcblxyXG4gIHRvU2VsZWN0ZWREYXRlKGRldGFpbDogYW55KXsgICAgXHJcbiAgICBpZiggZGV0YWlsLmRhdGVwaWNrZXIuZGF0ZXMgJiYgKGRldGFpbC5kYXRlcGlja2VyLmRhdGVzKS5sZW5ndGggPiAwICl7XHJcbiAgICAgIGlmKCB0aGlzLm11bHRpcGxlICl7XHJcbiAgICAgICAgbGV0IGRhdGVzID0gW107XHJcbiAgICAgICAgZm9yKCBsZXQgaSA9IDA7IGkgPCAoZGV0YWlsLmRhdGVwaWNrZXIuZGF0ZXMpLmxlbmd0aDsgaSsrICl7XHJcbiAgICAgICAgICBjb25zdCB0aW1lU3RhbXAgPSA8bnVtYmVyPiBkZXRhaWwuZGF0ZXBpY2tlci5kYXRlc1tpXTtcclxuICAgICAgICAgIChkYXRlcykucHVzaCggdGhpcy5mb3JtYXRfZGF0ZSggdGltZVN0YW1wICkgKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5pbm5lclZhbHVlID0gZGF0ZXM7XHJcbiAgICAgICAgdGhpcy5vbkNoYW5nZS5lbWl0KHRoaXMuaW5uZXJWYWx1ZSk7ICAgICAgICBcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgY29uc3QgdGltZVN0YW1wID0gPG51bWJlcj4gZGV0YWlsLmRhdGVwaWNrZXIuZGF0ZXNbMF07XHJcbiAgICAgICAgY29uc3QgZGF0ZSA9IHRoaXMuZm9ybWF0X2RhdGUoIHRpbWVTdGFtcCApO1xyXG4gICAgICAgIHRoaXMub25DaGFuZ2UuZW1pdChkYXRlKTtcclxuICAgICAgICB0aGlzLmlubmVyVmFsdWUgPSBkYXRlO1xyXG4gICAgICB9ICAgICAgXHJcbiAgICB9ZWxzZXtcclxuICAgICAgdGhpcy5jbGVhckRhdGUoKTtcclxuICAgICAgdGhpcy5pbm5lclZhbHVlID0gbnVsbDtcclxuICAgICAgdGhpcy5vbkNoYW5nZS5lbWl0KHRoaXMuaW5uZXJWYWx1ZSk7XHJcbiAgICB9IFxyXG4gICAgdGhpcy52YWx1ZSA9IHRoaXMuaW5uZXJWYWx1ZTtcclxuICAgIHRoaXMubmdNb2RlbENoYW5nZS5lbWl0KHRoaXMuaW5uZXJWYWx1ZSk7IFxyXG4gIH1cclxuXHJcbiAgZm9ybWF0X2RhdGUodGltZVN0YW1wOiBudW1iZXIpe1xyXG4gICAgdmFyIGRhdGUgPSBuZXcgRGF0ZSh0aW1lU3RhbXApO1xyXG5cclxuICAgIGxldCBkaWEgPSBgJHtkYXRlLmdldERhdGUoKX1gO1xyXG4gICAgbGV0IG1lcyA9IGAke2RhdGUuZ2V0TW9udGgoKSsxfWA7XHJcbiAgICBsZXQgYW5vID0gYCR7ZGF0ZS5nZXRGdWxsWWVhcigpfWA7XHJcblxyXG4gICAgZGlhID0gKCsoZGlhKSA8IDEwICkgPyBgMCR7K2RpYX1gIDogZGlhO1xyXG4gICAgbWVzID0gKCsobWVzKSA8IDEwICkgPyBgMCR7K21lc31gIDogbWVzOyBcclxuXHJcbiAgICBjb25zdCBkYXRlRm9ybWF0ID0gYCR7ZGlhfS8ke21lc30vJHthbm99YDtcclxuICAgIHJldHVybiBkYXRlRm9ybWF0O1xyXG4gIH1cclxuXHJcbiAgdG9DbGlja0luKGlkOiBzdHJpbmcpe1xyXG4gICAgY29uc3QgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKSBhcyBhbnk7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHsgICAgICBcclxuICAgICAgZWxlbWVudD8uZGF0ZXBpY2tlcj8uc2hvdygpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG4gIGlubmVyVmFsdWU6IGFueSB8IHVuZGVmaW5lZDtcclxuICAvL1BsYWNlaG9sZGVycyBmb3IgdGhlIGNhbGxiYWNrcyB3aGljaCBhcmUgbGF0ZXIgcHJvdmlkZXNkXHJcbiAgLy9ieSB0aGUgQ29udHJvbCBWYWx1ZSBBY2Nlc3NvclxyXG4gIHByaXZhdGUgb25Ub3VjaGVkQ2FsbGJhY2s6ICgpID0+IHZvaWQgPSBub29wO1xyXG4gIHByaXZhdGUgb25DaGFuZ2VDYWxsYmFjazogKF86IGFueSkgPT4gdm9pZCA9IG5vb3A7XHJcblxyXG4gIC8vZ2V0IGFjY2Vzc29yXHJcbiAgZ2V0IHZhbHVlKCk6IGFueSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmlubmVyVmFsdWU7XHJcbiAgfTtcclxuXHJcbiAgLy9zZXQgYWNjZXNzb3IgaW5jbHVkaW5nIGNhbGwgdGhlIG9uY2hhbmdlIGNhbGxiYWNrXHJcbiAgc2V0IHZhbHVlKHY6IGFueSkge1xyXG5cclxuICAgIGlmICh2ICE9PSB0aGlzLmlubmVyVmFsdWUpIHtcclxuICAgICAgdGhpcy5pbm5lclZhbHVlID0gdjsgLy8gdGhpcy50b1NldE1hc2sodik7ICAgICAgXHJcbiAgICAgIHRoaXMub25DaGFuZ2VDYWxsYmFjayh2KTtcclxuICAgIH1lbHNle1xyXG4gICAgIC8vIHRoaXMuaW5uZXJWYWx1ZSA9ICcnO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy9TZXQgdG91Y2hlZCBvbiBibHVyXHJcbiAgb25CbHVyKCkge1xyXG4gICAgdGhpcy5vblRvdWNoZWRDYWxsYmFjaygpO1xyXG4gIH1cclxuXHJcbiAgLy9Gcm9tIENvbnRyb2xWYWx1ZUFjY2Vzc29yIGludGVyZmFjZVxyXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSkge1xyXG4gICAgaWYgKHZhbHVlICE9PSB0aGlzLmlubmVyVmFsdWUpIHtcclxuICAgICAgdGhpcy5pbm5lclZhbHVlID0gdmFsdWU7XHJcbiAgICAgIHRoaXMudG9TZXREZWZhdWx0RGF0ZSh2YWx1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvL0Zyb20gQ29udHJvbFZhbHVlQWNjZXNzb3IgaW50ZXJmYWNlXHJcbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KSB7XHJcbiAgICB0aGlzLm9uQ2hhbmdlQ2FsbGJhY2sgPSBmbjtcclxuICB9XHJcblxyXG4gIC8vRnJvbSBDb250cm9sVmFsdWVBY2Nlc3NvciBpbnRlcmZhY2VcclxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KSB7XHJcbiAgICB0aGlzLm9uVG91Y2hlZENhbGxiYWNrID0gZm47XHJcbiAgfVxyXG5cclxufVxyXG4iLCI8IS0tIElucHV0IG1vZGUgLS0+XHJcbjxuZy1jb250YWluZXIgKm5nSWY9XCJtb2RlSW5wdXRcIj5cclxuXHJcbiAgPGRpdiBjbGFzcz1cInRjbG91ZC11aS1kYXRlcGlja2VyIGlucHV0LXRjLWRhdGVwaWNrZXJcIiBbY2xhc3Mubm8tYm9yZGVyXT1cIiF1c2VCb3JkZXJcIiBbY2xhc3MuY2hpbGQtaW5wdXQtZGF0ZS10aW1lXT1cImNoaWxkSW5wdXREYXRlVGltZVwiID5cclxuICAgIDx0YWJsZSBjbGFzcz1cInRhYmxlLWJveC1pbnB1dFwiPlxyXG4gICAgICA8dHI+XHJcbiAgICAgICAgPHRkIGNsYXNzPVwidGQtaWNvblwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImRlbGltaXRlci10aW1lLWljb25cIiAoY2xpY2spPVwidG9DbGlja0luKElEKVwiID48aSBjbGFzcz1cImZhcyBmYS1jYWxlbmRhci1hbHRcIj48L2k+PC9kaXY+XHJcbiAgICAgICAgPC90ZD5cclxuICAgICAgICA8dGQgY2xhc3M9XCJ0ZC1kYXRlXCI+XHJcbiAgICAgICAgICA8aW5wdXQgI2lucHV0X2RhdGVwaWNrZXIgdHlwZT1cInRleHRcIiBuYW1lPVwie3tJRH19XCIgaWQ9XCJ7e0lEfX1cIiBjbGFzcz1cImZvcm0tY29udHJvbFwiID5cclxuICAgICAgICA8L3RkPlxyXG4gICAgICA8L3RyPlxyXG4gICAgPC90YWJsZT5cclxuICA8L2Rpdj5cclxuXHJcbiAgXHJcbiAgXHJcbjwvbmctY29udGFpbmVyPlxyXG5cclxuPCEtLSBJbmxpbmUgbW9kZSAtLT5cclxuPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFtb2RlSW5wdXRcIj4gIFxyXG4gIDxkaXYgY2xhc3M9XCJ0Y2xvdWQtdWktZGF0ZXBpY2tlciB0Y2xvdWQtdWktZGF0ZXBpY2tlci1zZWNvbmRcIiAjaW5wdXRfZGF0ZXBpY2tlciBpZD1cInt7SUR9fVwiIHBhdHRlcm49XCIvXlxcZHsyfVxcL1xcZHsyfVxcL1xcZHs0fSQvXCI+PC9kaXY+XHJcbjwvbmctY29udGFpbmVyPlxyXG5cclxuXHJcbjwhLS0gRVggZGUgdXNvIFxyXG4gIDx0Yy1kYXRlcGlja2VyIFxyXG4gICAgW211bHRpcGxlXT1cImZhbHNlXCJcclxuICAgIFtkYXlzT2ZXZWVrRGlzYWJsZWRdPVwiWzAsNl1cIlxyXG4gICAgW21pbkRhdGVdPVwiJzE4LzExLzIwMjEnXCJcclxuICAgIFttYXhEYXRlXT1cIicxOC8xMi8yMDIzJ1wiXHJcbiAgICBbZGF0ZXNEaXNhYmxlZF09XCJbJzEyLzEwLzIwMjInLCcyNS8xMi8yMDIyJ11cIlxyXG4gICAgW21vZGVJbnB1dF09XCJmYWxzZVwiXHJcbiAgICBbKG5nTW9kZWwpXT1cImRhdGVWYWx1ZVwiID5cclxuICA8L3RjLWRhdGVwaWNrZXI+XHJcbiAgXHJcbiAgLy8gbXVsdGlwbGUgPSBmYWxzZVxyXG4gIC8vIGRhdGVWYWx1ZSAtIHN0cmluZyAtIHBvZGUgc2VyOiAxMi8xMi8yMDIyIFxyXG5cclxuICAvLyBtdWx0aXBsZSA9IHRydWVcclxuICAvLyBkYXRlVmFsdWUgLSBzdHJpbmcgLSBwb2RlIHNlcjogMTEvMTIvMjAyMiwxMi8xMi8yMDIyIC4uLiBcclxuXHJcbiAgPHByZT5kYXRhOiB7eyBkYXRlVmFsdWUgfX08L3ByZT5cclxuLS0+XHJcbiJdfQ==
|
|
319
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGNsb3VkLXVpLWRhdGVwaWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGNsb3VkLXVpL3NyYy9saWIvX21vZHVsZXMvdGNsb3VkLXVpLWRhdGVwaWNrZXIvdGNsb3VkLXVpLWRhdGVwaWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGNsb3VkLXVpL3NyYy9saWIvX21vZHVsZXMvdGNsb3VkLXVpLWRhdGVwaWNrZXIvdGNsb3VkLXVpLWRhdGVwaWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxTQUFTLEVBQWMsTUFBTSxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLGlCQUFpQixFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUN4SixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQU1uRCxJQUFJLFdBQVcsR0FBRztJQUNoQixJQUFJLEVBQUU7UUFDSixJQUFJLEVBQUUsQ0FBQyxTQUFTLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxRQUFRLENBQUM7UUFDNUUsU0FBUyxFQUFFLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDO1FBQzVELE9BQU8sRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQztRQUNuRCxNQUFNLEVBQUUsQ0FBQyxTQUFTLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFB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R0FBM0IsMkJBQTJCLHdhQUgzQixDQUFDLG1DQUFtQyxDQUFDLGdKQ3ZDbEQsbStDQTZDQTs0RkRIYSwyQkFBMkI7a0JBWHZDLFNBQVM7K0JBQ0Usc0JBQXNCLGFBT3JCLENBQUMsbUNBQW1DLENBQUMsaUJBQ2pDLGlCQUFpQixDQUFDLElBQUk7aUlBSzVCLFFBQVE7c0JBQWhCLEtBQUs7Z0JBSUcsZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUdHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFHRyxPQUFPO3NCQUFmLEtBQUs7Z0JBR0csT0FBTztzQkFBZixLQUFLO2dCQUdHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBR0csU0FBUztzQkFBakIsS0FBSztnQkFFRyxTQUFTO3NCQUFqQixLQUFLO2dCQUVHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFHSSxRQUFRO3NCQUFqQixNQUFNO2dCQUdNLE9BQU87c0JBQW5CLEtBQUs7Z0JBT0ksYUFBYTtzQkFBdEIsTUFBTTtnQkFFeUMsZ0JBQWdCO3NCQUEvRCxTQUFTO3VCQUFDLGtCQUFrQixFQUFFLEVBQUMsTUFBTSxFQUFFLEtBQUssRUFBQztnQkFFckMsSUFBSTtzQkFBWixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIFZpZXdDaGlsZCwgRWxlbWVudFJlZiwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIGZvcndhcmRSZWYsIElucHV0LCBWaWV3RW5jYXBzdWxhdGlvbiwgQ2hhbmdlRGV0ZWN0b3JSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IERhdGVCUlBpcGUgfSBmcm9tICcuLi8uLi9fcGlwZXMnO1xyXG5cclxuLy8gaHR0cHM6Ly9teW10aC5naXRodWIuaW8vdmFuaWxsYWpzLWRhdGVwaWNrZXIvIy9cclxuZGVjbGFyZSB2YXIgRGF0ZXBpY2tlcjogYW55O1xyXG5cclxudmFyIHRyYW5zbGF0aW9uID0ge1xyXG4gIHB0QlI6IHtcclxuICAgIGRheXM6IFtcIkRvbWluZ29cIiwgXCJTZWd1bmRhXCIsIFwiVGVyw6dhXCIsIFwiUXVhcnRhXCIsIFwiUXVpbnRhXCIsIFwiU2V4dGFcIiwgXCJTw6FiYWRvXCJdLFxyXG4gICAgZGF5c1Nob3J0OiBbXCJEb21cIiwgXCJTZWdcIiwgXCJUZXJcIiwgXCJRdWFcIiwgXCJRdWlcIiwgXCJTZXhcIiwgXCJTw6FiXCJdLFxyXG4gICAgZGF5c01pbjogW1wiRG9cIiwgXCJTZVwiLCBcIlRlXCIsIFwiUXVcIiwgXCJRdVwiLCBcIlNlXCIsIFwiU2FcIl0sXHJcbiAgICBtb250aHM6IFtcIkphbmVpcm9cIiwgXCJGZXZlcmVpcm9cIiwgXCJNYXLDp29cIiwgXCJBYnJpbFwiLCBcIk1haW9cIiwgXCJKdW5ob1wiLCBcIkp1bGhvXCIsIFwiQWdvc3RvXCIsIFwiU2V0ZW1icm9cIiwgXCJPdXR1YnJvXCIsIFwiTm92ZW1icm9cIiwgXCJEZXplbWJyb1wiXSxcclxuICAgIG1vbnRoc1Nob3J0OiBbXCJKYW5cIiwgXCJGZXZcIiwgXCJNYXJcIiwgXCJBYnJcIiwgXCJNYWlcIiwgXCJKdW5cIiwgXCJKdWxcIiwgXCJBZ29cIiwgXCJTZXRcIiwgXCJPdXRcIiwgXCJOb3ZcIiwgXCJEZXpcIl0sXHJcbiAgICB0b2RheTogXCJIb2plXCIsXHJcbiAgICBjbGVhcjogXCJMaW1wYXJcIixcclxuICAgIHRpdGxlRm9ybWF0OiBcIk1NIHlcIixcclxuICAgIGZvcm1hdDogXCJkZC9tbS95eXl5XCIsXHJcbiAgICB3ZWVrU3RhcnQ6IDBcclxuICB9XHJcbn07XHJcblxyXG5jb25zdCBDVVNUT01fSU5QVVRfQ09OVFJPTF9WQUxVRV9BQ0NFU1NPUjogYW55ID0ge1xyXG4gIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFRDbG91ZFVpRGF0ZXBpY2tlckNvbXBvbmVudCksXHJcbiAgbXVsdGk6IHRydWVcclxufTtcclxuXHJcbmNvbnN0IG5vb3AgPSAoKSA9PiB7XHJcbn07XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3RjbG91ZC11aS1kYXRlcGlja2VyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdGNsb3VkLXVpLWRhdGVwaWNrZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogW1xyXG4gICAgJy4vdGNsb3VkLXVpLWRhdGVwaWNrZXIuY29tcG9uZW50LnNjc3MnLFxyXG4gICAgJy4vZGF0ZXBpY2tlci9jc3MvZGF0ZXBpY2tlci5taW4uY3NzJyxcclxuICAgICcuL2RhdGVwaWNrZXIvY3NzL3N0eWxlLmNzcycsXHJcbiAgXSxcclxuICBwcm92aWRlcnM6IFtDVVNUT01fSU5QVVRfQ09OVFJPTF9WQUxVRV9BQ0NFU1NPUl0sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVENsb3VkVWlEYXRlcGlja2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgLy8gbXVsdGlwbGUgcGVybWl0ZSBzZWxlY2lvbmFyIG11bHRpcGxhcyBkYXRhc1xyXG4gIEBJbnB1dCgpIG11bHRpcGxlOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIC8vIG1heE51bWJlck9mRGF0ZXMgLSBNYXhpbXVtIG51bWJlciBvZiBkYXRlcyB1c2VycyBjYW4gc2VsZWN0LiBObyBsaW1pdCBpcyBhcHBsaWVkIGlmIDAgaXMgc2V0LlxyXG4gIC8vIERlcGVuZGUgZGU6IG11bHRpcGxlIGNvbW8gdHJ1ZVxyXG4gIEBJbnB1dCgpIG1heE51bWJlck9mRGF0ZXM6IG51bWJlciA9IDA7XHJcblxyXG4gIC8vIGRheXNPZldlZWtEaXNhYmxlZCAtIERpYXMgZGEgc2VtYW5hIGRlc2FiaWxpZGF0b3MgPSAwIHBhcmEgc2FiYWRvIGF0w6kgNiBwYXJhIGRvbWluZ29cclxuICBASW5wdXQoKSBkYXlzT2ZXZWVrRGlzYWJsZWQ6IG51bWJlcltdID0gW107XHJcblxyXG4gIC8vIG1pbkRhdGUgLSBEYXRhIG1pbmltYSBwYXJhIGV4aWJpY2FvIGRvIGNhbGVuZGFyaW8gLSBleDogMDEvMDEvMjAyMFxyXG4gIEBJbnB1dCgpIG1pbkRhdGU6IHN0cmluZyA9ICcnO1xyXG5cclxuICAvLyBtYXhEYXRlIC0gRGF0YSBtYXhpbWEgcGFyYSBleGliaWNhbyBkbyBjYWxlbmRhcmlvIC0gZXg6IDMxLzEyLzIwMjBcclxuICBASW5wdXQoKSBtYXhEYXRlOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgLy8gZGF0ZXNEaXNhYmxlZCAtIERhdGFzIGRlc2FiaWxpdGFkYXMgLSBFeDogWycxMi8xMC8yMDIwJywnMjUvMTIvMjAyMCddXHJcbiAgQElucHV0KCkgZGF0ZXNEaXNhYmxlZDogc3RyaW5nW10gPSBbXTtcclxuXHJcbiAgLy8gbW9kZUlucHV0IC0gRXhpYmUgdW0gaW5wdXQgcGFyYSBxdWFuZG8gY2xpY2FyIGFicmlyIG8gY2FsZW5kYXJpb1xyXG4gIEBJbnB1dCgpIG1vZGVJbnB1dDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKSB1c2VCb3JkZXI6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICBASW5wdXQoKSBjaGlsZElucHV0RGF0ZVRpbWU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLy8gb25DaGFuZ2UgLSBEaXNwYXJhIGEgZGF0YSBzZWxlY2lvbmFkYVxyXG4gIEBPdXRwdXQoKSBvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55fHVuZGVmaW5lZD4oKTtcclxuXHJcbiAgcHJpdmF0ZSBfbmdNb2RlbDogYW55IHwgdW5kZWZpbmVkO1xyXG4gIEBJbnB1dCgpIHNldCBuZ01vZGVsKHY6IGFueSl7XHJcblxyXG4gICAgaWYoIHYgJiYgdiAhPT0gdGhpcy5pbm5lclZhbHVlICl7XHJcbiAgICAgIHRoaXMuaW5uZXJWYWx1ZSA9IHY7IC8vdGhpcy50b1NldE1hc2sodik7IFxyXG4gICAgICB0aGlzLm9uQ2hhbmdlLmVtaXQodik7XHJcbiAgICB9IFxyXG4gIH1cclxuICBAT3V0cHV0KCkgbmdNb2RlbENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55fHVuZGVmaW5lZD4oKTtcclxuXHJcbiAgQFZpZXdDaGlsZCgnaW5wdXRfZGF0ZXBpY2tlcicsIHtzdGF0aWM6IGZhbHNlfSkgaW5wdXRfZGF0ZXBpY2tlcjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4gfCB1bmRlZmluZWQ7XHJcbiAgcHJpdmF0ZSBkYXRlcGlja2VyOiBhbnkgfCB1bmRlZmluZWQ7XHJcbiAgQElucHV0KCkgY29kZTogc3RyaW5nID0gJ3RjbG91ZC11aS1kYXRlcGlja2VyJztcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF9EYXRlQlJQaXBlOiBEYXRlQlJQaXBlLFxyXG4gICAgcHJpdmF0ZSBfY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmXHJcbiAgKSB7IH1cclxuXHJcbiAgSUQ6IHN0cmluZyA9ICcnO1xyXG5cclxuICBcclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLklEID0gdGhpcy5nZW5lcmF0ZUlEKCk7XHJcbiAgICBEYXRlcGlja2VyLmxvY2FsZXMucHRCUiA9IHRyYW5zbGF0aW9uLnB0QlI7ICAgIFxyXG4gICAgdGhpcy5zdGFydF9kYXRlcGlja2VyKCk7XHJcbiAgfVxyXG5cclxuICBnZW5lcmF0ZUlEKCk6IHN0cmluZ3tcclxuICAgIHJldHVybiBgdGNsb3VkLXVpLWRhdGVwaWNrZXItJHtNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBEYXRlLm5vdygpKSl9YDtcclxuICB9XHJcblxyXG4gIHRvU2V0TWFzayh2OiBzdHJpbmcpe1xyXG4gICAgcmV0dXJuIHRoaXMuX0RhdGVCUlBpcGUudHJhbnNmb3JtKHYpO1xyXG4gIH1cclxuXHJcbiAgZ2V0X29wdGlvbnMoKXtcclxuXHJcbiAgICAvLyBGdW7Dp8OjbyBwYXJhIGZvcm1hdGFyIHVtYSBkYXRhIG5vIGZ1c28gaG9yw6FyaW8gbG9jYWxcclxuICAgIGNvbnN0IGZvcm1hdERhdGVMb2NhbCA9IChkYXRlOiBhbnkpID0+IHtcclxuICAgICAgY29uc3QgeWVhciA9IGRhdGUuZ2V0RnVsbFllYXIoKTtcclxuICAgICAgY29uc3QgbW9udGggPSBTdHJpbmcoZGF0ZS5nZXRNb250aCgpICsgMSkucGFkU3RhcnQoMiwgJzAnKTsgLy8gQWRpY2lvbmEgMSBwb3JxdWUgb3MgbWVzZXMgc8OjbyBpbmRleGFkb3MgYSBwYXJ0aXIgZGUgMFxyXG4gICAgICBjb25zdCBkYXkgPSBTdHJpbmcoZGF0ZS5nZXREYXRlKCkpLnBhZFN0YXJ0KDIsICcwJyk7XHJcbiAgICAgIHJldHVybiBgJHt5ZWFyfS0ke21vbnRofS0ke2RheX1gO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIEZ1bsOnw6NvIHBhcmEgYW5hbGlzYXIgdW1hIGRhdGEgbm8gZnVzbyBob3LDoXJpbyBsb2NhbFxyXG4gICAgY29uc3QgcGFyc2VEYXRlTG9jYWwgPSAoZGF0ZVN0cmluZzogYW55KSA9PiB7XHJcbiAgICAgIGNvbnN0IFt5ZWFyLCBtb250aCwgZGF5XSA9IGRhdGVTdHJpbmcuc3BsaXQoJy0nKTtcclxuICAgICAgcmV0dXJuIG5ldyBEYXRlKHllYXIsIG1vbnRoIC0gMSwgZGF5KTsgLy8gU3VidHJhaSAxIHBvcnF1ZSBvcyBtZXNlcyBzw6NvIGluZGV4YWRvcyBhIHBhcnRpciBkZSAwXHJcbiAgICB9XHJcblxyXG4gICAgbGV0IG9wdGlvbnMgPSB7XHJcbiAgICAgIG5leHRBcnJvdzogYDxpIGNsYXNzPVwiZmFzIGZhLWNhcmV0LXJpZ2h0XCI+PC9pPmAsXHJcbiAgICAgIHByZXZBcnJvdzogYDxpIGNsYXNzPVwiZmFzIGZhLWNhcmV0LWxlZnRcIj48L2k+YCxcclxuICAgICAgZm9ybWF0OiAnZGQvbW0veXl5eScsICAgICAgXHJcbiAgICAgIGRheXNPZldlZWtIaWdobGlnaHRlZDogWzAsNl0sXHJcbiAgICAgIGxhbmd1YWdlOiAncHRCUicsXHJcbiAgICAgIGZvcm1hdHRlcjoge1xyXG4gICAgICAgIGRhdGU6IGZvcm1hdERhdGVMb2NhbCxcclxuICAgICAgfSxcclxuICAgICAgcGFyc2VyOiB7XHJcbiAgICAgICAgZGF0ZTogcGFyc2VEYXRlTG9jYWwsXHJcbiAgICAgIH0sXHJcbiAgICB9IGFzIGFueTtcclxuXHJcbiAgICBpZiggKHRoaXMuZGF5c09mV2Vla0Rpc2FibGVkKS5sZW5ndGggPiAwICl7XHJcbiAgICAgIG9wdGlvbnNbJ2RheXNPZldlZWtEaXNhYmxlZCddID0gdGhpcy5kYXlzT2ZXZWVrRGlzYWJsZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgaWYoICh0aGlzLmRhdGVzRGlzYWJsZWQpLmxlbmd0aCA+IDAgKXtcclxuICAgICAgb3B0aW9uc1snZGF0ZXNEaXNhYmxlZCddID0gdGhpcy5kYXRlc0Rpc2FibGVkO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCB0aGlzLm1pbkRhdGUgIT09ICcnICl7XHJcbiAgICAgIG9wdGlvbnNbJ21pbkRhdGUnXSA9IHRoaXMubWluRGF0ZTtcclxuICAgIH1cclxuXHJcbiAgICBpZiggdGhpcy5tYXhEYXRlICE9PSAnJyApe1xyXG4gICAgICBvcHRpb25zWydtYXhEYXRlJ10gPSB0aGlzLm1heERhdGU7XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIHRoaXMubXVsdGlwbGUgKXsgICAgICBcclxuICAgICAgb3B0aW9uc1snbWF4TnVtYmVyT2ZEYXRlcyddID0gdGhpcy5tYXhOdW1iZXJPZkRhdGVzO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBvcHRpb25zO1xyXG4gIH1cclxuXHJcbiAgY2xlYXJEYXRlKCl7XHJcbiAgICBpZiggdGhpcy5kYXRlcGlja2VyICl7XHJcbiAgICAgIHRoaXMuZGF0ZXBpY2tlci5zZXREYXRlKHtjbGVhcjogdHJ1ZX0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc3RhcnRfZGF0ZXBpY2tlcigpe1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7ICAgICBcclxuICAgICAgY29uc3QgaW5wdXRfZGF0ZXBpY2tlciA9IDxhbnk+IHRoaXMuaW5wdXRfZGF0ZXBpY2tlcj8ubmF0aXZlRWxlbWVudDtcclxuICAgICAgaWYoIGlucHV0X2RhdGVwaWNrZXIgKXtcclxuXHJcbiAgICAgICAgaW5wdXRfZGF0ZXBpY2tlci5zZXRBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJywnREQvTU0vWVlZWScpO1xyXG5cclxuICAgICAgICBpZiggIXRoaXMudXNlQm9yZGVyICl7XHJcbiAgICAgICAgICBpbnB1dF9kYXRlcGlja2VyLnNldEF0dHJpYnV0ZSgnc3R5bGUnLCdib3JkZXI6bm9uZTsgdGV4dC1hbGlnbjogY2VudGVyOyBtYXgtd2lkdGg6IDEwNXB4OyBwYWRkaW5nOiAwOycpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBcclxuXHJcbiAgICAgICAgdGhpcy5kYXRlcGlja2VyID0gbmV3IERhdGVwaWNrZXIoIGlucHV0X2RhdGVwaWNrZXIsIHRoaXMuZ2V0X29wdGlvbnMoKSApO1xyXG5cclxuICAgICAgICBpZiggdGhpcy5pbm5lclZhbHVlICYmIHRoaXMuaW5uZXJWYWx1ZSAhPT0gJycgKXtcclxuICAgICAgICAgIHRoaXMudG9TZXREZWZhdWx0RGF0ZSh0aGlzLmlubmVyVmFsdWUpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaW5wdXRfZGF0ZXBpY2tlci5hZGRFdmVudExpc3RlbmVyKCdrZXl1cCcsIChldmVudDogYW55KSA9PiB7XHJcbiAgICAgICAgICBjb25zdCB2ID0gKGlucHV0X2RhdGVwaWNrZXJbJ3ZhbHVlJ10pID8gaW5wdXRfZGF0ZXBpY2tlclsndmFsdWUnXSA6ICcnO1xyXG4gICAgICAgICAgaW5wdXRfZGF0ZXBpY2tlclsndmFsdWUnXSA9IHRoaXMudG9TZXRNYXNrKHYpO1xyXG5cclxuICAgICAgICAgIGlmKCAoaW5wdXRfZGF0ZXBpY2tlclsndmFsdWUnXSkubGVuZ3RoID49IDEwICl7XHJcbiAgICAgICAgICAgIGNvbnN0IHYgPSAoaW5wdXRfZGF0ZXBpY2tlclsndmFsdWUnXSkuc3Vic3RyaW5nKDAsIDEwKTtcclxuICAgICAgICAgICAgY29uc3QgcGFydF9kYXRlID0gKHYpLnNwbGl0KCcvJyk7XHJcbiAgICAgICAgICAgIGlmKCAocGFydF9kYXRlKS5sZW5ndGggPT09IDMgKXtcclxuXHJcbiAgICAgICAgICAgICAgbGV0IGRpYSA9IHBhcnRfZGF0ZVswXTtcclxuICAgICAgICAgICAgICBsZXQgbWVzID0gcGFydF9kYXRlWzFdO1xyXG4gICAgICAgICAgICAgIGxldCBhbm8gPSBwYXJ0X2RhdGVbMl07XHJcblxyXG4gICAgICAgICAgICAgIG1lcyA9ICgrKG1lcykgPCAxMCApID8gYDAkeyttZXN9YCA6IG1lczsgIFxyXG4gICAgICAgICAgICAgIGRpYSA9ICgrKGRpYSkgPCAxMCApID8gYDAkeytkaWF9YCA6IGRpYTtcclxuXHJcbiAgICAgICAgICAgICAgY29uc3QgZHQgPSBuZXcgRGF0ZShhbm8rJy0nK21lcysnLScrZGlhKTtcclxuICAgICAgICAgICAgICBpZiggZHQgKXtcclxuICAgICAgICAgICAgICAgIGlucHV0X2RhdGVwaWNrZXI/LmNoYW5nZURhdGU7XHJcbiAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLklEKT8uYmx1cigpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5vbkNoYW5nZS5lbWl0KHRoaXMuaW5uZXJWYWx1ZSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5nTW9kZWxDaGFuZ2UuZW1pdCh0aGlzLmlubmVyVmFsdWUpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgIHRoaXMuaW5uZXJWYWx1ZSA9IHVuZGVmaW5lZDtcclxuICAgICAgICAgICAgdGhpcy5vbkNoYW5nZS5lbWl0KHRoaXMuaW5uZXJWYWx1ZSk7XHJcbiAgICAgICAgICAgIHRoaXMubmdNb2RlbENoYW5nZS5lbWl0KHRoaXMuaW5uZXJWYWx1ZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuXHJcblxyXG4gICAgICAgIGlucHV0X2RhdGVwaWNrZXIuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlRGF0ZScsIChldmVudDogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiggZXZlbnQ/LmRldGFpbD8uZGF0ZSApe1xyXG4gICAgICAgICAgICB0aGlzLnRvU2VsZWN0ZWREYXRlKCBldmVudC5kZXRhaWwgKTtcclxuICAgICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICB0aGlzLmlubmVyVmFsdWUgPSAnJztcclxuICAgICAgICAgICAgdGhpcy5uZ01vZGVsQ2hhbmdlLmVtaXQodGhpcy5pbm5lclZhbHVlKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KVxyXG4gICAgICB9ICAgICAgXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHRvU2V0RGF0ZSgpe1xyXG4gICAgLy8gRXggZGUgdXNvXHJcbiAgICBjb25zdCBkYXRlcyA9IFsnMTgvMTEvMjAyMiddO1xyXG4gICAgaWYoIHRoaXMuZGF0ZXBpY2tlciApe1xyXG4gICAgICB0aGlzLmRhdGVwaWNrZXIuc2V0RGF0ZShkYXRlcyk7XHJcbiAgICB9ICAgIFxyXG4gIH1cclxuXHJcbiAgdG9TZXREZWZhdWx0RGF0ZShkYXRlOiBzdHJpbmcgfCBzdHJpbmdbXSl7XHJcbiAgICBcclxuICAgIGlmKCBkYXRlID09PSB1bmRlZmluZWQgfHwgZGF0ZSA9PT0gbnVsbCB8fCBkYXRlID09PSAnJyApe1xyXG4gICAgICB0aGlzLmNsZWFyRGF0ZSgpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IGRhdGVzID0gW10gYXMgc3RyaW5nW107XHJcblxyXG4gICAgaWYoIGRhdGUgJiYgdHlwZW9mIGRhdGUgPT09ICdzdHJpbmcnICl7XHJcbiAgICAgIGlmKCAoZGF0ZSkuaW5jbHVkZXMoJywnKSApe1xyXG4gICAgICAgIGNvbnN0IGRhdGVzID0gKGRhdGUpLnNwbGl0KCcsJyk7XHJcbiAgICAgICAgZGF0ZSA9IGRhdGVzO1xyXG4gICAgICAgIGlmKCAhdGhpcy5tdWx0aXBsZSApe1xyXG4gICAgICAgICAgdGhpcy5pbm5lclZhbHVlID0gZGF0ZSA9IGRhdGVzWzBdO1xyXG4gICAgICAgICAgdGhpcy5uZ01vZGVsQ2hhbmdlLmVtaXQodGhpcy5pbm5lclZhbHVlKTsgXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBcclxuICAgIGlmKCBkYXRlICYmIHR5cGVvZiBkYXRlID09PSAnc3RyaW5nJyApe1xyXG4gICAgICAoZGF0ZXMpLnB1c2goIGRhdGUgKTsgXHJcbiAgICB9ZWxzZXtcclxuICAgICAgZGF0ZXMgPSA8QXJyYXk8c3RyaW5nPj4gZGF0ZTtcclxuICAgIH1cclxuICAgIGlmKCB0aGlzLmRhdGVwaWNrZXIgKXtcclxuICAgICAgdGhpcy5kYXRlcGlja2VyLnNldERhdGUoZGF0ZXMpOyAgICAgIFxyXG4gICAgfSBcclxuICB9XHJcblxyXG4gIHRvU2VsZWN0ZWREYXRlKGRldGFpbDogYW55KXsgICAgXHJcbiAgICBpZiggZGV0YWlsLmRhdGVwaWNrZXIuZGF0ZXMgJiYgKGRldGFpbC5kYXRlcGlja2VyLmRhdGVzKS5sZW5ndGggPiAwICl7XHJcbiAgICAgIGlmKCB0aGlzLm11bHRpcGxlICl7XHJcbiAgICAgICAgbGV0IGRhdGVzID0gW107XHJcbiAgICAgICAgZm9yKCBsZXQgaSA9IDA7IGkgPCAoZGV0YWlsLmRhdGVwaWNrZXIuZGF0ZXMpLmxlbmd0aDsgaSsrICl7XHJcbiAgICAgICAgICBjb25zdCB0aW1lU3RhbXAgPSA8bnVtYmVyPiBkZXRhaWwuZGF0ZXBpY2tlci5kYXRlc1tpXTtcclxuICAgICAgICAgIChkYXRlcykucHVzaCggdGhpcy5mb3JtYXRfZGF0ZSggdGltZVN0YW1wICkgKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5pbm5lclZhbHVlID0gZGF0ZXM7XHJcbiAgICAgICAgdGhpcy5vbkNoYW5nZS5lbWl0KHRoaXMuaW5uZXJWYWx1ZSk7ICAgICAgICBcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgY29uc3QgdGltZVN0YW1wID0gPG51bWJlcj4gZGV0YWlsLmRhdGVwaWNrZXIuZGF0ZXNbMF07XHJcbiAgICAgICAgY29uc3QgZGF0ZSA9IHRoaXMuZm9ybWF0X2RhdGUoIHRpbWVTdGFtcCApO1xyXG4gICAgICAgIHRoaXMub25DaGFuZ2UuZW1pdChkYXRlKTtcclxuICAgICAgICB0aGlzLmlubmVyVmFsdWUgPSBkYXRlO1xyXG4gICAgICB9ICAgICAgXHJcbiAgICB9ZWxzZXtcclxuICAgICAgdGhpcy5jbGVhckRhdGUoKTtcclxuICAgICAgdGhpcy5pbm5lclZhbHVlID0gbnVsbDtcclxuICAgICAgdGhpcy5vbkNoYW5nZS5lbWl0KHRoaXMuaW5uZXJWYWx1ZSk7XHJcbiAgICB9IFxyXG4gICAgdGhpcy52YWx1ZSA9IHRoaXMuaW5uZXJWYWx1ZTtcclxuICAgIHRoaXMubmdNb2RlbENoYW5nZS5lbWl0KHRoaXMuaW5uZXJWYWx1ZSk7IFxyXG4gIH1cclxuXHJcbiAgZm9ybWF0X2RhdGUodGltZVN0YW1wOiBudW1iZXIpe1xyXG4gICAgdmFyIGRhdGUgPSBuZXcgRGF0ZSh0aW1lU3RhbXApO1xyXG5cclxuICAgIGxldCBkaWEgPSBgJHtkYXRlLmdldERhdGUoKX1gO1xyXG4gICAgbGV0IG1lcyA9IGAke2RhdGUuZ2V0TW9udGgoKSsxfWA7XHJcbiAgICBsZXQgYW5vID0gYCR7ZGF0ZS5nZXRGdWxsWWVhcigpfWA7XHJcblxyXG4gICAgZGlhID0gKCsoZGlhKSA8IDEwICkgPyBgMCR7K2RpYX1gIDogZGlhO1xyXG4gICAgbWVzID0gKCsobWVzKSA8IDEwICkgPyBgMCR7K21lc31gIDogbWVzOyBcclxuXHJcbiAgICBjb25zdCBkYXRlRm9ybWF0ID0gYCR7ZGlhfS8ke21lc30vJHthbm99YDtcclxuICAgIHJldHVybiBkYXRlRm9ybWF0O1xyXG4gIH1cclxuXHJcbiAgdG9DbGlja0luKGlkOiBzdHJpbmcpe1xyXG4gICAgY29uc3QgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKSBhcyBhbnk7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHsgICAgICBcclxuICAgICAgZWxlbWVudD8uZGF0ZXBpY2tlcj8uc2hvdygpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG4gIGlubmVyVmFsdWU6IGFueSB8IHVuZGVmaW5lZDtcclxuICAvL1BsYWNlaG9sZGVycyBmb3IgdGhlIGNhbGxiYWNrcyB3aGljaCBhcmUgbGF0ZXIgcHJvdmlkZXNkXHJcbiAgLy9ieSB0aGUgQ29udHJvbCBWYWx1ZSBBY2Nlc3NvclxyXG4gIHByaXZhdGUgb25Ub3VjaGVkQ2FsbGJhY2s6ICgpID0+IHZvaWQgPSBub29wO1xyXG4gIHByaXZhdGUgb25DaGFuZ2VDYWxsYmFjazogKF86IGFueSkgPT4gdm9pZCA9IG5vb3A7XHJcblxyXG4gIC8vZ2V0IGFjY2Vzc29yXHJcbiAgZ2V0IHZhbHVlKCk6IGFueSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmlubmVyVmFsdWU7XHJcbiAgfTtcclxuXHJcbiAgLy9zZXQgYWNjZXNzb3IgaW5jbHVkaW5nIGNhbGwgdGhlIG9uY2hhbmdlIGNhbGxiYWNrXHJcbiAgc2V0IHZhbHVlKHY6IGFueSkge1xyXG5cclxuICAgIGlmICh2ICE9PSB0aGlzLmlubmVyVmFsdWUpIHtcclxuICAgICAgdGhpcy5pbm5lclZhbHVlID0gdjsgLy8gdGhpcy50b1NldE1hc2sodik7ICAgICAgXHJcbiAgICAgIHRoaXMub25DaGFuZ2VDYWxsYmFjayh2KTtcclxuICAgIH1lbHNle1xyXG4gICAgIC8vIHRoaXMuaW5uZXJWYWx1ZSA9ICcnO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy9TZXQgdG91Y2hlZCBvbiBibHVyXHJcbiAgb25CbHVyKCkge1xyXG4gICAgdGhpcy5vblRvdWNoZWRDYWxsYmFjaygpO1xyXG4gIH1cclxuXHJcbiAgLy9Gcm9tIENvbnRyb2xWYWx1ZUFjY2Vzc29yIGludGVyZmFjZVxyXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSkge1xyXG4gICAgaWYgKHZhbHVlICE9PSB0aGlzLmlubmVyVmFsdWUpIHtcclxuICAgICAgdGhpcy5pbm5lclZhbHVlID0gdmFsdWU7XHJcbiAgICAgIHRoaXMudG9TZXREZWZhdWx0RGF0ZSh2YWx1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvL0Zyb20gQ29udHJvbFZhbHVlQWNjZXNzb3IgaW50ZXJmYWNlXHJcbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KSB7XHJcbiAgICB0aGlzLm9uQ2hhbmdlQ2FsbGJhY2sgPSBmbjtcclxuICB9XHJcblxyXG4gIC8vRnJvbSBDb250cm9sVmFsdWVBY2Nlc3NvciBpbnRlcmZhY2VcclxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KSB7XHJcbiAgICB0aGlzLm9uVG91Y2hlZENhbGxiYWNrID0gZm47XHJcbiAgfVxyXG5cclxufVxyXG4iLCI8IS0tIElucHV0IG1vZGUgLS0+XHJcbjxuZy1jb250YWluZXIgKm5nSWY9XCJtb2RlSW5wdXRcIj5cclxuXHJcbiAgPGRpdiBjbGFzcz1cInRjbG91ZC11aS1kYXRlcGlja2VyIGlucHV0LXRjLWRhdGVwaWNrZXJcIiBbY2xhc3Mubm8tYm9yZGVyXT1cIiF1c2VCb3JkZXJcIiBbY2xhc3MuY2hpbGQtaW5wdXQtZGF0ZS10aW1lXT1cImNoaWxkSW5wdXREYXRlVGltZVwiID5cclxuICAgIDx0YWJsZSBjbGFzcz1cInRhYmxlLWJveC1pbnB1dFwiPlxyXG4gICAgICA8dHI+XHJcbiAgICAgICAgPHRkIGNsYXNzPVwidGQtaWNvblwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImRlbGltaXRlci10aW1lLWljb25cIiAoY2xpY2spPVwidG9DbGlja0luKElEKVwiID48aSBjbGFzcz1cImZhcyBmYS1jYWxlbmRhci1hbHRcIj48L2k+PC9kaXY+XHJcbiAgICAgICAgPC90ZD5cclxuICAgICAgICA8dGQgY2xhc3M9XCJ0ZC1kYXRlXCI+XHJcbiAgICAgICAgICA8aW5wdXQgI2lucHV0X2RhdGVwaWNrZXIgdHlwZT1cInRleHRcIiBuYW1lPVwie3tJRH19XCIgaWQ9XCJ7e0lEfX1cIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIFt0aXRsZV09XCJpbm5lclZhbHVlXCI+XHJcbiAgICAgICAgPC90ZD5cclxuICAgICAgPC90cj5cclxuICAgIDwvdGFibGU+XHJcbiAgPC9kaXY+XHJcblxyXG4gIFxyXG4gIFxyXG48L25nLWNvbnRhaW5lcj5cclxuXHJcbjwhLS0gSW5saW5lIG1vZGUgLS0+XHJcbjxuZy1jb250YWluZXIgKm5nSWY9XCIhbW9kZUlucHV0XCI+ICBcclxuICA8ZGl2IGNsYXNzPVwidGNsb3VkLXVpLWRhdGVwaWNrZXIgdGNsb3VkLXVpLWRhdGVwaWNrZXItc2Vjb25kXCIgI2lucHV0X2RhdGVwaWNrZXIgaWQ9XCJ7e0lEfX1cIiBwYXR0ZXJuPVwiL15cXGR7Mn1cXC9cXGR7Mn1cXC9cXGR7NH0kL1wiIFt0aXRsZV09XCJpbm5lclZhbHVlXCI+PC9kaXY+XHJcbjwvbmctY29udGFpbmVyPlxyXG5cclxuXHJcbjwhLS0gRVggZGUgdXNvIFxyXG4gIDx0Yy1kYXRlcGlja2VyIFxyXG4gICAgW211bHRpcGxlXT1cImZhbHNlXCJcclxuICAgIFtkYXlzT2ZXZWVrRGlzYWJsZWRdPVwiWzAsNl1cIlxyXG4gICAgW21pbkRhdGVdPVwiJzE4LzExLzIwMjEnXCJcclxuICAgIFttYXhEYXRlXT1cIicxOC8xMi8yMDIzJ1wiXHJcbiAgICBbZGF0ZXNEaXNhYmxlZF09XCJbJzEyLzEwLzIwMjInLCcyNS8xMi8yMDIyJ11cIlxyXG4gICAgW21vZGVJbnB1dF09XCJmYWxzZVwiXHJcbiAgICBbKG5nTW9kZWwpXT1cImRhdGVWYWx1ZVwiID5cclxuICA8L3RjLWRhdGVwaWNrZXI+XHJcbiAgXHJcbiAgLy8gbXVsdGlwbGUgPSBmYWxzZVxyXG4gIC8vIGRhdGVWYWx1ZSAtIHN0cmluZyAtIHBvZGUgc2VyOiAxMi8xMi8yMDIyIFxyXG5cclxuICAvLyBtdWx0aXBsZSA9IHRydWVcclxuICAvLyBkYXRlVmFsdWUgLSBzdHJpbmcgLSBwb2RlIHNlcjogMTEvMTIvMjAyMiwxMi8xMi8yMDIyIC4uLiBcclxuXHJcbiAgPHByZT5kYXRhOiB7eyBkYXRlVmFsdWUgfX08L3ByZT5cclxuLS0+XHJcbiJdfQ==
|
package/esm2020/lib/_modules/tcloud-ui-datepicker-time/tcloud-ui-datepicker-time.component.mjs
CHANGED
|
@@ -14,7 +14,6 @@ const noop = () => {
|
|
|
14
14
|
};
|
|
15
15
|
export class TCloudUiDatepickerTimeComponent {
|
|
16
16
|
constructor() {
|
|
17
|
-
this.UTC = false;
|
|
18
17
|
this.show_date_picker = true;
|
|
19
18
|
this.ngModelChange = new EventEmitter();
|
|
20
19
|
this.onChange = new EventEmitter();
|
|
@@ -121,7 +120,7 @@ export class TCloudUiDatepickerTimeComponent {
|
|
|
121
120
|
if (mm === '00') {
|
|
122
121
|
this.MM = mm;
|
|
123
122
|
}
|
|
124
|
-
const notation =
|
|
123
|
+
const notation = '00Z';
|
|
125
124
|
const str_date = `${ano}-${mes}-${dia}T${hh}:${mm}:${notation}`;
|
|
126
125
|
const datetime = new Date(str_date);
|
|
127
126
|
if (this.checkIsDate(datetime)) {
|
|
@@ -130,6 +129,11 @@ export class TCloudUiDatepickerTimeComponent {
|
|
|
130
129
|
else {
|
|
131
130
|
this.innerValue = undefined;
|
|
132
131
|
}
|
|
132
|
+
// console.log('this.datepickertime?.nativeElement', this.datepickertime?.nativeElement);
|
|
133
|
+
// if(this.datepickertime && this.datepickertime.nativeElement){
|
|
134
|
+
// const elem = <any> this.datepickertime.nativeElement;
|
|
135
|
+
// elem.value = this.innerValue;
|
|
136
|
+
// }
|
|
133
137
|
this.ngModelChange.emit(this.innerValue);
|
|
134
138
|
this.onChange.emit(this.innerValue);
|
|
135
139
|
this.eventChange.emit(this.datepickertime?.nativeElement);
|
|
@@ -287,13 +291,11 @@ export class TCloudUiDatepickerTimeComponent {
|
|
|
287
291
|
}
|
|
288
292
|
}
|
|
289
293
|
TCloudUiDatepickerTimeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: TCloudUiDatepickerTimeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
290
|
-
TCloudUiDatepickerTimeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: TCloudUiDatepickerTimeComponent, selector: "tcloud-ui-datepicker-time", inputs: {
|
|
294
|
+
TCloudUiDatepickerTimeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: TCloudUiDatepickerTimeComponent, selector: "tcloud-ui-datepicker-time", inputs: { ngModel: "ngModel", useOptionsDateTime: "useOptionsDateTime" }, outputs: { ngModelChange: "ngModelChange", onChange: "onChange", eventChange: "eventChange" }, providers: [CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR], viewQueries: [{ propertyName: "datepickertime", first: true, predicate: ["_datepickertime"], descendants: true }], ngImport: i0, template: "<div class=\"tcloud-ui-datepicker-time\">\r\n <input type=\"hidden\" value=\"{{ innerValue }}\" #_datepickertime >\r\n <form #_formulario=\"ngForm\">\r\n <div class=\"input-control-time\">\r\n <div class=\"form-control-time\">\r\n\r\n <table style=\"width: 100%;\">\r\n <tr>\r\n <td>\r\n\r\n <div class=\"input-options-date\">\r\n <table class=\"form-time\">\r\n <tr>\r\n <!-- <td class=\"area-icon\"><div class=\"delimiter-time-icon\" (click)=\"toClickIn(ID)\" ><i class=\"fas fa-calendar-alt\"></i></div></td> -->\r\n <td class=\"area-input-date\">\r\n <ng-container *ngIf=\"show_date_picker\">\r\n <tcloud-ui-datepicker #_tclouddatepickertime [childInputDateTime]=\"true\" [modeInput]=\"true\" name=\"date\" [useBorder]=\"false\" [(ngModel)]=\"DD_MM_YYYY\" (onChange)=\"toSetDate($event)\" ></tcloud-ui-datepicker>\r\n </ng-container>\r\n </td>\r\n \r\n <td class=\"area-delimiter\"><div class=\"delimiter-time\"></div></td>\r\n <td class=\"area-input-hour\">\r\n <!--<input type=\"text\" placeholder=\"HH\" (keyup)=\"toSetTime()\" [(ngModel)]=\"HH\" maxlength=\"2\" name=\"hh\" pattern=\"[0][0-9]|[1][0-9]|2[0-3]\">-->\r\n <select class=\"select-time-date\" (change)=\"toSetTime()\" [(ngModel)]=\"HH\" name=\"hh\">\r\n <ng-container *ngFor=\"let hh of option_HH\">\r\n <option [ngValue]=\"hh\">{{ hh }}</option>\r\n </ng-container>\r\n </select>\r\n </td>\r\n <td class=\"area-delimiter\"><div class=\"delimiter-time\">:</div></td>\r\n <td class=\"area-input-minute\">\r\n <!--<input type=\"text\" placeholder=\"MM\" (keyup)=\"toSetTime()\" [(ngModel)]=\"MM\" maxlength=\"2\" name=\"mm\" pattern=\"[012345][0-9]\">-->\r\n <select class=\"select-time-date\" (change)=\"toSetTime()\" [(ngModel)]=\"MM\" name=\"mm\">\r\n <ng-container *ngFor=\"let mm of option_MM\">\r\n <option [value]=\"mm\">{{ mm }}</option>\r\n </ng-container>\r\n </select>\r\n </td>\r\n <td class=\"area-clean\"></td>\r\n </tr>\r\n </table>\r\n\r\n <div class=\"description-options-date\" *ngIf=\"value_options_date_time !== ''\">\r\n <strong>{{ description_options_date_time }}</strong>\r\n\r\n <!-- <div class=\"area-action-date-time-selected\">\r\n <button class=\"btn-icon\" type=\"button\" (click)=\"closedTimeDescription()\" >\r\n <i class=\"fas fa-times\"></i>\r\n </button> \r\n </div> -->\r\n </div>\r\n\r\n\r\n </div>\r\n\r\n </td>\r\n <td *ngIf=\"useOptionsDateTime && options_date_time && (options_date_time).length > 0\" style=\"width: 20px\">\r\n <button type=\"button\" class=\"icon-short-time\" (click)=\"open_options_date_time = !open_options_date_time\" [title]=\"description_options_date_time\" >\r\n <i *ngIf=\"!open_options_date_time\" class=\"fas fa-caret-down\"></i>\r\n <i *ngIf=\"open_options_date_time\" class=\"fas fa-caret-up\"></i>\r\n </button>\r\n\r\n <ng-container *ngIf=\"value_options_date_time !== ''\">\r\n <button class=\"btn-icon-close\" type=\"button\" (click)=\"closedTimeDescription()\" >\r\n <i class=\"fas fa-times\"></i>\r\n </button> \r\n </ng-container>\r\n\r\n </td>\r\n </tr>\r\n <tr *ngIf=\"useOptionsDateTime && options_date_time && (options_date_time).length > 0 && open_options_date_time\">\r\n <td colspan=\"2\">\r\n <tcloud-ui-data-list \r\n name=\"value_options_date_time\"\r\n [showInput]=\"false\" \r\n [search]=\"false\" \r\n [open]=\"true\" \r\n [listItems]=\"options_date_time\" \r\n (onClosed)=\"onClosedOptionsDateTime()\"\r\n [ngModel]=\"value_options_date_time\"\r\n (ngModelChange)=\"onChangeOptionsDateTime($event)\"\r\n >\r\n </tcloud-ui-data-list>\r\n\r\n \r\n\r\n\r\n \r\n </td>\r\n </tr>\r\n </table>\r\n\r\n \r\n </div>\r\n </div>\r\n </form>\r\n</div>", styles: ["@charset \"UTF-8\";.input-control-time{background-color:#fff;border:1px solid #ccc;border-radius:3px;width:100%;height:40px}.form-control-time{max-width:220px;border:none}.form-control-time input{text-align:center}.form-time{width:100%}.form-time td:first-child{overflow:hidden}.delimiter-time{width:100%;text-align:center}.delimiter-time-icon{border:none;height:35px;width:10px;padding:4px;font-size:17px;text-align:center;opacity:.6}.area-icon{width:25px}.area-input-date{width:100px}.area-delimiter{width:2px;text-align:center}.area-input-hour,.area-input-minute{text-align:center;width:28px}.area-input-hour input,.area-input-minute input{height:35px;width:28px;text-align:center;color:#999;font-weight:600;font-style:italic}.area-input-hour input:focus,.area-input-minute input:focus{outline:none}.area-clean{width:12px}input,.datepicker-input{border:none!important}.select-time-date{border:none;background-color:transparent;width:40px;height:35px;padding:0;text-align:center;font-size:13px;color:#777;position:relative;top:-2px;-webkit-appearance:none;appearance:none}.select-time-date:focus{box-shadow:0 0;border:0 none;outline:0}.btn-icon-close{border:none;background-color:#fff;cursor:pointer;padding:0;color:#aaa;width:17px;position:relative;top:-20px;z-index:1}.btn-icon-close:hover{color:#c43a3a!important}.icon-short-time{border:none;background:none;cursor:pointer;font-size:15px;color:#8a8a8a}.input-options-date{position:relative}.input-options-date .description-options-date{position:absolute;left:0;top:0;padding:5px 10px;background-color:#fff;width:100%;height:34px;overflow:hidden}.input-options-date .description-options-date strong{font-size:14px;font-weight:400;padding-left:5px}.input-options-date .area-action-date-time-selected{width:20px;display:block;float:right;text-align:right;position:relative;top:-2px;left:30px;z-index:1}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.TCloudUiDatepickerComponent, selector: "tcloud-ui-datepicker", inputs: ["multiple", "maxNumberOfDates", "daysOfWeekDisabled", "minDate", "maxDate", "datesDisabled", "modeInput", "useBorder", "childInputDateTime", "ngModel", "code"], outputs: ["onChange", "ngModelChange"] }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i3.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i3.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i4.TCloudUiDataListComponent, selector: "tcloud-ui-data-list", inputs: ["placeholder", "disabled", "loading", "showInput", "search", "listItems", "open", "border", "ngModel"], outputs: ["onInputChange", "onChange", "onOpened", "onClosed", "ngModelChange"] }] });
|
|
291
295
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: TCloudUiDatepickerTimeComponent, decorators: [{
|
|
292
296
|
type: Component,
|
|
293
|
-
args: [{ selector: 'tcloud-ui-datepicker-time', providers: [CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR], template: "<div class=\"tcloud-ui-datepicker-time\">\r\n <input type=\"hidden\" value=\"{{ innerValue }}\" #_datepickertime >\r\n <form #_formulario=\"ngForm\">\r\n <div class=\"input-control-time\">\r\n <div class=\"form-control-time\">\r\n\r\n <table style=\"width: 100%;\">\r\n <tr>\r\n <td>\r\n\r\n <div class=\"input-options-date\">\r\n <table class=\"form-time\">\r\n <tr>\r\n <!-- <td class=\"area-icon\"><div class=\"delimiter-time-icon\" (click)=\"toClickIn(ID)\" ><i class=\"fas fa-calendar-alt\"></i></div></td> -->\r\n <td class=\"area-input-date\">\r\n <ng-container *ngIf=\"show_date_picker\">\r\n <tcloud-ui-datepicker #_tclouddatepickertime [childInputDateTime]=\"true\" [modeInput]=\"true\" name=\"date\" [useBorder]=\"false\" [(ngModel)]=\"DD_MM_YYYY\" (onChange)=\"toSetDate($event)\" ></tcloud-ui-datepicker>\r\n </ng-container>\r\n </td>\r\n \r\n <td class=\"area-delimiter\"><div class=\"delimiter-time\"></div></td>\r\n <td class=\"area-input-hour\">\r\n <!--<input type=\"text\" placeholder=\"HH\" (keyup)=\"toSetTime()\" [(ngModel)]=\"HH\" maxlength=\"2\" name=\"hh\" pattern=\"[0][0-9]|[1][0-9]|2[0-3]\">-->\r\n <select class=\"select-time-date\" (change)=\"toSetTime()\" [(ngModel)]=\"HH\" name=\"hh\">\r\n <ng-container *ngFor=\"let hh of option_HH\">\r\n <option [ngValue]=\"hh\">{{ hh }}</option>\r\n </ng-container>\r\n </select>\r\n </td>\r\n <td class=\"area-delimiter\"><div class=\"delimiter-time\">:</div></td>\r\n <td class=\"area-input-minute\">\r\n <!--<input type=\"text\" placeholder=\"MM\" (keyup)=\"toSetTime()\" [(ngModel)]=\"MM\" maxlength=\"2\" name=\"mm\" pattern=\"[012345][0-9]\">-->\r\n <select class=\"select-time-date\" (change)=\"toSetTime()\" [(ngModel)]=\"MM\" name=\"mm\">\r\n <ng-container *ngFor=\"let mm of option_MM\">\r\n <option [value]=\"mm\">{{ mm }}</option>\r\n </ng-container>\r\n </select>\r\n </td>\r\n <td class=\"area-clean\"></td>\r\n </tr>\r\n </table>\r\n\r\n <div class=\"description-options-date\" *ngIf=\"value_options_date_time !== ''\">\r\n <strong>{{ description_options_date_time }}</strong>\r\n\r\n <!-- <div class=\"area-action-date-time-selected\">\r\n <button class=\"btn-icon\" type=\"button\" (click)=\"closedTimeDescription()\" >\r\n <i class=\"fas fa-times\"></i>\r\n </button> \r\n </div> -->\r\n </div>\r\n\r\n\r\n </div>\r\n\r\n </td>\r\n <td *ngIf=\"useOptionsDateTime && options_date_time && (options_date_time).length > 0\" style=\"width: 20px\">\r\n <button type=\"button\" class=\"icon-short-time\" (click)=\"open_options_date_time = !open_options_date_time\" [title]=\"description_options_date_time\" >\r\n <i *ngIf=\"!open_options_date_time\" class=\"fas fa-caret-down\"></i>\r\n <i *ngIf=\"open_options_date_time\" class=\"fas fa-caret-up\"></i>\r\n </button>\r\n\r\n <ng-container *ngIf=\"value_options_date_time !== ''\">\r\n <button class=\"btn-icon-close\" type=\"button\" (click)=\"closedTimeDescription()\" >\r\n <i class=\"fas fa-times\"></i>\r\n </button> \r\n </ng-container>\r\n\r\n </td>\r\n </tr>\r\n <tr *ngIf=\"useOptionsDateTime && options_date_time && (options_date_time).length > 0 && open_options_date_time\">\r\n <td colspan=\"2\">\r\n <tcloud-ui-data-list \r\n name=\"value_options_date_time\"\r\n [showInput]=\"false\" \r\n [search]=\"false\" \r\n [open]=\"true\" \r\n [listItems]=\"options_date_time\" \r\n (onClosed)=\"onClosedOptionsDateTime()\"\r\n [ngModel]=\"value_options_date_time\"\r\n (ngModelChange)=\"onChangeOptionsDateTime($event)\"\r\n >\r\n </tcloud-ui-data-list>\r\n\r\n \r\n\r\n\r\n \r\n </td>\r\n </tr>\r\n </table>\r\n\r\n \r\n </div>\r\n </div>\r\n </form>\r\n</div>", styles: ["@charset \"UTF-8\";.input-control-time{background-color:#fff;border:1px solid #ccc;border-radius:3px;width:100%;height:40px}.form-control-time{max-width:220px;border:none}.form-control-time input{text-align:center}.form-time{width:100%}.form-time td:first-child{overflow:hidden}.delimiter-time{width:100%;text-align:center}.delimiter-time-icon{border:none;height:35px;width:10px;padding:4px;font-size:17px;text-align:center;opacity:.6}.area-icon{width:25px}.area-input-date{width:100px}.area-delimiter{width:2px;text-align:center}.area-input-hour,.area-input-minute{text-align:center;width:28px}.area-input-hour input,.area-input-minute input{height:35px;width:28px;text-align:center;color:#999;font-weight:600;font-style:italic}.area-input-hour input:focus,.area-input-minute input:focus{outline:none}.area-clean{width:
|
|
294
|
-
}], propDecorators: {
|
|
295
|
-
type: Input
|
|
296
|
-
}], ngModel: [{
|
|
297
|
+
args: [{ selector: 'tcloud-ui-datepicker-time', providers: [CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR], template: "<div class=\"tcloud-ui-datepicker-time\">\r\n <input type=\"hidden\" value=\"{{ innerValue }}\" #_datepickertime >\r\n <form #_formulario=\"ngForm\">\r\n <div class=\"input-control-time\">\r\n <div class=\"form-control-time\">\r\n\r\n <table style=\"width: 100%;\">\r\n <tr>\r\n <td>\r\n\r\n <div class=\"input-options-date\">\r\n <table class=\"form-time\">\r\n <tr>\r\n <!-- <td class=\"area-icon\"><div class=\"delimiter-time-icon\" (click)=\"toClickIn(ID)\" ><i class=\"fas fa-calendar-alt\"></i></div></td> -->\r\n <td class=\"area-input-date\">\r\n <ng-container *ngIf=\"show_date_picker\">\r\n <tcloud-ui-datepicker #_tclouddatepickertime [childInputDateTime]=\"true\" [modeInput]=\"true\" name=\"date\" [useBorder]=\"false\" [(ngModel)]=\"DD_MM_YYYY\" (onChange)=\"toSetDate($event)\" ></tcloud-ui-datepicker>\r\n </ng-container>\r\n </td>\r\n \r\n <td class=\"area-delimiter\"><div class=\"delimiter-time\"></div></td>\r\n <td class=\"area-input-hour\">\r\n <!--<input type=\"text\" placeholder=\"HH\" (keyup)=\"toSetTime()\" [(ngModel)]=\"HH\" maxlength=\"2\" name=\"hh\" pattern=\"[0][0-9]|[1][0-9]|2[0-3]\">-->\r\n <select class=\"select-time-date\" (change)=\"toSetTime()\" [(ngModel)]=\"HH\" name=\"hh\">\r\n <ng-container *ngFor=\"let hh of option_HH\">\r\n <option [ngValue]=\"hh\">{{ hh }}</option>\r\n </ng-container>\r\n </select>\r\n </td>\r\n <td class=\"area-delimiter\"><div class=\"delimiter-time\">:</div></td>\r\n <td class=\"area-input-minute\">\r\n <!--<input type=\"text\" placeholder=\"MM\" (keyup)=\"toSetTime()\" [(ngModel)]=\"MM\" maxlength=\"2\" name=\"mm\" pattern=\"[012345][0-9]\">-->\r\n <select class=\"select-time-date\" (change)=\"toSetTime()\" [(ngModel)]=\"MM\" name=\"mm\">\r\n <ng-container *ngFor=\"let mm of option_MM\">\r\n <option [value]=\"mm\">{{ mm }}</option>\r\n </ng-container>\r\n </select>\r\n </td>\r\n <td class=\"area-clean\"></td>\r\n </tr>\r\n </table>\r\n\r\n <div class=\"description-options-date\" *ngIf=\"value_options_date_time !== ''\">\r\n <strong>{{ description_options_date_time }}</strong>\r\n\r\n <!-- <div class=\"area-action-date-time-selected\">\r\n <button class=\"btn-icon\" type=\"button\" (click)=\"closedTimeDescription()\" >\r\n <i class=\"fas fa-times\"></i>\r\n </button> \r\n </div> -->\r\n </div>\r\n\r\n\r\n </div>\r\n\r\n </td>\r\n <td *ngIf=\"useOptionsDateTime && options_date_time && (options_date_time).length > 0\" style=\"width: 20px\">\r\n <button type=\"button\" class=\"icon-short-time\" (click)=\"open_options_date_time = !open_options_date_time\" [title]=\"description_options_date_time\" >\r\n <i *ngIf=\"!open_options_date_time\" class=\"fas fa-caret-down\"></i>\r\n <i *ngIf=\"open_options_date_time\" class=\"fas fa-caret-up\"></i>\r\n </button>\r\n\r\n <ng-container *ngIf=\"value_options_date_time !== ''\">\r\n <button class=\"btn-icon-close\" type=\"button\" (click)=\"closedTimeDescription()\" >\r\n <i class=\"fas fa-times\"></i>\r\n </button> \r\n </ng-container>\r\n\r\n </td>\r\n </tr>\r\n <tr *ngIf=\"useOptionsDateTime && options_date_time && (options_date_time).length > 0 && open_options_date_time\">\r\n <td colspan=\"2\">\r\n <tcloud-ui-data-list \r\n name=\"value_options_date_time\"\r\n [showInput]=\"false\" \r\n [search]=\"false\" \r\n [open]=\"true\" \r\n [listItems]=\"options_date_time\" \r\n (onClosed)=\"onClosedOptionsDateTime()\"\r\n [ngModel]=\"value_options_date_time\"\r\n (ngModelChange)=\"onChangeOptionsDateTime($event)\"\r\n >\r\n </tcloud-ui-data-list>\r\n\r\n \r\n\r\n\r\n \r\n </td>\r\n </tr>\r\n </table>\r\n\r\n \r\n </div>\r\n </div>\r\n </form>\r\n</div>", styles: ["@charset \"UTF-8\";.input-control-time{background-color:#fff;border:1px solid #ccc;border-radius:3px;width:100%;height:40px}.form-control-time{max-width:220px;border:none}.form-control-time input{text-align:center}.form-time{width:100%}.form-time td:first-child{overflow:hidden}.delimiter-time{width:100%;text-align:center}.delimiter-time-icon{border:none;height:35px;width:10px;padding:4px;font-size:17px;text-align:center;opacity:.6}.area-icon{width:25px}.area-input-date{width:100px}.area-delimiter{width:2px;text-align:center}.area-input-hour,.area-input-minute{text-align:center;width:28px}.area-input-hour input,.area-input-minute input{height:35px;width:28px;text-align:center;color:#999;font-weight:600;font-style:italic}.area-input-hour input:focus,.area-input-minute input:focus{outline:none}.area-clean{width:12px}input,.datepicker-input{border:none!important}.select-time-date{border:none;background-color:transparent;width:40px;height:35px;padding:0;text-align:center;font-size:13px;color:#777;position:relative;top:-2px;-webkit-appearance:none;appearance:none}.select-time-date:focus{box-shadow:0 0;border:0 none;outline:0}.btn-icon-close{border:none;background-color:#fff;cursor:pointer;padding:0;color:#aaa;width:17px;position:relative;top:-20px;z-index:1}.btn-icon-close:hover{color:#c43a3a!important}.icon-short-time{border:none;background:none;cursor:pointer;font-size:15px;color:#8a8a8a}.input-options-date{position:relative}.input-options-date .description-options-date{position:absolute;left:0;top:0;padding:5px 10px;background-color:#fff;width:100%;height:34px;overflow:hidden}.input-options-date .description-options-date strong{font-size:14px;font-weight:400;padding-left:5px}.input-options-date .area-action-date-time-selected{width:20px;display:block;float:right;text-align:right;position:relative;top:-2px;left:30px;z-index:1}\n"] }]
|
|
298
|
+
}], propDecorators: { ngModel: [{
|
|
297
299
|
type: Input
|
|
298
300
|
}], ngModelChange: [{
|
|
299
301
|
type: Output
|
|
@@ -307,4 +309,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
|
|
|
307
309
|
type: ViewChild,
|
|
308
310
|
args: ['_datepickertime', { static: false }]
|
|
309
311
|
}] } });
|
|
310
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGNsb3VkLXVpLWRhdGVwaWNrZXItdGltZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90Y2xvdWQtdWkvc3JjL2xpYi9fbW9kdWxlcy90Y2xvdWQtdWktZGF0ZXBpY2tlci10aW1lL3RjbG91ZC11aS1kYXRlcGlja2VyLXRpbWUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGNsb3VkLXVpL3NyYy9saWIvX21vZHVsZXMvdGNsb3VkLXVpLWRhdGVwaWNrZXItdGltZS90Y2xvdWQtdWktZGF0ZXBpY2tlci10aW1lLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFVLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBYyxNQUFNLGVBQWUsQ0FBQztBQUNsSCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7O0FBR25ELE1BQU0sbUNBQW1DLEdBQVE7SUFDL0MsT0FBTyxFQUFFLGlCQUFpQjtJQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLCtCQUErQixDQUFDO0lBQzlELEtBQUssRUFBRSxJQUFJO0NBQ1osQ0FBQztBQUVGLE1BQU0sSUFBSSxHQUFHLEdBQUcsRUFBRTtBQUNsQixDQUFDLENBQUM7QUFRRixNQUFNLE9BQU8sK0JBQStCO0lBTjVDO1FBUVcsUUFBRyxHQUFZLEtBQUssQ0FBQztRQUU5QixxQkFBZ0IsR0FBWSxJQUFJLENBQUM7UUFRdkIsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBRXpDLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBQ3BDLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUV2Qyx1QkFBa0IsR0FBRyxLQUFLLENBQUM7UUFFcEMsZUFB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LEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO1FBQ3hDLElBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsR0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNoQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO1FBRXhDLElBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDO1FBQ2pDLElBQUksRUFBRSxHQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDO1FBQzlCLElBQUksRUFBRSxHQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDO1FBRWhDLElBQUksRUFBRSxJQUFJLENBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFFLEVBQUU7WUFBRSxFQUFFLEdBQUcsSUFBSSxDQUFDO1NBQUU7UUFDckQsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFFckQsSUFBSSxFQUFFLElBQUksQ0FBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUUsRUFBRTtZ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QUMsQ0FBQzthQUMzQjtpQkFBSTtnQkFDSCxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUE7YUFDYjtTQUNGO0lBQ0gsQ0FBQztJQUVELHFDQUFxQztJQUNyQyxnQkFBZ0IsQ0FBQyxFQUFPO1FBQ3RCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELHFDQUFxQztJQUNyQyxpQkFBaUIsQ0FBQyxFQUFPO1FBQ3ZCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxFQUFFLENBQUM7SUFDOUIsQ0FBQzs7NkhBdFZVLCtCQUErQjtpSEFBL0IsK0JBQStCLHlPQUYvQixDQUFDLG1DQUFtQyxDQUFDLDZJQ2pCbEQsa3NKQWdHTTs0RkQ3RU8sK0JBQStCO2tCQU4zQyxTQUFTOytCQUNFLDJCQUEyQixhQUcxQixDQUFDLG1DQUFtQyxDQUFDOzhCQUl2QyxHQUFHO3NCQUFYLEtBQUs7Z0JBS08sT0FBTztzQkFBbkIsS0FBSztnQkFLSSxhQUFhO3NCQUF0QixNQUFNO2dCQUVHLFFBQVE7c0JBQWpCLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTTtnQkFFRSxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBV3lDLGNBQWM7c0JBQTVELFNBQVM7dUJBQUMsaUJBQWlCLEVBQUUsRUFBQyxNQUFNLEVBQUUsS0FBSyxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBmb3J3YXJkUmVmLCBPbkluaXQsIEV2ZW50RW1pdHRlciwgT3V0cHV0LCBJbnB1dCwgVmlld0NoaWxkLCBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBJU2VsZWN0T3B0aW9ucyB9IGZyb20gJy4uL3RjbG91ZC11aS1kYXRhLWxpc3QvdGNsb3VkLXVpLWRhdGEtbGlzdCc7XHJcblxyXG5jb25zdCBDVVNUT01fSU5QVVRfQ09OVFJPTF9WQUxVRV9BQ0NFU1NPUjogYW55ID0ge1xyXG4gIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFRDbG91ZFVpRGF0ZXBpY2tlclRpbWVDb21wb25lbnQpLFxyXG4gIG11bHRpOiB0cnVlXHJcbn07XHJcblxyXG5jb25zdCBub29wID0gKCkgPT4ge1xyXG59O1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd0Y2xvdWQtdWktZGF0ZXBpY2tlci10aW1lJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdGNsb3VkLXVpLWRhdGVwaWNrZXItdGltZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdGNsb3VkLXVpLWRhdGVwaWNrZXItdGltZS5jb21wb25lbnQuc2NzcyddLFxyXG4gIHByb3ZpZGVyczogW0NVU1RPTV9JTlBVVF9DT05UUk9MX1ZBTFVFX0FDQ0VTU09SXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVENsb3VkVWlEYXRlcGlja2VyVGltZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIEBJbnB1dCgpIFVUQzogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBzaG93X2RhdGVfcGlja2VyOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgcHJpdmF0ZSBfbmdNb2RlbDogYW55IHwgdW5kZWZpbmVkO1xyXG4gIEBJbnB1dCgpIHNldCBuZ01vZGVsKHY6IGFueSl7XHJcbiAgICBpZiggdiAmJiB2ICE9PSB0aGlzLmlubmVyVmFsdWUgKXtcclxuICAgICAgdGhpcy5pbm5lclZhbHVlID0gdjsgXHJcbiAgICB9IFxyXG4gIH1cclxuICBAT3V0cHV0KCkgbmdNb2RlbENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8RGF0ZT4oKTtcclxuXHJcbiAgQE91dHB1dCgpIG9uQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlPigpO1xyXG4gIEBPdXRwdXQoKSBldmVudENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICBASW5wdXQoKSB1c2VPcHRpb25zRGF0ZVRpbWUgPSBmYWxzZTtcclxuXHJcbiAgRERfTU1fWVlZWTogc3RyaW5nID0gJyc7XHJcbiAgSEg6IHN0cmluZyA9ICcwMCc7XHJcbiAgTU06IHN0cmluZyA9ICcwMCc7XHJcblxyXG4gIElEOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgb3B0aW9uX0hIOiBzdHJpbmdbXSB8IHVuZGVmaW5lZDtcclxuICBvcHRpb25fTU06IHN0cmluZ1tdIHwgdW5kZWZpbmVkO1xyXG5cclxuICBAVmlld0NoaWxkKCdfZGF0ZXBpY2tlcnRpbWUnLCB7c3RhdGljOiBmYWxzZX0pIGRhdGVwaWNrZXJ0aW1lOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PiB8IHVuZGVmaW5lZDtcclxuXHJcbiAgb3B0aW9uc19kYXRlX3RpbWUgOiBJU2VsZWN0T3B0aW9uc1tdID0gW107XHJcbiAgb3Blbl9vcHRpb25zX2RhdGVfdGltZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBsYXN0X29wdGlvbnNfZGF0ZV90aW1lOiBhbnk7XHJcbiAgZGVzY3JpcHRpb25fb3B0aW9uc19kYXRlX3RpbWU6IGFueSA9ICcnO1xyXG4gIHZhbHVlX29wdGlvbnNfZGF0ZV90aW1lOiBhbnkgPSAnJztcclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcblxyXG5cclxuICAgIHRoaXMuc2V0T3B0aW9uc0RhdGVUaW1lKCk7XHJcblxyXG4gICAgdGhpcy5JRCA9IHRoaXMuZ2VuZXJhdGVJRCgpO1xyXG4gICAgdGhpcy5vcHRpb25fSEggPSB0aGlzLmdldExpc3RUSU1FKDIzKTtcclxuICAgIHRoaXMub3B0aW9uX01NID0gdGhpcy5nZXRMaXN0VElNRSg1OSk7XHJcbiAgfVxyXG5cclxuICBzZXRPcHRpb25zRGF0ZVRpbWUoKXtcclxuICAgIHRoaXMub3B0aW9uc19kYXRlX3RpbWUgPSBbXHJcbiAgICAgIHt2YWx1ZTonNy1kYXlzJywgZGVzY3JpcHRpb246ICc3IGRpYXMnfSxcclxuICAgICAge3ZhbHVlOicxNS1kYXlzJywgZGVzY3JpcHRpb246ICcxNSBkaWFzJ30sXHJcbiAgICAgIHt2YWx1ZTonMzAtZGF5cycsIGRlc2NyaXB0aW9uOiAnMzAgZGlhcyd9LFxyXG4gICAgICB7dmFsdWU6J2N1cnJlbnQtbW9udGgnLCBkZXNjcmlwdGlvbjogJ03DqnMgYXR1YWwgYXTDqSBhZ29yYSd9LFxyXG4gICAgICB7dmFsdWU6J2N1cnJlbnQteWVhcicsIGRlc2NyaXB0aW9uOiAnQW5vIGF0dWFsIGF0w6kgYWdvcmEnfVxyXG4gICAgXVxyXG4gIH1cclxuXHJcbiAgZ2VuZXJhdGVJRCgpOiBzdHJpbmd7XHJcbiAgICByZXR1cm4gYHRjbG91ZC11aS1kYXRlcGlja2VyLXRpbWUtJHtNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBEYXRlLm5vdygpKSl9YDtcclxuICB9XHJcblxyXG4gIGdldExpc3RUSU1FKHY6IG51bWJlcil7XHJcbiAgICBsZXQgbW0gPSBbXTtcclxuICAgIGZvcihsZXQgaSA9IDA7IGkgPD0gdjsgaSsrICl7XHJcbiAgICAgIGlmKCBpIDwgMTAgKXtcclxuICAgICAgICAobW0pLnB1c2goYDAke2l9YCk7XHJcbiAgICAgIH1lbHNle1xyXG4gICAgICAgIChtbSkucHVzaChgJHtpfWApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbW07XHJcbiAgfVxyXG5cclxuICB0b1NldERhdGUoZGF0ZTogc3RyaW5nKXsgICAgXHJcbiAgICB0aGlzLnNldF9kYXRlX2J5X2RhdGVwaWNrZXIoZGF0ZSk7XHJcbiAgfVxyXG5cclxuICB0b1NldFRpbWUoKXtcclxuICAgIGlmKCB0aGlzLkREX01NX1lZWVkgJiYgKCh0aGlzLkREX01NX1lZWVkpLnRyaW0oKSkubGVuZ3RoID09PSAxMCl7XHJcbiAgICAgIGNvbnN0IGRhdGUgPSAodGhpcy5ERF9NTV9ZWVlZKS5yZXBsYWNlKC8tL2csICcvJyk7XHJcbiAgICAgIGxldCBkYXRlX3BhcnQgPSAoZGF0ZSkuc3BsaXQoJy8nKTtcclxuICAgICAgbGV0IGRkID0gZGF0ZV9wYXJ0WzBdO1xyXG4gICAgICBsZXQgbW0gPSBkYXRlX3BhcnRbMV07XHJcbiAgICAgIGxldCB5eSA9IGRhdGVfcGFydFsyXTtcclxuICAgICAgY29uc3QgZGF0ZXRpbWUgPSBuZXcgRGF0ZShgJHt5eX0tJHttbX0tJHtkZH1gKTtcclxuICAgICAgaWYoIHRoaXMuY2hlY2tJc0RhdGUoZGF0ZXRpbWUpICl7XHJcbiAgICAgICAgdGhpcy5zZXRfZGF0ZV9ieV9kYXRlcGlja2VyKGRhdGUpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRfZGF0ZV9ieV9kYXRlcGlja2VyKGRhdGU6IHN0cmluZyl7XHJcblxyXG4gICAgaWYoIGRhdGUgKXtcclxuICAgICAgZGF0ZSA9IChkYXRlKS5yZXBsYWNlKC8tL2csICcvJyk7XHJcbiAgICAgIGxldCBkYXRlX3BhcnQgPSAoZGF0ZSkuc3BsaXQoJy8nKTtcclxuICAgICAgbGV0IGRpYSA9IGRhdGVfcGFydFswXTtcclxuICAgICAgbGV0IG1lcyA9IGRhdGVfcGFydFsxXTtcclxuICAgICAgbGV0IGFubyA9IGRhdGVfcGFydFsyXTtcclxuXHJcbiAgICAgIGxldCBoaCA9IHRoaXMuSEg7XHJcbiAgICAgIGlmKCAhaGggKXtcclxuICAgICAgICBoaCA9ICcwMCc7XHJcbiAgICAgIH1lbHNle1xyXG4gICAgICAgIGlmKCAoICsoaGgpID49IDAgJiYgKyhoaCkgPCAyNCApICl7XHJcbiAgICAgICAgICBoaCA9ICgrKGhoKSA8IDEwICkgPyBgMCR7KyhoaCl9YCA6IGAkeysoaGgpfWA7XHJcbiAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICBoaCA9ICcwMCc7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICBsZXQgbW0gPSB0aGlzLk1NO1xyXG4gICAgICBpZiggIW1tICl7XHJcbiAgICAgICAgbW0gPSAnMDAnO1xyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICBpZiggKCArKG1tKSA+PSAwICYmICsobW0pIDwgNjAgKSApe1xyXG4gICAgICAgICAgbW0gPSAoKyhtbSkgPCAxMCApID8gYDAkeysobW0pfWAgOiBgJHsrKG1tKX1gO1xyXG4gICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgbW0gPSAnMDAnO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgaWYoIGhoID09PSAnMDAnICl7IHRoaXMuSEggPSBoaDsgfVxyXG4gICAgICBpZiggbW0gPT09ICcwMCcgKXsgdGhpcy5NTSA9IG1tOyB9XHJcblxyXG4gICAgICBjb25zdCBub3RhdGlvbiA9ICh0aGlzLlVUQykgPyAnMDBaJyA6ICcwMCc7XHJcblxyXG4gICAgICBjb25zdCBzdHJfZGF0ZSA9IGAke2Fub30tJHttZXN9LSR7ZGlhfVQke2hofToke21tfToke25vdGF0aW9ufWA7XHJcbiAgICAgIGNvbnN0IGRhdGV0aW1lID0gbmV3IERhdGUoIHN0cl9kYXRlICk7XHJcbiAgICAgIFxyXG4gICAgICBpZiggdGhpcy5jaGVja0lzRGF0ZShkYXRldGltZSkgKXtcclxuICAgICAgICB0aGlzLmlubmVyVmFsdWUgPSBkYXRldGltZTtcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgdGhpcy5pbm5lclZhbHVlID0gdW5kZWZpbmVkO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLm5nTW9kZWxDaGFuZ2UuZW1pdCggdGhpcy5pbm5lclZhbHVlICk7XHJcbiAgICAgIHRoaXMub25DaGFuZ2UuZW1pdCggdGhpcy5pbm5lclZhbHVlICk7XHJcbiAgICAgIHRoaXMuZXZlbnRDaGFuZ2UuZW1pdCggdGhpcy5kYXRlcGlja2VydGltZT8ubmF0aXZlRWxlbWVudCApO1xyXG5cclxuICAgIH1lbHNle1xyXG5cclxuICAgICAgdGhpcy5kZXNjcmlwdGlvbl9vcHRpb25zX2RhdGVfdGltZSA9ICcnO1xyXG4gICAgICB0aGlzLnZhbHVlX29wdGlvbnNfZGF0ZV90aW1lID0gJyc7XHJcblxyXG4gICAgICB0aGlzLmlubmVyVmFsdWUgPSB1bmRlZmluZWQ7XHJcbiAgICAgIHRoaXMubmdNb2RlbENoYW5nZS5lbWl0KCB0aGlzLmlubmVyVmFsdWUgKTtcclxuICAgICAgdGhpcy5vbkNoYW5nZS5lbWl0KCB0aGlzLmlubmVyVmFsdWUgKTtcclxuICAgICAgdGhpcy5ldmVudENoYW5nZS5lbWl0KCB0aGlzLmRhdGVwaWNrZXJ0aW1lPy5uYXRpdmVFbGVtZW50ICk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGAke3RoaXMubGFzdF9vcHRpb25zX2RhdGVfdGltZX1gICE9PSBgJHt0aGlzLmlubmVyVmFsdWV9YCApe1xyXG4gICAgICAvLyB0aGlzLmRlc2NyaXB0aW9uX29wdGlvbnNfZGF0ZV90aW1lID0gJyc7XHJcbiAgICAgIC8vIHRoaXMudmFsdWVfb3B0aW9uc19kYXRlX3RpbWUgPSAnJztcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICAvLyBEaXN0cmlidWlyIG9zIHZhbG9yZXMgZGEgZGF0YSBwb3IgcGVkYcOnb3M6IGRhdGEgLSBob3JhIC0gbWluXHJcbiAgdG9fZGF0ZV9oaF9tbShkOiBEYXRlKXtcclxuICAgIGxldCBkaWEgPSBgJHsoZCkuZ2V0RGF0ZSgpfWA7XHJcbiAgICBkaWEgPSAoKyhkaWEpIDwgMTAgKSA/IGAwJHsrZGlhfWAgOiBkaWE7XHJcbiAgICBsZXQgbWVzID0gYCR7KGQpLmdldE1vbnRoKCkrMX1gO1xyXG4gICAgbWVzID0gKCsobWVzKSA8IDEwICkgPyBgMCR7K21lc31gIDogbWVzOyAgXHJcblxyXG4gICAgbGV0IGFubyA9IGAkeyhkKS5nZXRGdWxsWWVhcigpfWA7XHJcbiAgICBsZXQgaGggID0gYCR7KGQpLmdldEhvdXJzKCl9YDtcclxuICAgIGxldCBtbSAgPSBgJHsoZCkuZ2V0TWludXRlcygpfWA7XHJcblxyXG4gICAgaWYoIGhoICYmICggKyhoaCkgPCAwIHx8ICsoaGgpID4gMjMgKSApeyBoaCA9ICcwMCc7IH1cclxuICAgIGhoID0gKGhoKSA/ICggKCsoaGgpIDwgMTAgKSA/IGAwJHtoaH1gIDogaGggKSA6ICcwMCc7XHJcblxyXG4gICAgaWYoIG1tICYmICggKyhtbSkgPCAwIHx8ICsobW0pID4gNTkgKSApeyBtbSA9ICcwMCc7IH1cclxuICAgIG1tID0gKG1tKSA/ICggKCsobW0pIDwgMTAgKSA/IGAwJHttbX1gIDogbW0gKSA6ICcwMCc7XHJcblxyXG4gICAgdGhpcy5NTSA9IG1tO1xyXG4gICAgdGhpcy5ISCA9IGhoO1xyXG5cclxuICAgIHRoaXMuRERfTU1fWVlZWSA9IGAke2RpYX0vJHttZXN9LyR7YW5vfWA7XHJcbiAgfVxyXG5cclxuICBjaGVja0lzRGF0ZShkOiBhbnkpOiBib29sZWFue1xyXG5cclxuICAgIGlmKE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChkKSA9PT0gXCJbb2JqZWN0IERhdGVdXCIpIHtcclxuICAgICAgaWYoaXNOYU4oZCkpIHsgcmV0dXJuIGZhbHNlOyB9IGVsc2UgeyByZXR1cm4gdHJ1ZTsgfVxyXG4gICAgfSBcclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG5cclxuICBjbGVhbigpe1xyXG4gICAgdGhpcy5ERF9NTV9ZWVlZID0gJyc7XHJcbiAgICB0aGlzLkhIID0gJzAwJztcclxuICAgIHRoaXMuTU0gPSAnMDAnO1xyXG4gICAgdGhpcy5kZXNjcmlwdGlvbl9vcHRpb25zX2RhdGVfdGltZSA9ICcnO1xyXG4gICAgdGhpcy52YWx1ZV9vcHRpb25zX2RhdGVfdGltZSA9ICcnO1xyXG4gIH1cclxuXHJcbiAgdG9DbGlja0luKGlkOiBzdHJpbmcpe1xyXG4gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpPy5mb2N1cygpO1xyXG4gIH1cclxuXHJcbiAgb25DbG9zZWRPcHRpb25zRGF0ZVRpbWUoKXtcclxuICAgIHRoaXMub3Blbl9vcHRpb25zX2RhdGVfdGltZSA9IGZhbHNlXHJcbiAgfVxyXG5cclxuICBcclxuICBvbkNoYW5nZU9wdGlvbnNEYXRlVGltZShldmVudDogYW55KXtcclxuICAgIC8vIHRoaXMuZGVzY3JpcHRpb25fb3B0aW9uc19kYXRlX3RpbWUgPSAnJztcclxuICAgIC8vIHRoaXMudmFsdWVfb3B0aW9uc19kYXRlX3RpbWUgPSAnJztcclxuICAgIHRoaXMuc2hvd19kYXRlX3BpY2tlciA9IGZhbHNlO1xyXG5cclxuICAgIGxldCBub3cgPSBuZXcgRGF0ZSgpO1xyXG4gICAgbGV0IGZpbHRlcl9kYXRlOiBhbnkgPSB1bmRlZmluZWQ7XHJcbiAgICBpZiggZXZlbnQgPT09ICc3LWRheXMnICl7XHJcbiAgICAgIGZpbHRlcl9kYXRlID0gbmV3IERhdGUoIChuZXcgRGF0ZShub3cpKS5zZXREYXRlKCBub3cuZ2V0RGF0ZSgpIC0gNyApICk7ICBcclxuICAgICAgZmlsdGVyX2RhdGUgPSBuZXcgRGF0ZSggKGZpbHRlcl9kYXRlKS5zZXRTZWNvbmRzKDApICk7ICAgICAgXHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGV2ZW50ID09PSAnMTUtZGF5cycgKXtcclxuICAgICAgZmlsdGVyX2RhdGUgPSBuZXcgRGF0ZSggKG5ldyBEYXRlKG5vdykpLnNldERhdGUoIG5vdy5nZXREYXRlKCkgLSAxNSApICk7XHJcbiAgICAgIGZpbHRlcl9kYXRlID0gbmV3IERhdGUoIChmaWx0ZXJfZGF0ZSkuc2V0U2Vjb25kcygwKSApO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBldmVudCA9PT0gJzMwLWRheXMnICl7XHJcbiAgICAgIGZpbHRlcl9kYXRlID0gbmV3IERhdGUoIChuZXcgRGF0ZShub3cpKS5zZXREYXRlKCBub3cuZ2V0RGF0ZSgpIC0gMzAgKSApO1xyXG4gICAgICBmaWx0ZXJfZGF0ZSA9IG5ldyBEYXRlKCAoZmlsdGVyX2RhdGUpLnNldFNlY29uZHMoMCkgKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiggZXZlbnQgPT09ICdjdXJyZW50LW1vbnRoJyApe1xyXG4gICAgICBmaWx0ZXJfZGF0ZSA9IG5ldyBEYXRlKG5vdy5nZXRGdWxsWWVhcigpLCBub3cuZ2V0TW9udGgoKSwgMSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGV2ZW50ID09PSAnY3VycmVudC15ZWFyJyApe1xyXG4gICAgICBmaWx0ZXJfZGF0ZSA9IG5ldyBEYXRlKG5vdy5nZXRGdWxsWWVhcigpLCAwLCAxKTtcclxuICAgIH1cclxuXHJcbiAgICBpZihmaWx0ZXJfZGF0ZSl7ICAgICAgXHJcbiAgICAgIHRoaXMuaW5uZXJWYWx1ZSA9IGZpbHRlcl9kYXRlO1xyXG4gICAgICBpZiggdGhpcy5jaGVja0lzRGF0ZShmaWx0ZXJfZGF0ZSkgKXsgICAgICAgICAgICAgIFxyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy50b19kYXRlX2hoX21tKGZpbHRlcl9kYXRlKTtcclxuICAgICAgICAgIHRoaXMudG9TZXREYXRlKHRoaXMuRERfTU1fWVlZWSk7ICBcclxuICAgICAgICAgIHRoaXMuc2hvd19kYXRlX3BpY2tlciA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLnZhbHVlX29wdGlvbnNfZGF0ZV90aW1lID0gZXZlbnQ7XHJcbiAgICAgICAgICB0aGlzLmxhc3Rfb3B0aW9uc19kYXRlX3RpbWUgPSBmaWx0ZXJfZGF0ZSBhcyBhbnk7XHJcbiAgICAgICAgICB0aGlzLmRlc2NyaXB0aW9uX29wdGlvbnNfZGF0ZV90aW1lID0gdGhpcy5nZXRfZGVzY3JpcHRpb25fb3B0aW9uc19kYXRlX3RpbWUoZXZlbnQpO1xyXG4gICAgICAgIH0pOyAgICAgICBcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG5cclxuICBnZXRfZGVzY3JpcHRpb25fb3B0aW9uc19kYXRlX3RpbWUodmFsdWU6IHN0cmluZyl7XHJcbiAgICBpZiggdGhpcy5vcHRpb25zX2RhdGVfdGltZSAmJiAodGhpcy5vcHRpb25zX2RhdGVfdGltZSkubGVuZ3RoID4gMCApe1xyXG4gICAgICBmb3IoIGxldCBpID0gMDsgaSA8ICh0aGlzLm9wdGlvbnNfZGF0ZV90aW1lKS5sZW5ndGg7IGkrKyApe1xyXG4gICAgICAgIGNvbnN0IGl0ZW0gPSB0aGlzLm9wdGlvbnNfZGF0ZV90aW1lW2ldO1xyXG4gICAgICAgIGlmKCBpdGVtLnZhbHVlID09PSB2YWx1ZSApe1xyXG4gICAgICAgICAgcmV0dXJuIGl0ZW0uZGVzY3JpcHRpb247XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gJyc7XHJcbiAgfVxyXG5cclxuXHJcbiAgY2xvc2VkVGltZURlc2NyaXB0aW9uKCl7XHJcbiAgICB0aGlzLnZhbHVlX29wdGlvbnNfZGF0ZV90aW1lID0gJyc7XHJcbiAgICB0aGlzLmRlc2NyaXB0aW9uX29wdGlvbnNfZGF0ZV90aW1lID0gJyc7IFxyXG4gIH1cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuICBcclxuICBpbm5lclZhbHVlOiBhbnkgfCB1bmRlZmluZWQ7XHJcbiAgLy9QbGFjZWhvbGRlcnMgZm9yIHRoZSBjYWxsYmFja3Mgd2hpY2ggYXJlIGxhdGVyIHByb3ZpZGVzZFxyXG4gIC8vYnkgdGhlIENvbnRyb2wgVmFsdWUgQWNjZXNzb3JcclxuICBwcml2YXRlIG9uVG91Y2hlZENhbGxiYWNrOiAoKSA9PiB2b2lkID0gbm9vcDtcclxuICBwcml2YXRlIG9uQ2hhbmdlQ2FsbGJhY2s6IChfOiBhbnkpID0+IHZvaWQgPSBub29wO1xyXG5cclxuICAvL2dldCBhY2Nlc3NvclxyXG4gIGdldCB2YWx1ZSgpOiBhbnkge1xyXG4gICAgICByZXR1cm4gdGhpcy5pbm5lclZhbHVlO1xyXG4gIH07XHJcblxyXG4gIC8vc2V0IGFjY2Vzc29yIGluY2x1ZGluZyBjYWxsIHRoZSBvbmNoYW5nZSBjYWxsYmFja1xyXG4gIHNldCB2YWx1ZSh2OiBhbnkpIHtcclxuICAgIGlmICh2ICE9PSB0aGlzLmlubmVyVmFsdWUpIHtcclxuICAgICAgdGhpcy5pbm5lclZhbHVlID0gdjsgICAgICBcclxuICAgICAgdGhpcy5vbkNoYW5nZUNhbGxiYWNrKHYpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy9TZXQgdG91Y2hlZCBvbiBibHVyXHJcbiAgb25CbHVyKCkge1xyXG4gICAgdGhpcy5vblRvdWNoZWRDYWxsYmFjaygpO1xyXG4gIH1cclxuXHJcbiAgLy9Gcm9tIENvbnRyb2xWYWx1ZUFjY2Vzc29yIGludGVyZmFjZVxyXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSkge1xyXG4gICAgaWYgKHZhbHVlICE9PSB0aGlzLmlubmVyVmFsdWUpIHtcclxuXHJcbiAgICAgIHRyeSB7XHJcbiAgICAgICAgdmFsdWUgPSBuZXcgRGF0ZSggYCR7dmFsdWV9YCApO1xyXG4gICAgICB9IGNhdGNoIChlcnJvcikge31cclxuXHJcbiAgICAgIHRoaXMuaW5uZXJWYWx1ZSA9IHZhbHVlO1xyXG4gICAgICBpZiggdGhpcy5jaGVja0lzRGF0ZSh2YWx1ZSkgKXtcclxuICAgICAgICB0aGlzLnRvX2RhdGVfaGhfbW0odmFsdWUpO1xyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICB0aGlzLmNsZWFuKClcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy9Gcm9tIENvbnRyb2xWYWx1ZUFjY2Vzc29yIGludGVyZmFjZVxyXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSkge1xyXG4gICAgdGhpcy5vbkNoYW5nZUNhbGxiYWNrID0gZm47XHJcbiAgfVxyXG5cclxuICAvL0Zyb20gQ29udHJvbFZhbHVlQWNjZXNzb3IgaW50ZXJmYWNlXHJcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSkge1xyXG4gICAgdGhpcy5vblRvdWNoZWRDYWxsYmFjayA9IGZuO1xyXG4gIH1cclxuXHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInRjbG91ZC11aS1kYXRlcGlja2VyLXRpbWVcIj5cclxuICA8aW5wdXQgdHlwZT1cImhpZGRlblwiIHZhbHVlPVwie3sgaW5uZXJWYWx1ZSB9fVwiICNfZGF0ZXBpY2tlcnRpbWUgPlxyXG4gIDxmb3JtICNfZm9ybXVsYXJpbz1cIm5nRm9ybVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImlucHV0LWNvbnRyb2wtdGltZVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jb250cm9sLXRpbWVcIj5cclxuXHJcbiAgICAgICAgPHRhYmxlIHN0eWxlPVwid2lkdGg6IDEwMCU7XCI+XHJcbiAgICAgICAgICA8dHI+XHJcbiAgICAgICAgICAgIDx0ZD5cclxuXHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LW9wdGlvbnMtZGF0ZVwiPlxyXG4gICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz1cImZvcm0tdGltZVwiPlxyXG4gICAgICAgICAgICAgICAgPHRyPlxyXG4gICAgICAgICAgICAgICAgICA8IS0tIDx0ZCBjbGFzcz1cImFyZWEtaWNvblwiPjxkaXYgY2xhc3M9XCJkZWxpbWl0ZXItdGltZS1pY29uXCIgKGNsaWNrKT1cInRvQ2xpY2tJbihJRClcIiA+PGkgY2xhc3M9XCJmYXMgZmEtY2FsZW5kYXItYWx0XCI+PC9pPjwvZGl2PjwvdGQ+IC0tPlxyXG4gICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJhcmVhLWlucHV0LWRhdGVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2hvd19kYXRlX3BpY2tlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRjbG91ZC11aS1kYXRlcGlja2VyICNfdGNsb3VkZGF0ZXBpY2tlcnRpbWUgW2NoaWxkSW5wdXREYXRlVGltZV09XCJ0cnVlXCIgW21vZGVJbnB1dF09XCJ0cnVlXCIgbmFtZT1cImRhdGVcIiBbdXNlQm9yZGVyXT1cImZhbHNlXCIgWyhuZ01vZGVsKV09XCJERF9NTV9ZWVlZXCIgKG9uQ2hhbmdlKT1cInRvU2V0RGF0ZSgkZXZlbnQpXCIgPjwvdGNsb3VkLXVpLWRhdGVwaWNrZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJhcmVhLWRlbGltaXRlclwiPjxkaXYgY2xhc3M9XCJkZWxpbWl0ZXItdGltZVwiPjwvZGl2PjwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImFyZWEtaW5wdXQtaG91clwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDwhLS08aW5wdXQgdHlwZT1cInRleHRcIiBwbGFjZWhvbGRlcj1cIkhIXCIgKGtleXVwKT1cInRvU2V0VGltZSgpXCIgWyhuZ01vZGVsKV09XCJISFwiIG1heGxlbmd0aD1cIjJcIiBuYW1lPVwiaGhcIiBwYXR0ZXJuPVwiWzBdWzAtOV18WzFdWzAtOV18MlswLTNdXCI+LS0+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNlbGVjdCBjbGFzcz1cInNlbGVjdC10aW1lLWRhdGVcIiAoY2hhbmdlKT1cInRvU2V0VGltZSgpXCIgWyhuZ01vZGVsKV09XCJISFwiIG5hbWU9XCJoaFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaGggb2Ygb3B0aW9uX0hIXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gW25nVmFsdWVdPVwiaGhcIj57eyBoaCB9fTwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImFyZWEtZGVsaW1pdGVyXCI+PGRpdiBjbGFzcz1cImRlbGltaXRlci10aW1lXCI+OjwvZGl2PjwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImFyZWEtaW5wdXQtbWludXRlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPCEtLTxpbnB1dCB0eXBlPVwidGV4dFwiIHBsYWNlaG9sZGVyPVwiTU1cIiAoa2V5dXApPVwidG9TZXRUaW1lKClcIiBbKG5nTW9kZWwpXT1cIk1NXCIgbWF4bGVuZ3RoPVwiMlwiIG5hbWU9XCJtbVwiIHBhdHRlcm49XCJbMDEyMzQ1XVswLTldXCI+LS0+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNlbGVjdCBjbGFzcz1cInNlbGVjdC10aW1lLWRhdGVcIiAoY2hhbmdlKT1cInRvU2V0VGltZSgpXCIgWyhuZ01vZGVsKV09XCJNTVwiIG5hbWU9XCJtbVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgbW0gb2Ygb3B0aW9uX01NXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gW3ZhbHVlXT1cIm1tXCI+e3sgbW0gfX08L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJhcmVhLWNsZWFuXCI+PC90ZD5cclxuICAgICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgPC90YWJsZT5cclxuXHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRlc2NyaXB0aW9uLW9wdGlvbnMtZGF0ZVwiICpuZ0lmPVwidmFsdWVfb3B0aW9uc19kYXRlX3RpbWUgIT09ICcnXCI+XHJcbiAgICAgICAgICAgICAgICA8c3Ryb25nPnt7IGRlc2NyaXB0aW9uX29wdGlvbnNfZGF0ZV90aW1lIH19PC9zdHJvbmc+XHJcblxyXG4gICAgICAgICAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJhcmVhLWFjdGlvbi1kYXRlLXRpbWUtc2VsZWN0ZWRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuLWljb25cIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cImNsb3NlZFRpbWVEZXNjcmlwdGlvbigpXCIgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtdGltZXNcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+ICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PiAtLT5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcblxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgIDx0ZCAqbmdJZj1cInVzZU9wdGlvbnNEYXRlVGltZSAmJiBvcHRpb25zX2RhdGVfdGltZSAmJiAob3B0aW9uc19kYXRlX3RpbWUpLmxlbmd0aCA+IDBcIiBzdHlsZT1cIndpZHRoOiAyMHB4XCI+XHJcbiAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJpY29uLXNob3J0LXRpbWVcIiAoY2xpY2spPVwib3Blbl9vcHRpb25zX2RhdGVfdGltZSA9ICFvcGVuX29wdGlvbnNfZGF0ZV90aW1lXCIgW3RpdGxlXT1cImRlc2NyaXB0aW9uX29wdGlvbnNfZGF0ZV90aW1lXCIgPlxyXG4gICAgICAgICAgICAgICAgPGkgKm5nSWY9XCIhb3Blbl9vcHRpb25zX2RhdGVfdGltZVwiIGNsYXNzPVwiZmFzIGZhLWNhcmV0LWRvd25cIj48L2k+XHJcbiAgICAgICAgICAgICAgICA8aSAqbmdJZj1cIm9wZW5fb3B0aW9uc19kYXRlX3RpbWVcIiBjbGFzcz1cImZhcyBmYS1jYXJldC11cFwiPjwvaT5cclxuICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuXHJcbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInZhbHVlX29wdGlvbnNfZGF0ZV90aW1lICE9PSAnJ1wiPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0bi1pY29uLWNsb3NlXCIgdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJjbG9zZWRUaW1lRGVzY3JpcHRpb24oKVwiID5cclxuICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtdGltZXNcIj48L2k+XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj4gXHJcbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgPC90cj5cclxuICAgICAgICAgIDx0ciAqbmdJZj1cInVzZU9wdGlvbnNEYXRlVGltZSAmJiBvcHRpb25zX2RhdGVfdGltZSAmJiAob3B0aW9uc19kYXRlX3RpbWUpLmxlbmd0aCA+IDAgJiYgb3Blbl9vcHRpb25zX2RhdGVfdGltZVwiPlxyXG4gICAgICAgICAgICA8dGQgY29sc3Bhbj1cIjJcIj5cclxuICAgICAgICAgICAgICAgIDx0Y2xvdWQtdWktZGF0YS1saXN0IFxyXG4gICAgICAgICAgICAgICAgICBuYW1lPVwidmFsdWVfb3B0aW9uc19kYXRlX3RpbWVcIlxyXG4gICAgICAgICAgICAgICAgICBbc2hvd0lucHV0XT1cImZhbHNlXCIgXHJcbiAgICAgICAgICAgICAgICAgIFtzZWFyY2hdPVwiZmFsc2VcIiBcclxuICAgICAgICAgICAgICAgICAgW29wZW5dPVwidHJ1ZVwiIFxyXG4gICAgICAgICAgICAgICAgICBbbGlzdEl0ZW1zXT1cIm9wdGlvbnNfZGF0ZV90aW1lXCIgXHJcbiAgICAgICAgICAgICAgICAgIChvbkNsb3NlZCk9XCJvbkNsb3NlZE9wdGlvbnNEYXRlVGltZSgpXCJcclxuICAgICAgICAgICAgICAgICAgW25nTW9kZWxdPVwidmFsdWVfb3B0aW9uc19kYXRlX3RpbWVcIlxyXG4gICAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJvbkNoYW5nZU9wdGlvbnNEYXRlVGltZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPC90Y2xvdWQtdWktZGF0YS1saXN0PlxyXG5cclxuICAgICAgICAgICAgICAgIFxyXG5cclxuXHJcbiAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICA8L3RyPlxyXG4gICAgICAgIDwvdGFibGU+XHJcblxyXG4gICAgICAgIFxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZm9ybT5cclxuPC9kaXY+Il19
|
|
312
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGNsb3VkLXVpLWRhdGVwaWNrZXItdGltZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90Y2xvdWQtdWkvc3JjL2xpYi9fbW9kdWxlcy90Y2xvdWQtdWktZGF0ZXBpY2tlci10aW1lL3RjbG91ZC11aS1kYXRlcGlja2VyLXRpbWUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGNsb3VkLXVpL3NyYy9saWIvX21vZHVsZXMvdGNsb3VkLXVpLWRhdGVwaWNrZXItdGltZS90Y2xvdWQtdWktZGF0ZXBpY2tlci10aW1lLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFVLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBYyxNQUFNLGVBQWUsQ0FBQztBQUNsSCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7O0FBR25ELE1BQU0sbUNBQW1DLEdBQVE7SUFDL0MsT0FBTyxFQUFFLGlCQUFpQjtJQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLCtCQUErQixDQUFDO0lBQzlELEtBQUssRUFBRSxJQUFJO0NBQ1osQ0FBQztBQUVGLE1BQU0sSUFBSSxHQUFHLEdBQUcsRUFBRTtBQUNsQixDQUFDLENBQUM7QUFRRixNQUFNLE9BQU8sK0JBQStCO0lBTjVDO1FBUUUscUJBQWdCLEdBQVksSUFBSSxDQUFDO1FBUXZCLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUV6QyxhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUNwQyxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFFdkMsdUJBQWtCLEdBQUcsS0FBSyxDQUFDO1FBRXBDLGVBQVUsR0FBVyxFQUFFLENBQUM7UUFDeEIsT0FBRSxHQUFXLElBQUksQ0FBQztRQUNsQixPQUFFLEdBQVcsSUFBSSxDQUFDO1FBRWxCLE9BQUUsR0FBVyxFQUFFLENBQUM7UUFPaEIsc0JBQWlCLEdBQXNCLEVBQUUsQ0FBQztRQUMxQywyQkFBc0IsR0FBWSxLQUFLLENBQUM7UUFHeEMsa0NBQTZCLEdBQVEsRUFBRSxDQUFDO1FBQ3hDLDRCQUF1QixHQUFRLEVBQUUsQ0FBQztRQTBRbEMsMERBQTBEO1FBQzFELCtCQUErQjtRQUN2QixzQkFBaUIsR0FBZSxJQUFJLENBQUM7UUFDckMscUJBQWdCLEdBQXFCLElBQUksQ0FBQztLQStDbkQ7SUF4VkMsSUFBYSxPQUFPLENBQUMsQ0FBTTtRQUN6QixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUM5QixJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQztTQUNyQjtJQUNILENBQUM7SUEwQkQsUUFBUTtRQUdOLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBRTFCLElBQUksQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQzVCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN0QyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixJQUFJLENBQUMsaUJBQWlCLEdBQUc7WUFDdkIsRUFBQyxLQUFLLEVBQUMsUUFBUSxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUM7WUFDdkMsRUFBQyxLQUFLLEVBQUMsU0FBUyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUM7WUFDekMsRUFBQyxLQUFLLEVBQUMsU0FBUyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUM7WUFDekMsRUFBQyxLQUFLLEVBQUMsZUFBZSxFQUFFLFdBQVcsRUFBRSxxQkFBcUIsRUFBQztZQUMzRCxFQUFDLEtBQUssRUFBQyxjQUFjLEVBQUUsV0FBVyxFQUFFLHFCQUFxQixFQUFDO1NBQzNELENBQUE7SUFDSCxDQUFDO0lBRUQsVUFBVTtRQUNSLE9BQU8sNkJBQTZCLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUMzRyxDQUFDO0lBRUQsV0FBVyxDQUFDLENBQVM7UUFDbkIsSUFBSSxFQUFFLEdBQUcsRUFBRSxDQUFDO1FBQ1osS0FBSSxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUMxQixJQUFJLENBQUMsR0FBRyxFQUFFLEVBQUU7Z0JBQ1YsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2FBQ3BCO2lCQUFJO2dCQUNILENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQzthQUNuQjtTQUNGO1FBQ0QsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRUQsU0FBUyxDQUFDLElBQVk7UUFDcEIsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxTQUFTO1FBQ1AsSUFBSSxJQUFJLENBQUMsVUFBVSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLEtBQUssRUFBRSxFQUFDO1lBQzlELE1BQU0sSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDbEQsSUFBSSxTQUFTLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDbEMsSUFBSSxFQUFFLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3RCLElBQUksRUFBRSxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN0QixJQUFJLEVBQUUsR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdEIsTUFBTSxRQUFRLEdBQUcsSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDL0MsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxFQUFFO2dCQUM5QixJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDbkM7U0FDRjtJQUNILENBQUM7SUFFRCxzQkFBc0IsQ0FBQyxJQUFZO1FBRWpDLElBQUksSUFBSSxFQUFFO1lBQ1IsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQztZQUNqQyxJQUFJLFNBQVMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNsQyxJQUFJLEdBQUcsR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdkIsSUFBSSxHQUFHLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3ZCLElBQUksR0FBRyxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUV2QixJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ2pCLElBQUksQ0FBQyxFQUFFLEVBQUU7Z0JBQ1AsRUFBRSxHQUFHLElBQUksQ0FBQzthQUNYO2lCQUFJO2dCQUNILElBQUksQ0FBRSxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUUsRUFBRTtvQkFDaEMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO2lCQUMvQztxQkFBSTtvQkFDSCxFQUFFLEdBQUcsSUFBSSxDQUFDO2lCQUNYO2FBQ0Y7WUFFRCxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ2pCLElBQUksQ0FBQyxFQUFFLEVBQUU7Z0JBQ1AsRUFBRSxHQUFHLElBQUksQ0FBQzthQUNYO2lCQUFJO2dCQUNILElBQUksQ0FBRSxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUUsRUFBRTtvQkFDaEMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO2lCQUMvQztxQkFBSTtvQkFDSCxFQUFFLEdBQUcsSUFBSSxDQUFDO2lCQUNYO2FBQ0Y7WUFFRCxJQUFJLEVBQUUsS0FBSyxJQUFJLEVBQUU7Z0JBQUUsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUM7YUFBRTtZQUNsQyxJQUFJLEVBQUUsS0FBSyxJQUFJLEVBQUU7Z0JBQUUsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUM7YUFBRTtZQUVsQyxNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUM7WUFFdkIsTUFBTSxRQUFRLEdBQUcsR0FBRyxHQUFHLElBQUksR0FBRyxJQUFJLEdBQUcsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLFFBQVEsRUFBRSxDQUFDO1lBQ2hFLE1BQU0sUUFBUSxHQUFHLElBQUksSUFBSSxDQUFFLFFBQVEsQ0FBRSxDQUFDO1lBRXRDLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsRUFBRTtnQkFDOUIsSUFBSSxDQUFDLFVBQVUsR0FBRyxRQUFRLENBQUM7YUFDNUI7aUJBQUk7Z0JBQ0gsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUM7YUFDN0I7WUFFRCx5RkFBeUY7WUFFekYsZ0VBQWdFO1lBQ2hFLDBEQUEwRDtZQUMxRCxrQ0FBa0M7WUFDbEMsSUFBSTtZQUVKLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFFLElBQUksQ0FBQyxVQUFVLENBQUUsQ0FBQztZQUMzQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBRSxJQUFJLENBQUMsVUFBVSxDQUFFLENBQUM7WUFDdEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUUsSUFBSSxDQUFDLGNBQWMsRUFBRSxhQUFhLENBQUUsQ0FBQztTQUU3RDthQUFJO1lBRUgsSUFBSSxDQUFDLDZCQUE2QixHQUFHLEVBQUUsQ0FBQztZQUN4QyxJQUFJLENBQUMsdUJBQXVCLEdBQUcsRUFBRSxDQUFDO1lBRWxDLElBQUksQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDO1lBQzVCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFFLElBQUksQ0FBQyxVQUFVLENBQUUsQ0FBQztZQUMzQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBRSxJQUFJLENBQUMsVUFBVSxDQUFFLENBQUM7WUFDdEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUUsSUFBSSxDQUFDLGNBQWMsRUFBRSxhQUFhLENBQUUsQ0FBQztTQUM3RDtRQUVELElBQUksR0FBRyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsS0FBSyxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBRTtZQUM3RCwyQ0FBMkM7WUFDM0MscUNBQXFDO1NBQ3RDO0lBRUgsQ0FBQztJQUVELCtEQUErRDtJQUMvRCxhQUFhLENBQUMsQ0FBTztRQUNuQixJQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQztRQUM3QixHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO1FBQ3hDLElBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsR0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNoQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO1FBRXhDLElBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDO1FBQ2pDLElBQUksRUFBRSxHQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDO1FBQzlCLElBQUksRUFBRSxHQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDO1FBRWhDLElBQUksRUFBRSxJQUFJLENBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFFLEVBQUU7WUFBRSxFQUFFLEdBQUcsSUFBSSxDQUFDO1NBQUU7UUFDckQsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFFckQsSUFBSSxFQUFFLElBQUksQ0FBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUUsRUFBRTtZQUFFLEVBQUUsR0FBRyxJQUFJLENBQUM7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SCxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUE7YUFDYjtTQUNGO0lBQ0gsQ0FBQztJQUVELHFDQUFxQztJQUNyQyxnQkFBZ0IsQ0FBQyxFQUFPO1FBQ3RCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELHFDQUFxQztJQUNyQyxpQkFBaUIsQ0FBQyxFQUFPO1FBQ3ZCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxFQUFFLENBQUM7SUFDOUIsQ0FBQzs7NkhBM1ZVLCtCQUErQjtpSEFBL0IsK0JBQStCLDZOQUYvQixDQUFDLG1DQUFtQyxDQUFDLDZJQ2pCbEQsa3NKQWdHTTs0RkQ3RU8sK0JBQStCO2tCQU4zQyxTQUFTOytCQUNFLDJCQUEyQixhQUcxQixDQUFDLG1DQUFtQyxDQUFDOzhCQU9uQyxPQUFPO3NCQUFuQixLQUFLO2dCQUtJLGFBQWE7c0JBQXRCLE1BQU07Z0JBRUcsUUFBUTtzQkFBakIsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNO2dCQUVFLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFXeUMsY0FBYztzQkFBNUQsU0FBUzt1QkFBQyxpQkFBaUIsRUFBRSxFQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGZvcndhcmRSZWYsIE9uSW5pdCwgRXZlbnRFbWl0dGVyLCBPdXRwdXQsIElucHV0LCBWaWV3Q2hpbGQsIEVsZW1lbnRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IElTZWxlY3RPcHRpb25zIH0gZnJvbSAnLi4vdGNsb3VkLXVpLWRhdGEtbGlzdC90Y2xvdWQtdWktZGF0YS1saXN0JztcclxuXHJcbmNvbnN0IENVU1RPTV9JTlBVVF9DT05UUk9MX1ZBTFVFX0FDQ0VTU09SOiBhbnkgPSB7XHJcbiAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVENsb3VkVWlEYXRlcGlja2VyVGltZUNvbXBvbmVudCksXHJcbiAgbXVsdGk6IHRydWVcclxufTtcclxuXHJcbmNvbnN0IG5vb3AgPSAoKSA9PiB7XHJcbn07XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3RjbG91ZC11aS1kYXRlcGlja2VyLXRpbWUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90Y2xvdWQtdWktZGF0ZXBpY2tlci10aW1lLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi90Y2xvdWQtdWktZGF0ZXBpY2tlci10aW1lLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgcHJvdmlkZXJzOiBbQ1VTVE9NX0lOUFVUX0NPTlRST0xfVkFMVUVfQUNDRVNTT1JdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUQ2xvdWRVaURhdGVwaWNrZXJUaW1lQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgc2hvd19kYXRlX3BpY2tlcjogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIHByaXZhdGUgX25nTW9kZWw6IGFueSB8IHVuZGVmaW5lZDtcclxuICBASW5wdXQoKSBzZXQgbmdNb2RlbCh2OiBhbnkpe1xyXG4gICAgaWYoIHYgJiYgdiAhPT0gdGhpcy5pbm5lclZhbHVlICl7XHJcbiAgICAgIHRoaXMuaW5uZXJWYWx1ZSA9IHY7IFxyXG4gICAgfSBcclxuICB9XHJcbiAgQE91dHB1dCgpIG5nTW9kZWxDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPERhdGU+KCk7XHJcblxyXG4gIEBPdXRwdXQoKSBvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8RGF0ZT4oKTtcclxuICBAT3V0cHV0KCkgZXZlbnRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgQElucHV0KCkgdXNlT3B0aW9uc0RhdGVUaW1lID0gZmFsc2U7XHJcblxyXG4gIEREX01NX1lZWVk6IHN0cmluZyA9ICcnO1xyXG4gIEhIOiBzdHJpbmcgPSAnMDAnO1xyXG4gIE1NOiBzdHJpbmcgPSAnMDAnO1xyXG5cclxuICBJRDogc3RyaW5nID0gJyc7XHJcblxyXG4gIG9wdGlvbl9ISDogc3RyaW5nW10gfCB1bmRlZmluZWQ7XHJcbiAgb3B0aW9uX01NOiBzdHJpbmdbXSB8IHVuZGVmaW5lZDtcclxuXHJcbiAgQFZpZXdDaGlsZCgnX2RhdGVwaWNrZXJ0aW1lJywge3N0YXRpYzogZmFsc2V9KSBkYXRlcGlja2VydGltZTogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4gfCB1bmRlZmluZWQ7XHJcblxyXG4gIG9wdGlvbnNfZGF0ZV90aW1lIDogSVNlbGVjdE9wdGlvbnNbXSA9IFtdO1xyXG4gIG9wZW5fb3B0aW9uc19kYXRlX3RpbWU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgbGFzdF9vcHRpb25zX2RhdGVfdGltZTogYW55O1xyXG4gIGRlc2NyaXB0aW9uX29wdGlvbnNfZGF0ZV90aW1lOiBhbnkgPSAnJztcclxuICB2YWx1ZV9vcHRpb25zX2RhdGVfdGltZTogYW55ID0gJyc7XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG5cclxuXHJcbiAgICB0aGlzLnNldE9wdGlvbnNEYXRlVGltZSgpO1xyXG5cclxuICAgIHRoaXMuSUQgPSB0aGlzLmdlbmVyYXRlSUQoKTtcclxuICAgIHRoaXMub3B0aW9uX0hIID0gdGhpcy5nZXRMaXN0VElNRSgyMyk7XHJcbiAgICB0aGlzLm9wdGlvbl9NTSA9IHRoaXMuZ2V0TGlzdFRJTUUoNTkpO1xyXG4gIH1cclxuXHJcbiAgc2V0T3B0aW9uc0RhdGVUaW1lKCl7XHJcbiAgICB0aGlzLm9wdGlvbnNfZGF0ZV90aW1lID0gW1xyXG4gICAgICB7dmFsdWU6JzctZGF5cycsIGRlc2NyaXB0aW9uOiAnNyBkaWFzJ30sXHJcbiAgICAgIHt2YWx1ZTonMTUtZGF5cycsIGRlc2NyaXB0aW9uOiAnMTUgZGlhcyd9LFxyXG4gICAgICB7dmFsdWU6JzMwLWRheXMnLCBkZXNjcmlwdGlvbjogJzMwIGRpYXMnfSxcclxuICAgICAge3ZhbHVlOidjdXJyZW50LW1vbnRoJywgZGVzY3JpcHRpb246ICdNw6pzIGF0dWFsIGF0w6kgYWdvcmEnfSxcclxuICAgICAge3ZhbHVlOidjdXJyZW50LXllYXInLCBkZXNjcmlwdGlvbjogJ0FubyBhdHVhbCBhdMOpIGFnb3JhJ31cclxuICAgIF1cclxuICB9XHJcblxyXG4gIGdlbmVyYXRlSUQoKTogc3RyaW5ne1xyXG4gICAgcmV0dXJuIGB0Y2xvdWQtdWktZGF0ZXBpY2tlci10aW1lLSR7TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogRGF0ZS5ub3coKSkpfWA7XHJcbiAgfVxyXG5cclxuICBnZXRMaXN0VElNRSh2OiBudW1iZXIpe1xyXG4gICAgbGV0IG1tID0gW107XHJcbiAgICBmb3IobGV0IGkgPSAwOyBpIDw9IHY7IGkrKyApe1xyXG4gICAgICBpZiggaSA8IDEwICl7XHJcbiAgICAgICAgKG1tKS5wdXNoKGAwJHtpfWApO1xyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICAobW0pLnB1c2goYCR7aX1gKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIG1tO1xyXG4gIH1cclxuXHJcbiAgdG9TZXREYXRlKGRhdGU6IHN0cmluZyl7ICAgIFxyXG4gICAgdGhpcy5zZXRfZGF0ZV9ieV9kYXRlcGlja2VyKGRhdGUpO1xyXG4gIH1cclxuXHJcbiAgdG9TZXRUaW1lKCl7XHJcbiAgICBpZiggdGhpcy5ERF9NTV9ZWVlZICYmICgodGhpcy5ERF9NTV9ZWVlZKS50cmltKCkpLmxlbmd0aCA9PT0gMTApe1xyXG4gICAgICBjb25zdCBkYXRlID0gKHRoaXMuRERfTU1fWVlZWSkucmVwbGFjZSgvLS9nLCAnLycpO1xyXG4gICAgICBsZXQgZGF0ZV9wYXJ0ID0gKGRhdGUpLnNwbGl0KCcvJyk7XHJcbiAgICAgIGxldCBkZCA9IGRhdGVfcGFydFswXTtcclxuICAgICAgbGV0IG1tID0gZGF0ZV9wYXJ0WzFdO1xyXG4gICAgICBsZXQgeXkgPSBkYXRlX3BhcnRbMl07XHJcbiAgICAgIGNvbnN0IGRhdGV0aW1lID0gbmV3IERhdGUoYCR7eXl9LSR7bW19LSR7ZGR9YCk7XHJcbiAgICAgIGlmKCB0aGlzLmNoZWNrSXNEYXRlKGRhdGV0aW1lKSApe1xyXG4gICAgICAgIHRoaXMuc2V0X2RhdGVfYnlfZGF0ZXBpY2tlcihkYXRlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0X2RhdGVfYnlfZGF0ZXBpY2tlcihkYXRlOiBzdHJpbmcpe1xyXG5cclxuICAgIGlmKCBkYXRlICl7XHJcbiAgICAgIGRhdGUgPSAoZGF0ZSkucmVwbGFjZSgvLS9nLCAnLycpO1xyXG4gICAgICBsZXQgZGF0ZV9wYXJ0ID0gKGRhdGUpLnNwbGl0KCcvJyk7XHJcbiAgICAgIGxldCBkaWEgPSBkYXRlX3BhcnRbMF07XHJcbiAgICAgIGxldCBtZXMgPSBkYXRlX3BhcnRbMV07XHJcbiAgICAgIGxldCBhbm8gPSBkYXRlX3BhcnRbMl07XHJcblxyXG4gICAgICBsZXQgaGggPSB0aGlzLkhIO1xyXG4gICAgICBpZiggIWhoICl7XHJcbiAgICAgICAgaGggPSAnMDAnO1xyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICBpZiggKCArKGhoKSA+PSAwICYmICsoaGgpIDwgMjQgKSApe1xyXG4gICAgICAgICAgaGggPSAoKyhoaCkgPCAxMCApID8gYDAkeysoaGgpfWAgOiBgJHsrKGhoKX1gO1xyXG4gICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgaGggPSAnMDAnO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgbGV0IG1tID0gdGhpcy5NTTtcclxuICAgICAgaWYoICFtbSApe1xyXG4gICAgICAgIG1tID0gJzAwJztcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgaWYoICggKyhtbSkgPj0gMCAmJiArKG1tKSA8IDYwICkgKXtcclxuICAgICAgICAgIG1tID0gKCsobW0pIDwgMTAgKSA/IGAwJHsrKG1tKX1gIDogYCR7KyhtbSl9YDtcclxuICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgIG1tID0gJzAwJztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmKCBoaCA9PT0gJzAwJyApeyB0aGlzLkhIID0gaGg7IH1cclxuICAgICAgaWYoIG1tID09PSAnMDAnICl7IHRoaXMuTU0gPSBtbTsgfVxyXG5cclxuICAgICAgY29uc3Qgbm90YXRpb24gPSAnMDBaJztcclxuXHJcbiAgICAgIGNvbnN0IHN0cl9kYXRlID0gYCR7YW5vfS0ke21lc30tJHtkaWF9VCR7aGh9OiR7bW19OiR7bm90YXRpb259YDtcclxuICAgICAgY29uc3QgZGF0ZXRpbWUgPSBuZXcgRGF0ZSggc3RyX2RhdGUgKTtcclxuICAgICAgXHJcbiAgICAgIGlmKCB0aGlzLmNoZWNrSXNEYXRlKGRhdGV0aW1lKSApe1xyXG4gICAgICAgIHRoaXMuaW5uZXJWYWx1ZSA9IGRhdGV0aW1lO1xyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICB0aGlzLmlubmVyVmFsdWUgPSB1bmRlZmluZWQ7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vIGNvbnNvbGUubG9nKCd0aGlzLmRhdGVwaWNrZXJ0aW1lPy5uYXRpdmVFbGVtZW50JywgdGhpcy5kYXRlcGlja2VydGltZT8ubmF0aXZlRWxlbWVudCk7XHJcblxyXG4gICAgICAvLyBpZih0aGlzLmRhdGVwaWNrZXJ0aW1lICYmIHRoaXMuZGF0ZXBpY2tlcnRpbWUubmF0aXZlRWxlbWVudCl7XHJcbiAgICAgIC8vICAgY29uc3QgZWxlbSA9IDxhbnk+IHRoaXMuZGF0ZXBpY2tlcnRpbWUubmF0aXZlRWxlbWVudDtcclxuICAgICAgLy8gICBlbGVtLnZhbHVlID0gdGhpcy5pbm5lclZhbHVlO1xyXG4gICAgICAvLyB9XHJcblxyXG4gICAgICB0aGlzLm5nTW9kZWxDaGFuZ2UuZW1pdCggdGhpcy5pbm5lclZhbHVlICk7XHJcbiAgICAgIHRoaXMub25DaGFuZ2UuZW1pdCggdGhpcy5pbm5lclZhbHVlICk7XHJcbiAgICAgIHRoaXMuZXZlbnRDaGFuZ2UuZW1pdCggdGhpcy5kYXRlcGlja2VydGltZT8ubmF0aXZlRWxlbWVudCApO1xyXG5cclxuICAgIH1lbHNle1xyXG5cclxuICAgICAgdGhpcy5kZXNjcmlwdGlvbl9vcHRpb25zX2RhdGVfdGltZSA9ICcnO1xyXG4gICAgICB0aGlzLnZhbHVlX29wdGlvbnNfZGF0ZV90aW1lID0gJyc7XHJcblxyXG4gICAgICB0aGlzLmlubmVyVmFsdWUgPSB1bmRlZmluZWQ7XHJcbiAgICAgIHRoaXMubmdNb2RlbENoYW5nZS5lbWl0KCB0aGlzLmlubmVyVmFsdWUgKTtcclxuICAgICAgdGhpcy5vbkNoYW5nZS5lbWl0KCB0aGlzLmlubmVyVmFsdWUgKTtcclxuICAgICAgdGhpcy5ldmVudENoYW5nZS5lbWl0KCB0aGlzLmRhdGVwaWNrZXJ0aW1lPy5uYXRpdmVFbGVtZW50ICk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGAke3RoaXMubGFzdF9vcHRpb25zX2RhdGVfdGltZX1gICE9PSBgJHt0aGlzLmlubmVyVmFsdWV9YCApe1xyXG4gICAgICAvLyB0aGlzLmRlc2NyaXB0aW9uX29wdGlvbnNfZGF0ZV90aW1lID0gJyc7XHJcbiAgICAgIC8vIHRoaXMudmFsdWVfb3B0aW9uc19kYXRlX3RpbWUgPSAnJztcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICAvLyBEaXN0cmlidWlyIG9zIHZhbG9yZXMgZGEgZGF0YSBwb3IgcGVkYcOnb3M6IGRhdGEgLSBob3JhIC0gbWluXHJcbiAgdG9fZGF0ZV9oaF9tbShkOiBEYXRlKXtcclxuICAgIGxldCBkaWEgPSBgJHsoZCkuZ2V0RGF0ZSgpfWA7XHJcbiAgICBkaWEgPSAoKyhkaWEpIDwgMTAgKSA/IGAwJHsrZGlhfWAgOiBkaWE7XHJcbiAgICBsZXQgbWVzID0gYCR7KGQpLmdldE1vbnRoKCkrMX1gO1xyXG4gICAgbWVzID0gKCsobWVzKSA8IDEwICkgPyBgMCR7K21lc31gIDogbWVzOyAgXHJcblxyXG4gICAgbGV0IGFubyA9IGAkeyhkKS5nZXRGdWxsWWVhcigpfWA7XHJcbiAgICBsZXQgaGggID0gYCR7KGQpLmdldEhvdXJzKCl9YDtcclxuICAgIGxldCBtbSAgPSBgJHsoZCkuZ2V0TWludXRlcygpfWA7XHJcblxyXG4gICAgaWYoIGhoICYmICggKyhoaCkgPCAwIHx8ICsoaGgpID4gMjMgKSApeyBoaCA9ICcwMCc7IH1cclxuICAgIGhoID0gKGhoKSA/ICggKCsoaGgpIDwgMTAgKSA/IGAwJHtoaH1gIDogaGggKSA6ICcwMCc7XHJcblxyXG4gICAgaWYoIG1tICYmICggKyhtbSkgPCAwIHx8ICsobW0pID4gNTkgKSApeyBtbSA9ICcwMCc7IH1cclxuICAgIG1tID0gKG1tKSA/ICggKCsobW0pIDwgMTAgKSA/IGAwJHttbX1gIDogbW0gKSA6ICcwMCc7XHJcblxyXG4gICAgdGhpcy5NTSA9IG1tO1xyXG4gICAgdGhpcy5ISCA9IGhoO1xyXG5cclxuICAgIHRoaXMuRERfTU1fWVlZWSA9IGAke2RpYX0vJHttZXN9LyR7YW5vfWA7XHJcbiAgfVxyXG5cclxuICBjaGVja0lzRGF0ZShkOiBhbnkpOiBib29sZWFue1xyXG5cclxuICAgIGlmKE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChkKSA9PT0gXCJbb2JqZWN0IERhdGVdXCIpIHtcclxuICAgICAgaWYoaXNOYU4oZCkpIHsgcmV0dXJuIGZhbHNlOyB9IGVsc2UgeyByZXR1cm4gdHJ1ZTsgfVxyXG4gICAgfSBcclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG5cclxuICBjbGVhbigpe1xyXG4gICAgdGhpcy5ERF9NTV9ZWVlZID0gJyc7XHJcbiAgICB0aGlzLkhIID0gJzAwJztcclxuICAgIHRoaXMuTU0gPSAnMDAnO1xyXG4gICAgdGhpcy5kZXNjcmlwdGlvbl9vcHRpb25zX2RhdGVfdGltZSA9ICcnO1xyXG4gICAgdGhpcy52YWx1ZV9vcHRpb25zX2RhdGVfdGltZSA9ICcnO1xyXG4gIH1cclxuXHJcbiAgdG9DbGlja0luKGlkOiBzdHJpbmcpe1xyXG4gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpPy5mb2N1cygpO1xyXG4gIH1cclxuXHJcbiAgb25DbG9zZWRPcHRpb25zRGF0ZVRpbWUoKXtcclxuICAgIHRoaXMub3Blbl9vcHRpb25zX2RhdGVfdGltZSA9IGZhbHNlXHJcbiAgfVxyXG5cclxuICBcclxuICBvbkNoYW5nZU9wdGlvbnNEYXRlVGltZShldmVudDogYW55KXtcclxuICAgIC8vIHRoaXMuZGVzY3JpcHRpb25fb3B0aW9uc19kYXRlX3RpbWUgPSAnJztcclxuICAgIC8vIHRoaXMudmFsdWVfb3B0aW9uc19kYXRlX3RpbWUgPSAnJztcclxuICAgIHRoaXMuc2hvd19kYXRlX3BpY2tlciA9IGZhbHNlO1xyXG5cclxuICAgIGxldCBub3cgPSBuZXcgRGF0ZSgpO1xyXG4gICAgbGV0IGZpbHRlcl9kYXRlOiBhbnkgPSB1bmRlZmluZWQ7XHJcbiAgICBpZiggZXZlbnQgPT09ICc3LWRheXMnICl7XHJcbiAgICAgIGZpbHRlcl9kYXRlID0gbmV3IERhdGUoIChuZXcgRGF0ZShub3cpKS5zZXREYXRlKCBub3cuZ2V0RGF0ZSgpIC0gNyApICk7ICBcclxuICAgICAgZmlsdGVyX2RhdGUgPSBuZXcgRGF0ZSggKGZpbHRlcl9kYXRlKS5zZXRTZWNvbmRzKDApICk7ICAgICAgXHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGV2ZW50ID09PSAnMTUtZGF5cycgKXtcclxuICAgICAgZmlsdGVyX2RhdGUgPSBuZXcgRGF0ZSggKG5ldyBEYXRlKG5vdykpLnNldERhdGUoIG5vdy5nZXREYXRlKCkgLSAxNSApICk7XHJcbiAgICAgIGZpbHRlcl9kYXRlID0gbmV3IERhdGUoIChmaWx0ZXJfZGF0ZSkuc2V0U2Vjb25kcygwKSApO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBldmVudCA9PT0gJzMwLWRheXMnICl7XHJcbiAgICAgIGZpbHRlcl9kYXRlID0gbmV3IERhdGUoIChuZXcgRGF0ZShub3cpKS5zZXREYXRlKCBub3cuZ2V0RGF0ZSgpIC0gMzAgKSApO1xyXG4gICAgICBmaWx0ZXJfZGF0ZSA9IG5ldyBEYXRlKCAoZmlsdGVyX2RhdGUpLnNldFNlY29uZHMoMCkgKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiggZXZlbnQgPT09ICdjdXJyZW50LW1vbnRoJyApe1xyXG4gICAgICBmaWx0ZXJfZGF0ZSA9IG5ldyBEYXRlKG5vdy5nZXRGdWxsWWVhcigpLCBub3cuZ2V0TW9udGgoKSwgMSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGV2ZW50ID09PSAnY3VycmVudC15ZWFyJyApe1xyXG4gICAgICBmaWx0ZXJfZGF0ZSA9IG5ldyBEYXRlKG5vdy5nZXRGdWxsWWVhcigpLCAwLCAxKTtcclxuICAgIH1cclxuXHJcbiAgICBpZihmaWx0ZXJfZGF0ZSl7ICAgICAgXHJcbiAgICAgIHRoaXMuaW5uZXJWYWx1ZSA9IGZpbHRlcl9kYXRlO1xyXG4gICAgICBpZiggdGhpcy5jaGVja0lzRGF0ZShmaWx0ZXJfZGF0ZSkgKXsgICAgICAgICAgICAgIFxyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy50b19kYXRlX2hoX21tKGZpbHRlcl9kYXRlKTtcclxuICAgICAgICAgIHRoaXMudG9TZXREYXRlKHRoaXMuRERfTU1fWVlZWSk7ICBcclxuICAgICAgICAgIHRoaXMuc2hvd19kYXRlX3BpY2tlciA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLnZhbHVlX29wdGlvbnNfZGF0ZV90aW1lID0gZXZlbnQ7XHJcbiAgICAgICAgICB0aGlzLmxhc3Rfb3B0aW9uc19kYXRlX3RpbWUgPSBmaWx0ZXJfZGF0ZSBhcyBhbnk7XHJcbiAgICAgICAgICB0aGlzLmRlc2NyaXB0aW9uX29wdGlvbnNfZGF0ZV90aW1lID0gdGhpcy5nZXRfZGVzY3JpcHRpb25fb3B0aW9uc19kYXRlX3RpbWUoZXZlbnQpO1xyXG4gICAgICAgIH0pOyAgICAgICBcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG5cclxuICBnZXRfZGVzY3JpcHRpb25fb3B0aW9uc19kYXRlX3RpbWUodmFsdWU6IHN0cmluZyl7XHJcbiAgICBpZiggdGhpcy5vcHRpb25zX2RhdGVfdGltZSAmJiAodGhpcy5vcHRpb25zX2RhdGVfdGltZSkubGVuZ3RoID4gMCApe1xyXG4gICAgICBmb3IoIGxldCBpID0gMDsgaSA8ICh0aGlzLm9wdGlvbnNfZGF0ZV90aW1lKS5sZW5ndGg7IGkrKyApe1xyXG4gICAgICAgIGNvbnN0IGl0ZW0gPSB0aGlzLm9wdGlvbnNfZGF0ZV90aW1lW2ldO1xyXG4gICAgICAgIGlmKCBpdGVtLnZhbHVlID09PSB2YWx1ZSApe1xyXG4gICAgICAgICAgcmV0dXJuIGl0ZW0uZGVzY3JpcHRpb247XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gJyc7XHJcbiAgfVxyXG5cclxuXHJcbiAgY2xvc2VkVGltZURlc2NyaXB0aW9uKCl7XHJcbiAgICB0aGlzLnZhbHVlX29wdGlvbnNfZGF0ZV90aW1lID0gJyc7XHJcbiAgICB0aGlzLmRlc2NyaXB0aW9uX29wdGlvbnNfZGF0ZV90aW1lID0gJyc7IFxyXG4gIH1cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuICBcclxuICBpbm5lclZhbHVlOiBhbnkgfCB1bmRlZmluZWQ7XHJcbiAgLy9QbGFjZWhvbGRlcnMgZm9yIHRoZSBjYWxsYmFja3Mgd2hpY2ggYXJlIGxhdGVyIHByb3ZpZGVzZFxyXG4gIC8vYnkgdGhlIENvbnRyb2wgVmFsdWUgQWNjZXNzb3JcclxuICBwcml2YXRlIG9uVG91Y2hlZENhbGxiYWNrOiAoKSA9PiB2b2lkID0gbm9vcDtcclxuICBwcml2YXRlIG9uQ2hhbmdlQ2FsbGJhY2s6IChfOiBhbnkpID0+IHZvaWQgPSBub29wO1xyXG5cclxuICAvL2dldCBhY2Nlc3NvclxyXG4gIGdldCB2YWx1ZSgpOiBhbnkge1xyXG4gICAgICByZXR1cm4gdGhpcy5pbm5lclZhbHVlO1xyXG4gIH07XHJcblxyXG4gIC8vc2V0IGFjY2Vzc29yIGluY2x1ZGluZyBjYWxsIHRoZSBvbmNoYW5nZSBjYWxsYmFja1xyXG4gIHNldCB2YWx1ZSh2OiBhbnkpIHtcclxuICAgIGlmICh2ICE9PSB0aGlzLmlubmVyVmFsdWUpIHtcclxuICAgICAgdGhpcy5pbm5lclZhbHVlID0gdjsgICAgICBcclxuICAgICAgdGhpcy5vbkNoYW5nZUNhbGxiYWNrKHYpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy9TZXQgdG91Y2hlZCBvbiBibHVyXHJcbiAgb25CbHVyKCkge1xyXG4gICAgdGhpcy5vblRvdWNoZWRDYWxsYmFjaygpO1xyXG4gIH1cclxuXHJcbiAgLy9Gcm9tIENvbnRyb2xWYWx1ZUFjY2Vzc29yIGludGVyZmFjZVxyXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSkge1xyXG4gICAgaWYgKHZhbHVlICE9PSB0aGlzLmlubmVyVmFsdWUpIHtcclxuXHJcbiAgICAgIHRyeSB7XHJcbiAgICAgICAgdmFsdWUgPSBuZXcgRGF0ZSggYCR7dmFsdWV9YCApO1xyXG4gICAgICB9IGNhdGNoIChlcnJvcikge31cclxuXHJcbiAgICAgIHRoaXMuaW5uZXJWYWx1ZSA9IHZhbHVlO1xyXG4gICAgICBpZiggdGhpcy5jaGVja0lzRGF0ZSh2YWx1ZSkgKXtcclxuICAgICAgICB0aGlzLnRvX2RhdGVfaGhfbW0odmFsdWUpO1xyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICB0aGlzLmNsZWFuKClcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy9Gcm9tIENvbnRyb2xWYWx1ZUFjY2Vzc29yIGludGVyZmFjZVxyXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSkge1xyXG4gICAgdGhpcy5vbkNoYW5nZUNhbGxiYWNrID0gZm47XHJcbiAgfVxyXG5cclxuICAvL0Zyb20gQ29udHJvbFZhbHVlQWNjZXNzb3IgaW50ZXJmYWNlXHJcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSkge1xyXG4gICAgdGhpcy5vblRvdWNoZWRDYWxsYmFjayA9IGZuO1xyXG4gIH1cclxuXHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInRjbG91ZC11aS1kYXRlcGlja2VyLXRpbWVcIj5cclxuICA8aW5wdXQgdHlwZT1cImhpZGRlblwiIHZhbHVlPVwie3sgaW5uZXJWYWx1ZSB9fVwiICNfZGF0ZXBpY2tlcnRpbWUgPlxyXG4gIDxmb3JtICNfZm9ybXVsYXJpbz1cIm5nRm9ybVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImlucHV0LWNvbnRyb2wtdGltZVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jb250cm9sLXRpbWVcIj5cclxuXHJcbiAgICAgICAgPHRhYmxlIHN0eWxlPVwid2lkdGg6IDEwMCU7XCI+XHJcbiAgICAgICAgICA8dHI+XHJcbiAgICAgICAgICAgIDx0ZD5cclxuXHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LW9wdGlvbnMtZGF0ZVwiPlxyXG4gICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz1cImZvcm0tdGltZVwiPlxyXG4gICAgICAgICAgICAgICAgPHRyPlxyXG4gICAgICAgICAgICAgICAgICA8IS0tIDx0ZCBjbGFzcz1cImFyZWEtaWNvblwiPjxkaXYgY2xhc3M9XCJkZWxpbWl0ZXItdGltZS1pY29uXCIgKGNsaWNrKT1cInRvQ2xpY2tJbihJRClcIiA+PGkgY2xhc3M9XCJmYXMgZmEtY2FsZW5kYXItYWx0XCI+PC9pPjwvZGl2PjwvdGQ+IC0tPlxyXG4gICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJhcmVhLWlucHV0LWRhdGVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2hvd19kYXRlX3BpY2tlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRjbG91ZC11aS1kYXRlcGlja2VyICNfdGNsb3VkZGF0ZXBpY2tlcnRpbWUgW2NoaWxkSW5wdXREYXRlVGltZV09XCJ0cnVlXCIgW21vZGVJbnB1dF09XCJ0cnVlXCIgbmFtZT1cImRhdGVcIiBbdXNlQm9yZGVyXT1cImZhbHNlXCIgWyhuZ01vZGVsKV09XCJERF9NTV9ZWVlZXCIgKG9uQ2hhbmdlKT1cInRvU2V0RGF0ZSgkZXZlbnQpXCIgPjwvdGNsb3VkLXVpLWRhdGVwaWNrZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJhcmVhLWRlbGltaXRlclwiPjxkaXYgY2xhc3M9XCJkZWxpbWl0ZXItdGltZVwiPjwvZGl2PjwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImFyZWEtaW5wdXQtaG91clwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDwhLS08aW5wdXQgdHlwZT1cInRleHRcIiBwbGFjZWhvbGRlcj1cIkhIXCIgKGtleXVwKT1cInRvU2V0VGltZSgpXCIgWyhuZ01vZGVsKV09XCJISFwiIG1heGxlbmd0aD1cIjJcIiBuYW1lPVwiaGhcIiBwYXR0ZXJuPVwiWzBdWzAtOV18WzFdWzAtOV18MlswLTNdXCI+LS0+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNlbGVjdCBjbGFzcz1cInNlbGVjdC10aW1lLWRhdGVcIiAoY2hhbmdlKT1cInRvU2V0VGltZSgpXCIgWyhuZ01vZGVsKV09XCJISFwiIG5hbWU9XCJoaFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaGggb2Ygb3B0aW9uX0hIXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gW25nVmFsdWVdPVwiaGhcIj57eyBoaCB9fTwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImFyZWEtZGVsaW1pdGVyXCI+PGRpdiBjbGFzcz1cImRlbGltaXRlci10aW1lXCI+OjwvZGl2PjwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImFyZWEtaW5wdXQtbWludXRlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPCEtLTxpbnB1dCB0eXBlPVwidGV4dFwiIHBsYWNlaG9sZGVyPVwiTU1cIiAoa2V5dXApPVwidG9TZXRUaW1lKClcIiBbKG5nTW9kZWwpXT1cIk1NXCIgbWF4bGVuZ3RoPVwiMlwiIG5hbWU9XCJtbVwiIHBhdHRlcm49XCJbMDEyMzQ1XVswLTldXCI+LS0+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNlbGVjdCBjbGFzcz1cInNlbGVjdC10aW1lLWRhdGVcIiAoY2hhbmdlKT1cInRvU2V0VGltZSgpXCIgWyhuZ01vZGVsKV09XCJNTVwiIG5hbWU9XCJtbVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgbW0gb2Ygb3B0aW9uX01NXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gW3ZhbHVlXT1cIm1tXCI+e3sgbW0gfX08L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJhcmVhLWNsZWFuXCI+PC90ZD5cclxuICAgICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgPC90YWJsZT5cclxuXHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRlc2NyaXB0aW9uLW9wdGlvbnMtZGF0ZVwiICpuZ0lmPVwidmFsdWVfb3B0aW9uc19kYXRlX3RpbWUgIT09ICcnXCI+XHJcbiAgICAgICAgICAgICAgICA8c3Ryb25nPnt7IGRlc2NyaXB0aW9uX29wdGlvbnNfZGF0ZV90aW1lIH19PC9zdHJvbmc+XHJcblxyXG4gICAgICAgICAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJhcmVhLWFjdGlvbi1kYXRlLXRpbWUtc2VsZWN0ZWRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuLWljb25cIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cImNsb3NlZFRpbWVEZXNjcmlwdGlvbigpXCIgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtdGltZXNcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+ICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PiAtLT5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcblxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgIDx0ZCAqbmdJZj1cInVzZU9wdGlvbnNEYXRlVGltZSAmJiBvcHRpb25zX2RhdGVfdGltZSAmJiAob3B0aW9uc19kYXRlX3RpbWUpLmxlbmd0aCA+IDBcIiBzdHlsZT1cIndpZHRoOiAyMHB4XCI+XHJcbiAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJpY29uLXNob3J0LXRpbWVcIiAoY2xpY2spPVwib3Blbl9vcHRpb25zX2RhdGVfdGltZSA9ICFvcGVuX29wdGlvbnNfZGF0ZV90aW1lXCIgW3RpdGxlXT1cImRlc2NyaXB0aW9uX29wdGlvbnNfZGF0ZV90aW1lXCIgPlxyXG4gICAgICAgICAgICAgICAgPGkgKm5nSWY9XCIhb3Blbl9vcHRpb25zX2RhdGVfdGltZVwiIGNsYXNzPVwiZmFzIGZhLWNhcmV0LWRvd25cIj48L2k+XHJcbiAgICAgICAgICAgICAgICA8aSAqbmdJZj1cIm9wZW5fb3B0aW9uc19kYXRlX3RpbWVcIiBjbGFzcz1cImZhcyBmYS1jYXJldC11cFwiPjwvaT5cclxuICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuXHJcbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInZhbHVlX29wdGlvbnNfZGF0ZV90aW1lICE9PSAnJ1wiPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0bi1pY29uLWNsb3NlXCIgdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJjbG9zZWRUaW1lRGVzY3JpcHRpb24oKVwiID5cclxuICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtdGltZXNcIj48L2k+XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj4gXHJcbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgPC90cj5cclxuICAgICAgICAgIDx0ciAqbmdJZj1cInVzZU9wdGlvbnNEYXRlVGltZSAmJiBvcHRpb25zX2RhdGVfdGltZSAmJiAob3B0aW9uc19kYXRlX3RpbWUpLmxlbmd0aCA+IDAgJiYgb3Blbl9vcHRpb25zX2RhdGVfdGltZVwiPlxyXG4gICAgICAgICAgICA8dGQgY29sc3Bhbj1cIjJcIj5cclxuICAgICAgICAgICAgICAgIDx0Y2xvdWQtdWktZGF0YS1saXN0IFxyXG4gICAgICAgICAgICAgICAgICBuYW1lPVwidmFsdWVfb3B0aW9uc19kYXRlX3RpbWVcIlxyXG4gICAgICAgICAgICAgICAgICBbc2hvd0lucHV0XT1cImZhbHNlXCIgXHJcbiAgICAgICAgICAgICAgICAgIFtzZWFyY2hdPVwiZmFsc2VcIiBcclxuICAgICAgICAgICAgICAgICAgW29wZW5dPVwidHJ1ZVwiIFxyXG4gICAgICAgICAgICAgICAgICBbbGlzdEl0ZW1zXT1cIm9wdGlvbnNfZGF0ZV90aW1lXCIgXHJcbiAgICAgICAgICAgICAgICAgIChvbkNsb3NlZCk9XCJvbkNsb3NlZE9wdGlvbnNEYXRlVGltZSgpXCJcclxuICAgICAgICAgICAgICAgICAgW25nTW9kZWxdPVwidmFsdWVfb3B0aW9uc19kYXRlX3RpbWVcIlxyXG4gICAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJvbkNoYW5nZU9wdGlvbnNEYXRlVGltZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPC90Y2xvdWQtdWktZGF0YS1saXN0PlxyXG5cclxuICAgICAgICAgICAgICAgIFxyXG5cclxuXHJcbiAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICA8L3RyPlxyXG4gICAgICAgIDwvdGFibGU+XHJcblxyXG4gICAgICAgIFxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZm9ybT5cclxuPC9kaXY+Il19
|