@skyux/datetime 11.21.0 → 11.22.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/documentation.json +582 -582
- package/esm2022/lib/modules/datepicker/datepicker-calendar-inner.component.mjs +3 -3
- package/esm2022/lib/modules/datepicker/datepicker-input-fuzzy.directive.mjs +1 -7
- package/esm2022/lib/modules/datepicker/datepicker-input.directive.mjs +1 -7
- package/esm2022/lib/modules/datepicker/datepicker.component.mjs +2 -2
- package/esm2022/lib/modules/datepicker/daypicker-button.component.mjs +2 -2
- package/esm2022/lib/modules/datepicker/daypicker.component.mjs +3 -3
- package/esm2022/lib/modules/shared/sky-datetime-resources.module.mjs +3 -21
- package/esm2022/testing/datepicker/datepicker-calendar-harness.mjs +2 -2
- package/fesm2022/skyux-datetime-testing.mjs +1 -1
- package/fesm2022/skyux-datetime-testing.mjs.map +1 -1
- package/fesm2022/skyux-datetime.mjs +10 -40
- package/fesm2022/skyux-datetime.mjs.map +1 -1
- package/lib/modules/shared/sky-datetime-resources.module.d.ts +0 -4
- package/package.json +9 -9
@@ -166,13 +166,10 @@ export class SkyDatepickerInputDirective {
|
|
166
166
|
this.#ngUnsubscribe = new Subject();
|
167
167
|
this.#_disabled = false;
|
168
168
|
this.#_strict = false;
|
169
|
-
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
170
169
|
// istanbul ignore next
|
171
170
|
this.#onChange = (_) => { };
|
172
|
-
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
173
171
|
// istanbul ignore next
|
174
172
|
this.#onTouched = () => { };
|
175
|
-
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
176
173
|
// istanbul ignore next
|
177
174
|
this.#onValidatorChange = () => { };
|
178
175
|
if (!datepickerComponent) {
|
@@ -419,13 +416,10 @@ export class SkyDatepickerInputDirective {
|
|
419
416
|
}
|
420
417
|
return moment(value).isValid();
|
421
418
|
}
|
422
|
-
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
423
419
|
// istanbul ignore next
|
424
420
|
#onChange;
|
425
|
-
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
426
421
|
// istanbul ignore next
|
427
422
|
#onTouched;
|
428
|
-
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
429
423
|
// istanbul ignore next
|
430
424
|
#onValidatorChange;
|
431
425
|
/**
|
@@ -516,4 +510,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
|
|
516
510
|
type: HostListener,
|
517
511
|
args: ['input']
|
518
512
|
}] } });
|
519
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci1pbnB1dC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZGF0ZXRpbWUvc3JjL2xpYi9tb2R1bGVzL2RhdGVwaWNrZXIvZGF0ZXBpY2tlci1pbnB1dC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUlMLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUdMLFFBQVEsRUFFUixVQUFVLEdBQ1gsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUdMLGFBQWEsRUFDYixpQkFBaUIsR0FHbEIsTUFBTSxnQkFBZ0IsQ0FBQztBQUd4QixPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFDNUIsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFakUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7Ozs7O0FBSXBELE1BQU0sNkJBQTZCLEdBQUc7SUFDcEMsT0FBTyxFQUFFLGlCQUFpQjtJQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLDJCQUEyQixDQUFDO0lBQzFELEtBQUssRUFBRSxJQUFJO0NBQ1osQ0FBQztBQUVGLE1BQU0sd0JBQXdCLEdBQUc7SUFDL0IsT0FBTyxFQUFFLGFBQWE7SUFDdEIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQywyQkFBMkIsQ0FBQztJQUMxRCxLQUFLLEVBQUUsSUFBSTtDQUNaLENBQUM7QUFNRixNQUFNLE9BQU8sMkJBQTJCO0lBU3RDOzs7O09BSUc7SUFDSCxJQUNXLFVBQVUsQ0FBQyxLQUF5QjtRQUM3QywwQkFBMEI7UUFDMUIsSUFBSSxLQUFLLEtBQUssSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFD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LENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQzs4R0Fsa0JVLDJCQUEyQjtrR0FBM0IsMkJBQTJCLHNhQUYzQixDQUFDLDZCQUE2QixFQUFFLHdCQUF3QixDQUFDOzsyRkFFekQsMkJBQTJCO2tCQUp2QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxzQkFBc0I7b0JBQ2hDLFNBQVMsRUFBRSxDQUFDLDZCQUE2QixFQUFFLHdCQUF3QixDQUFDO2lCQUNyRTs7MEJBeU1JLFFBQVE7eUNBekxBLFVBQVU7c0JBRHBCLEtBQUs7Z0JBd0JLLFFBQVE7c0JBRGxCLEtBQUs7Z0JBb0JLLE9BQU87c0JBRGpCLEtBQUs7Z0JBa0JLLE9BQU87c0JBRGpCLEtBQUs7Z0JBa0JLLFdBQVc7c0JBRHJCLEtBQUs7Z0JBa0JLLGtCQUFrQjtzQkFENUIsS0FBSztnQkFvQkMsdUJBQXVCO3NCQUQ3QixLQUFLO2dCQVVLLFdBQVc7c0JBRHJCLEtBQUs7Z0JBc0JLLE1BQU07c0JBRGhCLEtBQUs7Z0JBK0dDLGFBQWE7c0JBRG5CLFlBQVk7dUJBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQTBCM0IsV0FBVztzQkFEakIsWUFBWTt1QkFBQyxNQUFNO2dCQU1iLE9BQU87c0JBRGIsWUFBWTt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIERpcmVjdGl2ZSxcbiAgRWxlbWVudFJlZixcbiAgSG9zdExpc3RlbmVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE9wdGlvbmFsLFxuICBSZW5kZXJlcjIsXG4gIGZvcndhcmRSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQWJzdHJhY3RDb250cm9sLFxuICBDb250cm9sVmFsdWVBY2Nlc3NvcixcbiAgTkdfVkFMSURBVE9SUyxcbiAgTkdfVkFMVUVfQUNDRVNTT1IsXG4gIFZhbGlkYXRpb25FcnJvcnMsXG4gIFZhbGlkYXRvcixcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU2t5QXBwTG9jYWxlUHJvdmlkZXIgfSBmcm9tICdAc2t5dXgvaTE4bic7XG5cbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50JztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IFNreURhdGVGb3JtYXR0ZXIgfSBmcm9tICcuL2RhdGUtZm9ybWF0dGVyJztcbmltcG9ydCB7IFNreURhdGVwaWNrZXJDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi9kYXRlcGlja2VyLWNvbmZpZy5zZXJ2aWNlJztcbmltcG9ydCB7IFNreURhdGVwaWNrZXJDb21wb25lbnQgfSBmcm9tICcuL2RhdGVwaWNrZXIuY29tcG9uZW50JztcblxuY29uc3QgU0tZX0RBVEVQSUNLRVJfVkFMVUVfQUNDRVNTT1IgPSB7XG4gIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBTa3lEYXRlcGlja2VySW5wdXREaXJlY3RpdmUpLFxuICBtdWx0aTogdHJ1ZSxcbn07XG5cbmNvbnN0IFNLWV9EQVRFUElDS0VSX1ZBTElEQVRPUiA9IHtcbiAgcHJvdmlkZTogTkdfVkFMSURBVE9SUyxcbiAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gU2t5RGF0ZXBpY2tlcklucHV0RGlyZWN0aXZlKSxcbiAgbXVsdGk6IHRydWUsXG59O1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbc2t5RGF0ZXBpY2tlcklucHV0XScsXG4gIHByb3ZpZGVyczogW1NLWV9EQVRFUElDS0VSX1ZBTFVFX0FDQ0VTU09SLCBTS1lfREFURVBJQ0tFUl9WQUxJREFUT1JdLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lEYXRlcGlja2VySW5wdXREaXJlY3RpdmVcbiAgaW1wbGVtZW50c1xuICAgIE9uSW5pdCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBBZnRlckNvbnRlbnRJbml0LFxuICAgIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxuICAgIFZhbGlkYXRvclxue1xuICAvKipcbiAgICogVGhlIGRhdGUgZm9ybWF0IGZvciB0aGUgaW5wdXQuIFBsYWNlIHRoaXMgYXR0cmlidXRlIG9uIHRoZSBgaW5wdXRgIGVsZW1lbnRcbiAgICogdG8gb3ZlcnJpZGUgdGhlIGRlZmF1bHQgaW4gdGhlIGBTa3lEYXRlcGlja2VyQ29uZmlnU2VydmljZWAuXG4gICAqIEBkZWZhdWx0IFwiTU0vREQvWVlZWVwiXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGRhdGVGb3JtYXQodmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKHZhbHVlICE9PSB0aGlzLiNfZGF0ZUZvcm1hdCkge1xuICAgICAgdGhpcy4jX2RhdGVGb3JtYXQgPSB2YWx1ZTtcbiAgICAgIHRoaXMuI2FwcGx5RGF0ZUZvcm1hdCgpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFRPRE86IFJlZmFjdG9yIHRvIG5vdCBoYXZlIGdldHRlciBsb2dpY1xuICBwdWJsaWMgZ2V0IGRhdGVGb3JtYXQoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy4jX2RhdGVGb3JtYXQgfHxcbiAgICAgIHRoaXMuI2NvbmZpZ1NlcnZpY2UuZGF0ZUZvcm1hdCB8fFxuICAgICAgdGhpcy4jcHJlZmVycmVkU2hvcnREYXRlRm9ybWF0XG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGRpc2FibGUgdGhlIGRhdGVwaWNrZXIgb24gdGVtcGxhdGUtZHJpdmVuIGZvcm1zLiBEb24ndCB1c2UgdGhpcyBpbnB1dCBvbiByZWFjdGl2ZSBmb3JtcyBiZWNhdXNlIHRoZXkgbWF5IG92ZXJ3cml0ZSB0aGUgaW5wdXQgb3IgbGVhdmUgdGhlIGNvbnRyb2wgb3V0IG9mIHN5bmMuXG4gICAqIFRvIHNldCB0aGUgZGlzYWJsZWQgc3RhdGUgb24gcmVhY3RpdmUgZm9ybXMsIHVzZSB0aGUgYEZvcm1Db250cm9sYCBpbnN0ZWFkLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBkaXNhYmxlZCh2YWx1ZTogYm9vbGVhbiB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuI19kaXNhYmxlZCA9IHZhbHVlIHx8IGZhbHNlO1xuICAgIHRoaXMuI2RhdGVwaWNrZXJDb21wb25lbnQuZGlzYWJsZWQgPSB2YWx1ZTtcbiAgICB0aGlzLiNyZW5kZXJlci5zZXRQcm9wZXJ0eShcbiAgICAgIHRoaXMuI2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICdkaXNhYmxlZCcsXG4gICAgICB2YWx1ZSxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy4jX2Rpc2FibGVkO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBsYXRlc3QgZGF0ZSB0aGF0IGlzIGF2YWlsYWJsZSBpbiB0aGUgY2FsZW5kYXIuIFBsYWNlIHRoaXMgYXR0cmlidXRlIG9uXG4gICAqIHRoZSBgaW5wdXRgIGVsZW1lbnQgdG8gb3ZlcnJpZGUgdGhlIGRlZmF1bHQgaW4gYFNreURhdGVwaWNrZXJDb25maWdTZXJ2aWNlYC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgbWF4RGF0ZSh2YWx1ZTogRGF0ZSB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuI19tYXhEYXRlID0gdmFsdWU7XG4gICAgdGhpcy4jZGF0ZXBpY2tlckNvbXBvbmVudC5tYXhEYXRlID0gdGhpcy5tYXhEYXRlO1xuXG4gICAgdGhpcy4jb25WYWxpZGF0b3JDaGFuZ2UoKTtcbiAgfVxuXG4gIC8vIFRPRE86IFJlZmFjdG9yIHRvIG5vdCBoYXZlIGdldHRlciBsb2dpY1xuICBwdWJsaWMgZ2V0IG1heERhdGUoKTogRGF0ZSB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuI19tYXhEYXRlIHx8IHRoaXMuI2NvbmZpZ1NlcnZpY2UubWF4RGF0ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgZWFybGllc3QgZGF0ZSB0aGF0IGlzIGF2YWlsYWJsZSBpbiB0aGUgY2FsZW5kYXIuIFBsYWNlIHRoaXMgYXR0cmlidXRlIG9uXG4gICAqIHRoZSBgaW5wdXRgIGVsZW1lbnQgdG8gb3ZlcnJpZGUgdGhlIGRlZmF1bHQgaW4gYFNreURhdGVwaWNrZXJDb25maWdTZXJ2aWNlYC4gVG8gYXZvaWQgdmFsaWRhdGlvbiBlcnJvcnMsIHRoZSB0aW1lIGFzc29jaWF0ZWQgd2l0aCB0aGUgbWluaW11bSBkYXRlIG11c3QgYmUgbWlkbmlnaHQuIFRoaXMgaXMgbmVjZXNzYXJ5IGJlY2F1c2UgdGhlIGRhdGVwaWNrZXIgYXV0b21hdGljYWxseSBzZXRzIHRoZSB0aW1lIG9uIHRoZSBgRGF0ZWAgb2JqZWN0IGZvciBzZWxlY3RlZCBkYXRlcyB0byBtaWRuaWdodCBpbiB0aGUgY3VycmVudCB1c2VyJ3MgdGltZSB6b25lLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBtaW5EYXRlKHZhbHVlOiBEYXRlIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy4jX21pbkRhdGUgPSB2YWx1ZTtcbiAgICB0aGlzLiNkYXRlcGlja2VyQ29tcG9uZW50Lm1pbkRhdGUgPSB0aGlzLm1pbkRhdGU7XG5cbiAgICB0aGlzLiNvblZhbGlkYXRvckNoYW5nZSgpO1xuICB9XG5cbiAgLy8gVE9ETzogUmVmYWN0b3IgdG8gbm90IGhhdmUgZ2V0dGVyIGxvZ2ljXG4gIHB1YmxpYyBnZXQgbWluRGF0ZSgpOiBEYXRlIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy4jX21pbkRhdGUgfHwgdGhpcy4jY29uZmlnU2VydmljZS5taW5EYXRlO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBkYXRlIHRvIG9wZW4gdGhlIGNhbGVuZGFyIHRvIGluaXRpYWxseS4gUGxhY2UgdGhpcyBhdHRyaWJ1dGUgb24gdGhlIGBpbnB1dGAgZWxlbWVudCB0byBvdmVycmlkZSB0aGUgZGVmYXVsdCBpbiBgU2t5RGF0ZXBpY2tlckNvbmZpZ1NlcnZpY2VgLlxuICAgKiBAZGVmYXVsdCBUaGUgY3VycmVudCBkYXRlXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHN0YXJ0QXREYXRlKHZhbHVlOiBEYXRlIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy4jX3N0YXJ0QXREYXRlID0gdmFsdWU7XG4gICAgdGhpcy4jZGF0ZXBpY2tlckNvbXBvbmVudC5zdGFydEF0RGF0ZSA9IHRoaXMuc3RhcnRBdERhdGU7XG4gIH1cblxuICAvLyBUT0RPOiBSZWZhY3RvciB0byBub3QgaGF2ZSBnZXR0ZXIgbG9naWNcbiAgcHVibGljIGdldCBzdGFydEF0RGF0ZSgpOiBEYXRlIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy4jX3N0YXJ0QXREYXRlIHx8IHRoaXMuI2NvbmZpZ1NlcnZpY2Uuc3RhcnRBdERhdGU7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyB0aGUgZGF0ZXBpY2tlciBpbnB1dCBhbmQgY2FsZW5kYXIuIFBsYWNlIHRoaXMgZGlyZWN0aXZlIG9uIGFuIGBpbnB1dGAgZWxlbWVudCxcbiAgICogYW5kIHdyYXAgdGhlIGlucHV0IGluIGEgYHNreS1kYXRlcGlja2VyYCBjb21wb25lbnQuIFRoZSB2YWx1ZSB0aGF0IHVzZXJzIHNlbGVjdCBpcyBkcml2ZW5cbiAgICogdGhyb3VnaCB0aGUgYG5nTW9kZWxgIGF0dHJpYnV0ZSBzcGVjaWZpZWQgb24gdGhlIGBpbnB1dGAgZWxlbWVudC5cbiAgICogQHJlcXVpcmVkXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHNreURhdGVwaWNrZXJJbnB1dChcbiAgICB2YWx1ZTogU2t5RGF0ZXBpY2tlckNvbXBvbmVudCB8IHVuZGVmaW5lZCB8ICcnLFxuICApIHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgJ1tEZXByZWNhdGlvbiB3YXJuaW5nXSBZb3Ugbm8gbG9uZ2VyIG5lZWQgdG8gcHJvdmlkZSBhIHRlbXBsYXRlIHJlZmVyZW5jZSB2YXJpYWJsZSAnICtcbiAgICAgICAgICAndG8gdGhlIGBza3lEYXRlcGlja2VySW5wdXRgIGF0dHJpYnV0ZSAodGhpcyB3aWxsIGJlIGEgYnJlYWtpbmcgY2hhbmdlIGluIHRoZSBuZXh0ICcgK1xuICAgICAgICAgICdtYWpvciB2ZXJzaW9uIHJlbGVhc2UpLlxcbicgK1xuICAgICAgICAgICdEbyB0aGlzIGluc3RlYWQ6XFxuJyArXG4gICAgICAgICAgJzxza3ktZGF0ZXBpY2tlcj5cXG4gIDxpbnB1dCBza3lEYXRlcGlja2VySW5wdXQgLz5cXG48L3NreS1kYXRlcGlja2VyPicsXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGRpc2FibGUgZGF0ZSB2YWxpZGF0aW9uIG9uIHRoZSBkYXRlcGlja2VyIGlucHV0LlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNreURhdGVwaWNrZXJOb1ZhbGlkYXRlOiBib29sZWFuIHwgdW5kZWZpbmVkID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFRoZSBzdGFydGluZyBkYXkgb2YgdGhlIHdlZWsgaW4gdGhlIGNhbGVuZGFyLCB3aGVyZSBgMGAgc2V0cyB0aGUgc3RhcnRpbmcgZGF5XG4gICAqIHRvIFN1bmRheS4gUGxhY2UgdGhpcyBhdHRyaWJ1dGUgb24gdGhlIGBpbnB1dGAgZWxlbWVudCB0byBvdmVycmlkZSB0aGUgZGVmYXVsdFxuICAgKiBpbiBgU2t5RGF0ZXBpY2tlckNvbmZpZ1NlcnZpY2VgLlxuICAgKiBAZGVmYXVsdCAwXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHN0YXJ0aW5nRGF5KHZhbHVlOiBudW1iZXIgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLiNfc3RhcnRpbmdEYXkgPSB2YWx1ZTtcbiAgICB0aGlzLiNkYXRlcGlja2VyQ29tcG9uZW50LnN0YXJ0aW5nRGF5ID0gdGhpcy5zdGFydGluZ0RheTtcblxuICAgIHRoaXMuI29uVmFsaWRhdG9yQ2hhbmdlKCk7XG4gIH1cblxuICAvLyBUT0RPOiBSZWZhY3RvciB0byBub3QgaGF2ZSBnZXR0ZXIgbG9naWNcbiAgcHVibGljIGdldCBzdGFydGluZ0RheSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLiNfc3RhcnRpbmdEYXkgfHwgdGhpcy4jY29uZmlnU2VydmljZS5zdGFydGluZ0RheTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBmb3JtYXQgb2YgdGhlIGRhdGUgdmFsdWUgbXVzdCBtYXRjaCB0aGUgZm9ybWF0IGZyb20gdGhlIGBkYXRlRm9ybWF0YCB2YWx1ZS5cbiAgICogSWYgdGhpcyBwcm9wZXJ0eSBpcyBgdHJ1ZWAgYW5kIHRoZSBkYXRlcGlja2VyIGlucHV0IGRpcmVjdGl2ZSBjYW5ub3QgZmluZCBhbiBleGFjdCBtYXRjaCwgdGhlblxuICAgKiB0aGUgaW5wdXQgaXMgbWFya2VkIGFzIGludmFsaWQuXG4gICAqIElmIHRoaXMgcHJvcGVydHkgaXMgYGZhbHNlYCBhbmQgdGhlIGRhdGVwaWNrZXIgaW5wdXQgZGlyZWN0aXZlIGNhbm5vdCBmaW5kIGFuIGV4YWN0IG1hdGNoLCB0aGVuXG4gICAqIGl0IGF0dGVtcHRzIHRvIGZvcm1hdCB0aGUgc3RyaW5nIGJhc2VkIG9uIHRoZSBbSVNPIDg2MDEgc3RhbmRhcmQgZm9ybWF0XShodHRwczovL3d3dy5pc28ub3JnL2lzby04NjAxLWRhdGUtYW5kLXRpbWUtZm9ybWF0Lmh0bWwpLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBzdHJpY3QodmFsdWU6IGJvb2xlYW4gfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLiNfc3RyaWN0ID0gdmFsdWUgfHwgZmFsc2U7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHN0cmljdCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy4jX3N0cmljdDtcbiAgfVxuXG4gIGdldCAjdmFsdWUoKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy4jX3ZhbHVlO1xuICB9XG5cbiAgc2V0ICN2YWx1ZSh2YWx1ZTogYW55KSB7XG4gICAgdGhpcy4jdXBkYXRlVmFsdWUodmFsdWUpO1xuICB9XG5cbiAgI2NvbnRyb2w6IEFic3RyYWN0Q29udHJvbCB8IHVuZGVmaW5lZDtcbiAgI2RhdGVGb3JtYXR0ZXIgPSBuZXcgU2t5RGF0ZUZvcm1hdHRlcigpO1xuICAjcHJlZmVycmVkU2hvcnREYXRlRm9ybWF0OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICNuZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAjX2RhdGVGb3JtYXQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgI19kaXNhYmxlZCA9IGZhbHNlO1xuICAjX21heERhdGU6IERhdGUgfCB1bmRlZmluZWQ7XG4gICNfbWluRGF0ZTogRGF0ZSB8IHVuZGVmaW5lZDtcbiAgI19zdGFydEF0RGF0ZTogRGF0ZSB8IHVuZGVmaW5lZDtcbiAgI19zdGFydGluZ0RheTogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAjX3N0cmljdCA9IGZhbHNlO1xuICAjX3ZhbHVlOiBhbnk7XG5cbiAgI2NoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZjtcbiAgI2NvbmZpZ1NlcnZpY2U6IFNreURhdGVwaWNrZXJDb25maWdTZXJ2aWNlO1xuICAjZWxlbWVudFJlZjogRWxlbWVudFJlZjtcbiAgI2xvY2FsZVByb3ZpZGVyOiBTa3lBcHBMb2NhbGVQcm92aWRlcjtcbiAgI3JlbmRlcmVyOiBSZW5kZXJlcjI7XG4gICNkYXRlcGlja2VyQ29tcG9uZW50OiBTa3lEYXRlcGlja2VyQ29tcG9uZW50O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBjb25maWdTZXJ2aWNlOiBTa3lEYXRlcGlja2VyQ29uZmlnU2VydmljZSxcbiAgICBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgIGxvY2FsZVByb3ZpZGVyOiBTa3lBcHBMb2NhbGVQcm92aWRlcixcbiAgICByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgIEBPcHRpb25hbCgpIGRhdGVwaWNrZXJDb21wb25lbnQ/OiBTa3lEYXRlcGlja2VyQ29tcG9uZW50LFxuICApIHtcbiAgICBpZiAoIWRhdGVwaWNrZXJDb21wb25lbnQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ1lvdSBtdXN0IHdyYXAgdGhlIGBza3lEYXRlcGlja2VySW5wdXRgIGRpcmVjdGl2ZSB3aXRoaW4gYSAnICtcbiAgICAgICAgICAnYDxza3ktZGF0ZXBpY2tlcj5gIGNvbXBvbmVudCEnLFxuICAgICAgKTtcbiAgICB9XG4gICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IgPSBjaGFuZ2VEZXRlY3RvcjtcbiAgICB0aGlzLiNjb25maWdTZXJ2aWNlID0gY29uZmlnU2VydmljZTtcbiAgICB0aGlzLiNlbGVtZW50UmVmID0gZWxlbWVudFJlZjtcbiAgICB0aGlzLiNsb2NhbGVQcm92aWRlciA9IGxvY2FsZVByb3ZpZGVyO1xuICAgIHRoaXMuI3JlbmRlcmVyID0gcmVuZGVyZXI7XG4gICAgdGhpcy4jZGF0ZXBpY2tlckNvbXBvbmVudCA9IGRhdGVwaWNrZXJDb21wb25lbnQ7XG5cbiAgICB0aGlzLiNsb2NhbGVQcm92aWRlclxuICAgICAgLmdldExvY2FsZUluZm8oKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgLnN1YnNjcmliZSgobG9jYWxlSW5mbykgPT4ge1xuICAgICAgICBTa3lEYXRlRm9ybWF0dGVyLnNldExvY2FsZShsb2NhbGVJbmZvLmxvY2FsZSk7XG4gICAgICAgIHRoaXMuI3ByZWZlcnJlZFNob3J0RGF0ZUZvcm1hdCA9XG4gICAgICAgICAgU2t5RGF0ZUZvcm1hdHRlci5nZXRQcmVmZXJyZWRTaG9ydERhdGVGb3JtYXQoKTtcbiAgICAgICAgdGhpcy4jYXBwbHlEYXRlRm9ybWF0KCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBjb25zdCBlbGVtZW50ID0gdGhpcy4jZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuXG4gICAgdGhpcy4jcmVuZGVyZXIuYWRkQ2xhc3MoZWxlbWVudCwgJ3NreS1mb3JtLWNvbnRyb2wnKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgdGhpcy4jZGF0ZXBpY2tlckNvbXBvbmVudC5kYXRlRm9ybWF0ID0gdGhpcy5kYXRlRm9ybWF0O1xuICAgIHRoaXMuI2RhdGVwaWNrZXJDb21wb25lbnQuZGF0ZUNoYW5nZVxuICAgICAgLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSlcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUoKHZhbHVlOiBEYXRlKSA9PiB7XG4gICAgICAgIHRoaXMuI3ZhbHVlID0gdmFsdWU7XG4gICAgICAgIHRoaXMuI29uVG91Y2hlZCgpO1xuICAgICAgfSk7XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIC8vIFRoaXMgaXMgbmVlZGVkIHRvIGFkZHJlc3MgYSBidWcgaW4gQW5ndWxhciA0LlxuICAgIC8vIFdoZW4gYSBjb250cm9sIHZhbHVlIGlzIHNldCBpbml0aWFsbHksIGl0cyB2YWx1ZSBpcyBub3QgcmVwcmVzZW50ZWQgb24gdGhlIHZpZXcuXG4gICAgLy8gU2VlOiBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL2lzc3Vlcy8xMzc5MlxuICAgIC8vIE9mIG5vdGUgaXMgdGhlIHBhcmVudCBjaGVjayB3aGljaCBhbGxvd3MgdXMgdG8gZGV0ZXJtaW5lIGlmIHRoZSBmb3JtIGlzIHJlYWN0aXZlLlxuICAgIC8vIFdpdGhvdXQgdGhpcyBjaGVjayB0aGVyZSBpcyBhIGNoYW5nZWQgYmVmb3JlIGNoZWNrZWQgZXJyb3JcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmICh0aGlzLiNjb250cm9sICYmIHRoaXMuI2NvbnRyb2wucGFyZW50KSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy4jY29udHJvbD8uc2V0VmFsdWUodGhpcy4jdmFsdWUsIHtcbiAgICAgICAgICBlbWl0RXZlbnQ6IGZhbHNlLFxuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlLm5leHQoKTtcbiAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdjaGFuZ2UnLCBbJyRldmVudCddKVxuICBwdWJsaWMgb25JbnB1dENoYW5nZShldmVudDogYW55KSB7XG4gICAgY29uc3QgdmFsdWUgPSBldmVudC50YXJnZXQudmFsdWU7XG5cbiAgICBpZiAodGhpcy5za3lEYXRlcGlja2VyTm9WYWxpZGF0ZSkge1xuICAgICAgdGhpcy4jb25WYWx1ZUNoYW5nZSh2YWx1ZSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gRG9uJ3QgdHJ5IHRvIHBhcnNlIHRoZSBzdHJpbmcgdmFsdWUgaW50byBhIERhdGUgdmFsdWUgaWYgaXQgaXMgbWFsZm9ybWVkLlxuICAgIGlmICh0aGlzLiNpc0RhdGVTdHJpbmdWYWxpZCh2YWx1ZSkpIHtcbiAgICAgIHRoaXMuI29uVmFsdWVDaGFuZ2UodmFsdWUpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuI192YWx1ZSA9IHZhbHVlO1xuICAgIHRoaXMuI29uQ2hhbmdlKHZhbHVlKTtcblxuICAgIHRoaXMuI2NvbnRyb2w/LnNldEVycm9ycyh7XG4gICAgICBza3lEYXRlOiB7XG4gICAgICAgIGludmFsaWQ6IHZhbHVlLFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2JsdXInKVxuICBwdWJsaWMgb25JbnB1dEJsdXIoKTogdm9pZCB7XG4gICAgdGhpcy4jb25Ub3VjaGVkKCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdpbnB1dCcpXG4gIHB1YmxpYyBvbklucHV0KCk6IHZvaWQge1xuICAgIHRoaXMuI2NvbnRyb2w/Lm1hcmtBc0RpcnR5KCk7XG4gIH1cblxuICBwdWJsaWMgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgdGhpcy4jdXBkYXRlVmFsdWUodmFsdWUsIGZhbHNlKTtcbiAgfVxuXG4gIHB1YmxpYyB2YWxpZGF0ZShjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XG4gICAgaWYgKCF0aGlzLiNjb250cm9sKSB7XG4gICAgICB0aGlzLiNjb250cm9sID0gY29udHJvbDtcbiAgICAgIC8vIEFjY291bnQgZm9yIGFueSBkYXRlIGNvbnZlcnNpb24gdGhhdCBtYXkgaGF2ZSBvY2N1cnJlZCBwcmlvciB0byB2YWxpZGF0aW9uLlxuICAgICAgaWYgKHRoaXMuI2NvbnRyb2wudmFsdWUgIT09IHRoaXMuI3ZhbHVlKSB7XG4gICAgICAgIHRoaXMuI2NvbnRyb2wucGF0Y2hWYWx1ZSh0aGlzLiN2YWx1ZSwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0aGlzLnNreURhdGVwaWNrZXJOb1ZhbGlkYXRlKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCB2YWx1ZTogdW5rbm93biA9IGNvbnRyb2wudmFsdWU7XG5cbiAgICBpZiAoIXZhbHVlKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgICBjb25zdCBpc0RhdGVWYWxpZCA9IHRoaXMuI2RhdGVGb3JtYXR0ZXIuZGF0ZUlzVmFsaWQodmFsdWUpO1xuXG4gICAgICBpZiAoIWlzRGF0ZVZhbGlkKSB7XG4gICAgICAgIC8vIE1hcmsgdGhlIGludmFsaWQgY29udHJvbCBhcyB0b3VjaGVkIHNvIHRoYXQgdGhlIGlucHV0J3MgaW52YWxpZCBDU1Mgc3R5bGVzIGFwcGVhci5cbiAgICAgICAgLy8gKFRoaXMgaXMgb25seSByZXF1aXJlZCB3aGVuIHRoZSBpbnZhbGlkIHZhbHVlIGlzIHNldCBieSB0aGUgRm9ybUNvbnRyb2wgY29uc3RydWN0b3IuKVxuICAgICAgICB0aGlzLiNjb250cm9sLm1hcmtBc1RvdWNoZWQoKTtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHNreURhdGU6IHtcbiAgICAgICAgICAgIGludmFsaWQ6IHZhbHVlLFxuICAgICAgICAgIH0sXG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IG1pbkRhdGUgPSB0aGlzLm1pbkRhdGU7XG5cbiAgICAgIGlmIChcbiAgICAgICAgbWluRGF0ZSAmJlxuICAgICAgICB0aGlzLiNkYXRlRm9ybWF0dGVyLmRhdGVJc1ZhbGlkKG1pbkRhdGUpICYmXG4gICAgICAgIHZhbHVlIDwgbWluRGF0ZVxuICAgICAgKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgc2t5RGF0ZToge1xuICAgICAgICAgICAgbWluRGF0ZSxcbiAgICAgICAgICAgIG1pbkRhdGVGb3JtYXR0ZWQ6IHRoaXMuI2RhdGVGb3JtYXR0ZXIuZm9ybWF0KFxuICAgICAgICAgICAgICBtaW5EYXRlLFxuICAgICAgICAgICAgICB0aGlzLmRhdGVGb3JtYXQsXG4gICAgICAgICAgICApLFxuICAgICAgICAgIH0sXG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IG1heERhdGUgPSB0aGlzLm1heERhdGU7XG5cbiAgICAgIGlmIChcbiAgICAgICAgbWF4RGF0ZSAmJlxuICAgICAgICB0aGlzLiNkYXRlRm9ybWF0dGVyLmRhdGVJc1ZhbGlkKG1heERhdGUpICYmXG4gICAgICAgIHZhbHVlID4gbWF4RGF0ZVxuICAgICAgKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgc2t5RGF0ZToge1xuICAgICAgICAgICAgbWF4RGF0ZSxcbiAgICAgICAgICAgIG1heERhdGVGb3JtYXR0ZWQ6IHRoaXMuI2RhdGVGb3JtYXR0ZXIuZm9ybWF0KFxuICAgICAgICAgICAgICBtYXhEYXRlLFxuICAgICAgICAgICAgICB0aGlzLmRhdGVGb3JtYXQsXG4gICAgICAgICAgICApLFxuICAgICAgICAgIH0sXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIE1hcmsgdGhlIGludmFsaWQgY29udHJvbCBhcyB0b3VjaGVkIHNvIHRoYXQgdGhlIGlucHV0J3MgaW52YWxpZCBDU1Mgc3R5bGVzIGFwcGVhci5cbiAgICAgIC8vIChUaGlzIGlzIG9ubHkgcmVxdWlyZWQgd2hlbiB0aGUgaW52YWxpZCB2YWx1ZSBpcyBzZXQgYnkgdGhlIEZvcm1Db250cm9sIGNvbnN0cnVjdG9yLilcbiAgICAgIHRoaXMuI2NvbnRyb2wubWFya0FzVG91Y2hlZCgpO1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBza3lEYXRlOiB7XG4gICAgICAgICAgaW52YWxpZDogdmFsdWUsXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKGZuOiAodmFsdWU6IGFueSkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMuI29uQ2hhbmdlID0gZm47XG4gIH1cblxuICBwdWJsaWMgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLiNvblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIHB1YmxpYyByZWdpc3Rlck9uVmFsaWRhdG9yQ2hhbmdlKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy4jb25WYWxpZGF0b3JDaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHB1YmxpYyBzZXREaXNhYmxlZFN0YXRlKGRpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5kaXNhYmxlZCA9IGRpc2FibGVkO1xuICAgIHRoaXMuI2RhdGVwaWNrZXJDb21wb25lbnQuZGlzYWJsZWQgPSBkaXNhYmxlZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXRlY3RzIGNoYW5nZXMgdG8gdGhlIHVuZGVybHlpbmcgaW5wdXQgZWxlbWVudCdzIHZhbHVlIGFuZCB1cGRhdGVzIHRoZSBuZ01vZGVsIGFjY29yZGluZ2x5LlxuICAgKiBUaGlzIGlzIHVzZWZ1bCBpZiB5b3UgbmVlZCB0byB1cGRhdGUgdGhlIG5nTW9kZWwgdmFsdWUgYmVmb3JlIHRoZSBpbnB1dCBlbGVtZW50IGxvc2VzIGZvY3VzLlxuICAgKi9cbiAgcHVibGljIGRldGVjdElucHV0VmFsdWVDaGFuZ2UoKTogdm9pZCB7XG4gICAgdGhpcy4jb25WYWx1ZUNoYW5nZSh0aGlzLiNlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQudmFsdWUpO1xuICB9XG5cbiAgI2FwcGx5RGF0ZUZvcm1hdCgpOiB2b2lkIHtcbiAgICB0aGlzLiNkYXRlcGlja2VyQ29tcG9uZW50LmRhdGVGb3JtYXQgPSB0aGlzLmRhdGVGb3JtYXQ7XG4gICAgaWYgKHRoaXMuI3ZhbHVlKSB7XG4gICAgICBjb25zdCBmb3JtYXR0ZWREYXRlID0gdGhpcy4jZGF0ZUZvcm1hdHRlci5mb3JtYXQoXG4gICAgICAgIHRoaXMuI3ZhbHVlLFxuICAgICAgICB0aGlzLmRhdGVGb3JtYXQsXG4gICAgICApO1xuICAgICAgdGhpcy4jc2V0SW5wdXRFbGVtZW50VmFsdWUoZm9ybWF0dGVkRGF0ZSk7XG4gICAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG4gIH1cblxuICAjb25WYWx1ZUNoYW5nZShuZXdWYWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy4jdmFsdWUgPSBuZXdWYWx1ZTtcbiAgfVxuXG4gICNzZXRJbnB1dEVsZW1lbnRWYWx1ZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy4jcmVuZGVyZXIuc2V0UHJvcGVydHkodGhpcy4jZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAndmFsdWUnLCB2YWx1ZSk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgZGF0ZSB2YWx1ZSBmcm9tIGEgdmFsdWUgLSBpZiBwb3NzaWJsZS5cbiAgICogV2lsbCBub3QgY29udmVydCB1bmNvbnZlcnRpYmxlIGRhdGVzIG9yIG51bWJlcnMgb3V0c2lkZSBvZiB0aGUgY3VycmVudCBtb250aCdzIG51bWJlciBvZiBkYXlzLlxuICAgKiBSZXR1cm5zIGB1bmRlZmluZWRgIGlmIHRoZSB2YWx1ZSBjYW4gbm90IGJlIGNvbnZlcnRlZC5cbiAgICovXG4gICNnZXREYXRlVmFsdWUodmFsdWU6IHVua25vd24pOiBEYXRlIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgICByZXR1cm4gdmFsdWU7XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICByZXR1cm4gdGhpcy4jZ2V0U2hvcnRjdXRPckRhdGVWYWx1ZSh2YWx1ZSk7XG4gICAgfVxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICAvKipcbiAgICogQ29udmVydHMgYSBzdHJpbmcgdG8gYSBkYXRlIG9iamVjdCBpZiB0aGUgc3RyaW5nIGlzIGEgdmFsaWQgZGF0ZSBzdHJpbmcuXG4gICAqIEl0IHdpbGwgYWxzbyBjb252ZXJ0IG51bWVyaWMgaW5wdXQgdG8gYSBkYXRlIGlmIHRoYXQgbnVtYmVyIGlzIHdpdGhpbiB0aGUgY3VycmVudCBtb250aCdzIG51bWJlciBvZiBkYXlzLlxuICAgKiBJZiB0aGUgc3RyaW5nIGNhbiBub3QgYmUgY29udmVydGVkLCBgdW5kZWZpbmVkYCBiZSByZXR1cm5lZC5cbiAgICovXG4gICNnZXRTaG9ydGN1dE9yRGF0ZVZhbHVlKHZhbHVlOiBzdHJpbmcpOiBEYXRlIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBudW0gPSBOdW1iZXIodmFsdWUpO1xuICAgIGlmIChOdW1iZXIuaXNJbnRlZ2VyKG51bSkpIHtcbiAgICAgIC8vIFdlIHJlcXVpcmUgOCBkaWdpdHMgaW4gb3JkZXIgdG8ga25vdyB0aGF0IHdlIGhhdmUgYWxsIGluZm9ybWF0aW9uIG5lZWRlZCB0byBkZXRlcm1pbmUgd2hhdCBwYXJ0IG9mIHRoZSBudW1iZXIgaXMgdGhlIG1vbnRoICgyKSwgZGF5ICgyKSwgYW5kIHllYXIgKDQpLlxuICAgICAgaWYgKHZhbHVlLmxlbmd0aCA9PT0gOCkge1xuICAgICAgICBjb25zdCByZWdleCA9IG5ldyBSZWdFeHAoL1xcYihNTSlcXGJ8XFxiKEREKVxcYnxcXGIoWVkpXFxifFxcYihZWVlZKVxcYi8sICdnJyk7XG4gICAgICAgIGNvbnN0IGZvcm1hdFRva2Vuc09ubHkgPSB0aGlzLmRhdGVGb3JtYXRcbiAgICAgICAgICA/Lm1hdGNoKHJlZ2V4KVxuICAgICAgICAgID8uam9pbignJylcbiAgICAgICAgICAucmVwbGFjZShuZXcgUmVnRXhwKC9ZKy8pLCAnWVlZWScpO1xuXG4gICAgICAgIGlmIChmb3JtYXRUb2tlbnNPbmx5ICYmIGZvcm1hdFRva2Vuc09ubHkubGVuZ3RoID09PSA4KSB7XG4gICAgICAgICAgY29uc3QgZGF0ZSA9IHRoaXMuI2RhdGVGb3JtYXR0ZXIuZ2V0RGF0ZUZyb21TdHJpbmcoXG4gICAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICAgIGZvcm1hdFRva2Vuc09ubHksXG4gICAgICAgICAgICB0cnVlLFxuICAgICAgICAgICk7XG4gICAgICAgICAgaWYgKHRoaXMuI2RhdGVGb3JtYXR0ZXIuZGF0ZUlzVmFsaWQoZGF0ZSkpIHtcbiAgICAgICAgICAgIHJldHVybiBkYXRlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgY29uc3Qgbm93ID0gbmV3IERhdGUoKTtcbiAgICAgIGNvbnN0IHNob3J0Y3V0RGF0ZSA9IG5ldyBEYXRlKG5vdy5nZXRGdWxsWWVhcigpLCBub3cuZ2V0TW9udGgoKSwgbnVtKTtcbiAgICAgIGNvbnN0IGRheXNJbk1vbnRoID0gc2hvcnRjdXREYXRlLmdldERhdGUoKTtcbiAgICAgIGlmIChudW0gPiAwICYmIG51bSA8PSBkYXlzSW5Nb250aCkge1xuICAgICAgICByZXR1cm4gc2hvcnRjdXREYXRlO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBkYXRlID0gdGhpcy4jZGF0ZUZvcm1hdHRlci5nZXREYXRlRnJvbVN0cmluZyhcbiAgICAgICAgdmFsdWUsXG4gICAgICAgIHRoaXMuZGF0ZUZvcm1hdCxcbiAgICAgICAgdGhpcy5zdHJpY3QsXG4gICAgICApO1xuICAgICAgaWYgKHRoaXMuI2RhdGVGb3JtYXR0ZXIuZGF0ZUlzVmFsaWQoZGF0ZSkpIHtcbiAgICAgICAgcmV0dXJuIGRhdGU7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICAvKipcbiAgICogVmFsaWRhdGVzIHRoZSBpbnB1dCB2YWx1ZSB0byBlbnN1cmUgaXQgaXMgZm9ybWF0dGVkIGNvcnJlY3RseS5cbiAgICovXG4gICNpc0RhdGVTdHJpbmdWYWxpZCh2YWx1ZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgaWYgKCF2YWx1ZSB8fCB0eXBlb2YgdmFsdWUgIT09ICdzdHJpbmcnKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICAvLyBEb2VzIHRoZSB2YWx1ZSBvbmx5IGluY2x1ZGUgZGlnaXRzLCBkYXNoZXMsIG9yIHNsYXNoZXM/XG4gICAgY29uc3QgcmVnZXhwID0gL15bXFxkLy1dKyQvO1xuICAgIGNvbnN0IGlzVmFsaWQgPSByZWdleHAudGVzdCh2YWx1ZSk7XG5cbiAgICBpZiAoaXNWYWxpZCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIG1vbWVudCh2YWx1ZSkuaXNWYWxpZCgpO1xuICB9XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuICAvLyBpc3RhbmJ1bCBpZ25vcmUgbmV4dFxuICAjb25DaGFuZ2UgPSAoXzogYW55KSA9PiB7fTtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuICAvLyBpc3RhbmJ1bCBpZ25vcmUgbmV4dFxuICAjb25Ub3VjaGVkID0gKCkgPT4ge307XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktZnVuY3Rpb25cbiAgLy8gaXN0YW5idWwgaWdub3JlIG5leHRcbiAgI29uVmFsaWRhdG9yQ2hhbmdlID0gKCkgPT4ge307XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSB0aGUgdmFsdWUgb2YgdGhlIGZvcm0gY29udHJvbCBhbmQgaW5wdXQgZWxlbWVudFxuICAgKiBAcGFyYW0gZW1pdEV2ZW50IERlbm90ZXMgaWYgd2UgZW1pdCBhbiBldmVudCB0byB0aGUgY29uc3VtZXIncyBmb3JtIGNvbnRyb2wuIFdlIGRvIG5vdCB3YW50IHRvIGRvIHRoaXMgaWYgdGhlIHZhbHVlIGlzIGJlaW5nIHVwZGF0ZWQgdmlhIGEgYHNldFZhbHVlYCBjYWxsIG9yIGEgYHBhdGNoVmFsdWVgIGNhbGwgYXMgdGhpcyBpcyBhbHJlYWR5IGhhbmRsZWQgYnkgQW5ndWxhci5cbiAgICogSW4gdGhlc2UgY2FzZXMgd2UgZG8gbm90IHdhbnQgdG8gZmlyZSBgb25DaGFuZ2VgIGFzIGl0IHdpbGwgY2F1c2UgZXh0cmEgYHZhbHVlQ2hhbmdlYCBhbmQgYHN0YXR1c0NoYW5nZWAgZXZlbnRzIGFuZCB0aGUgc3RhdHVzIG9mIHRoZSBmb3JtIHNob3VsZCBub3QgYmUgYWZmZWN0ZWQgYnkgdGhlc2UgY2hhbmdlcy5cbiAgICovXG4gICN1cGRhdGVWYWx1ZSh2YWx1ZTogYW55LCBlbWl0RXZlbnQgPSB0cnVlKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuI192YWx1ZSA9PT0gdmFsdWUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBpc1ZhbGlkRGF0ZVN0cmluZyA9IHRoaXMuI2lzRGF0ZVN0cmluZ1ZhbGlkKHZhbHVlKTtcblxuICAgIC8vIElmIHRoZSBzdHJpbmcgdmFsdWUgc3VwcGxpZWQgaXMgbWFsZm9ybWVkLCBkbyBub3Qgc2V0IHRoZSB2YWx1ZSB0byBpdHMgRGF0ZSBlcXVpdmFsZW50LlxuICAgIC8vIChKYXZhU2NyaXB0J3MgRGF0ZSBwYXJzZXIgd2lsbCBjb252ZXJ0IHBvb3JseSBmb3JtYXR0ZWQgZGF0ZXMgdG8gRGF0ZSBvYmplY3RzLCBzdWNoIGFzIFwiYWJjIDEyM1wiLCB3aGljaCBpc24ndCBpZGVhbC4pXG4gICAgaWYgKCFpc1ZhbGlkRGF0ZVN0cmluZykge1xuICAgICAgdGhpcy4jX3ZhbHVlID0gdmFsdWU7XG4gICAgICBpZiAoZW1pdEV2ZW50KSB7XG4gICAgICAgIHRoaXMuI29uQ2hhbmdlKHRoaXMuI192YWx1ZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLiNjb250cm9sPy5zZXRWYWx1ZSh0aGlzLiNfdmFsdWUsIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICAgIH1cblxuICAgICAgdGhpcy4jZGF0ZXBpY2tlckNvbXBvbmVudC5zZWxlY3RlZERhdGUgPSB0aGlzLiNfdmFsdWU7XG5cbiAgICAgIHRoaXMuI3NldElucHV0RWxlbWVudFZhbHVlKHZhbHVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gVGhpcyB2YWx1ZSByZXByZXNlbnRzIHRoZSBkYXRlIHZhbHVlIGZvciB0aGUgaW5wdXQgaWYgcG9zc2libGUuXG4gICAgICAvLyBUaGlzIHZhbHVlIHdpbGwgdGFrZSBpbnRvIGFjY291bnQgYWxsIHNob3J0Y3V0IGZ1bmN0aW9uYWxpdHkuXG4gICAgICBjb25zdCBkYXRlVmFsdWU6IERhdGUgfCB1bmRlZmluZWQgPSB0aGlzLiNnZXREYXRlVmFsdWUodmFsdWUpO1xuXG4gICAgICBjb25zdCBhcmVEYXRlc0VxdWFsID1cbiAgICAgICAgdGhpcy4jX3ZhbHVlIGluc3RhbmNlb2YgRGF0ZSAmJlxuICAgICAgICBkYXRlVmFsdWUgJiZcbiAgICAgICAgZGF0ZVZhbHVlLmdldFRpbWUoKSA9PT0gdGhpcy4jX3ZhbHVlLmdldFRpbWUoKTtcblxuICAgICAgaWYgKGRhdGVWYWx1ZSAhPT0gdGhpcy4jX3ZhbHVlIHx8ICFhcmVEYXRlc0VxdWFsKSB7XG4gICAgICAgIHRoaXMuI192YWx1ZSA9IGRhdGVWYWx1ZSB8fCB2YWx1ZTtcbiAgICAgICAgaWYgKGVtaXRFdmVudCkge1xuICAgICAgICAgIHRoaXMuI29uQ2hhbmdlKHRoaXMuI192YWx1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy4jY29udHJvbD8uc2V0VmFsdWUodGhpcy4jX3ZhbHVlLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLiNkYXRlcGlja2VyQ29tcG9uZW50LnNlbGVjdGVkRGF0ZSA9IHRoaXMuI192YWx1ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKGRhdGVWYWx1ZSkge1xuICAgICAgICBjb25zdCBmb3JtYXR0ZWREYXRlU3RyaW5nID0gdGhpcy4jZGF0ZUZvcm1hdHRlci5mb3JtYXQoXG4gICAgICAgICAgZGF0ZVZhbHVlLFxuICAgICAgICAgIHRoaXMuZGF0ZUZvcm1hdCxcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy4jc2V0SW5wdXRFbGVtZW50VmFsdWUoZm9ybWF0dGVkRGF0ZVN0cmluZyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLiNzZXRJbnB1dEVsZW1lbnRWYWx1ZSh2YWx1ZSB8fCAnJyk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXX0=
|
513
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci1pbnB1dC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZGF0ZXRpbWUvc3JjL2xpYi9tb2R1bGVzL2RhdGVwaWNrZXIvZGF0ZXBpY2tlci1pbnB1dC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUlMLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUdMLFFBQVEsRUFFUixVQUFVLEdBQ1gsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUdMLGFBQWEsRUFDYixpQkFBaUIsR0FHbEIsTUFBTSxnQkFBZ0IsQ0FBQztBQUd4QixPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFDNUIsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFakUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7Ozs7O0FBSXBELE1BQU0sNkJBQTZCLEdBQUc7SUFDcEMsT0FBTyxFQUFFLGlCQUFpQjtJQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLDJCQUEyQixDQUFDO0lBQzFELEtBQUssRUFBRSxJQUFJO0NBQ1osQ0FBQztBQUVGLE1BQU0sd0JBQXdCLEdBQUc7SUFDL0IsT0FBTyxFQUFFLGFBQWE7SUFDdEIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQywyQkFBMkIsQ0FBQztJQUMxRCxLQUFLLEVBQUUsSUFBSTtDQUNaLENBQUM7QUFNRixNQUFNLE9BQU8sMkJBQTJCO0lBU3RDOzs7O09BSUc7SUFDSCxJQUNXLFVBQVUsQ0FBQyxLQUF5QjtRQUM3QywwQkFBMEI7UUFDMUIsSUFBSSxLQUFLLEtBQUssSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFD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LHdCQUF3QixDQUFDOzsyRkFFekQsMkJBQTJCO2tCQUp2QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxzQkFBc0I7b0JBQ2hDLFNBQVMsRUFBRSxDQUFDLDZCQUE2QixFQUFFLHdCQUF3QixDQUFDO2lCQUNyRTs7MEJBeU1JLFFBQVE7eUNBekxBLFVBQVU7c0JBRHBCLEtBQUs7Z0JBd0JLLFFBQVE7c0JBRGxCLEtBQUs7Z0JBb0JLLE9BQU87c0JBRGpCLEtBQUs7Z0JBa0JLLE9BQU87c0JBRGpCLEtBQUs7Z0JBa0JLLFdBQVc7c0JBRHJCLEtBQUs7Z0JBa0JLLGtCQUFrQjtzQkFENUIsS0FBSztnQkFvQkMsdUJBQXVCO3NCQUQ3QixLQUFLO2dCQVVLLFdBQVc7c0JBRHJCLEtBQUs7Z0JBc0JLLE1BQU07c0JBRGhCLEtBQUs7Z0JBK0dDLGFBQWE7c0JBRG5CLFlBQVk7dUJBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQTBCM0IsV0FBVztzQkFEakIsWUFBWTt1QkFBQyxNQUFNO2dCQU1iLE9BQU87c0JBRGIsWUFBWTt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIERpcmVjdGl2ZSxcbiAgRWxlbWVudFJlZixcbiAgSG9zdExpc3RlbmVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE9wdGlvbmFsLFxuICBSZW5kZXJlcjIsXG4gIGZvcndhcmRSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQWJzdHJhY3RDb250cm9sLFxuICBDb250cm9sVmFsdWVBY2Nlc3NvcixcbiAgTkdfVkFMSURBVE9SUyxcbiAgTkdfVkFMVUVfQUNDRVNTT1IsXG4gIFZhbGlkYXRpb25FcnJvcnMsXG4gIFZhbGlkYXRvcixcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU2t5QXBwTG9jYWxlUHJvdmlkZXIgfSBmcm9tICdAc2t5dXgvaTE4bic7XG5cbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50JztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IFNreURhdGVGb3JtYXR0ZXIgfSBmcm9tICcuL2RhdGUtZm9ybWF0dGVyJztcbmltcG9ydCB7IFNreURhdGVwaWNrZXJDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi9kYXRlcGlja2VyLWNvbmZpZy5zZXJ2aWNlJztcbmltcG9ydCB7IFNreURhdGVwaWNrZXJDb21wb25lbnQgfSBmcm9tICcuL2RhdGVwaWNrZXIuY29tcG9uZW50JztcblxuY29uc3QgU0tZX0RBVEVQSUNLRVJfVkFMVUVfQUNDRVNTT1IgPSB7XG4gIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBTa3lEYXRlcGlja2VySW5wdXREaXJlY3RpdmUpLFxuICBtdWx0aTogdHJ1ZSxcbn07XG5cbmNvbnN0IFNLWV9EQVRFUElDS0VSX1ZBTElEQVRPUiA9IHtcbiAgcHJvdmlkZTogTkdfVkFMSURBVE9SUyxcbiAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gU2t5RGF0ZXBpY2tlcklucHV0RGlyZWN0aXZlKSxcbiAgbXVsdGk6IHRydWUsXG59O1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbc2t5RGF0ZXBpY2tlcklucHV0XScsXG4gIHByb3ZpZGVyczogW1NLWV9EQVRFUElDS0VSX1ZBTFVFX0FDQ0VTU09SLCBTS1lfREFURVBJQ0tFUl9WQUxJREFUT1JdLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lEYXRlcGlja2VySW5wdXREaXJlY3RpdmVcbiAgaW1wbGVtZW50c1xuICAgIE9uSW5pdCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBBZnRlckNvbnRlbnRJbml0LFxuICAgIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxuICAgIFZhbGlkYXRvclxue1xuICAvKipcbiAgICogVGhlIGRhdGUgZm9ybWF0IGZvciB0aGUgaW5wdXQuIFBsYWNlIHRoaXMgYXR0cmlidXRlIG9uIHRoZSBgaW5wdXRgIGVsZW1lbnRcbiAgICogdG8gb3ZlcnJpZGUgdGhlIGRlZmF1bHQgaW4gdGhlIGBTa3lEYXRlcGlja2VyQ29uZmlnU2VydmljZWAuXG4gICAqIEBkZWZhdWx0IFwiTU0vREQvWVlZWVwiXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGRhdGVGb3JtYXQodmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKHZhbHVlICE9PSB0aGlzLiNfZGF0ZUZvcm1hdCkge1xuICAgICAgdGhpcy4jX2RhdGVGb3JtYXQgPSB2YWx1ZTtcbiAgICAgIHRoaXMuI2FwcGx5RGF0ZUZvcm1hdCgpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFRPRE86IFJlZmFjdG9yIHRvIG5vdCBoYXZlIGdldHRlciBsb2dpY1xuICBwdWJsaWMgZ2V0IGRhdGVGb3JtYXQoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy4jX2RhdGVGb3JtYXQgfHxcbiAgICAgIHRoaXMuI2NvbmZpZ1NlcnZpY2UuZGF0ZUZvcm1hdCB8fFxuICAgICAgdGhpcy4jcHJlZmVycmVkU2hvcnREYXRlRm9ybWF0XG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGRpc2FibGUgdGhlIGRhdGVwaWNrZXIgb24gdGVtcGxhdGUtZHJpdmVuIGZvcm1zLiBEb24ndCB1c2UgdGhpcyBpbnB1dCBvbiByZWFjdGl2ZSBmb3JtcyBiZWNhdXNlIHRoZXkgbWF5IG92ZXJ3cml0ZSB0aGUgaW5wdXQgb3IgbGVhdmUgdGhlIGNvbnRyb2wgb3V0IG9mIHN5bmMuXG4gICAqIFRvIHNldCB0aGUgZGlzYWJsZWQgc3RhdGUgb24gcmVhY3RpdmUgZm9ybXMsIHVzZSB0aGUgYEZvcm1Db250cm9sYCBpbnN0ZWFkLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBkaXNhYmxlZCh2YWx1ZTogYm9vbGVhbiB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuI19kaXNhYmxlZCA9IHZhbHVlIHx8IGZhbHNlO1xuICAgIHRoaXMuI2RhdGVwaWNrZXJDb21wb25lbnQuZGlzYWJsZWQgPSB2YWx1ZTtcbiAgICB0aGlzLiNyZW5kZXJlci5zZXRQcm9wZXJ0eShcbiAgICAgIHRoaXMuI2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICdkaXNhYmxlZCcsXG4gICAgICB2YWx1ZSxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy4jX2Rpc2FibGVkO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBsYXRlc3QgZGF0ZSB0aGF0IGlzIGF2YWlsYWJsZSBpbiB0aGUgY2FsZW5kYXIuIFBsYWNlIHRoaXMgYXR0cmlidXRlIG9uXG4gICAqIHRoZSBgaW5wdXRgIGVsZW1lbnQgdG8gb3ZlcnJpZGUgdGhlIGRlZmF1bHQgaW4gYFNreURhdGVwaWNrZXJDb25maWdTZXJ2aWNlYC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgbWF4RGF0ZSh2YWx1ZTogRGF0ZSB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuI19tYXhEYXRlID0gdmFsdWU7XG4gICAgdGhpcy4jZGF0ZXBpY2tlckNvbXBvbmVudC5tYXhEYXRlID0gdGhpcy5tYXhEYXRlO1xuXG4gICAgdGhpcy4jb25WYWxpZGF0b3JDaGFuZ2UoKTtcbiAgfVxuXG4gIC8vIFRPRE86IFJlZmFjdG9yIHRvIG5vdCBoYXZlIGdldHRlciBsb2dpY1xuICBwdWJsaWMgZ2V0IG1heERhdGUoKTogRGF0ZSB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuI19tYXhEYXRlIHx8IHRoaXMuI2NvbmZpZ1NlcnZpY2UubWF4RGF0ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgZWFybGllc3QgZGF0ZSB0aGF0IGlzIGF2YWlsYWJsZSBpbiB0aGUgY2FsZW5kYXIuIFBsYWNlIHRoaXMgYXR0cmlidXRlIG9uXG4gICAqIHRoZSBgaW5wdXRgIGVsZW1lbnQgdG8gb3ZlcnJpZGUgdGhlIGRlZmF1bHQgaW4gYFNreURhdGVwaWNrZXJDb25maWdTZXJ2aWNlYC4gVG8gYXZvaWQgdmFsaWRhdGlvbiBlcnJvcnMsIHRoZSB0aW1lIGFzc29jaWF0ZWQgd2l0aCB0aGUgbWluaW11bSBkYXRlIG11c3QgYmUgbWlkbmlnaHQuIFRoaXMgaXMgbmVjZXNzYXJ5IGJlY2F1c2UgdGhlIGRhdGVwaWNrZXIgYXV0b21hdGljYWxseSBzZXRzIHRoZSB0aW1lIG9uIHRoZSBgRGF0ZWAgb2JqZWN0IGZvciBzZWxlY3RlZCBkYXRlcyB0byBtaWRuaWdodCBpbiB0aGUgY3VycmVudCB1c2VyJ3MgdGltZSB6b25lLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBtaW5EYXRlKHZhbHVlOiBEYXRlIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy4jX21pbkRhdGUgPSB2YWx1ZTtcbiAgICB0aGlzLiNkYXRlcGlja2VyQ29tcG9uZW50Lm1pbkRhdGUgPSB0aGlzLm1pbkRhdGU7XG5cbiAgICB0aGlzLiNvblZhbGlkYXRvckNoYW5nZSgpO1xuICB9XG5cbiAgLy8gVE9ETzogUmVmYWN0b3IgdG8gbm90IGhhdmUgZ2V0dGVyIGxvZ2ljXG4gIHB1YmxpYyBnZXQgbWluRGF0ZSgpOiBEYXRlIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy4jX21pbkRhdGUgfHwgdGhpcy4jY29uZmlnU2VydmljZS5taW5EYXRlO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBkYXRlIHRvIG9wZW4gdGhlIGNhbGVuZGFyIHRvIGluaXRpYWxseS4gUGxhY2UgdGhpcyBhdHRyaWJ1dGUgb24gdGhlIGBpbnB1dGAgZWxlbWVudCB0byBvdmVycmlkZSB0aGUgZGVmYXVsdCBpbiBgU2t5RGF0ZXBpY2tlckNvbmZpZ1NlcnZpY2VgLlxuICAgKiBAZGVmYXVsdCBUaGUgY3VycmVudCBkYXRlXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHN0YXJ0QXREYXRlKHZhbHVlOiBEYXRlIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy4jX3N0YXJ0QXREYXRlID0gdmFsdWU7XG4gICAgdGhpcy4jZGF0ZXBpY2tlckNvbXBvbmVudC5zdGFydEF0RGF0ZSA9IHRoaXMuc3RhcnRBdERhdGU7XG4gIH1cblxuICAvLyBUT0RPOiBSZWZhY3RvciB0byBub3QgaGF2ZSBnZXR0ZXIgbG9naWNcbiAgcHVibGljIGdldCBzdGFydEF0RGF0ZSgpOiBEYXRlIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy4jX3N0YXJ0QXREYXRlIHx8IHRoaXMuI2NvbmZpZ1NlcnZpY2Uuc3RhcnRBdERhdGU7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyB0aGUgZGF0ZXBpY2tlciBpbnB1dCBhbmQgY2FsZW5kYXIuIFBsYWNlIHRoaXMgZGlyZWN0aXZlIG9uIGFuIGBpbnB1dGAgZWxlbWVudCxcbiAgICogYW5kIHdyYXAgdGhlIGlucHV0IGluIGEgYHNreS1kYXRlcGlja2VyYCBjb21wb25lbnQuIFRoZSB2YWx1ZSB0aGF0IHVzZXJzIHNlbGVjdCBpcyBkcml2ZW5cbiAgICogdGhyb3VnaCB0aGUgYG5nTW9kZWxgIGF0dHJpYnV0ZSBzcGVjaWZpZWQgb24gdGhlIGBpbnB1dGAgZWxlbWVudC5cbiAgICogQHJlcXVpcmVkXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHNreURhdGVwaWNrZXJJbnB1dChcbiAgICB2YWx1ZTogU2t5RGF0ZXBpY2tlckNvbXBvbmVudCB8IHVuZGVmaW5lZCB8ICcnLFxuICApIHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgJ1tEZXByZWNhdGlvbiB3YXJuaW5nXSBZb3Ugbm8gbG9uZ2VyIG5lZWQgdG8gcHJvdmlkZSBhIHRlbXBsYXRlIHJlZmVyZW5jZSB2YXJpYWJsZSAnICtcbiAgICAgICAgICAndG8gdGhlIGBza3lEYXRlcGlja2VySW5wdXRgIGF0dHJpYnV0ZSAodGhpcyB3aWxsIGJlIGEgYnJlYWtpbmcgY2hhbmdlIGluIHRoZSBuZXh0ICcgK1xuICAgICAgICAgICdtYWpvciB2ZXJzaW9uIHJlbGVhc2UpLlxcbicgK1xuICAgICAgICAgICdEbyB0aGlzIGluc3RlYWQ6XFxuJyArXG4gICAgICAgICAgJzxza3ktZGF0ZXBpY2tlcj5cXG4gIDxpbnB1dCBza3lEYXRlcGlja2VySW5wdXQgLz5cXG48L3NreS1kYXRlcGlja2VyPicsXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGRpc2FibGUgZGF0ZSB2YWxpZGF0aW9uIG9uIHRoZSBkYXRlcGlja2VyIGlucHV0LlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNreURhdGVwaWNrZXJOb1ZhbGlkYXRlOiBib29sZWFuIHwgdW5kZWZpbmVkID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFRoZSBzdGFydGluZyBkYXkgb2YgdGhlIHdlZWsgaW4gdGhlIGNhbGVuZGFyLCB3aGVyZSBgMGAgc2V0cyB0aGUgc3RhcnRpbmcgZGF5XG4gICAqIHRvIFN1bmRheS4gUGxhY2UgdGhpcyBhdHRyaWJ1dGUgb24gdGhlIGBpbnB1dGAgZWxlbWVudCB0byBvdmVycmlkZSB0aGUgZGVmYXVsdFxuICAgKiBpbiBgU2t5RGF0ZXBpY2tlckNvbmZpZ1NlcnZpY2VgLlxuICAgKiBAZGVmYXVsdCAwXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHN0YXJ0aW5nRGF5KHZhbHVlOiBudW1iZXIgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLiNfc3RhcnRpbmdEYXkgPSB2YWx1ZTtcbiAgICB0aGlzLiNkYXRlcGlja2VyQ29tcG9uZW50LnN0YXJ0aW5nRGF5ID0gdGhpcy5zdGFydGluZ0RheTtcblxuICAgIHRoaXMuI29uVmFsaWRhdG9yQ2hhbmdlKCk7XG4gIH1cblxuICAvLyBUT0RPOiBSZWZhY3RvciB0byBub3QgaGF2ZSBnZXR0ZXIgbG9naWNcbiAgcHVibGljIGdldCBzdGFydGluZ0RheSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLiNfc3RhcnRpbmdEYXkgfHwgdGhpcy4jY29uZmlnU2VydmljZS5zdGFydGluZ0RheTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBmb3JtYXQgb2YgdGhlIGRhdGUgdmFsdWUgbXVzdCBtYXRjaCB0aGUgZm9ybWF0IGZyb20gdGhlIGBkYXRlRm9ybWF0YCB2YWx1ZS5cbiAgICogSWYgdGhpcyBwcm9wZXJ0eSBpcyBgdHJ1ZWAgYW5kIHRoZSBkYXRlcGlja2VyIGlucHV0IGRpcmVjdGl2ZSBjYW5ub3QgZmluZCBhbiBleGFjdCBtYXRjaCwgdGhlblxuICAgKiB0aGUgaW5wdXQgaXMgbWFya2VkIGFzIGludmFsaWQuXG4gICAqIElmIHRoaXMgcHJvcGVydHkgaXMgYGZhbHNlYCBhbmQgdGhlIGRhdGVwaWNrZXIgaW5wdXQgZGlyZWN0aXZlIGNhbm5vdCBmaW5kIGFuIGV4YWN0IG1hdGNoLCB0aGVuXG4gICAqIGl0IGF0dGVtcHRzIHRvIGZvcm1hdCB0aGUgc3RyaW5nIGJhc2VkIG9uIHRoZSBbSVNPIDg2MDEgc3RhbmRhcmQgZm9ybWF0XShodHRwczovL3d3dy5pc28ub3JnL2lzby04NjAxLWRhdGUtYW5kLXRpbWUtZm9ybWF0Lmh0bWwpLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBzdHJpY3QodmFsdWU6IGJvb2xlYW4gfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLiNfc3RyaWN0ID0gdmFsdWUgfHwgZmFsc2U7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHN0cmljdCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy4jX3N0cmljdDtcbiAgfVxuXG4gIGdldCAjdmFsdWUoKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy4jX3ZhbHVlO1xuICB9XG5cbiAgc2V0ICN2YWx1ZSh2YWx1ZTogYW55KSB7XG4gICAgdGhpcy4jdXBkYXRlVmFsdWUodmFsdWUpO1xuICB9XG5cbiAgI2NvbnRyb2w6IEFic3RyYWN0Q29udHJvbCB8IHVuZGVmaW5lZDtcbiAgI2RhdGVGb3JtYXR0ZXIgPSBuZXcgU2t5RGF0ZUZvcm1hdHRlcigpO1xuICAjcHJlZmVycmVkU2hvcnREYXRlRm9ybWF0OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICNuZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAjX2RhdGVGb3JtYXQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgI19kaXNhYmxlZCA9IGZhbHNlO1xuICAjX21heERhdGU6IERhdGUgfCB1bmRlZmluZWQ7XG4gICNfbWluRGF0ZTogRGF0ZSB8IHVuZGVmaW5lZDtcbiAgI19zdGFydEF0RGF0ZTogRGF0ZSB8IHVuZGVmaW5lZDtcbiAgI19zdGFydGluZ0RheTogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAjX3N0cmljdCA9IGZhbHNlO1xuICAjX3ZhbHVlOiBhbnk7XG5cbiAgI2NoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZjtcbiAgI2NvbmZpZ1NlcnZpY2U6IFNreURhdGVwaWNrZXJDb25maWdTZXJ2aWNlO1xuICAjZWxlbWVudFJlZjogRWxlbWVudFJlZjtcbiAgI2xvY2FsZVByb3ZpZGVyOiBTa3lBcHBMb2NhbGVQcm92aWRlcjtcbiAgI3JlbmRlcmVyOiBSZW5kZXJlcjI7XG4gICNkYXRlcGlja2VyQ29tcG9uZW50OiBTa3lEYXRlcGlja2VyQ29tcG9uZW50O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBjb25maWdTZXJ2aWNlOiBTa3lEYXRlcGlja2VyQ29uZmlnU2VydmljZSxcbiAgICBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgIGxvY2FsZVByb3ZpZGVyOiBTa3lBcHBMb2NhbGVQcm92aWRlcixcbiAgICByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgIEBPcHRpb25hbCgpIGRhdGVwaWNrZXJDb21wb25lbnQ/OiBTa3lEYXRlcGlja2VyQ29tcG9uZW50LFxuICApIHtcbiAgICBpZiAoIWRhdGVwaWNrZXJDb21wb25lbnQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ1lvdSBtdXN0IHdyYXAgdGhlIGBza3lEYXRlcGlja2VySW5wdXRgIGRpcmVjdGl2ZSB3aXRoaW4gYSAnICtcbiAgICAgICAgICAnYDxza3ktZGF0ZXBpY2tlcj5gIGNvbXBvbmVudCEnLFxuICAgICAgKTtcbiAgICB9XG4gICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IgPSBjaGFuZ2VEZXRlY3RvcjtcbiAgICB0aGlzLiNjb25maWdTZXJ2aWNlID0gY29uZmlnU2VydmljZTtcbiAgICB0aGlzLiNlbGVtZW50UmVmID0gZWxlbWVudFJlZjtcbiAgICB0aGlzLiNsb2NhbGVQcm92aWRlciA9IGxvY2FsZVByb3ZpZGVyO1xuICAgIHRoaXMuI3JlbmRlcmVyID0gcmVuZGVyZXI7XG4gICAgdGhpcy4jZGF0ZXBpY2tlckNvbXBvbmVudCA9IGRhdGVwaWNrZXJDb21wb25lbnQ7XG5cbiAgICB0aGlzLiNsb2NhbGVQcm92aWRlclxuICAgICAgLmdldExvY2FsZUluZm8oKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgLnN1YnNjcmliZSgobG9jYWxlSW5mbykgPT4ge1xuICAgICAgICBTa3lEYXRlRm9ybWF0dGVyLnNldExvY2FsZShsb2NhbGVJbmZvLmxvY2FsZSk7XG4gICAgICAgIHRoaXMuI3ByZWZlcnJlZFNob3J0RGF0ZUZvcm1hdCA9XG4gICAgICAgICAgU2t5RGF0ZUZvcm1hdHRlci5nZXRQcmVmZXJyZWRTaG9ydERhdGVGb3JtYXQoKTtcbiAgICAgICAgdGhpcy4jYXBwbHlEYXRlRm9ybWF0KCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBjb25zdCBlbGVtZW50ID0gdGhpcy4jZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuXG4gICAgdGhpcy4jcmVuZGVyZXIuYWRkQ2xhc3MoZWxlbWVudCwgJ3NreS1mb3JtLWNvbnRyb2wnKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgdGhpcy4jZGF0ZXBpY2tlckNvbXBvbmVudC5kYXRlRm9ybWF0ID0gdGhpcy5kYXRlRm9ybWF0O1xuICAgIHRoaXMuI2RhdGVwaWNrZXJDb21wb25lbnQuZGF0ZUNoYW5nZVxuICAgICAgLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSlcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUoKHZhbHVlOiBEYXRlKSA9PiB7XG4gICAgICAgIHRoaXMuI3ZhbHVlID0gdmFsdWU7XG4gICAgICAgIHRoaXMuI29uVG91Y2hlZCgpO1xuICAgICAgfSk7XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIC8vIFRoaXMgaXMgbmVlZGVkIHRvIGFkZHJlc3MgYSBidWcgaW4gQW5ndWxhciA0LlxuICAgIC8vIFdoZW4gYSBjb250cm9sIHZhbHVlIGlzIHNldCBpbml0aWFsbHksIGl0cyB2YWx1ZSBpcyBub3QgcmVwcmVzZW50ZWQgb24gdGhlIHZpZXcuXG4gICAgLy8gU2VlOiBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL2lzc3Vlcy8xMzc5MlxuICAgIC8vIE9mIG5vdGUgaXMgdGhlIHBhcmVudCBjaGVjayB3aGljaCBhbGxvd3MgdXMgdG8gZGV0ZXJtaW5lIGlmIHRoZSBmb3JtIGlzIHJlYWN0aXZlLlxuICAgIC8vIFdpdGhvdXQgdGhpcyBjaGVjayB0aGVyZSBpcyBhIGNoYW5nZWQgYmVmb3JlIGNoZWNrZWQgZXJyb3JcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmICh0aGlzLiNjb250cm9sICYmIHRoaXMuI2NvbnRyb2wucGFyZW50KSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy4jY29udHJvbD8uc2V0VmFsdWUodGhpcy4jdmFsdWUsIHtcbiAgICAgICAgICBlbWl0RXZlbnQ6IGZhbHNlLFxuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlLm5leHQoKTtcbiAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdjaGFuZ2UnLCBbJyRldmVudCddKVxuICBwdWJsaWMgb25JbnB1dENoYW5nZShldmVudDogYW55KSB7XG4gICAgY29uc3QgdmFsdWUgPSBldmVudC50YXJnZXQudmFsdWU7XG5cbiAgICBpZiAodGhpcy5za3lEYXRlcGlja2VyTm9WYWxpZGF0ZSkge1xuICAgICAgdGhpcy4jb25WYWx1ZUNoYW5nZSh2YWx1ZSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gRG9uJ3QgdHJ5IHRvIHBhcnNlIHRoZSBzdHJpbmcgdmFsdWUgaW50byBhIERhdGUgdmFsdWUgaWYgaXQgaXMgbWFsZm9ybWVkLlxuICAgIGlmICh0aGlzLiNpc0RhdGVTdHJpbmdWYWxpZCh2YWx1ZSkpIHtcbiAgICAgIHRoaXMuI29uVmFsdWVDaGFuZ2UodmFsdWUpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuI192YWx1ZSA9IHZhbHVlO1xuICAgIHRoaXMuI29uQ2hhbmdlKHZhbHVlKTtcblxuICAgIHRoaXMuI2NvbnRyb2w/LnNldEVycm9ycyh7XG4gICAgICBza3lEYXRlOiB7XG4gICAgICAgIGludmFsaWQ6IHZhbHVlLFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2JsdXInKVxuICBwdWJsaWMgb25JbnB1dEJsdXIoKTogdm9pZCB7XG4gICAgdGhpcy4jb25Ub3VjaGVkKCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdpbnB1dCcpXG4gIHB1YmxpYyBvbklucHV0KCk6IHZvaWQge1xuICAgIHRoaXMuI2NvbnRyb2w/Lm1hcmtBc0RpcnR5KCk7XG4gIH1cblxuICBwdWJsaWMgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgdGhpcy4jdXBkYXRlVmFsdWUodmFsdWUsIGZhbHNlKTtcbiAgfVxuXG4gIHB1YmxpYyB2YWxpZGF0ZShjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XG4gICAgaWYgKCF0aGlzLiNjb250cm9sKSB7XG4gICAgICB0aGlzLiNjb250cm9sID0gY29udHJvbDtcbiAgICAgIC8vIEFjY291bnQgZm9yIGFueSBkYXRlIGNvbnZlcnNpb24gdGhhdCBtYXkgaGF2ZSBvY2N1cnJlZCBwcmlvciB0byB2YWxpZGF0aW9uLlxuICAgICAgaWYgKHRoaXMuI2NvbnRyb2wudmFsdWUgIT09IHRoaXMuI3ZhbHVlKSB7XG4gICAgICAgIHRoaXMuI2NvbnRyb2wucGF0Y2hWYWx1ZSh0aGlzLiN2YWx1ZSwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0aGlzLnNreURhdGVwaWNrZXJOb1ZhbGlkYXRlKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCB2YWx1ZTogdW5rbm93biA9IGNvbnRyb2wudmFsdWU7XG5cbiAgICBpZiAoIXZhbHVlKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgICBjb25zdCBpc0RhdGVWYWxpZCA9IHRoaXMuI2RhdGVGb3JtYXR0ZXIuZGF0ZUlzVmFsaWQodmFsdWUpO1xuXG4gICAgICBpZiAoIWlzRGF0ZVZhbGlkKSB7XG4gICAgICAgIC8vIE1hcmsgdGhlIGludmFsaWQgY29udHJvbCBhcyB0b3VjaGVkIHNvIHRoYXQgdGhlIGlucHV0J3MgaW52YWxpZCBDU1Mgc3R5bGVzIGFwcGVhci5cbiAgICAgICAgLy8gKFRoaXMgaXMgb25seSByZXF1aXJlZCB3aGVuIHRoZSBpbnZhbGlkIHZhbHVlIGlzIHNldCBieSB0aGUgRm9ybUNvbnRyb2wgY29uc3RydWN0b3IuKVxuICAgICAgICB0aGlzLiNjb250cm9sLm1hcmtBc1RvdWNoZWQoKTtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHNreURhdGU6IHtcbiAgICAgICAgICAgIGludmFsaWQ6IHZhbHVlLFxuICAgICAgICAgIH0sXG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IG1pbkRhdGUgPSB0aGlzLm1pbkRhdGU7XG5cbiAgICAgIGlmIChcbiAgICAgICAgbWluRGF0ZSAmJlxuICAgICAgICB0aGlzLiNkYXRlRm9ybWF0dGVyLmRhdGVJc1ZhbGlkKG1pbkRhdGUpICYmXG4gICAgICAgIHZhbHVlIDwgbWluRGF0ZVxuICAgICAgKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgc2t5RGF0ZToge1xuICAgICAgICAgICAgbWluRGF0ZSxcbiAgICAgICAgICAgIG1pbkRhdGVGb3JtYXR0ZWQ6IHRoaXMuI2RhdGVGb3JtYXR0ZXIuZm9ybWF0KFxuICAgICAgICAgICAgICBtaW5EYXRlLFxuICAgICAgICAgICAgICB0aGlzLmRhdGVGb3JtYXQsXG4gICAgICAgICAgICApLFxuICAgICAgICAgIH0sXG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IG1heERhdGUgPSB0aGlzLm1heERhdGU7XG5cbiAgICAgIGlmIChcbiAgICAgICAgbWF4RGF0ZSAmJlxuICAgICAgICB0aGlzLiNkYXRlRm9ybWF0dGVyLmRhdGVJc1ZhbGlkKG1heERhdGUpICYmXG4gICAgICAgIHZhbHVlID4gbWF4RGF0ZVxuICAgICAgKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgc2t5RGF0ZToge1xuICAgICAgICAgICAgbWF4RGF0ZSxcbiAgICAgICAgICAgIG1heERhdGVGb3JtYXR0ZWQ6IHRoaXMuI2RhdGVGb3JtYXR0ZXIuZm9ybWF0KFxuICAgICAgICAgICAgICBtYXhEYXRlLFxuICAgICAgICAgICAgICB0aGlzLmRhdGVGb3JtYXQsXG4gICAgICAgICAgICApLFxuICAgICAgICAgIH0sXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIE1hcmsgdGhlIGludmFsaWQgY29udHJvbCBhcyB0b3VjaGVkIHNvIHRoYXQgdGhlIGlucHV0J3MgaW52YWxpZCBDU1Mgc3R5bGVzIGFwcGVhci5cbiAgICAgIC8vIChUaGlzIGlzIG9ubHkgcmVxdWlyZWQgd2hlbiB0aGUgaW52YWxpZCB2YWx1ZSBpcyBzZXQgYnkgdGhlIEZvcm1Db250cm9sIGNvbnN0cnVjdG9yLilcbiAgICAgIHRoaXMuI2NvbnRyb2wubWFya0FzVG91Y2hlZCgpO1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBza3lEYXRlOiB7XG4gICAgICAgICAgaW52YWxpZDogdmFsdWUsXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKGZuOiAodmFsdWU6IGFueSkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMuI29uQ2hhbmdlID0gZm47XG4gIH1cblxuICBwdWJsaWMgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLiNvblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIHB1YmxpYyByZWdpc3Rlck9uVmFsaWRhdG9yQ2hhbmdlKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy4jb25WYWxpZGF0b3JDaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHB1YmxpYyBzZXREaXNhYmxlZFN0YXRlKGRpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5kaXNhYmxlZCA9IGRpc2FibGVkO1xuICAgIHRoaXMuI2RhdGVwaWNrZXJDb21wb25lbnQuZGlzYWJsZWQgPSBkaXNhYmxlZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXRlY3RzIGNoYW5nZXMgdG8gdGhlIHVuZGVybHlpbmcgaW5wdXQgZWxlbWVudCdzIHZhbHVlIGFuZCB1cGRhdGVzIHRoZSBuZ01vZGVsIGFjY29yZGluZ2x5LlxuICAgKiBUaGlzIGlzIHVzZWZ1bCBpZiB5b3UgbmVlZCB0byB1cGRhdGUgdGhlIG5nTW9kZWwgdmFsdWUgYmVmb3JlIHRoZSBpbnB1dCBlbGVtZW50IGxvc2VzIGZvY3VzLlxuICAgKi9cbiAgcHVibGljIGRldGVjdElucHV0VmFsdWVDaGFuZ2UoKTogdm9pZCB7XG4gICAgdGhpcy4jb25WYWx1ZUNoYW5nZSh0aGlzLiNlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQudmFsdWUpO1xuICB9XG5cbiAgI2FwcGx5RGF0ZUZvcm1hdCgpOiB2b2lkIHtcbiAgICB0aGlzLiNkYXRlcGlja2VyQ29tcG9uZW50LmRhdGVGb3JtYXQgPSB0aGlzLmRhdGVGb3JtYXQ7XG4gICAgaWYgKHRoaXMuI3ZhbHVlKSB7XG4gICAgICBjb25zdCBmb3JtYXR0ZWREYXRlID0gdGhpcy4jZGF0ZUZvcm1hdHRlci5mb3JtYXQoXG4gICAgICAgIHRoaXMuI3ZhbHVlLFxuICAgICAgICB0aGlzLmRhdGVGb3JtYXQsXG4gICAgICApO1xuICAgICAgdGhpcy4jc2V0SW5wdXRFbGVtZW50VmFsdWUoZm9ybWF0dGVkRGF0ZSk7XG4gICAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG4gIH1cblxuICAjb25WYWx1ZUNoYW5nZShuZXdWYWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy4jdmFsdWUgPSBuZXdWYWx1ZTtcbiAgfVxuXG4gICNzZXRJbnB1dEVsZW1lbnRWYWx1ZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy4jcmVuZGVyZXIuc2V0UHJvcGVydHkodGhpcy4jZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAndmFsdWUnLCB2YWx1ZSk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgZGF0ZSB2YWx1ZSBmcm9tIGEgdmFsdWUgLSBpZiBwb3NzaWJsZS5cbiAgICogV2lsbCBub3QgY29udmVydCB1bmNvbnZlcnRpYmxlIGRhdGVzIG9yIG51bWJlcnMgb3V0c2lkZSBvZiB0aGUgY3VycmVudCBtb250aCdzIG51bWJlciBvZiBkYXlzLlxuICAgKiBSZXR1cm5zIGB1bmRlZmluZWRgIGlmIHRoZSB2YWx1ZSBjYW4gbm90IGJlIGNvbnZlcnRlZC5cbiAgICovXG4gICNnZXREYXRlVmFsdWUodmFsdWU6IHVua25vd24pOiBEYXRlIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgICByZXR1cm4gdmFsdWU7XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICByZXR1cm4gdGhpcy4jZ2V0U2hvcnRjdXRPckRhdGVWYWx1ZSh2YWx1ZSk7XG4gICAgfVxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICAvKipcbiAgICogQ29udmVydHMgYSBzdHJpbmcgdG8gYSBkYXRlIG9iamVjdCBpZiB0aGUgc3RyaW5nIGlzIGEgdmFsaWQgZGF0ZSBzdHJpbmcuXG4gICAqIEl0IHdpbGwgYWxzbyBjb252ZXJ0IG51bWVyaWMgaW5wdXQgdG8gYSBkYXRlIGlmIHRoYXQgbnVtYmVyIGlzIHdpdGhpbiB0aGUgY3VycmVudCBtb250aCdzIG51bWJlciBvZiBkYXlzLlxuICAgKiBJZiB0aGUgc3RyaW5nIGNhbiBub3QgYmUgY29udmVydGVkLCBgdW5kZWZpbmVkYCBiZSByZXR1cm5lZC5cbiAgICovXG4gICNnZXRTaG9ydGN1dE9yRGF0ZVZhbHVlKHZhbHVlOiBzdHJpbmcpOiBEYXRlIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBudW0gPSBOdW1iZXIodmFsdWUpO1xuICAgIGlmIChOdW1iZXIuaXNJbnRlZ2VyKG51bSkpIHtcbiAgICAgIC8vIFdlIHJlcXVpcmUgOCBkaWdpdHMgaW4gb3JkZXIgdG8ga25vdyB0aGF0IHdlIGhhdmUgYWxsIGluZm9ybWF0aW9uIG5lZWRlZCB0byBkZXRlcm1pbmUgd2hhdCBwYXJ0IG9mIHRoZSBudW1iZXIgaXMgdGhlIG1vbnRoICgyKSwgZGF5ICgyKSwgYW5kIHllYXIgKDQpLlxuICAgICAgaWYgKHZhbHVlLmxlbmd0aCA9PT0gOCkge1xuICAgICAgICBjb25zdCByZWdleCA9IG5ldyBSZWdFeHAoL1xcYihNTSlcXGJ8XFxiKEREKVxcYnxcXGIoWVkpXFxifFxcYihZWVlZKVxcYi8sICdnJyk7XG4gICAgICAgIGNvbnN0IGZvcm1hdFRva2Vuc09ubHkgPSB0aGlzLmRhdGVGb3JtYXRcbiAgICAgICAgICA/Lm1hdGNoKHJlZ2V4KVxuICAgICAgICAgID8uam9pbignJylcbiAgICAgICAgICAucmVwbGFjZShuZXcgUmVnRXhwKC9ZKy8pLCAnWVlZWScpO1xuXG4gICAgICAgIGlmIChmb3JtYXRUb2tlbnNPbmx5ICYmIGZvcm1hdFRva2Vuc09ubHkubGVuZ3RoID09PSA4KSB7XG4gICAgICAgICAgY29uc3QgZGF0ZSA9IHRoaXMuI2RhdGVGb3JtYXR0ZXIuZ2V0RGF0ZUZyb21TdHJpbmcoXG4gICAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICAgIGZvcm1hdFRva2Vuc09ubHksXG4gICAgICAgICAgICB0cnVlLFxuICAgICAgICAgICk7XG4gICAgICAgICAgaWYgKHRoaXMuI2RhdGVGb3JtYXR0ZXIuZGF0ZUlzVmFsaWQoZGF0ZSkpIHtcbiAgICAgICAgICAgIHJldHVybiBkYXRlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgY29uc3Qgbm93ID0gbmV3IERhdGUoKTtcbiAgICAgIGNvbnN0IHNob3J0Y3V0RGF0ZSA9IG5ldyBEYXRlKG5vdy5nZXRGdWxsWWVhcigpLCBub3cuZ2V0TW9udGgoKSwgbnVtKTtcbiAgICAgIGNvbnN0IGRheXNJbk1vbnRoID0gc2hvcnRjdXREYXRlLmdldERhdGUoKTtcbiAgICAgIGlmIChudW0gPiAwICYmIG51bSA8PSBkYXlzSW5Nb250aCkge1xuICAgICAgICByZXR1cm4gc2hvcnRjdXREYXRlO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBkYXRlID0gdGhpcy4jZGF0ZUZvcm1hdHRlci5nZXREYXRlRnJvbVN0cmluZyhcbiAgICAgICAgdmFsdWUsXG4gICAgICAgIHRoaXMuZGF0ZUZvcm1hdCxcbiAgICAgICAgdGhpcy5zdHJpY3QsXG4gICAgICApO1xuICAgICAgaWYgKHRoaXMuI2RhdGVGb3JtYXR0ZXIuZGF0ZUlzVmFsaWQoZGF0ZSkpIHtcbiAgICAgICAgcmV0dXJuIGRhdGU7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICAvKipcbiAgICogVmFsaWRhdGVzIHRoZSBpbnB1dCB2YWx1ZSB0byBlbnN1cmUgaXQgaXMgZm9ybWF0dGVkIGNvcnJlY3RseS5cbiAgICovXG4gICNpc0RhdGVTdHJpbmdWYWxpZCh2YWx1ZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgaWYgKCF2YWx1ZSB8fCB0eXBlb2YgdmFsdWUgIT09ICdzdHJpbmcnKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICAvLyBEb2VzIHRoZSB2YWx1ZSBvbmx5IGluY2x1ZGUgZGlnaXRzLCBkYXNoZXMsIG9yIHNsYXNoZXM/XG4gICAgY29uc3QgcmVnZXhwID0gL15bXFxkLy1dKyQvO1xuICAgIGNvbnN0IGlzVmFsaWQgPSByZWdleHAudGVzdCh2YWx1ZSk7XG5cbiAgICBpZiAoaXNWYWxpZCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIG1vbWVudCh2YWx1ZSkuaXNWYWxpZCgpO1xuICB9XG5cbiAgLy8gaXN0YW5idWwgaWdub3JlIG5leHRcbiAgI29uQ2hhbmdlID0gKF86IGFueSkgPT4ge307XG5cbiAgLy8gaXN0YW5idWwgaWdub3JlIG5leHRcbiAgI29uVG91Y2hlZCA9ICgpID0+IHt9O1xuXG4gIC8vIGlzdGFuYnVsIGlnbm9yZSBuZXh0XG4gICNvblZhbGlkYXRvckNoYW5nZSA9ICgpID0+IHt9O1xuXG4gIC8qKlxuICAgKiBVcGRhdGUgdGhlIHZhbHVlIG9mIHRoZSBmb3JtIGNvbnRyb2wgYW5kIGlucHV0IGVsZW1lbnRcbiAgICogQHBhcmFtIGVtaXRFdmVudCBEZW5vdGVzIGlmIHdlIGVtaXQgYW4gZXZlbnQgdG8gdGhlIGNvbnN1bWVyJ3MgZm9ybSBjb250cm9sLiBXZSBkbyBub3Qgd2FudCB0byBkbyB0aGlzIGlmIHRoZSB2YWx1ZSBpcyBiZWluZyB1cGRhdGVkIHZpYSBhIGBzZXRWYWx1ZWAgY2FsbCBvciBhIGBwYXRjaFZhbHVlYCBjYWxsIGFzIHRoaXMgaXMgYWxyZWFkeSBoYW5kbGVkIGJ5IEFuZ3VsYXIuXG4gICAqIEluIHRoZXNlIGNhc2VzIHdlIGRvIG5vdCB3YW50IHRvIGZpcmUgYG9uQ2hhbmdlYCBhcyBpdCB3aWxsIGNhdXNlIGV4dHJhIGB2YWx1ZUNoYW5nZWAgYW5kIGBzdGF0dXNDaGFuZ2VgIGV2ZW50cyBhbmQgdGhlIHN0YXR1cyBvZiB0aGUgZm9ybSBzaG91bGQgbm90IGJlIGFmZmVjdGVkIGJ5IHRoZXNlIGNoYW5nZXMuXG4gICAqL1xuICAjdXBkYXRlVmFsdWUodmFsdWU6IGFueSwgZW1pdEV2ZW50ID0gdHJ1ZSk6IHZvaWQge1xuICAgIGlmICh0aGlzLiNfdmFsdWUgPT09IHZhbHVlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgaXNWYWxpZERhdGVTdHJpbmcgPSB0aGlzLiNpc0RhdGVTdHJpbmdWYWxpZCh2YWx1ZSk7XG5cbiAgICAvLyBJZiB0aGUgc3RyaW5nIHZhbHVlIHN1cHBsaWVkIGlzIG1hbGZvcm1lZCwgZG8gbm90IHNldCB0aGUgdmFsdWUgdG8gaXRzIERhdGUgZXF1aXZhbGVudC5cbiAgICAvLyAoSmF2YVNjcmlwdCdzIERhdGUgcGFyc2VyIHdpbGwgY29udmVydCBwb29ybHkgZm9ybWF0dGVkIGRhdGVzIHRvIERhdGUgb2JqZWN0cywgc3VjaCBhcyBcImFiYyAxMjNcIiwgd2hpY2ggaXNuJ3QgaWRlYWwuKVxuICAgIGlmICghaXNWYWxpZERhdGVTdHJpbmcpIHtcbiAgICAgIHRoaXMuI192YWx1ZSA9IHZhbHVlO1xuICAgICAgaWYgKGVtaXRFdmVudCkge1xuICAgICAgICB0aGlzLiNvbkNoYW5nZSh0aGlzLiNfdmFsdWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy4jY29udHJvbD8uc2V0VmFsdWUodGhpcy4jX3ZhbHVlLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuI2RhdGVwaWNrZXJDb21wb25lbnQuc2VsZWN0ZWREYXRlID0gdGhpcy4jX3ZhbHVlO1xuXG4gICAgICB0aGlzLiNzZXRJbnB1dEVsZW1lbnRWYWx1ZSh2YWx1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFRoaXMgdmFsdWUgcmVwcmVzZW50cyB0aGUgZGF0ZSB2YWx1ZSBmb3IgdGhlIGlucHV0IGlmIHBvc3NpYmxlLlxuICAgICAgLy8gVGhpcyB2YWx1ZSB3aWxsIHRha2UgaW50byBhY2NvdW50IGFsbCBzaG9ydGN1dCBmdW5jdGlvbmFsaXR5LlxuICAgICAgY29uc3QgZGF0ZVZhbHVlOiBEYXRlIHwgdW5kZWZpbmVkID0gdGhpcy4jZ2V0RGF0ZVZhbHVlKHZhbHVlKTtcblxuICAgICAgY29uc3QgYXJlRGF0ZXNFcXVhbCA9XG4gICAgICAgIHRoaXMuI192YWx1ZSBpbnN0YW5jZW9mIERhdGUgJiZcbiAgICAgICAgZGF0ZVZhbHVlICYmXG4gICAgICAgIGRhdGVWYWx1ZS5nZXRUaW1lKCkgPT09IHRoaXMuI192YWx1ZS5nZXRUaW1lKCk7XG5cbiAgICAgIGlmIChkYXRlVmFsdWUgIT09IHRoaXMuI192YWx1ZSB8fCAhYXJlRGF0ZXNFcXVhbCkge1xuICAgICAgICB0aGlzLiNfdmFsdWUgPSBkYXRlVmFsdWUgfHwgdmFsdWU7XG4gICAgICAgIGlmIChlbWl0RXZlbnQpIHtcbiAgICAgICAgICB0aGlzLiNvbkNoYW5nZSh0aGlzLiNfdmFsdWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuI2NvbnRyb2w/LnNldFZhbHVlKHRoaXMuI192YWx1ZSwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy4jZGF0ZXBpY2tlckNvbXBvbmVudC5zZWxlY3RlZERhdGUgPSB0aGlzLiNfdmFsdWU7XG4gICAgICB9XG5cbiAgICAgIGlmIChkYXRlVmFsdWUpIHtcbiAgICAgICAgY29uc3QgZm9ybWF0dGVkRGF0ZVN0cmluZyA9IHRoaXMuI2RhdGVGb3JtYXR0ZXIuZm9ybWF0KFxuICAgICAgICAgIGRhdGVWYWx1ZSxcbiAgICAgICAgICB0aGlzLmRhdGVGb3JtYXQsXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuI3NldElucHV0RWxlbWVudFZhbHVlKGZvcm1hdHRlZERhdGVTdHJpbmcpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy4jc2V0SW5wdXRFbGVtZW50VmFsdWUodmFsdWUgfHwgJycpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl19
|
@@ -334,11 +334,11 @@ export class SkyDatepickerComponent {
|
|
334
334
|
}
|
335
335
|
}
|
336
336
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SkyDatepickerComponent, deps: [{ token: i1.SkyAffixService }, { token: i0.ChangeDetectorRef }, { token: i1.SkyCoreAdapterService }, { token: i1.SkyOverlayService }, { token: i2.SkyInputBoxHostService, optional: true }, { token: i3.SkyThemeService, optional: true }, { token: SKY_STACKING_CONTEXT, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
337
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.8", type: SkyDatepickerComponent, selector: "sky-datepicker", inputs: { pickerClass: "pickerClass" }, outputs: { calendarDateRangeChange: "calendarDateRangeChange", dateFormatChange: "dateFormatChange", openChange: "openChange", calendarDateChange: "calendarDateChange" }, viewQueries: [{ propertyName: "calendar", first: true, predicate: SkyDatepickerCalendarComponent, descendants: true }, { propertyName: "calendarRef", first: true, predicate: ["calendarRef"], descendants: true, read: ElementRef }, { propertyName: "calendarTemplateRef", first: true, predicate: ["calendarTemplateRef"], descendants: true, read: TemplateRef }, { propertyName: "triggerButtonRef", first: true, predicate: ["triggerButtonRef"], descendants: true, read: ElementRef }, { propertyName: "inputTemplateRef", first: true, predicate: ["inputTemplateRef"], descendants: true, read: TemplateRef, static: true }, { propertyName: "triggerButtonTemplateRef", first: true, predicate: ["triggerButtonTemplateRef"], descendants: true, read: TemplateRef, static: true }], ngImport: i0, template: "<div class=\"sky-datepicker\">\n @if (!inputBoxHostService) {\n <div class=\"sky-input-group\">\n <ng-container *ngTemplateOutlet=\"inputTemplateRef\" />\n <ng-container *ngTemplateOutlet=\"triggerButtonTemplateRef\" />\n </div>\n }\n</div>\n\n<ng-template #inputTemplateRef>\n <ng-content />\n</ng-template>\n\n<ng-template #triggerButtonTemplateRef>\n <div class=\"sky-input-group-btn\">\n <button\n #triggerButtonRef\n aria-haspopup=\"dialog\"\n class=\"sky-btn sky-btn-default sky-input-group-datepicker-btn\"\n type=\"button\"\n [attr.aria-controls]=\"isOpen ? calendarId : null\"\n [attr.aria-expanded]=\"isOpen\"\n [attr.aria-label]=\"\n inputBoxHostService?.labelText\n ? ('skyux_datepicker_trigger_button_label_context'\n | skyLibResources: inputBoxHostService?.labelText)\n : ('skyux_datepicker_trigger_button_label' | skyLibResources)\n \"\n [attr.id]=\"triggerButtonId\"\n [attr.title]=\"\n inputBoxHostService?.labelText\n ? ('skyux_datepicker_trigger_button_label_context'\n | skyLibResources: inputBoxHostService?.labelText)\n : ('skyux_datepicker_trigger_button_label' | skyLibResources)\n \"\n [disabled]=\"disabled\"\n (click)=\"onTriggerButtonClick()\"\n >\n <sky-icon icon=\"calendar\" size=\"lg\" />\n </button>\n </div>\n</ng-template>\n\n<ng-template #calendarTemplateRef>\n <div\n #calendarRef\n class=\"sky-datepicker-calendar-container sky-shadow sky-elevation-4\"\n role=\"dialog\"\n [attr.aria-labelledby]=\"triggerButtonId\"\n [attr.id]=\"calendarId\"\n [class.sky-datepicker-hidden]=\"!isVisible\"\n >\n <sky-datepicker-calendar\n cdkTrapFocus\n [customDates]=\"customDates\"\n [isDaypickerWaiting]=\"isDaypickerWaiting\"\n [maxDate]=\"maxDate\"\n [minDate]=\"minDate\"\n [startAtDate]=\"startAtDate\"\n [startingDay]=\"startingDay\"\n (calendarDateRangeChange)=\"onCalendarDateRangeChange($event)\"\n (calendarModeChange)=\"onCalendarModeChange()\"\n (selectedDateChange)=\"onSelectedDateChange($event)\"\n />\n </div>\n</ng-template>\n", styles: [".sky-datepicker-calendar-container{position:fixed;border-radius:
|
337
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.8", type: SkyDatepickerComponent, selector: "sky-datepicker", inputs: { pickerClass: "pickerClass" }, outputs: { calendarDateRangeChange: "calendarDateRangeChange", dateFormatChange: "dateFormatChange", openChange: "openChange", calendarDateChange: "calendarDateChange" }, viewQueries: [{ propertyName: "calendar", first: true, predicate: SkyDatepickerCalendarComponent, descendants: true }, { propertyName: "calendarRef", first: true, predicate: ["calendarRef"], descendants: true, read: ElementRef }, { propertyName: "calendarTemplateRef", first: true, predicate: ["calendarTemplateRef"], descendants: true, read: TemplateRef }, { propertyName: "triggerButtonRef", first: true, predicate: ["triggerButtonRef"], descendants: true, read: ElementRef }, { propertyName: "inputTemplateRef", first: true, predicate: ["inputTemplateRef"], descendants: true, read: TemplateRef, static: true }, { propertyName: "triggerButtonTemplateRef", first: true, predicate: ["triggerButtonTemplateRef"], descendants: true, read: TemplateRef, static: true }], ngImport: i0, template: "<div class=\"sky-datepicker\">\n @if (!inputBoxHostService) {\n <div class=\"sky-input-group\">\n <ng-container *ngTemplateOutlet=\"inputTemplateRef\" />\n <ng-container *ngTemplateOutlet=\"triggerButtonTemplateRef\" />\n </div>\n }\n</div>\n\n<ng-template #inputTemplateRef>\n <ng-content />\n</ng-template>\n\n<ng-template #triggerButtonTemplateRef>\n <div class=\"sky-input-group-btn\">\n <button\n #triggerButtonRef\n aria-haspopup=\"dialog\"\n class=\"sky-btn sky-btn-default sky-input-group-datepicker-btn\"\n type=\"button\"\n [attr.aria-controls]=\"isOpen ? calendarId : null\"\n [attr.aria-expanded]=\"isOpen\"\n [attr.aria-label]=\"\n inputBoxHostService?.labelText\n ? ('skyux_datepicker_trigger_button_label_context'\n | skyLibResources: inputBoxHostService?.labelText)\n : ('skyux_datepicker_trigger_button_label' | skyLibResources)\n \"\n [attr.id]=\"triggerButtonId\"\n [attr.title]=\"\n inputBoxHostService?.labelText\n ? ('skyux_datepicker_trigger_button_label_context'\n | skyLibResources: inputBoxHostService?.labelText)\n : ('skyux_datepicker_trigger_button_label' | skyLibResources)\n \"\n [disabled]=\"disabled\"\n (click)=\"onTriggerButtonClick()\"\n >\n <sky-icon icon=\"calendar\" size=\"lg\" />\n </button>\n </div>\n</ng-template>\n\n<ng-template #calendarTemplateRef>\n <div\n #calendarRef\n class=\"sky-datepicker-calendar-container sky-shadow sky-elevation-4\"\n role=\"dialog\"\n [attr.aria-labelledby]=\"triggerButtonId\"\n [attr.id]=\"calendarId\"\n [class.sky-datepicker-hidden]=\"!isVisible\"\n >\n <sky-datepicker-calendar\n cdkTrapFocus\n [customDates]=\"customDates\"\n [isDaypickerWaiting]=\"isDaypickerWaiting\"\n [maxDate]=\"maxDate\"\n [minDate]=\"minDate\"\n [startAtDate]=\"startAtDate\"\n [startingDay]=\"startingDay\"\n (calendarDateRangeChange)=\"onCalendarDateRangeChange($event)\"\n (calendarModeChange)=\"onCalendarModeChange()\"\n (selectedDateChange)=\"onSelectedDateChange($event)\"\n />\n </div>\n</ng-template>\n", styles: [".sky-datepicker-calendar-container:not(.sky-theme-modern *){--sky-override-datepicker-border-radius: 5px}.sky-datepicker-calendar-container{position:fixed;border-radius:var(--sky-override-datepicker-border-radius, var(--sky-border-radius-s))}.sky-datepicker-hidden{visibility:hidden}\n"], dependencies: [{ kind: "directive", type: i4.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "directive", type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i6.λ1, selector: "sky-icon", inputs: ["icon", "iconName", "iconType", "size", "fixedWidth", "variant"] }, { kind: "component", type: i7.SkyDatepickerCalendarComponent, selector: "sky-datepicker-calendar", inputs: ["customDates", "isDaypickerWaiting", "minDate", "maxDate", "startAtDate", "selectedDate", "startingDay"], outputs: ["calendarDateRangeChange", "calendarModeChange", "selectedDateChange"] }, { kind: "pipe", type: i8.SkyLibResourcesPipe, name: "skyLibResources" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
338
338
|
}
|
339
339
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SkyDatepickerComponent, decorators: [{
|
340
340
|
type: Component,
|
341
|
-
args: [{ selector: 'sky-datepicker', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"sky-datepicker\">\n @if (!inputBoxHostService) {\n <div class=\"sky-input-group\">\n <ng-container *ngTemplateOutlet=\"inputTemplateRef\" />\n <ng-container *ngTemplateOutlet=\"triggerButtonTemplateRef\" />\n </div>\n }\n</div>\n\n<ng-template #inputTemplateRef>\n <ng-content />\n</ng-template>\n\n<ng-template #triggerButtonTemplateRef>\n <div class=\"sky-input-group-btn\">\n <button\n #triggerButtonRef\n aria-haspopup=\"dialog\"\n class=\"sky-btn sky-btn-default sky-input-group-datepicker-btn\"\n type=\"button\"\n [attr.aria-controls]=\"isOpen ? calendarId : null\"\n [attr.aria-expanded]=\"isOpen\"\n [attr.aria-label]=\"\n inputBoxHostService?.labelText\n ? ('skyux_datepicker_trigger_button_label_context'\n | skyLibResources: inputBoxHostService?.labelText)\n : ('skyux_datepicker_trigger_button_label' | skyLibResources)\n \"\n [attr.id]=\"triggerButtonId\"\n [attr.title]=\"\n inputBoxHostService?.labelText\n ? ('skyux_datepicker_trigger_button_label_context'\n | skyLibResources: inputBoxHostService?.labelText)\n : ('skyux_datepicker_trigger_button_label' | skyLibResources)\n \"\n [disabled]=\"disabled\"\n (click)=\"onTriggerButtonClick()\"\n >\n <sky-icon icon=\"calendar\" size=\"lg\" />\n </button>\n </div>\n</ng-template>\n\n<ng-template #calendarTemplateRef>\n <div\n #calendarRef\n class=\"sky-datepicker-calendar-container sky-shadow sky-elevation-4\"\n role=\"dialog\"\n [attr.aria-labelledby]=\"triggerButtonId\"\n [attr.id]=\"calendarId\"\n [class.sky-datepicker-hidden]=\"!isVisible\"\n >\n <sky-datepicker-calendar\n cdkTrapFocus\n [customDates]=\"customDates\"\n [isDaypickerWaiting]=\"isDaypickerWaiting\"\n [maxDate]=\"maxDate\"\n [minDate]=\"minDate\"\n [startAtDate]=\"startAtDate\"\n [startingDay]=\"startingDay\"\n (calendarDateRangeChange)=\"onCalendarDateRangeChange($event)\"\n (calendarModeChange)=\"onCalendarModeChange()\"\n (selectedDateChange)=\"onSelectedDateChange($event)\"\n />\n </div>\n</ng-template>\n", styles: [".sky-datepicker-calendar-container{position:fixed;border-radius:
|
341
|
+
args: [{ selector: 'sky-datepicker', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"sky-datepicker\">\n @if (!inputBoxHostService) {\n <div class=\"sky-input-group\">\n <ng-container *ngTemplateOutlet=\"inputTemplateRef\" />\n <ng-container *ngTemplateOutlet=\"triggerButtonTemplateRef\" />\n </div>\n }\n</div>\n\n<ng-template #inputTemplateRef>\n <ng-content />\n</ng-template>\n\n<ng-template #triggerButtonTemplateRef>\n <div class=\"sky-input-group-btn\">\n <button\n #triggerButtonRef\n aria-haspopup=\"dialog\"\n class=\"sky-btn sky-btn-default sky-input-group-datepicker-btn\"\n type=\"button\"\n [attr.aria-controls]=\"isOpen ? calendarId : null\"\n [attr.aria-expanded]=\"isOpen\"\n [attr.aria-label]=\"\n inputBoxHostService?.labelText\n ? ('skyux_datepicker_trigger_button_label_context'\n | skyLibResources: inputBoxHostService?.labelText)\n : ('skyux_datepicker_trigger_button_label' | skyLibResources)\n \"\n [attr.id]=\"triggerButtonId\"\n [attr.title]=\"\n inputBoxHostService?.labelText\n ? ('skyux_datepicker_trigger_button_label_context'\n | skyLibResources: inputBoxHostService?.labelText)\n : ('skyux_datepicker_trigger_button_label' | skyLibResources)\n \"\n [disabled]=\"disabled\"\n (click)=\"onTriggerButtonClick()\"\n >\n <sky-icon icon=\"calendar\" size=\"lg\" />\n </button>\n </div>\n</ng-template>\n\n<ng-template #calendarTemplateRef>\n <div\n #calendarRef\n class=\"sky-datepicker-calendar-container sky-shadow sky-elevation-4\"\n role=\"dialog\"\n [attr.aria-labelledby]=\"triggerButtonId\"\n [attr.id]=\"calendarId\"\n [class.sky-datepicker-hidden]=\"!isVisible\"\n >\n <sky-datepicker-calendar\n cdkTrapFocus\n [customDates]=\"customDates\"\n [isDaypickerWaiting]=\"isDaypickerWaiting\"\n [maxDate]=\"maxDate\"\n [minDate]=\"minDate\"\n [startAtDate]=\"startAtDate\"\n [startingDay]=\"startingDay\"\n (calendarDateRangeChange)=\"onCalendarDateRangeChange($event)\"\n (calendarModeChange)=\"onCalendarModeChange()\"\n (selectedDateChange)=\"onSelectedDateChange($event)\"\n />\n </div>\n</ng-template>\n", styles: [".sky-datepicker-calendar-container:not(.sky-theme-modern *){--sky-override-datepicker-border-radius: 5px}.sky-datepicker-calendar-container{position:fixed;border-radius:var(--sky-override-datepicker-border-radius, var(--sky-border-radius-s))}.sky-datepicker-hidden{visibility:hidden}\n"] }]
|
342
342
|
}], ctorParameters: () => [{ type: i1.SkyAffixService }, { type: i0.ChangeDetectorRef }, { type: i1.SkyCoreAdapterService }, { type: i1.SkyOverlayService }, { type: i2.SkyInputBoxHostService, decorators: [{
|
343
343
|
type: Optional
|
344
344
|
}] }, { type: i3.SkyThemeService, decorators: [{
|
@@ -11,11 +11,11 @@ export class SkyDayPickerButtonComponent {
|
|
11
11
|
this.datepicker = datepicker;
|
12
12
|
}
|
13
13
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SkyDayPickerButtonComponent, deps: [{ token: i1.SkyDatepickerCalendarInnerComponent }], target: i0.ɵɵFactoryTarget.Component }); }
|
14
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.8", type: SkyDayPickerButtonComponent, selector: "sky-daypicker-button", inputs: { date: "date" }, ngImport: i0, template: "@if (date) {\n <button\n class=\"sky-btn sky-btn-sm sky-btn-default sky-datepicker-btn-date\"\n tabindex=\"-1\"\n type=\"button\"\n [disabled]=\"date.disabled\"\n [ngClass]=\"{\n 'sky-datepicker-btn-selected': date.selected,\n 'sky-btn-disabled': date.disabled,\n 'sky-btn-active': datepicker.isActive(date),\n 'sky-datepicker-btn-disabled': date.disabled,\n 'sky-datepicker-btn-key-date': date.keyDate\n }\"\n [attr.aria-label]=\"date.date | skyDatepickerCalendarLabel\"\n (click)=\"datepicker.selectCalendar($event, date.date, true)\"\n >\n <span [ngClass]=\"{ 'sky-datepicker-secondary': date.secondary }\">\n {{ date.label }}\n </span>\n </button>\n}\n", styles: [".sky-datepicker-btn-disabled{
|
14
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.8", type: SkyDayPickerButtonComponent, selector: "sky-daypicker-button", inputs: { date: "date" }, ngImport: i0, template: "@if (date) {\n <button\n class=\"sky-btn sky-btn-sm sky-btn-default sky-datepicker-btn-date\"\n tabindex=\"-1\"\n type=\"button\"\n [disabled]=\"date.disabled\"\n [ngClass]=\"{\n 'sky-datepicker-btn-selected': date.selected,\n 'sky-btn-disabled': date.disabled,\n 'sky-btn-active': datepicker.isActive(date),\n 'sky-datepicker-btn-disabled': date.disabled,\n 'sky-datepicker-btn-key-date': date.keyDate\n }\"\n [attr.aria-label]=\"date.date | skyDatepickerCalendarLabel\"\n (click)=\"datepicker.selectCalendar($event, date.date, true)\"\n >\n <span [ngClass]=\"{ 'sky-datepicker-secondary': date.secondary }\">\n {{ date.label }}\n </span>\n </button>\n}\n", styles: [".sky-datepicker-btn-date:not(.sky-theme-modern *){--sky-override-daypicker-disabled-style: italic;--sky-override-daypicker-key-date-color: #d93a3d;--sky-override-daypicker-key-date-size: 5px;--sky-override-daypicker-key-date-left: 15px;--sky-override-daypicker-key-date-top: 22px}:host-context(.sky-theme-modern:not(.sky-theme-brand-blackbaud)) .sky-datepicker-btn-date{--sky-override-daypicker-disabled-style: italic;--sky-override-daypicker-key-date-left: 12px;--sky-override-daypicker-key-date-top: 22px}.sky-datepicker-btn-disabled{font-style:var(--sky-override-daypicker-disabled-style)}.sky-datepicker-btn-key-date{position:relative}.sky-datepicker-btn-key-date:before{position:absolute;content:\"\";height:var(--sky-override-daypicker-key-date-size, var(--sky-size-icon-xxs));width:var(--sky-override-daypicker-key-date-size, var(--sky-size-icon-xxs));background-color:var(--sky-override-daypicker-key-date-color, var(--sky-color-icon-danger));border-radius:50%;left:var(--sky-override-daypicker-key-date-left, calc(50% - var(--sky-size-icon-xxs) / 2));top:var(--sky-override-daypicker-key-date-top, calc(50% + var(--sky-font-size-body-m) * var(--sky-font-line_height-body-m) / 2 - var(--sky-size-icon-xxs) / 2))}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: i3.SkyDatepickerCalendarLabelPipe, name: "skyDatepickerCalendarLabel" }] }); }
|
15
15
|
}
|
16
16
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SkyDayPickerButtonComponent, decorators: [{
|
17
17
|
type: Component,
|
18
|
-
args: [{ selector: 'sky-daypicker-button', template: "@if (date) {\n <button\n class=\"sky-btn sky-btn-sm sky-btn-default sky-datepicker-btn-date\"\n tabindex=\"-1\"\n type=\"button\"\n [disabled]=\"date.disabled\"\n [ngClass]=\"{\n 'sky-datepicker-btn-selected': date.selected,\n 'sky-btn-disabled': date.disabled,\n 'sky-btn-active': datepicker.isActive(date),\n 'sky-datepicker-btn-disabled': date.disabled,\n 'sky-datepicker-btn-key-date': date.keyDate\n }\"\n [attr.aria-label]=\"date.date | skyDatepickerCalendarLabel\"\n (click)=\"datepicker.selectCalendar($event, date.date, true)\"\n >\n <span [ngClass]=\"{ 'sky-datepicker-secondary': date.secondary }\">\n {{ date.label }}\n </span>\n </button>\n}\n", styles: [".sky-datepicker-btn-disabled{
|
18
|
+
args: [{ selector: 'sky-daypicker-button', template: "@if (date) {\n <button\n class=\"sky-btn sky-btn-sm sky-btn-default sky-datepicker-btn-date\"\n tabindex=\"-1\"\n type=\"button\"\n [disabled]=\"date.disabled\"\n [ngClass]=\"{\n 'sky-datepicker-btn-selected': date.selected,\n 'sky-btn-disabled': date.disabled,\n 'sky-btn-active': datepicker.isActive(date),\n 'sky-datepicker-btn-disabled': date.disabled,\n 'sky-datepicker-btn-key-date': date.keyDate\n }\"\n [attr.aria-label]=\"date.date | skyDatepickerCalendarLabel\"\n (click)=\"datepicker.selectCalendar($event, date.date, true)\"\n >\n <span [ngClass]=\"{ 'sky-datepicker-secondary': date.secondary }\">\n {{ date.label }}\n </span>\n </button>\n}\n", styles: [".sky-datepicker-btn-date:not(.sky-theme-modern *){--sky-override-daypicker-disabled-style: italic;--sky-override-daypicker-key-date-color: #d93a3d;--sky-override-daypicker-key-date-size: 5px;--sky-override-daypicker-key-date-left: 15px;--sky-override-daypicker-key-date-top: 22px}:host-context(.sky-theme-modern:not(.sky-theme-brand-blackbaud)) .sky-datepicker-btn-date{--sky-override-daypicker-disabled-style: italic;--sky-override-daypicker-key-date-left: 12px;--sky-override-daypicker-key-date-top: 22px}.sky-datepicker-btn-disabled{font-style:var(--sky-override-daypicker-disabled-style)}.sky-datepicker-btn-key-date{position:relative}.sky-datepicker-btn-key-date:before{position:absolute;content:\"\";height:var(--sky-override-daypicker-key-date-size, var(--sky-size-icon-xxs));width:var(--sky-override-daypicker-key-date-size, var(--sky-size-icon-xxs));background-color:var(--sky-override-daypicker-key-date-color, var(--sky-color-icon-danger));border-radius:50%;left:var(--sky-override-daypicker-key-date-left, calc(50% - var(--sky-size-icon-xxs) / 2));top:var(--sky-override-daypicker-key-date-top, calc(50% + var(--sky-font-size-body-m) * var(--sky-font-line_height-body-m) / 2 - var(--sky-size-icon-xxs) / 2))}\n"] }]
|
19
19
|
}], ctorParameters: () => [{ type: i1.SkyDatepickerCalendarInnerComponent }], propDecorators: { date: [{
|
20
20
|
type: Input
|
21
21
|
}] } });
|
@@ -205,11 +205,11 @@ export class SkyDayPickerComponent {
|
|
205
205
|
return undefined;
|
206
206
|
}
|
207
207
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SkyDayPickerComponent, deps: [{ token: i1.SkyDatepickerCalendarInnerComponent }], target: i0.ɵɵFactoryTarget.Component }); }
|
208
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.8", type: SkyDayPickerComponent, selector: "sky-daypicker", inputs: { customDates: "customDates", isWaiting: "isWaiting" }, outputs: { calendarDateRangeChange: "calendarDateRangeChange" }, ngImport: i0, template: "<table\n class=\"sky-daypicker-table\"\n role=\"grid\"\n [attr.aria-labelledby]=\"datepicker.datepickerId + '-title'\"\n>\n <thead>\n <tr>\n @for (label of labels; track label.full) {\n <th scope=\"col\" class=\"sky-datepicker-center sky-datepicker-weekdays\">\n <
|
208
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.8", type: SkyDayPickerComponent, selector: "sky-daypicker", inputs: { customDates: "customDates", isWaiting: "isWaiting" }, outputs: { calendarDateRangeChange: "calendarDateRangeChange" }, ngImport: i0, template: "<table\n class=\"sky-daypicker-table\"\n role=\"grid\"\n [attr.aria-labelledby]=\"datepicker.datepickerId + '-title'\"\n>\n <thead>\n <tr>\n @for (label of labels; track label.full) {\n <th scope=\"col\" class=\"sky-datepicker-center sky-datepicker-weekdays\">\n <!-- display: inline -->\n <span\n class=\"sky-datepicker-weekday-text\"\n [attr.aria-label]=\"label.full\"\n >{{ label.abbr }}</span\n >\n </th>\n }\n </tr>\n </thead>\n <tbody>\n <!-- Wait indicator for async custom date stream -->\n <sky-wait [isWaiting]=\"isWaiting\" />\n @for (row of rows; track $index) {\n <tr role=\"row\">\n @for (date of row; track date.uid) {\n <td class=\"sky-datepicker-center\" role=\"gridcell\" [id]=\"date.uid\">\n <sky-daypicker-cell\n [activeDateHasChanged]=\"activeDateHasChanged\"\n [date]=\"date\"\n />\n </td>\n }\n </tr>\n }\n </tbody>\n</table>\n", dependencies: [{ kind: "component", type: i2.λ14, selector: "sky-wait", inputs: ["ariaLabel", "isWaiting", "isFullPage", "isNonBlocking", "screenReaderCompletedText"] }, { kind: "component", type: i3.SkyDayPickerCellComponent, selector: "sky-daypicker-cell", inputs: ["activeDateHasChanged", "date"] }] }); }
|
209
209
|
}
|
210
210
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SkyDayPickerComponent, decorators: [{
|
211
211
|
type: Component,
|
212
|
-
args: [{ selector: 'sky-daypicker', template: "<table\n class=\"sky-daypicker-table\"\n role=\"grid\"\n [attr.aria-labelledby]=\"datepicker.datepickerId + '-title'\"\n>\n <thead>\n <tr>\n @for (label of labels; track label.full) {\n <th scope=\"col\" class=\"sky-datepicker-center sky-datepicker-weekdays\">\n <
|
212
|
+
args: [{ selector: 'sky-daypicker', template: "<table\n class=\"sky-daypicker-table\"\n role=\"grid\"\n [attr.aria-labelledby]=\"datepicker.datepickerId + '-title'\"\n>\n <thead>\n <tr>\n @for (label of labels; track label.full) {\n <th scope=\"col\" class=\"sky-datepicker-center sky-datepicker-weekdays\">\n <!-- display: inline -->\n <span\n class=\"sky-datepicker-weekday-text\"\n [attr.aria-label]=\"label.full\"\n >{{ label.abbr }}</span\n >\n </th>\n }\n </tr>\n </thead>\n <tbody>\n <!-- Wait indicator for async custom date stream -->\n <sky-wait [isWaiting]=\"isWaiting\" />\n @for (row of rows; track $index) {\n <tr role=\"row\">\n @for (date of row; track date.uid) {\n <td class=\"sky-datepicker-center\" role=\"gridcell\" [id]=\"date.uid\">\n <sky-daypicker-cell\n [activeDateHasChanged]=\"activeDateHasChanged\"\n [date]=\"date\"\n />\n </td>\n }\n </tr>\n }\n </tbody>\n</table>\n" }]
|
213
213
|
}], ctorParameters: () => [{ type: i1.SkyDatepickerCalendarInnerComponent }], propDecorators: { customDates: [{
|
214
214
|
type: Input
|
215
215
|
}], calendarDateRangeChange: [{
|
@@ -217,4 +217,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
|
|
217
217
|
}], isWaiting: [{
|
218
218
|
type: Input
|
219
219
|
}] } });
|
220
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF5cGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9kYXRldGltZS9zcmMvbGliL21vZHVsZXMvZGF0ZXBpY2tlci9kYXlwaWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2RhdGV0aW1lL3NyYy9saWIvbW9kdWxlcy9kYXRlcGlja2VyL2RheXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7O0FBaUIvQjs7R0FFRztBQUtILE1BQU0sT0FBTyxxQkFBcUI7SUFDaEMsSUFDVyxXQUFXLENBQUMsS0FBNEM7UUFDakUsMEJBQTBCO1FBQzFCLElBQUksS0FBSyxFQUFFLENBQUM7WUFDVixJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMzQyxDQUFDO0lBQ0gsQ0FBQztJQWtCRCxZQUFZLENBQThEO0lBQzFFLFlBQVksQ0FBcUI7SUFDakMsY0FBYyxDQUF1QjtJQUVyQyxZQUFZLFVBQStDO1FBbkJwRCw0QkFBdUIsR0FBRyxJQUFJLFlBQVksRUFFOUMsQ0FBQztRQUdHLGNBQVMsR0FBd0IsS0FBSyxDQUFDO1FBRXZDLHlCQUFvQixHQUFHLEtBQUssQ0FBQztRQUM3QixXQUFNLEdBQVUsRUFBRSxDQUFDO1FBQ25CLFVBQUssR0FBRyxFQUFFLENBQUM7UUFDWCxTQUFJLEdBQTBCLEVBQUUsQ0FBQztRQUNqQyxnQkFBVyxHQUFhLEVBQUUsQ0FBQztRQUlsQyxpQkFBWSxHQUFhLENBQUMsRUFBRSxFQUFFLEVB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LElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO2dCQUMxQixPQUFPLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUk7YUFDdEUsQ0FBQztRQUNKLENBQUM7UUFDRCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDOzhHQW5RVSxxQkFBcUI7a0dBQXJCLHFCQUFxQixzTENqQ2xDLGc4QkFpQ0E7OzJGREFhLHFCQUFxQjtrQkFKakMsU0FBUzsrQkFDRSxlQUFlO3dHQUtkLFdBQVc7c0JBRHJCLEtBQUs7Z0JBU0MsdUJBQXVCO3NCQUQ3QixNQUFNO2dCQU1BLFNBQVM7c0JBRGYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgU2t5RGF0ZXBpY2tlckNhbGVuZGFyQ2hhbmdlIH0gZnJvbSAnLi9kYXRlcGlja2VyLWNhbGVuZGFyLWNoYW5nZSc7XG5pbXBvcnQgeyBTa3lEYXRlcGlja2VyQ2FsZW5kYXJJbm5lckNvbXBvbmVudCB9IGZyb20gJy4vZGF0ZXBpY2tlci1jYWxlbmRhci1pbm5lci5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5RGF0ZXBpY2tlckN1c3RvbURhdGUgfSBmcm9tICcuL2RhdGVwaWNrZXItY3VzdG9tLWRhdGUnO1xuaW1wb3J0IHsgU2t5RGF0ZXBpY2tlckRhdGUgfSBmcm9tICcuL2RhdGVwaWNrZXItZGF0ZSc7XG5cbi8qKlxuICogSGVscGVyIGludGVyZmFjZSB0byBjb21wYXJlIGRhdGUgcmFuZ2VzLlxuICogQGludGVybmFsXG4gKi9cbmludGVyZmFjZSBTa3lEYXRlUmFuZ2Uge1xuICBlbmREYXRlOiBEYXRlO1xuXG4gIHN0YXJ0RGF0ZTogRGF0ZTtcbn1cblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LWRheXBpY2tlcicsXG4gIHRlbXBsYXRlVXJsOiAnZGF5cGlja2VyLmNvbXBvbmVudC5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgU2t5RGF5UGlja2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95LCBPbkluaXQge1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGN1c3RvbURhdGVzKHZhbHVlOiBTa3lEYXRlcGlja2VyQ3VzdG9tRGF0ZVtdIHwgdW5kZWZpbmVkKSB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMuI2FwcGx5Q3VzdG9tRGF0ZXModmFsdWUsIHRoaXMucm93cyk7XG4gICAgfVxuICB9XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBjYWxlbmRhckRhdGVSYW5nZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8XG4gICAgU2t5RGF0ZXBpY2tlckNhbGVuZGFyQ2hhbmdlIHwgdW5kZWZpbmVkXG4gID4oKTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgaXNXYWl0aW5nOiBib29sZWFuIHwgdW5kZWZpbmVkID0gZmFsc2U7XG5cbiAgcHVibGljIGFjdGl2ZURhdGVIYXNDaGFuZ2VkID0gZmFsc2U7XG4gIHB1YmxpYyBsYWJlbHM6IGFueVtdID0gW107XG4gIHB1YmxpYyB0aXRsZSA9ICcnO1xuICBwdWJsaWMgcm93czogU2t5RGF0ZXBpY2tlckRhdGVbXVtdID0gW107XG4gIHB1YmxpYyB3ZWVrTnVtYmVyczogbnVtYmVyW10gPSBbXTtcbiAgcHVibGljIGRhdGVwaWNrZXI6IFNreURhdGVwaWNrZXJDYWxlbmRhcklubmVyQ29tcG9uZW50O1xuICBwdWJsaWMgQ1VSUkVOVF9USEVNRV9URU1QTEFURTogYW55O1xuXG4gICNkYXlzSW5Nb250aDogbnVtYmVyW10gPSBbMzEsIDI4LCAzMSwgMzAsIDMxLCAzMCwgMzEsIDMxLCAzMCwgMzEsIDMwLCAzMV07XG4gICNpbml0aWFsRGF0ZTogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAjbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgY29uc3RydWN0b3IoZGF0ZXBpY2tlcjogU2t5RGF0ZXBpY2tlckNhbGVuZGFySW5uZXJDb21wb25lbnQpIHtcbiAgICB0aGlzLmRhdGVwaWNrZXIgPSBkYXRlcGlja2VyO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZGF0ZXBpY2tlci5zdGVwRGF5ID0geyBtb250aHM6IDEgfTtcbiAgICB0aGlzLiNpbml0aWFsRGF0ZSA9IHRoaXMuZGF0ZXBpY2tlci5hY3RpdmVEYXRlLmdldERhdGUoKTtcblxuICAgIHRoaXMuZGF0ZXBpY2tlci5zZXRSZWZyZXNoVmlld0hhbmRsZXIoKCkgPT4gdGhpcy4jcmVmcmVzaERheVZpZXcoKSwgJ2RheScpO1xuXG4gICAgdGhpcy5kYXRlcGlja2VyLnNldENvbXBhcmVIYW5kbGVyKHRoaXMuI2NvbXBhcmVEYXlzLCAnZGF5Jyk7XG5cbiAgICB0aGlzLmRhdGVwaWNrZXIuc2V0S2V5ZG93bkhhbmRsZXIoKGtleTogc3RyaW5nLCBldmVudDogS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgICAgdGhpcy4ja2V5ZG93bkRheXMoa2V5LCBldmVudCk7XG4gICAgfSwgJ2RheScpO1xuXG4gICAgdGhpcy5kYXRlcGlja2VyLnJlZnJlc2hWaWV3KCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy4jbmdVbnN1YnNjcmliZS5uZXh0KCk7XG4gICAgdGhpcy4jbmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldERhdGVzKHN0YXJ0RGF0ZTogRGF0ZSwgbjogbnVtYmVyKTogRGF0ZVtdIHtcbiAgICBjb25zdCBkYXRlczogRGF0ZVtdID0gbmV3IEFycmF5KG4pO1xuICAgIGxldCBjdXJyZW50ID0gbmV3IERhdGUoc3RhcnREYXRlLmdldFRpbWUoKSk7XG4gICAgbGV0IGkgPSAwO1xuICAgIGxldCBkYXRlOiBEYXRlO1xuICAgIHdoaWxlIChpIDwgbikge1xuICAgICAgZGF0ZSA9IG5ldyBEYXRlKGN1cnJlbnQuZ2V0VGltZSgpKTtcbiAgICAgIGRhdGUgPSB0aGlzLmRhdGVwaWNrZXIuZml4VGltZVpvbmUoZGF0ZSk7XG4gICAgICBkYXRlc1tpKytdID0gZGF0ZTtcbiAgICAgIGN1cnJlbnQgPSBuZXcgRGF0ZShcbiAgICAgICAgY3VycmVudC5nZXRGdWxsWWVhcigpLFxuICAgICAgICBjdXJyZW50LmdldE1vbnRoKCksXG4gICAgICAgIGN1cnJlbnQuZ2V0RGF0ZSgpICsgMSxcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiBkYXRlcztcbiAgfVxuXG4gICNjb21wYXJlRGF5cyhkYXRlMTogRGF0ZSwgZGF0ZTI6IERhdGUpOiBudW1iZXIge1xuICAgIGNvbnN0IGQxID0gbmV3IERhdGUoZGF0ZTEuZ2V0RnVsbFllYXIoKSwgZGF0ZTEuZ2V0TW9udGgoKSwgZGF0ZTEuZ2V0RGF0ZSgpKTtcbiAgICBjb25zdCBkMiA9IG5ldyBEYXRlKGRhdGUyLmdldEZ1bGxZZWFyKCksIGRhdGUyLmdldE1vbnRoKCksIGRhdGUyLmdldERhdGUoKSk7XG4gICAgcmV0dXJuIGQxLmdldFRpbWUoKSAtIGQyLmdldFRpbWUoKTtcbiAgfVxuXG4gICNyZWZyZXNoRGF5VmlldygpOiBzdHJpbmcge1xuICAgIGNvbnN0IHllYXIgPSB0aGlzLmRhdGVwaWNrZXIuYWN0aXZlRGF0ZS5nZXRGdWxsWWVhcigpO1xuICAgIGNvbnN0IG1vbnRoID0gdGhpcy5kYXRlcGlja2VyLmFjdGl2ZURhdGUuZ2V0TW9udGgoKTtcbiAgICBjb25zdCBmaXJzdERheU9mTW9udGggPSBuZXcgRGF0ZSh5ZWFyLCBtb250aCwgMSk7XG4gICAgY29uc3QgZGlmZmVyZW5jZSA9IHRoaXMuZGF0ZXBpY2tlci5zdGFydGluZ0RheSAtIGZpcnN0RGF5T2ZNb250aC5nZXREYXkoKTtcbiAgICBjb25zdCBudW1EaXNwbGF5ZWRGcm9tUHJldmlvdXNNb250aCA9XG4gICAgICBkaWZmZXJlbmNlID4gMCA/IDcgLSBkaWZmZXJlbmNlIDogLWRpZmZlcmVuY2U7XG4gICAgY29uc3QgZmlyc3REYXRlID0gbmV3IERhdGUoZmlyc3REYXlPZk1vbnRoLmdldFRpbWUoKSk7XG5cbiAgICBpZiAodGhpcy5kYXRlcGlja2VyLmFjdGl2ZURhdGUuZ2V0RGF0ZSgpICE9PSB0aGlzLiNpbml0aWFsRGF0ZSkge1xuICAgICAgdGhpcy5hY3RpdmVEYXRlSGFzQ2hhbmdlZCA9IHRydWU7XG4gICAgfVxuXG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAvKiBzYW5pdHkgY2hlY2sgKi9cbiAgICBpZiAobnVtRGlzcGxheWVkRnJvbVByZXZpb3VzTW9udGggPiAwKSB7XG4gICAgICBmaXJzdERhdGUuc2V0RGF0ZSgtbnVtRGlzcGxheWVkRnJvbVByZXZpb3VzTW9udGggKyAxKTtcbiAgICB9XG5cbiAgICAvLyA0MiBpcyB0aGUgbnVtYmVyIG9mIGRheXMgb24gYSBzaXgtd2VlayBjYWxlbmRhclxuICAgIGNvbnN0IGRheXM6IERhdGVbXSA9IHRoaXMuZ2V0RGF0ZXMoZmlyc3REYXRlLCA0Mik7XG4gICAgY29uc3QgcGlja2VyRGF0ZXM6IFNreURhdGVwaWNrZXJEYXRlW10gPSBbXTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IDQyOyBpKyspIHtcbiAgICAgIGNvbnN0IF9kYXRlT2JqZWN0ID0gdGhpcy5kYXRlcGlja2VyLmNyZWF0ZURhdGVPYmplY3QoXG4gICAgICAgIGRheXNbaV0sXG4gICAgICAgIHRoaXMuZGF0ZXBpY2tlci5mb3JtYXREYXksXG4gICAgICAgIGRheXNbaV0uZ2V0TW9udGgoKSAhPT0gbW9udGgsXG4gICAgICAgIHRoaXMuZGF0ZXBpY2tlci5kYXRlcGlja2VySWQgKyAnLScgKyBpLFxuICAgICAgKTtcbiAgICAgIHBpY2tlckRhdGVzW2ldID0gX2RhdGVPYmplY3Q7XG4gICAgfVxuXG4gICAgdGhpcy5sYWJlbHMgPSBbXTtcbiAgICBmb3IgKGxldCBqID0gMDsgaiA8IDc7IGorKykge1xuICAgICAgdGhpcy5sYWJlbHNbal0gPSB7fTtcbiAgICAgIHRoaXMubGFiZWxzW2pdLmFiYnIgPSB0aGlzLmRhdGVwaWNrZXIuZGF0ZUZpbHRlcihcbiAgICAgICAgcGlja2VyRGF0ZXNbal0uZGF0ZSxcbiAgICAgICAgdGhpcy5kYXRlcGlja2VyLmZvcm1hdERheUhlYWRlcixcbiAgICAgICk7XG4gICAgICB0aGlzLmxhYmVsc1tqXS5mdWxsID0gdGhpcy5kYXRlcGlja2VyLmRhdGVGaWx0ZXIoXG4gICAgICAgIHBpY2tlckRhdGVzW2pdLmRhdGUsXG4gICAgICAgICdFRUVFJyxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgY29uc3Qgb2xkRGF0ZVJhbmdlID0gdGhpcy4jZ2V0RGF0ZVJhbmdlKHRoaXMucm93cyk7XG4gICAgdGhpcy5yb3dzID0gdGhpcy5kYXRlcGlja2VyLmNyZWF0ZUNhbGVuZGFyUm93cyhwaWNrZXJEYXRlcywgNyk7XG4gICAgY29uc3QgbmV3RGF0ZVJhbmdlID0gdGhpcy4jZ2V0RGF0ZVJhbmdlKHRoaXMucm93cyk7XG5cbiAgICBpZiAoIXRoaXMuI2RhdGVSYW5nZVJvd3NBcmVFcXVhbChvbGREYXRlUmFuZ2UsIG5ld0RhdGVSYW5nZSkpIHtcbiAgICAgIC8vIFNhZmV0eSBjaGVja1xuICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgIGlmIChuZXdEYXRlUmFuZ2UpIHtcbiAgICAgICAgdGhpcy5jYWxlbmRhckRhdGVSYW5nZUNoYW5nZS5uZXh0KHtcbiAgICAgICAgICBzdGFydERhdGU6IG5ld0RhdGVSYW5nZS5zdGFydERhdGUsXG4gICAgICAgICAgZW5kRGF0ZTogbmV3RGF0ZVJhbmdlLmVuZERhdGUsXG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5jYWxlbmRhckRhdGVSYW5nZUNoYW5nZS5uZXh0KHVuZGVmaW5lZCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuZGF0ZXBpY2tlci5kYXRlRmlsdGVyKFxuICAgICAgdGhpcy5kYXRlcGlja2VyLmFjdGl2ZURhdGUsXG4gICAgICB0aGlzLmRhdGVwaWNrZXIuZm9ybWF0RGF5VGl0bGUsXG4gICAgKTtcbiAgfVxuXG4gICNrZXlkb3duRGF5cyhrZXk6IHN0cmluZywgZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBsZXQgZGF0ZSA9IHRoaXMuZGF0ZXBpY2tlci5hY3RpdmVEYXRlLmdldERhdGUoKTtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIC8qIHNhbml0eSBjaGVjayAqL1xuICAgIGlmIChrZXkgPT09ICdhcnJvd2xlZnQnKSB7XG4gICAgICBkYXRlID0gZGF0ZSAtIDE7XG4gICAgfSBlbHNlIGlmIChrZXkgPT09ICdhcnJvd3VwJykge1xuICAgICAgZGF0ZSA9IGRhdGUgLSA3O1xuICAgIH0gZWxzZSBpZiAoa2V5ID09PSAnYXJyb3dyaWdodCcpIHtcbiAgICAgIGRhdGUgPSBkYXRlICsgMTtcbiAgICB9IGVsc2UgaWYgKGtleSA9PT0gJ2Fycm93ZG93bicpIHtcbiAgICAgIGRhdGUgPSBkYXRlICsgNztcbiAgICB9IGVsc2UgaWYgKGtleSA9PT0gJ3BhZ2V1cCcgfHwga2V5ID09PSAncGFnZWRvd24nKSB7XG4gICAgICBjb25zdCBtb250aCA9XG4gICAgICAgIHRoaXMuZGF0ZXBpY2tlci5hY3RpdmVEYXRlLmdldE1vbnRoKCkgKyAoa2V5ID09PSAncGFnZXVwJyA/IC0xIDogMSk7XG4gICAgICB0aGlzLmRhdGVwaWNrZXIuYWN0aXZlRGF0ZS5zZXRNb250aChtb250aCwgMSk7XG4gICAgICBkYXRlID0gTWF0aC5taW4oXG4gICAgICAgIHRoaXMuI2dldERheXNJbk1vbnRoKFxuICAgICAgICAgIHRoaXMuZGF0ZXBpY2tlci5hY3RpdmVEYXRlLmdldEZ1bGxZZWFyKCksXG4gICAgICAgICAgdGhpcy5kYXRlcGlja2VyLmFjdGl2ZURhdGUuZ2V0TW9udGgoKSxcbiAgICAgICAgKSxcbiAgICAgICAgZGF0ZSxcbiAgICAgICk7XG4gICAgfSBlbHNlIGlmIChrZXkgPT09ICdob21lJykge1xuICAgICAgZGF0ZSA9IDE7XG4gICAgfSBlbHNlIGlmIChrZXkgPT09ICdlbmQnKSB7XG4gICAgICBkYXRlID0gdGhpcy4jZ2V0RGF5c0luTW9udGgoXG4gICAgICAgIHRoaXMuZGF0ZXBpY2tlci5hY3RpdmVEYXRlLmdldEZ1bGxZZWFyKCksXG4gICAgICAgIHRoaXMuZGF0ZXBpY2tlci5hY3RpdmVEYXRlLmdldE1vbnRoKCksXG4gICAgICApO1xuICAgIH1cbiAgICB0aGlzLmRhdGVwaWNrZXIuYWN0aXZlRGF0ZS5zZXREYXRlKGRhdGUpO1xuICAgIHRoaXMuZGF0ZXBpY2tlci5hbm5vdW5jZURhdGUoXG4gICAgICB0aGlzLmRhdGVwaWNrZXIuYWN0aXZlRGF0ZSxcbiAgICAgIHRoaXMuZGF0ZXBpY2tlci5mb3JtYXREYXlMYWJlbCxcbiAgICApO1xuICB9XG5cbiAgI2dldERheXNJbk1vbnRoKHllYXI6IG51bWJlciwgbW9udGg6IG51bWJlcik6IG51bWJlciB7XG4gICAgcmV0dXJuIG1vbnRoID09PSAxICYmXG4gICAgICB5ZWFyICUgNCA9PT0gMCAmJlxuICAgICAgKHllYXIgJSA0MDAgPT09IDAgfHwgeWVhciAlIDEwMCAhPT0gMClcbiAgICAgID8gMjlcbiAgICAgIDogdGhpcy4jZGF5c0luTW9udGhbbW9udGhdO1xuICB9XG5cbiAgLyoqXG4gICAqIEFwcGxpZXMgY3VzdG9tIGRhdGUgcHJvcGVydGllcyB0byB0aGUgZXhpc3RpbmcgZGF0ZXMgZGlzcGxheWVkIGluIHRoZSBjYWxlbmRhci5cbiAgICovXG4gICNhcHBseUN1c3RvbURhdGVzKFxuICAgIGN1c3RvbURhdGVzOiBTa3lEYXRlcGlja2VyQ3VzdG9tRGF0ZVtdLFxuICAgIGRhdGVSb3dzOiBTa3lEYXRlcGlja2VyRGF0ZVtdW10sXG4gICk6IHZvaWQge1xuICAgIGxldCBkYXRlOiBTa3lEYXRlcGlja2VyRGF0ZTtcbiAgICBsZXQgbmV3RGF0ZTogU2t5RGF0ZXBpY2tlckRhdGU7XG4gICAgbGV0IGRhdGVJbmRleDogbnVtYmVyO1xuXG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAoY3VzdG9tRGF0ZXMgJiYgZGF0ZVJvd3MpIHtcbiAgICAgIGN1c3RvbURhdGVzLmZvckVhY2goKGN1c3RvbURhdGUpID0+IHtcbiAgICAgICAgZGF0ZUluZGV4ID0gLTE7XG4gICAgICAgIGRhdGVSb3dzLmZvckVhY2goKHJvdykgPT4ge1xuICAgICAgICAgIGlmIChkYXRlSW5kZXggPT09IC0xKSB7XG4gICAgICAgICAgICBkYXRlSW5kZXggPSByb3cuZmluZEluZGV4KChkKSA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiBkLmRhdGUuZ2V0VGltZSgpID09PSBjdXN0b21EYXRlLmRhdGUuZ2V0VGltZSgpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBpZiAoZGF0ZUluZGV4ID4gLTEpIHtcbiAgICAgICAgICAgICAgZGF0ZSA9IHJvd1tkYXRlSW5kZXhdO1xuICAgICAgICAgICAgICAvLyBSZXBsYWNlIHRoZSBkYXRlIHdpdGggYSBuZXcgaW5zdGFuY2Ugc28gdGhlIGRpc3BsYXkgZ2V0cyB1cGRhdGVkLlxuICAgICAgICAgICAgICBuZXdEYXRlID0ge1xuICAgICAgICAgICAgICAgIGN1cnJlbnQ6IGRhdGUuY3VycmVudCxcbiAgICAgICAgICAgICAgICBkYXRlOiBkYXRlLmRhdGUsXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ6ICEhZGF0ZS5kaXNhYmxlZCB8fCAhIWN1c3RvbURhdGUuZGlzYWJsZWQsXG4gICAgICAgICAgICAgICAga2V5RGF0ZTogISFjdXN0b21EYXRlLmtleURhdGUgfHwgISFkYXRlLmtleURhdGUsXG4gICAgICAgICAgICAgICAga2V5RGF0ZVRleHQ6IGN1c3RvbURhdGUua2V5RGF0ZVRleHQgfHwgZGF0ZS5rZXlEYXRlVGV4dCxcbiAgICAgICAgICAgICAgICBsYWJlbDogZGF0ZS5sYWJlbCxcbiAgICAgICAgICAgICAgICBzZWNvbmRhcnk6IGRhdGUuc2Vjb25kYXJ5LFxuICAgICAgICAgICAgICAgIHNlbGVjdGVkOiBkYXRlLnNlbGVjdGVkLFxuICAgICAgICAgICAgICAgIHVpZDogZGF0ZS51aWQsXG4gICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgIHJvd1tkYXRlSW5kZXhdID0gbmV3RGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgI2RhdGVSYW5nZVJvd3NBcmVFcXVhbChcbiAgICByYW5nZUE/OiBTa3lEYXRlUmFuZ2UsXG4gICAgcmFuZ2VCPzogU2t5RGF0ZVJhbmdlLFxuICApOiBib29sZWFuIHwgdW5kZWZpbmVkIHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgICBpZiAoIXJhbmdlQSAmJiAhcmFuZ2VCKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGVsc2UgaWYgKHJhbmdlQSAmJiByYW5nZUIpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIHRoaXMuI2NvbXBhcmVEYXlzKHJhbmdlQS5zdGFydERhdGUsIHJhbmdlQi5zdGFydERhdGUpID09PSAwICYmXG4gICAgICAgIHRoaXMuI2NvbXBhcmVEYXlzKHJhbmdlQS5lbmREYXRlLCByYW5nZUIuZW5kRGF0ZSkgPT09IDBcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICAjZ2V0RGF0ZVJhbmdlKHJvd3M6IFNreURhdGVwaWNrZXJEYXRlW11bXSk6IFNreURhdGVSYW5nZSB8IHVuZGVmaW5lZCB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAocm93cyAmJiByb3dzLmxlbmd0aCA+IDApIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHN0YXJ0RGF0ZTogcm93c1swXVswXS5kYXRlLFxuICAgICAgICBlbmREYXRlOiByb3dzW3Jvd3MubGVuZ3RoIC0gMV1bcm93c1tyb3dzLmxlbmd0aCAtIDFdLmxlbmd0aCAtIDFdLmRhdGUsXG4gICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG59XG4iLCI8dGFibGVcbiAgY2xhc3M9XCJza3ktZGF5cGlja2VyLXRhYmxlXCJcbiAgcm9sZT1cImdyaWRcIlxuICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiZGF0ZXBpY2tlci5kYXRlcGlja2VySWQgKyAnLXRpdGxlJ1wiXG4+XG4gIDx0aGVhZD5cbiAgICA8dHI+XG4gICAgICBAZm9yIChsYWJlbCBvZiBsYWJlbHM7IHRyYWNrIGxhYmVsLmZ1bGwpIHtcbiAgICAgICAgPHRoIHNjb3BlPVwiY29sXCIgY2xhc3M9XCJza3ktZGF0ZXBpY2tlci1jZW50ZXIgc2t5LWRhdGVwaWNrZXItd2Vla2RheXNcIj5cbiAgICAgICAgICA8c21hbGwgW2F0dHIuYXJpYS1sYWJlbF09XCJsYWJlbC5mdWxsXCI+XG4gICAgICAgICAgICA8Yj57eyBsYWJlbC5hYmJyIH19PC9iPlxuICAgICAgICAgIDwvc21hbGw+XG4gICAgICAgIDwvdGg+XG4gICAgICB9XG4gICAgPC90cj5cbiAgPC90aGVhZD5cbiAgPHRib2R5PlxuICAgIDwhLS0gV2FpdCBpbmRpY2F0b3IgZm9yIGFzeW5jIGN1c3RvbSBkYXRlIHN0cmVhbSAtLT5cbiAgICA8c2t5LXdhaXQgW2lzV2FpdGluZ109XCJpc1dhaXRpbmdcIiAvPlxuICAgIEBmb3IgKHJvdyBvZiByb3dzOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgIDx0ciByb2xlPVwicm93XCI+XG4gICAgICAgIEBmb3IgKGRhdGUgb2Ygcm93OyB0cmFjayBkYXRlLnVpZCkge1xuICAgICAgICAgIDx0ZCBjbGFzcz1cInNreS1kYXRlcGlja2VyLWNlbnRlclwiIHJvbGU9XCJncmlkY2VsbFwiIFtpZF09XCJkYXRlLnVpZFwiPlxuICAgICAgICAgICAgPHNreS1kYXlwaWNrZXItY2VsbFxuICAgICAgICAgICAgICBbYWN0aXZlRGF0ZUhhc0NoYW5nZWRdPVwiYWN0aXZlRGF0ZUhhc0NoYW5nZWRcIlxuICAgICAgICAgICAgICBbZGF0ZV09XCJkYXRlXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC90ZD5cbiAgICAgICAgfVxuICAgICAgPC90cj5cbiAgICB9XG4gIDwvdGJvZHk+XG48L3RhYmxlPlxuIl19
|
220
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF5cGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9kYXRldGltZS9zcmMvbGliL21vZHVsZXMvZGF0ZXBpY2tlci9kYXlwaWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2RhdGV0aW1lL3NyYy9saWIvbW9kdWxlcy9kYXRlcGlja2VyL2RheXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7O0FBaUIvQjs7R0FFRztBQUtILE1BQU0sT0FBTyxxQkFBcUI7SUFDaEMsSUFDVyxXQUFXLENBQUMsS0FBNEM7UUFDakUsMEJBQTBCO1FBQzFCLElBQUksS0FBSyxFQUFFLENBQUM7WUFDVixJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMzQyxDQUFDO0lBQ0gsQ0FBQztJQWtCRCxZQUFZLENBQThEO0lBQzFFLFlBQVksQ0FBcUI7SUFDakMsY0FBYyxDQUF1QjtJQUVyQyxZQUFZLFVBQStDO1FBbkJwRCw0QkFBdUIsR0FBRyxJQUFJLFlBQVksRUFFOUMsQ0FBQztRQUdHLGNBQVMsR0FBd0IsS0FBSyxDQUFDO1FBRXZDLHlCQUFvQixHQUFHLEtBQUssQ0FBQztRQUM3QixXQUFNLEdBQVUsRUFBRSxDQUFDO1FBQ25CLFVBQUssR0FBRyxFQUFFLENBQUM7UUFDWCxTQUFJLEdBQTBCLEVBQUUsQ0FBQztRQUNqQyxnQkFBVyxHQUFhLEVBQUUsQ0FBQztRQUlsQyxpQkFBWSxHQUFhLENBQUMsRUFBRSxFQUFFLEVB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LElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO2dCQUMxQixPQUFPLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUk7YUFDdEUsQ0FBQztRQUNKLENBQUM7UUFDRCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDOzhHQW5RVSxxQkFBcUI7a0dBQXJCLHFCQUFxQixzTENqQ2xDLDJoQ0FvQ0E7OzJGREhhLHFCQUFxQjtrQkFKakMsU0FBUzsrQkFDRSxlQUFlO3dHQUtkLFdBQVc7c0JBRHJCLEtBQUs7Z0JBU0MsdUJBQXVCO3NCQUQ3QixNQUFNO2dCQU1BLFNBQVM7c0JBRGYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgU2t5RGF0ZXBpY2tlckNhbGVuZGFyQ2hhbmdlIH0gZnJvbSAnLi9kYXRlcGlja2VyLWNhbGVuZGFyLWNoYW5nZSc7XG5pbXBvcnQgeyBTa3lEYXRlcGlja2VyQ2FsZW5kYXJJbm5lckNvbXBvbmVudCB9IGZyb20gJy4vZGF0ZXBpY2tlci1jYWxlbmRhci1pbm5lci5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5RGF0ZXBpY2tlckN1c3RvbURhdGUgfSBmcm9tICcuL2RhdGVwaWNrZXItY3VzdG9tLWRhdGUnO1xuaW1wb3J0IHsgU2t5RGF0ZXBpY2tlckRhdGUgfSBmcm9tICcuL2RhdGVwaWNrZXItZGF0ZSc7XG5cbi8qKlxuICogSGVscGVyIGludGVyZmFjZSB0byBjb21wYXJlIGRhdGUgcmFuZ2VzLlxuICogQGludGVybmFsXG4gKi9cbmludGVyZmFjZSBTa3lEYXRlUmFuZ2Uge1xuICBlbmREYXRlOiBEYXRlO1xuXG4gIHN0YXJ0RGF0ZTogRGF0ZTtcbn1cblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LWRheXBpY2tlcicsXG4gIHRlbXBsYXRlVXJsOiAnZGF5cGlja2VyLmNvbXBvbmVudC5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgU2t5RGF5UGlja2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95LCBPbkluaXQge1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGN1c3RvbURhdGVzKHZhbHVlOiBTa3lEYXRlcGlja2VyQ3VzdG9tRGF0ZVtdIHwgdW5kZWZpbmVkKSB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMuI2FwcGx5Q3VzdG9tRGF0ZXModmFsdWUsIHRoaXMucm93cyk7XG4gICAgfVxuICB9XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBjYWxlbmRhckRhdGVSYW5nZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8XG4gICAgU2t5RGF0ZXBpY2tlckNhbGVuZGFyQ2hhbmdlIHwgdW5kZWZpbmVkXG4gID4oKTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgaXNXYWl0aW5nOiBib29sZWFuIHwgdW5kZWZpbmVkID0gZmFsc2U7XG5cbiAgcHVibGljIGFjdGl2ZURhdGVIYXNDaGFuZ2VkID0gZmFsc2U7XG4gIHB1YmxpYyBsYWJlbHM6IGFueVtdID0gW107XG4gIHB1YmxpYyB0aXRsZSA9ICcnO1xuICBwdWJsaWMgcm93czogU2t5RGF0ZXBpY2tlckRhdGVbXVtdID0gW107XG4gIHB1YmxpYyB3ZWVrTnVtYmVyczogbnVtYmVyW10gPSBbXTtcbiAgcHVibGljIGRhdGVwaWNrZXI6IFNreURhdGVwaWNrZXJDYWxlbmRhcklubmVyQ29tcG9uZW50O1xuICBwdWJsaWMgQ1VSUkVOVF9USEVNRV9URU1QTEFURTogYW55O1xuXG4gICNkYXlzSW5Nb250aDogbnVtYmVyW10gPSBbMzEsIDI4LCAzMSwgMzAsIDMxLCAzMCwgMzEsIDMxLCAzMCwgMzEsIDMwLCAzMV07XG4gICNpbml0aWFsRGF0ZTogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAjbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgY29uc3RydWN0b3IoZGF0ZXBpY2tlcjogU2t5RGF0ZXBpY2tlckNhbGVuZGFySW5uZXJDb21wb25lbnQpIHtcbiAgICB0aGlzLmRhdGVwaWNrZXIgPSBkYXRlcGlja2VyO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZGF0ZXBpY2tlci5zdGVwRGF5ID0geyBtb250aHM6IDEgfTtcbiAgICB0aGlzLiNpbml0aWFsRGF0ZSA9IHRoaXMuZGF0ZXBpY2tlci5hY3RpdmVEYXRlLmdldERhdGUoKTtcblxuICAgIHRoaXMuZGF0ZXBpY2tlci5zZXRSZWZyZXNoVmlld0hhbmRsZXIoKCkgPT4gdGhpcy4jcmVmcmVzaERheVZpZXcoKSwgJ2RheScpO1xuXG4gICAgdGhpcy5kYXRlcGlja2VyLnNldENvbXBhcmVIYW5kbGVyKHRoaXMuI2NvbXBhcmVEYXlzLCAnZGF5Jyk7XG5cbiAgICB0aGlzLmRhdGVwaWNrZXIuc2V0S2V5ZG93bkhhbmRsZXIoKGtleTogc3RyaW5nLCBldmVudDogS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgICAgdGhpcy4ja2V5ZG93bkRheXMoa2V5LCBldmVudCk7XG4gICAgfSwgJ2RheScpO1xuXG4gICAgdGhpcy5kYXRlcGlja2VyLnJlZnJlc2hWaWV3KCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy4jbmdVbnN1YnNjcmliZS5uZXh0KCk7XG4gICAgdGhpcy4jbmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldERhdGVzKHN0YXJ0RGF0ZTogRGF0ZSwgbjogbnVtYmVyKTogRGF0ZVtdIHtcbiAgICBjb25zdCBkYXRlczogRGF0ZVtdID0gbmV3IEFycmF5KG4pO1xuICAgIGxldCBjdXJyZW50ID0gbmV3IERhdGUoc3RhcnREYXRlLmdldFRpbWUoKSk7XG4gICAgbGV0IGkgPSAwO1xuICAgIGxldCBkYXRlOiBEYXRlO1xuICAgIHdoaWxlIChpIDwgbikge1xuICAgICAgZGF0ZSA9IG5ldyBEYXRlKGN1cnJlbnQuZ2V0VGltZSgpKTtcbiAgICAgIGRhdGUgPSB0aGlzLmRhdGVwaWNrZXIuZml4VGltZVpvbmUoZGF0ZSk7XG4gICAgICBkYXRlc1tpKytdID0gZGF0ZTtcbiAgICAgIGN1cnJlbnQgPSBuZXcgRGF0ZShcbiAgICAgICAgY3VycmVudC5nZXRGdWxsWWVhcigpLFxuICAgICAgICBjdXJyZW50LmdldE1vbnRoKCksXG4gICAgICAgIGN1cnJlbnQuZ2V0RGF0ZSgpICsgMSxcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiBkYXRlcztcbiAgfVxuXG4gICNjb21wYXJlRGF5cyhkYXRlMTogRGF0ZSwgZGF0ZTI6IERhdGUpOiBudW1iZXIge1xuICAgIGNvbnN0IGQxID0gbmV3IERhdGUoZGF0ZTEuZ2V0RnVsbFllYXIoKSwgZGF0ZTEuZ2V0TW9udGgoKSwgZGF0ZTEuZ2V0RGF0ZSgpKTtcbiAgICBjb25zdCBkMiA9IG5ldyBEYXRlKGRhdGUyLmdldEZ1bGxZZWFyKCksIGRhdGUyLmdldE1vbnRoKCksIGRhdGUyLmdldERhdGUoKSk7XG4gICAgcmV0dXJuIGQxLmdldFRpbWUoKSAtIGQyLmdldFRpbWUoKTtcbiAgfVxuXG4gICNyZWZyZXNoRGF5VmlldygpOiBzdHJpbmcge1xuICAgIGNvbnN0IHllYXIgPSB0aGlzLmRhdGVwaWNrZXIuYWN0aXZlRGF0ZS5nZXRGdWxsWWVhcigpO1xuICAgIGNvbnN0IG1vbnRoID0gdGhpcy5kYXRlcGlja2VyLmFjdGl2ZURhdGUuZ2V0TW9udGgoKTtcbiAgICBjb25zdCBmaXJzdERheU9mTW9udGggPSBuZXcgRGF0ZSh5ZWFyLCBtb250aCwgMSk7XG4gICAgY29uc3QgZGlmZmVyZW5jZSA9IHRoaXMuZGF0ZXBpY2tlci5zdGFydGluZ0RheSAtIGZpcnN0RGF5T2ZNb250aC5nZXREYXkoKTtcbiAgICBjb25zdCBudW1EaXNwbGF5ZWRGcm9tUHJldmlvdXNNb250aCA9XG4gICAgICBkaWZmZXJlbmNlID4gMCA/IDcgLSBkaWZmZXJlbmNlIDogLWRpZmZlcmVuY2U7XG4gICAgY29uc3QgZmlyc3REYXRlID0gbmV3IERhdGUoZmlyc3REYXlPZk1vbnRoLmdldFRpbWUoKSk7XG5cbiAgICBpZiAodGhpcy5kYXRlcGlja2VyLmFjdGl2ZURhdGUuZ2V0RGF0ZSgpICE9PSB0aGlzLiNpbml0aWFsRGF0ZSkge1xuICAgICAgdGhpcy5hY3RpdmVEYXRlSGFzQ2hhbmdlZCA9IHRydWU7XG4gICAgfVxuXG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAvKiBzYW5pdHkgY2hlY2sgKi9cbiAgICBpZiAobnVtRGlzcGxheWVkRnJvbVByZXZpb3VzTW9udGggPiAwKSB7XG4gICAgICBmaXJzdERhdGUuc2V0RGF0ZSgtbnVtRGlzcGxheWVkRnJvbVByZXZpb3VzTW9udGggKyAxKTtcbiAgICB9XG5cbiAgICAvLyA0MiBpcyB0aGUgbnVtYmVyIG9mIGRheXMgb24gYSBzaXgtd2VlayBjYWxlbmRhclxuICAgIGNvbnN0IGRheXM6IERhdGVbXSA9IHRoaXMuZ2V0RGF0ZXMoZmlyc3REYXRlLCA0Mik7XG4gICAgY29uc3QgcGlja2VyRGF0ZXM6IFNreURhdGVwaWNrZXJEYXRlW10gPSBbXTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IDQyOyBpKyspIHtcbiAgICAgIGNvbnN0IF9kYXRlT2JqZWN0ID0gdGhpcy5kYXRlcGlja2VyLmNyZWF0ZURhdGVPYmplY3QoXG4gICAgICAgIGRheXNbaV0sXG4gICAgICAgIHRoaXMuZGF0ZXBpY2tlci5mb3JtYXREYXksXG4gICAgICAgIGRheXNbaV0uZ2V0TW9udGgoKSAhPT0gbW9udGgsXG4gICAgICAgIHRoaXMuZGF0ZXBpY2tlci5kYXRlcGlja2VySWQgKyAnLScgKyBpLFxuICAgICAgKTtcbiAgICAgIHBpY2tlckRhdGVzW2ldID0gX2RhdGVPYmplY3Q7XG4gICAgfVxuXG4gICAgdGhpcy5sYWJlbHMgPSBbXTtcbiAgICBmb3IgKGxldCBqID0gMDsgaiA8IDc7IGorKykge1xuICAgICAgdGhpcy5sYWJlbHNbal0gPSB7fTtcbiAgICAgIHRoaXMubGFiZWxzW2pdLmFiYnIgPSB0aGlzLmRhdGVwaWNrZXIuZGF0ZUZpbHRlcihcbiAgICAgICAgcGlja2VyRGF0ZXNbal0uZGF0ZSxcbiAgICAgICAgdGhpcy5kYXRlcGlja2VyLmZvcm1hdERheUhlYWRlcixcbiAgICAgICk7XG4gICAgICB0aGlzLmxhYmVsc1tqXS5mdWxsID0gdGhpcy5kYXRlcGlja2VyLmRhdGVGaWx0ZXIoXG4gICAgICAgIHBpY2tlckRhdGVzW2pdLmRhdGUsXG4gICAgICAgICdFRUVFJyxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgY29uc3Qgb2xkRGF0ZVJhbmdlID0gdGhpcy4jZ2V0RGF0ZVJhbmdlKHRoaXMucm93cyk7XG4gICAgdGhpcy5yb3dzID0gdGhpcy5kYXRlcGlja2VyLmNyZWF0ZUNhbGVuZGFyUm93cyhwaWNrZXJEYXRlcywgNyk7XG4gICAgY29uc3QgbmV3RGF0ZVJhbmdlID0gdGhpcy4jZ2V0RGF0ZVJhbmdlKHRoaXMucm93cyk7XG5cbiAgICBpZiAoIXRoaXMuI2RhdGVSYW5nZVJvd3NBcmVFcXVhbChvbGREYXRlUmFuZ2UsIG5ld0RhdGVSYW5nZSkpIHtcbiAgICAgIC8vIFNhZmV0eSBjaGVja1xuICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgIGlmIChuZXdEYXRlUmFuZ2UpIHtcbiAgICAgICAgdGhpcy5jYWxlbmRhckRhdGVSYW5nZUNoYW5nZS5uZXh0KHtcbiAgICAgICAgICBzdGFydERhdGU6IG5ld0RhdGVSYW5nZS5zdGFydERhdGUsXG4gICAgICAgICAgZW5kRGF0ZTogbmV3RGF0ZVJhbmdlLmVuZERhdGUsXG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5jYWxlbmRhckRhdGVSYW5nZUNoYW5nZS5uZXh0KHVuZGVmaW5lZCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuZGF0ZXBpY2tlci5kYXRlRmlsdGVyKFxuICAgICAgdGhpcy5kYXRlcGlja2VyLmFjdGl2ZURhdGUsXG4gICAgICB0aGlzLmRhdGVwaWNrZXIuZm9ybWF0RGF5VGl0bGUsXG4gICAgKTtcbiAgfVxuXG4gICNrZXlkb3duRGF5cyhrZXk6IHN0cmluZywgZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBsZXQgZGF0ZSA9IHRoaXMuZGF0ZXBpY2tlci5hY3RpdmVEYXRlLmdldERhdGUoKTtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIC8qIHNhbml0eSBjaGVjayAqL1xuICAgIGlmIChrZXkgPT09ICdhcnJvd2xlZnQnKSB7XG4gICAgICBkYXRlID0gZGF0ZSAtIDE7XG4gICAgfSBlbHNlIGlmIChrZXkgPT09ICdhcnJvd3VwJykge1xuICAgICAgZGF0ZSA9IGRhdGUgLSA3O1xuICAgIH0gZWxzZSBpZiAoa2V5ID09PSAnYXJyb3dyaWdodCcpIHtcbiAgICAgIGRhdGUgPSBkYXRlICsgMTtcbiAgICB9IGVsc2UgaWYgKGtleSA9PT0gJ2Fycm93ZG93bicpIHtcbiAgICAgIGRhdGUgPSBkYXRlICsgNztcbiAgICB9IGVsc2UgaWYgKGtleSA9PT0gJ3BhZ2V1cCcgfHwga2V5ID09PSAncGFnZWRvd24nKSB7XG4gICAgICBjb25zdCBtb250aCA9XG4gICAgICAgIHRoaXMuZGF0ZXBpY2tlci5hY3RpdmVEYXRlLmdldE1vbnRoKCkgKyAoa2V5ID09PSAncGFnZXVwJyA/IC0xIDogMSk7XG4gICAgICB0aGlzLmRhdGVwaWNrZXIuYWN0aXZlRGF0ZS5zZXRNb250aChtb250aCwgMSk7XG4gICAgICBkYXRlID0gTWF0aC5taW4oXG4gICAgICAgIHRoaXMuI2dldERheXNJbk1vbnRoKFxuICAgICAgICAgIHRoaXMuZGF0ZXBpY2tlci5hY3RpdmVEYXRlLmdldEZ1bGxZZWFyKCksXG4gICAgICAgICAgdGhpcy5kYXRlcGlja2VyLmFjdGl2ZURhdGUuZ2V0TW9udGgoKSxcbiAgICAgICAgKSxcbiAgICAgICAgZGF0ZSxcbiAgICAgICk7XG4gICAgfSBlbHNlIGlmIChrZXkgPT09ICdob21lJykge1xuICAgICAgZGF0ZSA9IDE7XG4gICAgfSBlbHNlIGlmIChrZXkgPT09ICdlbmQnKSB7XG4gICAgICBkYXRlID0gdGhpcy4jZ2V0RGF5c0luTW9udGgoXG4gICAgICAgIHRoaXMuZGF0ZXBpY2tlci5hY3RpdmVEYXRlLmdldEZ1bGxZZWFyKCksXG4gICAgICAgIHRoaXMuZGF0ZXBpY2tlci5hY3RpdmVEYXRlLmdldE1vbnRoKCksXG4gICAgICApO1xuICAgIH1cbiAgICB0aGlzLmRhdGVwaWNrZXIuYWN0aXZlRGF0ZS5zZXREYXRlKGRhdGUpO1xuICAgIHRoaXMuZGF0ZXBpY2tlci5hbm5vdW5jZURhdGUoXG4gICAgICB0aGlzLmRhdGVwaWNrZXIuYWN0aXZlRGF0ZSxcbiAgICAgIHRoaXMuZGF0ZXBpY2tlci5mb3JtYXREYXlMYWJlbCxcbiAgICApO1xuICB9XG5cbiAgI2dldERheXNJbk1vbnRoKHllYXI6IG51bWJlciwgbW9udGg6IG51bWJlcik6IG51bWJlciB7XG4gICAgcmV0dXJuIG1vbnRoID09PSAxICYmXG4gICAgICB5ZWFyICUgNCA9PT0gMCAmJlxuICAgICAgKHllYXIgJSA0MDAgPT09IDAgfHwgeWVhciAlIDEwMCAhPT0gMClcbiAgICAgID8gMjlcbiAgICAgIDogdGhpcy4jZGF5c0luTW9udGhbbW9udGhdO1xuICB9XG5cbiAgLyoqXG4gICAqIEFwcGxpZXMgY3VzdG9tIGRhdGUgcHJvcGVydGllcyB0byB0aGUgZXhpc3RpbmcgZGF0ZXMgZGlzcGxheWVkIGluIHRoZSBjYWxlbmRhci5cbiAgICovXG4gICNhcHBseUN1c3RvbURhdGVzKFxuICAgIGN1c3RvbURhdGVzOiBTa3lEYXRlcGlja2VyQ3VzdG9tRGF0ZVtdLFxuICAgIGRhdGVSb3dzOiBTa3lEYXRlcGlja2VyRGF0ZVtdW10sXG4gICk6IHZvaWQge1xuICAgIGxldCBkYXRlOiBTa3lEYXRlcGlja2VyRGF0ZTtcbiAgICBsZXQgbmV3RGF0ZTogU2t5RGF0ZXBpY2tlckRhdGU7XG4gICAgbGV0IGRhdGVJbmRleDogbnVtYmVyO1xuXG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAoY3VzdG9tRGF0ZXMgJiYgZGF0ZVJvd3MpIHtcbiAgICAgIGN1c3RvbURhdGVzLmZvckVhY2goKGN1c3RvbURhdGUpID0+IHtcbiAgICAgICAgZGF0ZUluZGV4ID0gLTE7XG4gICAgICAgIGRhdGVSb3dzLmZvckVhY2goKHJvdykgPT4ge1xuICAgICAgICAgIGlmIChkYXRlSW5kZXggPT09IC0xKSB7XG4gICAgICAgICAgICBkYXRlSW5kZXggPSByb3cuZmluZEluZGV4KChkKSA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiBkLmRhdGUuZ2V0VGltZSgpID09PSBjdXN0b21EYXRlLmRhdGUuZ2V0VGltZSgpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBpZiAoZGF0ZUluZGV4ID4gLTEpIHtcbiAgICAgICAgICAgICAgZGF0ZSA9IHJvd1tkYXRlSW5kZXhdO1xuICAgICAgICAgICAgICAvLyBSZXBsYWNlIHRoZSBkYXRlIHdpdGggYSBuZXcgaW5zdGFuY2Ugc28gdGhlIGRpc3BsYXkgZ2V0cyB1cGRhdGVkLlxuICAgICAgICAgICAgICBuZXdEYXRlID0ge1xuICAgICAgICAgICAgICAgIGN1cnJlbnQ6IGRhdGUuY3VycmVudCxcbiAgICAgICAgICAgICAgICBkYXRlOiBkYXRlLmRhdGUsXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ6ICEhZGF0ZS5kaXNhYmxlZCB8fCAhIWN1c3RvbURhdGUuZGlzYWJsZWQsXG4gICAgICAgICAgICAgICAga2V5RGF0ZTogISFjdXN0b21EYXRlLmtleURhdGUgfHwgISFkYXRlLmtleURhdGUsXG4gICAgICAgICAgICAgICAga2V5RGF0ZVRleHQ6IGN1c3RvbURhdGUua2V5RGF0ZVRleHQgfHwgZGF0ZS5rZXlEYXRlVGV4dCxcbiAgICAgICAgICAgICAgICBsYWJlbDogZGF0ZS5sYWJlbCxcbiAgICAgICAgICAgICAgICBzZWNvbmRhcnk6IGRhdGUuc2Vjb25kYXJ5LFxuICAgICAgICAgICAgICAgIHNlbGVjdGVkOiBkYXRlLnNlbGVjdGVkLFxuICAgICAgICAgICAgICAgIHVpZDogZGF0ZS51aWQsXG4gICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgIHJvd1tkYXRlSW5kZXhdID0gbmV3RGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgI2RhdGVSYW5nZVJvd3NBcmVFcXVhbChcbiAgICByYW5nZUE/OiBTa3lEYXRlUmFuZ2UsXG4gICAgcmFuZ2VCPzogU2t5RGF0ZVJhbmdlLFxuICApOiBib29sZWFuIHwgdW5kZWZpbmVkIHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgICBpZiAoIXJhbmdlQSAmJiAhcmFuZ2VCKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGVsc2UgaWYgKHJhbmdlQSAmJiByYW5nZUIpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIHRoaXMuI2NvbXBhcmVEYXlzKHJhbmdlQS5zdGFydERhdGUsIHJhbmdlQi5zdGFydERhdGUpID09PSAwICYmXG4gICAgICAgIHRoaXMuI2NvbXBhcmVEYXlzKHJhbmdlQS5lbmREYXRlLCByYW5nZUIuZW5kRGF0ZSkgPT09IDBcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICAjZ2V0RGF0ZVJhbmdlKHJvd3M6IFNreURhdGVwaWNrZXJEYXRlW11bXSk6IFNreURhdGVSYW5nZSB8IHVuZGVmaW5lZCB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAocm93cyAmJiByb3dzLmxlbmd0aCA+IDApIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHN0YXJ0RGF0ZTogcm93c1swXVswXS5kYXRlLFxuICAgICAgICBlbmREYXRlOiByb3dzW3Jvd3MubGVuZ3RoIC0gMV1bcm93c1tyb3dzLmxlbmd0aCAtIDFdLmxlbmd0aCAtIDFdLmRhdGUsXG4gICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG59XG4iLCI8dGFibGVcbiAgY2xhc3M9XCJza3ktZGF5cGlja2VyLXRhYmxlXCJcbiAgcm9sZT1cImdyaWRcIlxuICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiZGF0ZXBpY2tlci5kYXRlcGlja2VySWQgKyAnLXRpdGxlJ1wiXG4+XG4gIDx0aGVhZD5cbiAgICA8dHI+XG4gICAgICBAZm9yIChsYWJlbCBvZiBsYWJlbHM7IHRyYWNrIGxhYmVsLmZ1bGwpIHtcbiAgICAgICAgPHRoIHNjb3BlPVwiY29sXCIgY2xhc3M9XCJza3ktZGF0ZXBpY2tlci1jZW50ZXIgc2t5LWRhdGVwaWNrZXItd2Vla2RheXNcIj5cbiAgICAgICAgICA8IS0tIGRpc3BsYXk6IGlubGluZSAtLT5cbiAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgY2xhc3M9XCJza3ktZGF0ZXBpY2tlci13ZWVrZGF5LXRleHRcIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJsYWJlbC5mdWxsXCJcbiAgICAgICAgICAgID57eyBsYWJlbC5hYmJyIH19PC9zcGFuXG4gICAgICAgICAgPlxuICAgICAgICA8L3RoPlxuICAgICAgfVxuICAgIDwvdHI+XG4gIDwvdGhlYWQ+XG4gIDx0Ym9keT5cbiAgICA8IS0tIFdhaXQgaW5kaWNhdG9yIGZvciBhc3luYyBjdXN0b20gZGF0ZSBzdHJlYW0gLS0+XG4gICAgPHNreS13YWl0IFtpc1dhaXRpbmddPVwiaXNXYWl0aW5nXCIgLz5cbiAgICBAZm9yIChyb3cgb2Ygcm93czsgdHJhY2sgJGluZGV4KSB7XG4gICAgICA8dHIgcm9sZT1cInJvd1wiPlxuICAgICAgICBAZm9yIChkYXRlIG9mIHJvdzsgdHJhY2sgZGF0ZS51aWQpIHtcbiAgICAgICAgICA8dGQgY2xhc3M9XCJza3ktZGF0ZXBpY2tlci1jZW50ZXJcIiByb2xlPVwiZ3JpZGNlbGxcIiBbaWRdPVwiZGF0ZS51aWRcIj5cbiAgICAgICAgICAgIDxza3ktZGF5cGlja2VyLWNlbGxcbiAgICAgICAgICAgICAgW2FjdGl2ZURhdGVIYXNDaGFuZ2VkXT1cImFjdGl2ZURhdGVIYXNDaGFuZ2VkXCJcbiAgICAgICAgICAgICAgW2RhdGVdPVwiZGF0ZVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvdGQ+XG4gICAgICAgIH1cbiAgICAgIDwvdHI+XG4gICAgfVxuICA8L3Rib2R5PlxuPC90YWJsZT5cbiJdfQ==
|
@@ -6,7 +6,7 @@
|
|
6
6
|
* To update this file, simply rerun the command.
|
7
7
|
*/
|
8
8
|
import { NgModule } from '@angular/core';
|
9
|
-
import {
|
9
|
+
import { SkyI18nModule, SkyLibResourcesService, } from '@skyux/i18n';
|
10
10
|
import * as i0 from "@angular/core";
|
11
11
|
const RESOURCES = {
|
12
12
|
'EN-AU': {
|
@@ -113,36 +113,18 @@ const RESOURCES = {
|
|
113
113
|
},
|
114
114
|
};
|
115
115
|
SkyLibResourcesService.addResources(RESOURCES);
|
116
|
-
export class SkyDatetimeResourcesProvider {
|
117
|
-
getString(localeInfo, name) {
|
118
|
-
return getLibStringForLocale(RESOURCES, localeInfo.locale, name);
|
119
|
-
}
|
120
|
-
}
|
121
116
|
/**
|
122
117
|
* Import into any component library module that needs to use resource strings.
|
123
118
|
*/
|
124
119
|
export class SkyDatetimeResourcesModule {
|
125
120
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SkyDatetimeResourcesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
126
121
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.8", ngImport: i0, type: SkyDatetimeResourcesModule, exports: [SkyI18nModule] }); }
|
127
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SkyDatetimeResourcesModule,
|
128
|
-
{
|
129
|
-
provide: SKY_LIB_RESOURCES_PROVIDERS,
|
130
|
-
useClass: SkyDatetimeResourcesProvider,
|
131
|
-
multi: true,
|
132
|
-
},
|
133
|
-
], imports: [SkyI18nModule] }); }
|
122
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SkyDatetimeResourcesModule, imports: [SkyI18nModule] }); }
|
134
123
|
}
|
135
124
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SkyDatetimeResourcesModule, decorators: [{
|
136
125
|
type: NgModule,
|
137
126
|
args: [{
|
138
127
|
exports: [SkyI18nModule],
|
139
|
-
providers: [
|
140
|
-
{
|
141
|
-
provide: SKY_LIB_RESOURCES_PROVIDERS,
|
142
|
-
useClass: SkyDatetimeResourcesProvider,
|
143
|
-
multi: true,
|
144
|
-
},
|
145
|
-
],
|
146
128
|
}]
|
147
129
|
}] });
|
148
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2t5LWRhdGV0aW1lLXJlc291cmNlcy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZGF0ZXRpbWUvc3JjL2xpYi9tb2R1bGVzL3NoYXJlZC9za3ktZGF0ZXRpbWUtcmVzb3VyY2VzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwwQkFBMEI7QUFFMUI7Ozs7O0dBS0c7QUFDSCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFDTCwyQkFBMkIsRUFFM0IsYUFBYSxFQUdiLHNCQUFzQixFQUN0QixxQkFBcUIsR0FDdEIsTUFBTSxhQUFhLENBQUM7O0FBRXJCLE1BQU0sU0FBUyxHQUFvQztJQUNqRCxPQUFPLEVBQUU7UUFDUCxxREFBcUQsRUFBRTtZQUNyRCxPQUFPLEVBQUUscUJBQXFCO1NBQy9CO1FBQ0QscURBQXFELEVBQUU7WUFDckQsT0FBTyxFQUFFLHFCQUFxQjtTQUMvQjtRQUNELHFEQUFxRCxFQUFFO1lBQ3JELE9BQU8sRUFBRSxxQkFBcUI7U0FDL0I7S0FDRjtJQUNELE9BQU8sRUFBRTtRQUNQLHFEQUFxRCxFQUFFO1lBQ3JELE9BQU8sRUFBRSxxQkFBcUI7U0FDL0I7UUFDRCxxREFBcUQsRUFBRTtZQUNyRCxPQUFPLEVBQUUscUJBQXFCO1NBQy9CO1FBQ0QscURBQXFELEVBQUU7WUFDckQsT0FBTyxFQUFFLHFCQUFxQjtTQUMvQjtLQUNGO0lBQ0QsT0FBTyxFQUFFO1FBQ1AscURBQXFELEVBQUU7WUFDckQsT0FBTyxFQUFFLHFCQUFxQjtTQUMvQjtRQUNELHFEQUFxRCxFQUFFO1lBQ3JELE9BQU8sRUFBRSxxQkFBcUI7U0FDL0I7UUFDRCxxREFBcUQsRUFBRTtZQUNyRCxPQUFPLEVBQUUscUJBQXFCO1NBQy9CO0tBQ0Y7SUFDRCxPQUFPLEVBQUU7UUFDUCxpQ0FBaUMsRUFBRSxFQUFFLE9BQU8s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QixDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUUvQyxNQUFNLE9BQU8sNEJBQTRCO0lBQ2hDLFNBQVMsQ0FDZCxVQUE0QixFQUM1QixJQUFZO1FBRVosT0FBTyxxQkFBcUIsQ0FBQyxTQUFTLEVBQUUsVUFBVSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNuRSxDQUFDO0NBQ0Y7QUFFRDs7R0FFRztBQVdILE1BQU0sT0FBTywwQkFBMEI7OEdBQTFCLDBCQUEwQjsrR0FBMUIsMEJBQTBCLFlBVDNCLGFBQWE7K0dBU1osMEJBQTBCLGFBUjFCO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLDJCQUEyQjtnQkFDcEMsUUFBUSxFQUFFLDRCQUE0QjtnQkFDdEMsS0FBSyxFQUFFLElBQUk7YUFDWjtTQUNGLFlBUFMsYUFBYTs7MkZBU1osMEJBQTBCO2tCQVZ0QyxRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLGFBQWEsQ0FBQztvQkFDeEIsU0FBUyxFQUFFO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSwyQkFBMkI7NEJBQ3BDLFFBQVEsRUFBRSw0QkFBNEI7NEJBQ3RDLEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLyogaXN0YW5idWwgaWdub3JlIGZpbGUgKi9cblxuLyoqXG4gKiBOT1RJQ0U6IERPIE5PVCBNT0RJRlkgVEhJUyBGSUxFIVxuICogVGhlIGNvbnRlbnRzIG9mIHRoaXMgZmlsZSB3ZXJlIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5XG4gKiB0aGUgJ25nIGdlbmVyYXRlIEBza3l1eC9pMThuOmxpYi1yZXNvdXJjZXMtbW9kdWxlIGxpYi9tb2R1bGVzL3NoYXJlZC9za3ktZGF0ZXRpbWUnIHNjaGVtYXRpYy5cbiAqIFRvIHVwZGF0ZSB0aGlzIGZpbGUsIHNpbXBseSByZXJ1biB0aGUgY29tbWFuZC5cbiAqL1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIFNLWV9MSUJfUkVTT1VSQ0VTX1BST1ZJREVSUyxcbiAgU2t5QXBwTG9jYWxlSW5mbyxcbiAgU2t5STE4bk1vZHVsZSxcbiAgU2t5TGliUmVzb3VyY2VzLFxuICBTa3lMaWJSZXNvdXJjZXNQcm92aWRlcixcbiAgU2t5TGliUmVzb3VyY2VzU2VydmljZSxcbiAgZ2V0TGliU3RyaW5nRm9yTG9jYWxlLFxufSBmcm9tICdAc2t5dXgvaTE4bic7XG5cbmNvbnN0IFJFU09VUkNFUzogUmVjb3JkPHN0cmluZywgU2t5TGliUmVzb3VyY2VzPiA9IHtcbiAgJ0VOLUFVJzoge1xuICAgIHNreXV4X2RhdGVfcmFuZ2VfcGlja2VyX2Zvcm1hdF9sYWJlbF9sYXN0X2Zpc2NhbF95ZWFyOiB7XG4gICAgICBtZXNzYWdlOiAnTGFzdCBmaW5hbmNpYWwgeWVhcicsXG4gICAgfSxcbiAgICBza3l1eF9kYXRlX3JhbmdlX3BpY2tlcl9mb3JtYXRfbGFiZWxfdGhpc19maXNjYWxfeWVhcjoge1xuICAgICAgbWVzc2FnZTogJ1RoaXMgZmluYW5jaWFsIHllYXInLFxuICAgIH0sXG4gICAgc2t5dXhfZGF0ZV9yYW5nZV9waWNrZXJfZm9ybWF0X2xhYmVsX25leHRfZmlzY2FsX3llYXI6IHtcbiAgICAgIG1lc3NhZ2U6ICdOZXh0IGZpbmFuY2lhbCB5ZWFyJyxcbiAgICB9LFxuICB9LFxuICAnRU4tR0InOiB7XG4gICAgc2t5dXhfZGF0ZV9yYW5nZV9waWNrZXJfZm9ybWF0X2xhYmVsX2xhc3RfZmlzY2FsX3llYXI6IHtcbiAgICAgIG1lc3NhZ2U6ICdMYXN0IGZpbmFuY2lhbCB5ZWFyJyxcbiAgICB9LFxuICAgIHNreXV4X2RhdGVfcmFuZ2VfcGlja2VyX2Zvcm1hdF9sYWJlbF90aGlzX2Zpc2NhbF95ZWFyOiB7XG4gICAgICBtZXNzYWdlOiAnVGhpcyBmaW5hbmNpYWwgeWVhcicsXG4gICAgfSxcbiAgICBza3l1eF9kYXRlX3JhbmdlX3BpY2tlcl9mb3JtYXRfbGFiZWxfbmV4dF9maXNjYWxfeWVhcjoge1xuICAgICAgbWVzc2FnZTogJ05leHQgZmluYW5jaWFsIHllYXInLFxuICAgIH0sXG4gIH0sXG4gICdFTi1OWic6IHtcbiAgICBza3l1eF9kYXRlX3JhbmdlX3BpY2tlcl9mb3JtYXRfbGFiZWxfbGFzdF9maXNjYWxfeWVhcjoge1xuICAgICAgbWVzc2FnZTogJ0xhc3QgZmluYW5jaWFsIHllYXInLFxuICAgIH0sXG4gICAgc2t5dXhfZGF0ZV9yYW5nZV9waWNrZXJfZm9ybWF0X2xhYmVsX3RoaXNfZmlzY2FsX3llYXI6IHtcbiAgICAgIG1lc3NhZ2U6ICdUaGlzIGZpbmFuY2lhbCB5ZWFyJyxcbiAgICB9LFxuICAgIHNreXV4X2RhdGVfcmFuZ2VfcGlja2VyX2Zvcm1hdF9sYWJlbF9uZXh0X2Zpc2NhbF95ZWFyOiB7XG4gICAgICBtZXNzYWdlOiAnTmV4dCBmaW5hbmNpYWwgeWVhcicsXG4gICAgfSxcbiAgfSxcbiAgJ0VOLVVTJzoge1xuICAgIHNreXV4X2RhdGVwaWNrZXJfZm9ybWF0X2hpbnRfdGV4dDogeyBtZXNzYWdlOiAnVXNlIHRoZSBmb3JtYXQgezB9LicgfSxcbiAgICBza3l1eF9kYXRlcGlja2VyX3RyaWdnZXJfYnV0dG9uX2xhYmVsOiB7IG1lc3NhZ2U6ICdTZWxlY3QgZGF0ZScgfSxcbiAgICBza3l1eF9kYXRlcGlja2VyX3RyaWdnZXJfYnV0dG9uX2xhYmVsX2NvbnRleHQ6IHtcbiAgICAgIG1lc3NhZ2U6ICdPcGVuIGNhbGVuZGFyIGZvciB7MH0nLFxuICAgIH0sXG4gICAgc2t5dXhfZGF0ZXBpY2tlcl9tb3ZlX2NhbGVuZGFyX3ByZXZpb3VzX2RheTogeyBtZXNzYWdlOiAnUHJldmlvdXMgbW9udGgnIH0sXG4gICAgc2t5dXhfZGF0ZXBpY2tlcl9tb3ZlX2NhbGVuZGFyX25leHRfZGF5OiB7IG1lc3NhZ2U6ICdOZXh0IG1vbnRoJyB9LFxuICAgIHNreXV4X2RhdGVwaWNrZXJfbW92ZV9jYWxlbmRhcl9wcmV2aW91c19tb250aDogeyBtZXNzYWdlOiAnUHJldmlvdXMgeWVhcicgfSxcbiAgICBza3l1eF9kYXRlcGlja2VyX21vdmVfY2FsZW5kYXJfbmV4dF9tb250aDogeyBtZXNzYWdlOiAnTmV4dCB5ZWFyJyB9LFxuICAgIHNreXV4X2RhdGVwaWNrZXJfbW92ZV9jYWxlbmRhcl9wcmV2aW91c195ZWFyOiB7IG1lc3NhZ2U6ICdQcmV2aW91cyBwYWdlJyB9LFxuICAgIHNreXV4X2RhdGVwaWNrZXJfbW92ZV9jYWxlbmRhcl9uZXh0X3llYXI6IHsgbWVzc2FnZTogJ05leHQgcGFnZScgfSxcbiAgICBza3l1eF90aW1lcGlja2VyX2J1dHRvbl9sYWJlbDogeyBtZXNzYWdlOiAnQ2hvb3NlIHRpbWUnIH0sXG4gICAgc2t5dXhfdGltZXBpY2tlcl9idXR0b25fbGFiZWxfY29udGV4dDoge1xuICAgICAgbWVzc2FnZTogJ09wZW4gdGltZSBwaWNrZXIgZm9yIHswfScsXG4gICAgfSxcbiAgICBza3l1eF90aW1lcGlja2VyX2Nsb3NlOiB7IG1lc3NhZ2U6ICdEb25lJyB9LFxuICAgIHNreXV4X2RhdGVfcmFuZ2VfcGlja2VyX2RlZmF1bHRfbGFiZWw6IHsgbWVzc2FnZTogJ1NlbGVjdCBhIGRhdGUgcmFuZ2UnIH0sXG4gICAgc2t5dXhfZGF0ZV9yYW5nZV9waWNrZXJfZW5kX2RhdGVfYmVmb3JlX3N0YXJ0X2RhdGVfZXJyb3JfbGFiZWxfdGV4dDoge1xuICAgICAgbWVzc2FnZTpcbiAgICAgICAgJ0NoYW5nZSB0aGUgZGF0ZSByYW5nZSBzbyB0aGF0IHRoZSBlbmQgZGF0ZSBpcyBiZWZvcmUgdGhlIHN0YXJ0IGRhdGUuJyxcbiAgICB9LFxuICAgIHNreXV4X2RhdGVfcmFuZ2VfcGlja2VyX2Zvcm1hdF9sYWJlbF9zcGVjaWZpY19yYW5nZToge1xuICAgICAgbWVzc2FnZTogJ1NwZWNpZmljIHJhbmdlJyxcbiAgICB9LFxuICAgIHNreXV4X2RhdGVfcmFuZ2VfcGlja2VyX2Zvcm1hdF9sYWJlbF9iZWZvcmU6IHsgbWVzc2FnZTogJ0JlZm9yZScgfSxcbiAgICBza3l1eF9kYXRlX3JhbmdlX3BpY2tlcl9mb3JtYXRfbGFiZWxfYWZ0ZXI6IHsgbWVzc2FnZTogJ0FmdGVyJyB9LFxuICAgIHNreXV4X2RhdGVfcmFuZ2VfcGlja2VyX2Zvcm1hdF9sYWJlbF9hbnlfdGltZTogeyBtZXNzYWdlOiAnQXQgYW55IHRpbWUnIH0sXG4gICAgc2t5dXhfZGF0ZV9yYW5nZV9waWNrZXJfZm9ybWF0X2xhYmVsX3llc3RlcmRheTogeyBtZXNzYWdlOiAnWWVzdGVyZGF5JyB9LFxuICAgIHNreXV4X2RhdGVfcmFuZ2VfcGlja2VyX2Zvcm1hdF9sYWJlbF90b2RheTogeyBtZXNzYWdlOiAnVG9kYXknIH0sXG4gICAgc2t5dXhfZGF0ZV9yYW5nZV9waWNrZXJfZm9ybWF0X2xhYmVsX3RvbW9ycm93OiB7IG1lc3NhZ2U6ICdUb21vcnJvdycgfSxcbiAgICBza3l1eF9kYXRlX3JhbmdlX3BpY2tlcl9mb3JtYXRfbGFiZWxfbGFzdF93ZWVrOiB7IG1lc3NhZ2U6ICdMYXN0IHdlZWsnIH0sXG4gICAgc2t5dXhfZGF0ZV9yYW5nZV9waWNrZXJfZm9ybWF0X2xhYmVsX3RoaXNfd2VlazogeyBtZXNzYWdlOiAnVGhpcyB3ZWVrJyB9LFxuICAgIHNreXV4X2RhdGVfcmFuZ2VfcGlja2VyX2Zvcm1hdF9sYWJlbF9uZXh0X3dlZWs6IHsgbWVzc2FnZTogJ05leHQgd2VlaycgfSxcbiAgICBza3l1eF9kYXRlX3JhbmdlX3BpY2tlcl9mb3JtYXRfbGFiZWxfbGFzdF9tb250aDogeyBtZXNzYWdlOiAnTGFzdCBtb250aCcgfSxcbiAgICBza3l1eF9kYXRlX3JhbmdlX3BpY2tlcl9mb3JtYXRfbGFiZWxfdGhpc19tb250aDogeyBtZXNzYWdlOiAnVGhpcyBtb250aCcgfSxcbiAgICBza3l1eF9kYXRlX3JhbmdlX3BpY2tlcl9mb3JtYXRfbGFiZWxfbmV4dF9tb250aDogeyBtZXNzYWdlOiAnTmV4dCBtb250aCcgfSxcbiAgICBza3l1eF9kYXRlX3JhbmdlX3BpY2tlcl9mb3JtYXRfbGFiZWxfbGFzdF9xdWFydGVyOiB7XG4gICAgICBtZXNzYWdlOiAnTGFzdCBxdWFydGVyJyxcbiAgICB9LFxuICAgIHNreXV4X2RhdGVfcmFuZ2VfcGlja2VyX2Zvcm1hdF9sYWJlbF90aGlzX3F1YXJ0ZXI6IHtcbiAgICAgIG1lc3NhZ2U6ICdUaGlzIHF1YXJ0ZXInLFxuICAgIH0sXG4gICAgc2t5dXhfZGF0ZV9yYW5nZV9waWNrZXJfZm9ybWF0X2xhYmVsX25leHRfcXVhcnRlcjoge1xuICAgICAgbWVzc2FnZTogJ05leHQgcXVhcnRlcicsXG4gICAgfSxcbiAgICBza3l1eF9kYXRlX3JhbmdlX3BpY2tlcl9mb3JtYXRfbGFiZWxfbGFzdF9jYWxlbmRhcl95ZWFyOiB7XG4gICAgICBtZXNzYWdlOiAnTGFzdCBjYWxlbmRhciB5ZWFyJyxcbiAgICB9LFxuICAgIHNreXV4X2RhdGVfcmFuZ2VfcGlja2VyX2Zvcm1hdF9sYWJlbF90aGlzX2NhbGVuZGFyX3llYXI6IHtcbiAgICAgIG1lc3NhZ2U6ICdUaGlzIGNhbGVuZGFyIHllYXInLFxuICAgIH0sXG4gICAgc2t5dXhfZGF0ZV9yYW5nZV9waWNrZXJfZm9ybWF0X2xhYmVsX25leHRfY2FsZW5kYXJfeWVhcjoge1xuICAgICAgbWVzc2FnZTogJ05leHQgY2FsZW5kYXIgeWVhcicsXG4gICAgfSxcbiAgICBza3l1eF9kYXRlX3JhbmdlX3BpY2tlcl9mb3JtYXRfbGFiZWxfbGFzdF9maXNjYWxfeWVhcjoge1xuICAgICAgbWVzc2FnZTogJ0xhc3QgZmlzY2FsIHllYXInLFxuICAgIH0sXG4gICAgc2t5dXhfZGF0ZV9yYW5nZV9waWNrZXJfZm9ybWF0X2xhYmVsX3RoaXNfZmlzY2FsX3llYXI6IHtcbiAgICAgIG1lc3NhZ2U6ICdUaGlzIGZpc2NhbCB5ZWFyJyxcbiAgICB9LFxuICAgIHNreXV4X2RhdGVfcmFuZ2VfcGlja2VyX2Zvcm1hdF9sYWJlbF9uZXh0X2Zpc2NhbF95ZWFyOiB7XG4gICAgICBtZXNzYWdlOiAnTmV4dCBmaXNjYWwgeWVhcicsXG4gICAgfSxcbiAgICBza3l1eF9kYXRlX3JhbmdlX3BpY2tlcl9zdGFydF9kYXRlX2xhYmVsOiB7IG1lc3NhZ2U6ICdGcm9tIGRhdGUnIH0sXG4gICAgc2t5dXhfZGF0ZV9yYW5nZV9waWNrZXJfZW5kX2RhdGVfbGFiZWw6IHsgbWVzc2FnZTogJ1RvIGRhdGUnIH0sXG4gICAgc2t5dXhfZGF0ZV9yYW5nZV9waWNrZXJfYmVmb3JlX2RhdGVfbGFiZWw6IHsgbWVzc2FnZTogJ0JlZm9yZSBkYXRlJyB9LFxuICAgIHNreXV4X2RhdGVfcmFuZ2VfcGlja2VyX2FmdGVyX2RhdGVfbGFiZWw6IHsgbWVzc2FnZTogJ0FmdGVyIGRhdGUnIH0sXG4gICAgc2t5dXhfZGF0ZV9yYW5nZV9waWNrZXJfZGVmYXVsdF9hcmlhX2xhYmVsOiB7IG1lc3NhZ2U6ICd7MH0gZm9yIHsxfScgfSxcbiAgfSxcbn07XG5cblNreUxpYlJlc291cmNlc1NlcnZpY2UuYWRkUmVzb3VyY2VzKFJFU09VUkNFUyk7XG5cbmV4cG9ydCBjbGFzcyBTa3lEYXRldGltZVJlc291cmNlc1Byb3ZpZGVyIGltcGxlbWVudHMgU2t5TGliUmVzb3VyY2VzUHJvdmlkZXIge1xuICBwdWJsaWMgZ2V0U3RyaW5nKFxuICAgIGxvY2FsZUluZm86IFNreUFwcExvY2FsZUluZm8sXG4gICAgbmFtZTogc3RyaW5nLFxuICApOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiBnZXRMaWJTdHJpbmdGb3JMb2NhbGUoUkVTT1VSQ0VTLCBsb2NhbGVJbmZvLmxvY2FsZSwgbmFtZSk7XG4gIH1cbn1cblxuLyoqXG4gKiBJbXBvcnQgaW50byBhbnkgY29tcG9uZW50IGxpYnJhcnkgbW9kdWxlIHRoYXQgbmVlZHMgdG8gdXNlIHJlc291cmNlIHN0cmluZ3MuXG4gKi9cbkBOZ01vZHVsZSh7XG4gIGV4cG9ydHM6IFtTa3lJMThuTW9kdWxlXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogU0tZX0xJQl9SRVNPVVJDRVNfUFJPVklERVJTLFxuICAgICAgdXNlQ2xhc3M6IFNreURhdGV0aW1lUmVzb3VyY2VzUHJvdmlkZXIsXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lEYXRldGltZVJlc291cmNlc01vZHVsZSB7fVxuIl19
|
130
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2t5LWRhdGV0aW1lLXJlc291cmNlcy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZGF0ZXRpbWUvc3JjL2xpYi9tb2R1bGVzL3NoYXJlZC9za3ktZGF0ZXRpbWUtcmVzb3VyY2VzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwwQkFBMEI7QUFFMUI7Ozs7O0dBS0c7QUFDSCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFDTCxhQUFhLEVBRWIsc0JBQXNCLEdBQ3ZCLE1BQU0sYUFBYSxDQUFDOztBQUVyQixNQUFNLFNBQVMsR0FBb0M7SUFDakQsT0FBTyxFQUFFO1FBQ1AscURBQXFELEVBQUU7WUFDckQsT0FBTyxFQUFFLHFCQUFxQjtTQUMvQjtRQUNELHFEQUFxRCxFQUFFO1lBQ3JELE9BQU8sRUFBRSxxQkFBcUI7U0FDL0I7UUFDRCxxREFBcUQsRUFBRTtZQUNyRCxPQUFPLEVBQUUscUJBQXFCO1NBQy9CO0tBQ0Y7SUFDRCxPQUFPLEVBQUU7UUFDUCxxREFBcUQsRUFBRTtZQUNyRCxPQUFPLEVBQUUscUJBQXFCO1NBQy9CO1FBQ0QscURBQXFELEVBQUU7WUFDckQsT0FBTyxFQUFFLHFCQUFxQjtTQUMvQjtRQUNELHFEQUFxRCxFQUFFO1lBQ3JELE9BQU8sRUFBRSxxQkFBcUI7U0FDL0I7S0FDRjtJQUNELE9BQU8sRUFBRTtRQUNQLHFEQUFxRCxFQUFFO1lBQ3JELE9BQU8sRUFBRSxxQkFBcUI7U0FDL0I7UUFDRCxxREFBcUQsRUFBRTtZQUNyRCxPQUFPLEVBQUUscUJBQXFCO1NBQy9CO1FBQ0QscURBQXFELEVBQUU7WUFDckQsT0FBTyxFQUFFLHFCQUFxQjtTQUMvQjtLQUNGO0lBQ0QsT0FBTyxFQUFFO1FBQ1AsaUNBQWlDLEVBQUUsRUFBRSxPQUFPLEVBQUUscUJBQXFCLEVBQUU7UUFDckUscUNB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LENBQUM7QUFFL0M7O0dBRUc7QUFJSCxNQUFNLE9BQU8sMEJBQTBCOzhHQUExQiwwQkFBMEI7K0dBQTFCLDBCQUEwQixZQUYzQixhQUFhOytHQUVaLDBCQUEwQixZQUYzQixhQUFhOzsyRkFFWiwwQkFBMEI7a0JBSHRDLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsYUFBYSxDQUFDO2lCQUN6QiIsInNvdXJjZXNDb250ZW50IjpbIi8qIGlzdGFuYnVsIGlnbm9yZSBmaWxlICovXG5cbi8qKlxuICogTk9USUNFOiBETyBOT1QgTU9ESUZZIFRISVMgRklMRSFcbiAqIFRoZSBjb250ZW50cyBvZiB0aGlzIGZpbGUgd2VyZSBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBieVxuICogdGhlICduZyBnZW5lcmF0ZSBAc2t5dXgvaTE4bjpsaWItcmVzb3VyY2VzLW1vZHVsZSBsaWIvbW9kdWxlcy9zaGFyZWQvc2t5LWRhdGV0aW1lJyBzY2hlbWF0aWMuXG4gKiBUbyB1cGRhdGUgdGhpcyBmaWxlLCBzaW1wbHkgcmVydW4gdGhlIGNvbW1hbmQuXG4gKi9cbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBTa3lJMThuTW9kdWxlLFxuICBTa3lMaWJSZXNvdXJjZXMsXG4gIFNreUxpYlJlc291cmNlc1NlcnZpY2UsXG59IGZyb20gJ0Bza3l1eC9pMThuJztcblxuY29uc3QgUkVTT1VSQ0VTOiBSZWNvcmQ8c3RyaW5nLCBTa3lMaWJSZXNvdXJjZXM+ID0ge1xuICAnRU4tQVUnOiB7XG4gICAgc2t5dXhfZGF0ZV9yYW5nZV9waWNrZXJfZm9ybWF0X2xhYmVsX2xhc3RfZmlzY2FsX3llYXI6IHtcbiAgICAgIG1lc3NhZ2U6ICdMYXN0IGZpbmFuY2lhbCB5ZWFyJyxcbiAgICB9LFxuICAgIHNreXV4X2RhdGVfcmFuZ2VfcGlja2VyX2Zvcm1hdF9sYWJlbF90aGlzX2Zpc2NhbF95ZWFyOiB7XG4gICAgICBtZXNzYWdlOiAnVGhpcyBmaW5hbmNpYWwgeWVhcicsXG4gICAgfSxcbiAgICBza3l1eF9kYXRlX3JhbmdlX3BpY2tlcl9mb3JtYXRfbGFiZWxfbmV4dF9maXNjYWxfeWVhcjoge1xuICAgICAgbWVzc2FnZTogJ05leHQgZmluYW5jaWFsIHllYXInLFxuICAgIH0sXG4gIH0sXG4gICdFTi1HQic6IHtcbiAgICBza3l1eF9kYXRlX3JhbmdlX3BpY2tlcl9mb3JtYXRfbGFiZWxfbGFzdF9maXNjYWxfeWVhcjoge1xuICAgICAgbWVzc2FnZTogJ0xhc3QgZmluYW5jaWFsIHllYXInLFxuICAgIH0sXG4gICAgc2t5dXhfZGF0ZV9yYW5nZV9waWNrZXJfZm9ybWF0X2xhYmVsX3RoaXNfZmlzY2FsX3llYXI6IHtcbiAgICAgIG1lc3NhZ2U6ICdUaGlzIGZpbmFuY2lhbCB5ZWFyJyxcbiAgICB9LFxuICAgIHNreXV4X2RhdGVfcmFuZ2VfcGlja2VyX2Zvcm1hdF9sYWJlbF9uZXh0X2Zpc2NhbF95ZWFyOiB7XG4gICAgICBtZXNzYWdlOiAnTmV4dCBmaW5hbmNpYWwgeWVhcicsXG4gICAgfSxcbiAgfSxcbiAgJ0VOLU5aJzoge1xuICAgIHNreXV4X2RhdGVfcmFuZ2VfcGlja2VyX2Zvcm1hdF9sYWJlbF9sYXN0X2Zpc2NhbF95ZWFyOiB7XG4gICAgICBtZXNzYWdlOiAnTGFzdCBmaW5hbmNpYWwgeWVhcicsXG4gICAgfSxcbiAgICBza3l1eF9kYXRlX3JhbmdlX3BpY2tlcl9mb3JtYXRfbGFiZWxfdGhpc19maXNjYWxfeWVhcjoge1xuICAgICAgbWVzc2FnZTogJ1RoaXMgZmluYW5jaWFsIHllYXInLFxuICAgIH0sXG4gICAgc2t5dXhfZGF0ZV9yYW5nZV9waWNrZXJfZm9ybWF0X2xhYmVsX25leHRfZmlzY2FsX3llYXI6IHtcbiAgICAgIG1lc3NhZ2U6ICdOZXh0IGZpbmFuY2lhbCB5ZWFyJyxcbiAgICB9LFxuICB9LFxuICAnRU4tVVMnOiB7XG4gICAgc2t5dXhfZGF0ZXBpY2tlcl9mb3JtYXRfaGludF90ZXh0OiB7IG1lc3NhZ2U6ICdVc2UgdGhlIGZvcm1hdCB7MH0uJyB9LFxuICAgIHNreXV4X2RhdGVwaWNrZXJfdHJpZ2dlcl9idXR0b25fbGFiZWw6IHsgbWVzc2FnZTogJ1NlbGVjdCBkYXRlJyB9LFxuICAgIHNreXV4X2RhdGVwaWNrZXJfdHJpZ2dlcl9idXR0b25fbGFiZWxfY29udGV4dDoge1xuICAgICAgbWVzc2FnZTogJ09wZW4gY2FsZW5kYXIgZm9yIHswfScsXG4gICAgfSxcbiAgICBza3l1eF9kYXRlcGlja2VyX21vdmVfY2FsZW5kYXJfcHJldmlvdXNfZGF5OiB7IG1lc3NhZ2U6ICdQcmV2aW91cyBtb250aCcgfSxcbiAgICBza3l1eF9kYXRlcGlja2VyX21vdmVfY2FsZW5kYXJfbmV4dF9kYXk6IHsgbWVzc2FnZTogJ05leHQgbW9udGgnIH0sXG4gICAgc2t5dXhfZGF0ZXBpY2tlcl9tb3ZlX2NhbGVuZGFyX3ByZXZpb3VzX21vbnRoOiB7IG1lc3NhZ2U6ICdQcmV2aW91cyB5ZWFyJyB9LFxuICAgIHNreXV4X2RhdGVwaWNrZXJfbW92ZV9jYWxlbmRhcl9uZXh0X21vbnRoOiB7IG1lc3NhZ2U6ICdOZXh0IHllYXInIH0sXG4gICAgc2t5dXhfZGF0ZXBpY2tlcl9tb3ZlX2NhbGVuZGFyX3ByZXZpb3VzX3llYXI6IHsgbWVzc2FnZTogJ1ByZXZpb3VzIHBhZ2UnIH0sXG4gICAgc2t5dXhfZGF0ZXBpY2tlcl9tb3ZlX2NhbGVuZGFyX25leHRfeWVhcjogeyBtZXNzYWdlOiAnTmV4dCBwYWdlJyB9LFxuICAgIHNreXV4X3RpbWVwaWNrZXJfYnV0dG9uX2xhYmVsOiB7IG1lc3NhZ2U6ICdDaG9vc2UgdGltZScgfSxcbiAgICBza3l1eF90aW1lcGlja2VyX2J1dHRvbl9sYWJlbF9jb250ZXh0OiB7XG4gICAgICBtZXNzYWdlOiAnT3BlbiB0aW1lIHBpY2tlciBmb3IgezB9JyxcbiAgICB9LFxuICAgIHNreXV4X3RpbWVwaWNrZXJfY2xvc2U6IHsgbWVzc2FnZTogJ0RvbmUnIH0sXG4gICAgc2t5dXhfZGF0ZV9yYW5nZV9waWNrZXJfZGVmYXVsdF9sYWJlbDogeyBtZXNzYWdlOiAnU2VsZWN0IGEgZGF0ZSByYW5nZScgfSxcbiAgICBza3l1eF9kYXRlX3JhbmdlX3BpY2tlcl9lbmRfZGF0ZV9iZWZvcmVfc3RhcnRfZGF0ZV9lcnJvcl9sYWJlbF90ZXh0OiB7XG4gICAgICBtZXNzYWdlOlxuICAgICAgICAnQ2hhbmdlIHRoZSBkYXRlIHJhbmdlIHNvIHRoYXQgdGhlIGVuZCBkYXRlIGlzIGJlZm9yZSB0aGUgc3RhcnQgZGF0ZS4nLFxuICAgIH0sXG4gICAgc2t5dXhfZGF0ZV9yYW5nZV9waWNrZXJfZm9ybWF0X2xhYmVsX3NwZWNpZmljX3JhbmdlOiB7XG4gICAgICBtZXNzYWdlOiAnU3BlY2lmaWMgcmFuZ2UnLFxuICAgIH0sXG4gICAgc2t5dXhfZGF0ZV9yYW5nZV9waWNrZXJfZm9ybWF0X2xhYmVsX2JlZm9yZTogeyBtZXNzYWdlOiAnQmVmb3JlJyB9LFxuICAgIHNreXV4X2RhdGVfcmFuZ2VfcGlja2VyX2Zvcm1hdF9sYWJlbF9hZnRlcjogeyBtZXNzYWdlOiAnQWZ0ZXInIH0sXG4gICAgc2t5dXhfZGF0ZV9yYW5nZV9waWNrZXJfZm9ybWF0X2xhYmVsX2FueV90aW1lOiB7IG1lc3NhZ2U6ICdBdCBhbnkgdGltZScgfSxcbiAgICBza3l1eF9kYXRlX3JhbmdlX3BpY2tlcl9mb3JtYXRfbGFiZWxfeWVzdGVyZGF5OiB7IG1lc3NhZ2U6ICdZZXN0ZXJkYXknIH0sXG4gICAgc2t5dXhfZGF0ZV9yYW5nZV9waWNrZXJfZm9ybWF0X2xhYmVsX3RvZGF5OiB7IG1lc3NhZ2U6ICdUb2RheScgfSxcbiAgICBza3l1eF9kYXRlX3JhbmdlX3BpY2tlcl9mb3JtYXRfbGFiZWxfdG9tb3Jyb3c6IHsgbWVzc2FnZTogJ1RvbW9ycm93JyB9LFxuICAgIHNreXV4X2RhdGVfcmFuZ2VfcGlja2VyX2Zvcm1hdF9sYWJlbF9sYXN0X3dlZWs6IHsgbWVzc2FnZTogJ0xhc3Qgd2VlaycgfSxcbiAgICBza3l1eF9kYXRlX3JhbmdlX3BpY2tlcl9mb3JtYXRfbGFiZWxfdGhpc193ZWVrOiB7IG1lc3NhZ2U6ICdUaGlzIHdlZWsnIH0sXG4gICAgc2t5dXhfZGF0ZV9yYW5nZV9waWNrZXJfZm9ybWF0X2xhYmVsX25leHRfd2VlazogeyBtZXNzYWdlOiAnTmV4dCB3ZWVrJyB9LFxuICAgIHNreXV4X2RhdGVfcmFuZ2VfcGlja2VyX2Zvcm1hdF9sYWJlbF9sYXN0X21vbnRoOiB7IG1lc3NhZ2U6ICdMYXN0IG1vbnRoJyB9LFxuICAgIHNreXV4X2RhdGVfcmFuZ2VfcGlja2VyX2Zvcm1hdF9sYWJlbF90aGlzX21vbnRoOiB7IG1lc3NhZ2U6ICdUaGlzIG1vbnRoJyB9LFxuICAgIHNreXV4X2RhdGVfcmFuZ2VfcGlja2VyX2Zvcm1hdF9sYWJlbF9uZXh0X21vbnRoOiB7IG1lc3NhZ2U6ICdOZXh0IG1vbnRoJyB9LFxuICAgIHNreXV4X2RhdGVfcmFuZ2VfcGlja2VyX2Zvcm1hdF9sYWJlbF9sYXN0X3F1YXJ0ZXI6IHtcbiAgICAgIG1lc3NhZ2U6ICdMYXN0IHF1YXJ0ZXInLFxuICAgIH0sXG4gICAgc2t5dXhfZGF0ZV9yYW5nZV9waWNrZXJfZm9ybWF0X2xhYmVsX3RoaXNfcXVhcnRlcjoge1xuICAgICAgbWVzc2FnZTogJ1RoaXMgcXVhcnRlcicsXG4gICAgfSxcbiAgICBza3l1eF9kYXRlX3JhbmdlX3BpY2tlcl9mb3JtYXRfbGFiZWxfbmV4dF9xdWFydGVyOiB7XG4gICAgICBtZXNzYWdlOiAnTmV4dCBxdWFydGVyJyxcbiAgICB9LFxuICAgIHNreXV4X2RhdGVfcmFuZ2VfcGlja2VyX2Zvcm1hdF9sYWJlbF9sYXN0X2NhbGVuZGFyX3llYXI6IHtcbiAgICAgIG1lc3NhZ2U6ICdMYXN0IGNhbGVuZGFyIHllYXInLFxuICAgIH0sXG4gICAgc2t5dXhfZGF0ZV9yYW5nZV9waWNrZXJfZm9ybWF0X2xhYmVsX3RoaXNfY2FsZW5kYXJfeWVhcjoge1xuICAgICAgbWVzc2FnZTogJ1RoaXMgY2FsZW5kYXIgeWVhcicsXG4gICAgfSxcbiAgICBza3l1eF9kYXRlX3JhbmdlX3BpY2tlcl9mb3JtYXRfbGFiZWxfbmV4dF9jYWxlbmRhcl95ZWFyOiB7XG4gICAgICBtZXNzYWdlOiAnTmV4dCBjYWxlbmRhciB5ZWFyJyxcbiAgICB9LFxuICAgIHNreXV4X2RhdGVfcmFuZ2VfcGlja2VyX2Zvcm1hdF9sYWJlbF9sYXN0X2Zpc2NhbF95ZWFyOiB7XG4gICAgICBtZXNzYWdlOiAnTGFzdCBmaXNjYWwgeWVhcicsXG4gICAgfSxcbiAgICBza3l1eF9kYXRlX3JhbmdlX3BpY2tlcl9mb3JtYXRfbGFiZWxfdGhpc19maXNjYWxfeWVhcjoge1xuICAgICAgbWVzc2FnZTogJ1RoaXMgZmlzY2FsIHllYXInLFxuICAgIH0sXG4gICAgc2t5dXhfZGF0ZV9yYW5nZV9waWNrZXJfZm9ybWF0X2xhYmVsX25leHRfZmlzY2FsX3llYXI6IHtcbiAgICAgIG1lc3NhZ2U6ICdOZXh0IGZpc2NhbCB5ZWFyJyxcbiAgICB9LFxuICAgIHNreXV4X2RhdGVfcmFuZ2VfcGlja2VyX3N0YXJ0X2RhdGVfbGFiZWw6IHsgbWVzc2FnZTogJ0Zyb20gZGF0ZScgfSxcbiAgICBza3l1eF9kYXRlX3JhbmdlX3BpY2tlcl9lbmRfZGF0ZV9sYWJlbDogeyBtZXNzYWdlOiAnVG8gZGF0ZScgfSxcbiAgICBza3l1eF9kYXRlX3JhbmdlX3BpY2tlcl9iZWZvcmVfZGF0ZV9sYWJlbDogeyBtZXNzYWdlOiAnQmVmb3JlIGRhdGUnIH0sXG4gICAgc2t5dXhfZGF0ZV9yYW5nZV9waWNrZXJfYWZ0ZXJfZGF0ZV9sYWJlbDogeyBtZXNzYWdlOiAnQWZ0ZXIgZGF0ZScgfSxcbiAgICBza3l1eF9kYXRlX3JhbmdlX3BpY2tlcl9kZWZhdWx0X2FyaWFfbGFiZWw6IHsgbWVzc2FnZTogJ3swfSBmb3IgezF9JyB9LFxuICB9LFxufTtcblxuU2t5TGliUmVzb3VyY2VzU2VydmljZS5hZGRSZXNvdXJjZXMoUkVTT1VSQ0VTKTtcblxuLyoqXG4gKiBJbXBvcnQgaW50byBhbnkgY29tcG9uZW50IGxpYnJhcnkgbW9kdWxlIHRoYXQgbmVlZHMgdG8gdXNlIHJlc291cmNlIHN0cmluZ3MuXG4gKi9cbkBOZ01vZHVsZSh7XG4gIGV4cG9ydHM6IFtTa3lJMThuTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5RGF0ZXRpbWVSZXNvdXJjZXNNb2R1bGUge31cbiJdfQ==
|