@messaia/cdk 15.0.1-rc01 → 15.0.1-rc02
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.
|
@@ -63,6 +63,12 @@ export class VdDynamicTableComponent {
|
|
|
63
63
|
set formArray(formArray) {
|
|
64
64
|
this._formArray = formArray;
|
|
65
65
|
this.data = this._formArray?.value;
|
|
66
|
+
/* Update table data */
|
|
67
|
+
this._formArray?.valueChanges?.subscribe(x => {
|
|
68
|
+
if (x.length !== this.dataSource?.data?.length) {
|
|
69
|
+
this.dataSource.data = this._formArray?.value;
|
|
70
|
+
}
|
|
71
|
+
});
|
|
66
72
|
}
|
|
67
73
|
/**
|
|
68
74
|
* Form raw value
|
|
@@ -482,4 +488,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.5", ngImpor
|
|
|
482
488
|
}], pageSizeOptions: [{
|
|
483
489
|
type: Input
|
|
484
490
|
}] } });
|
|
485
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy10YWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvc3JjL2xpYi90YWJsZS9jb21wb25lbnRzL2R5bmFtaWMtdGFibGUvZHluYW1pYy10YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvc3JjL2xpYi90YWJsZS9jb21wb25lbnRzL2R5bmFtaWMtdGFibGUvZHluYW1pYy10YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM3RixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM5RCxPQUFPLEVBQW9CLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JNLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzNELE9BQU8sRUFBRSxPQUFPLEVBQWlCLE1BQU0sd0JBQXdCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ25ELE9BQU8sRUFBRSxlQUFlLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztB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c0JBRHJCLEtBQUs7Z0JBT0Msc0JBQXNCO3NCQUQ1QixZQUFZO3VCQUFDLGNBQWM7Z0JBc0JyQixRQUFRO3NCQURkLEtBQUs7Z0JBT0MsZUFBZTtzQkFEckIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFuaW1hdGUsIEFVVE9fU1RZTEUsIHN0YXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlciB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xyXG5pbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xyXG5pbXBvcnQgeyBBZnRlclZpZXdDaGVja2VkLCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBDb250ZW50Q2hpbGQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBRdWVyeUxpc3QsIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGQsIFZpZXdDaGlsZHJlbiwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtQXJyYXkgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE1hdE1lbnVUcmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudSc7XHJcbmltcG9ydCB7IE1hdFBhZ2luYXRvciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3BhZ2luYXRvcic7XHJcbmltcG9ydCB7IE1hdFNvcnQsIFNvcnREaXJlY3Rpb24gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zb3J0JztcclxuaW1wb3J0IHsgTWF0VGFibGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJsZSc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgVXRpbHMgfSBmcm9tICcuLi8uLi8uLi9jb21tb24vZnVuY3Rpb25zL3V0aWxzJztcclxuaW1wb3J0IHsgRHluYW1pY0J1aWxkZXIgfSBmcm9tICcuLi8uLi8uLi9jb21tb24vaGVscGVycy9keW5hbWljLWJ1aWxkZXInO1xyXG5pbXBvcnQgeyBBY3Rpb25JdGVtIH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL21vZGVscy9hY3Rpb24taXRlbSc7XHJcbmltcG9ydCB7IEdyaWQgfSBmcm9tICcuLi8uLi9lbnVtcy9ncmlkJztcclxuaW1wb3J0IHsgVGFibGVDb2x1bW5UeXBlIH0gZnJvbSAnLi4vLi4vZW51bXMvdGFibGUtY29sdW1uLXR5cGUnO1xyXG5pbXBvcnQgeyBnZXRUYWJsZURlZmluaXRpb24gfSBmcm9tICcuLi8uLi9mdW5jdGlvbnMvZnVuY3Rpb25zJztcclxuaW1wb3J0IHsgVGFibGVDb2x1bW4gfSBmcm9tICcuLi8uLi9tb2RlbHMvdGFibGUtY29sdW1uJztcclxuaW1wb3J0IHsgVGFibGVEYXRhU291cmNlIH0gZnJvbSAnLi4vLi4vdGFibGUuZGF0YS1zb3VyY2UnO1xyXG5pbXBvcnQgeyBUYWJsZVN0YXRpY0RhdGFTb3VyY2UgfSBmcm9tICcuLi8uLi90YWJsZS5zdGF0aWMtZGF0YS1zb3VyY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcblx0c2VsZWN0b3I6ICd2ZC1keW5hbWljLXRhYmxlJyxcclxuXHR0ZW1wbGF0ZVVybDogJ2R5bmFtaWMtdGFibGUuY29tcG9uZW50Lmh0bWwnLFxyXG5cdHN0eWxlVXJsczogWydkeW5hbWljLXRhYmxlLmNvbXBvbmVudC5zY3NzJ10sXHJcblx0YW5pbWF0aW9uczogW1xyXG5cdFx0dHJpZ2dlcignZGV0YWlsRXhwYW5kJywgW1xyXG5cdFx0XHRzdGF0ZSgnY29sbGFwc2VkJywgc3R5bGUoeyBoZWlnaHQ6ICcwcHgnLCBtaW5IZWlnaHQ6ICcwJyB9KSksXHJcblx0XHRcdHN0YXRlKCdleHBhbmRlZCcsIHN0eWxlKHsgaGVpZ2h0OiBBVVRPX1NUWUxFIH0pKSxcclxuXHRcdFx0dHJhbnNpdGlvbignZXhwYW5kZWQgPD0+IGNvbGxhcHNlZCcsIGFuaW1hdGUoJzIyNW1zIGN1YmljLWJlemllcigwLjQsIDAuMCwgMC4yLCAxKScpKSxcclxuXHRcdF0pLFxyXG5cdF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBWZER5bmFtaWNUYWJsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3Q2hlY2tlZCB7XHJcblx0LyoqXHJcblx0ICogZGV0YWlsc1RlbXBsYXRlOiBWaWV3Q29udGFpbmVyUmVmXHJcblx0ICovXHJcblx0QFZpZXdDaGlsZCgndGFibGUnKVxyXG5cdHB1YmxpYyB0YWJsZTogTWF0VGFibGU8YW55PjtcclxuXHJcblx0LyoqXHJcblx0ICogZGV0YWlsc1RlbXBsYXRlOiBWaWV3Q29udGFpbmVyUmVmXHJcblx0ICovXHJcblx0QFZpZXdDaGlsZHJlbignZGV0YWlsc1RlbXBsYXRlJywgeyByZWFkOiBWaWV3Q29udGFpbmVyUmVmIH0pXHJcblx0cHVibGljIGRldGFpbHNUZW1wbGF0ZVJlZjogUXVlcnlMaXN0PGFueT47XHJcblxyXG5cdC8qKlxyXG5cdCAqIERldGFpbHMgdGVtcGxhdGVcclxuXHQgKi9cclxuXHRAQ29udGVudENoaWxkKFRlbXBsYXRlUmVmKVxyXG5cdHB1YmxpYyB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55PjtcclxuXHJcblx0LyoqXHJcblx0ICogRGF0YS10YWJsZSBkYXRhc291cmNlXHJcblx0ICovXHJcblx0QElucHV0KClcclxuXHRwdWJsaWMgZGF0YVNvdXJjZTogVGFibGVEYXRhU291cmNlPGFueSwgYW55PiB8IGFueTtcclxuXHJcblx0LyoqXHJcblx0ICogVGFibGUgZGF0YVxyXG5cdCAqL1xyXG5cdEBJbnB1dCgpXHJcblx0c2V0IGRhdGEoZGF0YTogYW55KSB7XHJcblx0XHR0aGlzLmRhdGFTb3VyY2UgPSBuZXcgVGFibGVTdGF0aWNEYXRhU291cmNlKGRhdGEpO1xyXG5cdFx0dGhpcy5kYXRhU291cmNlLnNvcnQgPSB0aGlzLm1hdFNvcnQ7XHJcblx0XHR0aGlzLmRhdGFTb3VyY2UucGFnaW5hdG9yID0gdGhpcy5fcGFnaW5hdG9yO1xyXG5cdFx0dGhpcy5wYWdpbmFibGUgPSB0cnVlO1xyXG5cdFx0dGhpcy5zdGF0aWMgPSB0cnVlO1xyXG5cdH07XHJcblxyXG5cdC8qKlxyXG5cdCAqIEBwcm9wZXJ0eVxyXG5cdCAqL1xyXG5cdHB1YmxpYyBfZm9ybUFycmF5OiBGb3JtQXJyYXk7Ly8gPSBuZXcgUnhGb3JtQXJyYXkoW10sIG51bGwpO1xyXG5cclxuXHQvKipcclxuXHQgKiBAcHJvcGVydHlcclxuXHQgKi9cclxuXHRASW5wdXQoKVxyXG5cdHB1YmxpYyBnZXQgZm9ybUFycmF5KCk6IEZvcm1BcnJheSB7IHJldHVybiB0aGlzLl9mb3JtQXJyYXk7IH1cclxuXHRwdWJsaWMgc2V0IGZvcm1BcnJheShmb3JtQXJyYXk6IEZvcm1BcnJheSkge1xyXG5cdFx0dGhpcy5fZm9ybUFycmF5ID0gZm9ybUFycmF5O1xyXG5cdFx0dGhpcy5kYXRhID0gdGhpcy5fZm9ybUFycmF5Py52YWx1ZTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIEZvcm0gcmF3IHZhbHVlXHJcblx0ICovXHJcblx0cHVibGljIGdldCBmb3JtVmFsdWUoKTogYW55IHsgcmV0dXJuIHRoaXMuZm9ybUFycmF5Py5nZXRSYXdWYWx1ZSgpOyB9XHJcblxyXG5cdC8qKlxyXG5cdCAqIGRlYnVnVmFsdWU6IGJvb2xlYW5cclxuXHQgKi9cclxuXHRASW5wdXQoKVxyXG5cdHB1YmxpYyBkZWJ1Z1ZhbHVlOiBib29sZWFuO1xyXG5cclxuXHQvKipcclxuXHQgKiBDbGFzcyB0eXBlXHJcblx0ICovXHJcblx0QElucHV0KClcclxuXHRwdWJsaWMgY2xhc3NUeXBlOiBhbnk7XHJcblxyXG5cdC8qKlxyXG5cdCAqIEN1cnJlbnQgY29udGV4dCBcclxuXHQgKi9cclxuXHRASW5wdXQoKVxyXG5cdHB1YmxpYyBjb250ZXh0OiBhbnk7XHJcblxyXG5cdC8qKlxyXG5cdCAqIGRhdGFTb3VyY2VGaWx0ZXI6IGFueVxyXG5cdCAqL1xyXG5cdEBJbnB1dCgpXHJcblx0cHVibGljIGRhdGFTb3VyY2VGaWx0ZXI6IGFueSA9IHt9O1xyXG5cclxuXHQvKipcclxuXHQgKiBTdGF0aWMgdGFibGVcclxuXHQgKi9cclxuXHRASW5wdXQoKVxyXG5cdHB1YmxpYyBzdGF0aWM6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcblx0LyoqXHJcblx0ICogZmlsdGVyYWJsZT9cclxuXHQgKi9cclxuXHRASW5wdXQoKVxyXG5cdHB1YmxpYyBmaWx0ZXJhYmxlOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcblx0LyoqXHJcblx0ICogcGFnaW5hYmxlP1xyXG5cdCAqL1xyXG5cdEBJbnB1dCgpXHJcblx0cHVibGljIHBhZ2luYWJsZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuXHQvKipcclxuXHQgKiBTaG93cyB0aGUgY29sdW1uICdDaGVja2JveCdcclxuXHQgKi9cclxuXHRASW5wdXQoKVxyXG5cdHB1YmxpYyBzZWxlY3RhYmxlOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG5cdC8qKlxyXG5cdCAqIEN1cnJlbnQgc29ydCBjb2x1bW5cclxuXHQgKi9cclxuXHRASW5wdXQoKVxyXG5cdHB1YmxpYyBzb3J0QWN0aXZlOiBzdHJpbmc7XHJcblxyXG5cdC8qKlxyXG5cdCAqIEN1cnJlbnQgc29ydCBkaXJlY3Rpb25cclxuXHQgKi9cclxuXHRASW5wdXQoKVxyXG5cdHB1YmxpYyBzb3J0RGlyZWN0aW9uOiBTb3J0RGlyZWN0aW9uO1xyXG5cclxuXHQvKipcclxuXHQgKiBTdGlja3kgaGVhZGVyXHJcblx0ICovXHJcblx0QElucHV0KClcclxuXHRwdWJsaWMgc3RpY2t5SGVhZGVyOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcblx0LyoqXHJcblx0ICogU3RpY2t5IGZpbHRlclxyXG5cdCAqL1xyXG5cdEBJbnB1dCgpXHJcblx0cHVibGljIHN0aWNreUZpbHRlcjogYm9vbGVhbiA9IHRydWU7XHJcblxyXG5cdC8qKlxyXG5cdCAqIFJvdyBjbGljayBldmVudFxyXG5cdCAqL1xyXG5cdEBPdXRwdXQoKVxyXG5cdHB1YmxpYyByb3dDbGljazogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcblx0LyoqXHJcblx0ICogcm93TmdDbGFzczogRnVuY3Rpb25cclxuXHQgKi9cclxuXHRASW5wdXQoKVxyXG5cdHB1YmxpYyByb3dOZ0NsYXNzOiBGdW5jdGlvbjtcclxuXHJcblx0LyoqXHJcblx0ICogZGV0YWlsc1RlbXBsYXRlOiBGdW5jdGlvblxyXG5cdCAqL1xyXG5cdEBJbnB1dCgpXHJcblx0cHVibGljIGRldGFpbHNUZW1wbGF0ZTogc3RyaW5nO1xyXG5cclxuXHQvKipcclxuXHQgKiBfcmVhZG9ubHk6IGJvb2xlYW47XHJcblx0ICovXHJcblx0cHVibGljIF9yZWFkb25seTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuXHQvKipcclxuXHQgKiByZWFkb25seTogYm9vbGVhbjtcclxuXHQgKi9cclxuXHRASW5wdXQoKVxyXG5cdGdldCByZWFkb25seSgpIHsgcmV0dXJuIHRoaXMuX3JlYWRvbmx5OyB9XHJcblx0c2V0IHJlYWRvbmx5KHJlYWRvbmx5KSB7XHJcblx0XHR0aGlzLl9yZWFkb25seSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eShyZWFkb25seSk7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBzZWxlY3RBbGxGaWx0ZXI6IEZ1bmN0aW9uXHJcblx0ICovXHJcblx0QElucHV0KClcclxuXHRwdWJsaWMgc2VsZWN0QWxsRmlsdGVyOiAodmFsdWU6IGFueSwgaW5kZXg6IG51bWJlciwgYXJyYXk6IGFueVtdKSA9PiB1bmtub3duO1xyXG5cclxuXHQvKipcclxuXHQgKiBBIHJlZmVyZW5jZSB0byBNZFNvcnQgYXR0cmlidXRlXHJcblx0ICovXHJcblx0QFZpZXdDaGlsZChNYXRTb3J0LCB7IHN0YXRpYzogdHJ1ZSB9KVxyXG5cdHB1YmxpYyBtYXRTb3J0OiBNYXRTb3J0O1xyXG5cclxuXHQvKipcclxuXHQgKiBfcGFnaW5hdG9yOiBNYXRQYWdpbmF0b3JcclxuXHQgKi9cclxuXHRwcml2YXRlIF9wYWdpbmF0b3I6IE1hdFBhZ2luYXRvcjtcclxuXHJcblx0LyoqXHJcblx0ICogcGFnaW5hdG9yOiBNYXRQYWdpbmF0b3JcclxuXHQgKi9cclxuXHRAVmlld0NoaWxkKE1hdFBhZ2luYXRvcilcclxuXHRzZXQgcGFnaW5hdG9yKHBhZ2luYXRvcjogTWF0UGFnaW5hdG9yKSB7XHJcblx0XHRpZiAocGFnaW5hdG9yKSB7XHJcblx0XHRcdHRoaXMuZGF0YVNvdXJjZS5wYWdpbmF0b3IgPSBwYWdpbmF0b3I7XHJcblx0XHR9XHJcblx0fTtcclxuXHJcblx0LyoqXHJcblx0ICogX2NvbHVtbnM6IFRhYmxlQ29sdW1uW11cclxuXHQgKi9cclxuXHRwcml2YXRlIF9jb2x1bW5zOiBUYWJsZUNvbHVtbltdID0gW107XHJcblxyXG5cdC8qKlxyXG5cdCAqIGNvbHVtbnM6IENvbHVtbltdXHJcblx0ICovXHJcblx0QElucHV0KClcclxuXHRnZXQgY29sdW1ucygpOiBUYWJsZUNvbHVtbltdIHsgcmV0dXJuIHRoaXMuX2NvbHVtbnM7IH07XHJcblx0c2V0IGNvbHVtbnMoY29sdW1uczogVGFibGVDb2x1bW5bXSkgeyB0aGlzLl9jb2x1bW5zID0gY29sdW1uczsgfTtcclxuXHJcblx0LyoqXHJcblx0ICogY29sdW1uc1N1YmplY3Q6IFN1YmplY3Q8KFRhYmxlQ29sdW1uIHwgc3RyaW5nKVtdPlxyXG5cdCAqL1xyXG5cdHB1YmxpYyBjb2x1bW5zU3ViamVjdDogQmVoYXZpb3JTdWJqZWN0PFRhYmxlQ29sdW1uW10+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxUYWJsZUNvbHVtbltdPihbXSk7XHJcblxyXG5cdC8qKlxyXG5cdCAqIGNvbHVtbnMkOiBPYnNlcnZhYmxlPChUYWJsZUNvbHVtbiB8IHN0cmluZylbXT5cclxuXHQgKi9cclxuXHRwdWJsaWMgY29sdW1ucyQ6IE9ic2VydmFibGU8VGFibGVDb2x1bW5bXT4gPSB0aGlzLmNvbHVtbnNTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpOztcclxuXHJcblx0LyoqXHJcblx0ICogRGlzcGxheWVkIGNvbHVtbnNcclxuXHQgKi9cclxuXHRwdWJsaWMgZGlzcGxheWVkQ29sdW1ucyQ6IE9ic2VydmFibGU8c3RyaW5nW10+O1xyXG5cclxuXHQvKipcclxuXHQgKiBEaXNwbGF5ZWQgZmlsdGVyIGNvbHVtbnNcclxuXHQgKi9cclxuXHRwdWJsaWMgZGlzcGxheWVkRmlsdGVyQ29sdW1ucyQ6IE9ic2VydmFibGU8c3RyaW5nW10+O1xyXG5cclxuXHQvKipcclxuXHQgKiBUYWJsZSByb3cgbWVudSBpdGVtc1xyXG5cdCAqL1xyXG5cdEBJbnB1dCgpXHJcblx0cHVibGljIHJvd01lbnVJdGVtczogQWN0aW9uSXRlbVtdID0gW107XHJcblxyXG5cdC8qKlxyXG5cdCAqIFRhYmxlIHJvdyBhY3Rpb25cclxuXHQgKi9cclxuXHRASW5wdXQoKVxyXG5cdHB1YmxpYyByb3dBY3Rpb246IEFjdGlvbkl0ZW07XHJcblxyXG5cdC8qKlxyXG5cdCAqIENvbHVtbnMgdG8gZXhjbHVkZVxyXG5cdCAqL1xyXG5cdEBJbnB1dCgpXHJcblx0cHVibGljIGV4Y2x1ZGVkQ29sdW1uczogc3RyaW5nW10gPSBbXTtcclxuXHJcblx0LyoqXHJcblx0ICogUmVmZXJlbmNlIHRvIHRoZSBNYXRNZW51VHJpZ2dlciBpbiB0aGUgRE9NXHJcblx0ICovXHJcblx0QFZpZXdDaGlsZHJlbihNYXRNZW51VHJpZ2dlcilcclxuXHRwdWJsaWMgcm93Q29udGV4dE1lbnVUcmlnZ2VyczogUXVlcnlMaXN0PE1hdE1lbnVUcmlnZ2VyPjtcclxuXHJcblx0LyoqXHJcblx0ICogQ29sdW1uVHlwZTogQ29sdW1uVHlwZVxyXG5cdCAqL1xyXG5cdHB1YmxpYyBDb2x1bW5UeXBlOiB0eXBlb2YgVGFibGVDb2x1bW5UeXBlID0gVGFibGVDb2x1bW5UeXBlO1xyXG5cclxuXHQvKipcclxuXHQgKiBUaGUgdHlwZSBvZiB0aGUgZW51bSBHcmlkXHJcblx0ICovXHJcblx0cHVibGljIEdyaWQ6IHR5cGVvZiBHcmlkID0gR3JpZDtcclxuXHJcblx0LyoqXHJcblx0ICogZXhwYW5kZWRSb3c6IGFueVxyXG5cdCAqL1xyXG5cdHB1YmxpYyBleHBhbmRlZFJvdzogYW55O1xyXG5cclxuXHQvKipcclxuXHQgKiBEZWZhdWx0IHBhZ2Ugc2l6ZVxyXG5cdCAqL1xyXG5cdEBJbnB1dCgpXHJcblx0cHVibGljIHBhZ2VTaXplOiBudW1iZXIgPSAxNTtcclxuXHJcblx0LyoqXHJcblx0ICogUGFnZSBzaXplIG9wdGlvbnNcclxuXHQgKi9cclxuXHRASW5wdXQoKVxyXG5cdHB1YmxpYyBwYWdlU2l6ZU9wdGlvbnM6IEFycmF5PG51bWJlcj4gPSBbNSwgMTAsIDE1LCAyMCwgMzAsIDUwLCAxMDAsIDIwMF07XHJcblxyXG5cdC8qKlxyXG5cdCAqIENvbnN0cnVjdG9yXHJcblx0ICogQHBhcmFtIGR5bmFtaWNCdWlsZGVyIFxyXG5cdCAqL1xyXG5cdGNvbnN0cnVjdG9yKHByaXZhdGUgZHluYW1pY0J1aWxkZXI6IER5bmFtaWNCdWlsZGVyLCBwcml2YXRlIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZikgeyB9XHJcblxyXG5cdC8qKlxyXG5cdCAqIEEgY2FsbGJhY2sgbWV0aG9kIHRoYXQgaXMgaW52b2tlZCBpbW1lZGlhdGVseSBhZnRlciB0aGVcclxuXHQgKiBkZWZhdWx0IGNoYW5nZSBkZXRlY3RvciBoYXMgY2hlY2tlZCB0aGUgZGlyZWN0aXZlJ3NcclxuXHQgKiBkYXRhLWJvdW5kIHByb3BlcnRpZXMgZm9yIHRoZSBmaXJzdCB0aW1lLFxyXG5cdCAqIGFuZCBiZWZvcmUgYW55IG9mIHRoZSB2aWV3IG9yIGNvbnRlbnQgY2hpbGRyZW4gaGF2ZSBiZWVuIGNoZWNrZWQuXHJcblx0ICogSXQgaXMgaW52b2tlZCBvbmx5IG9uY2Ugd2hlbiB0aGUgZGlyZWN0aXZlIGlzIGluc3RhbnRpYXRlZC5cclxuXHQgKi9cclxuXHRuZ09uSW5pdCgpOiB2b2lkIHtcclxuXHRcdGlmICh0aGlzLmNsYXNzVHlwZSkge1xyXG5cdFx0XHQvKiBHZXQgdGhlIHRhYmxlIGRlZmluaXRpb24gdXNpbmcgdGhlIGNsYXNzIHR5cGUgKi9cclxuXHRcdFx0dmFyIHRhYmxlRGVmaW5pdGlvbiA9IGdldFRhYmxlRGVmaW5pdGlvbih0aGlzLmNsYXNzVHlwZSk7XHJcblx0XHRcdGlmICh0YWJsZURlZmluaXRpb24pIHtcclxuXHRcdFx0XHR0aGlzLmNvbHVtbnMgPSBbLi4udGFibGVEZWZpbml0aW9uLmNvbHVtbnNdO1xyXG5cdFx0XHRcdGlmICh0aGlzLnJvd01lbnVJdGVtcz8ubGVuZ3RoID4gMCkge1xyXG5cdFx0XHRcdFx0LyogQ2hlY2sgaWYgdGhlIGFjdGlvbiBjb2x1bW4gYWxyZWFkeSBleGlzdHMgKi9cclxuXHRcdFx0XHRcdHZhciBhY3Rpb25Db2xtdW4gPSB0aGlzLl9jb2x1bW5zPy5maW5kKHggPT4geC5uYW1lID09ICdhY3Rpb24nKTtcclxuXHJcblx0XHRcdFx0XHQvKiBJZiBzbywganVzdCBhZGQgdGhlIG1lbnUgaXRlbXMgdG8gaXQgKi9cclxuXHRcdFx0XHRcdGlmIChhY3Rpb25Db2xtdW4gIT0gbnVsbCkge1xyXG5cdFx0XHRcdFx0XHRhY3Rpb25Db2xtdW4ubWVudSB8fD0geyBpY29uOiAnbW9yZV92ZXJ0JyB9O1xyXG5cdFx0XHRcdFx0XHR0aGlzLnJvd01lbnVJdGVtcy5mb3JFYWNoKHkgPT4gYWN0aW9uQ29sbXVuLm1lbnUuaXRlbXMudW5zaGlmdCh5KSk7XHJcblx0XHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdFx0LyogT3RoZXJ3aXNlIGFkZCBhIG5ldyBvbmUgKi9cclxuXHRcdFx0XHRcdGVsc2Uge1xyXG5cdFx0XHRcdFx0XHR0aGlzLl9jb2x1bW5zLnB1c2gobmV3IFRhYmxlQ29sdW1uKHtcclxuXHRcdFx0XHRcdFx0XHRpbmRleDogMjAwMCxcclxuXHRcdFx0XHRcdFx0XHRuYW1lOiAnYWN0aW9uJyxcclxuXHRcdFx0XHRcdFx0XHR0eXBlOiBUYWJsZUNvbHVtblR5cGUuQWN0aW9uLFxyXG5cdFx0XHRcdFx0XHRcdGRpc2FibGVkOiB0cnVlLFxyXG5cdFx0XHRcdFx0XHRcdG1lbnU6IHsgaWNvbjogJ21vcmVfdmVydCcsIGl0ZW1zOiB0aGlzLnJvd01lbnVJdGVtcyB9LFxyXG5cdFx0XHRcdFx0XHRcdGNvbmZpZ3VyYWJsZTogZmFsc2VcclxuXHRcdFx0XHRcdFx0fSkpO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0gZWxzZSBpZiAodGhpcy5yb3dBY3Rpb24pIHtcclxuXHRcdFx0XHRcdHRoaXMuX2NvbHVtbnMucHVzaChuZXcgVGFibGVDb2x1bW4oe1xyXG5cdFx0XHRcdFx0XHRpbmRleDogMjAwMCxcclxuXHRcdFx0XHRcdFx0bmFtZTogJ2FjdGlvbicsXHJcblx0XHRcdFx0XHRcdHR5cGU6IFRhYmxlQ29sdW1uVHlwZS5BY3Rpb24sXHJcblx0XHRcdFx0XHRcdGRpc2FibGVkOiB0cnVlLFxyXG5cdFx0XHRcdFx0XHRtZW51OiB0aGlzLnJvd0FjdGlvbixcclxuXHRcdFx0XHRcdFx0Y29uZmlndXJhYmxlOiBmYWxzZVxyXG5cdFx0XHRcdFx0fSkpO1xyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0LyogQWRkIGNoZWNrYm94IGNvbHVtbiAqL1xyXG5cdFx0XHRcdGlmICh0aGlzLnNlbGVjdGFibGUpIHtcclxuXHRcdFx0XHRcdHRoaXMuY29sdW1ucy51bnNoaWZ0KG5ldyBUYWJsZUNvbHVtbih7XHJcblx0XHRcdFx0XHRcdG5hbWU6ICdzZWxlY3QnLFxyXG5cdFx0XHRcdFx0XHR0eXBlOiBUYWJsZUNvbHVtblR5cGUuQ2hlY2tib3gsXHJcblx0XHRcdFx0XHRcdGNvbmZpZ3VyYWJsZTogZmFsc2VcclxuXHRcdFx0XHRcdH0pKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHQvKiBCdWlsZCBkaXNwbGF5ZWQgY29sdW1ucyAmIGZpbHRlciAqL1xyXG5cdFx0dGhpcy5jb2x1bW5zJD8uc3Vic2NyaWJlKHggPT4ge1xyXG5cdFx0XHR0aGlzLmRpc3BsYXllZENvbHVtbnMkID0gb2YodGhpcy5jb2x1bW5zPy5maWx0ZXIoeCA9PiAhdGhpcy5leGNsdWRlZENvbHVtbnM/LmluY2x1ZGVzKHgubmFtZSkpPy5tYXAoYyA9PiBjLm5hbWUpKTtcclxuXHRcdFx0dGhpcy5kaXNwbGF5ZWRGaWx0ZXJDb2x1bW5zJCA9IG9mKHRoaXMuY29sdW1ucz8uZmlsdGVyKHggPT4gIXRoaXMuZXhjbHVkZWRDb2x1bW5zPy5pbmNsdWRlcyh4Lm5hbWUpKT8ubWFwKGMgPT4gYGZpbHRlci4keyhjLmZpbHRlciB8fCBjLm5hbWUpfWApKTtcclxuXHRcdH0pO1xyXG5cclxuXHRcdC8qIFNldCB0aGUgdGFibGUgY29sdW1ucyAqL1xyXG5cdFx0dGhpcy51cGRhdGVDb2x1bW5zKCk7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBVcGRhdGVzIHRoZSB0YWJsZSBjb2x1bW5zXHJcblx0ICovXHJcblx0cHVibGljIHVwZGF0ZUNvbHVtbnMoKTogdm9pZCB7XHJcblx0XHQvKiBTb3J0IHRoZSBjb2x1bW5zIGJ5IGluZGV4ICovXHJcblx0XHRVdGlscy5zb3J0QXJyYXkodGhpcy5jb2x1bW5zIHx8IFtdLCAnaW5kZXgnKTtcclxuXHJcblx0XHQvKiBUcmlnZ2VyIGNoYW5nZXMgKi9cclxuXHRcdHRoaXMuY29sdW1uc1N1YmplY3QubmV4dCh0aGlzLmNvbHVtbnMpO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogQ291bnRzIHZpc2libGUgYWN0aW9uIG1lbnVzXHJcblx0ICogQHBhcmFtIHJvdyBcclxuXHQgKiBAcGFyYW0gY29sdW1uIFxyXG5cdCAqIEByZXR1cm5zIFxyXG5cdCAqL1xyXG5cdHB1YmxpYyBoYXNWaXNpYmxlUm93TWVudUl0ZW1zKHJvdzogYW55LCBjb2x1bW46IFRhYmxlQ29sdW1uKSB7XHJcblx0XHRyZXR1cm4gY29sdW1uPy5yb3dNZW51SXRlbXM/LmZpbHRlcih4ID0+ICF4LmhpZGUgfHwgIXguaGlkZShyb3cpKT8ubGVuZ3RoID4gMDtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIEEgZnVuY3Rpb24gdG8gdG8gY29tcHV0ZSB0aGUgaWRlbnRpdHkgb2YgaXRlbXMgaW4gYW4gaXRlcmFibGUuXHJcblx0ICogQHBhcmFtIGluZGV4IFxyXG5cdCAqIEBwYXJhbSBpdGVtIFxyXG5cdCAqL1xyXG5cdHB1YmxpYyB0cmFja0J5KGluZGV4OiBudW1iZXIsIGl0ZW06IGFueSk6IHN0cmluZyB7XHJcblx0XHRyZXR1cm4gYCR7aXRlbS5pZH1gO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogSGFuZGxlcyByb3cgY2xpY2sgZXZlbnRcclxuXHQgKiBAcGFyYW0gaW5kZXggXHJcblx0ICogQHBhcmFtIHJvdyBcclxuXHQgKi9cclxuXHRwdWJsaWMgaGFuZGxlUm93Q2xpY2soaW5kZXg6IGFueSwgcm93OiBhbnkpOiB2b2lkIHtcclxuXHRcdGlmICh0aGlzLnRlbXBsYXRlUmVmKSB7XHJcblx0XHRcdHRoaXMuZXhwYW5kZWRSb3cgPSB0aGlzLmV4cGFuZGVkUm93ID09PSByb3cgPyBudWxsIDogcm93O1xyXG5cdFx0fVxyXG5cdFx0ZWxzZSBpZiAodGhpcy5kZXRhaWxzVGVtcGxhdGUpIHtcclxuXHRcdFx0dGhpcy5leHBhbmRlZFJvdyA9IHRoaXMuZXhwYW5kZWRSb3cgPT09IHJvdyA/IG51bGwgOiByb3c7XHJcblx0XHRcdHRoaXMuZHluYW1pY0J1aWxkZXIuY29tcGlsZUh0bWwodGhpcy5kZXRhaWxzVGVtcGxhdGVSZWYuZ2V0KGluZGV4KSwgdGhpcy5kZXRhaWxzVGVtcGxhdGUsIHJvdyk7XHJcblx0XHR9XHJcblx0XHRlbHNlIHtcclxuXHRcdFx0dGhpcy5yb3dDbGljay5lbWl0KHJvdyk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBNZXRob2QgY2FsbGVkIHdoZW4gdGhlIHVzZXIgY2xpY2sgd2l0aCB0aGUgcmlnaHQgYnV0dG9uXHJcblx0ICogQHBhcmFtIGV2ZW50IE1vdXNlRXZlbnQsIGl0IGNvbnRhaW5zIHRoZSBjb29yZGluYXRlc1xyXG5cdCAqIEBwYXJhbSBpdGVtIE91ciBkYXRhIGNvbnRhaW5lZCBpbiB0aGUgcm93IG9mIHRoZSB0YWJsZVxyXG5cdCAqL1xyXG5cdHB1YmxpYyBoYW5kbGVSb3dSaWdodENsaWNrKGV2ZW50OiBNb3VzZUV2ZW50LCBpdGVtOiBhbnkpIHtcclxuXHRcdHRoaXMucm93Q29udGV4dE1lbnVUcmlnZ2Vycz8udG9BcnJheSgpPy5mb3JFYWNoKHggPT4geC5jbG9zZU1lbnUoKSk7XHJcblx0XHR2YXIgbWVudVRyaWdnZXIgPSB0aGlzLnJvd0NvbnRleHRNZW51VHJpZ2dlcnM/LnRvQXJyYXkoKT8uZmlsdGVyKHggPT4geFsnX2VsZW1lbnQnXT8ubmF0aXZlRWxlbWVudD8uZ2V0QXR0cmlidXRlKCdpZCcpID09IGBtZW51LSR7aXRlbS5pZH1gKVswXTtcclxuXHRcdGlmIChtZW51VHJpZ2dlciAhPSBudWxsKSB7XHJcblx0XHRcdC8qIEF2b2lkcyB0byBzaG93IHRoZSB2aXN1YWxpemF0aW9uIG9mIHRoZSByaWdodC1jbGljayBtZW51IG9mIHRoZSBicm93c2VyICovXHJcblx0XHRcdGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcblxyXG5cdFx0XHQvKiBTZXQgdGhlIHBvc2l0aW9uIG9mIHRoZSBtZW51ICovXHJcblx0XHRcdG1lbnVUcmlnZ2VyWydfZWxlbWVudCddPy5uYXRpdmVFbGVtZW50Py5zZXRBdHRyaWJ1dGUoJ3N0eWxlJywgYHBvc2l0aW9uOiBmaXhlZDsgbGVmdDogJHtldmVudC5jbGllbnRYfXB4OyB0b3A6ICR7ZXZlbnQuY2xpZW50WX1weGApO1xyXG5cclxuXHRcdFx0LyogUGFzcyB0byB0aGUgbWVudSB0aGUgY3VycmVudCBvYmplY3QgKi9cclxuXHRcdFx0bWVudVRyaWdnZXIubWVudURhdGEgPSB7IGl0ZW06IGl0ZW0gfVxyXG5cclxuXHRcdFx0LyogT3BlbiB0aGUgbWVudSAqL1xyXG5cdFx0XHRtZW51VHJpZ2dlci5vcGVuTWVudSgpO1xyXG5cclxuXHRcdFx0LyogSGFuZGxlIGNsaWNrcyBvbiB0aGUgbWVudSBvdmVybGF5ICovXHJcblx0XHRcdGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ2Nkay1vdmVybGF5LWNvbnRhaW5lcicpWzBdPy5hZGRFdmVudExpc3RlbmVyKCdjb250ZXh0bWVudScsIChvZmZFdmVudDogYW55KSA9PiB7XHJcblx0XHRcdFx0b2ZmRXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuXHRcdFx0XHRtZW51VHJpZ2dlci5jbG9zZU1lbnUoKTtcclxuXHRcdFx0fSwgeyBvbmNlOiB0cnVlIH0pO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogSGFuZGxlcyBtb2RlbCBjaGFuZ2VzXHJcblx0ICogQHBhcmFtIGNvbHVtbiBcclxuXHQgKiBAcGFyYW0gcm93IFxyXG5cdCAqL1xyXG5cdHB1YmxpYyBoYW5kbGVNb2RlbENoYW5nZShjb2x1bW46IFRhYmxlQ29sdW1uLCByb3c6IGFueSk6IHZvaWQge1xyXG5cdFx0aWYgKHR5cGVvZiBjb2x1bW4/LmV2ZW50ID09PSAnZnVuY3Rpb24nKSB7XHJcblx0XHRcdGNvbHVtbi5ldmVudChyb3csIGNvbHVtbi5ldmVudEFyZ3MgPz8gdGhpcy5jb250ZXh0KTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIEhhbmRsZXMga2V5ZG93biBlbnRlciBvZiA8aW5wdXQ+IGFuZCA8dmQtc2VsZWN0PlxyXG5cdCAqIEBwYXJhbSAkZXZlbnQgXHJcblx0ICovXHJcblx0cHVibGljIGhhbmRsZUtleWRvd25FbnRlcigkZXZlbnQ6IEV2ZW50KTogYm9vbGVhbiB7XHJcblx0XHQoJGV2ZW50Py50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCk/LmJsdXIoKTtcclxuXHRcdHJldHVybiBmYWxzZTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIFBhdGNoZXMgYW4gZW50aXR5XHJcblx0ICogQHBhcmFtIHJvdyBcclxuXHQgKiBAcGFyYW0gZmllbGROYW1lIFxyXG5cdCAqIEBwYXJhbSBwYXRoIFxyXG5cdCAqL1xyXG5cdHB1YmxpYyBwYXRjaChyb3c6IGFueSwgZmllbGRzOiBBcnJheTxzdHJpbmc+LCB2YWx1ZTogYW55LCBpbmNsdWRlczogYW55KTogdm9pZCB7XHJcblx0XHQvKiBHZXQgZW50aXR5IGJ5IElEICovXHJcblx0XHRsZXQgZW50aXR5ID0gdGhpcy5kYXRhU291cmNlLml0ZW1zPy5maWx0ZXIoeCA9PiAoPGFueT54KS5pZCA9PT0gcm93LmlkKVswXTtcclxuXHRcdGlmIChlbnRpdHkpIHtcclxuXHRcdFx0LyogQnVpbGQgcGF0Y2ggbWV0aG9kcyAqL1xyXG5cdFx0XHRsZXQgcGF0Y2hlcyA9IGZpZWxkcy5tYXAoeCA9PiB7IHJldHVybiB7IG9wOiAncmVwbGFjZScsIHBhdGg6IGAvJHt4fWAsIHZhbHVlOiB2YWx1ZSAhPSB1bmRlZmluZWQgPyB2YWx1ZSA6IGVudGl0eVt4XSB9OyB9KTtcclxuXHJcblx0XHRcdC8qIFNlbmQgcmVxdWVzdCAqL1xyXG5cdFx0XHR0aGlzLmRhdGFTb3VyY2Uuc2VydmljZVxyXG5cdFx0XHRcdC5wYXRjaChyb3cuaWQsIHBhdGNoZXMsIG51bGwsIHsgaGVhZGVyczogeyAnU2hvdy1NZXNzYWdlJzogJ1llcycgfSwgcGFyYW1zOiBpbmNsdWRlcyA/IFV0aWxzLnRvSHR0cFBhcmFtcyh7IGluY2x1ZGVzOiBpbmNsdWRlcyB9KSA6IG51bGwgfSlcclxuXHRcdFx0XHQuc3Vic2NyaWJlKChfOiBhbnkpID0+IHRoaXMuZGF0YVNvdXJjZS5yZWxvYWQoKSk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBSZW5kZXJzIHJvd3MgYmFzZWQgb24gdGhlIHRhYmxlJ3MgbGF0ZXN0IHNldCBvZiBkYXRhLCB3aGljaCB3YXMgZWl0aGVyIHByb3ZpZGVkIGRpcmVjdGx5IGFzIGFuXHJcblx0ICogaW5wdXQgb3IgcmV0cmlldmVkIHRocm91Z2ggYW4gT2JzZXJ2YWJsZSBzdHJlYW0gKGRpcmVjdGx5IG9yIGZyb20gYSBEYXRhU291cmNlKS5cclxuXHQgKiBDaGVja3MgZm9yIGRpZmZlcmVuY2VzIGluIHRoZSBkYXRhIHNpbmNlIHRoZSBsYXN0IGRpZmYgdG8gcGVyZm9ybSBvbmx5IHRoZSBuZWNlc3NhcnlcclxuXHQgKiBjaGFuZ2VzIChhZGQvcmVtb3ZlL21vdmUgcm93cykuXHJcblx0ICovXHJcblx0cHVibGljIHJlbmRlclJvd3MoKTogdm9pZCB7XHJcblx0XHR0aGlzLnRhYmxlLnJlbmRlclJvd3MoKTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIEhhbmRsZXMgYSBzdHJpbmcgZnVuY3Rpb24gZXhwcmVzc2lvblxyXG5cdCAqIEBwYXJhbSBleHByZXNzaW9uIFxyXG5cdCAqIEByZXR1cm5zIFxyXG5cdCAqL1xyXG5cdHB1YmxpYyBoYW5kbGVFeHByZXNzaW9uKGV4cHJlc3Npb246IHN0cmluZyB8IEZ1bmN0aW9uLCBpdGVtOiBhbnkpOiBzdHJpbmcge1xyXG5cdFx0aWYgKCFleHByZXNzaW9uKSB7XHJcblx0XHRcdHJldHVybiBudWxsO1xyXG5cdFx0fVxyXG5cclxuXHRcdGlmICh0eXBlb2YgZXhwcmVzc2lvbiA9PT0gJ2Z1bmN0aW9uJykge1xyXG5cdFx0XHRyZXR1cm4gZXhwcmVzc2lvbihpdGVtLCB0aGlzLmNvbnRleHQpO1xyXG5cdFx0fVxyXG5cclxuXHRcdHJldHVybiBleHByZXNzaW9uO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogR2V0cyByb3cgY2xhc3Nlc1xyXG5cdCAqIEBwYXJhbSBjb2x1bW4gXHJcblx0ICogQHBhcmFtIHJvdyBcclxuXHQgKiBAcmV0dXJucyBcclxuXHQgKi9cclxuXHRwdWJsaWMgZ2V0Um93Q2xhc3Nlcyhjb2x1bW46IFRhYmxlQ29sdW1uLCByb3c6IGFueSk6IGFueSB7XHJcblx0XHRyZXR1cm4gT2JqZWN0LmFzc2lnbih7XHJcblx0XHRcdCdndC14cyc6IGNvbHVtbi5kaXNwbGF5ID09IEdyaWQuWHMsXHJcblx0XHRcdCdndC1zbSc6IGNvbHVtbi5kaXNwbGF5ID09IEdyaWQuU20sXHJcblx0XHRcdCdndC1tZCc6IGNvbHVtbi5kaXNwbGF5ID09IEdyaWQuTWQsXHJcblx0XHRcdCdndC1sZyc6IGNvbHVtbi5kaXNwbGF5ID09IEdyaWQuTGcsXHJcblx0XHRcdCdndC14bCc6IGNvbHVtbi5kaXNwbGF5ID09IEdyaWQuWGwsXHJcblx0XHRcdCdndC14eGwnOiBjb2x1bW4uZGlzcGxheSA9PSBHcmlkLlh4bCxcclxuXHRcdFx0J2hpZGRlbic6IGNvbHVtbi5kaXNwbGF5ID09IEdyaWQuTm9uZSxcclxuXHRcdFx0J3RleHQtcmlnaHQnOiBjb2x1bW4uYXJyb3dCZWZvcmVcclxuXHRcdH0sIGNvbHVtbi5jZWxsTmdDbGFzcyA/IGNvbHVtbi5jZWxsTmdDbGFzcyhyb3csIHRoaXMuY29udGV4dCkgOiB7fSk7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBMb2cgdG8gY29uc29sZVxyXG5cdCAqIEBwYXJhbSBtZXNzYWdlIFxyXG5cdCAqIEBwYXJhbSBvcHRpb25hbFBhcmFtcyBcclxuXHQgKi9cclxuXHRwdWJsaWMgbG9nKG1lc3NhZ2U6IGFueSwgLi4ub3B0aW9uYWxQYXJhbXM6IGFueVtdKSB7XHJcblx0XHRjb25zb2xlLmxvZyhtZXNzYWdlLCBvcHRpb25hbFBhcmFtcyk7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBBIGNhbGxiYWNrIG1ldGhvZCB0aGF0IGlzIGludm9rZWQgaW1tZWRpYXRlbHkgYWZ0ZXIgdGhlXHJcblx0ICogZGVmYXVsdCBjaGFuZ2UgZGV0ZWN0b3IgaGFzIGNvbXBsZXRlZCBvbmUgY2hhbmdlLWNoZWNrIGN5Y2xlXHJcblx0ICogZm9yIGEgY29tcG9uZW50J3Mgdmlldy5cclxuXHQgKi9cclxuXHRuZ0FmdGVyVmlld0NoZWNrZWQoKTogdm9pZCB7XHJcblx0XHR0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcclxuXHR9XHJcbn0iLCI8ZGl2IGNsYXNzPVwibG9hZGluZy1wcm9ncmVzc1wiICpuZ0lmPVwiIXN0YXRpY1wiPlxyXG5cdDxtYXQtcHJvZ3Jlc3MtYmFyIG1vZGU9XCJpbmRldGVybWluYXRlXCIgKm5nSWY9XCJkYXRhU291cmNlPy5pc0xvYWRpbmdcIj48L21hdC1wcm9ncmVzcy1iYXI+XHJcbjwvZGl2PlxyXG5cclxuPCEtLSAjcmVnaW9uIERhdGEgdGFibGUgLS0+XHJcbjx0YWJsZSBtYXQtdGFibGUgI3RhYmxlIFtkYXRhU291cmNlXT1cImRhdGFTb3VyY2VcIiBbZGF0YVNvdXJjZUZpbHRlcl09XCJkYXRhU291cmNlRmlsdGVyXCIgW25nQ2xhc3NdPVwieyd0YWJsZS1maXhlZCc6ICFkZXRhaWxzVGVtcGxhdGUgJiYgIXRlbXBsYXRlUmVmfVwiIFt0cmFja0J5XT1cInRyYWNrQnlcIiBtYXRTb3J0IG1hdFNvcnREaXNhYmxlQ2xlYXIgW21hdFNvcnRBY3RpdmVdPVwic29ydEFjdGl2ZXx8J2lkJ1wiIFttYXRTb3J0RGlyZWN0aW9uXT1cInNvcnREaXJlY3Rpb25cIiBtdWx0aVRlbXBsYXRlRGF0YVJvd3M+XHJcblx0PG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIGNvbHVtbnMkIHwgYXN5bmNcIj5cclxuXHRcdDwhLS0gI3JlZ2lvbiBDb2x1bW4gZGVmIC0tPlxyXG5cdFx0PG5nLWNvbnRhaW5lciBbY2RrQ29sdW1uRGVmXT1cImNvbHVtbi5uYW1lXCIgW3N0aWNreV09XCJjb2x1bW4uc3RpY2t5XCIgW3N0aWNreUVuZF09XCJjb2x1bW4uc3RpY2t5RW5kXCI+XHJcblx0XHRcdDx0aCBtYXQtaGVhZGVyLWNlbGwgKmNka0hlYWRlckNlbGxEZWYgW21hdC1zb3J0LWhlYWRlcl09XCJjb2x1bW4uc29ydEJ5IHx8IGNvbHVtbi5uYW1lXCIgW2hpZGRlbl09XCJjb2x1bW4uaGlkZGVuXCIgW25nU3R5bGVdPVwie21heFdpZHRoOmNvbHVtbi5tYXhXaWR0aD8oY29sdW1uLm1heFdpZHRoKyhjb2x1bW4ubWF4V2lkdGhVbml0IHx8ICdweCcpKTpudWxsLG1pbldpZHRoOmNvbHVtbi5taW5XaWR0aD8oY29sdW1uLm1pbldpZHRoKyhjb2x1bW4ubWluV2lkdGhVbml0IHx8ICdweCcpKTpudWxsLHdpZHRoOmNvbHVtbi53aWR0aD8oY29sdW1uLndpZHRoKyhjb2x1bW4ud2lkdGhVbml0IHx8ICdweCcpKTpudWxsfVwiIFtkaXNhYmxlZF09XCJjb2x1bW4udHlwZSA9PSBDb2x1bW5UeXBlLkNoZWNrYm94IHx8IGNvbHVtbi5kaXNhYmxlZFwiIFtuZ0NsYXNzXT1cInsnZ3QteHMnOiBjb2x1bW4uZGlzcGxheSA9PSBHcmlkLlhzLCAnZ3Qtc20nOiBjb2x1bW4uZGlzcGxheSA9PSBHcmlkLlNtLCAnZ3QtbWQnOiBjb2x1bW4uZGlzcGxheSA9PSBHcmlkLk1kLCAnZ3QtbGcnOiBjb2x1bW4uZGlzcGxheSA9PSBHcmlkLkxnLCAnZ3QteGwnOiBjb2x1bW4uZGlzcGxheSA9PSBHcmlkLlhsLCAnZ3QteHhsJzogY29sdW1uLmRpc3BsYXkgPT0gR3JpZC5YeGwsICdoaWRkZW4nOiBjb2x1bW4uZGlzcGxheSA9PSBHcmlkLk5vbmV9XCIgW2Fycm93UG9zaXRpb25dPVwiY29sdW1uLmFycm93QmVmb3JlPydiZWZvcmUnOidhZnRlcidcIj5cclxuXHRcdFx0XHQ8bWF0LWNoZWNrYm94ICpuZ0lmPVwiY29sdW1uLnR5cGUgPT0gQ29sdW1uVHlwZS5DaGVja2JveFwiIChjaGFuZ2UpPVwiJGV2ZW50ID8gZGF0YVNvdXJjZS50b2dnbGVTZWxlY3QoJGV2ZW50LCBzZWxlY3RBbGxGaWx0ZXIpIDogbnVsbFwiIFtkaXNhYmxlZF09XCIhZGF0YVNvdXJjZS5wYWdpbmF0b3I/Lmxlbmd0aFwiIFtjaGVja2VkXT1cImRhdGFTb3VyY2Uuc2VsZWN0aW9uTW9kZWwuaGFzVmFsdWUoKSAmJiBkYXRhU291cmNlLmlzQWxsU2VsZWN0ZWQoKVwiIFtpbmRldGVybWluYXRlXT1cImRhdGFTb3VyY2Uuc2VsZWN0aW9uTW9kZWwuaGFzVmFsdWUoKSAmJiAhZGF0YVNvdXJjZS5pc0FsbFNlbGVjdGVkKClcIj48L21hdC1jaGVja2JveD5cclxuXHRcdFx0XHQ8c3BhbiAqbmdJZj1cImNvbHVtbi50eXBlICE9IENvbHVtblR5cGUuQ2hlY2tib3hcIj57e2NvbHVtbi5oZWFkZXJ9fTwvc3Bhbj5cclxuXHRcdFx0PC90aD5cclxuXHJcblx0XHRcdDx0ZCBtYXQtY2VsbCAqY2RrQ2VsbERlZj1cImxldCByb3c7IGxldCByb3dJbmRleCA9IGRhdGFJbmRleFwiIFttYXRUb29sdGlwXT1cImNvbHVtbi50b29sdGlwP2NvbHVtbi50b29sdGlwKHJvdywgY29udGV4dCk6bnVsbFwiIFttYXRUb29sdGlwQ2xhc3NdPVwiY29sdW1uLnRvb2x0aXBDbGFzc1wiIFtoaWRkZW5dPVwiY29sdW1uLmhpZGRlblwiIFtuZ0NsYXNzXT1cImdldFJvd0NsYXNzZXMoY29sdW1uLCByb3cpXCIgW25nU3R5bGVdPVwie21heFdpZHRoOmNvbHVtbi5tYXhXaWR0aD8oY29sdW1uLm1heFdpZHRoKyhjb2x1bW4ubWF4V2lkdGhVbml0IHx8ICdweCcpKTpudWxsLG1pbldpZHRoOmNvbHVtbi5taW5XaWR0aD8oY29sdW1uLm1pbldpZHRoKyhjb2x1bW4ubWluV2lkdGhVbml0IHx8ICdweCcpKTpudWxsLHdpZHRoOmNvbHVtbi53aWR0aD8oY29sdW1uLndpZHRoKyhjb2x1bW4ud2lkdGhVbml0IHx8ICdweCcpKTpudWxsfVwiPlxyXG5cdFx0XHRcdDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cImNvbHVtbi50eXBlXCI+XHJcblx0XHRcdFx0XHQ8IS0tICNyZWdpb24gRW51bSBjb2x1bW4gLS0+XHJcblx0XHRcdFx0XHQ8bWF0LWNoZWNrYm94ICpuZ1N3aXRjaENhc2U9XCJDb2x1bW5UeXBlLkNoZWNrYm94XCIgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiIChjaGFuZ2UpPVwiJGV2ZW50ID8gZGF0YVNvdXJjZS5zZWxlY3Rpb25Nb2RlbC50b2dnbGUocm93KSA6IG51bGxcIiBbZGlzYWJsZWRdPVwicmVhZG9ubHkgfHwgKGNvbHVtbi5kaXNhYmxlZCB8fCAoY29sdW1uLmRpc2FibGUgJiYgY29sdW1uLmRpc2FibGUocm93LCBjb250ZXh0KSkpXCIgW2NoZWNrZWRdPVwiZGF0YVNvdXJjZS5zZWxlY3Rpb25Nb2RlbC5pc1NlbGVjdGVkKHJvdylcIj48L21hdC1jaGVja2JveD5cclxuXHRcdFx0XHRcdDwhLS0gI2VuZHJlZ2lvbiAtLT5cclxuXHJcblx0XHRcdFx0XHQ8IS0tICNyZWdpb24gRW51bSBjb2x1bW4gLS0+XHJcblx0XHRcdFx0XHQ8c3BhbiAqbmdTd2l0Y2hDYXNlPVwiQ29sdW1uVHlwZS5FbnVtXCI+XHJcblx0XHRcdFx0XHRcdDxuZy1jb250YWluZXIgKm5nSWY9XCJjb2x1bW4ubXVsdGlwbGU7IGVsc2UgZWxzZVRlbXBsYXRlXCI+XHJcblx0XHRcdFx0XHRcdFx0PGRpdiAqbmdGb3I9XCJsZXQgaXRlbSBvZiByb3dbY29sdW1uLm5hbWVdOyBsZXQgaSA9IGluZGV4OyBsZXQgbGFzdCA9IGxhc3RcIj5cclxuXHRcdFx0XHRcdFx0XHRcdDxzbWFsbCAqbmdJZj1cImk8MlwiIGkxOG49XCJAQHNlbGVjdGlvblwiPntpdGVtIHwgZW51bTpjb2x1bW4uZW51bVR5cGU6Y29sdW1uLmVudW1QcmVmaXgsIHNlbGVjdCwgdHlwZSB7dHlwZX0gb3RoZXIge3t7aXRlbSB8IGVudW06Y29sdW1uLmVudW1UeXBlOmNvbHVtbi5lbnVtUHJlZml4fX19fTwvc21hbGw+PHNtYWxsICpuZ0lmPVwiaT09MSAmJiByb3dbY29sdW1uLm5hbWVdLmxlbmd0aCA+IDJcIj4sIC4uLjwvc21hbGw+XHJcblx0XHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHRcdDwvbmctY29udGFpbmVyPlxyXG5cdFx0XHRcdFx0XHQ8bmctdGVtcGxhdGUgI2Vsc2VUZW1wbGF0ZT5cclxuXHRcdFx0XHRcdFx0XHQ8c3BhbiAqbmdJZj1cInJvd1tjb2x1bW4ubmFtZV0gPj0gMFwiIGkxOG49XCJAQHNlbGVjdGlvblwiPntjb2x1bW4uY29udGVudChyb3cpIHwgZW51bTpjb2x1bW4uZW51bVR5cGU6Y29sdW1uLmVudW1QcmVmaXgsIHNlbGVjdCwgdHlwZSB7dHlwZX0gb3RoZXIge3t7Y29sdW1uLmNvbnRlbnQocm93LCBjb250ZXh0KSB8IGVudW06Y29sdW1uLmVudW1UeXBlOmNvbHVtbi5lbnVtUHJlZml4fX19fTwvc3Bhbj5cclxuXHRcdFx0XHRcdFx0PC9uZy10ZW1wbGF0ZT5cclxuXHRcdFx0XHRcdDwvc3Bhbj5cclxuXHRcdFx0XHRcdDwhLS0gI2VuZHJlZ2lvbiAtLT5cclxuXHJcblx0XHRcdFx0XHQ8IS0tICNyZWdpb24gVG9nZ2xlIGNvbHVtbiAtLT5cclxuXHRcdFx0XHRcdDxtYXQtc2xpZGUtdG9nZ2xlICpuZ1N3aXRjaENhc2U9XCJDb2x1bW5UeXBlLlRvZ2dsZVwiIFsobmdNb2RlbCldPVwicm93W2NvbHVtbi5uYW1lXVwiIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XCIgKG5nTW9kZWxDaGFuZ2UpPVwiaGFuZGxlTW9kZWxDaGFuZ2UoY29sdW1uLCByb3cpXCIgW2Rpc2FibGVkXT1cInJlYWRvbmx5IHx8IChjb2x1bW4uZGlzYWJsZSAmJiBjb2x1bW4uZGlzYWJsZShyb3csIGNvbnRleHQpKVwiIGNvbG9yPVwicHJpbWFyeVwiPjwvbWF0LXNsaWRlLXRvZ2dsZT5cclxuXHRcdFx0XHRcdDwhLS0gI2VuZHJlZ2lvbiAtLT5cclxuXHJcblx0XHRcdFx0XHQ8IS0tICNyZWdpb24gRGF0ZSBjb2x1bW4gLS0+XHJcblx0XHRcdFx0XHQ8c3BhbiAqbmdTd2l0Y2hDYXNlPVwiQ29sdW1uVHlwZS5EYXRlXCI+e3tjb2x1bW4uY29udGVudChyb3csIGNvbnRleHQpIHwgZGF0ZTpjb2x1bW4uc2hvcnREYXRlPydkZC5NTS55eXl5JzonZGQuTU0ueXl5eSBISDptbTpzcyd9fTwvc3Bhbj5cclxuXHRcdFx0XHRcdDwhLS0gI2VuZHJlZ2lvbiAtLT5cclxuXHJcblx0XHRcdFx0XHQ8IS0tICNyZWdpb24gVGV4dCBJbnB1dCBjb2x1bW4gLS0+XHJcblx0XHRcdFx0XHQ8bWF0LWZvcm0tZmllbGQgKm5nU3dpdGNoQ2FzZT1cIkNvbHVtblR5cGUuVGV4dElucHV0XCIgYXBwZWFyYW5jZT1cIm91dGxpbmVcIiBsYXlvdXQ9XCJjb2x1bW5cIiBsYXlvdXQtYWxpZ249XCJjZW50ZXIgc3RhcnRcIiAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1wiPlxyXG5cdFx0XHRcdFx0XHQ8aW5wdXQgbWF0SW5wdXQgKm5nSWY9XCIhZm9ybUFycmF5XCIgdHlwZT1cInt7Y29sdW1uLmlucHV0VHlwZX19XCIgYXV0b2NvbXBsZXRlPVwibm9uZVwiIG5hbWU9XCJ7e2NvbHVtbi5uYW1lfX17e3Jvd0luZGV4fX1cIiBbKG5nTW9kZWwpXT1cInJvd1tjb2x1bW4ubmFtZV1cIiBbZGlzYWJsZWRdPVwicmVhZG9ubHkgfHwgKGNvbHVtbi5kaXNhYmxlZCB8fCAoY29sdW1uLmRpc2FibGUgJiYgY29sdW1uLmRpc2FibGUocm93LCBjb250ZXh0KSkpXCIgW21pbl09XCJjb2x1bW4uaW5wdXRNaW4/Y29sdW1uLmlucHV0TWluKHJvdywgY29udGV4dCk6bnVsbFwiIFttYXhdPVwiY29sdW1uLmlucHV0TWF4P2NvbHVtbi5pbnB1dE1heChyb3csIGNvbnRleHQpOm51bGxcIiAobmdNb2RlbENoYW5nZSk9XCJjb2x1bW4uY2hhbmdlP2NvbHVtbi5jaGFuZ2Uocm93LCBjb250ZXh0KTpwYXRjaChyb3csIFtjb2x1bW4ubmFtZV0sIHJvd1tjb2x1bW4ubmFtZV0sIGNvbHVtbi5wYXRjaEluY2x1ZGVzKVwiIFtuZ01vZGVsT3B0aW9uc109XCJ7dXBkYXRlT246ICdibHVyJ31cIiAoa2V5ZG93bi5lbnRlcik9XCJoYW5kbGVLZXlkb3duRW50ZXIoJGV2ZW50KVwiPlxyXG5cdFx0XHRcdFx0XHQ8bmctY29udGFpbmVyICpuZ0lmPVwiZm9ybUFycmF5XCIgW2Zvcm1Hcm91cF09XCJmb3JtQXJyYXk/LmNvbnRyb2xzW3Jvd0luZGV4XSB8IGZvcm1Hcm91cFwiPlxyXG5cdFx0XHRcdFx0XHRcdDxpbnB1dCBtYXRJbnB1dCB0eXBlPVwie3tjb2x1bW4uaW5wdXRUeXBlfX1cIiBhdXRvY29tcGxldGU9XCJub25lXCIgZm9ybUNvbnRyb2xOYW1lPVwie3tjb2x1bW4ubmFtZX19XCIgW2Rpc2FibGVDb250cm9sXT1cInJlYWRvbmx5IHx8IChjb2x1bW4uZGlzYWJsZWQgfHwgKGNvbHVtbi5kaXNhYmxlICYmIGNvbHVtbi5kaXNhYmxlKHJvdywgY29udGV4dCkpKVwiIFttaW5dPVwiY29sdW1uLmlucHV0TWluP2NvbHVtbi5pbnB1dE1pbihyb3csIGNvbnRleHQpOm51bGxcIiBbbWF4XT1cImNvbHVtbi5pbnB1dE1heD9jb2x1bW4uaW5wdXRNYXgocm93LCBjb250ZXh0KTpudWxsXCIgKGtleWRvd24uZW50ZXIpPVwiaGFuZGxlS2V5ZG93bkVudGVyKCRldmVudClcIj5cclxuXHRcdFx0XHRcdFx0PC9uZy1jb250YWluZXI+XHJcblx0XHRcdFx0XHQ8L21hdC1mb3JtLWZpZWxkPlxyXG5cdFx0XHRcdFx0PCEtLSAjZW5kcmVnaW9uIC0tPlxyXG5cclxuXHRcdFx0XHRcdDwhLS0gI3JlZ2lvbiBWRC1TZWxlY3QgY29sdW1uIC0tPlxyXG5cdFx0XHRcdFx0PG1hdC1mb3JtLWZpZWxkICpuZ1N3aXRjaENhc2U9XCJDb2x1bW5UeXBlLlNlbGVjdFwiIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCIgbGF5b3V0PVwiY29sdW1uXCIgbGF5b3V0LWFsaWduPVwiY2VudGVyIHN0YXJ0XCIgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcIj5cclxuXHRcdFx0XHRcdFx0PHZkLXNlbGVjdCAqbmdJZj1cIiFmb3JtQXJyYXlcIiBuYW1lPVwie3tjb2x1bW4ubmFtZX19e3tyb3dJbmRleH19XCIgW2VudW1dPVwiY29sdW1uLmVudW1UeXBlXCIgW2VudW1GaWx0ZXJdPVwiY29sdW1uLmVudW1GaWx0ZXIgfCBmdW5jOnJvdzpjb250ZXh0XCIgW29wdGlvbnNdPVwiY29sdW1uLm9wdGlvbnNcIiBbKG5nTW9kZWwpXT1cInJvd1tjb2x1bW4ubmFtZV1cIiBbZGlzYWJsZWRdPVwicmVhZG9ubHkgfHwgKGNvbHVtbi5kaXNhYmxlZCB8fCAoY29sdW1uLmRpc2FibGUgJiYgY29sdW1uLmRpc2FibGUocm93LCBjb250ZXh0KSkpXCIgKHNlbGVjdGlvbkNoYW5nZSk9XCJjb2x1bW4uY2hhbmdlP2NvbHVtbi5jaGFuZ2Uocm93LCBjb250ZXh0KTpwYXRjaChyb3csIFtjb2x1bW4ubmFtZV0sIHJvd1tjb2x1bW4ubmFtZV0sIGNvbHVtbi5wYXRjaEluY2x1ZGVzKVwiIChrZXlkb3duLmVudGVyKT1cImhhbmRsZUtleWRvd25FbnRlcigkZXZlbnQpXCI+PC92ZC1zZWxlY3Q+XHJcblx0XHRcdFx0XHRcdDxuZy1jb250YWluZXIgKm5nSWY9XCJmb3JtQXJyYXlcIiBbZm9ybUdyb3VwXT1cImZvcm1BcnJheT8uY29udHJvbHNbcm93SW5kZXhdIHwgZm9ybUdyb3VwXCI+XHJcblx0XHRcdFx0XHRcdFx0PHZkLXNlbGVjdCBbZW51bV09XCJjb2x1bW4uZW51bVR5cGVcIiBbZW51bUZpbHRlcl09XCJjb2x1bW4uZW51bUZpbHRlciB8IGZ1bmM6cm93OmNvbnRleHRcIiBbb3B0aW9uc109XCJjb2x1bW4ub3B0aW9uc1wiIGZvcm1Db250cm9sTmFtZT1cInt7Y29sdW1uLm5hbWV9fVwiIFtkaXNhYmxlQ29udHJvbF09XCJyZWFkb25seSB8fCAoY29sdW1uLmRpc2FibGVkIHx8IChjb2x1bW4uZGlzYWJsZSAmJiBjb2x1bW4uZGlzYWJsZShyb3csIGNvbnRleHQpKSlcIiAoc2VsZWN0aW9uQ2hhbmdlKT1cImNvbHVtbi5jaGFuZ2U/Y29sdW1uLmNoYW5nZShyb3csIGNvbnRleHQpOnBhdGNoKHJvdywgW2NvbHVtbi5uYW1lXSwgcm93W2NvbHVtbi5uYW1lXSwgY29sdW1uLnBhdGNoSW5jbHVkZXMpXCIgKGtleWRvd24uZW50ZXIpPVwiaGFuZGxlS2V5ZG93bkVudGVyKCRldmVudClcIj48L3ZkLXNlbGVjdD5cclxuXHRcdFx0XHRcdFx0PC9uZy1jb250YWluZXI+XHJcblx0XHRcdFx0XHQ8L21hdC1mb3JtLWZpZWxkPlxyXG5cdFx0XHRcdFx0PCEtLSAjZW5kcmVnaW9uIC0tPlxyXG5cclxuXHRcdFx0XHRcdDwhLS0gI3JlZ2lvbiBBY3Rpb24gLS0+XHJcblx0XHRcdFx0XHQ8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJDb2x1bW5UeXBlLkFjdGlvblwiPlxyXG5cdFx0XHRcdFx0XHQ8ZGl2IGlkPVwibWVudS17e3Jvdy5pZH19XCIgc3R5bGU9XCJ2aXNpYmlsaXR5OiBoaWRkZW47IHBvc2l0aW9uOiBmaXhlZDtcIiAjY29udGV4dE1lbnVUcmlnZ2VyPVwibWF0TWVudVRyaWdnZXJcIiBbbWF0TWVudVRyaWdnZXJGb3JdPVwibWVudS5tYXRNZW51XCIgKm5nSWY9XCJtZW51Py5tYXRNZW51ICYmICFyb3cubG9ja2VkICYmIGhhc1Zpc2libGVSb3dNZW51SXRlbXMocm93LCBjb2x1bW4pXCI+PC9kaXY+XHJcblx0XHRcdFx0XHRcdDx2ZC1keW5hbWljLW1lbnUgW2l0ZW1zXT1cIltjb2x1bW4ubWVudV1cIiBbZGF0YV09XCJyb3dcIiBbY29udGV4dF09XCJjb250ZXh0XCIgI21lbnU+PC92ZC1keW5hbWljLW1lbnU+XHJcblx0XHRcdFx0XHQ8L25nLWNvbnRhaW5lcj5cclxuXHRcdFx0XHRcdDwhLS0gI2VuZHJlZ2lvbiAtLT5cclxuXHJcblx0XHRcdFx0XHQ8IS0tICNyZWdpb24gTWVudSAtLT5cclxuXHRcdFx0XHRcdDx2ZC1keW5hbWljLW1lbnUgKm5nU3dpdGNoQ2FzZT1cIkNvbHVtblR5cGUuTWVudVwiIFtpdGVtc109XCJbY29sdW1uLm1lbnVdXCIgW2RhdGFdPVwicm93XCIgW2NvbnRleHRdPVwiY29udGV4dFwiPjwvdmQtZHluYW1pYy1tZW51PlxyXG5cdFx0XHRcdFx0PCEtLSAjZW5kcmVnaW9uIC0tPlxyXG5cclxuXHRcdFx0XHRcdDwhLS0gI3JlZ2lvbiBpY29uIGJ1dHRvbiAtLT5cclxuXHRcdFx0XHRcdDxhIG1hdC1pY29uLWJ1dHRvbiAqbmdTd2l0Y2hDYXNlPVwiQ29sdW1uVHlwZS5JY29uQnV0dG9uXCIgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtjb2x1bW4uaWNvbkJ1dHRvbj8uZXZlbnQ/Y29sdW1uLmljb25CdXR0b24uZXZlbnQocm93LCBjb250ZXh0KTpudWxsXCI+XHJcblx0XHRcdFx0XHRcdDxtYXQtaWNvbiBmb250U2V0PVwie3tjb2x1bW4uaWNvbkJ1dHRvbj8uaWNvbkZvbnRTZXQgfHwgJ21hdGVyaWFsLWljb25zLW91dGxpbmVkJ319XCIgW2NsYXNzXT1cImhhbmRsZUV4cHJlc3Npb24oY29sdW1uLmljb25CdXR0b24/Lmljb25DbGFzcywgcm93KVwiPnt7aGFuZGxlRXhwcmVzc2lvbihjb2x1bW4uaWNvbkJ1dHRvbj8uaWNvbiwgcm93KSB8fCAncmFkaW9fYnV0dG9uX2NoZWNrZWQnfX08L21hdC1pY29uPlxyXG5cdFx0XHRcdFx0PC9hPlxyXG5cdFx0XHRcdFx0PCEtLSAjZW5kcmVnaW9uIC0tPlxyXG5cclxuXHRcdFx0XHRcdDwhLS0gI3JlZ2lvbiBPdGhlciBjb2x1bW4gdHlwZXMgLS0+XHJcblx0XHRcdFx0XHQ8c3BhbiAqbmdTd2l0Y2hEZWZhdWx0IFtpbm5lckh0bWxdPVwiY29sdW1uLmNvbnRlbnQgPyBjb2x1bW4uY29udGVudChyb3csIGNvbnRleHQpOicnXCI+PC9zcGFuPlxyXG5cdFx0XHRcdFx0PCEtLSAjZW5kcmVnaW9uIC0tPlxyXG5cdFx0XHRcdDwvbmctY29udGFpbmVyPlxyXG5cdFx0XHQ8L3RkPlxyXG5cdFx0PC9uZy1jb250YWluZXI+XHJcblx0XHQ8IS0tICNlbmRyZWdpb24gLS0+XHJcblx0PC9uZy1jb250YWluZXI+XHJcblxyXG5cdDwhLS0gI3JlZ2lvbiBGaWx0ZXIgcm93IC0tPlxyXG5cdDxuZy1jb250YWluZXIgKm5nSWY9XCJkYXRhU291cmNlICYmIGZpbHRlcmFibGVcIj5cclxuXHRcdDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNvbHVtbiBvZiBjb2x1bW5zJCB8IGFzeW5jXCI+XHJcblx0XHRcdDxuZy1jb250YWluZXIgY2RrQ29sdW1uRGVmPVwiZmlsdGVyLnt7Y29sdW1uLmZpbHRlciB8fCBjb2x1bW4ubmFtZX19XCI+XHJcblx0XHRcdFx0PHRoIG1hdC1oZWFkZXItY2VsbCAqY2RrSGVhZGVyQ2VsbERlZiBbaGlkZGVuXT1cImNvbHVtbi5oaWRkZW5cIiBbbmdTdHlsZV09XCJ7bWF4V2lkdGg6Y29sdW1uLm1heFdpZHRoPyhjb2x1bW4ubWF4V2lkdGgrKGNvbHVtbi5tYXhXaWR0aFVuaXQgfHwgJ3B4JykpOm51bGwsbWluV2lkdGg6Y29sdW1uLm1pbldpZHRoPyhjb2x1bW4ubWluV2lkdGgrKGNvbHVtbi5taW5XaWR0aFVuaXQgfHwgJ3B4JykpOm51bGwsd2lkdGg6Y29sdW1uLndpZHRoPyhjb2x1bW4ud2lkdGgrKGNvbHVtbi53aWR0aFVuaXQgfHwgJ3B4JykpOm51bGx9XCIgW25nQ2xhc3NdPVwieydndC14cyc6IGNvbHVtbi5kaXNwbGF5ID09IEdyaWQuWHMsICdndC1zbSc6IGNvbHVtbi5kaXNwbGF5ID09IEdyaWQuU20sICdndC1tZCc6IGNvbHVtbi5kaXNwbGF5ID09IEdyaWQuTWQsICdndC1sZyc6IGNvbHVtbi5kaXNwbGF5ID09IEdyaWQuTGcsICdndC14bCc6IGNvbHVtbi5kaXNwbGF5ID09IEdyaWQuWGwsICdndC14eGwnOiBjb2x1bW4uZGlzcGxheSA9PSBHcmlkLlh4bCwgJ2hpZGRlbic6IGNvbHVtbi5kaXNwbGF5ID09IEdyaWQuTm9uZX1cIj5cclxuXHRcdFx0XHRcdDwhLS0gI3JlZ2lvbiBTZWxlY3QgZmlsdGVyIC0tPlxyXG5cdFx0XHRcdFx0PHNwYW4gKm5nSWY9XCIoY29sdW1uLmVuZHBvaW50IHx8IGNvbHVtbi5lbnVtVHlwZSB8fCBjb2x1bW4ub3B0aW9ucykgZWxzZSBub3RTZWxlY3RGaWx0ZXJcIiBmaWx0ZXItc2VsZWN0IFtlbmRwb2ludF09XCJjb2x1bW4uZW5kcG9pbnRcIiBbZW51bV09XCJjb2x1bW4uZW51bVR5cGVcIiBbZW51bUZpbHRlcl09XCJjb2x1bW4uZW51bUZpbHRlciB8IGZ1bmM6e306Y29udGV4dFwiIFtwcmVmaXhdPVwiY29sdW1uLmVudW1QcmVmaXhcIiBbb3B0aW9uc109XCJjb2x1bW4ub3B0aW9uc1wiIFt0ZXh0XT1cImNvbHVtbi5maWx0ZXJPcHRpb25UZXh0IHx8ICduYW1lJ1wiPjwvc3Bhbj5cclxuXHRcdFx0XHRcdDwhLS0gI2VuZHJlZ2lvbiAtLT5cclxuXHJcblx0XHRcdFx0XHQ8IS0tICNyZWdpb24gVGV4dCBmaWx0ZXIgLS0+XHJcblx0XHRcdFx0XHQ8bmctdGVtcGxhdGUgI25vdFNlbGVjdEZpbHRlcj5cclxuXHRcdFx0XHRcdFx0PHNwYW4gKm5nSWY9XCJub3RTZWxlY3RGaWx0ZXIgJiYgKGNvbHVtbi50eXBlID09IENvbHVtblR5cGUuVGV4dCB8fCBjb2x1bW4udHlwZSA9PSBDb2x1bW5UeXBlLlRleHRJbnB1dCB8fCBjb2x1bW4udHlwZSA9PSBDb2x1bW5UeXBlLk51bWJlcikgZWxzZSBub3RJbnB1dEZpbHRlclwiIGZpbHRlci1pbnB1dCBbb25seU51bWJlcl09XCJjb2x1bW4uZmlsdGVySW5wdXROdW1iZXJcIiBbb3BlcmF0b3JdPVwiY29sdW1uLmZpbHRlck9wZXJhdG9yXCI+PC9zcGFuPlxyXG5cdFx0XHRcdFx0PC9uZy10ZW1wbGF0ZT5cclxuXHRcdFx0XHRcdDwhLS0gI2VuZHJlZ2lvbiAtLT5cclxuXHJcblx0XHRcdFx0XHQ8IS0tICNyZWdpb24gRGF0ZSBmaWx0ZXIgLS0+XHJcblx0XHRcdFx0XHQ8bmctdGVtcGxhdGUgI25vdElucHV0RmlsdGVyPlxyXG5cdFx0XHRcdFx0XHQ8c3BhbiAqbmdJZj1cImNvbHVtbi50eXBlID09IENvbHVtblR5cGUuRGF0ZSBlbHNlIG5vdERhdGVGaWx0ZXJcIiBmaWx0ZXItZGF0ZT48L3NwYW4+XHJcblx0XHRcdFx0XHQ8L25nLXRlbXBsYXRlPlxyXG5cdFx0XHRcdFx0PCEtLSAjZW5kcmVnaW9uIC0tPlxyXG5cclxuXHRcdFx0XHRcdDwhLS0gI3JlZ2lvbiBBY3Rpb24gZmlsdGVyIChjbGVhcikgLS0+XHJcblx0XHRcdFx0XHQ8bmctdGVtcGxhdGUgI25vdERhdGVGaWx0ZXI+XHJcblx0XHRcdFx0XHRcdDxzcGFuICpuZ0lmPVwiY29sdW1uLnR5cGUgPT0gQ29sdW1uVHlwZS5BY3Rpb25cIiBmaWx0ZXItY2xlYXI+PC9zcGFuPlxyXG5cdFx0XHRcdFx0PC9uZy10ZW1wbGF0ZT5cclxuXHRcdFx0XHRcdDwhLS0gI2VuZHJlZ2lvbiAtLT5cclxuXHRcdFx0XHQ8L3RoPlxyXG5cdFx0XHQ8L25nLWNvbnRhaW5lcj5cclxuXHRcdDwvbmctY29udGFpbmVyPlxyXG5cdDwvbmctY29udGFpbmVyPlxyXG5cdDwhLS0gI2VuZHJlZ2lvbiAtLT5cclxuXHJcblx0PCEtLSAjcmVnaW9uIERldGFpbHMgY29sdW1uIC0tPlxyXG5cdDxuZy1jb250YWluZXIgY2RrQ29sdW1uRGVmPVwiZXhwYW5kZWREZXRhaWxcIj5cclxuXHRcdDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCByb3c7IGxldCBpbmRleCA9IGluZGV4XCIgW2F0dHIuY29sc3Bhbl09XCIoZGlzcGxheWVkQ29sdW1ucyQgfCBhc3luYykubGVuZ3RoXCI+XHJcblx0XHRcdDxkaXYgY2xhc3M9XCJyb3ctZGV0YWlsXCIgW0BkZXRhaWxFeHBhbmRdPVwicm93ID09IGV4cGFuZGVkUm93ID8gJ2V4cGFuZGVkJyA6ICdjb2xsYXBzZWQnXCIgI2RldGFpbHNUZW1wbGF0ZT5cclxuXHRcdFx0XHQ8bmctY29udGFpbmVyICpuZ0lmPVwidGVtcGxhdGVSZWYgJiYgcm93ID09PSBleHBhbmRlZFJvd1wiPlxyXG5cdFx0XHRcdFx0PG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRlbXBsYXRlUmVmOyBjb250ZXh0Ontyb3c6IHJvdywgaW5kZXg6IGluZGV4LCBjb250ZXh0OiBjb250ZXh0fVwiPjwvbmctY29udGFpbmVyPlxyXG5cdFx0XHRcdDwvbmctY29udGFpbmVyPlxyXG5cdFx0XHQ8L2Rpdj5cclxuXHRcdDwvdGQ+XHJcblx0PC9uZy1jb250YWluZXI+XHJcblx0PCEtLSAjZW5kcmVnaW9uIC0tPlxyXG5cclxuXHQ8IS0tICNyZWdpb24gRmlsdGVyIGhlYWRlciAtLT5cclxuXHQ8bmctY29udGFpbmVyICpuZ0lmPVwiZmlsdGVyYWJsZVwiPlxyXG5cdFx0PHRyIG1hdC1oZWFkZXItcm93ICpjZGtIZWFkZXJSb3dEZWY9XCJkaXNwbGF5ZWRGaWx0ZXJDb2x1bW5zJCB8IGFzeW5jXCI+PC90cj5cclxuXHQ8L25nLWNvbnRhaW5lcj5cclxuXHQ8IS0tICNlbmRyZWdpb24gLS0+XHJcblxyXG5cdDx0ciBtYXQtaGVhZGVyLXJvdyAqY2RrSGVhZGVyUm93RGVmPVwiZGlzcGxheWVkQ29sdW1ucyQgfCBhc3luYzsgc3RpY2t5OiBzdGlja3lGaWx0ZXJcIj48L3RyPlxyXG5cdDx0ciBtYXQtcm93ICpjZGtSb3dEZWY9XCJsZXQgcm93OyBjb2x1bW5zOiBkaXNwbGF5ZWRDb2x1bW5zJCB8IGFzeW5jOyBsZXQgaW5kZXggPSBkYXRhSW5kZXhcIiBbbmdDbGFzc109XCJyb3dOZ0NsYXNzP3Jvd05nQ2xhc3Mocm93LCBjb250ZXh0KTpudWxsXCIgW2NsYXNzLmV4cGFuZGVkLXJvd109XCJleHBhbmRlZFJvdyA9PT0gcm93XCIgKGNsaWNrKT1cImhhbmRsZVJvd0NsaWNrKGluZGV4LCByb3cpXCIgKGNvbnRleHRtZW51KT1cImhhbmRsZVJvd1JpZ2h0Q2xpY2soJGV2ZW50LCByb3cpXCI+PC90cj5cclxuXHJcblx0PCEtLSAjcmVnaW9uIERldHJhaWxzIHJvdyAtLT5cclxuXHQ8bmctY29udGFpbmVyICpuZ0lmPVwiZGV0YWlsc1RlbXBsYXRlIHx8IHRlbXBsYXRlUmVmXCI+XHJcblx0XHQ8dHIgbWF0LXJvdyAqY2RrUm93RGVmPVwibGV0IHJvdzsgY29sdW1uczogWydleHBhbmRlZERldGFpbCddXCIgY2xhc3M9XCJkZXRhaWwtcm93XCIgW25nQ2xhc3NdPVwicm93TmdDbGFzcz9yb3dOZ0NsYXNzKHJvdywgY29udGV4dCk6bnVsbFwiPjwvdHI+XHJcblx0PC9uZy1jb250YWluZXI+XHJcblx0PCEtLSAjZW5kcmVnaW9uIC0tPlxyXG48L3RhYmxlPlxyXG48IS0tICNlbmRyZWdpb24gLS0+XHJcblxyXG48IS0tICNyZWdpb24gUm93IHNob3duIHdoZW4gdGhlcmUgaXMgbm8gbWF0Y2hpbmcgZGF0YS4tLT5cclxuPGRpdiBjbGFzcz1cIm1hdC1jZWxsIHBhZCB0YWJsZS1lbXB0eSB0eHQtaXRhbGljXCIgKm5nSWY9XCIhZGF0YVNvdXJjZT8uZmlsdGVyZWREYXRhPy5sZW5ndGggJiYgIWRhdGFTb3VyY2U/LnRvdGFsXCIgaTE4bj1cIkBAbm9SZXN1bHRzRm91bmRcIj5ObyByZXN1bHRzIHdlcmUgZm91bmQuPC9kaXY+XHJcbjwhLS0gI2VuZHJlZ2lvbiAtLT5cclxuXHJcbjwhLS0gI3JlZ2lvbiBEZWJ1ZyB2YWx1ZSAtLT5cclxuPGNvZGUgKm5nSWY9XCJkZWJ1Z1ZhbHVlXCI+XHJcblx0PHByZT57e2Zvcm1WYWx1ZSB8IGpzb259fTwvcHJlPlxyXG48L2NvZGU+XHJcbjwhLS0gI2VuZHJlZ2lvbiAtLT5cclxuXHJcbjxkaXYgY2xhc3M9XCJ0YWJsZS1mb290ZXJcIiBsYXlvdXQ9XCJyb3dcIj5cclxuXHQ8bmctY29udGVudCBzZWxlY3Q9XCJbdGFibGUtZm9vdGVyXVwiPjwvbmctY29udGVudD5cclxuXHQ8c3BhbiBmbGV4Pjwvc3Bhbj5cclxuXHQ8bWF0LXBhZ2luYXRvciAqbmdJZj1cInBhZ2luYWJsZVwiIFtwYWdlU2l6ZV09XCJwYWdlU2l6ZVwiIFtwYWdlU2l6ZU9wdGlvbnNdPVwicGFnZVNpemVPcHRpb25zXCIgc2hvd0ZpcnN0TGFzdEJ1dHRvbnM9XCJ0cnVlXCI+PC9tYXQtcGFnaW5hdG9yPlxyXG48L2Rpdj4iXX0=
|
|
491
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy10YWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvc3JjL2xpYi90YWJsZS9jb21wb25lbnRzL2R5bmFtaWMtdGFibGUvZHluYW1pYy10YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvc3JjL2xpYi90YWJsZS9jb21wb25lbnRzL2R5bmFtaWMtdGFibGUvZHluYW1pYy10YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM3RixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM5RCxPQUFPLEVBQW9CLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JNLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzNELE9BQU8sRUFBRSxPQUFPLEVBQWlCLE1BQU0sd0JBQXdCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ25ELE9BQU8sRUFBRSxlQUFlLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztB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ZTtzQkFEckIsS0FBSztnQkFZRixRQUFRO3NCQURYLEtBQUs7Z0JBVUMsZUFBZTtzQkFEckIsS0FBSztnQkFPQyxPQUFPO3NCQURiLFNBQVM7dUJBQUMsT0FBTyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFZaEMsU0FBUztzQkFEWixTQUFTO3VCQUFDLFlBQVk7Z0JBZ0JuQixPQUFPO3NCQURWLEtBQUs7Z0JBNEJDLFlBQVk7c0JBRGxCLEtBQUs7Z0JBT0MsU0FBUztzQkFEZixLQUFLO2dCQU9DLGVBQWU7c0JBRHJCLEtBQUs7Z0JBT0Msc0JBQXNCO3NCQUQ1QixZQUFZO3VCQUFDLGNBQWM7Z0JBc0JyQixRQUFRO3NCQURkLEtBQUs7Z0JBT0MsZUFBZTtzQkFEckIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFuaW1hdGUsIEFVVE9fU1RZTEUsIHN0YXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlciB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xyXG5pbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xyXG5pbXBvcnQgeyBBZnRlclZpZXdDaGVja2VkLCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBDb250ZW50Q2hpbGQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBRdWVyeUxpc3QsIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGQsIFZpZXdDaGlsZHJlbiwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtQXJyYXkgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE1hdE1lbnVUcmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudSc7XHJcbmltcG9ydCB7IE1hdFBhZ2luYXRvciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3BhZ2luYXRvcic7XHJcbmltcG9ydCB7IE1hdFNvcnQsIFNvcnREaXJlY3Rpb24gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zb3J0JztcclxuaW1wb3J0IHsgTWF0VGFibGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJsZSc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgVXRpbHMgfSBmcm9tICcuLi8uLi8uLi9jb21tb24vZnVuY3Rpb25zL3V0aWxzJztcclxuaW1wb3J0IHsgRHluYW1pY0J1aWxkZXIgfSBmcm9tICcuLi8uLi8uLi9jb21tb24vaGVscGVycy9keW5hbWljLWJ1aWxkZXInO1xyXG5pbXBvcnQgeyBBY3Rpb25JdGVtIH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL21vZGVscy9hY3Rpb24taXRlbSc7XHJcbmltcG9ydCB7IEdyaWQgfSBmcm9tICcuLi8uLi9lbnVtcy9ncmlkJztcclxuaW1wb3J0IHsgVGFibGVDb2x1bW5UeXBlIH0gZnJvbSAnLi4vLi4vZW51bXMvdGFibGUtY29sdW1uLXR5cGUnO1xyXG5pbXBvcnQgeyBnZXRUYWJsZURlZmluaXRpb24gfSBmcm9tICcuLi8uLi9mdW5jdGlvbnMvZnVuY3Rpb25zJztcclxuaW1wb3J0IHsgVGFibGVDb2x1bW4gfSBmcm9tICcuLi8uLi9tb2RlbHMvdGFibGUtY29sdW1uJztcclxuaW1wb3J0IHsgVGFibGVEYXRhU291cmNlIH0gZnJvbSAnLi4vLi4vdGFibGUuZGF0YS1zb3VyY2UnO1xyXG5pbXBvcnQgeyBUYWJsZVN0YXRpY0RhdGFTb3VyY2UgfSBmcm9tICcuLi8uLi90YWJsZS5zdGF0aWMtZGF0YS1zb3VyY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcblx0c2VsZWN0b3I6ICd2ZC1keW5hbWljLXRhYmxlJyxcclxuXHR0ZW1wbGF0ZVVybDogJ2R5bmFtaWMtdGFibGUuY29tcG9uZW50Lmh0bWwnLFxyXG5cdHN0eWxlVXJsczogWydkeW5hbWljLXRhYmxlLmNvbXBvbmVudC5zY3NzJ10sXHJcblx0YW5pbWF0aW9uczogW1xyXG5cdFx0dHJpZ2dlcignZGV0YWlsRXhwYW5kJywgW1xyXG5cdFx0XHRzdGF0ZSgnY29sbGFwc2VkJywgc3R5bGUoeyBoZWlnaHQ6ICcwcHgnLCBtaW5IZWlnaHQ6ICcwJyB9KSksXHJcblx0XHRcdHN0YXRlKCdleHBhbmRlZCcsIHN0eWxlKHsgaGVpZ2h0OiBBVVRPX1NUWUxFIH0pKSxcclxuXHRcdFx0dHJhbnNpdGlvbignZXhwYW5kZWQgPD0+IGNvbGxhcHNlZCcsIGFuaW1hdGUoJzIyNW1zIGN1YmljLWJlemllcigwLjQsIDAuMCwgMC4yLCAxKScpKSxcclxuXHRcdF0pLFxyXG5cdF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBWZER5bmFtaWNUYWJsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3Q2hlY2tlZCB7XHJcblx0LyoqXHJcblx0ICogZGV0YWlsc1RlbXBsYXRlOiBWaWV3Q29udGFpbmVyUmVmXHJcblx0ICovXHJcblx0QFZpZXdDaGlsZCgndGFibGUnKVxyXG5cdHB1YmxpYyB0YWJsZTogTWF0VGFibGU8YW55PjtcclxuXHJcblx0LyoqXHJcblx0ICogZGV0YWlsc1RlbXBsYXRlOiBWaWV3Q29udGFpbmVyUmVmXHJcblx0ICovXHJcblx0QFZpZXdDaGlsZHJlbignZGV0YWlsc1RlbXBsYXRlJywgeyByZWFkOiBWaWV3Q29udGFpbmVyUmVmIH0pXHJcblx0cHVibGljIGRldGFpbHNUZW1wbGF0ZVJlZjogUXVlcnlMaXN0PGFueT47XHJcblxyXG5cdC8qKlxyXG5cdCAqIERldGFpbHMgdGVtcGxhdGVcclxuXHQgKi9cclxuXHRAQ29udGVudENoaWxkKFRlbXBsYXRlUmVmKVxyXG5cdHB1YmxpYyB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55PjtcclxuXHJcblx0LyoqXHJcblx0ICogRGF0YS10YWJsZSBkYXRhc291cmNlXHJcblx0ICovXHJcblx0QElucHV0KClcclxuXHRwdWJsaWMgZGF0YVNvdXJjZTogVGFibGVEYXRhU291cmNlPGFueSwgYW55PiB8IGFueTtcclxuXHJcblx0LyoqXHJcblx0ICogVGFibGUgZGF0YVxyXG5cdCAqL1xyXG5cdEBJbnB1dCgpXHJcblx0c2V0IGRhdGEoZGF0YTogYW55KSB7XHJcblx0XHR0aGlzLmRhdGFTb3VyY2UgPSBuZXcgVGFibGVTdGF0aWNEYXRhU291cmNlKGRhdGEpO1xyXG5cdFx0dGhpcy5kYXRhU291cmNlLnNvcnQgPSB0aGlzLm1hdFNvcnQ7XHJcblx0XHR0aGlzLmRhdGFTb3VyY2UucGFnaW5hdG9yID0gdGhpcy5fcGFnaW5hdG9yO1xyXG5cdFx0dGhpcy5wYWdpbmFibGUgPSB0cnVlO1xyXG5cdFx0dGhpcy5zdGF0aWMgPSB0cnVlO1xyXG5cdH07XHJcblxyXG5cdC8qKlxyXG5cdCAqIEBwcm9wZXJ0eVxyXG5cdCAqL1xyXG5cdHB1YmxpYyBfZm9ybUFycmF5OiBGb3JtQXJyYXk7Ly8gPSBuZXcgUnhGb3JtQXJyYXkoW10sIG51bGwpO1xyXG5cclxuXHQvKipcclxuXHQgKiBAcHJvcGVydHlcclxuXHQgKi9cclxuXHRASW5wdXQoKVxyXG5cdHB1YmxpYyBnZXQgZm9ybUFycmF5KCk6IEZvcm1BcnJheSB7IHJldHVybiB0aGlzLl9mb3JtQXJyYXk7IH1cclxuXHRwdWJsaWMgc2V0IGZvcm1BcnJheShmb3JtQXJyYXk6IEZvcm1BcnJheSkge1xyXG5cdFx0dGhpcy5fZm9ybUFycmF5ID0gZm9ybUFycmF5O1xyXG5cdFx0dGhpcy5kYXRhID0gdGhpcy5fZm9ybUFycmF5Py52YWx1ZTtcclxuXHJcblx0XHQvKiBVcGRhdGUgdGFibGUgZGF0YSAqL1xyXG5cdFx0dGhpcy5fZm9ybUFycmF5Py52YWx1ZUNoYW5nZXM/LnN1YnNjcmliZSh4ID0+IHtcclxuXHRcdFx0aWYgKHgubGVuZ3RoICE9PSB0aGlzLmRhdGFTb3VyY2U/LmRhdGE/Lmxlbmd0aCkge1xyXG5cdFx0XHRcdHRoaXMuZGF0YVNvdXJjZS5kYXRhID0gdGhpcy5fZm9ybUFycmF5Py52YWx1ZTtcclxuXHRcdFx0fVxyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBGb3JtIHJhdyB2YWx1ZVxyXG5cdCAqL1xyXG5cdHB1YmxpYyBnZXQgZm9ybVZhbHVlKCk6IGFueSB7IHJldHVybiB0aGlzLmZvcm1BcnJheT8uZ2V0UmF3VmFsdWUoKTsgfVxyXG5cclxuXHQvKipcclxuXHQgKiBkZWJ1Z1ZhbHVlOiBib29sZWFuXHJcblx0ICovXHJcblx0QElucHV0KClcclxuXHRwdWJsaWMgZGVidWdWYWx1ZTogYm9vbGVhbjtcclxuXHJcblx0LyoqXHJcblx0ICogQ2xhc3MgdHlwZVxyXG5cdCAqL1xyXG5cdEBJbnB1dCgpXHJcblx0cHVibGljIGNsYXNzVHlwZTogYW55O1xyXG5cclxuXHQvKipcclxuXHQgKiBDdXJyZW50IGNvbnRleHQgXHJcblx0ICovXHJcblx0QElucHV0KClcclxuXHRwdWJsaWMgY29udGV4dDogYW55O1xyXG5cclxuXHQvKipcclxuXHQgKiBkYXRhU291cmNlRmlsdGVyOiBhbnlcclxuXHQgKi9cclxuXHRASW5wdXQoKVxyXG5cdHB1YmxpYyBkYXRhU291cmNlRmlsdGVyOiBhbnkgPSB7fTtcclxuXHJcblx0LyoqXHJcblx0ICogU3RhdGljIHRhYmxlXHJcblx0ICovXHJcblx0QElucHV0KClcclxuXHRwdWJsaWMgc3RhdGljOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG5cdC8qKlxyXG5cdCAqIGZpbHRlcmFibGU/XHJcblx0ICovXHJcblx0QElucHV0KClcclxuXHRwdWJsaWMgZmlsdGVyYWJsZTogYm9vbGVhbiA9IHRydWU7XHJcblxyXG5cdC8qKlxyXG5cdCAqIHBhZ2luYWJsZT9cclxuXHQgKi9cclxuXHRASW5wdXQoKVxyXG5cdHB1YmxpYyBwYWdpbmFibGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcblx0LyoqXHJcblx0ICogU2hvd3MgdGhlIGNvbHVtbiAnQ2hlY2tib3gnXHJcblx0ICovXHJcblx0QElucHV0KClcclxuXHRwdWJsaWMgc2VsZWN0YWJsZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuXHQvKipcclxuXHQgKiBDdXJyZW50IHNvcnQgY29sdW1uXHJcblx0ICovXHJcblx0QElucHV0KClcclxuXHRwdWJsaWMgc29ydEFjdGl2ZTogc3RyaW5nO1xyXG5cclxuXHQvKipcclxuXHQgKiBDdXJyZW50IHNvcnQgZGlyZWN0aW9uXHJcblx0ICovXHJcblx0QElucHV0KClcclxuXHRwdWJsaWMgc29ydERpcmVjdGlvbjogU29ydERpcmVjdGlvbjtcclxuXHJcblx0LyoqXHJcblx0ICogU3RpY2t5IGhlYWRlclxyXG5cdCAqL1xyXG5cdEBJbnB1dCgpXHJcblx0cHVibGljIHN0aWNreUhlYWRlcjogYm9vbGVhbiA9IHRydWU7XHJcblxyXG5cdC8qKlxyXG5cdCAqIFN0aWNreSBmaWx0ZXJcclxuXHQgKi9cclxuXHRASW5wdXQoKVxyXG5cdHB1YmxpYyBzdGlja3lGaWx0ZXI6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuXHQvKipcclxuXHQgKiBSb3cgY2xpY2sgZXZlbnRcclxuXHQgKi9cclxuXHRAT3V0cHV0KClcclxuXHRwdWJsaWMgcm93Q2xpY2s6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG5cdC8qKlxyXG5cdCAqIHJvd05nQ2xhc3M6IEZ1bmN0aW9uXHJcblx0ICovXHJcblx0QElucHV0KClcclxuXHRwdWJsaWMgcm93TmdDbGFzczogRnVuY3Rpb247XHJcblxyXG5cdC8qKlxyXG5cdCAqIGRldGFpbHNUZW1wbGF0ZTogRnVuY3Rpb25cclxuXHQgKi9cclxuXHRASW5wdXQoKVxyXG5cdHB1YmxpYyBkZXRhaWxzVGVtcGxhdGU6IHN0cmluZztcclxuXHJcblx0LyoqXHJcblx0ICogX3JlYWRvbmx5OiBib29sZWFuO1xyXG5cdCAqL1xyXG5cdHB1YmxpYyBfcmVhZG9ubHk6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcblx0LyoqXHJcblx0ICogcmVhZG9ubHk6IGJvb2xlYW47XHJcblx0ICovXHJcblx0QElucHV0KClcclxuXHRnZXQgcmVhZG9ubHkoKSB7IHJldHVybiB0aGlzLl9yZWFkb25seTsgfVxyXG5cdHNldCByZWFkb25seShyZWFkb25seSkge1xyXG5cdFx0dGhpcy5fcmVhZG9ubHkgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkocmVhZG9ubHkpO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogc2VsZWN0QWxsRmlsdGVyOiBGdW5jdGlvblxyXG5cdCAqL1xyXG5cdEBJbnB1dCgpXHJcblx0cHVibGljIHNlbGVjdEFsbEZpbHRlcjogKHZhbHVlOiBhbnksIGluZGV4OiBudW1iZXIsIGFycmF5OiBhbnlbXSkgPT4gdW5rbm93bjtcclxuXHJcblx0LyoqXHJcblx0ICogQSByZWZlcmVuY2UgdG8gTWRTb3J0IGF0dHJpYnV0ZVxyXG5cdCAqL1xyXG5cdEBWaWV3Q2hpbGQoTWF0U29ydCwgeyBzdGF0aWM6IHRydWUgfSlcclxuXHRwdWJsaWMgbWF0U29ydDogTWF0U29ydDtcclxuXHJcblx0LyoqXHJcblx0ICogX3BhZ2luYXRvcjogTWF0UGFnaW5hdG9yXHJcblx0ICovXHJcblx0cHJpdmF0ZSBfcGFnaW5hdG9yOiBNYXRQYWdpbmF0b3I7XHJcblxyXG5cdC8qKlxyXG5cdCAqIHBhZ2luYXRvcjogTWF0UGFnaW5hdG9yXHJcblx0ICovXHJcblx0QFZpZXdDaGlsZChNYXRQYWdpbmF0b3IpXHJcblx0c2V0IHBhZ2luYXRvcihwYWdpbmF0b3I6IE1hdFBhZ2luYXRvcikge1xyXG5cdFx0aWYgKHBhZ2luYXRvcikge1xyXG5cdFx0XHR0aGlzLmRhdGFTb3VyY2UucGFnaW5hdG9yID0gcGFnaW5hdG9yO1xyXG5cdFx0fVxyXG5cdH07XHJcblxyXG5cdC8qKlxyXG5cdCAqIF9jb2x1bW5zOiBUYWJsZUNvbHVtbltdXHJcblx0ICovXHJcblx0cHJpdmF0ZSBfY29sdW1uczogVGFibGVDb2x1bW5bXSA9IFtdO1xyXG5cclxuXHQvKipcclxuXHQgKiBjb2x1bW5zOiBDb2x1bW5bXVxyXG5cdCAqL1xyXG5cdEBJbnB1dCgpXHJcblx0Z2V0IGNvbHVtbnMoKTogVGFibGVDb2x1bW5bXSB7IHJldHVybiB0aGlzLl9jb2x1bW5zOyB9O1xyXG5cdHNldCBjb2x1bW5zKGNvbHVtbnM6IFRhYmxlQ29sdW1uW10pIHsgdGhpcy5fY29sdW1ucyA9IGNvbHVtbnM7IH07XHJcblxyXG5cdC8qKlxyXG5cdCAqIGNvbHVtbnNTdWJqZWN0OiBTdWJqZWN0PChUYWJsZUNvbHVtbiB8IHN0cmluZylbXT5cclxuXHQgKi9cclxuXHRwdWJsaWMgY29sdW1uc1N1YmplY3Q6IEJlaGF2aW9yU3ViamVjdDxUYWJsZUNvbHVtbltdPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VGFibGVDb2x1bW5bXT4oW10pO1xyXG5cclxuXHQvKipcclxuXHQgKiBjb2x1bW5zJDogT2JzZXJ2YWJsZTwoVGFibGVDb2x1bW4gfCBzdHJpbmcpW10+XHJcblx0ICovXHJcblx0cHVibGljIGNvbHVtbnMkOiBPYnNlcnZhYmxlPFRhYmxlQ29sdW1uW10+ID0gdGhpcy5jb2x1bW5zU3ViamVjdC5hc09ic2VydmFibGUoKTs7XHJcblxyXG5cdC8qKlxyXG5cdCAqIERpc3BsYXllZCBjb2x1bW5zXHJcblx0ICovXHJcblx0cHVibGljIGRpc3BsYXllZENvbHVtbnMkOiBPYnNlcnZhYmxlPHN0cmluZ1tdPjtcclxuXHJcblx0LyoqXHJcblx0ICogRGlzcGxheWVkIGZpbHRlciBjb2x1bW5zXHJcblx0ICovXHJcblx0cHVibGljIGRpc3BsYXllZEZpbHRlckNvbHVtbnMkOiBPYnNlcnZhYmxlPHN0cmluZ1tdPjtcclxuXHJcblx0LyoqXHJcblx0ICogVGFibGUgcm93IG1lbnUgaXRlbXNcclxuXHQgKi9cclxuXHRASW5wdXQoKVxyXG5cdHB1YmxpYyByb3dNZW51SXRlbXM6IEFjdGlvbkl0ZW1bXSA9IFtdO1xyXG5cclxuXHQvKipcclxuXHQgKiBUYWJsZSByb3cgYWN0aW9uXHJcblx0ICovXHJcblx0QElucHV0KClcclxuXHRwdWJsaWMgcm93QWN0aW9uOiBBY3Rpb25JdGVtO1xyXG5cclxuXHQvKipcclxuXHQgKiBDb2x1bW5zIHRvIGV4Y2x1ZGVcclxuXHQgKi9cclxuXHRASW5wdXQoKVxyXG5cdHB1YmxpYyBleGNsdWRlZENvbHVtbnM6IHN0cmluZ1tdID0gW107XHJcblxyXG5cdC8qKlxyXG5cdCAqIFJlZmVyZW5jZSB0byB0aGUgTWF0TWVudVRyaWdnZXIgaW4gdGhlIERPTVxyXG5cdCAqL1xyXG5cdEBWaWV3Q2hpbGRyZW4oTWF0TWVudVRyaWdnZXIpXHJcblx0cHVibGljIHJvd0NvbnRleHRNZW51VHJpZ2dlcnM6IFF1ZXJ5TGlzdDxNYXRNZW51VHJpZ2dlcj47XHJcblxyXG5cdC8qKlxyXG5cdCAqIENvbHVtblR5cGU6IENvbHVtblR5cGVcclxuXHQgKi9cclxuXHRwdWJsaWMgQ29sdW1uVHlwZTogdHlwZW9mIFRhYmxlQ29sdW1uVHlwZSA9IFRhYmxlQ29sdW1uVHlwZTtcclxuXHJcblx0LyoqXHJcblx0ICogVGhlIHR5cGUgb2YgdGhlIGVudW0gR3JpZFxyXG5cdCAqL1xyXG5cdHB1YmxpYyBHcmlkOiB0eXBlb2YgR3JpZCA9IEdyaWQ7XHJcblxyXG5cdC8qKlxyXG5cdCAqIGV4cGFuZGVkUm93OiBhbnlcclxuXHQgKi9cclxuXHRwdWJsaWMgZXhwYW5kZWRSb3c6IGFueTtcclxuXHJcblx0LyoqXHJcblx0ICogRGVmYXVsdCBwYWdlIHNpemVcclxuXHQgKi9cclxuXHRASW5wdXQoKVxyXG5cdHB1YmxpYyBwYWdlU2l6ZTogbnVtYmVyID0gMTU7XHJcblxyXG5cdC8qKlxyXG5cdCAqIFBhZ2Ugc2l6ZSBvcHRpb25zXHJcblx0ICovXHJcblx0QElucHV0KClcclxuXHRwdWJsaWMgcGFnZVNpemVPcHRpb25zOiBBcnJheTxudW1iZXI+ID0gWzUsIDEwLCAxNSwgMjAsIDMwLCA1MCwgMTAwLCAyMDBdO1xyXG5cclxuXHQvKipcclxuXHQgKiBDb25zdHJ1Y3RvclxyXG5cdCAqIEBwYXJhbSBkeW5hbWljQnVpbGRlciBcclxuXHQgKi9cclxuXHRjb25zdHJ1Y3Rvcihwcml2YXRlIGR5bmFtaWNCdWlsZGVyOiBEeW5hbWljQnVpbGRlciwgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHsgfVxyXG5cclxuXHQvKipcclxuXHQgKiBBIGNhbGxiYWNrIG1ldGhvZCB0aGF0IGlzIGludm9rZWQgaW1tZWRpYXRlbHkgYWZ0ZXIgdGhlXHJcblx0ICogZGVmYXVsdCBjaGFuZ2UgZGV0ZWN0b3IgaGFzIGNoZWNrZWQgdGhlIGRpcmVjdGl2ZSdzXHJcblx0ICogZGF0YS1ib3VuZCBwcm9wZXJ0aWVzIGZvciB0aGUgZmlyc3QgdGltZSxcclxuXHQgKiBhbmQgYmVmb3JlIGFueSBvZiB0aGUgdmlldyBvciBjb250ZW50IGNoaWxkcmVuIGhhdmUgYmVlbiBjaGVja2VkLlxyXG5cdCAqIEl0IGlzIGludm9rZWQgb25seSBvbmNlIHdoZW4gdGhlIGRpcmVjdGl2ZSBpcyBpbnN0YW50aWF0ZWQuXHJcblx0ICovXHJcblx0bmdPbkluaXQoKTogdm9pZCB7XHJcblx0XHRpZiAodGhpcy5jbGFzc1R5cGUpIHtcclxuXHRcdFx0LyogR2V0IHRoZSB0YWJsZSBkZWZpbml0aW9uIHVzaW5nIHRoZSBjbGFzcyB0eXBlICovXHJcblx0XHRcdHZhciB0YWJsZURlZmluaXRpb24gPSBnZXRUYWJsZURlZmluaXRpb24odGhpcy5jbGFzc1R5cGUpO1xyXG5cdFx0XHRpZiAodGFibGVEZWZpbml0aW9uKSB7XHJcblx0XHRcdFx0dGhpcy5jb2x1bW5zID0gWy4uLnRhYmxlRGVmaW5pdGlvbi5jb2x1bW5zXTtcclxuXHRcdFx0XHRpZiAodGhpcy5yb3dNZW51SXRlbXM/Lmxlbmd0aCA+IDApIHtcclxuXHRcdFx0XHRcdC8qIENoZWNrIGlmIHRoZSBhY3Rpb24gY29sdW1uIGFscmVhZHkgZXhpc3RzICovXHJcblx0XHRcdFx0XHR2YXIgYWN0aW9uQ29sbXVuID0gdGhpcy5fY29sdW1ucz8uZmluZCh4ID0+IHgubmFtZSA9PSAnYWN0aW9uJyk7XHJcblxyXG5cdFx0XHRcdFx0LyogSWYgc28sIGp1c3QgYWRkIHRoZSBtZW51IGl0ZW1zIHRvIGl0ICovXHJcblx0XHRcdFx0XHRpZiAoYWN0aW9uQ29sbXVuICE9IG51bGwpIHtcclxuXHRcdFx0XHRcdFx0YWN0aW9uQ29sbXVuLm1lbnUgfHw9IHsgaWNvbjogJ21vcmVfdmVydCcgfTtcclxuXHRcdFx0XHRcdFx0dGhpcy5yb3dNZW51SXRlbXMuZm9yRWFjaCh5ID0+IGFjdGlvbkNvbG11bi5tZW51Lml0ZW1zLnVuc2hpZnQoeSkpO1xyXG5cdFx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRcdC8qIE90aGVyd2lzZSBhZGQgYSBuZXcgb25lICovXHJcblx0XHRcdFx0XHRlbHNlIHtcclxuXHRcdFx0XHRcdFx0dGhpcy5fY29sdW1ucy5wdXNoKG5ldyBUYWJsZUNvbHVtbih7XHJcblx0XHRcdFx0XHRcdFx0aW5kZXg6IDIwMDAsXHJcblx0XHRcdFx0XHRcdFx0bmFtZTogJ2FjdGlvbicsXHJcblx0XHRcdFx0XHRcdFx0dHlwZTogVGFibGVDb2x1bW5UeXBlLkFjdGlvbixcclxuXHRcdFx0XHRcdFx0XHRkaXNhYmxlZDogdHJ1ZSxcclxuXHRcdFx0XHRcdFx0XHRtZW51OiB7IGljb246ICdtb3JlX3ZlcnQnLCBpdGVtczogdGhpcy5yb3dNZW51SXRlbXMgfSxcclxuXHRcdFx0XHRcdFx0XHRjb25maWd1cmFibGU6IGZhbHNlXHJcblx0XHRcdFx0XHRcdH0pKTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9IGVsc2UgaWYgKHRoaXMucm93QWN0aW9uKSB7XHJcblx0XHRcdFx0XHR0aGlzLl9jb2x1bW5zLnB1c2gobmV3IFRhYmxlQ29sdW1uKHtcclxuXHRcdFx0XHRcdFx0aW5kZXg6IDIwMDAsXHJcblx0XHRcdFx0XHRcdG5hbWU6ICdhY3Rpb24nLFxyXG5cdFx0XHRcdFx0XHR0eXBlOiBUYWJsZUNvbHVtblR5cGUuQWN0aW9uLFxyXG5cdFx0XHRcdFx0XHRkaXNhYmxlZDogdHJ1ZSxcclxuXHRcdFx0XHRcdFx0bWVudTogdGhpcy5yb3dBY3Rpb24sXHJcblx0XHRcdFx0XHRcdGNvbmZpZ3VyYWJsZTogZmFsc2VcclxuXHRcdFx0XHRcdH0pKTtcclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdC8qIEFkZCBjaGVja2JveCBjb2x1bW4gKi9cclxuXHRcdFx0XHRpZiAodGhpcy5zZWxlY3RhYmxlKSB7XHJcblx0XHRcdFx0XHR0aGlzLmNvbHVtbnMudW5zaGlmdChuZXcgVGFibGVDb2x1bW4oe1xyXG5cdFx0XHRcdFx0XHRuYW1lOiAnc2VsZWN0JyxcclxuXHRcdFx0XHRcdFx0dHlwZTogVGFibGVDb2x1bW5UeXBlLkNoZWNrYm94LFxyXG5cdFx0XHRcdFx0XHRjb25maWd1cmFibGU6IGZhbHNlXHJcblx0XHRcdFx0XHR9KSk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cdFx0LyogQnVpbGQgZGlzcGxheWVkIGNvbHVtbnMgJiBmaWx0ZXIgKi9cclxuXHRcdHRoaXMuY29sdW1ucyQ/LnN1YnNjcmliZSh4ID0+IHtcclxuXHRcdFx0dGhpcy5kaXNwbGF5ZWRDb2x1bW5zJCA9IG9mKHRoaXMuY29sdW1ucz8uZmlsdGVyKHggPT4gIXRoaXMuZXhjbHVkZWRDb2x1bW5zPy5pbmNsdWRlcyh4Lm5hbWUpKT8ubWFwKGMgPT4gYy5uYW1lKSk7XHJcblx0XHRcdHRoaXMuZGlzcGxheWVkRmlsdGVyQ29sdW1ucyQgPSBvZih0aGlzLmNvbHVtbnM/LmZpbHRlcih4ID0+ICF0aGlzLmV4Y2x1ZGVkQ29sdW1ucz8uaW5jbHVkZXMoeC5uYW1lKSk/Lm1hcChjID0+IGBmaWx0ZXIuJHsoYy5maWx0ZXIgfHwgYy5uYW1lKX1gKSk7XHJcblx0XHR9KTtcclxuXHJcblx0XHQvKiBTZXQgdGhlIHRhYmxlIGNvbHVtbnMgKi9cclxuXHRcdHRoaXMudXBkYXRlQ29sdW1ucygpO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogVXBkYXRlcyB0aGUgdGFibGUgY29sdW1uc1xyXG5cdCAqL1xyXG5cdHB1YmxpYyB1cGRhdGVDb2x1bW5zKCk6IHZvaWQge1xyXG5cdFx0LyogU29ydCB0aGUgY29sdW1ucyBieSBpbmRleCAqL1xyXG5cdFx0VXRpbHMuc29ydEFycmF5KHRoaXMuY29sdW1ucyB8fCBbXSwgJ2luZGV4Jyk7XHJcblxyXG5cdFx0LyogVHJpZ2dlciBjaGFuZ2VzICovXHJcblx0XHR0aGlzLmNvbHVtbnNTdWJqZWN0Lm5leHQodGhpcy5jb2x1bW5zKTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIENvdW50cyB2aXNpYmxlIGFjdGlvbiBtZW51c1xyXG5cdCAqIEBwYXJhbSByb3cgXHJcblx0ICogQHBhcmFtIGNvbHVtbiBcclxuXHQgKiBAcmV0dXJucyBcclxuXHQgKi9cclxuXHRwdWJsaWMgaGFzVmlzaWJsZVJvd01lbnVJdGVtcyhyb3c6IGFueSwgY29sdW1uOiBUYWJsZUNvbHVtbikge1xyXG5cdFx0cmV0dXJuIGNvbHVtbj8ucm93TWVudUl0ZW1zPy5maWx0ZXIoeCA9PiAheC5oaWRlIHx8ICF4LmhpZGUocm93KSk/Lmxlbmd0aCA+IDA7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBBIGZ1bmN0aW9uIHRvIHRvIGNvbXB1dGUgdGhlIGlkZW50aXR5IG9mIGl0ZW1zIGluIGFuIGl0ZXJhYmxlLlxyXG5cdCAqIEBwYXJhbSBpbmRleCBcclxuXHQgKiBAcGFyYW0gaXRlbSBcclxuXHQgKi9cclxuXHRwdWJsaWMgdHJhY2tCeShpbmRleDogbnVtYmVyLCBpdGVtOiBhbnkpOiBzdHJpbmcge1xyXG5cdFx0cmV0dXJuIGAke2l0ZW0uaWR9YDtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIEhhbmRsZXMgcm93IGNsaWNrIGV2ZW50XHJcblx0ICogQHBhcmFtIGluZGV4IFxyXG5cdCAqIEBwYXJhbSByb3cgXHJcblx0ICovXHJcblx0cHVibGljIGhhbmRsZVJvd0NsaWNrKGluZGV4OiBhbnksIHJvdzogYW55KTogdm9pZCB7XHJcblx0XHRpZiAodGhpcy50ZW1wbGF0ZVJlZikge1xyXG5cdFx0XHR0aGlzLmV4cGFuZGVkUm93ID0gdGhpcy5leHBhbmRlZFJvdyA9PT0gcm93ID8gbnVsbCA6IHJvdztcclxuXHRcdH1cclxuXHRcdGVsc2UgaWYgKHRoaXMuZGV0YWlsc1RlbXBsYXRlKSB7XHJcblx0XHRcdHRoaXMuZXhwYW5kZWRSb3cgPSB0aGlzLmV4cGFuZGVkUm93ID09PSByb3cgPyBudWxsIDogcm93O1xyXG5cdFx0XHR0aGlzLmR5bmFtaWNCdWlsZGVyLmNvbXBpbGVIdG1sKHRoaXMuZGV0YWlsc1RlbXBsYXRlUmVmLmdldChpbmRleCksIHRoaXMuZGV0YWlsc1RlbXBsYXRlLCByb3cpO1xyXG5cdFx0fVxyXG5cdFx0ZWxzZSB7XHJcblx0XHRcdHRoaXMucm93Q2xpY2suZW1pdChyb3cpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogTWV0aG9kIGNhbGxlZCB3aGVuIHRoZSB1c2VyIGNsaWNrIHdpdGggdGhlIHJpZ2h0IGJ1dHRvblxyXG5cdCAqIEBwYXJhbSBldmVudCBNb3VzZUV2ZW50LCBpdCBjb250YWlucyB0aGUgY29vcmRpbmF0ZXNcclxuXHQgKiBAcGFyYW0gaXRlbSBPdXIgZGF0YSBjb250YWluZWQgaW4gdGhlIHJvdyBvZiB0aGUgdGFibGVcclxuXHQgKi9cclxuXHRwdWJsaWMgaGFuZGxlUm93UmlnaHRDbGljayhldmVudDogTW91c2VFdmVudCwgaXRlbTogYW55KSB7XHJcblx0XHR0aGlzLnJvd0NvbnRleHRNZW51VHJpZ2dlcnM/LnRvQXJyYXkoKT8uZm9yRWFjaCh4ID0+IHguY2xvc2VNZW51KCkpO1xyXG5cdFx0dmFyIG1lbnVUcmlnZ2VyID0gdGhpcy5yb3dDb250ZXh0TWVudVRyaWdnZXJzPy50b0FycmF5KCk/LmZpbHRlcih4ID0+IHhbJ19lbGVtZW50J10/Lm5hdGl2ZUVsZW1lbnQ/LmdldEF0dHJpYnV0ZSgnaWQnKSA9PSBgbWVudS0ke2l0ZW0uaWR9YClbMF07XHJcblx0XHRpZiAobWVudVRyaWdnZXIgIT0gbnVsbCkge1xyXG5cdFx0XHQvKiBBdm9pZHMgdG8gc2hvdyB0aGUgdmlzdWFsaXphdGlvbiBvZiB0aGUgcmlnaHQtY2xpY2sgbWVudSBvZiB0aGUgYnJvd3NlciAqL1xyXG5cdFx0XHRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG5cclxuXHRcdFx0LyogU2V0IHRoZSBwb3NpdGlvbiBvZiB0aGUgbWVudSAqL1xyXG5cdFx0XHRtZW51VHJpZ2dlclsnX2VsZW1lbnQnXT8ubmF0aXZlRWxlbWVudD8uc2V0QXR0cmlidXRlKCdzdHlsZScsIGBwb3NpdGlvbjogZml4ZWQ7IGxlZnQ6ICR7ZXZlbnQuY2xpZW50WH1weDsgdG9wOiAke2V2ZW50LmNsaWVudFl9cHhgKTtcclxuXHJcblx0XHRcdC8qIFBhc3MgdG8gdGhlIG1lbnUgdGhlIGN1cnJlbnQgb2JqZWN0ICovXHJcblx0XHRcdG1lbnVUcmlnZ2VyLm1lbnVEYXRhID0geyBpdGVtOiBpdGVtIH1cclxuXHJcblx0XHRcdC8qIE9wZW4gdGhlIG1lbnUgKi9cclxuXHRcdFx0bWVudVRyaWdnZXIub3Blbk1lbnUoKTtcclxuXHJcblx0XHRcdC8qIEhhbmRsZSBjbGlja3Mgb24gdGhlIG1lbnUgb3ZlcmxheSAqL1xyXG5cdFx0XHRkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdjZGstb3ZlcmxheS1jb250YWluZXInKVswXT8uYWRkRXZlbnRMaXN0ZW5lcignY29udGV4dG1lbnUnLCAob2ZmRXZlbnQ6IGFueSkgPT4ge1xyXG5cdFx0XHRcdG9mZkV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcblx0XHRcdFx0bWVudVRyaWdnZXIuY2xvc2VNZW51KCk7XHJcblx0XHRcdH0sIHsgb25jZTogdHJ1ZSB9KTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIEhhbmRsZXMgbW9kZWwgY2hhbmdlc1xyXG5cdCAqIEBwYXJhbSBjb2x1bW4gXHJcblx0ICogQHBhcmFtIHJvdyBcclxuXHQgKi9cclxuXHRwdWJsaWMgaGFuZGxlTW9kZWxDaGFuZ2UoY29sdW1uOiBUYWJsZUNvbHVtbiwgcm93OiBhbnkpOiB2b2lkIHtcclxuXHRcdGlmICh0eXBlb2YgY29sdW1uPy5ldmVudCA9PT0gJ2Z1bmN0aW9uJykge1xyXG5cdFx0XHRjb2x1bW4uZXZlbnQocm93LCBjb2x1bW4uZXZlbnRBcmdzID8/IHRoaXMuY29udGV4dCk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBIYW5kbGVzIGtleWRvd24gZW50ZXIgb2YgPGlucHV0PiBhbmQgPHZkLXNlbGVjdD5cclxuXHQgKiBAcGFyYW0gJGV2ZW50IFxyXG5cdCAqL1xyXG5cdHB1YmxpYyBoYW5kbGVLZXlkb3duRW50ZXIoJGV2ZW50OiBFdmVudCk6IGJvb2xlYW4ge1xyXG5cdFx0KCRldmVudD8udGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpPy5ibHVyKCk7XHJcblx0XHRyZXR1cm4gZmFsc2U7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBQYXRjaGVzIGFuIGVudGl0eVxyXG5cdCAqIEBwYXJhbSByb3cgXHJcblx0ICogQHBhcmFtIGZpZWxkTmFtZSBcclxuXHQgKiBAcGFyYW0gcGF0aCBcclxuXHQgKi9cclxuXHRwdWJsaWMgcGF0Y2gocm93OiBhbnksIGZpZWxkczogQXJyYXk8c3RyaW5nPiwgdmFsdWU6IGFueSwgaW5jbHVkZXM6IGFueSk6IHZvaWQge1xyXG5cdFx0LyogR2V0IGVudGl0eSBieSBJRCAqL1xyXG5cdFx0bGV0IGVudGl0eSA9IHRoaXMuZGF0YVNvdXJjZS5pdGVtcz8uZmlsdGVyKHggPT4gKDxhbnk+eCkuaWQgPT09IHJvdy5pZClbMF07XHJcblx0XHRpZiAoZW50aXR5KSB7XHJcblx0XHRcdC8qIEJ1aWxkIHBhdGNoIG1ldGhvZHMgKi9cclxuXHRcdFx0bGV0IHBhdGNoZXMgPSBmaWVsZHMubWFwKHggPT4geyByZXR1cm4geyBvcDogJ3JlcGxhY2UnLCBwYXRoOiBgLyR7eH1gLCB2YWx1ZTogdmFsdWUgIT0gdW5kZWZpbmVkID8gdmFsdWUgOiBlbnRpdHlbeF0gfTsgfSk7XHJcblxyXG5cdFx0XHQvKiBTZW5kIHJlcXVlc3QgKi9cclxuXHRcdFx0dGhpcy5kYXRhU291cmNlLnNlcnZpY2VcclxuXHRcdFx0XHQucGF0Y2gocm93LmlkLCBwYXRjaGVzLCBudWxsLCB7IGhlYWRlcnM6IHsgJ1Nob3ctTWVzc2FnZSc6ICdZZXMnIH0sIHBhcmFtczogaW5jbHVkZXMgPyBVdGlscy50b0h0dHBQYXJhbXMoeyBpbmNsdWRlczogaW5jbHVkZXMgfSkgOiBudWxsIH0pXHJcblx0XHRcdFx0LnN1YnNjcmliZSgoXzogYW55KSA9PiB0aGlzLmRhdGFTb3VyY2UucmVsb2FkKCkpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogUmVuZGVycyByb3dzIGJhc2VkIG9uIHRoZSB0YWJsZSdzIGxhdGVzdCBzZXQgb2YgZGF0YSwgd2hpY2ggd2FzIGVpdGhlciBwcm92aWRlZCBkaXJlY3RseSBhcyBhblxyXG5cdCAqIGlucHV0IG9yIHJldHJpZXZlZCB0aHJvdWdoIGFuIE9ic2VydmFibGUgc3RyZWFtIChkaXJlY3RseSBvciBmcm9tIGEgRGF0YVNvdXJjZSkuXHJcblx0ICogQ2hlY2tzIGZvciBkaWZmZXJlbmNlcyBpbiB0aGUgZGF0YSBzaW5jZSB0aGUgbGFzdCBkaWZmIHRvIHBlcmZvcm0gb25seSB0aGUgbmVjZXNzYXJ5XHJcblx0ICogY2hhbmdlcyAoYWRkL3JlbW92ZS9tb3ZlIHJvd3MpLlxyXG5cdCAqL1xyXG5cdHB1YmxpYyByZW5kZXJSb3dzKCk6IHZvaWQge1xyXG5cdFx0dGhpcy50YWJsZS5yZW5kZXJSb3dzKCk7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBIYW5kbGVzIGEgc3RyaW5nIGZ1bmN0aW9uIGV4cHJlc3Npb25cclxuXHQgKiBAcGFyYW0gZXhwcmVzc2lvbiBcclxuXHQgKiBAcmV0dXJucyBcclxuXHQgKi9cclxuXHRwdWJsaWMgaGFuZGxlRXhwcmVzc2lvbihleHByZXNzaW9uOiBzdHJpbmcgfCBGdW5jdGlvbiwgaXRlbTogYW55KTogc3RyaW5nIHtcclxuXHRcdGlmICghZXhwcmVzc2lvbikge1xyXG5cdFx0XHRyZXR1cm4gbnVsbDtcclxuXHRcdH1cclxuXHJcblx0XHRpZiAodHlwZW9mIGV4cHJlc3Npb24gPT09ICdmdW5jdGlvbicpIHtcclxuXHRcdFx0cmV0dXJuIGV4cHJlc3Npb24oaXRlbSwgdGhpcy5jb250ZXh0KTtcclxuXHRcdH1cclxuXHJcblx0XHRyZXR1cm4gZXhwcmVzc2lvbjtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIEdldHMgcm93IGNsYXNzZXNcclxuXHQgKiBAcGFyYW0gY29sdW1uIFxyXG5cdCAqIEBwYXJhbSByb3cgXHJcblx0ICogQHJldHVybnMgXHJcblx0ICovXHJcblx0cHVibGljIGdldFJvd0NsYXNzZXMoY29sdW1uOiBUYWJsZUNvbHVtbiwgcm93OiBhbnkpOiBhbnkge1xyXG5cdFx0cmV0dXJuIE9iamVjdC5hc3NpZ24oe1xyXG5cdFx0XHQnZ3QteHMnOiBjb2x1bW4uZGlzcGxheSA9PSBHcmlkLlhzLFxyXG5cdFx0XHQnZ3Qtc20nOiBjb2x1bW4uZGlzcGxheSA9PSBHcmlkLlNtLFxyXG5cdFx0XHQnZ3QtbWQnOiBjb2x1bW4uZGlzcGxheSA9PSBHcmlkLk1kLFxyXG5cdFx0XHQnZ3QtbGcnOiBjb2x1bW4uZGlzcGxheSA9PSBHcmlkLkxnLFxyXG5cdFx0XHQnZ3QteGwnOiBjb2x1bW4uZGlzcGxheSA9PSBHcmlkLlhsLFxyXG5cdFx0XHQnZ3QteHhsJzogY29sdW1uLmRpc3BsYXkgPT0gR3JpZC5YeGwsXHJcblx0XHRcdCdoaWRkZW4nOiBjb2x1bW4uZGlzcGxheSA9PSBHcmlkLk5vbmUsXHJcblx0XHRcdCd0ZXh0LXJpZ2h0JzogY29sdW1uLmFycm93QmVmb3JlXHJcblx0XHR9LCBjb2x1bW4uY2VsbE5nQ2xhc3MgPyBjb2x1bW4uY2VsbE5nQ2xhc3Mocm93LCB0aGlzLmNvbnRleHQpIDoge30pO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogTG9nIHRvIGNvbnNvbGVcclxuXHQgKiBAcGFyYW0gbWVzc2FnZSBcclxuXHQgKiBAcGFyYW0gb3B0aW9uYWxQYXJhbXMgXHJcblx0ICovXHJcblx0cHVibGljIGxvZyhtZXNzYWdlOiBhbnksIC4uLm9wdGlvbmFsUGFyYW1zOiBhbnlbXSkge1xyXG5cdFx0Y29uc29sZS5sb2cobWVzc2FnZSwgb3B0aW9uYWxQYXJhbXMpO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogQSBjYWxsYmFjayBtZXRob2QgdGhhdCBpcyBpbnZva2VkIGltbWVkaWF0ZWx5IGFmdGVyIHRoZVxyXG5cdCAqIGRlZmF1bHQgY2hhbmdlIGRldGVjdG9yIGhhcyBjb21wbGV0ZWQgb25lIGNoYW5nZS1jaGVjayBjeWNsZVxyXG5cdCAqIGZvciBhIGNvbXBvbmVudCdzIHZpZXcuXHJcblx0ICovXHJcblx0bmdBZnRlclZpZXdDaGVja2VkKCk6IHZvaWQge1xyXG5cdFx0dGhpcy5jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcblx0fVxyXG59IiwiPGRpdiBjbGFzcz1cImxvYWRpbmctcHJvZ3Jlc3NcIiAqbmdJZj1cIiFzdGF0aWNcIj5cclxuXHQ8bWF0LXByb2dyZXNzLWJhciBtb2RlPVwiaW5kZXRlcm1pbmF0ZVwiICpuZ0lmPVwiZGF0YVNvdXJjZT8uaXNMb2FkaW5nXCI+PC9tYXQtcHJvZ3Jlc3MtYmFyPlxyXG48L2Rpdj5cclxuXHJcbjwhLS0gI3JlZ2lvbiBEYXRhIHRhYmxlIC0tPlxyXG48dGFibGUgbWF0LXRhYmxlICN0YWJsZSBbZGF0YVNvdXJjZV09XCJkYXRhU291cmNlXCIgW2RhdGFTb3VyY2VGaWx0ZXJdPVwiZGF0YVNvdXJjZUZpbHRlclwiIFtuZ0NsYXNzXT1cInsndGFibGUtZml4ZWQnOiAhZGV0YWlsc1RlbXBsYXRlICYmICF0ZW1wbGF0ZVJlZn1cIiBbdHJhY2tCeV09XCJ0cmFja0J5XCIgbWF0U29ydCBtYXRTb3J0RGlzYWJsZUNsZWFyIFttYXRTb3J0QWN0aXZlXT1cInNvcnRBY3RpdmV8fCdpZCdcIiBbbWF0U29ydERpcmVjdGlvbl09XCJzb3J0RGlyZWN0aW9uXCIgbXVsdGlUZW1wbGF0ZURhdGFSb3dzPlxyXG5cdDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNvbHVtbiBvZiBjb2x1bW5zJCB8IGFzeW5jXCI+XHJcblx0XHQ8IS0tICNyZWdpb24gQ29sdW1uIGRlZiAtLT5cclxuXHRcdDxuZy1jb250YWluZXIgW2Nka0NvbHVtbkRlZl09XCJjb2x1bW4ubmFtZVwiIFtzdGlja3ldPVwiY29sdW1uLnN0aWNreVwiIFtzdGlja3lFbmRdPVwiY29sdW1uLnN0aWNreUVuZFwiPlxyXG5cdFx0XHQ8dGggbWF0LWhlYWRlci1jZWxsICpjZGtIZWFkZXJDZWxsRGVmIFttYXQtc29ydC1oZWFkZXJdPVwiY29sdW1uLnNvcnRCeSB8fCBjb2x1bW4ubmFtZVwiIFtoaWRkZW5dPVwiY29sdW1uLmhpZGRlblwiIFtuZ1N0eWxlXT1cInttYXhXaWR0aDpjb2x1bW4ubWF4V2lkdGg/KGNvbHVtbi5tYXhXaWR0aCsoY29sdW1uLm1heFdpZHRoVW5pdCB8fCAncHgnKSk6bnVsbCxtaW5XaWR0aDpjb2x1bW4ubWluV2lkdGg/KGNvbHVtbi5taW5XaWR0aCsoY29sdW1uLm1pbldpZHRoVW5pdCB8fCAncHgnKSk6bnVsbCx3aWR0aDpjb2x1bW4ud2lkdGg/KGNvbHVtbi53aWR0aCsoY29sdW1uLndpZHRoVW5pdCB8fCAncHgnKSk6bnVsbH1cIiBbZGlzYWJsZWRdPVwiY29sdW1uLnR5cGUgPT0gQ29sdW1uVHlwZS5DaGVja2JveCB8fCBjb2x1bW4uZGlzYWJsZWRcIiBbbmdDbGFzc109XCJ7J2d0LXhzJzogY29sdW1uLmRpc3BsYXkgPT0gR3JpZC5YcywgJ2d0LXNtJzogY29sdW1uLmRpc3BsYXkgPT0gR3JpZC5TbSwgJ2d0LW1kJzogY29sdW1uLmRpc3BsYXkgPT0gR3JpZC5NZCwgJ2d0LWxnJzogY29sdW1uLmRpc3BsYXkgPT0gR3JpZC5MZywgJ2d0LXhsJzogY29sdW1uLmRpc3BsYXkgPT0gR3JpZC5YbCwgJ2d0LXh4bCc6IGNvbHVtbi5kaXNwbGF5ID09IEdyaWQuWHhsLCAnaGlkZGVuJzogY29sdW1uLmRpc3BsYXkgPT0gR3JpZC5Ob25lfVwiIFthcnJvd1Bvc2l0aW9uXT1cImNvbHVtbi5hcnJvd0JlZm9yZT8nYmVmb3JlJzonYWZ0ZXInXCI+XHJcblx0XHRcdFx0PG1hdC1jaGVja2JveCAqbmdJZj1cImNvbHVtbi50eXBlID09IENvbHVtblR5cGUuQ2hlY2tib3hcIiAoY2hhbmdlKT1cIiRldmVudCA/IGRhdGFTb3VyY2UudG9nZ2xlU2VsZWN0KCRldmVudCwgc2VsZWN0QWxsRmlsdGVyKSA6IG51bGxcIiBbZGlzYWJsZWRdPVwiIWRhdGFTb3VyY2UucGFnaW5hdG9yPy5sZW5ndGhcIiBbY2hlY2tlZF09XCJkYXRhU291cmNlLnNlbGVjdGlvbk1vZGVsLmhhc1ZhbHVlKCkgJiYgZGF0YVNvdXJjZS5pc0FsbFNlbGVjdGVkKClcIiBbaW5kZXRlcm1pbmF0ZV09XCJkYXRhU291cmNlLnNlbGVjdGlvbk1vZGVsLmhhc1ZhbHVlKCkgJiYgIWRhdGFTb3VyY2UuaXNBbGxTZWxlY3RlZCgpXCI+PC9tYXQtY2hlY2tib3g+XHJcblx0XHRcdFx0PHNwYW4gKm5nSWY9XCJjb2x1bW4udHlwZSAhPSBDb2x1bW5UeXBlLkNoZWNrYm94XCI+e3tjb2x1bW4uaGVhZGVyfX08L3NwYW4+XHJcblx0XHRcdDwvdGg+XHJcblxyXG5cdFx0XHQ8dGQgbWF0LWNlbGwgKmNka0NlbGxEZWY9XCJsZXQgcm93OyBsZXQgcm93SW5kZXggPSBkYXRhSW5kZXhcIiBbbWF0VG9vbHRpcF09XCJjb2x1bW4udG9vbHRpcD9jb2x1bW4udG9vbHRpcChyb3csIGNvbnRleHQpOm51bGxcIiBbbWF0VG9vbHRpcENsYXNzXT1cImNvbHVtbi50b29sdGlwQ2xhc3NcIiBbaGlkZGVuXT1cImNvbHVtbi5oaWRkZW5cIiBbbmdDbGFzc109XCJnZXRSb3dDbGFzc2VzKGNvbHVtbiwgcm93KVwiIFtuZ1N0eWxlXT1cInttYXhXaWR0aDpjb2x1bW4ubWF4V2lkdGg/KGNvbHVtbi5tYXhXaWR0aCsoY29sdW1uLm1heFdpZHRoVW5pdCB8fCAncHgnKSk6bnVsbCxtaW5XaWR0aDpjb2x1bW4ubWluV2lkdGg/KGNvbHVtbi5taW5XaWR0aCsoY29sdW1uLm1pbldpZHRoVW5pdCB8fCAncHgnKSk6bnVsbCx3aWR0aDpjb2x1bW4ud2lkdGg/KGNvbHVtbi53aWR0aCsoY29sdW1uLndpZHRoVW5pdCB8fCAncHgnKSk6bnVsbH1cIj5cclxuXHRcdFx0XHQ8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJjb2x1bW4udHlwZVwiPlxyXG5cdFx0XHRcdFx0PCEtLSAjcmVnaW9uIEVudW0gY29sdW1uIC0tPlxyXG5cdFx0XHRcdFx0PG1hdC1jaGVja2JveCAqbmdTd2l0Y2hDYXNlPVwiQ29sdW1uVHlwZS5DaGVja2JveFwiIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIiAoY2hhbmdlKT1cIiRldmVudCA/IGRhdGFTb3VyY2Uuc2VsZWN0aW9uTW9kZWwudG9nZ2xlKHJvdykgOiBudWxsXCIgW2Rpc2FibGVkXT1cInJlYWRvbmx5IHx8IChjb2x1bW4uZGlzYWJsZWQgfHwgKGNvbHVtbi5kaXNhYmxlICYmIGNvbHVtbi5kaXNhYmxlKHJvdywgY29udGV4dCkpKVwiIFtjaGVja2VkXT1cImRhdGFTb3VyY2Uuc2VsZWN0aW9uTW9kZWwuaXNTZWxlY3RlZChyb3cpXCI+PC9tYXQtY2hlY2tib3g+XHJcblx0XHRcdFx0XHQ8IS0tICNlbmRyZWdpb24gLS0+XHJcblxyXG5cdFx0XHRcdFx0PCEtLSAjcmVnaW9uIEVudW0gY29sdW1uIC0tPlxyXG5cdFx0XHRcdFx0PHNwYW4gKm5nU3dpdGNoQ2FzZT1cIkNvbHVtblR5cGUuRW51bVwiPlxyXG5cdFx0XHRcdFx0XHQ8bmctY29udGFpbmVyICpuZ0lmPVwiY29sdW1uLm11bHRpcGxlOyBlbHNlIGVsc2VUZW1wbGF0ZVwiPlxyXG5cdFx0XHRcdFx0XHRcdDxkaXYgKm5nRm9yPVwibGV0IGl0ZW0gb2Ygcm93W2NvbHVtbi5uYW1lXTsgbGV0IGkgPSBpbmRleDsgbGV0IGxhc3QgPSBsYXN0XCI+XHJcblx0XHRcdFx0XHRcdFx0XHQ8c21hbGwgKm5nSWY9XCJpPDJcIiBpMThuPVwiQEBzZWxlY3Rpb25cIj57aXRlbSB8IGVudW06Y29sdW1uLmVudW1UeXBlOmNvbHVtbi5lbnVtUHJlZml4LCBzZWxlY3QsIHR5cGUge3R5cGV9IG90aGVyIHt7e2l0ZW0gfCBlbnVtOmNvbHVtbi5lbnVtVHlwZTpjb2x1bW4uZW51bVByZWZpeH19fX08L3NtYWxsPjxzbWFsbCAqbmdJZj1cImk9PTEgJiYgcm93W2NvbHVtbi5uYW1lXS5sZW5ndGggPiAyXCI+LCAuLi48L3NtYWxsPlxyXG5cdFx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0XHQ8L25nLWNvbnRhaW5lcj5cclxuXHRcdFx0XHRcdFx0PG5nLXRlbXBsYXRlICNlbHNlVGVtcGxhdGU+XHJcblx0XHRcdFx0XHRcdFx0PHNwYW4gKm5nSWY9XCJyb3dbY29sdW1uLm5hbWVdID49IDBcIiBpMThuPVwiQEBzZWxlY3Rpb25cIj57Y29sdW1uLmNvbnRlbnQocm93KSB8IGVudW06Y29sdW1uLmVudW1UeXBlOmNvbHVtbi5lbnVtUHJlZml4LCBzZWxlY3QsIHR5cGUge3R5cGV9IG90aGVyIHt7e2NvbHVtbi5jb250ZW50KHJvdywgY29udGV4dCkgfCBlbnVtOmNvbHVtbi5lbnVtVHlwZTpjb2x1bW4uZW51bVByZWZpeH19fX08L3NwYW4+XHJcblx0XHRcdFx0XHRcdDwvbmctdGVtcGxhdGU+XHJcblx0XHRcdFx0XHQ8L3NwYW4+XHJcblx0XHRcdFx0XHQ8IS0tICNlbmRyZWdpb24gLS0+XHJcblxyXG5cdFx0XHRcdFx0PCEtLSAjcmVnaW9uIFRvZ2dsZSBjb2x1bW4gLS0+XHJcblx0XHRcdFx0XHQ8bWF0LXNsaWRlLXRvZ2dsZSAqbmdTd2l0Y2hDYXNlPVwiQ29sdW1uVHlwZS5Ub2dnbGVcIiBbKG5nTW9kZWwpXT1cInJvd1tjb2x1bW4ubmFtZV1cIiAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1wiIChuZ01vZGVsQ2hhbmdlKT1cImhhbmRsZU1vZGVsQ2hhbmdlKGNvbHVtbiwgcm93KVwiIFtkaXNhYmxlZF09XCJyZWFkb25seSB8fCAoY29sdW1uLmRpc2FibGUgJiYgY29sdW1uLmRpc2FibGUocm93LCBjb250ZXh0KSlcIiBjb2xvcj1cInByaW1hcnlcIj48L21hdC1zbGlkZS10b2dnbGU+XHJcblx0XHRcdFx0XHQ8IS0tICNlbmRyZWdpb24gLS0+XHJcblxyXG5cdFx0XHRcdFx0PCEtLSAjcmVnaW9uIERhdGUgY29sdW1uIC0tPlxyXG5cdFx0XHRcdFx0PHNwYW4gKm5nU3dpdGNoQ2FzZT1cIkNvbHVtblR5cGUuRGF0ZVwiPnt7Y29sdW1uLmNvbnRlbnQocm93LCBjb250ZXh0KSB8IGRhdGU6Y29sdW1uLnNob3J0RGF0ZT8nZGQuTU0ueXl5eSc6J2RkLk1NLnl5eXkgSEg6bW06c3MnfX08L3NwYW4+XHJcblx0XHRcdFx0XHQ8IS0tICNlbmRyZWdpb24gLS0+XHJcblxyXG5cdFx0XHRcdFx0PCEtLSAjcmVnaW9uIFRleHQgSW5wdXQgY29sdW1uIC0tPlxyXG5cdFx0XHRcdFx0PG1hdC1mb3JtLWZpZWxkICpuZ1N3aXRjaENhc2U9XCJDb2x1bW5UeXBlLlRleHRJbnB1dFwiIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCIgbGF5b3V0PVwiY29sdW1uXCIgbGF5b3V0LWFsaWduPVwiY2VudGVyIHN0YXJ0XCIgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcIj5cclxuXHRcdFx0XHRcdFx0PGlucHV0IG1hdElucHV0ICpuZ0lmPVwiIWZvcm1BcnJheVwiIHR5cGU9XCJ7e2NvbHVtbi5pbnB1dFR5cGV9fVwiIGF1dG9jb21wbGV0ZT1cIm5vbmVcIiBuYW1lPVwie3tjb2x1bW4ubmFtZX19e3tyb3dJbmRleH19XCIgWyhuZ01vZGVsKV09XCJyb3dbY29sdW1uLm5hbWVdXCIgW2Rpc2FibGVkXT1cInJlYWRvbmx5IHx8IChjb2x1bW4uZGlzYWJsZWQgfHwgKGNvbHVtbi5kaXNhYmxlICYmIGNvbHVtbi5kaXNhYmxlKHJvdywgY29udGV4dCkpKVwiIFttaW5dPVwiY29sdW1uLmlucHV0TWluP2NvbHVtbi5pbnB1dE1pbihyb3csIGNvbnRleHQpOm51bGxcIiBbbWF4XT1cImNvbHVtbi5pbnB1dE1heD9jb2x1bW4uaW5wdXRNYXgocm93LCBjb250ZXh0KTpudWxsXCIgKG5nTW9kZWxDaGFuZ2UpPVwiY29sdW1uLmNoYW5nZT9jb2x1bW4uY2hhbmdlKHJvdywgY29udGV4dCk6cGF0Y2gocm93LCBbY29sdW1uLm5hbWVdLCByb3dbY29sdW1uLm5hbWVdLCBjb2x1bW4ucGF0Y2hJbmNsdWRlcylcIiBbbmdNb2RlbE9wdGlvbnNdPVwie3VwZGF0ZU9uOiAnYmx1cid9XCIgKGtleWRvd24uZW50ZXIpPVwiaGFuZGxlS2V5ZG93bkVudGVyKCRldmVudClcIj5cclxuXHRcdFx0XHRcdFx0PG5nLWNvbnRhaW5lciAqbmdJZj1cImZvcm1BcnJheVwiIFtmb3JtR3JvdXBdPVwiZm9ybUFycmF5Py5jb250cm9sc1tyb3dJbmRleF0gfCBmb3JtR3JvdXBcIj5cclxuXHRcdFx0XHRcdFx0XHQ8aW5wdXQgbWF0SW5wdXQgdHlwZT1cInt7Y29sdW1uLmlucHV0VHlwZX19XCIgYXV0b2NvbXBsZXRlPVwibm9uZVwiIGZvcm1Db250cm9sTmFtZT1cInt7Y29sdW1uLm5hbWV9fVwiIFtkaXNhYmxlQ29udHJvbF09XCJyZWFkb25seSB8fCAoY29sdW1uLmRpc2FibGVkIHx8IChjb2x1bW4uZGlzYWJsZSAmJiBjb2x1bW4uZGlzYWJsZShyb3csIGNvbnRleHQpKSlcIiBbbWluXT1cImNvbHVtbi5pbnB1dE1pbj9jb2x1bW4uaW5wdXRNaW4ocm93LCBjb250ZXh0KTpudWxsXCIgW21heF09XCJjb2x1bW4uaW5wdXRNYXg/Y29sdW1uLmlucHV0TWF4KHJvdywgY29udGV4dCk6bnVsbFwiIChrZXlkb3duLmVudGVyKT1cImhhbmRsZUtleWRvd25FbnRlcigkZXZlbnQpXCI+XHJcblx0XHRcdFx0XHRcdDwvbmctY29udGFpbmVyPlxyXG5cdFx0XHRcdFx0PC9tYXQtZm9ybS1maWVsZD5cclxuXHRcdFx0XHRcdDwhLS0gI2VuZHJlZ2lvbiAtLT5cclxuXHJcblx0XHRcdFx0XHQ8IS0tICNyZWdpb24gVkQtU2VsZWN0IGNvbHVtbiAtLT5cclxuXHRcdFx0XHRcdDxtYXQtZm9ybS1maWVsZCAqbmdTd2l0Y2hDYXNlPVwiQ29sdW1uVHlwZS5TZWxlY3RcIiBhcHBlYXJhbmNlPVwib3V0bGluZVwiIGxheW91dD1cImNvbHVtblwiIGxheW91dC1hbGlnbj1cImNlbnRlciBzdGFydFwiIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XCI+XHJcblx0XHRcdFx0XHRcdDx2ZC1zZWxlY3QgKm5nSWY9XCIhZm9ybUFycmF5XCIgbmFtZT1cInt7Y29sdW1uLm5hbWV9fXt7cm93SW5kZXh9fVwiIFtlbnVtXT1cImNvbHVtbi5lbnVtVHlwZVwiIFtlbnVtRmlsdGVyXT1cImNvbHVtbi5lbnVtRmlsdGVyIHwgZnVuYzpyb3c6Y29udGV4dFwiIFtvcHRpb25zXT1cImNvbHVtbi5vcHRpb25zXCIgWyhuZ01vZGVsKV09XCJyb3dbY29sdW1uLm5hbWVdXCIgW2Rpc2FibGVkXT1cInJlYWRvbmx5IHx8IChjb2x1bW4uZGlzYWJsZWQgfHwgKGNvbHVtbi5kaXNhYmxlICYmIGNvbHVtbi5kaXNhYmxlKHJvdywgY29udGV4dCkpKVwiIChzZWxlY3Rpb25DaGFuZ2UpPVwiY29sdW1uLmNoYW5nZT9jb2x1bW4uY2hhbmdlKHJvdywgY29udGV4dCk6cGF0Y2gocm93LCBbY29sdW1uLm5hbWVdLCByb3dbY29sdW1uLm5hbWVdLCBjb2x1bW4ucGF0Y2hJbmNsdWRlcylcIiAoa2V5ZG93bi5lbnRlcik9XCJoYW5kbGVLZXlkb3duRW50ZXIoJGV2ZW50KVwiPjwvdmQtc2VsZWN0PlxyXG5cdFx0XHRcdFx0XHQ8bmctY29udGFpbmVyICpuZ0lmPVwiZm9ybUFycmF5XCIgW2Zvcm1Hcm91cF09XCJmb3JtQXJyYXk/LmNvbnRyb2xzW3Jvd0luZGV4XSB8IGZvcm1Hcm91cFwiPlxyXG5cdFx0XHRcdFx0XHRcdDx2ZC1zZWxlY3QgW2VudW1dPVwiY29sdW1uLmVudW1UeXBlXCIgW2VudW1GaWx0ZXJdPVwiY29sdW1uLmVudW1GaWx0ZXIgfCBmdW5jOnJvdzpjb250ZXh0XCIgW29wdGlvbnNdPVwiY29sdW1uLm9wdGlvbnNcIiBmb3JtQ29udHJvbE5hbWU9XCJ7e2NvbHVtbi5uYW1lfX1cIiBbZGlzYWJsZUNvbnRyb2xdPVwicmVhZG9ubHkgfHwgKGNvbHVtbi5kaXNhYmxlZCB8fCAoY29sdW1uLmRpc2FibGUgJiYgY29sdW1uLmRpc2FibGUocm93LCBjb250ZXh0KSkpXCIgKHNlbGVjdGlvbkNoYW5nZSk9XCJjb2x1bW4uY2hhbmdlP2NvbHVtbi5jaGFuZ2Uocm93LCBjb250ZXh0KTpwYXRjaChyb3csIFtjb2x1bW4ubmFtZV0sIHJvd1tjb2x1bW4ubmFtZV0sIGNvbHVtbi5wYXRjaEluY2x1ZGVzKVwiIChrZXlkb3duLmVudGVyKT1cImhhbmRsZUtleWRvd25FbnRlcigkZXZlbnQpXCI+PC92ZC1zZWxlY3Q+XHJcblx0XHRcdFx0XHRcdDwvbmctY29udGFpbmVyPlxyXG5cdFx0XHRcdFx0PC9tYXQtZm9ybS1maWVsZD5cclxuXHRcdFx0XHRcdDwhLS0gI2VuZHJlZ2lvbiAtLT5cclxuXHJcblx0XHRcdFx0XHQ8IS0tICNyZWdpb24gQWN0aW9uIC0tPlxyXG5cdFx0XHRcdFx0PG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiQ29sdW1uVHlwZS5BY3Rpb25cIj5cclxuXHRcdFx0XHRcdFx0PGRpdiBpZD1cIm1lbnUte3tyb3cuaWR9fVwiIHN0eWxlPVwidmlzaWJpbGl0eTogaGlkZGVuOyBwb3NpdGlvbjogZml4ZWQ7XCIgI2NvbnRleHRNZW51VHJpZ2dlcj1cIm1hdE1lbnVUcmlnZ2VyXCIgW21hdE1lbnVUcmlnZ2VyRm9yXT1cIm1lbnUubWF0TWVudVwiICpuZ0lmPVwibWVudT8ubWF0TWVudSAmJiAhcm93LmxvY2tlZCAmJiBoYXNWaXNpYmxlUm93TWVudUl0ZW1zKHJvdywgY29sdW1uKVwiPjwvZGl2PlxyXG5cdFx0XHRcdFx0XHQ8dmQtZHluYW1pYy1tZW51IFtpdGVtc109XCJbY29sdW1uLm1lbnVdXCIgW2RhdGFdPVwicm93XCIgW2NvbnRleHRdPVwiY29udGV4dFwiICNtZW51PjwvdmQtZHluYW1pYy1tZW51PlxyXG5cdFx0XHRcdFx0PC9uZy1jb250YWluZXI+XHJcblx0XHRcdFx0XHQ8IS0tICNlbmRyZWdpb24gLS0+XHJcblxyXG5cdFx0XHRcdFx0PCEtLSAjcmVnaW9uIE1lbnUgLS0+XHJcblx0XHRcdFx0XHQ8dmQtZHluYW1pYy1tZW51ICpuZ1N3aXRjaENhc2U9XCJDb2x1bW5UeXBlLk1lbnVcIiBbaXRlbXNdPVwiW2NvbHVtbi5tZW51XVwiIFtkYXRhXT1cInJvd1wiIFtjb250ZXh0XT1cImNvbnRleHRcIj48L3ZkLWR5bmFtaWMtbWVudT5cclxuXHRcdFx0XHRcdDwhLS0gI2VuZHJlZ2lvbiAtLT5cclxuXHJcblx0XHRcdFx0XHQ8IS0tICNyZWdpb24gaWNvbiBidXR0b24gLS0+XHJcblx0XHRcdFx0XHQ8YSBtYXQtaWNvbi1idXR0b24gKm5nU3dpdGNoQ2FzZT1cIkNvbHVtblR5cGUuSWNvbkJ1dHRvblwiIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7Y29sdW1uLmljb25CdXR0b24/LmV2ZW50P2NvbHVtbi5pY29uQnV0dG9uLmV2ZW50KHJvdywgY29udGV4dCk6bnVsbFwiPlxyXG5cdFx0XHRcdFx0XHQ8bWF0LWljb24gZm9udFNldD1cInt7Y29sdW1uLmljb25CdXR0b24/Lmljb25Gb250U2V0IHx8ICdtYXRlcmlhbC1pY29ucy1vdXRsaW5lZCd9fVwiIFtjbGFzc109XCJoYW5kbGVFeHByZXNzaW9uKGNvbHVtbi5pY29uQnV0dG9uPy5pY29uQ2xhc3MsIHJvdylcIj57e2hhbmRsZUV4cHJlc3Npb24oY29sdW1uLmljb25CdXR0b24/Lmljb24sIHJvdykgfHwgJ3JhZGlvX2J1dHRvbl9jaGVja2VkJ319PC9tYXQtaWNvbj5cclxuXHRcdFx0XHRcdDwvYT5cclxuXHRcdFx0XHRcdDwhLS0gI2VuZHJlZ2lvbiAtLT5cclxuXHJcblx0XHRcdFx0XHQ8IS0tICNyZWdpb24gT3RoZXIgY29sdW1uIHR5cGVzIC0tPlxyXG5cdFx0XHRcdFx0PHNwYW4gKm5nU3dpdGNoRGVmYXVsdCBbaW5uZXJIdG1sXT1cImNvbHVtbi5jb250ZW50ID8gY29sdW1uLmNvbnRlbnQocm93LCBjb250ZXh0KTonJ1wiPjwvc3Bhbj5cclxuXHRcdFx0XHRcdDwhLS0gI2VuZHJlZ2lvbiAtLT5cclxuXHRcdFx0XHQ8L25nLWNvbnRhaW5lcj5cclxuXHRcdFx0PC90ZD5cclxuXHRcdDwvbmctY29udGFpbmVyPlxyXG5cdFx0PCEtLSAjZW5kcmVnaW9uIC0tPlxyXG5cdDwvbmctY29udGFpbmVyPlxyXG5cclxuXHQ8IS0tICNyZWdpb24gRmlsdGVyIHJvdyAtLT5cclxuXHQ8bmctY29udGFpbmVyICpuZ0lmPVwiZGF0YVNvdXJjZSAmJiBmaWx0ZXJhYmxlXCI+XHJcblx0XHQ8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgY29sdW1ucyQgfCBhc3luY1wiPlxyXG5cdFx0XHQ8bmctY29udGFpbmVyIGNka0NvbHVtbkRlZj1cImZpbHRlci57e2NvbHVtbi5maWx0ZXIgfHwgY29sdW1uLm5hbWV9fVwiPlxyXG5cdFx0XHRcdDx0aCBtYXQtaGVhZGVyLWNlbGwgKmNka0hlYWRlckNlbGxEZWYgW2hpZGRlbl09XCJjb2x1bW4uaGlkZGVuXCIgW25nU3R5bGVdPVwie21heFdpZHRoOmNvbHVtbi5tYXhXaWR0aD8oY29sdW1uLm1heFdpZHRoKyhjb2x1bW4ubWF4V2lkdGhVbml0IHx8ICdweCcpKTpudWxsLG1pbldpZHRoOmNvbHVtbi5taW5XaWR0aD8oY29sdW1uLm1pbldpZHRoKyhjb2x1bW4ubWluV2lkdGhVbml0IHx8ICdweCcpKTpudWxsLHdpZHRoOmNvbHVtbi53aWR0aD8oY29sdW1uLndpZHRoKyhjb2x1bW4ud2lkdGhVbml0IHx8ICdweCcpKTpudWxsfVwiIFtuZ0NsYXNzXT1cInsnZ3QteHMnOiBjb2x1bW4uZGlzcGxheSA9PSBHcmlkLlhzLCAnZ3Qtc20nOiBjb2x1bW4uZGlzcGxheSA9PSBHcmlkLlNtLCAnZ3QtbWQnOiBjb2x1bW4uZGlzcGxheSA9PSBHcmlkLk1kLCAnZ3QtbGcnOiBjb2x1bW4uZGlzcGxheSA9PSBHcmlkLkxnLCAnZ3QteGwnOiBjb2x1bW4uZGlzcGxheSA9PSBHcmlkLlhsLCAnZ3QteHhsJzogY29sdW1uLmRpc3BsYXkgPT0gR3JpZC5YeGwsICdoaWRkZW4nOiBjb2x1bW4uZGlzcGxheSA9PSBHcmlkLk5vbmV9XCI+XHJcblx0XHRcdFx0XHQ8IS0tICNyZWdpb24gU2VsZWN0IGZpbHRlciAtLT5cclxuXHRcdFx0XHRcdDxzcGFuICpuZ0lmPVwiKGNvbHVtbi5lbmRwb2ludCB8fCBjb2x1bW4uZW51bVR5cGUgfHwgY29sdW1uLm9wdGlvbnMpIGVsc2Ugbm90U2VsZWN0RmlsdGVyXCIgZmlsdGVyLXNlbGVjdCBbZW5kcG9pbnRdPVwiY29sdW1uLmVuZHBvaW50XCIgW2VudW1dPVwiY29sdW1uLmVudW1UeXBlXCIgW2VudW1GaWx0ZXJdPVwiY29sdW1uLmVudW1GaWx0ZXIgfCBmdW5jOnt9OmNvbnRleHRcIiBbcHJlZml4XT1cImNvbHVtbi5lbnVtUHJlZml4XCIgW29wdGlvbnNdPVwiY29sdW1uLm9wdGlvbnNcIiBbdGV4dF09XCJjb2x1bW4uZmlsdGVyT3B0aW9uVGV4dCB8fCAnbmFtZSdcIj48L3NwYW4+XHJcblx0XHRcdFx0XHQ8IS0tICNlbmRyZWdpb24gLS0+XHJcblxyXG5cdFx0XHRcdFx0PCEtLSAjcmVnaW9uIFRleHQgZmlsdGVyIC0tPlxyXG5cdFx0XHRcdFx0PG5nLXRlbXBsYXRlICNub3RTZWxlY3RGaWx0ZXI+XHJcblx0XHRcdFx0XHRcdDxzcGFuICpuZ0lmPVwibm90U2VsZWN0RmlsdGVyICYmIChjb2x1bW4udHlwZSA9PSBDb2x1bW5UeXBlLlRleHQgfHwgY29sdW1uLnR5cGUgPT0gQ29sdW1uVHlwZS5UZXh0SW5wdXQgfHwgY29sdW1uLnR5cGUgPT0gQ29sdW1uVHlwZS5OdW1iZXIpIGVsc2Ugbm90SW5wdXRGaWx0ZXJcIiBmaWx0ZXItaW5wdXQgW29ubHlOdW1iZXJdPVwiY29sdW1uLmZpbHRlcklucHV0TnVtYmVyXCIgW29wZXJhdG9yXT1cImNvbHVtbi5maWx0ZXJPcGVyYXRvclwiPjwvc3Bhbj5cclxuXHRcdFx0XHRcdDwvbmctdGVtcGxhdGU+XHJcblx0XHRcdFx0XHQ8IS0tICNlbmRyZWdpb24gLS0+XHJcblxyXG5cdFx0XHRcdFx0PCEtLSAjcmVnaW9uIERhdGUgZmlsdGVyIC0tPlxyXG5cdFx0XHRcdFx0PG5nLXRlbXBsYXRlICNub3RJbnB1dEZpbHRlcj5cclxuXHRcdFx0XHRcdFx0PHNwYW4gKm5nSWY9XCJjb2x1bW4udHlwZSA9PSBDb2x1bW5UeXBlLkRhdGUgZWxzZSBub3REYXRlRmlsdGVyXCIgZmlsdGVyLWRhdGU+PC9zcGFuPlxyXG5cdFx0XHRcdFx0PC9uZy10ZW1wbGF0ZT5cclxuXHRcdFx0XHRcdDwhLS0gI2VuZHJlZ2lvbiAtLT5cclxuXHJcblx0XHRcdFx0XHQ8IS0tICNyZWdpb24gQWN0aW9uIGZpbHRlciAoY2xlYXIpIC0tPlxyXG5cdFx0XHRcdFx0PG5nLXRlbXBsYXRlICNub3REYXRlRmlsdGVyPlxyXG5cdFx0XHRcdFx0XHQ8c3BhbiAqbmdJZj1cImNvbHVtbi50eXBlID09IENvbHVtblR5cGUuQWN0aW9uXCIgZmlsdGVyLWNsZWFyPjwvc3Bhbj5cclxuXHRcdFx0XHRcdDwvbmctdGVtcGxhdGU+XHJcblx0XHRcdFx0XHQ8IS0tICNlbmRyZWdpb24gLS0+XHJcblx0XHRcdFx0PC90aD5cclxuXHRcdFx0PC9uZy1jb250YWluZXI+XHJcblx0XHQ8L25nLWNvbnRhaW5lcj5cclxuXHQ8L25nLWNvbnRhaW5lcj5cclxuXHQ8IS0tICNlbmRyZWdpb24gLS0+XHJcblxyXG5cdDwhLS0gI3JlZ2lvbiBEZXRhaWxzIGNvbHVtbiAtLT5cclxuXHQ8bmctY29udGFpbmVyIGNka0NvbHVtbkRlZj1cImV4cGFuZGVkRGV0YWlsXCI+XHJcblx0XHQ8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgcm93OyBsZXQgaW5kZXggPSBpbmRleFwiIFthdHRyLmNvbHNwYW5dPVwiKGRpc3BsYXllZENvbHVtbnMkIHwgYXN5bmMpLmxlbmd0aFwiPlxyXG5cdFx0XHQ8ZGl2IGNsYXNzPVwicm93LWRldGFpbFwiIFtAZGV0YWlsRXhwYW5kXT1cInJvdyA9PSBleHBhbmRlZFJvdyA/ICdleHBhbmRlZCcgOiAnY29sbGFwc2VkJ1wiICNkZXRhaWxzVGVtcGxhdGU+XHJcblx0XHRcdFx0PG5nLWNvbnRhaW5lciAqbmdJZj1cInRlbXBsYXRlUmVmICYmIHJvdyA9PT0gZXhwYW5kZWRSb3dcIj5cclxuXHRcdFx0XHRcdDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0ZW1wbGF0ZVJlZjsgY29udGV4dDp7cm93OiByb3csIGluZGV4OiBpbmRleCwgY29udGV4dDogY29udGV4dH1cIj48L25nLWNvbnRhaW5lcj5cclxuXHRcdFx0XHQ8L25nLWNvbnRhaW5lcj5cclxuXHRcdFx0PC9kaXY+XHJcblx0XHQ8L3RkPlxyXG5cdDwvbmctY29udGFpbmVyPlxyXG5cdDwhLS0gI2VuZHJlZ2lvbiAtLT5cclxuXHJcblx0PCEtLSAjcmVnaW9uIEZpbHRlciBoZWFkZXIgLS0+XHJcblx0PG5nLWNvbnRhaW5lciAqbmdJZj1cImZpbHRlcmFibGVcIj5cclxuXHRcdDx0ciBtYXQtaGVhZGVyLXJvdyAqY2RrSGVhZGVyUm93RGVmPVwiZGlzcGxheWVkRmlsdGVyQ29sdW1ucyQgfCBhc3luY1wiPjwvdHI+XHJcblx0PC9uZy1jb250YWluZXI+XHJcblx0PCEtLSAjZW5kcmVnaW9uIC0tPlxyXG5cclxuXHQ8dHIgbWF0LWhlYWRlci1yb3cgKmNka0hlYWRlclJvd0RlZj1cImRpc3BsYXllZENvbHVtbnMkIHwgYXN5bmM7IHN0aWNreTogc3RpY2t5RmlsdGVyXCI+PC90cj5cclxuXHQ8dHIgbWF0LXJvdyAqY2RrUm93RGVmPVwibGV0IHJvdzsgY29sdW1uczogZGlzcGxheWVkQ29sdW1ucyQgfCBhc3luYzsgbGV0IGluZGV4ID0gZGF0YUluZGV4XCIgW25nQ2xhc3NdPVwicm93TmdDbGFzcz9yb3dOZ0NsYXNzKHJvdywgY29udGV4dCk6bnVsbFwiIFtjbGFzcy5leHBhbmRlZC1yb3ddPVwiZXhwYW5kZWRSb3cgPT09IHJvd1wiIChjbGljayk9XCJoYW5kbGVSb3dDbGljayhpbmRleCwgcm93KVwiIChjb250ZXh0bWVudSk9XCJoYW5kbGVSb3dSaWdodENsaWNrKCRldmVudCwgcm93KVwiPjwvdHI+XHJcblxyXG5cdDwhLS0gI3JlZ2lvbiBEZXRyYWlscyByb3cgLS0+XHJcblx0PG5nLWNvbnRhaW5lciAqbmdJZj1cImRldGFpbHNUZW1wbGF0ZSB8fCB0ZW1wbGF0ZVJlZlwiPlxyXG5cdFx0PHRyIG1hdC1yb3cgKmNka1Jvd0RlZj1cImxldCByb3c7IGNvbHVtbnM6IFsnZXhwYW5kZWREZXRhaWwnXVwiIGNsYXNzPVwiZGV0YWlsLXJvd1wiIFtuZ0NsYXNzXT1cInJvd05nQ2xhc3M/cm93TmdDbGFzcyhyb3csIGNvbnRleHQpOm51bGxcIj48L3RyPlxyXG5cdDwvbmctY29udGFpbmVyPlxyXG5cdDwhLS0gI2VuZHJlZ2lvbiAtLT5cclxuPC90YWJsZT5cclxuPCEtLSAjZW5kcmVnaW9uIC0tPlxyXG5cclxuPCEtLSAjcmVnaW9uIFJvdyBzaG93biB3aGVuIHRoZXJlIGlzIG5vIG1hdGNoaW5nIGRhdGEuLS0+XHJcbjxkaXYgY2xhc3M9XCJtYXQtY2VsbCBwYWQgdGFibGUtZW1wdHkgdHh0LWl0YWxpY1wiICpuZ0lmPVwiIWRhdGFTb3VyY2U/LmZpbHRlcmVkRGF0YT8ubGVuZ3RoICYmICFkYXRhU291cmNlPy50b3RhbFwiIGkxOG49XCJAQG5vUmVzdWx0c0ZvdW5kXCI+Tm8gcmVzdWx0cyB3ZXJlIGZvdW5kLjwvZGl2PlxyXG48IS0tICNlbmRyZWdpb24gLS0+XHJcblxyXG48IS0tICNyZWdpb24gRGVidWcgdmFsdWUgLS0+XHJcbjxjb2RlICpuZ0lmPVwiZGVidWdWYWx1ZVwiPlxyXG5cdDxwcmU+e3tmb3JtVmFsdWUgfCBqc29ufX08L3ByZT5cclxuPC9jb2RlPlxyXG48IS0tICNlbmRyZWdpb24gLS0+XHJcblxyXG48ZGl2IGNsYXNzPVwidGFibGUtZm9vdGVyXCIgbGF5b3V0PVwicm93XCI+XHJcblx0PG5nLWNvbnRlbnQgc2VsZWN0PVwiW3RhYmxlLWZvb3Rlcl1cIj48L25nLWNvbnRlbnQ+XHJcblx0PHNwYW4gZmxleD48L3NwYW4+XHJcblx0PG1hdC1wYWdpbmF0b3IgKm5nSWY9XCJwYWdpbmFibGVcIiBbcGFnZVNpemVdPVwicGFnZVNpemVcIiBbcGFnZVNpemVPcHRpb25zXT1cInBhZ2VTaXplT3B0aW9uc1wiIHNob3dGaXJzdExhc3RCdXR0b25zPVwidHJ1ZVwiPjwvbWF0LXBhZ2luYXRvcj5cclxuPC9kaXY+Il19
|
package/fesm2015/messaia-cdk.mjs
CHANGED
|
@@ -11098,9 +11098,16 @@ class VdDynamicTableComponent {
|
|
|
11098
11098
|
*/
|
|
11099
11099
|
get formArray() { return this._formArray; }
|
|
11100
11100
|
set formArray(formArray) {
|
|
11101
|
-
var _a;
|
|
11101
|
+
var _a, _b, _c;
|
|
11102
11102
|
this._formArray = formArray;
|
|
11103
11103
|
this.data = (_a = this._formArray) === null || _a === void 0 ? void 0 : _a.value;
|
|
11104
|
+
/* Update table data */
|
|
11105
|
+
(_c = (_b = this._formArray) === null || _b === void 0 ? void 0 : _b.valueChanges) === null || _c === void 0 ? void 0 : _c.subscribe(x => {
|
|
11106
|
+
var _a, _b, _c;
|
|
11107
|
+
if (x.length !== ((_b = (_a = this.dataSource) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.length)) {
|
|
11108
|
+
this.dataSource.data = (_c = this._formArray) === null || _c === void 0 ? void 0 : _c.value;
|
|
11109
|
+
}
|
|
11110
|
+
});
|
|
11104
11111
|
}
|
|
11105
11112
|
/**
|
|
11106
11113
|
* Form raw value
|