@decaf-ts/for-angular 0.0.19 → 0.0.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/components/crud-form/crud-form.component.d.ts +1 -1
- package/components/fieldset/fieldset.component.d.ts +1 -1
- package/components/filter/filter.component.d.ts +1 -1
- package/components/for-angular-components.module.d.ts +1 -2
- package/components/list/constants.d.ts +5 -9
- package/components/list-item/list-item.component.d.ts +1 -1
- package/engine/NgxBaseComponent.d.ts +1 -1
- package/esm2022/components/component-renderer/component-renderer.component.mjs +7 -7
- package/esm2022/components/crud-field/crud-field.component.mjs +13 -12
- package/esm2022/components/crud-form/crud-form.component.mjs +9 -9
- package/esm2022/components/empty-state/empty-state.component.mjs +8 -12
- package/esm2022/components/fieldset/fieldset.component.mjs +27 -19
- package/esm2022/components/filter/filter.component.mjs +14 -13
- package/esm2022/components/for-angular-components.module.mjs +17 -9
- package/esm2022/components/layout/layout.component.mjs +6 -7
- package/esm2022/components/list/constants.mjs +1 -1
- package/esm2022/components/list/list.component.mjs +8 -11
- package/esm2022/components/list-item/list-item.component.mjs +9 -12
- package/esm2022/components/model-renderer/model-renderer.component.mjs +5 -7
- package/esm2022/components/pagination/pagination.component.mjs +7 -9
- package/esm2022/components/searchbar/searchbar.component.mjs +5 -7
- package/esm2022/directives/collapsable.directive.mjs +3 -3
- package/esm2022/engine/NgxBaseComponent.mjs +11 -10
- package/esm2022/engine/NgxFormService.mjs +12 -3
- package/esm2022/engine/NgxRenderingEngine.mjs +3 -2
- package/esm2022/for-angular-common.module.mjs +82 -0
- package/esm2022/helpers/utils.mjs +2 -2
- package/esm2022/i18n/Loader.mjs +10 -6
- package/esm2022/i18n/data/en.json +80 -0
- package/esm2022/public-apis.mjs +3 -2
- package/fesm2022/decaf-ts-for-angular.mjs +255 -170
- package/fesm2022/decaf-ts-for-angular.mjs.map +1 -1
- package/for-angular-common.module.d.ts +44 -0
- package/package.json +6 -3
- package/public-apis.d.ts +2 -1
- package/esm2022/for-angular.module.mjs +0 -118
- package/for-angular.module.d.ts +0 -45
|
@@ -2,12 +2,10 @@ import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
|
2
2
|
import { IonIcon } from '@ionic/angular/standalone';
|
|
3
3
|
import { addIcons } from 'ionicons';
|
|
4
4
|
import { chevronBackOutline, chevronForwardOutline } from 'ionicons/icons';
|
|
5
|
-
import { ForAngularModule } from '../../for-angular.module';
|
|
6
5
|
import { NgxBaseComponent } from '../../engine/NgxBaseComponent';
|
|
7
6
|
import { EventConstants } from '../../engine';
|
|
7
|
+
import { TranslatePipe } from '@ngx-translate/core';
|
|
8
8
|
import * as i0 from "@angular/core";
|
|
9
|
-
import * as i1 from "@angular/common";
|
|
10
|
-
import * as i2 from "@ngx-translate/core";
|
|
11
9
|
/**
|
|
12
10
|
* @description A pagination component for navigating through multiple pages of content.
|
|
13
11
|
* @summary This component provides a user interface for paginated content navigation,
|
|
@@ -303,15 +301,15 @@ export class PaginationComponent extends NgxBaseComponent {
|
|
|
303
301
|
if (page !== null && this.current !== page)
|
|
304
302
|
this.handleClick(page > this.current ? 'next' : 'previous', page);
|
|
305
303
|
}
|
|
306
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
307
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.
|
|
304
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PaginationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
305
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: PaginationComponent, isStandalone: true, selector: "ngx-decaf-pagination", inputs: { totalPages: "totalPages", current: "current" }, outputs: { clickEvent: "clickEvent" }, usesInheritance: true, ngImport: i0, template: " <div [id]=\"uid\" class=\"dcf-paginator-container dcf-flex dcf-flex-center\">\n <div class=\"dcf-width-1-1\">\n <div class=\"dcf-pagination-resume\" [innerHTML]=\"locale + '.resume' | translate: {value0: current, value1: last}\"></div>\n <div #paginationComponent class=\"dcf-pagination dcf-flex-center\">\n <div\n aria-label=\"previous\"\n tabindex=\"0\"\n (click)=\"previous()\"\n (keydown.enter)=\"previous()\" [class.dcf-disabled]=\"current === 1\">\n <ion-icon name=\"chevron-back-outline\" aria-hidden=\"true\"></ion-icon>\n </div>\n @for(page of pages; track page) {\n <div tabindex=\"0\" [class]=\"page['class']\" (click)=\"navigate(page['index'])\"\n (keydown.enter)=\"navigate(page['index'])\"\n [class.dcf-active]=\"current === page['index']\">\n <span class=\"page-item\">{{ page['text'] }}</span>\n </div>\n }\n <div\n tabindex=\"0\" (click)=\"next()\"\n (keydown.enter)=\"next()\"\n [class.dcf-disabled]=\"current === last\">\n <ion-icon name=\"chevron-forward-outline\" aria-hidden=\"true\"></ion-icon>\n </div>\n </div>\n </div>\n</div>\n", styles: [".dcf-paginator-container{margin-bottom:1rem}.dcf-pagination{display:flex;flex-wrap:wrap;align-items:center;margin-left:0;padding:0;list-style:none}.dcf-pagination .page-item{display:flex;justify-content:center;align-items:center;text-align:center;font-weight:600;width:34px;line-height:34px;padding:0!important;border-radius:50%;box-sizing:border-box}@media (prefers-color-scheme: dark){.dcf-pagination .page-item{color:var(--dcf-color-gray-3)!important}}@media (prefers-color-scheme: light){.dcf-pagination .page-item{color:var(--dcf-color-gray-7)!important}}.dcf-pagination>*{flex:none;padding-left:0;position:relative;margin:0px .15rem;cursor:pointer}.dcf-pagination>*.dcf-disabled{pointer-events:none;touch-action:none;cursor:text}.dcf-pagination>*.dcf-active{pointer-events:none;touch-action:none}@media (prefers-color-scheme: light){.dcf-pagination>*.dcf-active .page-item{background:rgba(var(--dcf-color-primary-rgb),.15)}.dcf-pagination>*:hover:not(.dcf-active) *{color:var(--dcf-color-primary)!important}}@media (prefers-color-scheme: dark){.dcf-pagination>*.dcf-active .page-item{background:var(--dcf-color-gray-7)}.dcf-pagination>*:hover:not(.dcf-active) *{color:var(--dcf-color-primary)!important}}.dcf-pagination-resume{margin:1rem 0px;text-align:center}@media (prefers-color-scheme: light){.dcf-pagination-resume{color:var(--dcf-color-gray-8)}}\n"], dependencies: [{ kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }] }); }
|
|
308
306
|
}
|
|
309
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
307
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PaginationComponent, decorators: [{
|
|
310
308
|
type: Component,
|
|
311
309
|
args: [{ selector: 'ngx-decaf-pagination', imports: [
|
|
312
|
-
|
|
310
|
+
TranslatePipe,
|
|
313
311
|
IonIcon
|
|
314
|
-
], standalone: true, template: " <div [id]=\"uid\" class=\"dcf-paginator-container dcf-flex dcf-flex-center\">\n <div class=\"dcf-width-1-1\">\n <div class=\"dcf-pagination-resume\" [innerHTML]=\"locale + '.resume' | translate: {value0: current, value1: last}\"></div>\n <div #paginationComponent class=\"dcf-pagination dcf-flex-center\">\n <div\n aria-label=\"previous\"\n tabindex=\"0\"\n (click)=\"previous()\"\n (keydown.enter)=\"previous()\" [
|
|
312
|
+
], standalone: true, template: " <div [id]=\"uid\" class=\"dcf-paginator-container dcf-flex dcf-flex-center\">\n <div class=\"dcf-width-1-1\">\n <div class=\"dcf-pagination-resume\" [innerHTML]=\"locale + '.resume' | translate: {value0: current, value1: last}\"></div>\n <div #paginationComponent class=\"dcf-pagination dcf-flex-center\">\n <div\n aria-label=\"previous\"\n tabindex=\"0\"\n (click)=\"previous()\"\n (keydown.enter)=\"previous()\" [class.dcf-disabled]=\"current === 1\">\n <ion-icon name=\"chevron-back-outline\" aria-hidden=\"true\"></ion-icon>\n </div>\n @for(page of pages; track page) {\n <div tabindex=\"0\" [class]=\"page['class']\" (click)=\"navigate(page['index'])\"\n (keydown.enter)=\"navigate(page['index'])\"\n [class.dcf-active]=\"current === page['index']\">\n <span class=\"page-item\">{{ page['text'] }}</span>\n </div>\n }\n <div\n tabindex=\"0\" (click)=\"next()\"\n (keydown.enter)=\"next()\"\n [class.dcf-disabled]=\"current === last\">\n <ion-icon name=\"chevron-forward-outline\" aria-hidden=\"true\"></ion-icon>\n </div>\n </div>\n </div>\n</div>\n", styles: [".dcf-paginator-container{margin-bottom:1rem}.dcf-pagination{display:flex;flex-wrap:wrap;align-items:center;margin-left:0;padding:0;list-style:none}.dcf-pagination .page-item{display:flex;justify-content:center;align-items:center;text-align:center;font-weight:600;width:34px;line-height:34px;padding:0!important;border-radius:50%;box-sizing:border-box}@media (prefers-color-scheme: dark){.dcf-pagination .page-item{color:var(--dcf-color-gray-3)!important}}@media (prefers-color-scheme: light){.dcf-pagination .page-item{color:var(--dcf-color-gray-7)!important}}.dcf-pagination>*{flex:none;padding-left:0;position:relative;margin:0px .15rem;cursor:pointer}.dcf-pagination>*.dcf-disabled{pointer-events:none;touch-action:none;cursor:text}.dcf-pagination>*.dcf-active{pointer-events:none;touch-action:none}@media (prefers-color-scheme: light){.dcf-pagination>*.dcf-active .page-item{background:rgba(var(--dcf-color-primary-rgb),.15)}.dcf-pagination>*:hover:not(.dcf-active) *{color:var(--dcf-color-primary)!important}}@media (prefers-color-scheme: dark){.dcf-pagination>*.dcf-active .page-item{background:var(--dcf-color-gray-7)}.dcf-pagination>*:hover:not(.dcf-active) *{color:var(--dcf-color-primary)!important}}.dcf-pagination-resume{margin:1rem 0px;text-align:center}@media (prefers-color-scheme: light){.dcf-pagination-resume{color:var(--dcf-color-gray-8)}}\n"] }]
|
|
315
313
|
}], ctorParameters: () => [], propDecorators: { totalPages: [{
|
|
316
314
|
type: Input,
|
|
317
315
|
args: [{ required: true }]
|
|
@@ -320,4 +318,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
320
318
|
}], clickEvent: [{
|
|
321
319
|
type: Output
|
|
322
320
|
}] } });
|
|
323
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvcGFnaW5hdGlvbi9wYWdpbmF0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9wYWdpbmF0aW9uL3BhZ2luYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDcEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNwQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNqRSxPQUFPLEVBQUUsY0FBYyxFQUE2QixNQUFNLGNBQWMsQ0FBQzs7OztBQUd6RTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXdDRztBQVlILE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxnQkFBZ0I7SUFvRXZEOzs7O09BSUc7SUFDSDtRQUNFLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBeEUvQjs7Ozs7Ozs7V0FRRztRQUNNLGlCQUFZLEdBQW9CLElBQUksQ0FBQztRQWM5Qzs7Ozs7Ozs7V0FRRztRQUVILFlBQU8sR0FBRyxDQUFDLENBQUM7UUFxQlo7Ozs7Ozs7O1dBUUc7UUFFSCxlQUFVLEdBQXdDLElBQUksWUFBWSxFQUF5QixDQUFDO1FBU3pGLFFBQVEsQ0FBQyxFQUFDLGtCQUFrQixFQUFF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Qjt3QkFDaEIsT0FBTztxQkFDUixjQUNXLElBQUk7d0RBMEJoQixVQUFVO3NCQURULEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQWF6QixPQUFPO3NCQUROLEtBQUs7Z0JBZ0NOLFVBQVU7c0JBRFQsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElvbkljb24gfSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcbmltcG9ydCB7IGFkZEljb25zIH0gZnJvbSAnaW9uaWNvbnMnO1xuaW1wb3J0IHsgY2hldnJvbkJhY2tPdXRsaW5lLCBjaGV2cm9uRm9yd2FyZE91dGxpbmUgfSBmcm9tICdpb25pY29ucy9pY29ucyc7XG5pbXBvcnQgeyBGb3JBbmd1bGFyTW9kdWxlIH0gZnJvbSAnLi4vLi4vZm9yLWFuZ3VsYXIubW9kdWxlJztcbmltcG9ydCB7IE5neEJhc2VDb21wb25lbnQgfSBmcm9tICcuLi8uLi9lbmdpbmUvTmd4QmFzZUNvbXBvbmVudCc7XG5pbXBvcnQgeyBFdmVudENvbnN0YW50cywgS2V5VmFsdWUsIFN0cmluZ09yQm9vbGVhbiB9IGZyb20gJy4uLy4uL2VuZ2luZSc7XG5pbXBvcnQgeyBQYWdpbmF0aW9uQ3VzdG9tRXZlbnQgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIEEgcGFnaW5hdGlvbiBjb21wb25lbnQgZm9yIG5hdmlnYXRpbmcgdGhyb3VnaCBtdWx0aXBsZSBwYWdlcyBvZiBjb250ZW50LlxuICogQHN1bW1hcnkgVGhpcyBjb21wb25lbnQgcHJvdmlkZXMgYSB1c2VyIGludGVyZmFjZSBmb3IgcGFnaW5hdGVkIGNvbnRlbnQgbmF2aWdhdGlvbixcbiAqIGRpc3BsYXlpbmcgcGFnZSBudW1iZXJzIGFuZCBuYXZpZ2F0aW9uIGNvbnRyb2xzLiBJdCBzdXBwb3J0cyBjdXN0b21pemFibGUgcGFnZSBjb3VudHMsXG4gKiBjdXJyZW50IHBhZ2UgdHJhY2tpbmcsIGFuZCBlbWl0cyBldmVudHMgd2hlbiB1c2VycyBuYXZpZ2F0ZSBiZXR3ZWVuIHBhZ2VzLlxuICpcbiAqIFRoZSBjb21wb25lbnQgaW50ZWxsaWdlbnRseSBoYW5kbGVzIGxhcmdlIG51bWJlcnMgb2YgcGFnZXMgYnkgc2hvd2luZyBhIHN1YnNldCBvZiBwYWdlXG4gKiBudW1iZXJzIHdpdGggZWxsaXBzZXMgdG8gaW5kaWNhdGUgc2tpcHBlZCBwYWdlcywgZW5zdXJpbmcgdGhlIFVJIHJlbWFpbnMgY2xlYW4gYW5kIHVzYWJsZVxuICogZXZlbiB3aXRoIG1hbnkgcGFnZXMuXG4gKlxuICogQG1lcm1haWRcbiAqIHNlcXVlbmNlRGlhZ3JhbVxuICogICBwYXJ0aWNpcGFudCBVIGFzIFVzZXJcbiAqICAgcGFydGljaXBhbnQgUCBhcyBQYWdpbmF0aW9uQ29tcG9uZW50XG4gKiAgIHBhcnRpY2lwYW50IEUgYXMgRXh0ZXJuYWwgQ29tcG9uZW50XG4gKlxuICogICBVLT4+UDogQ2xpY2sgcGFnZSBudW1iZXJcbiAqICAgUC0+PlA6IG5hdmlnYXRlKHBhZ2UpXG4gKiAgIFAtPj5QOiBoYW5kbGVDbGljayhkaXJlY3Rpb24sIHBhZ2UpXG4gKiAgIFAtPj5FOiBFbWl0IGNsaWNrRXZlbnQgd2l0aCBQYWdpbmF0aW9uQ3VzdG9tRXZlbnRcbiAqXG4gKiAgIFUtPj5QOiBDbGljayBuZXh0IGJ1dHRvblxuICogICBQLT4+UDogbmV4dCgpXG4gKiAgIFAtPj5QOiBoYW5kbGVDbGljaygnbmV4dCcpXG4gKiAgIFAtPj5FOiBFbWl0IGNsaWNrRXZlbnQgd2l0aCBQYWdpbmF0aW9uQ3VzdG9tRXZlbnRcbiAqXG4gKiAgIFUtPj5QOiBDbGljayBwcmV2aW91cyBidXR0b25cbiAqICAgUC0+PlA6IHByZXZpb3VzKClcbiAqICAgUC0+PlA6IGhhbmRsZUNsaWNrKCdwcmV2aW91cycpXG4gKiAgIFAtPj5FOiBFbWl0IGNsaWNrRXZlbnQgd2l0aCBQYWdpbmF0aW9uQ3VzdG9tRXZlbnRcbiAqXG4gKiBAZXhhbXBsZVxuICogPG5neC1kZWNhZi1wYWdpbmF0aW9uXG4gKiAgIFtwYWdlc109XCIxMFwiXG4gKiAgIFtjdXJyZW50XT1cIjNcIlxuICogICAoY2xpY2tFdmVudCk9XCJoYW5kbGVQYWdlQ2hhbmdlKCRldmVudClcIj5cbiAqIDwvbmd4LWRlY2FmLXBhZ2luYXRpb24+XG4gKlxuICogQGV4dGVuZHMge05neEJhc2VDb21wb25lbnR9XG4gKiBAaW1wbGVtZW50cyB7T25Jbml0fVxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICduZ3gtZGVjYWYtcGFnaW5hdGlvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9wYWdpbmF0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcGFnaW5hdGlvbi5jb21wb25lbnQuc2NzcyddLFxuICBpbXBvcnRzOiBbXG4gICAgRm9yQW5ndWxhck1vZHVsZSxcbiAgICBJb25JY29uXG4gIF0sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG5cbn0pXG5leHBvcnQgY2xhc3MgUGFnaW5hdGlvbkNvbXBvbmVudCBleHRlbmRzIE5neEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQ29udHJvbHMgd2hldGhlciB0aGUgY29tcG9uZW50IHVzZXMgdHJhbnNsYXRpb24gc2VydmljZXMuXG4gICAqIEBzdW1tYXJ5IFdoZW4gc2V0IHRvIHRydWUsIHRoZSBjb21wb25lbnQgd2lsbCBhdHRlbXB0IHRvIHVzZSB0cmFuc2xhdGlvbiBzZXJ2aWNlc1xuICAgKiBmb3IgYW55IHRleHQgY29udGVudC4gVGhpcyBhbGxvd3MgZm9yIGludGVybmF0aW9uYWxpemF0aW9uIG9mIHRoZSBwYWdpbmF0aW9uIGNvbXBvbmVudC5cbiAgICpcbiAgICogQHR5cGUge1N0cmluZ09yQm9vbGVhbn1cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKiBAbWVtYmVyT2YgUGFnaW5hdGlvbkNvbXBvbmVudFxuICAgKi9cbiAgb3ZlcnJpZGUgdHJhbnNsYXRhYmxlOiBTdHJpbmdPckJvb2xlYW4gPSB0cnVlO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gVGhlIHRvdGFsIG51bWJlciBvZiBwYWdlcyB0byBkaXNwbGF5IGluIHRoZSBwYWdpbmF0aW9uIGNvbXBvbmVudC5cbiAgICogQHN1bW1hcnkgU3BlY2lmaWVzIHRoZSB0b3RhbCBudW1iZXIgb2YgcGFnZXMgYXZhaWxhYmxlIGZvciBuYXZpZ2F0aW9uLiBUaGlzIGlzIGEgcmVxdWlyZWRcbiAgICogaW5wdXQgdGhhdCBkZXRlcm1pbmVzIGhvdyBtYW55IHBhZ2UgbnVtYmVycyB3aWxsIGJlIGdlbmVyYXRlZCBhbmQgZGlzcGxheWVkLlxuICAgKlxuICAgKiBAdHlwZSB7bnVtYmVyfVxuICAgKiBAcmVxdWlyZWRcbiAgICogQG1lbWJlck9mIFBhZ2luYXRpb25Db21wb25lbnRcbiAgICovXG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pXG4gIHRvdGFsUGFnZXMhOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBUaGUgY3VycmVudGx5IGFjdGl2ZSBwYWdlIG51bWJlci5cbiAgICogQHN1bW1hcnkgU3BlY2lmaWVzIHdoaWNoIHBhZ2UgaXMgY3VycmVudGx5IGFjdGl2ZSBvciBzZWxlY3RlZC4gVGhpcyB2YWx1ZSBpcyB1c2VkXG4gICAqIHRvIGhpZ2hsaWdodCB0aGUgY3VycmVudCBwYWdlIGluIHRoZSBVSSBhbmQgYXMgYSByZWZlcmVuY2UgcG9pbnQgZm9yIG5hdmlnYXRpb24uXG4gICAqXG4gICAqIEB0eXBlIHtudW1iZXJ9XG4gICAqIEBkZWZhdWx0IDFcbiAgICogQG1lbWJlck9mIFBhZ2luYXRpb25Db21wb25lbnRcbiAgICovXG4gIEBJbnB1dCgpXG4gIGN1cnJlbnQgPSAxO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQXJyYXkgb2YgcGFnZSBvYmplY3RzIGZvciByZW5kZXJpbmcgaW4gdGhlIHRlbXBsYXRlLlxuICAgKiBAc3VtbWFyeSBDb250YWlucyB0aGUgcHJvY2Vzc2VkIHBhZ2UgZGF0YSB1c2VkIGZvciByZW5kZXJpbmcgdGhlIHBhZ2luYXRpb24gVUkuXG4gICAqIEVhY2ggb2JqZWN0IGluY2x1ZGVzIGFuIGluZGV4IChwYWdlIG51bWJlcikgYW5kIHRleHQgcmVwcmVzZW50YXRpb24uXG4gICAqXG4gICAqIEB0eXBlIHtLZXlWYWx1ZVtdfVxuICAgKiBAbWVtYmVyT2YgUGFnaW5hdGlvbkNvbXBvbmVudFxuICAgKi9cbiAgcGFnZXMhOiBLZXlWYWx1ZVtdO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gVGhlIGxhc3QgcGFnZSBudW1iZXIgaW4gdGhlIHBhZ2luYXRpb24uXG4gICAqIEBzdW1tYXJ5IFN0b3JlcyB0aGUgbnVtYmVyIG9mIHRoZSBsYXN0IHBhZ2UgZm9yIGJvdW5kYXJ5IGNoZWNraW5nIGR1cmluZyBuYXZpZ2F0aW9uLlxuICAgKlxuICAgKiBAdHlwZSB7bnVtYmVyfVxuICAgKiBAbWVtYmVyT2YgUGFnaW5hdGlvbkNvbXBvbmVudFxuICAgKi9cbiAgbGFzdCE6IG51bWJlcjtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEV2ZW50IGVtaXR0ZXIgZm9yIHBhZ2luYXRpb24gbmF2aWdhdGlvbiBldmVudHMuXG4gICAqIEBzdW1tYXJ5IEVtaXRzIGEgY3VzdG9tIGV2ZW50IHdoZW4gdXNlcnMgbmF2aWdhdGUgYmV0d2VlbiBwYWdlcywgZWl0aGVyIGJ5IGNsaWNraW5nXG4gICAqIG9uIHBhZ2UgbnVtYmVycyBvciB1c2luZyB0aGUgbmV4dC9wcmV2aW91cyBidXR0b25zLiBUaGUgZXZlbnQgY29udGFpbnMgaW5mb3JtYXRpb25cbiAgICogYWJvdXQgdGhlIG5hdmlnYXRpb24gZGlyZWN0aW9uIGFuZCB0aGUgdGFyZ2V0IHBhZ2UgbnVtYmVyLlxuICAgKlxuICAgKiBAdHlwZSB7RXZlbnRFbWl0dGVyPFBhZ2luYXRpb25DdXN0b21FdmVudD59XG4gICAqIEBtZW1iZXJPZiBQYWdpbmF0aW9uQ29tcG9uZW50XG4gICAqL1xuICBAT3V0cHV0KClcbiAgY2xpY2tFdmVudDogRXZlbnRFbWl0dGVyPFBhZ2luYXRpb25DdXN0b21FdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPFBhZ2luYXRpb25DdXN0b21FdmVudD4oKTtcblxuICAvKipcbiAgICogQGNvbnN0cnVjdG9yXG4gICAqIEBkZXNjcmlwdGlvbiBJbml0aWFsaXplcyBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgUGFnaW5hdGlvbkNvbXBvbmVudC5cbiAgICogQ2FsbHMgdGhlIHBhcmVudCBjb25zdHJ1Y3RvciB3aXRoIHRoZSBjb21wb25lbnQgbmFtZSBmb3IgZ2VuZXJhdGUgYmFzZSBsb2NhbGUgc3RyaW5nLlxuICAgKi9cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoXCJQYWdpbmF0aW9uQ29tcG9uZW50XCIpO1xuICAgICBhZGRJY29ucyh7Y2hldnJvbkJhY2tPdXRsaW5lLCBjaGV2cm9uRm9yd2FyZE91dGxpbmV9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gSW5pdGlhbGl6ZXMgdGhlIGNvbXBvbmVudCBhZnRlciBBbmd1bGFyIHNldHMgdGhlIGlucHV0IHByb3BlcnRpZXMuXG4gICAqIEBzdW1tYXJ5IFNldHMgdXAgdGhlIGNvbXBvbmVudCBieSBpbml0aWFsaXppbmcgdGhlIGxvY2FsZSBzZXR0aW5ncyBiYXNlZCBvbiB0aGVcbiAgICogdHJhbnNsYXRhYmxlIHByb3BlcnR5LCBnZW5lcmF0aW5nIHRoZSBwYWdlIG51bWJlcnMgYmFzZWQgb24gdGhlIHRvdGFsIHBhZ2VzIGFuZFxuICAgKiBjdXJyZW50IHBhZ2UsIGFuZCBzdG9yaW5nIHRoZSBsYXN0IHBhZ2UgbnVtYmVyIGZvciBib3VuZGFyeSBjaGVja2luZy5cbiAgICpcbiAgICogQG1lcm1haWRcbiAgICogc2VxdWVuY2VEaWFncmFtXG4gICAqICAgcGFydGljaXBhbnQgQSBhcyBBbmd1bGFyIExpZmVjeWNsZVxuICAgKiAgIHBhcnRpY2lwYW50IFAgYXMgUGFnaW5hdGlvbkNvbXBvbmVudFxuICAgKlxuICAgKiAgIEEtPj5QOiBuZ09uSW5pdCgpXG4gICAqICAgUC0+PlA6IGdldExvY2FsZSh0cmFuc2xhdGFibGUpXG4gICAqICAgUC0+PlA6IFNldCBsb2NhbGVcbiAgICogICBQLT4+UDogZ2V0UGFnZXMoZGF0YSwgY3VycmVudClcbiAgICogICBQLT4+UDogU2V0IHBhZ2VzIGFycmF5XG4gICAqICAgUC0+PlA6IFNldCBsYXN0IHBhZ2UgbnVtYmVyXG4gICAqXG4gICAqIEByZXR1cm5zIHt2b2lkfVxuICAgKiBAbWVtYmVyT2YgUGFnaW5hdGlvbkNvbXBvbmVudFxuICAgKi9cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5sb2NhbGUgPSB0aGlzLmdldExvY2FsZSh0aGlzLnRyYW5zbGF0YWJsZSk7XG4gICAgdGhpcy5wYWdlcyA9IHRoaXMuZ2V0UGFnZXModGhpcy50b3RhbFBhZ2VzLCB0aGlzLmN1cnJlbnQpIGFzIEtleVZhbHVlW107XG4gICAgdGhpcy5sYXN0ID0gdGhpcy50b3RhbFBhZ2VzO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBIYW5kbGVzIGNsaWNrIGV2ZW50cyBvbiBwYWdpbmF0aW9uIGNvbnRyb2xzLlxuICAgKiBAc3VtbWFyeSBQcm9jZXNzZXMgdXNlciBpbnRlcmFjdGlvbnMgd2l0aCB0aGUgcGFnaW5hdGlvbiBjb21wb25lbnQsIHVwZGF0aW5nIHRoZVxuICAgKiBjdXJyZW50IHBhZ2UgaWYgc3BlY2lmaWVkIGFuZCBlbWl0dGluZyBhbiBldmVudCB3aXRoIG5hdmlnYXRpb24gZGV0YWlscy4gVGhpcyBtZXRob2RcbiAgICogaXMgY2FsbGVkIHdoZW4gdXNlcnMgY2xpY2sgb24gcGFnZSBudW1iZXJzIG9yIG5hdmlnYXRpb24gYnV0dG9ucy5cbiAgICpcbiAgICogQHBhcmFtIHsoJ25leHQnIHwgJ3ByZXZpb3VzJyl9IGRpcmVjdGlvbiAtIFRoZSBkaXJlY3Rpb24gb2YgbmF2aWdhdGlvblxuICAgKiBAcGFyYW0ge251bWJlcn0gW3BhZ2VdIC0gT3B0aW9uYWwgcGFnZSBudW1iZXIgdG8gbmF2aWdhdGUgdG8gZGlyZWN0bHlcbiAgICogQHJldHVybnMge3ZvaWR9XG4gICAqXG4gICAqIEBtZXJtYWlkXG4gICAqIHNlcXVlbmNlRGlhZ3JhbVxuICAgKiAgIHBhcnRpY2lwYW50IFUgYXMgVXNlclxuICAgKiAgIHBhcnRpY2lwYW50IFAgYXMgUGFnaW5hdGlvbkNvbXBvbmVudFxuICAgKiAgIHBhcnRpY2lwYW50IEUgYXMgRXh0ZXJuYWwgQ29tcG9uZW50XG4gICAqXG4gICAqICAgVS0+PlA6IENsaWNrIHBhZ2luYXRpb24gY29udHJvbFxuICAgKiAgIFAtPj5QOiBoYW5kbGVDbGljayhkaXJlY3Rpb24sIHBhZ2U/KVxuICAgKiAgIGFsdCBwYWdlIGlzIHByb3ZpZGVkXG4gICAqICAgICBQLT4+UDogVXBkYXRlIGN1cnJlbnQgcGFnZVxuICAgKiAgIGVuZFxuICAgKiAgIFAtPj5FOiBFbWl0IGNsaWNrRXZlbnQgd2l0aCBkaXJlY3Rpb24gYW5kIHBhZ2VcbiAgICpcbiAgICogQG1lbWJlck9mIFBhZ2luYXRpb25Db21wb25lbnRcbiAgICovXG4gIGhhbmRsZUNsaWNrKGRpcmVjdGlvbjogJ25leHQnIHwgJ3ByZXZpb3VzJywgcGFnZT86IG51bWJlcik6IHZvaWQge1xuICAgIGlmKHBhZ2UpXG4gICAgICB0aGlzLmN1cnJlbnQgPSBwYWdlO1xuICAgIHRoaXMuY2xpY2tFdmVudC5lbWl0KHtcbiAgICAgIG5hbWU6IEV2ZW50Q29uc3RhbnRzLkNMSUNLLFxuICAgICAgZGF0YToge1xuICAgICAgICBkaXJlY3Rpb24sXG4gICAgICAgIHBhZ2U6IHRoaXMuY3VycmVudFxuICAgICAgfSxcbiAgICAgIGNvbXBvbmVudDogdGhpcy5jb21wb25lbnROYW1lXG4gICAgfSBhcyBQYWdpbmF0aW9uQ3VzdG9tRXZlbnQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBHZW5lcmF0ZXMgdGhlIGFycmF5IG9mIHBhZ2Ugb2JqZWN0cyBmb3IgZGlzcGxheS5cbiAgICogQHN1bW1hcnkgQ3JlYXRlcyBhbiBhcnJheSBvZiBwYWdlIG9iamVjdHMgYmFzZWQgb24gdGhlIHRvdGFsIG51bWJlciBvZiBwYWdlcyBhbmRcbiAgICogdGhlIGN1cnJlbnQgcGFnZS4gRm9yIHNtYWxsIHBhZ2UgY291bnRzICjiiaQ1KSwgYWxsIHBhZ2VzIGFyZSBzaG93bi4gRm9yIGxhcmdlciBwYWdlXG4gICAqIGNvdW50cywgYSBzdWJzZXQgaXMgc2hvd24gd2l0aCBlbGxpcHNlcyB0byBpbmRpY2F0ZSBza2lwcGVkIHBhZ2VzLiBUaGlzIGVuc3VyZXNcbiAgICogdGhlIHBhZ2luYXRpb24gVUkgcmVtYWlucyBjbGVhbiBhbmQgdXNhYmxlIGV2ZW4gd2l0aCBtYW55IHBhZ2VzLlxuICAgKlxuICAgKiBAcGFyYW0ge251bWJlcn0gdG90YWwgLSBUaGUgdG90YWwgbnVtYmVyIG9mIHBhZ2VzXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBbY3VycmVudF0gLSBUaGUgY3VycmVudCBhY3RpdmUgcGFnZSAoZGVmYXVsdHMgdG8gdGhpcy5jdXJyZW50KVxuICAgKiBAcmV0dXJucyB7S2V5VmFsdWVbXX0gQXJyYXkgb2YgcGFnZSBvYmplY3RzIHdpdGggaW5kZXggYW5kIHRleHQgcHJvcGVydGllc1xuICAgKlxuICAgKiBAbWVybWFpZFxuICAgKiBmbG93Y2hhcnQgVERcbiAgICogICBBW1N0YXJ0XSAtLT4gQnt0b3RhbCA8PSA1P31cbiAgICogICBCIC0tPnxZZXN8IENbU2hvdyBhbGwgcGFnZXNdXG4gICAqICAgQiAtLT58Tm98IERbU2hvdyBmaXJzdCBwYWdlXVxuICAgKiAgIEQgLS0+IEVbU2hvdyBsYXN0IHBhZ2VzXVxuICAgKiAgIEUgLS0+IEZbQWRkIGVsbGlwc2VzIGZvciBza2lwcGVkIHBhZ2VzXVxuICAgKiAgIEMgLS0+IEdbUmV0dXJuIHBhZ2VzIGFycmF5XVxuICAgKiAgIEYgLS0+IEdcbiAgICpcbiAgICogQG1lbWJlck9mIFBhZ2luYXRpb25Db21wb25lbnRcbiAgICovXG4gIGdldFBhZ2VzKHRvdGFsOiBudW1iZXIsIGN1cnJlbnQ/OiBudW1iZXIpOiBLZXlWYWx1ZVtdIHtcbiAgICBpZiAoIWN1cnJlbnQpIGN1cnJlbnQgPSB0aGlzLmN1cnJlbnQ7XG5cbiAgICBjb25zdCBwYWdlczogS2V5VmFsdWVbXSA9IFtdO1xuXG4gICAgZnVuY3Rpb24gZ2V0UGFnZShpbmRleDogbnVtYmVyIHwgbnVsbCwgdGV4dCA9ICcnLCBjbGF6eiA9ICdidXR0b24nKTogdm9pZCB7XG4gICAgICAgIGlmIChwYWdlcy5zb21lKGl0ZW0gPT4gaXRlbVsnaW5kZXgnXSA9PT0gaW5kZXgpKSByZXR1cm47XG4gICAgICAgIHBhZ2VzLnB1c2goeyBpbmRleCwgdGV4dDogaW5kZXggIT0gbnVsbCA/IGluZGV4LnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgJzAnKSA6IHRleHQsIGNsYXNzOiBjbGF6eiB9KTtcbiAgICB9XG5cbiAgICBpZiAodG90YWwgPD0gNSkge1xuICAgICAgICBmb3IgKGxldCBpID0gMTsgaSA8PSB0b3RhbDsgaSsrKSBnZXRQYWdlKGkpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBBZGljaW9uYSBvcyBkb2lzIHByaW1laXJvc1xuICAgICAgZ2V0UGFnZSgxKTtcbiAgICAgIGdldFBhZ2UoMik7XG5cbiAgICAgIC8vIEFkaWNpb25hIFwiLi4uXCIgZW50cmUgb3MgYmxvY29zXG4gICAgICBpZiAoY3VycmVudCAmJiBjdXJyZW50ID4gMykgZ2V0UGFnZShudWxsLCAnLi4uJyk7XG5cbiAgICAgIC8vIEFkaWNpb25hIGEgcMOhZ2luYSBhdHVhbCAoc2UgZXN0aXZlciBubyBtZWlvKVxuICAgICAgaWYgKGN1cnJlbnQgJiYgY3VycmVudCA+IDIgJiYgY3VycmVudCA8IHRvdGFsIC0gMSkgZ2V0UGFnZShjdXJyZW50KTtcblxuICAgICAgLy8gQWRpY2lvbmEgXCIuLi5cIiBlbnRyZSBvcyBibG9jb3NcbiAgICAgIGlmIChjdXJyZW50ICYmIGN1cnJlbnQgPCB0b3RhbCAtIDIpIGdldFBhZ2UobnVsbCwgJy4uLicgLCAnc2VwYXJhdG9yJyk7XG5cbiAgICAgIC8vIEFkaWNpb25hIG9zIGRvaXMgw7psdGltb3NcbiAgICAgIGdldFBhZ2UodG90YWwgLSAxKTtcbiAgICAgIGdldFBhZ2UodG90YWwpO1xuICAgIH1cblxuICAgIHJldHVybiBwYWdlcztcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gR2V0cyB0aGUgY3VycmVudCBhY3RpdmUgcGFnZSBudW1iZXIuXG4gICAqIEBzdW1tYXJ5IFJldHVybnMgdGhlIGN1cnJlbnQgcGFnZSBudW1iZXIgdGhhdCBpcyBhY3RpdmUgaW4gdGhlIHBhZ2luYXRpb24gY29tcG9uZW50LlxuICAgKiBUaGlzIG1ldGhvZCBwcm92aWRlcyBhIHdheSB0byBhY2Nlc3MgdGhlIGN1cnJlbnQgcGFnZSBzdGF0ZSBmcm9tIG91dHNpZGUgdGhlIGNvbXBvbmVudC5cbiAgICpcbiAgICogQHJldHVybnMge251bWJlcn0gVGhlIGN1cnJlbnQgcGFnZSBudW1iZXJcbiAgICogQG1lbWJlck9mIFBhZ2luYXRpb25Db21wb25lbnRcbiAgICovXG4gIGdldEN1cnJlbnQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5jdXJyZW50O1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBOYXZpZ2F0ZXMgdG8gdGhlIG5leHQgcGFnZS5cbiAgICogQHN1bW1hcnkgSW5jcmVtZW50cyB0aGUgY3VycmVudCBwYWdlIG51bWJlciBpZiBub3QgYXQgdGhlIGxhc3QgcGFnZSBhbmQgdHJpZ2dlcnNcbiAgICogdGhlIGNsaWNrIGV2ZW50IGhhbmRsZXIgd2l0aCAnbmV4dCcgZGlyZWN0aW9uLiBUaGlzIG1ldGhvZCBpcyB0eXBpY2FsbHkgY2FsbGVkXG4gICAqIHdoZW4gdGhlIHVzZXIgY2xpY2tzIG9uIHRoZSBcIm5leHRcIiBidXR0b24gaW4gdGhlIHBhZ2luYXRpb24gVUkuXG4gICAqXG4gICAqIEByZXR1cm5zIHt2b2lkfVxuICAgKlxuICAgKiBAbWVybWFpZFxuICAgKiBzZXF1ZW5jZURpYWdyYW1cbiAgICogICBwYXJ0aWNpcGFudCBVIGFzIFVzZXJcbiAgICogICBwYXJ0aWNpcGFudCBQIGFzIFBhZ2luYXRpb25Db21wb25lbnRcbiAgICpcbiAgICogICBVLT4+UDogQ2xpY2sgbmV4dCBidXR0b25cbiAgICogICBQLT4+UDogbmV4dCgpXG4gICAqICAgYWx0IHBhZ2UgPD0gbWF4IHBhZ2VzXG4gICAqICAgICBQLT4+UDogSW5jcmVtZW50IGN1cnJlbnQgcGFnZVxuICAgKiAgICAgUC0+PlA6IGhhbmRsZUNsaWNrKCduZXh0JylcbiAgICogICBlbmRcbiAgICpcbiAgICogQG1lbWJlck9mIFBhZ2luYXRpb25Db21wb25lbnRcbiAgICovXG4gIG5leHQoKTogdm9pZCB7XG4gICAgY29uc3QgcGFnZSA9IHRoaXMuY3VycmVudCArIDE7XG4gICAgaWYocGFnZSA8PSBPYmplY3Qua2V5cyh0aGlzLnBhZ2VzKT8ubGVuZ3RoIHx8IDApIHtcbiAgICAgIHRoaXMuY3VycmVudCA9IHBhZ2U7XG4gICAgICB0aGlzLmhhbmRsZUNsaWNrKCduZXh0Jyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBOYXZpZ2F0ZXMgdG8gdGhlIHByZXZpb3VzIHBhZ2UuXG4gICAqIEBzdW1tYXJ5IERlY3JlbWVudHMgdGhlIGN1cnJlbnQgcGFnZSBudW1iZXIgaWYgbm90IGF0IHRoZSBmaXJzdCBwYWdlIGFuZCB0cmlnZ2Vyc1xuICAgKiB0aGUgY2xpY2sgZXZlbnQgaGFuZGxlciB3aXRoICdwcmV2aW91cycgZGlyZWN0aW9uLiBUaGlzIG1ldGhvZCBpcyB0eXBpY2FsbHkgY2FsbGVkXG4gICAqIHdoZW4gdGhlIHVzZXIgY2xpY2tzIG9uIHRoZSBcInByZXZpb3VzXCIgYnV0dG9uIGluIHRoZSBwYWdpbmF0aW9uIFVJLlxuICAgKlxuICAgKiBAcmV0dXJucyB7dm9pZH1cbiAgICpcbiAgICogQG1lcm1haWRcbiAgICogc2VxdWVuY2VEaWFncmFtXG4gICAqICAgcGFydGljaXBhbnQgVSBhcyBVc2VyXG4gICAqICAgcGFydGljaXBhbnQgUCBhcyBQYWdpbmF0aW9uQ29tcG9uZW50XG4gICAqXG4gICAqICAgVS0+PlA6IENsaWNrIHByZXZpb3VzIGJ1dHRvblxuICAgKiAgIFAtPj5QOiBwcmV2aW91cygpXG4gICAqICAgYWx0IHBhZ2UgPiAwXG4gICAqICAgICBQLT4+UDogRGVjcmVtZW50IGN1cnJlbnQgcGFnZVxuICAgKiAgICAgUC0+PlA6IGhhbmRsZUNsaWNrKCdwcmV2aW91cycpXG4gICAqICAgZW5kXG4gICAqXG4gICAqIEBtZW1iZXJPZiBQYWdpbmF0aW9uQ29tcG9uZW50XG4gICAqL1xuICBwcmV2aW91cygpOiB2b2lkIHtcbiAgICBjb25zdCBwYWdlID0gdGhpcy5jdXJyZW50IC0gMTtcbiAgICBpZihwYWdlID4gMCkge1xuICAgICAgdGhpcy5jdXJyZW50ID0gcGFnZTtcbiAgICAgIHRoaXMuaGFuZGxlQ2xpY2soJ3ByZXZpb3VzJyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBOYXZpZ2F0ZXMgdG8gYSBzcGVjaWZpYyBwYWdlIG51bWJlci5cbiAgICogQHN1bW1hcnkgVXBkYXRlcyB0aGUgY3VycmVudCBwYWdlIHRvIHRoZSBzcGVjaWZpZWQgcGFnZSBudW1iZXIgYW5kIHRyaWdnZXJzXG4gICAqIHRoZSBjbGljayBldmVudCBoYW5kbGVyIHdpdGggdGhlIGFwcHJvcHJpYXRlIGRpcmVjdGlvbi4gVGhpcyBtZXRob2QgaXMgdHlwaWNhbGx5XG4gICAqIGNhbGxlZCB3aGVuIHRoZSB1c2VyIGNsaWNrcyBkaXJlY3RseSBvbiBhIHBhZ2UgbnVtYmVyIGluIHRoZSBwYWdpbmF0aW9uIFVJLlxuICAgKlxuICAgKiBAcGFyYW0ge251bWJlciB8IG51bGx9IHBhZ2UgLSBUaGUgcGFnZSBudW1iZXIgdG8gbmF2aWdhdGUgdG9cbiAgICogQHJldHVybnMge3ZvaWR9XG4gICAqXG4gICAqIEBtZXJtYWlkXG4gICAqIHNlcXVlbmNlRGlhZ3JhbVxuICAgKiAgIHBhcnRpY2lwYW50IFUgYXMgVXNlclxuICAgKiAgIHBhcnRpY2lwYW50IFAgYXMgUGFnaW5hdGlvbkNvbXBvbmVudFxuICAgKlxuICAgKiAgIFUtPj5QOiBDbGljayBwYWdlIG51bWJlclxuICAgKiAgIFAtPj5QOiBuYXZpZ2F0ZShwYWdlKVxuICAgKiAgIGFsdCBwYWdlIGlzIG5vdCBudWxsIGFuZCBkaWZmZXJlbnQgZnJvbSBjdXJyZW50XG4gICAqICAgICBQLT4+UDogRGV0ZXJtaW5lIGRpcmVjdGlvbiAobmV4dC9wcmV2aW91cylcbiAgICogICAgIFAtPj5QOiBoYW5kbGVDbGljayhkaXJlY3Rpb24sIHBhZ2UpXG4gICAqICAgZW5kXG4gICAqXG4gICAqIEBtZW1iZXJPZiBQYWdpbmF0aW9uQ29tcG9uZW50XG4gICAqL1xuICBuYXZpZ2F0ZShwYWdlOiBudW1iZXIgfCBudWxsKTogdm9pZCB7XG4gICAgaWYocGFnZSAhPT0gbnVsbCAmJiB0aGlzLmN1cnJlbnQgIT09IHBhZ2UgYXMgbnVtYmVyKVxuICAgICAgdGhpcy5oYW5kbGVDbGljayhwYWdlID4gdGhpcy5jdXJyZW50ID8gJ25leHQnIDogJ3ByZXZpb3VzJywgcGFnZSk7XG4gIH1cbn1cbiIsIiA8ZGl2IFtpZF09XCJ1aWRcIiBjbGFzcz1cImRjZi1wYWdpbmF0b3ItY29udGFpbmVyIGRjZi1mbGV4IGRjZi1mbGV4LWNlbnRlclwiPlxuICA8ZGl2IGNsYXNzPVwiZGNmLXdpZHRoLTEtMVwiPlxuICAgIDxkaXYgY2xhc3M9XCJkY2YtcGFnaW5hdGlvbi1yZXN1bWVcIiBbaW5uZXJIVE1MXT1cImxvY2FsZSArICcucmVzdW1lJyB8IHRyYW5zbGF0ZToge3ZhbHVlMDogY3VycmVudCwgdmFsdWUxOiBsYXN0fVwiPjwvZGl2PlxuICAgIDxkaXYgI3BhZ2luYXRpb25Db21wb25lbnQgY2xhc3M9XCJkY2YtcGFnaW5hdGlvbiBkY2YtZmxleC1jZW50ZXJcIj5cbiAgICAgIDxkaXZcbiAgICAgICAgYXJpYS1sYWJlbD1cInByZXZpb3VzXCJcbiAgICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgKGNsaWNrKT1cInByZXZpb3VzKClcIlxuICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJwcmV2aW91cygpXCIgW25nQ2xhc3NdPVwieydkY2YtZGlzYWJsZWQnOiBjdXJyZW50ID09PSAxfVwiPlxuICAgICAgICA8aW9uLWljb24gbmFtZT1cImNoZXZyb24tYmFjay1vdXRsaW5lXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pb24taWNvbj5cbiAgICAgIDwvZGl2PlxuICAgICAgQGZvcihwYWdlIG9mIHBhZ2VzOyB0cmFjayBwYWdlKSB7XG4gICAgICAgIDxkaXYgdGFiaW5kZXg9XCIwXCIgW2NsYXNzXT1cInBhZ2VbJ2NsYXNzJ11cIiAoY2xpY2spPVwibmF2aWdhdGUocGFnZVsnaW5kZXgnXSlcIlxuICAgICAgICAgIChrZXlkb3duLmVudGVyKT1cIm5hdmlnYXRlKHBhZ2VbJ2luZGV4J10pXCJcbiAgICAgICAgICBbbmdDbGFzc109XCJ7J2RjZi1hY3RpdmUnOiBjdXJyZW50ID09PSBwYWdlWydpbmRleCddfVwiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwicGFnZS1pdGVtXCI+e3sgcGFnZVsndGV4dCddIH19PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICAgIDxkaXZcbiAgICAgICAgdGFiaW5kZXg9XCIwXCIgKGNsaWNrKT1cIm5leHQoKVwiXG4gICAgICAgIChrZXlkb3duLmVudGVyKT1cIm5leHQoKVwiXG4gICAgICAgIFtuZ0NsYXNzXT1cInsnZGNmLWRpc2FibGVkJzogY3VycmVudCA9PT0gbGFzdH1cIj5cbiAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJjaGV2cm9uLWZvcndhcmQtb3V0bGluZVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaW9uLWljb24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
321
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvcGFnaW5hdGlvbi9wYWdpbmF0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9wYWdpbmF0aW9uL3BhZ2luYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDcEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNwQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNqRSxPQUFPLEVBQUUsY0FBYyxFQUE2QixNQUFNLGNBQWMsQ0FBQztBQUV6RSxPQUFPLEVBQUcsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUM7O0FBRXJEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBd0NHO0FBWUgsTUFBTSxPQUFPLG1CQUFvQixTQUFRLGdCQUFnQjtJQW9FdkQ7Ozs7T0FJRztJQUNIO1FBQ0UsS0FBSyxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUF4RS9COzs7Ozs7OztXQVFHO1FBQ00saUJBQVksR0FBb0IsSUFBSSxDQUFDO1FBYzlDOzs7Ozs7OztXQVFHO1FBRUgsWUFBTyxHQUFHLENBQUMsQ0FBQztRQXFCWjs7Ozs7Ozs7V0FRRztRQUVILGVBQVUsR0FBd0MsSUFBSSxZQUFZLEVBQXlCLENBQUM7UUFTekYsUUFBUSxDQUFDLEVBQUMsa0JBQWtCLEVBQUUscUJB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QUFPO3FCQUNSLGNBQ1csSUFBSTt3REEwQmhCLFVBQVU7c0JBRFQsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBYXpCLE9BQU87c0JBRE4sS0FBSztnQkFnQ04sVUFBVTtzQkFEVCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSW9uSWNvbiB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyL3N0YW5kYWxvbmUnO1xuaW1wb3J0IHsgYWRkSWNvbnMgfSBmcm9tICdpb25pY29ucyc7XG5pbXBvcnQgeyBjaGV2cm9uQmFja091dGxpbmUsIGNoZXZyb25Gb3J3YXJkT3V0bGluZSB9IGZyb20gJ2lvbmljb25zL2ljb25zJztcbmltcG9ydCB7IE5neEJhc2VDb21wb25lbnQgfSBmcm9tICcuLi8uLi9lbmdpbmUvTmd4QmFzZUNvbXBvbmVudCc7XG5pbXBvcnQgeyBFdmVudENvbnN0YW50cywgS2V5VmFsdWUsIFN0cmluZ09yQm9vbGVhbiB9IGZyb20gJy4uLy4uL2VuZ2luZSc7XG5pbXBvcnQgeyBQYWdpbmF0aW9uQ3VzdG9tRXZlbnQgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgeyAgVHJhbnNsYXRlUGlwZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBBIHBhZ2luYXRpb24gY29tcG9uZW50IGZvciBuYXZpZ2F0aW5nIHRocm91Z2ggbXVsdGlwbGUgcGFnZXMgb2YgY29udGVudC5cbiAqIEBzdW1tYXJ5IFRoaXMgY29tcG9uZW50IHByb3ZpZGVzIGEgdXNlciBpbnRlcmZhY2UgZm9yIHBhZ2luYXRlZCBjb250ZW50IG5hdmlnYXRpb24sXG4gKiBkaXNwbGF5aW5nIHBhZ2UgbnVtYmVycyBhbmQgbmF2aWdhdGlvbiBjb250cm9scy4gSXQgc3VwcG9ydHMgY3VzdG9taXphYmxlIHBhZ2UgY291bnRzLFxuICogY3VycmVudCBwYWdlIHRyYWNraW5nLCBhbmQgZW1pdHMgZXZlbnRzIHdoZW4gdXNlcnMgbmF2aWdhdGUgYmV0d2VlbiBwYWdlcy5cbiAqXG4gKiBUaGUgY29tcG9uZW50IGludGVsbGlnZW50bHkgaGFuZGxlcyBsYXJnZSBudW1iZXJzIG9mIHBhZ2VzIGJ5IHNob3dpbmcgYSBzdWJzZXQgb2YgcGFnZVxuICogbnVtYmVycyB3aXRoIGVsbGlwc2VzIHRvIGluZGljYXRlIHNraXBwZWQgcGFnZXMsIGVuc3VyaW5nIHRoZSBVSSByZW1haW5zIGNsZWFuIGFuZCB1c2FibGVcbiAqIGV2ZW4gd2l0aCBtYW55IHBhZ2VzLlxuICpcbiAqIEBtZXJtYWlkXG4gKiBzZXF1ZW5jZURpYWdyYW1cbiAqICAgcGFydGljaXBhbnQgVSBhcyBVc2VyXG4gKiAgIHBhcnRpY2lwYW50IFAgYXMgUGFnaW5hdGlvbkNvbXBvbmVudFxuICogICBwYXJ0aWNpcGFudCBFIGFzIEV4dGVybmFsIENvbXBvbmVudFxuICpcbiAqICAgVS0+PlA6IENsaWNrIHBhZ2UgbnVtYmVyXG4gKiAgIFAtPj5QOiBuYXZpZ2F0ZShwYWdlKVxuICogICBQLT4+UDogaGFuZGxlQ2xpY2soZGlyZWN0aW9uLCBwYWdlKVxuICogICBQLT4+RTogRW1pdCBjbGlja0V2ZW50IHdpdGggUGFnaW5hdGlvbkN1c3RvbUV2ZW50XG4gKlxuICogICBVLT4+UDogQ2xpY2sgbmV4dCBidXR0b25cbiAqICAgUC0+PlA6IG5leHQoKVxuICogICBQLT4+UDogaGFuZGxlQ2xpY2soJ25leHQnKVxuICogICBQLT4+RTogRW1pdCBjbGlja0V2ZW50IHdpdGggUGFnaW5hdGlvbkN1c3RvbUV2ZW50XG4gKlxuICogICBVLT4+UDogQ2xpY2sgcHJldmlvdXMgYnV0dG9uXG4gKiAgIFAtPj5QOiBwcmV2aW91cygpXG4gKiAgIFAtPj5QOiBoYW5kbGVDbGljaygncHJldmlvdXMnKVxuICogICBQLT4+RTogRW1pdCBjbGlja0V2ZW50IHdpdGggUGFnaW5hdGlvbkN1c3RvbUV2ZW50XG4gKlxuICogQGV4YW1wbGVcbiAqIDxuZ3gtZGVjYWYtcGFnaW5hdGlvblxuICogICBbcGFnZXNdPVwiMTBcIlxuICogICBbY3VycmVudF09XCIzXCJcbiAqICAgKGNsaWNrRXZlbnQpPVwiaGFuZGxlUGFnZUNoYW5nZSgkZXZlbnQpXCI+XG4gKiA8L25neC1kZWNhZi1wYWdpbmF0aW9uPlxuICpcbiAqIEBleHRlbmRzIHtOZ3hCYXNlQ29tcG9uZW50fVxuICogQGltcGxlbWVudHMge09uSW5pdH1cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbmd4LWRlY2FmLXBhZ2luYXRpb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vcGFnaW5hdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3BhZ2luYXRpb24uY29tcG9uZW50LnNjc3MnXSxcbiAgaW1wb3J0czogW1xuICAgIFRyYW5zbGF0ZVBpcGUsXG4gICAgSW9uSWNvblxuICBdLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuXG59KVxuZXhwb3J0IGNsYXNzIFBhZ2luYXRpb25Db21wb25lbnQgZXh0ZW5kcyBOZ3hCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIENvbnRyb2xzIHdoZXRoZXIgdGhlIGNvbXBvbmVudCB1c2VzIHRyYW5zbGF0aW9uIHNlcnZpY2VzLlxuICAgKiBAc3VtbWFyeSBXaGVuIHNldCB0byB0cnVlLCB0aGUgY29tcG9uZW50IHdpbGwgYXR0ZW1wdCB0byB1c2UgdHJhbnNsYXRpb24gc2VydmljZXNcbiAgICogZm9yIGFueSB0ZXh0IGNvbnRlbnQuIFRoaXMgYWxsb3dzIGZvciBpbnRlcm5hdGlvbmFsaXphdGlvbiBvZiB0aGUgcGFnaW5hdGlvbiBjb21wb25lbnQuXG4gICAqXG4gICAqIEB0eXBlIHtTdHJpbmdPckJvb2xlYW59XG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICogQG1lbWJlck9mIFBhZ2luYXRpb25Db21wb25lbnRcbiAgICovXG4gIG92ZXJyaWRlIHRyYW5zbGF0YWJsZTogU3RyaW5nT3JCb29sZWFuID0gdHJ1ZTtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFRoZSB0b3RhbCBudW1iZXIgb2YgcGFnZXMgdG8gZGlzcGxheSBpbiB0aGUgcGFnaW5hdGlvbiBjb21wb25lbnQuXG4gICAqIEBzdW1tYXJ5IFNwZWNpZmllcyB0aGUgdG90YWwgbnVtYmVyIG9mIHBhZ2VzIGF2YWlsYWJsZSBmb3IgbmF2aWdhdGlvbi4gVGhpcyBpcyBhIHJlcXVpcmVkXG4gICAqIGlucHV0IHRoYXQgZGV0ZXJtaW5lcyBob3cgbWFueSBwYWdlIG51bWJlcnMgd2lsbCBiZSBnZW5lcmF0ZWQgYW5kIGRpc3BsYXllZC5cbiAgICpcbiAgICogQHR5cGUge251bWJlcn1cbiAgICogQHJlcXVpcmVkXG4gICAqIEBtZW1iZXJPZiBQYWdpbmF0aW9uQ29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KVxuICB0b3RhbFBhZ2VzITogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gVGhlIGN1cnJlbnRseSBhY3RpdmUgcGFnZSBudW1iZXIuXG4gICAqIEBzdW1tYXJ5IFNwZWNpZmllcyB3aGljaCBwYWdlIGlzIGN1cnJlbnRseSBhY3RpdmUgb3Igc2VsZWN0ZWQuIFRoaXMgdmFsdWUgaXMgdXNlZFxuICAgKiB0byBoaWdobGlnaHQgdGhlIGN1cnJlbnQgcGFnZSBpbiB0aGUgVUkgYW5kIGFzIGEgcmVmZXJlbmNlIHBvaW50IGZvciBuYXZpZ2F0aW9uLlxuICAgKlxuICAgKiBAdHlwZSB7bnVtYmVyfVxuICAgKiBAZGVmYXVsdCAxXG4gICAqIEBtZW1iZXJPZiBQYWdpbmF0aW9uQ29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKVxuICBjdXJyZW50ID0gMTtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEFycmF5IG9mIHBhZ2Ugb2JqZWN0cyBmb3IgcmVuZGVyaW5nIGluIHRoZSB0ZW1wbGF0ZS5cbiAgICogQHN1bW1hcnkgQ29udGFpbnMgdGhlIHByb2Nlc3NlZCBwYWdlIGRhdGEgdXNlZCBmb3IgcmVuZGVyaW5nIHRoZSBwYWdpbmF0aW9uIFVJLlxuICAgKiBFYWNoIG9iamVjdCBpbmNsdWRlcyBhbiBpbmRleCAocGFnZSBudW1iZXIpIGFuZCB0ZXh0IHJlcHJlc2VudGF0aW9uLlxuICAgKlxuICAgKiBAdHlwZSB7S2V5VmFsdWVbXX1cbiAgICogQG1lbWJlck9mIFBhZ2luYXRpb25Db21wb25lbnRcbiAgICovXG4gIHBhZ2VzITogS2V5VmFsdWVbXTtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFRoZSBsYXN0IHBhZ2UgbnVtYmVyIGluIHRoZSBwYWdpbmF0aW9uLlxuICAgKiBAc3VtbWFyeSBTdG9yZXMgdGhlIG51bWJlciBvZiB0aGUgbGFzdCBwYWdlIGZvciBib3VuZGFyeSBjaGVja2luZyBkdXJpbmcgbmF2aWdhdGlvbi5cbiAgICpcbiAgICogQHR5cGUge251bWJlcn1cbiAgICogQG1lbWJlck9mIFBhZ2luYXRpb25Db21wb25lbnRcbiAgICovXG4gIGxhc3QhOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBFdmVudCBlbWl0dGVyIGZvciBwYWdpbmF0aW9uIG5hdmlnYXRpb24gZXZlbnRzLlxuICAgKiBAc3VtbWFyeSBFbWl0cyBhIGN1c3RvbSBldmVudCB3aGVuIHVzZXJzIG5hdmlnYXRlIGJldHdlZW4gcGFnZXMsIGVpdGhlciBieSBjbGlja2luZ1xuICAgKiBvbiBwYWdlIG51bWJlcnMgb3IgdXNpbmcgdGhlIG5leHQvcHJldmlvdXMgYnV0dG9ucy4gVGhlIGV2ZW50IGNvbnRhaW5zIGluZm9ybWF0aW9uXG4gICAqIGFib3V0IHRoZSBuYXZpZ2F0aW9uIGRpcmVjdGlvbiBhbmQgdGhlIHRhcmdldCBwYWdlIG51bWJlci5cbiAgICpcbiAgICogQHR5cGUge0V2ZW50RW1pdHRlcjxQYWdpbmF0aW9uQ3VzdG9tRXZlbnQ+fVxuICAgKiBAbWVtYmVyT2YgUGFnaW5hdGlvbkNvbXBvbmVudFxuICAgKi9cbiAgQE91dHB1dCgpXG4gIGNsaWNrRXZlbnQ6IEV2ZW50RW1pdHRlcjxQYWdpbmF0aW9uQ3VzdG9tRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxQYWdpbmF0aW9uQ3VzdG9tRXZlbnQ+KCk7XG5cbiAgLyoqXG4gICAqIEBjb25zdHJ1Y3RvclxuICAgKiBAZGVzY3JpcHRpb24gSW5pdGlhbGl6ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIFBhZ2luYXRpb25Db21wb25lbnQuXG4gICAqIENhbGxzIHRoZSBwYXJlbnQgY29uc3RydWN0b3Igd2l0aCB0aGUgY29tcG9uZW50IG5hbWUgZm9yIGdlbmVyYXRlIGJhc2UgbG9jYWxlIHN0cmluZy5cbiAgICovXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKFwiUGFnaW5hdGlvbkNvbXBvbmVudFwiKTtcbiAgICAgYWRkSWNvbnMoe2NoZXZyb25CYWNrT3V0bGluZSwgY2hldnJvbkZvcndhcmRPdXRsaW5lfSk7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEluaXRpYWxpemVzIHRoZSBjb21wb25lbnQgYWZ0ZXIgQW5ndWxhciBzZXRzIHRoZSBpbnB1dCBwcm9wZXJ0aWVzLlxuICAgKiBAc3VtbWFyeSBTZXRzIHVwIHRoZSBjb21wb25lbnQgYnkgaW5pdGlhbGl6aW5nIHRoZSBsb2NhbGUgc2V0dGluZ3MgYmFzZWQgb24gdGhlXG4gICAqIHRyYW5zbGF0YWJsZSBwcm9wZXJ0eSwgZ2VuZXJhdGluZyB0aGUgcGFnZSBudW1iZXJzIGJhc2VkIG9uIHRoZSB0b3RhbCBwYWdlcyBhbmRcbiAgICogY3VycmVudCBwYWdlLCBhbmQgc3RvcmluZyB0aGUgbGFzdCBwYWdlIG51bWJlciBmb3IgYm91bmRhcnkgY2hlY2tpbmcuXG4gICAqXG4gICAqIEBtZXJtYWlkXG4gICAqIHNlcXVlbmNlRGlhZ3JhbVxuICAgKiAgIHBhcnRpY2lwYW50IEEgYXMgQW5ndWxhciBMaWZlY3ljbGVcbiAgICogICBwYXJ0aWNpcGFudCBQIGFzIFBhZ2luYXRpb25Db21wb25lbnRcbiAgICpcbiAgICogICBBLT4+UDogbmdPbkluaXQoKVxuICAgKiAgIFAtPj5QOiBnZXRMb2NhbGUodHJhbnNsYXRhYmxlKVxuICAgKiAgIFAtPj5QOiBTZXQgbG9jYWxlXG4gICAqICAgUC0+PlA6IGdldFBhZ2VzKGRhdGEsIGN1cnJlbnQpXG4gICAqICAgUC0+PlA6IFNldCBwYWdlcyBhcnJheVxuICAgKiAgIFAtPj5QOiBTZXQgbGFzdCBwYWdlIG51bWJlclxuICAgKlxuICAgKiBAcmV0dXJucyB7dm9pZH1cbiAgICogQG1lbWJlck9mIFBhZ2luYXRpb25Db21wb25lbnRcbiAgICovXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMubG9jYWxlID0gdGhpcy5nZXRMb2NhbGUodGhpcy50cmFuc2xhdGFibGUpO1xuICAgIHRoaXMucGFnZXMgPSB0aGlzLmdldFBhZ2VzKHRoaXMudG90YWxQYWdlcywgdGhpcy5jdXJyZW50KSBhcyBLZXlWYWx1ZVtdO1xuICAgIHRoaXMubGFzdCA9IHRoaXMudG90YWxQYWdlcztcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gSGFuZGxlcyBjbGljayBldmVudHMgb24gcGFnaW5hdGlvbiBjb250cm9scy5cbiAgICogQHN1bW1hcnkgUHJvY2Vzc2VzIHVzZXIgaW50ZXJhY3Rpb25zIHdpdGggdGhlIHBhZ2luYXRpb24gY29tcG9uZW50LCB1cGRhdGluZyB0aGVcbiAgICogY3VycmVudCBwYWdlIGlmIHNwZWNpZmllZCBhbmQgZW1pdHRpbmcgYW4gZXZlbnQgd2l0aCBuYXZpZ2F0aW9uIGRldGFpbHMuIFRoaXMgbWV0aG9kXG4gICAqIGlzIGNhbGxlZCB3aGVuIHVzZXJzIGNsaWNrIG9uIHBhZ2UgbnVtYmVycyBvciBuYXZpZ2F0aW9uIGJ1dHRvbnMuXG4gICAqXG4gICAqIEBwYXJhbSB7KCduZXh0JyB8ICdwcmV2aW91cycpfSBkaXJlY3Rpb24gLSBUaGUgZGlyZWN0aW9uIG9mIG5hdmlnYXRpb25cbiAgICogQHBhcmFtIHtudW1iZXJ9IFtwYWdlXSAtIE9wdGlvbmFsIHBhZ2UgbnVtYmVyIHRvIG5hdmlnYXRlIHRvIGRpcmVjdGx5XG4gICAqIEByZXR1cm5zIHt2b2lkfVxuICAgKlxuICAgKiBAbWVybWFpZFxuICAgKiBzZXF1ZW5jZURpYWdyYW1cbiAgICogICBwYXJ0aWNpcGFudCBVIGFzIFVzZXJcbiAgICogICBwYXJ0aWNpcGFudCBQIGFzIFBhZ2luYXRpb25Db21wb25lbnRcbiAgICogICBwYXJ0aWNpcGFudCBFIGFzIEV4dGVybmFsIENvbXBvbmVudFxuICAgKlxuICAgKiAgIFUtPj5QOiBDbGljayBwYWdpbmF0aW9uIGNvbnRyb2xcbiAgICogICBQLT4+UDogaGFuZGxlQ2xpY2soZGlyZWN0aW9uLCBwYWdlPylcbiAgICogICBhbHQgcGFnZSBpcyBwcm92aWRlZFxuICAgKiAgICAgUC0+PlA6IFVwZGF0ZSBjdXJyZW50IHBhZ2VcbiAgICogICBlbmRcbiAgICogICBQLT4+RTogRW1pdCBjbGlja0V2ZW50IHdpdGggZGlyZWN0aW9uIGFuZCBwYWdlXG4gICAqXG4gICAqIEBtZW1iZXJPZiBQYWdpbmF0aW9uQ29tcG9uZW50XG4gICAqL1xuICBoYW5kbGVDbGljayhkaXJlY3Rpb246ICduZXh0JyB8ICdwcmV2aW91cycsIHBhZ2U/OiBudW1iZXIpOiB2b2lkIHtcbiAgICBpZihwYWdlKVxuICAgICAgdGhpcy5jdXJyZW50ID0gcGFnZTtcbiAgICB0aGlzLmNsaWNrRXZlbnQuZW1pdCh7XG4gICAgICBuYW1lOiBFdmVudENvbnN0YW50cy5DTElDSyxcbiAgICAgIGRhdGE6IHtcbiAgICAgICAgZGlyZWN0aW9uLFxuICAgICAgICBwYWdlOiB0aGlzLmN1cnJlbnRcbiAgICAgIH0sXG4gICAgICBjb21wb25lbnQ6IHRoaXMuY29tcG9uZW50TmFtZVxuICAgIH0gYXMgUGFnaW5hdGlvbkN1c3RvbUV2ZW50KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gR2VuZXJhdGVzIHRoZSBhcnJheSBvZiBwYWdlIG9iamVjdHMgZm9yIGRpc3BsYXkuXG4gICAqIEBzdW1tYXJ5IENyZWF0ZXMgYW4gYXJyYXkgb2YgcGFnZSBvYmplY3RzIGJhc2VkIG9uIHRoZSB0b3RhbCBudW1iZXIgb2YgcGFnZXMgYW5kXG4gICAqIHRoZSBjdXJyZW50IHBhZ2UuIEZvciBzbWFsbCBwYWdlIGNvdW50cyAo4omkNSksIGFsbCBwYWdlcyBhcmUgc2hvd24uIEZvciBsYXJnZXIgcGFnZVxuICAgKiBjb3VudHMsIGEgc3Vic2V0IGlzIHNob3duIHdpdGggZWxsaXBzZXMgdG8gaW5kaWNhdGUgc2tpcHBlZCBwYWdlcy4gVGhpcyBlbnN1cmVzXG4gICAqIHRoZSBwYWdpbmF0aW9uIFVJIHJlbWFpbnMgY2xlYW4gYW5kIHVzYWJsZSBldmVuIHdpdGggbWFueSBwYWdlcy5cbiAgICpcbiAgICogQHBhcmFtIHtudW1iZXJ9IHRvdGFsIC0gVGhlIHRvdGFsIG51bWJlciBvZiBwYWdlc1xuICAgKiBAcGFyYW0ge251bWJlcn0gW2N1cnJlbnRdIC0gVGhlIGN1cnJlbnQgYWN0aXZlIHBhZ2UgKGRlZmF1bHRzIHRvIHRoaXMuY3VycmVudClcbiAgICogQHJldHVybnMge0tleVZhbHVlW119IEFycmF5IG9mIHBhZ2Ugb2JqZWN0cyB3aXRoIGluZGV4IGFuZCB0ZXh0IHByb3BlcnRpZXNcbiAgICpcbiAgICogQG1lcm1haWRcbiAgICogZmxvd2NoYXJ0IFREXG4gICAqICAgQVtTdGFydF0gLS0+IEJ7dG90YWwgPD0gNT99XG4gICAqICAgQiAtLT58WWVzfCBDW1Nob3cgYWxsIHBhZ2VzXVxuICAgKiAgIEIgLS0+fE5vfCBEW1Nob3cgZmlyc3QgcGFnZV1cbiAgICogICBEIC0tPiBFW1Nob3cgbGFzdCBwYWdlc11cbiAgICogICBFIC0tPiBGW0FkZCBlbGxpcHNlcyBmb3Igc2tpcHBlZCBwYWdlc11cbiAgICogICBDIC0tPiBHW1JldHVybiBwYWdlcyBhcnJheV1cbiAgICogICBGIC0tPiBHXG4gICAqXG4gICAqIEBtZW1iZXJPZiBQYWdpbmF0aW9uQ29tcG9uZW50XG4gICAqL1xuICBnZXRQYWdlcyh0b3RhbDogbnVtYmVyLCBjdXJyZW50PzogbnVtYmVyKTogS2V5VmFsdWVbXSB7XG4gICAgaWYgKCFjdXJyZW50KSBjdXJyZW50ID0gdGhpcy5jdXJyZW50O1xuXG4gICAgY29uc3QgcGFnZXM6IEtleVZhbHVlW10gPSBbXTtcblxuICAgIGZ1bmN0aW9uIGdldFBhZ2UoaW5kZXg6IG51bWJlciB8IG51bGwsIHRleHQgPSAnJywgY2xhenogPSAnYnV0dG9uJyk6IHZvaWQge1xuICAgICAgICBpZiAocGFnZXMuc29tZShpdGVtID0+IGl0ZW1bJ2luZGV4J10gPT09IGluZGV4KSkgcmV0dXJuO1xuICAgICAgICBwYWdlcy5wdXNoKHsgaW5kZXgsIHRleHQ6IGluZGV4ICE9IG51bGwgPyBpbmRleC50b1N0cmluZygpLnBhZFN0YXJ0KDIsICcwJykgOiB0ZXh0LCBjbGFzczogY2xhenogfSk7XG4gICAgfVxuXG4gICAgaWYgKHRvdGFsIDw9IDUpIHtcbiAgICAgICAgZm9yIChsZXQgaSA9IDE7IGkgPD0gdG90YWw7IGkrKykgZ2V0UGFnZShpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gQWRpY2lvbmEgb3MgZG9pcyBwcmltZWlyb3NcbiAgICAgIGdldFBhZ2UoMSk7XG4gICAgICBnZXRQYWdlKDIpO1xuXG4gICAgICAvLyBBZGljaW9uYSBcIi4uLlwiIGVudHJlIG9zIGJsb2Nvc1xuICAgICAgaWYgKGN1cnJlbnQgJiYgY3VycmVudCA+IDMpIGdldFBhZ2UobnVsbCwgJy4uLicpO1xuXG4gICAgICAvLyBBZGljaW9uYSBhIHDDoWdpbmEgYXR1YWwgKHNlIGVzdGl2ZXIgbm8gbWVpbylcbiAgICAgIGlmIChjdXJyZW50ICYmIGN1cnJlbnQgPiAyICYmIGN1cnJlbnQgPCB0b3RhbCAtIDEpIGdldFBhZ2UoY3VycmVudCk7XG5cbiAgICAgIC8vIEFkaWNpb25hIFwiLi4uXCIgZW50cmUgb3MgYmxvY29zXG4gICAgICBpZiAoY3VycmVudCAmJiBjdXJyZW50IDwgdG90YWwgLSAyKSBnZXRQYWdlKG51bGwsICcuLi4nICwgJ3NlcGFyYXRvcicpO1xuXG4gICAgICAvLyBBZGljaW9uYSBvcyBkb2lzIMO6bHRpbW9zXG4gICAgICBnZXRQYWdlKHRvdGFsIC0gMSk7XG4gICAgICBnZXRQYWdlKHRvdGFsKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcGFnZXM7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEdldHMgdGhlIGN1cnJlbnQgYWN0aXZlIHBhZ2UgbnVtYmVyLlxuICAgKiBAc3VtbWFyeSBSZXR1cm5zIHRoZSBjdXJyZW50IHBhZ2UgbnVtYmVyIHRoYXQgaXMgYWN0aXZlIGluIHRoZSBwYWdpbmF0aW9uIGNvbXBvbmVudC5cbiAgICogVGhpcyBtZXRob2QgcHJvdmlkZXMgYSB3YXkgdG8gYWNjZXNzIHRoZSBjdXJyZW50IHBhZ2Ugc3RhdGUgZnJvbSBvdXRzaWRlIHRoZSBjb21wb25lbnQuXG4gICAqXG4gICAqIEByZXR1cm5zIHtudW1iZXJ9IFRoZSBjdXJyZW50IHBhZ2UgbnVtYmVyXG4gICAqIEBtZW1iZXJPZiBQYWdpbmF0aW9uQ29tcG9uZW50XG4gICAqL1xuICBnZXRDdXJyZW50KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuY3VycmVudDtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gTmF2aWdhdGVzIHRvIHRoZSBuZXh0IHBhZ2UuXG4gICAqIEBzdW1tYXJ5IEluY3JlbWVudHMgdGhlIGN1cnJlbnQgcGFnZSBudW1iZXIgaWYgbm90IGF0IHRoZSBsYXN0IHBhZ2UgYW5kIHRyaWdnZXJzXG4gICAqIHRoZSBjbGljayBldmVudCBoYW5kbGVyIHdpdGggJ25leHQnIGRpcmVjdGlvbi4gVGhpcyBtZXRob2QgaXMgdHlwaWNhbGx5IGNhbGxlZFxuICAgKiB3aGVuIHRoZSB1c2VyIGNsaWNrcyBvbiB0aGUgXCJuZXh0XCIgYnV0dG9uIGluIHRoZSBwYWdpbmF0aW9uIFVJLlxuICAgKlxuICAgKiBAcmV0dXJucyB7dm9pZH1cbiAgICpcbiAgICogQG1lcm1haWRcbiAgICogc2VxdWVuY2VEaWFncmFtXG4gICAqICAgcGFydGljaXBhbnQgVSBhcyBVc2VyXG4gICAqICAgcGFydGljaXBhbnQgUCBhcyBQYWdpbmF0aW9uQ29tcG9uZW50XG4gICAqXG4gICAqICAgVS0+PlA6IENsaWNrIG5leHQgYnV0dG9uXG4gICAqICAgUC0+PlA6IG5leHQoKVxuICAgKiAgIGFsdCBwYWdlIDw9IG1heCBwYWdlc1xuICAgKiAgICAgUC0+PlA6IEluY3JlbWVudCBjdXJyZW50IHBhZ2VcbiAgICogICAgIFAtPj5QOiBoYW5kbGVDbGljaygnbmV4dCcpXG4gICAqICAgZW5kXG4gICAqXG4gICAqIEBtZW1iZXJPZiBQYWdpbmF0aW9uQ29tcG9uZW50XG4gICAqL1xuICBuZXh0KCk6IHZvaWQge1xuICAgIGNvbnN0IHBhZ2UgPSB0aGlzLmN1cnJlbnQgKyAxO1xuICAgIGlmKHBhZ2UgPD0gT2JqZWN0LmtleXModGhpcy5wYWdlcyk/Lmxlbmd0aCB8fCAwKSB7XG4gICAgICB0aGlzLmN1cnJlbnQgPSBwYWdlO1xuICAgICAgdGhpcy5oYW5kbGVDbGljaygnbmV4dCcpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gTmF2aWdhdGVzIHRvIHRoZSBwcmV2aW91cyBwYWdlLlxuICAgKiBAc3VtbWFyeSBEZWNyZW1lbnRzIHRoZSBjdXJyZW50IHBhZ2UgbnVtYmVyIGlmIG5vdCBhdCB0aGUgZmlyc3QgcGFnZSBhbmQgdHJpZ2dlcnNcbiAgICogdGhlIGNsaWNrIGV2ZW50IGhhbmRsZXIgd2l0aCAncHJldmlvdXMnIGRpcmVjdGlvbi4gVGhpcyBtZXRob2QgaXMgdHlwaWNhbGx5IGNhbGxlZFxuICAgKiB3aGVuIHRoZSB1c2VyIGNsaWNrcyBvbiB0aGUgXCJwcmV2aW91c1wiIGJ1dHRvbiBpbiB0aGUgcGFnaW5hdGlvbiBVSS5cbiAgICpcbiAgICogQHJldHVybnMge3ZvaWR9XG4gICAqXG4gICAqIEBtZXJtYWlkXG4gICAqIHNlcXVlbmNlRGlhZ3JhbVxuICAgKiAgIHBhcnRpY2lwYW50IFUgYXMgVXNlclxuICAgKiAgIHBhcnRpY2lwYW50IFAgYXMgUGFnaW5hdGlvbkNvbXBvbmVudFxuICAgKlxuICAgKiAgIFUtPj5QOiBDbGljayBwcmV2aW91cyBidXR0b25cbiAgICogICBQLT4+UDogcHJldmlvdXMoKVxuICAgKiAgIGFsdCBwYWdlID4gMFxuICAgKiAgICAgUC0+PlA6IERlY3JlbWVudCBjdXJyZW50IHBhZ2VcbiAgICogICAgIFAtPj5QOiBoYW5kbGVDbGljaygncHJldmlvdXMnKVxuICAgKiAgIGVuZFxuICAgKlxuICAgKiBAbWVtYmVyT2YgUGFnaW5hdGlvbkNvbXBvbmVudFxuICAgKi9cbiAgcHJldmlvdXMoKTogdm9pZCB7XG4gICAgY29uc3QgcGFnZSA9IHRoaXMuY3VycmVudCAtIDE7XG4gICAgaWYocGFnZSA+IDApIHtcbiAgICAgIHRoaXMuY3VycmVudCA9IHBhZ2U7XG4gICAgICB0aGlzLmhhbmRsZUNsaWNrKCdwcmV2aW91cycpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gTmF2aWdhdGVzIHRvIGEgc3BlY2lmaWMgcGFnZSBudW1iZXIuXG4gICAqIEBzdW1tYXJ5IFVwZGF0ZXMgdGhlIGN1cnJlbnQgcGFnZSB0byB0aGUgc3BlY2lmaWVkIHBhZ2UgbnVtYmVyIGFuZCB0cmlnZ2Vyc1xuICAgKiB0aGUgY2xpY2sgZXZlbnQgaGFuZGxlciB3aXRoIHRoZSBhcHByb3ByaWF0ZSBkaXJlY3Rpb24uIFRoaXMgbWV0aG9kIGlzIHR5cGljYWxseVxuICAgKiBjYWxsZWQgd2hlbiB0aGUgdXNlciBjbGlja3MgZGlyZWN0bHkgb24gYSBwYWdlIG51bWJlciBpbiB0aGUgcGFnaW5hdGlvbiBVSS5cbiAgICpcbiAgICogQHBhcmFtIHtudW1iZXIgfCBudWxsfSBwYWdlIC0gVGhlIHBhZ2UgbnVtYmVyIHRvIG5hdmlnYXRlIHRvXG4gICAqIEByZXR1cm5zIHt2b2lkfVxuICAgKlxuICAgKiBAbWVybWFpZFxuICAgKiBzZXF1ZW5jZURpYWdyYW1cbiAgICogICBwYXJ0aWNpcGFudCBVIGFzIFVzZXJcbiAgICogICBwYXJ0aWNpcGFudCBQIGFzIFBhZ2luYXRpb25Db21wb25lbnRcbiAgICpcbiAgICogICBVLT4+UDogQ2xpY2sgcGFnZSBudW1iZXJcbiAgICogICBQLT4+UDogbmF2aWdhdGUocGFnZSlcbiAgICogICBhbHQgcGFnZSBpcyBub3QgbnVsbCBhbmQgZGlmZmVyZW50IGZyb20gY3VycmVudFxuICAgKiAgICAgUC0+PlA6IERldGVybWluZSBkaXJlY3Rpb24gKG5leHQvcHJldmlvdXMpXG4gICAqICAgICBQLT4+UDogaGFuZGxlQ2xpY2soZGlyZWN0aW9uLCBwYWdlKVxuICAgKiAgIGVuZFxuICAgKlxuICAgKiBAbWVtYmVyT2YgUGFnaW5hdGlvbkNvbXBvbmVudFxuICAgKi9cbiAgbmF2aWdhdGUocGFnZTogbnVtYmVyIHwgbnVsbCk6IHZvaWQge1xuICAgIGlmKHBhZ2UgIT09IG51bGwgJiYgdGhpcy5jdXJyZW50ICE9PSBwYWdlIGFzIG51bWJlcilcbiAgICAgIHRoaXMuaGFuZGxlQ2xpY2socGFnZSA+IHRoaXMuY3VycmVudCA/ICduZXh0JyA6ICdwcmV2aW91cycsIHBhZ2UpO1xuICB9XG59XG4iLCIgPGRpdiBbaWRdPVwidWlkXCIgY2xhc3M9XCJkY2YtcGFnaW5hdG9yLWNvbnRhaW5lciBkY2YtZmxleCBkY2YtZmxleC1jZW50ZXJcIj5cbiAgPGRpdiBjbGFzcz1cImRjZi13aWR0aC0xLTFcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZGNmLXBhZ2luYXRpb24tcmVzdW1lXCIgW2lubmVySFRNTF09XCJsb2NhbGUgKyAnLnJlc3VtZScgfCB0cmFuc2xhdGU6IHt2YWx1ZTA6IGN1cnJlbnQsIHZhbHVlMTogbGFzdH1cIj48L2Rpdj5cbiAgICA8ZGl2ICNwYWdpbmF0aW9uQ29tcG9uZW50IGNsYXNzPVwiZGNmLXBhZ2luYXRpb24gZGNmLWZsZXgtY2VudGVyXCI+XG4gICAgICA8ZGl2XG4gICAgICAgIGFyaWEtbGFiZWw9XCJwcmV2aW91c1wiXG4gICAgICAgIHRhYmluZGV4PVwiMFwiXG4gICAgICAgIChjbGljayk9XCJwcmV2aW91cygpXCJcbiAgICAgICAgKGtleWRvd24uZW50ZXIpPVwicHJldmlvdXMoKVwiIFtjbGFzcy5kY2YtZGlzYWJsZWRdPVwiY3VycmVudCA9PT0gMVwiPlxuICAgICAgICA8aW9uLWljb24gbmFtZT1cImNoZXZyb24tYmFjay1vdXRsaW5lXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pb24taWNvbj5cbiAgICAgIDwvZGl2PlxuICAgICAgQGZvcihwYWdlIG9mIHBhZ2VzOyB0cmFjayBwYWdlKSB7XG4gICAgICAgIDxkaXYgdGFiaW5kZXg9XCIwXCIgW2NsYXNzXT1cInBhZ2VbJ2NsYXNzJ11cIiAoY2xpY2spPVwibmF2aWdhdGUocGFnZVsnaW5kZXgnXSlcIlxuICAgICAgICAgIChrZXlkb3duLmVudGVyKT1cIm5hdmlnYXRlKHBhZ2VbJ2luZGV4J10pXCJcbiAgICAgICAgICBbY2xhc3MuZGNmLWFjdGl2ZV09XCJjdXJyZW50ID09PSBwYWdlWydpbmRleCddXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJwYWdlLWl0ZW1cIj57eyBwYWdlWyd0ZXh0J10gfX08L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgfVxuICAgICAgPGRpdlxuICAgICAgICB0YWJpbmRleD1cIjBcIiAoY2xpY2spPVwibmV4dCgpXCJcbiAgICAgICAgKGtleWRvd24uZW50ZXIpPVwibmV4dCgpXCJcbiAgICAgICAgW2NsYXNzLmRjZi1kaXNhYmxlZF09XCJjdXJyZW50ID09PSBsYXN0XCI+XG4gICAgICAgIDxpb24taWNvbiBuYW1lPVwiY2hldnJvbi1mb3J3YXJkLW91dGxpbmVcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2lvbi1pY29uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
import { Component, EventEmitter, HostListener, Input, Output } from '@angular/core';
|
|
2
2
|
import { windowEventEmitter } from '../../helpers/utils';
|
|
3
|
-
import { ForAngularModule } from '../../for-angular.module';
|
|
4
3
|
import { stringToBoolean } from '../../helpers/utils';
|
|
5
4
|
import { NgxBaseComponent } from '../../engine/NgxBaseComponent';
|
|
6
5
|
import { IonSearchbar } from '@ionic/angular/standalone';
|
|
7
6
|
import * as allIcons from 'ionicons/icons';
|
|
8
7
|
import { addIcons } from 'ionicons';
|
|
9
8
|
import * as i0 from "@angular/core";
|
|
10
|
-
import * as i1 from "@angular/common";
|
|
11
9
|
/**
|
|
12
10
|
* @description Searchbar component for Angular applications.
|
|
13
11
|
* @summary The SearchbarComponent provides a highly customizable search input field with comprehensive
|
|
@@ -434,12 +432,12 @@ export class SearchbarComponent extends NgxBaseComponent {
|
|
|
434
432
|
preventChange(event) {
|
|
435
433
|
event.preventDefault();
|
|
436
434
|
}
|
|
437
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
438
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.
|
|
435
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SearchbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
436
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: SearchbarComponent, isStandalone: true, selector: "ngx-decaf-searchbar", inputs: { autocomplete: "autocomplete", autocorrect: "autocorrect", animated: "animated", buttonCancelText: "buttonCancelText", clearIcon: "clearIcon", color: "color", debounce: "debounce", disabled: "disabled", enterkeyhint: "enterkeyhint", inputmode: "inputmode", placeholder: "placeholder", searchIcon: "searchIcon", showCancelButton: "showCancelButton", showClearButton: "showClearButton", spellcheck: "spellcheck", type: "type", value: "value", queryKeys: "queryKeys", isVisible: "isVisible", wrapper: "wrapper", wrapperColor: "wrapperColor", emitEventToWindow: "emitEventToWindow" }, outputs: { searchEvent: "searchEvent" }, host: { listeners: { "window:toggleSearchbarVisibility": "handleToggleVisibility($event)" } }, usesInheritance: true, ngImport: i0, template: "<ion-searchbar\n [id]=\"uid\"\n ngClass=\"dcf-searchbar\"\n name=\"search\"\n mode=\"ios\"\n (keyup.enter)=\"preventChange($event)\"\n (ionChange)=\"handleChange($event)\"\n (ionInput)=\"handleInput($event)\"\n (ionClear)=\"handleClear()\"\n [autocomplete]=\"autocomplete\"\n [showCancelButton]=\"showCancelButton\"\n [cancelButtonText]=\"buttonCancelText\"\n [clearIcon]=\"clearIcon\"\n [color]=\"color\"\n [debounce]=\"debounce\"\n [disabled]=\"disabled\"\n [enterkeyhint]=\"enterkeyhint\"\n [inputmode]=\"inputmode\"\n [placeholder]=\"placeholder\"\n [searchIcon]=\"searchIcon\"\n [showClearButton]=\"showClearButton\"\n [spellcheck]=\"spellcheck\"\n [type]=\"type\"\n #component\n />\n", styles: [""], dependencies: [{ kind: "component", type: IonSearchbar, selector: "ion-searchbar", inputs: ["animated", "autocomplete", "autocorrect", "cancelButtonIcon", "cancelButtonText", "clearIcon", "color", "debounce", "disabled", "enterkeyhint", "inputmode", "mode", "name", "placeholder", "searchIcon", "showCancelButton", "showClearButton", "spellcheck", "type", "value"] }] }); }
|
|
439
437
|
}
|
|
440
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
438
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SearchbarComponent, decorators: [{
|
|
441
439
|
type: Component,
|
|
442
|
-
args: [{ selector: 'ngx-decaf-searchbar', standalone: true, imports: [
|
|
440
|
+
args: [{ selector: 'ngx-decaf-searchbar', standalone: true, imports: [IonSearchbar], template: "<ion-searchbar\n [id]=\"uid\"\n ngClass=\"dcf-searchbar\"\n name=\"search\"\n mode=\"ios\"\n (keyup.enter)=\"preventChange($event)\"\n (ionChange)=\"handleChange($event)\"\n (ionInput)=\"handleInput($event)\"\n (ionClear)=\"handleClear()\"\n [autocomplete]=\"autocomplete\"\n [showCancelButton]=\"showCancelButton\"\n [cancelButtonText]=\"buttonCancelText\"\n [clearIcon]=\"clearIcon\"\n [color]=\"color\"\n [debounce]=\"debounce\"\n [disabled]=\"disabled\"\n [enterkeyhint]=\"enterkeyhint\"\n [inputmode]=\"inputmode\"\n [placeholder]=\"placeholder\"\n [searchIcon]=\"searchIcon\"\n [showClearButton]=\"showClearButton\"\n [spellcheck]=\"spellcheck\"\n [type]=\"type\"\n #component\n />\n" }]
|
|
443
441
|
}], ctorParameters: () => [], propDecorators: { autocomplete: [{
|
|
444
442
|
type: Input
|
|
445
443
|
}], autocorrect: [{
|
|
@@ -490,4 +488,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
490
488
|
type: HostListener,
|
|
491
489
|
args: ["window:toggleSearchbarVisibility", ['$event']]
|
|
492
490
|
}] } });
|
|
493
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9zZWFyY2hiYXIvc2VhcmNoYmFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9zZWFyY2hiYXIvc2VhcmNoYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUcsWUFBWSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzlGLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzVELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNqRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDekQsT0FBTyxLQUFLLFFBQVEsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sVUFBVSxDQUFDOzs7QUFFcEM7Ozs7Ozs7Ozs7OztHQVlHO0FBUUgsTUFBTSxPQUFPLGtCQUFtQixTQUFRLGdCQUFnQjtJQTRRdEQ7Ozs7Ozs7T0FPRztJQUNIO1FBQ0UsS0FBSyxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFuUjlCOzs7OztXQUtHO1FBQ0gsV0FBVztRQUNYLGtEQUFrRDtRQUVsRDs7Ozs7Ozs7OztXQVVHO1FBRUgsaUJBQVksR0FBa0MsS0FBSyxDQUFDO1FBRXBEOzs7Ozs7Ozs7V0FTRztRQUVILGdCQUFXLEdBQWlCLEtBQUssQ0FBQztRQUVsQzs7Ozs7Ozs7O1dBU0c7UUFFSCxhQUFRLEdBQW9CLElBQUks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QkFjTixRQUFRO3NCQURQLEtBQUs7Z0JBZU4sZ0JBQWdCO3NCQURmLEtBQUs7Z0JBV04sU0FBUztzQkFEUixLQUFLO2dCQVdOLEtBQUs7c0JBREosS0FBSztnQkFXTixRQUFRO3NCQURQLEtBQUs7Z0JBV04sUUFBUTtzQkFEUCxLQUFLO2dCQVdOLFlBQVk7c0JBRFgsS0FBSztnQkFXTixTQUFTO3NCQURSLEtBQUs7Z0JBV04sV0FBVztzQkFEVixLQUFLO2dCQVdOLFVBQVU7c0JBRFQsS0FBSztnQkFXTixnQkFBZ0I7c0JBRGYsS0FBSztnQkFXTixlQUFlO3NCQURkLEtBQUs7Z0JBV04sVUFBVTtzQkFEVCxLQUFLO2dCQVdOLElBQUk7c0JBREgsS0FBSztnQkFXTixLQUFLO3NCQURKLEtBQUs7Z0JBV04sU0FBUztzQkFEUixLQUFLO2dCQVdOLFNBQVM7c0JBRFIsS0FBSztnQkFXTixPQUFPO3NCQUROLEtBQUs7Z0JBV04sWUFBWTtzQkFEWCxLQUFLO2dCQVdOLGlCQUFpQjtzQkFEaEIsS0FBSztnQkF3Qk4sV0FBVztzQkFEVixNQUFNO2dCQWdGUCxzQkFBc0I7c0JBRHJCLFlBQVk7dUJBQUMsa0NBQWtDLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsICBFdmVudEVtaXR0ZXIsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBdXRvY29tcGxldGVUeXBlcywgUHJlZGVmaW5lZENvbG9yc30gZnJvbSAnQGlvbmljL2NvcmUnO1xuaW1wb3J0IHsgU3RyaW5nT3JCb29sZWFuIH0gZnJvbSAnLi4vLi4vZW5naW5lL3R5cGVzJztcbmltcG9ydCB7d2luZG93RXZlbnRFbWl0dGVyfSBmcm9tICcuLi8uLi9oZWxwZXJzL3V0aWxzJztcbmltcG9ydCB7IEZvckFuZ3VsYXJNb2R1bGUgfSBmcm9tICcuLi8uLi9mb3ItYW5ndWxhci5tb2R1bGUnO1xuaW1wb3J0IHsgc3RyaW5nVG9Cb29sZWFuIH0gZnJvbSAnLi4vLi4vaGVscGVycy91dGlscyc7XG5pbXBvcnQgeyBOZ3hCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vZW5naW5lL05neEJhc2VDb21wb25lbnQnO1xuaW1wb3J0IHsgSW9uU2VhcmNoYmFyIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXIvc3RhbmRhbG9uZSc7XG5pbXBvcnQgKiBhcyBhbGxJY29ucyBmcm9tICdpb25pY29ucy9pY29ucyc7XG5pbXBvcnQgeyBhZGRJY29ucyB9IGZyb20gJ2lvbmljb25zJztcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gU2VhcmNoYmFyIGNvbXBvbmVudCBmb3IgQW5ndWxhciBhcHBsaWNhdGlvbnMuXG4gKiBAc3VtbWFyeSBUaGUgU2VhcmNoYmFyQ29tcG9uZW50IHByb3ZpZGVzIGEgaGlnaGx5IGN1c3RvbWl6YWJsZSBzZWFyY2ggaW5wdXQgZmllbGQgd2l0aCBjb21wcmVoZW5zaXZlXG4gKiBvcHRpb25zIGZvciBhcHBlYXJhbmNlLCBiZWhhdmlvciwgYW5kIGludGVyYWN0aW9uIHBhdHRlcm5zLiBJdCBleHRlbmRzIE5neEJhc2VDb21wb25lbnQgdG8gaW5oZXJpdFxuICogY29tbW9uIGZ1bmN0aW9uYWxpdHkgYW5kIGltcGxlbWVudHMgT25Jbml0IGZvciBwcm9wZXIgbGlmZWN5Y2xlIG1hbmFnZW1lbnQuIFRoaXMgY29tcG9uZW50IGZlYXR1cmVzXG4gKiBkZWJvdW5jZWQgaW5wdXQgaGFuZGxpbmcsIHdpbmRvdyBldmVudCBpbnRlZ3JhdGlvbiwgdmlzaWJpbGl0eSBjb250cm9scywgYW5kIGV4dGVuc2l2ZSBzdHlsaW5nIG9wdGlvbnMuXG4gKiBJdCdzIGRlc2lnbmVkIHRvIGJlIGZsZXhpYmxlIGFuZCBhZGFwdGFibGUgdG8gZGlmZmVyZW50IHNlYXJjaCByZXF1aXJlbWVudHMgd2l0aGluIG1vZGVybiB3ZWIgYXBwbGljYXRpb25zLlxuICpcbiAqIEBjbGFzcyBTZWFyY2hiYXJDb21wb25lbnRcbiAqIEBleHRlbmRzIHtOZ3hCYXNlQ29tcG9uZW50fVxuICogQGltcGxlbWVudHMge09uSW5pdH1cbiAqIEBtZW1iZXJPZiBTZWFyY2hiYXJDb21wb25lbnRcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbmd4LWRlY2FmLXNlYXJjaGJhcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWFyY2hiYXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zZWFyY2hiYXIuY29tcG9uZW50LnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0ZvckFuZ3VsYXJNb2R1bGUsIElvblNlYXJjaGJhcl0sXG59KVxuZXhwb3J0IGNsYXNzIFNlYXJjaGJhckNvbXBvbmVudCBleHRlbmRzIE5neEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gVGhlIG1vZGUgb2YgdGhlIHNlYXJjaGJhci5cbiAgICogQHN1bW1hcnkgRGV0ZXJtaW5lcyB0aGUgdmlzdWFsIHN0eWxlIG9mIHRoZSBzZWFyY2hiYXIsIGVpdGhlciBpT1Mgb3IgTWF0ZXJpYWwgRGVzaWduLlxuICAgKiBAdHlwZSB7XCJpb3NcIiB8IFwibWRcIiB8IHVuZGVmaW5lZH1cbiAgICogQGRlZmF1bHQgXCJpb3NcIlxuICAgKi9cbiAgLy8gQElucHV0KClcbiAgLy8gb3ZlcnJpZGUgbW9kZTogXCJpb3NcIiB8IFwibWRcIiB8IHVuZGVmaW5lZCA9IFwibWRcIjtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFRoZSBhdXRvY29tcGxldGUgYXR0cmlidXRlIGZvciB0aGUgc2VhcmNoYmFyIGlucHV0LlxuICAgKiBAc3VtbWFyeSBTcGVjaWZpZXMgd2hldGhlciB0aGUgYnJvd3NlciBzaG91bGQgZW5hYmxlIGF1dG9jb21wbGV0ZSBmb3IgdGhlIGlucHV0IGZpZWxkLlxuICAgKiBUaGlzIGNvbnRyb2xzIHRoZSBicm93c2VyJ3MgYnVpbHQtaW4gYXV0b2NvbXBsZXRlIGZ1bmN0aW9uYWxpdHksIGhlbHBpbmcgdXNlcnMgYnlcbiAgICogc3VnZ2VzdGluZyBwcmV2aW91c2x5IGVudGVyZWQgdmFsdWVzIG9yIGNvbW1vbiBpbnB1dHMuIFNldHRpbmcgdG8gJ29mZicgZGlzYWJsZXNcbiAgICogdGhpcyBmZWF0dXJlIGZvciBwcml2YWN5IG9yIHNlY3VyaXR5IHJlYXNvbnMuXG4gICAqXG4gICAqIEB0eXBlIHtBdXRvY29tcGxldGVUeXBlcyB8IHVuZGVmaW5lZH1cbiAgICogQGRlZmF1bHQgXCJvZmZcIlxuICAgKiBAbWVtYmVyT2YgU2VhcmNoYmFyQ29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKVxuICBhdXRvY29tcGxldGU6IEF1dG9jb21wbGV0ZVR5cGVzIHwgdW5kZWZpbmVkID0gXCJvZmZcIjtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFRoZSBhdXRvY29ycmVjdCBhdHRyaWJ1dGUgZm9yIHRoZSBzZWFyY2hiYXIgaW5wdXQuXG4gICAqIEBzdW1tYXJ5IENvbnRyb2xzIHdoZXRoZXIgdGhlIGJyb3dzZXIgc2hvdWxkIGVuYWJsZSBhdXRvY29ycmVjdCBmdW5jdGlvbmFsaXR5IGZvciB0aGUgaW5wdXQgZmllbGQuXG4gICAqIFdoZW4gZW5hYmxlZCwgdGhlIGJyb3dzZXIgd2lsbCBhdXRvbWF0aWNhbGx5IGNvcnJlY3Qgc3BlbGxpbmcgbWlzdGFrZXMgYXMgdGhlIHVzZXIgdHlwZXMuXG4gICAqIFRoaXMgaXMgdHlwaWNhbGx5IGRpc2FibGVkIGZvciBzZWFyY2ggZmllbGRzIHRvIHByZXNlcnZlIHRoZSB1c2VyJ3MgZXhhY3Qgc2VhcmNoIHRlcm1zLlxuICAgKlxuICAgKiBAdHlwZSB7XCJvblwiIHwgXCJvZmZcIn1cbiAgICogQGRlZmF1bHQgXCJvZmZcIlxuICAgKiBAbWVtYmVyT2YgU2VhcmNoYmFyQ29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKVxuICBhdXRvY29ycmVjdDogXCJvblwiIHwgXCJvZmZcIiA9IFwib2ZmXCI7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBXaGV0aGVyIHRoZSBzZWFyY2hiYXIgc2hvdWxkIGFuaW1hdGUuXG4gICAqIEBzdW1tYXJ5IENvbnRyb2xzIHRoZSBhbmltYXRpb24gYmVoYXZpb3Igb2YgdGhlIHNlYXJjaGJhciBkdXJpbmcgYXBwZWFyYW5jZSBhbmQgZGlzYXBwZWFyYW5jZSB0cmFuc2l0aW9ucy5cbiAgICogV2hlbiBlbmFibGVkLCB0aGUgc2VhcmNoYmFyIHdpbGwgdXNlIHNtb290aCBhbmltYXRpb25zIGZvciBzdGF0ZSBjaGFuZ2VzLCBwcm92aWRpbmcgYSBtb3JlXG4gICAqIHBvbGlzaGVkIHVzZXIgZXhwZXJpZW5jZS4gVGhpcyBhZmZlY3RzIHRyYW5zaXRpb25zIGxpa2Ugc2hvd2luZy9oaWRpbmcgdGhlIGNvbXBvbmVudC5cbiAgICpcbiAgICogQHR5cGUge1N0cmluZ09yQm9vbGVhbn1cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKiBAbWVtYmVyT2YgU2VhcmNoYmFyQ29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKVxuICBhbmltYXRlZDogU3RyaW5nT3JCb29sZWFuID0gdHJ1ZTtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFRoZSB0ZXh0IGZvciB0aGUgY2FuY2VsIGJ1dHRvbi5cbiAgICogQHN1bW1hcnkgU3BlY2lmaWVzIHRoZSBsb2NhbGl6ZWQgdGV4dCB0byBiZSBkaXNwbGF5ZWQgb24gdGhlIGNhbmNlbCBidXR0b24gb2YgdGhlIHNlYXJjaGJhci5cbiAgICogVGhpcyB0ZXh0IGFwcGVhcnMgd2hlbiB0aGUgY2FuY2VsIGJ1dHRvbiBpcyB2aXNpYmxlIGFuZCBwcm92aWRlcyB1c2VycyB3aXRoIGEgY2xlYXJcbiAgICogaW5kaWNhdGlvbiBvZiBob3cgdG8gZGlzbWlzcyB0aGUgc2VhcmNoIGludGVyZmFjZS4gVGhlIHRleHQgY2FuIGJlIGN1c3RvbWl6ZWQgZm9yXG4gICAqIGRpZmZlcmVudCBsYW5ndWFnZXMgYW5kIGN1bHR1cmFsIGNvbnRleHRzLlxuICAgKlxuICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgKiBAZGVmYXVsdCBcIkNhbmNlbFwiXG4gICAqIEBtZW1iZXJPZiBTZWFyY2hiYXJDb21wb25lbnRcbiAgICovXG4gIEBJbnB1dCgpXG4gIGJ1dHRvbkNhbmNlbFRleHQ6IHN0cmluZyA9IFwiQ2FuY2VsXCI7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBUaGUgaWNvbiB0byB1c2UgZm9yIHRoZSBjbGVhciBidXR0b24uXG4gICAqIEBzdW1tYXJ5IFNwZWNpZmllcyB0aGUgaWNvbiB0byBiZSBkaXNwbGF5ZWQgZm9yIHRoZSBjbGVhciBidXR0b24gb2YgdGhlIHNlYXJjaGJhci5cbiAgICogQHR5cGUge3N0cmluZyB8IHVuZGVmaW5lZH1cbiAgICogQGRlZmF1bHQgdW5kZWZpbmVkXG4gICAqIEBtZW1iZXJPZiBTZWFyY2hiYXJDb21wb25lbnRcbiAgICovXG4gIEBJbnB1dCgpXG4gIGNsZWFySWNvbjogc3RyaW5nIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gVGhlIGNvbG9yIG9mIHRoZSBzZWFyY2hiYXIuXG4gICAqIEBzdW1tYXJ5IFNwZWNpZmllcyB0aGUgY29sb3IgdGhlbWUgdG8gYmUgYXBwbGllZCB0byB0aGUgc2VhcmNoYmFyLlxuICAgKiBAdHlwZSB7c3RyaW5nIHwgdW5kZWZpbmVkfVxuICAgKiBAZGVmYXVsdCB1bmRlZmluZWRcbiAgICogQG1lbWJlck9mIFNlYXJjaGJhckNvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KClcbiAgY29sb3I6IHN0cmluZyB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFRoZSBhbW91bnQgb2YgdGltZSwgaW4gbWlsbGlzZWNvbmRzLCB0byB3YWl0IHRvIHRyaWdnZXIgdGhlIGBpb25DaGFuZ2VgIGV2ZW50IGFmdGVyIGVhY2gga2V5c3Ryb2tlLlxuICAgKiBAc3VtbWFyeSBDb250cm9scyB0aGUgZGVib3VuY2UgdGltZSBmb3IgdGhlIHNlYXJjaCBpbnB1dCB0byByZWR1Y2UgdGhlIGZyZXF1ZW5jeSBvZiBldmVudCBlbWlzc2lvbnMuXG4gICAqIEB0eXBlIHtudW1iZXJ9XG4gICAqIEBkZWZhdWx0IDUwMFxuICAgKiBAbWVtYmVyT2YgU2VhcmNoYmFyQ29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKVxuICBkZWJvdW5jZTogbnVtYmVyID0gNTAwO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gV2hldGhlciB0aGUgc2VhcmNoYmFyIGlzIGRpc2FibGVkLlxuICAgKiBAc3VtbWFyeSBDb250cm9scyB3aGV0aGVyIHRoZSBzZWFyY2hiYXIgaXMgaW50ZXJhY3RpdmUgb3Igbm90LlxuICAgKiBAdHlwZSB7U3RyaW5nT3JCb29sZWFufVxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKiBAbWVtYmVyT2YgU2VhcmNoYmFyQ29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKVxuICBkaXNhYmxlZDogU3RyaW5nT3JCb29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBBIGhpbnQgdG8gdGhlIGJyb3dzZXIgZm9yIHdoaWNoIGVudGVyIGtleSB0byBkaXNwbGF5LlxuICAgKiBAc3VtbWFyeSBTcGVjaWZpZXMgdGhlIHR5cGUgb2YgYWN0aW9uIHRoYXQgd2lsbCBiZSBwZXJmb3JtZWQgd2hlbiB0aGUgZW50ZXIga2V5IGlzIHByZXNzZWQuXG4gICAqIEB0eXBlIHtcInNlYXJjaFwiIHwgXCJlbnRlclwiIHwgXCJkb25lXCIgfCBcImdvXCIgfCBcIm5leHRcIiB8IFwicHJldmlvdXNcIiB8IFwic2VuZFwiIHwgdW5kZWZpbmVkfVxuICAgKiBAZGVmYXVsdCBcImVudGVyXCJcbiAgICogQG1lbWJlck9mIFNlYXJjaGJhckNvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KClcbiAgZW50ZXJrZXloaW50OiBcInNlYXJjaFwiIHwgXCJlbnRlclwiIHwgXCJkb25lXCIgfCBcImdvXCIgfCBcIm5leHRcIiB8IFwicHJldmlvdXNcIiB8IFwic2VuZFwiIHwgdW5kZWZpbmVkID0gXCJlbnRlclwiO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gVGhlIGlucHV0IG1vZGUgZm9yIHRoZSBzZWFyY2hiYXIuXG4gICAqIEBzdW1tYXJ5IFNwZWNpZmllcyB0aGUgdHlwZSBvZiBkYXRhIHRoYXQgbWlnaHQgYmUgZW50ZXJlZCBieSB0aGUgdXNlciB3aGlsZSBlZGl0aW5nIHRoZSBlbGVtZW50IG9yIGl0cyBjb250ZW50cy5cbiAgICogQHR5cGUge1widGV4dFwiIHwgXCJzZWFyY2hcIiB8IFwibm9uZVwiIHwgXCJlbWFpbFwiIHwgXCJ0ZWxcIiB8IFwidXJsXCIgfCBcIm51bWVyaWNcIiB8IFwiZGVjaW1hbFwiIHwgdW5kZWZpbmVkfVxuICAgKiBAZGVmYXVsdCAnc2VhcmNoJ1xuICAgKiBAbWVtYmVyT2YgU2VhcmNoYmFyQ29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKVxuICBpbnB1dG1vZGU6IFwidGV4dFwiIHwgXCJzZWFyY2hcIiB8IFwibm9uZVwiIHwgXCJlbWFpbFwiIHwgXCJ0ZWxcIiB8IFwidXJsXCIgfCBcIm51bWVyaWNcIiB8IFwiZGVjaW1hbFwiIHwgdW5kZWZpbmVkID0gJ3NlYXJjaCc7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBUaGUgcGxhY2Vob2xkZXIgZm9yIHRoZSBzZWFyY2hiYXIgaW5wdXQuXG4gICAqIEBzdW1tYXJ5IFNwZWNpZmllcyB0aGUgcGxhY2Vob2xkZXIgdGV4dCB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIHNlYXJjaGJhciB3aGVuIGl0J3MgZW1wdHkuXG4gICAqIEB0eXBlIHtzdHJpbmd9XG4gICAqIEBkZWZhdWx0IFwiU2VhcmNoXCJcbiAgICogQG1lbWJlck9mIFNlYXJjaGJhckNvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KClcbiAgcGxhY2Vob2xkZXIgPSBcIlNlYXJjaFwiO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gVGhlIGljb24gdG8gdXNlIGZvciB0aGUgc2VhcmNoIGJ1dHRvbi5cbiAgICogQHN1bW1hcnkgU3BlY2lmaWVzIHRoZSBpY29uIHRvIGJlIGRpc3BsYXllZCBmb3IgdGhlIHNlYXJjaCBidXR0b24gb2YgdGhlIHNlYXJjaGJhci5cbiAgICogQHR5cGUge3N0cmluZyB8IHVuZGVmaW5lZH1cbiAgICogQGRlZmF1bHQgXCJzZWFyY2gtb3V0bGluZVwiXG4gICAqIEBtZW1iZXJPZiBTZWFyY2hiYXJDb21wb25lbnRcbiAgICovXG4gIEBJbnB1dCgpXG4gIHNlYXJjaEljb246IHN0cmluZyB8IHVuZGVmaW5lZCA9IFwic2VhcmNoLW91dGxpbmVcIjtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFdoZW4gdG8gc2hvdyB0aGUgY2FuY2VsIGJ1dHRvbi5cbiAgICogQHN1bW1hcnkgQ29udHJvbHMgdGhlIHZpc2liaWxpdHkgb2YgdGhlIGNhbmNlbCBidXR0b24gaW4gZGlmZmVyZW50IHN0YXRlcyBvZiB0aGUgc2VhcmNoYmFyLlxuICAgKiBAdHlwZSB7XCJhbHdheXNcIiB8IFwiZm9jdXNcIiB8IFwibmV2ZXJcIn1cbiAgICogQGRlZmF1bHQgXCJuZXZlclwiXG4gICAqIEBtZW1iZXJPZiBTZWFyY2hiYXJDb21wb25lbnRcbiAgICovXG4gIEBJbnB1dCgpXG4gIHNob3dDYW5jZWxCdXR0b246IFwiYWx3YXlzXCIgfCBcImZvY3VzXCIgfCBcIm5ldmVyXCIgPSBcIm5ldmVyXCI7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBXaGVuIHRvIHNob3cgdGhlIGNsZWFyIGJ1dHRvbi5cbiAgICogQHN1bW1hcnkgQ29udHJvbHMgdGhlIHZpc2liaWxpdHkgb2YgdGhlIGNsZWFyIGJ1dHRvbiBpbiBkaWZmZXJlbnQgc3RhdGVzIG9mIHRoZSBzZWFyY2hiYXIuXG4gICAqIEB0eXBlIHtcImFsd2F5c1wiIHwgXCJmb2N1c1wiIHwgXCJuZXZlclwifVxuICAgKiBAZGVmYXVsdCBcImZvY3VzXCJcbiAgICogQG1lbWJlck9mIFNlYXJjaGJhckNvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KClcbiAgc2hvd0NsZWFyQnV0dG9uOiBcImFsd2F5c1wiIHwgXCJmb2N1c1wiIHwgXCJuZXZlclwiID0gXCJmb2N1c1wiO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gV2hldGhlciB0byBlbmFibGUgc3BlbGxjaGVjayBvbiB0aGUgc2VhcmNoYmFyIGlucHV0LlxuICAgKiBAc3VtbWFyeSBDb250cm9scyB3aGV0aGVyIHRoZSBicm93c2VyJ3Mgc3BlbGxjaGVjayBmZWF0dXJlIGlzIGVuYWJsZWQgZm9yIHRoZSBzZWFyY2hiYXIgaW5wdXQuXG4gICAqIEB0eXBlIHtib29sZWFufVxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKiBAbWVtYmVyT2YgU2VhcmNoYmFyQ29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKVxuICBzcGVsbGNoZWNrOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBUaGUgdHlwZSBvZiBpbnB1dCB0byB1c2UgZm9yIHRoZSBzZWFyY2hiYXIuXG4gICAqIEBzdW1tYXJ5IFNwZWNpZmllcyB0aGUgdHlwZSBvZiBjb250cm9sIHRvIGRpc3BsYXkgZm9yIHRoZSBzZWFyY2hiYXIgaW5wdXQuXG4gICAqIEB0eXBlIHtcIm51bWJlclwiIHwgXCJ0ZXh0XCIgfCBcInNlYXJjaFwiIHwgXCJlbWFpbFwiIHwgXCJwYXNzd29yZFwiIHwgXCJ0ZWxcIiB8IFwidXJsXCIgfCB1bmRlZmluZWR9XG4gICAqIEBkZWZhdWx0IFwic2VhcmNoXCJcbiAgICogQG1lbWJlck9mIFNlYXJjaGJhckNvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KClcbiAgdHlwZTogXCJudW1iZXJcIiB8IFwidGV4dFwiIHwgXCJzZWFyY2hcIiB8IFwiZW1haWxcIiB8IFwicGFzc3dvcmRcIiB8IFwidGVsXCIgfCBcInVybFwiIHwgdW5kZWZpbmVkID0gXCJzZWFyY2hcIjtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFRoZSB2YWx1ZSBvZiB0aGUgc2VhcmNoYmFyIGlucHV0LlxuICAgKiBAc3VtbWFyeSBTcGVjaWZpZXMgdGhlIGN1cnJlbnQgdmFsdWUgb2YgdGhlIHNlYXJjaGJhciBpbnB1dC5cbiAgICogQHR5cGUge251bGwgfCBzdHJpbmcgfCB1bmRlZmluZWR9XG4gICAqIEBkZWZhdWx0IFwiXCJcbiAgICogQG1lbWJlck9mIFNlYXJjaGJhckNvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KClcbiAgdmFsdWU6IG51bGwgfCBzdHJpbmcgfCB1bmRlZmluZWQgPSBcIlwiO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gVGhlIGtleXMgdG8gdXNlIGZvciBxdWVyeWluZy5cbiAgICogQHN1bW1hcnkgU3BlY2lmaWVzIHRoZSBrZXlzIHRvIGJlIHVzZWQgd2hlbiBwZXJmb3JtaW5nIGEgc2VhcmNoIHF1ZXJ5LlxuICAgKiBAdHlwZSB7c3RyaW5nIHwgc3RyaW5nW119XG4gICAqIEBkZWZhdWx0IFwibmFtZVwiXG4gICAqIEBtZW1iZXJPZiBTZWFyY2hiYXJDb21wb25lbnRcbiAgICovXG4gIEBJbnB1dCgpXG4gIHF1ZXJ5S2V5czogc3RyaW5nIHwgc3RyaW5nW10gPSBcIm5hbWVcIjtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFdoZXRoZXIgdGhlIHNlYXJjaGJhciBpcyB2aXNpYmxlLlxuICAgKiBAc3VtbWFyeSBDb250cm9scyB0aGUgdmlzaWJpbGl0eSBvZiB0aGUgc2VhcmNoYmFyIGNvbXBvbmVudC5cbiAgICogQHR5cGUge1N0cmluZ09yQm9vbGVhbn1cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICogQG1lbWJlck9mIFNlYXJjaGJhckNvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KClcbiAgaXNWaXNpYmxlOiBTdHJpbmdPckJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFdoZXRoZXIgdG8gd3JhcCB0aGUgc2VhcmNoYmFyIGluIGEgY29udGFpbmVyLlxuICAgKiBAc3VtbWFyeSBDb250cm9scyB3aGV0aGVyIHRoZSBzZWFyY2hiYXIgaXMgd3JhcHBlZCBpbiBhbiBhZGRpdGlvbmFsIGNvbnRhaW5lciBlbGVtZW50LlxuICAgKiBAdHlwZSB7U3RyaW5nT3JCb29sZWFufVxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKiBAbWVtYmVyT2YgU2VhcmNoYmFyQ29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKVxuICB3cmFwcGVyOiBTdHJpbmdPckJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFRoZSBjb2xvciBvZiB0aGUgd3JhcHBlci5cbiAgICogQHN1bW1hcnkgU3BlY2lmaWVzIHRoZSBjb2xvciB0aGVtZSB0byBiZSBhcHBsaWVkIHRvIHRoZSB3cmFwcGVyIGNvbnRhaW5lciwgaWYgcHJlc2VudC5cbiAgICogQHR5cGUge1ByZWRlZmluZWRDb2xvcnN9XG4gICAqIEBkZWZhdWx0IFwicHJpbWFyeVwiXG4gICAqIEBtZW1iZXJPZiBTZWFyY2hiYXJDb21wb25lbnRcbiAgICovXG4gIEBJbnB1dCgpXG4gIHdyYXBwZXJDb2xvcjogUHJlZGVmaW5lZENvbG9ycyA9IFwicHJpbWFyeVwiO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gV2hldGhlciB0byBlbWl0IGV2ZW50cyB0byB0aGUgd2luZG93LlxuICAgKiBAc3VtbWFyeSBDb250cm9scyB3aGV0aGVyIHNlYXJjaCBldmVudHMgc2hvdWxkIGJlIGVtaXR0ZWQgYXMgd2luZG93IGV2ZW50cy5cbiAgICogQHR5cGUge1N0cmluZ09yQm9vbGVhbn1cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKiBAbWVtYmVyT2YgU2VhcmNoYmFyQ29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKVxuICBlbWl0RXZlbnRUb1dpbmRvdzogU3RyaW5nT3JCb29sZWFuID0gdHJ1ZTtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFRoZSBjdXJyZW50IHZhbHVlIG9mIHRoZSBzZWFyY2hiYXIuXG4gICAqIEBzdW1tYXJ5IFN0b3JlcyB0aGUgY3VycmVudCB2YWx1ZSBvZiB0aGUgc2VhcmNoYmFyIGlucHV0IGZvciBpbnRlcm5hbCBzdGF0ZSBtYW5hZ2VtZW50IGFuZCBwcm9jZXNzaW5nLlxuICAgKiBUaGlzIHByb3BlcnR5IGlzIHVzZWQgdG8gdHJhY2sgdGhlIHNlYXJjaCB0ZXJtIHRocm91Z2hvdXQgdGhlIGNvbXBvbmVudCdzIGxpZmVjeWNsZSBhbmRcbiAgICogY29vcmRpbmF0ZSBiZXR3ZWVuIGRpZmZlcmVudCBldmVudCBoYW5kbGVycyBhbmQgbWV0aG9kcy5cbiAgICpcbiAgICogQHR5cGUge3N0cmluZyB8IHVuZGVmaW5lZH1cbiAgICogQG1lbWJlck9mIFNlYXJjaGJhckNvbXBvbmVudFxuICAgKi9cbiAgY3VycmVudFZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBFdmVudCBlbWl0dGVyIGZvciBzZWFyY2ggZXZlbnRzLlxuICAgKiBAc3VtbWFyeSBFbWl0cyBzZWFyY2ggZXZlbnRzIHdoZW4gdGhlIHVzZXIgaW50ZXJhY3RzIHdpdGggdGhlIHNlYXJjaGJhciwgcHJvdmlkaW5nIGEgcmVhY3RpdmVcbiAgICogaW50ZXJmYWNlIGZvciBwYXJlbnQgY29tcG9uZW50cyB0byByZXNwb25kIHRvIHNlYXJjaCBhY3Rpb25zLiBUaGlzIGV2ZW50IGlzIHRyaWdnZXJlZCBieVxuICAgKiB2YXJpb3VzIHVzZXIgaW50ZXJhY3Rpb25zIGluY2x1ZGluZyB0eXBpbmcsIGNsZWFyaW5nLCBhbmQgZXhwbGljaXQgc2VhcmNoIGFjdGlvbnMuXG4gICAqXG4gICAqIEB0eXBlIHtFdmVudEVtaXR0ZXI8c3RyaW5nPn1cbiAgICogQG1lbWJlck9mIFNlYXJjaGJhckNvbXBvbmVudFxuICAgKi9cbiAgQE91dHB1dCgpXG4gIHNlYXJjaEV2ZW50OiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQ3JlYXRlcyBhbiBpbnN0YW5jZSBvZiBTZWFyY2hiYXJDb21wb25lbnQuXG4gICAqIEBzdW1tYXJ5IEluaXRpYWxpemVzIHRoZSBTZWFyY2hiYXJDb21wb25lbnQgd2l0aCBhbGwgbmVjZXNzYXJ5IGRlcGVuZGVuY2llcyBhbmQgY29uZmlndXJhdGlvbnMuXG4gICAqIER1cmluZyBpbml0aWFsaXphdGlvbiwgaXQgYWRkcyBhbGwgYXZhaWxhYmxlIElvbmljb25zIHRvIHRoZSBhcHBsaWNhdGlvbidzIGljb24gcmVnaXN0cnksXG4gICAqIGVuc3VyaW5nIHRoYXQgc2VhcmNoIGFuZCBjbGVhciBpY29ucyBhcmUgYXZhaWxhYmxlIGZvciB1c2UgdGhyb3VnaG91dCB0aGUgY29tcG9uZW50J3MgbGlmZWN5Y2xlLlxuICAgKlxuICAgKiBAbWVtYmVyT2YgU2VhcmNoYmFyQ29tcG9uZW50XG4gICAqL1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcignU2VhcmNoYmFyQ29tcG9uZW50Jyk7XG4gICAgYWRkSWNvbnMoYWxsSWNvbnMpXG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEluaXRpYWxpemVzIHRoZSBjb21wb25lbnQgYWZ0ZXIgQW5ndWxhciBmaXJzdCBkaXNwbGF5cyB0aGUgZGF0YS1ib3VuZCBwcm9wZXJ0aWVzLlxuICAgKiBAc3VtbWFyeSBQZXJmb3JtcyBlc3NlbnRpYWwgY29tcG9uZW50IGluaXRpYWxpemF0aW9uIGJ5IGNvbnZlcnRpbmcgc3RyaW5nLWJhc2VkIGJvb2xlYW4gaW5wdXRzXG4gICAqIHRvIHByb3BlciBib29sZWFuIHZhbHVlcyB1c2luZyB0aGUgc3RyaW5nVG9Cb29sZWFuIHV0aWxpdHkuIFRoaXMgZW5zdXJlcyB0aGF0IGFsbCBib29sZWFuXG4gICAqIHByb3BlcnRpZXMgd29yayBjb3JyZWN0bHkgcmVnYXJkbGVzcyBvZiBob3cgdGhleSB3ZXJlIHBhc3NlZCBmcm9tIHBhcmVudCBjb21wb25lbnRzIG9yIHRlbXBsYXRlcy5cbiAgICpcbiAgICogQHJldHVybiB7dm9pZH1cbiAgICpcbiAgICogQG1lcm1haWRcbiAgICogc2VxdWVuY2VEaWFncmFtXG4gICAqICAgcGFydGljaXBhbnQgQSBhcyBBbmd1bGFyIExpZmVjeWNsZVxuICAgKiAgIHBhcnRpY2lwYW50IFMgYXMgU2VhcmNoYmFyQ29tcG9uZW50XG4gICAqICAgcGFydGljaXBhbnQgVSBhcyBVdGlsaXR5IEZ1bmN0aW9uc1xuICAgKlxuICAgKiAgIEEtPj5TOiBuZ09uSW5pdCgpXG4gICAqICAgUy0+PlU6IHN0cmluZ1RvQm9vbGVhbihlbWl0RXZlbnRUb1dpbmRvdylcbiAgICogICBVLS0+PlM6IGJvb2xlYW4gdmFsdWVcbiAgICogICBTLT4+VTogc3RyaW5nVG9Cb29sZWFuKHdyYXBwZXIpXG4gICAqICAgVS0tPj5TOiBib29sZWFuIHZhbHVlXG4gICAqICAgUy0+PlU6IHN0cmluZ1RvQm9vbGVhbihpc1Zpc2libGUpXG4gICAqICAgVS0tPj5TOiBib29sZWFuIHZhbHVlXG4gICAqICAgUy0+PlU6IHN0cmluZ1RvQm9vbGVhbihkaXNhYmxlZClcbiAgICogICBVLS0+PlM6IGJvb2xlYW4gdmFsdWVcbiAgICogICBTLT4+VTogc3RyaW5nVG9Cb29sZWFuKGFuaW1hdGVkKVxuICAgKiAgIFUtLT4+UzogYm9vbGVhbiB2YWx1ZVxuICAgKiAgIE5vdGUgb3ZlciBTOiBDb21wb25lbnQgcmVhZHkgZm9yIGludGVyYWN0aW9uXG4gICAqXG4gICAqIEBtZW1iZXJPZiBTZWFyY2hiYXJDb21wb25lbnRcbiAgICovXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZW1pdEV2ZW50VG9XaW5kb3cgPSBzdHJpbmdUb0Jvb2xlYW4odGhpcy5lbWl0RXZlbnRUb1dpbmRvdyk7XG4gICAgdGhpcy53cmFwcGVyID0gc3RyaW5nVG9Cb29sZWFuKHRoaXMud3JhcHBlcik7XG4gICAgdGhpcy5pc1Zpc2libGUgPSBzdHJpbmdUb0Jvb2xlYW4odGhpcy5pc1Zpc2libGUpO1xuICAgIHRoaXMuZGlzYWJsZWQgPSBzdHJpbmdUb0Jvb2xlYW4odGhpcy5kaXNhYmxlZCk7XG4gICAgdGhpcy5hbmltYXRlZCA9IHN0cmluZ1RvQm9vbGVhbih0aGlzLmFuaW1hdGVkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gSGFuZGxlcyB0aGUgdmlzaWJpbGl0eSB0b2dnbGUgb2YgdGhlIHNlYXJjaGJhciBjb21wb25lbnQuXG4gICAqIEBzdW1tYXJ5IExpc3RlbnMgZm9yIGdsb2JhbCB3aW5kb3cgZXZlbnRzIHRvIHRvZ2dsZSB0aGUgdmlzaWJpbGl0eSBzdGF0ZSBvZiB0aGUgc2VhcmNoYmFyLlxuICAgKiBXaGVuIHRoZSBzZWFyY2hiYXIgYmVjb21lcyB2aXNpYmxlLCBpdCBhdXRvbWF0aWNhbGx5IGZvY3VzZXMgb24gdGhlIGlucHV0IGZpZWxkIGFmdGVyIGEgYnJpZWZcbiAgICogZGVsYXkgdG8gZW5zdXJlIHNtb290aCBhbmltYXRpb24gY29tcGxldGlvbi4gVGhpcyBwcm92aWRlcyBhIHNlYW1sZXNzIHVzZXIgZXhwZXJpZW5jZSBmb3JcbiAgICogc2VhcmNoIGFjdGl2YXRpb24gdGhyb3VnaCBrZXlib2FyZCBzaG9ydGN1dHMgb3IgcHJvZ3JhbW1hdGljIHRyaWdnZXJzLlxuICAgKlxuICAgKiBAcGFyYW0ge0N1c3RvbUV2ZW50fSBldmVudCAtIFRoZSBjdXN0b20gZXZlbnQgdHJpZ2dlcmluZyB0aGUgdmlzaWJpbGl0eSB0b2dnbGUgKHVudXNlZCBidXQgcmVxdWlyZWQgYnkgSG9zdExpc3RlbmVyKVxuICAgKiBAcmV0dXJuIHt2b2lkfVxuICAgKlxuICAgKiBAbWVybWFpZFxuICAgKiBzZXF1ZW5jZURpYWdyYW1cbiAgICogICBwYXJ0aWNpcGFudCBXIGFzIFdpbmRvd1xuICAgKiAgIHBhcnRpY2lwYW50IFMgYXMgU2VhcmNoYmFyQ29tcG9uZW50XG4gICAqICAgcGFydGljaXBhbnQgRSBhcyBET00gRWxlbWVudFxuICAgKlxuICAgKiAgIFctPj5TOiB0b2dnbGVTZWFyY2hiYXJWaXNpYmlsaXR5IGV2ZW50XG4gICAqICAgUy0+PlM6IGhhbmRsZVRvZ2dsZVZpc2liaWxpdHkoKVxuICAgKiAgIFMtPj5TOiBUb2dnbGUgaXNWaXNpYmxlIHN0YXRlXG4gICAqICAgYWx0IGlzVmlzaWJsZSBpcyB0cnVlIEFORCBjb21wb25lbnQgZXhpc3RzXG4gICAqICAgICBTLT4+Uzogc2V0VGltZW91dCgxMjVtcylcbiAgICogICAgIFMtPj5FOiBzZXRGb2N1cygpIG9uIGlvbi1zZWFyY2hiYXJcbiAgICogICBlbmRcbiAgICpcbiAgICogQG1lbWJlck9mIFNlYXJjaGJhckNvbXBvbmVudFxuICAgKi9cbiAgQEhvc3RMaXN0ZW5lcihcIndpbmRvdzp0b2dnbGVTZWFyY2hiYXJWaXNpYmlsaXR5XCIsIFsnJGV2ZW50J10pXG4gIGhhbmRsZVRvZ2dsZVZpc2liaWxpdHkoKTogdm9pZCB7XG4gICAgdGhpcy5pc1Zpc2libGUgPSAhdGhpcy5pc1Zpc2libGU7XG4gICAgaWYodGhpcy5pc1Zpc2libGUgJiYgISF0aGlzLmNvbXBvbmVudC5uYXRpdmVFbGVtZW50KSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgKHRoaXMuY29tcG9uZW50Lm5hdGl2ZUVsZW1lbnQgYXMgSFRNTElvblNlYXJjaGJhckVsZW1lbnQpLnNldEZvY3VzKCk7XG4gICAgICB9LCAxMjUpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gVHJpZ2dlcnMgYSBtYW51YWwgc2VhcmNoIGV2ZW50IHdpdGggdGhlIGN1cnJlbnQgc2VhcmNoYmFyIHZhbHVlLlxuICAgKiBAc3VtbWFyeSBSZXRyaWV2ZXMgdGhlIGN1cnJlbnQgdmFsdWUgZnJvbSB0aGUgc2VhcmNoYmFyJ3MgbmF0aXZlIGVsZW1lbnQgYW5kIGVtaXRzIGl0IGFzIGEgc2VhcmNoIGV2ZW50LlxuICAgKiBUaGlzIG1ldGhvZCBwcm92aWRlcyBhIHByb2dyYW1tYXRpYyB3YXkgdG8gdHJpZ2dlciBzZWFyY2ggZnVuY3Rpb25hbGl0eSwgdXNlZnVsIGZvciBleHRlcm5hbFxuICAgKiBjb21wb25lbnRzIG9yIGtleWJvYXJkIHNob3J0Y3V0cyB0aGF0IG5lZWQgdG8gZXhlY3V0ZSBzZWFyY2ggd2l0aG91dCB1c2VyIGludGVyYWN0aW9uIHdpdGggdGhlIHNlYXJjaGJhciBpdHNlbGYuXG4gICAqXG4gICAqIEByZXR1cm4ge3ZvaWR9XG4gICAqIEBtZW1iZXJPZiBTZWFyY2hiYXJDb21wb25lbnRcbiAgICovXG4gIHNlYXJjaCgpOiB2b2lkIHtcbiAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5jb21wb25lbnQubmF0aXZlRWxlbWVudCBhcyBIVE1MSW9uU2VhcmNoYmFyRWxlbWVudDtcbiAgICB0aGlzLnNlYXJjaEV2ZW50LmVtaXQoZWxlbWVudC52YWx1ZSB8fCB1bmRlZmluZWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBIYW5kbGVzIHZhbHVlIGNoYW5nZXMgaW4gdGhlIHNlYXJjaGJhciBpbnB1dCBmaWVsZC5cbiAgICogQHN1bW1hcnkgUHJvY2Vzc2VzIGNoYW5nZSBldmVudHMgZnJvbSB0aGUgSW9uaWMgc2VhcmNoYmFyIGNvbXBvbmVudCBhbmQgZXh0cmFjdHMgdGhlIG5ldyB2YWx1ZVxuICAgKiB0byBlbWl0IGFzIGEgc2VhcmNoIGV2ZW50LiBUaGlzIG1ldGhvZCBpcyB0cmlnZ2VyZWQgd2hlbiB0aGUgdXNlciBmaW5pc2hlcyBlZGl0aW5nIHRoZSBzZWFyY2hiYXJcbiAgICogdmFsdWUsIHByb3ZpZGluZyBhIHdheSB0byByZWFjdCB0byBjb21wbGV0ZWQgaW5wdXQgY2hhbmdlcyByYXRoZXIgdGhhbiByZWFsLXRpbWUgdHlwaW5nLlxuICAgKlxuICAgKiBAcGFyYW0ge0N1c3RvbUV2ZW50fSBldmVudCAtIFRoZSBjaGFuZ2UgZXZlbnQgZnJvbSB0aGUgSW9uaWMgc2VhcmNoYmFyIGNvbnRhaW5pbmcgdGhlIG5ldyB2YWx1ZVxuICAgKiBAcmV0dXJuIHt2b2lkfVxuICAgKiBAbWVtYmVyT2YgU2VhcmNoYmFyQ29tcG9uZW50XG4gICAqL1xuICBoYW5kbGVDaGFuZ2UoZXZlbnQ6IEN1c3RvbUV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5lbWl0RXZlbnQoZXZlbnQ/LmRldGFpbD8udmFsdWUgPz8gdW5kZWZpbmVkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gSGFuZGxlcyBjbGVhcmluZyBvZiB0aGUgc2VhcmNoYmFyIGlucHV0IGZpZWxkLlxuICAgKiBAc3VtbWFyeSBFbWl0cyBhbiB1bmRlZmluZWQgdmFsdWUgYXMgYSBzZWFyY2ggZXZlbnQgd2hlbiB0aGUgc2VhcmNoYmFyIGlzIGNsZWFyZWQgYnkgdGhlIHVzZXIuXG4gICAqIFRoaXMgbWV0aG9kIGlzIHR5cGljYWxseSB0cmlnZ2VyZWQgd2hlbiB0aGUgdXNlciBjbGlja3MgdGhlIGNsZWFyIGJ1dHRvbiBvciB1c2VzIG90aGVyXG4gICAqIGNsZWFyIG1lY2hhbmlzbXMsIHNpZ25hbGluZyB0aGF0IHRoZSBzZWFyY2ggc2hvdWxkIGJlIHJlc2V0IG9yIGNsZWFyZWQuXG4gICAqXG4gICAqIEByZXR1cm4ge3ZvaWR9XG4gICAqIEBtZW1iZXJPZiBTZWFyY2hiYXJDb21wb25lbnRcbiAgICovXG4gIGhhbmRsZUNsZWFyKCk6IHZvaWQge1xuICAgIHRoaXMuZW1pdEV2ZW50KHVuZGVmaW5lZCk7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEhhbmRsZXMgcmVhbC10aW1lIGlucHV0IGV2ZW50cyBvbiB0aGUgc2VhcmNoYmFyLlxuICAgKiBAc3VtbWFyeSBQcm9jZXNzZXMgaW5wdXQgZXZlbnRzIGFzIHRoZSB1c2VyIHR5cGVzLCBwcm92aWRpbmcgaW1tZWRpYXRlIGZlZWRiYWNrIGZvciBzZWFyY2ggZnVuY3Rpb25hbGl0eS5cbiAgICogVGhpcyBtZXRob2QgaW1wbGVtZW50cyBzbWFydCBjbGVhcmluZyBiZWhhdmlvciAtIGlmIHRoZSBpbnB1dCBiZWNvbWVzIGVtcHR5LCBpdCBhdXRvbWF0aWNhbGx5XG4gICAqIHRyaWdnZXJzIHRoZSBjbGVhciBoYW5kbGVyLiBPdGhlcndpc2UsIGl0IGVtaXRzIHRoZSBjdXJyZW50IHZhbHVlIGZvciByZWFsLXRpbWUgc2VhcmNoIHN1Z2dlc3Rpb25zXG4gICAqIG9yIGZpbHRlcmluZy4gVGhpcyBlbmFibGVzIHJlc3BvbnNpdmUgc2VhcmNoIGV4cGVyaWVuY2VzIHdpdGggZGVib3VuY2VkIGV2ZW50IGhhbmRsaW5nLlxuICAgKlxuICAgKiBAcGFyYW0ge0N1c3RvbUV2ZW50fSBldmVudCAtIFRoZSBpbnB1dCBldmVudCBmcm9tIHRoZSBJb25pYyBzZWFyY2hiYXIgY29udGFpbmluZyB0aGUgY3VycmVudCB2YWx1ZVxuICAgKiBAcmV0dXJuIHt2b2lkfVxuICAgKlxuICAgKiBAbWVybWFpZFxuICAgKiBzZXF1ZW5jZURpYWdyYW1cbiAgICogICBwYXJ0aWNpcGFudCBVIGFzIFVzZXJcbiAgICogICBwYXJ0aWNpcGFudCBTIGFzIFNlYXJjaGJhckNvbXBvbmVudFxuICAgKiAgIHBhcnRpY2lwYW50IEUgYXMgRXZlbnQgU3lzdGVtXG4gICAqXG4gICAqICAgVS0+PlM6IFR5cGUgaW4gc2VhcmNoYmFyXG4gICAqICAgUy0+PlM6IGhhbmRsZUlucHV0KGV2ZW50KVxuICAgKiAgIFMtPj5TOiBFeHRyYWN0IHZhbHVlIGZyb20gZXZlbnRcbiAgICogICBhbHQgdmFsdWUgaXMgZW1wdHkgb3IgbnVsbFxuICAgKiAgICAgUy0+PlM6IGhhbmRsZUNsZWFyKClcbiAgICogICAgIFMtPj5FOiBFbWl0IHVuZGVmaW5lZFxuICAgKiAgIGVsc2UgdmFsdWUgaGFzIGNvbnRlbnRcbiAgICogICAgIFMtPj5TOiBlbWl0RXZlbnQodmFsdWUpXG4gICAqICAgICBTLT4+RTogRW1pdCBzZWFyY2ggdmFsdWVcbiAgICogICBlbmRcbiAgICpcbiAgICogQG1lbWJlck9mIFNlYXJjaGJhckNvbXBvbmVudFxuICAgKi9cbiAgaGFuZGxlSW5wdXQoZXZlbnQ6IEN1c3RvbUV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgdmFsdWUgPSBldmVudD8uZGV0YWlsPy52YWx1ZTtcbiAgICBpZighdmFsdWUgfHwgIXZhbHVlPy5sZW5ndGgpXG4gICAgICByZXR1cm4gdGhpcy5oYW5kbGVDbGVhcigpO1xuICAgIHRoaXMuZW1pdEV2ZW50KHZhbHVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gSGFuZGxlcyBibHVyIGV2ZW50cyBvbiB0aGUgc2VhcmNoYmFyLlxuICAgKiBAc3VtbWFyeSBDdXJyZW50bHkgYW4gZW1wdHkgbWV0aG9kLCBjYW4gYmUgaW1wbGVtZW50ZWQgZm9yIHNwZWNpZmljIGJsdXIgYmVoYXZpb3IuXG4gICAqIEBwYXJhbSB7Q3VzdG9tRXZlbnR9IGV2ZW50IC0gVGhlIGJsdXIgZXZlbnQgZnJvbSB0aGUgc2VhcmNoYmFyXG4gICAqIEByZXR1cm4ge3ZvaWR9XG4gICAqL1xuICAvLyBoYW5kbGVCbHVyKGV2ZW50OiBDdXN0b21FdmVudCk6IHZvaWQge31cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEVtaXRzIHNlYXJjaCBldmVudHMgdGhyb3VnaCBtdWx0aXBsZSBjaGFubmVscy5cbiAgICogQHN1bW1hcnkgT3JjaGVzdHJhdGVzIHRoZSBlbWlzc2lvbiBvZiBzZWFyY2ggZXZlbnRzIGJvdGggYXMgY29tcG9uZW50IG91dHB1dCBldmVudHMgYW5kIG9wdGlvbmFsbHlcbiAgICogYXMgZ2xvYmFsIHdpbmRvdyBldmVudHMuIFRoaXMgZHVhbC1jaGFubmVsIGFwcHJvYWNoIGVuYWJsZXMgYm90aCBkaXJlY3QgcGFyZW50LWNoaWxkIGNvbW11bmljYXRpb25cbiAgICogYW5kIGFwcGxpY2F0aW9uLXdpZGUgZXZlbnQgYnJvYWRjYXN0aW5nLCBzdXBwb3J0aW5nIGZsZXhpYmxlIGludGVncmF0aW9uIHBhdHRlcm5zIGFuZCBsb29zZSBjb3VwbGluZ1xuICAgKiBiZXR3ZWVuIGNvbXBvbmVudHMgdGhhdCBuZWVkIHRvIHJlc3BvbmQgdG8gc2VhcmNoIGFjdGlvbnMuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgdW5kZWZpbmVkfSB2YWx1ZSAtIFRoZSBzZWFyY2ggdmFsdWUgdG8gZW1pdCBhY3Jvc3MgYWxsIGNvbmZpZ3VyZWQgY2hhbm5lbHNcbiAgICogQHJldHVybiB7dm9pZH1cbiAgICpcbiAgICogQG1lcm1haWRcbiAgICogc2VxdWVuY2VEaWFncmFtXG4gICAqICAgcGFydGljaXBhbnQgUyBhcyBTZWFyY2hiYXJDb21wb25lbnRcbiAgICogICBwYXJ0aWNpcGFudCBQIGFzIFBhcmVudCBDb21wb25lbnRcbiAgICogICBwYXJ0aWNpcGFudCBXIGFzIFdpbmRvdyBFdmVudCBTeXN0ZW1cbiAgICpcbiAgICogICBTLT4+UzogZW1pdEV2ZW50KHZhbHVlKVxuICAgKiAgIFMtPj5QOiBzZWFyY2hFdmVudC5lbWl0KHZhbHVlKVxuICAgKiAgIGFsdCBlbWl0RXZlbnRUb1dpbmRvdyBpcyB0cnVlXG4gICAqICAgICBTLT4+Vzogd2luZG93RXZlbnRFbWl0dGVyKCdzZWFyY2hiYXJFdmVudCcsIHt2YWx1ZX0pXG4gICAqICAgZW5kXG4gICAqXG4gICAqIEBtZW1iZXJPZiBTZWFyY2hiYXJDb21wb25lbnRcbiAgICovXG4gIGVtaXRFdmVudCh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKTogdm9pZCB7XG4gICAgdGhpcy5zZWFyY2hFdmVudC5lbWl0KHZhbHVlKTtcbiAgICBpZih0aGlzLmVtaXRFdmVudFRvV2luZG93KVxuICAgICAgd2luZG93RXZlbnRFbWl0dGVyKCdzZWFyY2hiYXJFdmVudCcsIHt2YWx1ZTogdmFsdWV9KVxuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBQcmV2ZW50cyBkZWZhdWx0IGJlaGF2aW9yIG9mIERPTSBldmVudHMuXG4gICAqIEBzdW1tYXJ5IFV0aWxpdHkgbWV0aG9kIHRvIHByZXZlbnQgdW53YW50ZWQgZGVmYXVsdCBhY3Rpb25zIG9uIERPTSBldmVudHMsIHN1Y2ggYXMgZm9ybSBzdWJtaXNzaW9uc1xuICAgKiBvciBuYXZpZ2F0aW9uIHRyaWdnZXJzLiBUaGlzIGlzIGNvbW1vbmx5IHVzZWQgaW4gZXZlbnQgaGFuZGxlcnMgd2hlcmUgdGhlIGRlZmF1bHQgYnJvd3NlciBiZWhhdmlvclxuICAgKiB3b3VsZCBpbnRlcmZlcmUgd2l0aCB0aGUgY29tcG9uZW50J3MgY3VzdG9tIGxvZ2ljIG9yIHVzZXIgZXhwZXJpZW5jZSBkZXNpZ24uXG4gICAqXG4gICAqIEBwYXJhbSB7RXZlbnR9IGV2ZW50IC0gVGhlIERPTSBldmVudCB3aG9zZSBkZWZhdWx0IGJlaGF2aW9yIHNob3VsZCBiZSBwcmV2ZW50ZWRcbiAgICogQHJldHVybiB7dm9pZH1cbiAgICogQG1lbWJlck9mIFNlYXJjaGJhckNvbXBvbmVudFxuICAgKi9cbiAgcHJldmVudENoYW5nZShldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgfVxufVxuIiwiPGlvbi1zZWFyY2hiYXJcbiAgW2lkXT1cInVpZFwiXG4gIG5nQ2xhc3M9XCJkY2Ytc2VhcmNoYmFyXCJcbiAgbmFtZT1cInNlYXJjaFwiXG4gIG1vZGU9XCJpb3NcIlxuICAoa2V5dXAuZW50ZXIpPVwicHJldmVudENoYW5nZSgkZXZlbnQpXCJcbiAgKGlvbkNoYW5nZSk9XCJoYW5kbGVDaGFuZ2UoJGV2ZW50KVwiXG4gIChpb25JbnB1dCk9XCJoYW5kbGVJbnB1dCgkZXZlbnQpXCJcbiAgKGlvbkNsZWFyKT1cImhhbmRsZUNsZWFyKClcIlxuICBbYXV0b2NvbXBsZXRlXT1cImF1dG9jb21wbGV0ZVwiXG4gIFtzaG93Q2FuY2VsQnV0dG9uXT1cInNob3dDYW5jZWxCdXR0b25cIlxuICBbY2FuY2VsQnV0dG9uVGV4dF09XCJidXR0b25DYW5jZWxUZXh0XCJcbiAgW2NsZWFySWNvbl09XCJjbGVhckljb25cIlxuICBbY29sb3JdPVwiY29sb3JcIlxuICBbZGVib3VuY2VdPVwiZGVib3VuY2VcIlxuICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICBbZW50ZXJrZXloaW50XT1cImVudGVya2V5aGludFwiXG4gIFtpbnB1dG1vZGVdPVwiaW5wdXRtb2RlXCJcbiAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgW3NlYXJjaEljb25dPVwic2VhcmNoSWNvblwiXG4gIFtzaG93Q2xlYXJCdXR0b25dPVwic2hvd0NsZWFyQnV0dG9uXCJcbiAgW3NwZWxsY2hlY2tdPVwic3BlbGxjaGVja1wiXG4gIFt0eXBlXT1cInR5cGVcIlxuICAjY29tcG9uZW50XG4gLz5cbiJdfQ==
|
|
491
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9zZWFyY2hiYXIvc2VhcmNoYmFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9zZWFyY2hiYXIvc2VhcmNoYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUcsWUFBWSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzlGLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNqRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDekQsT0FBTyxLQUFLLFFBQVEsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sVUFBVSxDQUFDOztBQUVwQzs7Ozs7Ozs7Ozs7O0dBWUc7QUFRSCxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsZ0JBQWdCO0lBNFF0RDs7Ozs7OztPQU9HO0lBQ0g7UUFDRSxLQUFLLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQW5SOUI7Ozs7O1dBS0c7UUFDSCxXQUFXO1FBQ1gsa0RBQWtEO1FBRWxEOzs7Ozs7Ozs7O1dBVUc7UUFFSCxpQkFBWSxHQUFrQyxLQUFLLENBQUM7UUFFcEQ7Ozs7Ozs7OztXQVNHO1FBRUgsZ0JBQVcsR0FBaUIsS0FBSyxDQUFDO1FBRWxDOzs7Ozs7Ozs7V0FTRztRQUVILGFBQVEsR0FBb0IsSUFBSSxDQUFDO1FBRWpDOzs7Ozs7Ozs7O1dBVUc7UUFFSCxxQkFBZ0IsR0FBVyxRQUFR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LEtBQUs7c0JBREosS0FBSztnQkFXTixRQUFRO3NCQURQLEtBQUs7Z0JBV04sUUFBUTtzQkFEUCxLQUFLO2dCQVdOLFlBQVk7c0JBRFgsS0FBSztnQkFXTixTQUFTO3NCQURSLEtBQUs7Z0JBV04sV0FBVztzQkFEVixLQUFLO2dCQVdOLFVBQVU7c0JBRFQsS0FBSztnQkFXTixnQkFBZ0I7c0JBRGYsS0FBSztnQkFXTixlQUFlO3NCQURkLEtBQUs7Z0JBV04sVUFBVTtzQkFEVCxLQUFLO2dCQVdOLElBQUk7c0JBREgsS0FBSztnQkFXTixLQUFLO3NCQURKLEtBQUs7Z0JBV04sU0FBUztzQkFEUixLQUFLO2dCQVdOLFNBQVM7c0JBRFIsS0FBSztnQkFXTixPQUFPO3NCQUROLEtBQUs7Z0JBV04sWUFBWTtzQkFEWCxLQUFLO2dCQVdOLGlCQUFpQjtzQkFEaEIsS0FBSztnQkF3Qk4sV0FBVztzQkFEVixNQUFNO2dCQWdGUCxzQkFBc0I7c0JBRHJCLFlBQVk7dUJBQUMsa0NBQWtDLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsICBFdmVudEVtaXR0ZXIsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBdXRvY29tcGxldGVUeXBlcywgUHJlZGVmaW5lZENvbG9yc30gZnJvbSAnQGlvbmljL2NvcmUnO1xuaW1wb3J0IHsgU3RyaW5nT3JCb29sZWFuIH0gZnJvbSAnLi4vLi4vZW5naW5lL3R5cGVzJztcbmltcG9ydCB7d2luZG93RXZlbnRFbWl0dGVyfSBmcm9tICcuLi8uLi9oZWxwZXJzL3V0aWxzJztcbmltcG9ydCB7IHN0cmluZ1RvQm9vbGVhbiB9IGZyb20gJy4uLy4uL2hlbHBlcnMvdXRpbHMnO1xuaW1wb3J0IHsgTmd4QmFzZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2VuZ2luZS9OZ3hCYXNlQ29tcG9uZW50JztcbmltcG9ydCB7IElvblNlYXJjaGJhciB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyL3N0YW5kYWxvbmUnO1xuaW1wb3J0ICogYXMgYWxsSWNvbnMgZnJvbSAnaW9uaWNvbnMvaWNvbnMnO1xuaW1wb3J0IHsgYWRkSWNvbnMgfSBmcm9tICdpb25pY29ucyc7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIFNlYXJjaGJhciBjb21wb25lbnQgZm9yIEFuZ3VsYXIgYXBwbGljYXRpb25zLlxuICogQHN1bW1hcnkgVGhlIFNlYXJjaGJhckNvbXBvbmVudCBwcm92aWRlcyBhIGhpZ2hseSBjdXN0b21pemFibGUgc2VhcmNoIGlucHV0IGZpZWxkIHdpdGggY29tcHJlaGVuc2l2ZVxuICogb3B0aW9ucyBmb3IgYXBwZWFyYW5jZSwgYmVoYXZpb3IsIGFuZCBpbnRlcmFjdGlvbiBwYXR0ZXJucy4gSXQgZXh0ZW5kcyBOZ3hCYXNlQ29tcG9uZW50IHRvIGluaGVyaXRcbiAqIGNvbW1vbiBmdW5jdGlvbmFsaXR5IGFuZCBpbXBsZW1lbnRzIE9uSW5pdCBmb3IgcHJvcGVyIGxpZmVjeWNsZSBtYW5hZ2VtZW50LiBUaGlzIGNvbXBvbmVudCBmZWF0dXJlc1xuICogZGVib3VuY2VkIGlucHV0IGhhbmRsaW5nLCB3aW5kb3cgZXZlbnQgaW50ZWdyYXRpb24sIHZpc2liaWxpdHkgY29udHJvbHMsIGFuZCBleHRlbnNpdmUgc3R5bGluZyBvcHRpb25zLlxuICogSXQncyBkZXNpZ25lZCB0byBiZSBmbGV4aWJsZSBhbmQgYWRhcHRhYmxlIHRvIGRpZmZlcmVudCBzZWFyY2ggcmVxdWlyZW1lbnRzIHdpdGhpbiBtb2Rlcm4gd2ViIGFwcGxpY2F0aW9ucy5cbiAqXG4gKiBAY2xhc3MgU2VhcmNoYmFyQ29tcG9uZW50XG4gKiBAZXh0ZW5kcyB7Tmd4QmFzZUNvbXBvbmVudH1cbiAqIEBpbXBsZW1lbnRzIHtPbkluaXR9XG4gKiBAbWVtYmVyT2YgU2VhcmNoYmFyQ29tcG9uZW50XG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ25neC1kZWNhZi1zZWFyY2hiYXInLFxuICB0ZW1wbGF0ZVVybDogJy4vc2VhcmNoYmFyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc2VhcmNoYmFyLmNvbXBvbmVudC5zY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtJb25TZWFyY2hiYXJdLFxufSlcbmV4cG9ydCBjbGFzcyBTZWFyY2hiYXJDb21wb25lbnQgZXh0ZW5kcyBOZ3hCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFRoZSBtb2RlIG9mIHRoZSBzZWFyY2hiYXIuXG4gICAqIEBzdW1tYXJ5IERldGVybWluZXMgdGhlIHZpc3VhbCBzdHlsZSBvZiB0aGUgc2VhcmNoYmFyLCBlaXRoZXIgaU9TIG9yIE1hdGVyaWFsIERlc2lnbi5cbiAgICogQHR5cGUge1wiaW9zXCIgfCBcIm1kXCIgfCB1bmRlZmluZWR9XG4gICAqIEBkZWZhdWx0IFwiaW9zXCJcbiAgICovXG4gIC8vIEBJbnB1dCgpXG4gIC8vIG92ZXJyaWRlIG1vZGU6IFwiaW9zXCIgfCBcIm1kXCIgfCB1bmRlZmluZWQgPSBcIm1kXCI7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBUaGUgYXV0b2NvbXBsZXRlIGF0dHJpYnV0ZSBmb3IgdGhlIHNlYXJjaGJhciBpbnB1dC5cbiAgICogQHN1bW1hcnkgU3BlY2lmaWVzIHdoZXRoZXIgdGhlIGJyb3dzZXIgc2hvdWxkIGVuYWJsZSBhdXRvY29tcGxldGUgZm9yIHRoZSBpbnB1dCBmaWVsZC5cbiAgICogVGhpcyBjb250cm9scyB0aGUgYnJvd3NlcidzIGJ1aWx0LWluIGF1dG9jb21wbGV0ZSBmdW5jdGlvbmFsaXR5LCBoZWxwaW5nIHVzZXJzIGJ5XG4gICAqIHN1Z2dlc3RpbmcgcHJldmlvdXNseSBlbnRlcmVkIHZhbHVlcyBvciBjb21tb24gaW5wdXRzLiBTZXR0aW5nIHRvICdvZmYnIGRpc2FibGVzXG4gICAqIHRoaXMgZmVhdHVyZSBmb3IgcHJpdmFjeSBvciBzZWN1cml0eSByZWFzb25zLlxuICAgKlxuICAgKiBAdHlwZSB7QXV0b2NvbXBsZXRlVHlwZXMgfCB1bmRlZmluZWR9XG4gICAqIEBkZWZhdWx0IFwib2ZmXCJcbiAgICogQG1lbWJlck9mIFNlYXJjaGJhckNvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KClcbiAgYXV0b2NvbXBsZXRlOiBBdXRvY29tcGxldGVUeXBlcyB8IHVuZGVmaW5lZCA9IFwib2ZmXCI7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBUaGUgYXV0b2NvcnJlY3QgYXR0cmlidXRlIGZvciB0aGUgc2VhcmNoYmFyIGlucHV0LlxuICAgKiBAc3VtbWFyeSBDb250cm9scyB3aGV0aGVyIHRoZSBicm93c2VyIHNob3VsZCBlbmFibGUgYXV0b2NvcnJlY3QgZnVuY3Rpb25hbGl0eSBmb3IgdGhlIGlucHV0IGZpZWxkLlxuICAgKiBXaGVuIGVuYWJsZWQsIHRoZSBicm93c2VyIHdpbGwgYXV0b21hdGljYWxseSBjb3JyZWN0IHNwZWxsaW5nIG1pc3Rha2VzIGFzIHRoZSB1c2VyIHR5cGVzLlxuICAgKiBUaGlzIGlzIHR5cGljYWxseSBkaXNhYmxlZCBmb3Igc2VhcmNoIGZpZWxkcyB0byBwcmVzZXJ2ZSB0aGUgdXNlcidzIGV4YWN0IHNlYXJjaCB0ZXJtcy5cbiAgICpcbiAgICogQHR5cGUge1wib25cIiB8IFwib2ZmXCJ9XG4gICAqIEBkZWZhdWx0IFwib2ZmXCJcbiAgICogQG1lbWJlck9mIFNlYXJjaGJhckNvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KClcbiAgYXV0b2NvcnJlY3Q6IFwib25cIiB8IFwib2ZmXCIgPSBcIm9mZlwiO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gV2hldGhlciB0aGUgc2VhcmNoYmFyIHNob3VsZCBhbmltYXRlLlxuICAgKiBAc3VtbWFyeSBDb250cm9scyB0aGUgYW5pbWF0aW9uIGJlaGF2aW9yIG9mIHRoZSBzZWFyY2hiYXIgZHVyaW5nIGFwcGVhcmFuY2UgYW5kIGRpc2FwcGVhcmFuY2UgdHJhbnNpdGlvbnMuXG4gICAqIFdoZW4gZW5hYmxlZCwgdGhlIHNlYXJjaGJhciB3aWxsIHVzZSBzbW9vdGggYW5pbWF0aW9ucyBmb3Igc3RhdGUgY2hhbmdlcywgcHJvdmlkaW5nIGEgbW9yZVxuICAgKiBwb2xpc2hlZCB1c2VyIGV4cGVyaWVuY2UuIFRoaXMgYWZmZWN0cyB0cmFuc2l0aW9ucyBsaWtlIHNob3dpbmcvaGlkaW5nIHRoZSBjb21wb25lbnQuXG4gICAqXG4gICAqIEB0eXBlIHtTdHJpbmdPckJvb2xlYW59XG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICogQG1lbWJlck9mIFNlYXJjaGJhckNvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KClcbiAgYW5pbWF0ZWQ6IFN0cmluZ09yQm9vbGVhbiA9IHRydWU7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBUaGUgdGV4dCBmb3IgdGhlIGNhbmNlbCBidXR0b24uXG4gICAqIEBzdW1tYXJ5IFNwZWNpZmllcyB0aGUgbG9jYWxpemVkIHRleHQgdG8gYmUgZGlzcGxheWVkIG9uIHRoZSBjYW5jZWwgYnV0dG9uIG9mIHRoZSBzZWFyY2hiYXIuXG4gICAqIFRoaXMgdGV4dCBhcHBlYXJzIHdoZW4gdGhlIGNhbmNlbCBidXR0b24gaXMgdmlzaWJsZSBhbmQgcHJvdmlkZXMgdXNlcnMgd2l0aCBhIGNsZWFyXG4gICAqIGluZGljYXRpb24gb2YgaG93IHRvIGRpc21pc3MgdGhlIHNlYXJjaCBpbnRlcmZhY2UuIFRoZSB0ZXh0IGNhbiBiZSBjdXN0b21pemVkIGZvclxuICAgKiBkaWZmZXJlbnQgbGFuZ3VhZ2VzIGFuZCBjdWx0dXJhbCBjb250ZXh0cy5cbiAgICpcbiAgICogQHR5cGUge3N0cmluZ31cbiAgICogQGRlZmF1bHQgXCJDYW5jZWxcIlxuICAgKiBAbWVtYmVyT2YgU2VhcmNoYmFyQ29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKVxuICBidXR0b25DYW5jZWxUZXh0OiBzdHJpbmcgPSBcIkNhbmNlbFwiO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gVGhlIGljb24gdG8gdXNlIGZvciB0aGUgY2xlYXIgYnV0dG9uLlxuICAgKiBAc3VtbWFyeSBTcGVjaWZpZXMgdGhlIGljb24gdG8gYmUgZGlzcGxheWVkIGZvciB0aGUgY2xlYXIgYnV0dG9uIG9mIHRoZSBzZWFyY2hiYXIuXG4gICAqIEB0eXBlIHtzdHJpbmcgfCB1bmRlZmluZWR9XG4gICAqIEBkZWZhdWx0IHVuZGVmaW5lZFxuICAgKiBAbWVtYmVyT2YgU2VhcmNoYmFyQ29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKVxuICBjbGVhckljb246IHN0cmluZyB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFRoZSBjb2xvciBvZiB0aGUgc2VhcmNoYmFyLlxuICAgKiBAc3VtbWFyeSBTcGVjaWZpZXMgdGhlIGNvbG9yIHRoZW1lIHRvIGJlIGFwcGxpZWQgdG8gdGhlIHNlYXJjaGJhci5cbiAgICogQHR5cGUge3N0cmluZyB8IHVuZGVmaW5lZH1cbiAgICogQGRlZmF1bHQgdW5kZWZpbmVkXG4gICAqIEBtZW1iZXJPZiBTZWFyY2hiYXJDb21wb25lbnRcbiAgICovXG4gIEBJbnB1dCgpXG4gIGNvbG9yOiBzdHJpbmcgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBUaGUgYW1vdW50IG9mIHRpbWUsIGluIG1pbGxpc2Vjb25kcywgdG8gd2FpdCB0byB0cmlnZ2VyIHRoZSBgaW9uQ2hhbmdlYCBldmVudCBhZnRlciBlYWNoIGtleXN0cm9rZS5cbiAgICogQHN1bW1hcnkgQ29udHJvbHMgdGhlIGRlYm91bmNlIHRpbWUgZm9yIHRoZSBzZWFyY2ggaW5wdXQgdG8gcmVkdWNlIHRoZSBmcmVxdWVuY3kgb2YgZXZlbnQgZW1pc3Npb25zLlxuICAgKiBAdHlwZSB7bnVtYmVyfVxuICAgKiBAZGVmYXVsdCA1MDBcbiAgICogQG1lbWJlck9mIFNlYXJjaGJhckNvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KClcbiAgZGVib3VuY2U6IG51bWJlciA9IDUwMDtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFdoZXRoZXIgdGhlIHNlYXJjaGJhciBpcyBkaXNhYmxlZC5cbiAgICogQHN1bW1hcnkgQ29udHJvbHMgd2hldGhlciB0aGUgc2VhcmNoYmFyIGlzIGludGVyYWN0aXZlIG9yIG5vdC5cbiAgICogQHR5cGUge1N0cmluZ09yQm9vbGVhbn1cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICogQG1lbWJlck9mIFNlYXJjaGJhckNvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KClcbiAgZGlzYWJsZWQ6IFN0cmluZ09yQm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQSBoaW50IHRvIHRoZSBicm93c2VyIGZvciB3aGljaCBlbnRlciBrZXkgdG8gZGlzcGxheS5cbiAgICogQHN1bW1hcnkgU3BlY2lmaWVzIHRoZSB0eXBlIG9mIGFjdGlvbiB0aGF0IHdpbGwgYmUgcGVyZm9ybWVkIHdoZW4gdGhlIGVudGVyIGtleSBpcyBwcmVzc2VkLlxuICAgKiBAdHlwZSB7XCJzZWFyY2hcIiB8IFwiZW50ZXJcIiB8IFwiZG9uZVwiIHwgXCJnb1wiIHwgXCJuZXh0XCIgfCBcInByZXZpb3VzXCIgfCBcInNlbmRcIiB8IHVuZGVmaW5lZH1cbiAgICogQGRlZmF1bHQgXCJlbnRlclwiXG4gICAqIEBtZW1iZXJPZiBTZWFyY2hiYXJDb21wb25lbnRcbiAgICovXG4gIEBJbnB1dCgpXG4gIGVudGVya2V5aGludDogXCJzZWFyY2hcIiB8IFwiZW50ZXJcIiB8IFwiZG9uZVwiIHwgXCJnb1wiIHwgXCJuZXh0XCIgfCBcInByZXZpb3VzXCIgfCBcInNlbmRcIiB8IHVuZGVmaW5lZCA9IFwiZW50ZXJcIjtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFRoZSBpbnB1dCBtb2RlIGZvciB0aGUgc2VhcmNoYmFyLlxuICAgKiBAc3VtbWFyeSBTcGVjaWZpZXMgdGhlIHR5cGUgb2YgZGF0YSB0aGF0IG1pZ2h0IGJlIGVudGVyZWQgYnkgdGhlIHVzZXIgd2hpbGUgZWRpdGluZyB0aGUgZWxlbWVudCBvciBpdHMgY29udGVudHMuXG4gICAqIEB0eXBlIHtcInRleHRcIiB8IFwic2VhcmNoXCIgfCBcIm5vbmVcIiB8IFwiZW1haWxcIiB8IFwidGVsXCIgfCBcInVybFwiIHwgXCJudW1lcmljXCIgfCBcImRlY2ltYWxcIiB8IHVuZGVmaW5lZH1cbiAgICogQGRlZmF1bHQgJ3NlYXJjaCdcbiAgICogQG1lbWJlck9mIFNlYXJjaGJhckNvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KClcbiAgaW5wdXRtb2RlOiBcInRleHRcIiB8IFwic2VhcmNoXCIgfCBcIm5vbmVcIiB8IFwiZW1haWxcIiB8IFwidGVsXCIgfCBcInVybFwiIHwgXCJudW1lcmljXCIgfCBcImRlY2ltYWxcIiB8IHVuZGVmaW5lZCA9ICdzZWFyY2gnO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gVGhlIHBsYWNlaG9sZGVyIGZvciB0aGUgc2VhcmNoYmFyIGlucHV0LlxuICAgKiBAc3VtbWFyeSBTcGVjaWZpZXMgdGhlIHBsYWNlaG9sZGVyIHRleHQgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBzZWFyY2hiYXIgd2hlbiBpdCdzIGVtcHR5LlxuICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgKiBAZGVmYXVsdCBcIlNlYXJjaFwiXG4gICAqIEBtZW1iZXJPZiBTZWFyY2hiYXJDb21wb25lbnRcbiAgICovXG4gIEBJbnB1dCgpXG4gIHBsYWNlaG9sZGVyID0gXCJTZWFyY2hcIjtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFRoZSBpY29uIHRvIHVzZSBmb3IgdGhlIHNlYXJjaCBidXR0b24uXG4gICAqIEBzdW1tYXJ5IFNwZWNpZmllcyB0aGUgaWNvbiB0byBiZSBkaXNwbGF5ZWQgZm9yIHRoZSBzZWFyY2ggYnV0dG9uIG9mIHRoZSBzZWFyY2hiYXIuXG4gICAqIEB0eXBlIHtzdHJpbmcgfCB1bmRlZmluZWR9XG4gICAqIEBkZWZhdWx0IFwic2VhcmNoLW91dGxpbmVcIlxuICAgKiBAbWVtYmVyT2YgU2VhcmNoYmFyQ29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKVxuICBzZWFyY2hJY29uOiBzdHJpbmcgfCB1bmRlZmluZWQgPSBcInNlYXJjaC1vdXRsaW5lXCI7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBXaGVuIHRvIHNob3cgdGhlIGNhbmNlbCBidXR0b24uXG4gICAqIEBzdW1tYXJ5IENvbnRyb2xzIHRoZSB2aXNpYmlsaXR5IG9mIHRoZSBjYW5jZWwgYnV0dG9uIGluIGRpZmZlcmVudCBzdGF0ZXMgb2YgdGhlIHNlYXJjaGJhci5cbiAgICogQHR5cGUge1wiYWx3YXlzXCIgfCBcImZvY3VzXCIgfCBcIm5ldmVyXCJ9XG4gICAqIEBkZWZhdWx0IFwibmV2ZXJcIlxuICAgKiBAbWVtYmVyT2YgU2VhcmNoYmFyQ29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKVxuICBzaG93Q2FuY2VsQnV0dG9uOiBcImFsd2F5c1wiIHwgXCJmb2N1c1wiIHwgXCJuZXZlclwiID0gXCJuZXZlclwiO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gV2hlbiB0byBzaG93IHRoZSBjbGVhciBidXR0b24uXG4gICAqIEBzdW1tYXJ5IENvbnRyb2xzIHRoZSB2aXNpYmlsaXR5IG9mIHRoZSBjbGVhciBidXR0b24gaW4gZGlmZmVyZW50IHN0YXRlcyBvZiB0aGUgc2VhcmNoYmFyLlxuICAgKiBAdHlwZSB7XCJhbHdheXNcIiB8IFwiZm9jdXNcIiB8IFwibmV2ZXJcIn1cbiAgICogQGRlZmF1bHQgXCJmb2N1c1wiXG4gICAqIEBtZW1iZXJPZiBTZWFyY2hiYXJDb21wb25lbnRcbiAgICovXG4gIEBJbnB1dCgpXG4gIHNob3dDbGVhckJ1dHRvbjogXCJhbHdheXNcIiB8IFwiZm9jdXNcIiB8IFwibmV2ZXJcIiA9IFwiZm9jdXNcIjtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFdoZXRoZXIgdG8gZW5hYmxlIHNwZWxsY2hlY2sgb24gdGhlIHNlYXJjaGJhciBpbnB1dC5cbiAgICogQHN1bW1hcnkgQ29udHJvbHMgd2hldGhlciB0aGUgYnJvd3NlcidzIHNwZWxsY2hlY2sgZmVhdHVyZSBpcyBlbmFibGVkIGZvciB0aGUgc2VhcmNoYmFyIGlucHV0LlxuICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICogQG1lbWJlck9mIFNlYXJjaGJhckNvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KClcbiAgc3BlbGxjaGVjazogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gVGhlIHR5cGUgb2YgaW5wdXQgdG8gdXNlIGZvciB0aGUgc2VhcmNoYmFyLlxuICAgKiBAc3VtbWFyeSBTcGVjaWZpZXMgdGhlIHR5cGUgb2YgY29udHJvbCB0byBkaXNwbGF5IGZvciB0aGUgc2VhcmNoYmFyIGlucHV0LlxuICAgKiBAdHlwZSB7XCJudW1iZXJcIiB8IFwidGV4dFwiIHwgXCJzZWFyY2hcIiB8IFwiZW1haWxcIiB8IFwicGFzc3dvcmRcIiB8IFwidGVsXCIgfCBcInVybFwiIHwgdW5kZWZpbmVkfVxuICAgKiBAZGVmYXVsdCBcInNlYXJjaFwiXG4gICAqIEBtZW1iZXJPZiBTZWFyY2hiYXJDb21wb25lbnRcbiAgICovXG4gIEBJbnB1dCgpXG4gIHR5cGU6IFwibnVtYmVyXCIgfCBcInRleHRcIiB8IFwic2VhcmNoXCIgfCBcImVtYWlsXCIgfCBcInBhc3N3b3JkXCIgfCBcInRlbFwiIHwgXCJ1cmxcIiB8IHVuZGVmaW5lZCA9IFwic2VhcmNoXCI7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBUaGUgdmFsdWUgb2YgdGhlIHNlYXJjaGJhciBpbnB1dC5cbiAgICogQHN1bW1hcnkgU3BlY2lmaWVzIHRoZSBjdXJyZW50IHZhbHVlIG9mIHRoZSBzZWFyY2hiYXIgaW5wdXQuXG4gICAqIEB0eXBlIHtudWxsIHwgc3RyaW5nIHwgdW5kZWZpbmVkfVxuICAgKiBAZGVmYXVsdCBcIlwiXG4gICAqIEBtZW1iZXJPZiBTZWFyY2hiYXJDb21wb25lbnRcbiAgICovXG4gIEBJbnB1dCgpXG4gIHZhbHVlOiBudWxsIHwgc3RyaW5nIHwgdW5kZWZpbmVkID0gXCJcIjtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFRoZSBrZXlzIHRvIHVzZSBmb3IgcXVlcnlpbmcuXG4gICAqIEBzdW1tYXJ5IFNwZWNpZmllcyB0aGUga2V5cyB0byBiZSB1c2VkIHdoZW4gcGVyZm9ybWluZyBhIHNlYXJjaCBxdWVyeS5cbiAgICogQHR5cGUge3N0cmluZyB8IHN0cmluZ1tdfVxuICAgKiBAZGVmYXVsdCBcIm5hbWVcIlxuICAgKiBAbWVtYmVyT2YgU2VhcmNoYmFyQ29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKVxuICBxdWVyeUtleXM6IHN0cmluZyB8IHN0cmluZ1tdID0gXCJuYW1lXCI7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBXaGV0aGVyIHRoZSBzZWFyY2hiYXIgaXMgdmlzaWJsZS5cbiAgICogQHN1bW1hcnkgQ29udHJvbHMgdGhlIHZpc2liaWxpdHkgb2YgdGhlIHNlYXJjaGJhciBjb21wb25lbnQuXG4gICAqIEB0eXBlIHtTdHJpbmdPckJvb2xlYW59XG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqIEBtZW1iZXJPZiBTZWFyY2hiYXJDb21wb25lbnRcbiAgICovXG4gIEBJbnB1dCgpXG4gIGlzVmlzaWJsZTogU3RyaW5nT3JCb29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBXaGV0aGVyIHRvIHdyYXAgdGhlIHNlYXJjaGJhciBpbiBhIGNvbnRhaW5lci5cbiAgICogQHN1bW1hcnkgQ29udHJvbHMgd2hldGhlciB0aGUgc2VhcmNoYmFyIGlzIHdyYXBwZWQgaW4gYW4gYWRkaXRpb25hbCBjb250YWluZXIgZWxlbWVudC5cbiAgICogQHR5cGUge1N0cmluZ09yQm9vbGVhbn1cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICogQG1lbWJlck9mIFNlYXJjaGJhckNvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KClcbiAgd3JhcHBlcjogU3RyaW5nT3JCb29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBUaGUgY29sb3Igb2YgdGhlIHdyYXBwZXIuXG4gICAqIEBzdW1tYXJ5IFNwZWNpZmllcyB0aGUgY29sb3IgdGhlbWUgdG8gYmUgYXBwbGllZCB0byB0aGUgd3JhcHBlciBjb250YWluZXIsIGlmIHByZXNlbnQuXG4gICAqIEB0eXBlIHtQcmVkZWZpbmVkQ29sb3JzfVxuICAgKiBAZGVmYXVsdCBcInByaW1hcnlcIlxuICAgKiBAbWVtYmVyT2YgU2VhcmNoYmFyQ29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKVxuICB3cmFwcGVyQ29sb3I6IFByZWRlZmluZWRDb2xvcnMgPSBcInByaW1hcnlcIjtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFdoZXRoZXIgdG8gZW1pdCBldmVudHMgdG8gdGhlIHdpbmRvdy5cbiAgICogQHN1bW1hcnkgQ29udHJvbHMgd2hldGhlciBzZWFyY2ggZXZlbnRzIHNob3VsZCBiZSBlbWl0dGVkIGFzIHdpbmRvdyBldmVudHMuXG4gICAqIEB0eXBlIHtTdHJpbmdPckJvb2xlYW59XG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICogQG1lbWJlck9mIFNlYXJjaGJhckNvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KClcbiAgZW1pdEV2ZW50VG9XaW5kb3c6IFN0cmluZ09yQm9vbGVhbiA9IHRydWU7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBUaGUgY3VycmVudCB2YWx1ZSBvZiB0aGUgc2VhcmNoYmFyLlxuICAgKiBAc3VtbWFyeSBTdG9yZXMgdGhlIGN1cnJlbnQgdmFsdWUgb2YgdGhlIHNlYXJjaGJhciBpbnB1dCBmb3IgaW50ZXJuYWwgc3RhdGUgbWFuYWdlbWVudCBhbmQgcHJvY2Vzc2luZy5cbiAgICogVGhpcyBwcm9wZXJ0eSBpcyB1c2VkIHRvIHRyYWNrIHRoZSBzZWFyY2ggdGVybSB0aHJvdWdob3V0IHRoZSBjb21wb25lbnQncyBsaWZlY3ljbGUgYW5kXG4gICAqIGNvb3JkaW5hdGUgYmV0d2VlbiBkaWZmZXJlbnQgZXZlbnQgaGFuZGxlcnMgYW5kIG1ldGhvZHMuXG4gICAqXG4gICAqIEB0eXBlIHtzdHJpbmcgfCB1bmRlZmluZWR9XG4gICAqIEBtZW1iZXJPZiBTZWFyY2hiYXJDb21wb25lbnRcbiAgICovXG4gIGN1cnJlbnRWYWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gRXZlbnQgZW1pdHRlciBmb3Igc2VhcmNoIGV2ZW50cy5cbiAgICogQHN1bW1hcnkgRW1pdHMgc2VhcmNoIGV2ZW50cyB3aGVuIHRoZSB1c2VyIGludGVyYWN0cyB3aXRoIHRoZSBzZWFyY2hiYXIsIHByb3ZpZGluZyBhIHJlYWN0aXZlXG4gICAqIGludGVyZmFjZSBmb3IgcGFyZW50IGNvbXBvbmVudHMgdG8gcmVzcG9uZCB0byBzZWFyY2ggYWN0aW9ucy4gVGhpcyBldmVudCBpcyB0cmlnZ2VyZWQgYnlcbiAgICogdmFyaW91cyB1c2VyIGludGVyYWN0aW9ucyBpbmNsdWRpbmcgdHlwaW5nLCBjbGVhcmluZywgYW5kIGV4cGxpY2l0IHNlYXJjaCBhY3Rpb25zLlxuICAgKlxuICAgKiBAdHlwZSB7RXZlbnRFbWl0dGVyPHN0cmluZz59XG4gICAqIEBtZW1iZXJPZiBTZWFyY2hiYXJDb21wb25lbnRcbiAgICovXG4gIEBPdXRwdXQoKVxuICBzZWFyY2hFdmVudDogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIENyZWF0ZXMgYW4gaW5zdGFuY2Ugb2YgU2VhcmNoYmFyQ29tcG9uZW50LlxuICAgKiBAc3VtbWFyeSBJbml0aWFsaXplcyB0aGUgU2VhcmNoYmFyQ29tcG9uZW50IHdpdGggYWxsIG5lY2Vzc2FyeSBkZXBlbmRlbmNpZXMgYW5kIGNvbmZpZ3VyYXRpb25zLlxuICAgKiBEdXJpbmcgaW5pdGlhbGl6YXRpb24sIGl0IGFkZHMgYWxsIGF2YWlsYWJsZSBJb25pY29ucyB0byB0aGUgYXBwbGljYXRpb24ncyBpY29uIHJlZ2lzdHJ5LFxuICAgKiBlbnN1cmluZyB0aGF0IHNlYXJjaCBhbmQgY2xlYXIgaWNvbnMgYXJlIGF2YWlsYWJsZSBmb3IgdXNlIHRocm91Z2hvdXQgdGhlIGNvbXBvbmVudCdzIGxpZmVjeWNsZS5cbiAgICpcbiAgICogQG1lbWJlck9mIFNlYXJjaGJhckNvbXBvbmVudFxuICAgKi9cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoJ1NlYXJjaGJhckNvbXBvbmVudCcpO1xuICAgIGFkZEljb25zKGFsbEljb25zKVxuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBJbml0aWFsaXplcyB0aGUgY29tcG9uZW50IGFmdGVyIEFuZ3VsYXIgZmlyc3QgZGlzcGxheXMgdGhlIGRhdGEtYm91bmQgcHJvcGVydGllcy5cbiAgICogQHN1bW1hcnkgUGVyZm9ybXMgZXNzZW50aWFsIGNvbXBvbmVudCBpbml0aWFsaXphdGlvbiBieSBjb252ZXJ0aW5nIHN0cmluZy1iYXNlZCBib29sZWFuIGlucHV0c1xuICAgKiB0byBwcm9wZXIgYm9vbGVhbiB2YWx1ZXMgdXNpbmcgdGhlIHN0cmluZ1RvQm9vbGVhbiB1dGlsaXR5LiBUaGlzIGVuc3VyZXMgdGhhdCBhbGwgYm9vbGVhblxuICAgKiBwcm9wZXJ0aWVzIHdvcmsgY29ycmVjdGx5IHJlZ2FyZGxlc3Mgb2YgaG93IHRoZXkgd2VyZSBwYXNzZWQgZnJvbSBwYXJlbnQgY29tcG9uZW50cyBvciB0ZW1wbGF0ZXMuXG4gICAqXG4gICAqIEByZXR1cm4ge3ZvaWR9XG4gICAqXG4gICAqIEBtZXJtYWlkXG4gICAqIHNlcXVlbmNlRGlhZ3JhbVxuICAgKiAgIHBhcnRpY2lwYW50IEEgYXMgQW5ndWxhciBMaWZlY3ljbGVcbiAgICogICBwYXJ0aWNpcGFudCBTIGFzIFNlYXJjaGJhckNvbXBvbmVudFxuICAgKiAgIHBhcnRpY2lwYW50IFUgYXMgVXRpbGl0eSBGdW5jdGlvbnNcbiAgICpcbiAgICogICBBLT4+UzogbmdPbkluaXQoKVxuICAgKiAgIFMtPj5VOiBzdHJpbmdUb0Jvb2xlYW4oZW1pdEV2ZW50VG9XaW5kb3cpXG4gICAqICAgVS0tPj5TOiBib29sZWFuIHZhbHVlXG4gICAqICAgUy0+PlU6IHN0cmluZ1RvQm9vbGVhbih3cmFwcGVyKVxuICAgKiAgIFUtLT4+UzogYm9vbGVhbiB2YWx1ZVxuICAgKiAgIFMtPj5VOiBzdHJpbmdUb0Jvb2xlYW4oaXNWaXNpYmxlKVxuICAgKiAgIFUtLT4+UzogYm9vbGVhbiB2YWx1ZVxuICAgKiAgIFMtPj5VOiBzdHJpbmdUb0Jvb2xlYW4oZGlzYWJsZWQpXG4gICAqICAgVS0tPj5TOiBib29sZWFuIHZhbHVlXG4gICAqICAgUy0+PlU6IHN0cmluZ1RvQm9vbGVhbihhbmltYXRlZClcbiAgICogICBVLS0+PlM6IGJvb2xlYW4gdmFsdWVcbiAgICogICBOb3RlIG92ZXIgUzogQ29tcG9uZW50IHJlYWR5IGZvciBpbnRlcmFjdGlvblxuICAgKlxuICAgKiBAbWVtYmVyT2YgU2VhcmNoYmFyQ29tcG9uZW50XG4gICAqL1xuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmVtaXRFdmVudFRvV2luZG93ID0gc3RyaW5nVG9Cb29sZWFuKHRoaXMuZW1pdEV2ZW50VG9XaW5kb3cpO1xuICAgIHRoaXMud3JhcHBlciA9IHN0cmluZ1RvQm9vbGVhbih0aGlzLndyYXBwZXIpO1xuICAgIHRoaXMuaXNWaXNpYmxlID0gc3RyaW5nVG9Cb29sZWFuKHRoaXMuaXNWaXNpYmxlKTtcbiAgICB0aGlzLmRpc2FibGVkID0gc3RyaW5nVG9Cb29sZWFuKHRoaXMuZGlzYWJsZWQpO1xuICAgIHRoaXMuYW5pbWF0ZWQgPSBzdHJpbmdUb0Jvb2xlYW4odGhpcy5hbmltYXRlZCk7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEhhbmRsZXMgdGhlIHZpc2liaWxpdHkgdG9nZ2xlIG9mIHRoZSBzZWFyY2hiYXIgY29tcG9uZW50LlxuICAgKiBAc3VtbWFyeSBMaXN0ZW5zIGZvciBnbG9iYWwgd2luZG93IGV2ZW50cyB0byB0b2dnbGUgdGhlIHZpc2liaWxpdHkgc3RhdGUgb2YgdGhlIHNlYXJjaGJhci5cbiAgICogV2hlbiB0aGUgc2VhcmNoYmFyIGJlY29tZXMgdmlzaWJsZSwgaXQgYXV0b21hdGljYWxseSBmb2N1c2VzIG9uIHRoZSBpbnB1dCBmaWVsZCBhZnRlciBhIGJyaWVmXG4gICAqIGRlbGF5IHRvIGVuc3VyZSBzbW9vdGggYW5pbWF0aW9uIGNvbXBsZXRpb24uIFRoaXMgcHJvdmlkZXMgYSBzZWFtbGVzcyB1c2VyIGV4cGVyaWVuY2UgZm9yXG4gICAqIHNlYXJjaCBhY3RpdmF0aW9uIHRocm91Z2gga2V5Ym9hcmQgc2hvcnRjdXRzIG9yIHByb2dyYW1tYXRpYyB0cmlnZ2Vycy5cbiAgICpcbiAgICogQHBhcmFtIHtDdXN0b21FdmVudH0gZXZlbnQgLSBUaGUgY3VzdG9tIGV2ZW50IHRyaWdnZXJpbmcgdGhlIHZpc2liaWxpdHkgdG9nZ2xlICh1bnVzZWQgYnV0IHJlcXVpcmVkIGJ5IEhvc3RMaXN0ZW5lcilcbiAgICogQHJldHVybiB7dm9pZH1cbiAgICpcbiAgICogQG1lcm1haWRcbiAgICogc2VxdWVuY2VEaWFncmFtXG4gICAqICAgcGFydGljaXBhbnQgVyBhcyBXaW5kb3dcbiAgICogICBwYXJ0aWNpcGFudCBTIGFzIFNlYXJjaGJhckNvbXBvbmVudFxuICAgKiAgIHBhcnRpY2lwYW50IEUgYXMgRE9NIEVsZW1lbnRcbiAgICpcbiAgICogICBXLT4+UzogdG9nZ2xlU2VhcmNoYmFyVmlzaWJpbGl0eSBldmVudFxuICAgKiAgIFMtPj5TOiBoYW5kbGVUb2dnbGVWaXNpYmlsaXR5KClcbiAgICogICBTLT4+UzogVG9nZ2xlIGlzVmlzaWJsZSBzdGF0ZVxuICAgKiAgIGFsdCBpc1Zpc2libGUgaXMgdHJ1ZSBBTkQgY29tcG9uZW50IGV4aXN0c1xuICAgKiAgICAgUy0+PlM6IHNldFRpbWVvdXQoMTI1bXMpXG4gICAqICAgICBTLT4+RTogc2V0Rm9jdXMoKSBvbiBpb24tc2VhcmNoYmFyXG4gICAqICAgZW5kXG4gICAqXG4gICAqIEBtZW1iZXJPZiBTZWFyY2hiYXJDb21wb25lbnRcbiAgICovXG4gIEBIb3N0TGlzdGVuZXIoXCJ3aW5kb3c6dG9nZ2xlU2VhcmNoYmFyVmlzaWJpbGl0eVwiLCBbJyRldmVudCddKVxuICBoYW5kbGVUb2dnbGVWaXNpYmlsaXR5KCk6IHZvaWQge1xuICAgIHRoaXMuaXNWaXNpYmxlID0gIXRoaXMuaXNWaXNpYmxlO1xuICAgIGlmKHRoaXMuaXNWaXNpYmxlICYmICEhdGhpcy5jb21wb25lbnQubmF0aXZlRWxlbWVudCkge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICh0aGlzLmNvbXBvbmVudC5uYXRpdmVFbGVtZW50IGFzIEhUTUxJb25TZWFyY2hiYXJFbGVtZW50KS5zZXRGb2N1cygpO1xuICAgICAgfSwgMTI1KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFRyaWdnZXJzIGEgbWFudWFsIHNlYXJjaCBldmVudCB3aXRoIHRoZSBjdXJyZW50IHNlYXJjaGJhciB2YWx1ZS5cbiAgICogQHN1bW1hcnkgUmV0cmlldmVzIHRoZSBjdXJyZW50IHZhbHVlIGZyb20gdGhlIHNlYXJjaGJhcidzIG5hdGl2ZSBlbGVtZW50IGFuZCBlbWl0cyBpdCBhcyBhIHNlYXJjaCBldmVudC5cbiAgICogVGhpcyBtZXRob2QgcHJvdmlkZXMgYSBwcm9ncmFtbWF0aWMgd2F5IHRvIHRyaWdnZXIgc2VhcmNoIGZ1bmN0aW9uYWxpdHksIHVzZWZ1bCBmb3IgZXh0ZXJuYWxcbiAgICogY29tcG9uZW50cyBvciBrZXlib2FyZCBzaG9ydGN1dHMgdGhhdCBuZWVkIHRvIGV4ZWN1dGUgc2VhcmNoIHdpdGhvdXQgdXNlciBpbnRlcmFjdGlvbiB3aXRoIHRoZSBzZWFyY2hiYXIgaXRzZWxmLlxuICAgKlxuICAgKiBAcmV0dXJuIHt2b2lkfVxuICAgKiBAbWVtYmVyT2YgU2VhcmNoYmFyQ29tcG9uZW50XG4gICAqL1xuICBzZWFyY2goKTogdm9pZCB7XG4gICAgY29uc3QgZWxlbWVudCA9IHRoaXMuY29tcG9uZW50Lm5hdGl2ZUVsZW1lbnQgYXMgSFRNTElvblNlYXJjaGJhckVsZW1lbnQ7XG4gICAgdGhpcy5zZWFyY2hFdmVudC5lbWl0KGVsZW1lbnQudmFsdWUgfHwgdW5kZWZpbmVkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gSGFuZGxlcyB2YWx1ZSBjaGFuZ2VzIGluIHRoZSBzZWFyY2hiYXIgaW5wdXQgZmllbGQuXG4gICAqIEBzdW1tYXJ5IFByb2Nlc3NlcyBjaGFuZ2UgZXZlbnRzIGZyb20gdGhlIElvbmljIHNlYXJjaGJhciBjb21wb25lbnQgYW5kIGV4dHJhY3RzIHRoZSBuZXcgdmFsdWVcbiAgICogdG8gZW1pdCBhcyBhIHNlYXJjaCBldmVudC4gVGhpcyBtZXRob2QgaXMgdHJpZ2dlcmVkIHdoZW4gdGhlIHVzZXIgZmluaXNoZXMgZWRpdGluZyB0aGUgc2VhcmNoYmFyXG4gICAqIHZhbHVlLCBwcm92aWRpbmcgYSB3YXkgdG8gcmVhY3QgdG8gY29tcGxldGVkIGlucHV0IGNoYW5nZXMgcmF0aGVyIHRoYW4gcmVhbC10aW1lIHR5cGluZy5cbiAgICpcbiAgICogQHBhcmFtIHtDdXN0b21FdmVudH0gZXZlbnQgLSBUaGUgY2hhbmdlIGV2ZW50IGZyb20gdGhlIElvbmljIHNlYXJjaGJhciBjb250YWluaW5nIHRoZSBuZXcgdmFsdWVcbiAgICogQHJldHVybiB7dm9pZH1cbiAgICogQG1lbWJlck9mIFNlYXJjaGJhckNvbXBvbmVudFxuICAgKi9cbiAgaGFuZGxlQ2hhbmdlKGV2ZW50OiBDdXN0b21FdmVudCk6IHZvaWQge1xuICAgIHRoaXMuZW1pdEV2ZW50KGV2ZW50Py5kZXRhaWw/LnZhbHVlID8/IHVuZGVmaW5lZCk7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEhhbmRsZXMgY2xlYXJpbmcgb2YgdGhlIHNlYXJjaGJhciBpbnB1dCBmaWVsZC5cbiAgICogQHN1bW1hcnkgRW1pdHMgYW4gdW5kZWZpbmVkIHZhbHVlIGFzIGEgc2VhcmNoIGV2ZW50IHdoZW4gdGhlIHNlYXJjaGJhciBpcyBjbGVhcmVkIGJ5IHRoZSB1c2VyLlxuICAgKiBUaGlzIG1ldGhvZCBpcyB0eXBpY2FsbHkgdHJpZ2dlcmVkIHdoZW4gdGhlIHVzZXIgY2xpY2tzIHRoZSBjbGVhciBidXR0b24gb3IgdXNlcyBvdGhlclxuICAgKiBjbGVhciBtZWNoYW5pc21zLCBzaWduYWxpbmcgdGhhdCB0aGUgc2VhcmNoIHNob3VsZCBiZSByZXNldCBvciBjbGVhcmVkLlxuICAgKlxuICAgKiBAcmV0dXJuIHt2b2lkfVxuICAgKiBAbWVtYmVyT2YgU2VhcmNoYmFyQ29tcG9uZW50XG4gICAqL1xuICBoYW5kbGVDbGVhcigpOiB2b2lkIHtcbiAgICB0aGlzLmVtaXRFdmVudCh1bmRlZmluZWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBIYW5kbGVzIHJlYWwtdGltZSBpbnB1dCBldmVudHMgb24gdGhlIHNlYXJjaGJhci5cbiAgICogQHN1bW1hcnkgUHJvY2Vzc2VzIGlucHV0IGV2ZW50cyBhcyB0aGUgdXNlciB0eXBlcywgcHJvdmlkaW5nIGltbWVkaWF0ZSBmZWVkYmFjayBmb3Igc2VhcmNoIGZ1bmN0aW9uYWxpdHkuXG4gICAqIFRoaXMgbWV0aG9kIGltcGxlbWVudHMgc21hcnQgY2xlYXJpbmcgYmVoYXZpb3IgLSBpZiB0aGUgaW5wdXQgYmVjb21lcyBlbXB0eSwgaXQgYXV0b21hdGljYWxseVxuICAgKiB0cmlnZ2VycyB0aGUgY2xlYXIgaGFuZGxlci4gT3RoZXJ3aXNlLCBpdCBlbWl0cyB0aGUgY3VycmVudCB2YWx1ZSBmb3IgcmVhbC10aW1lIHNlYXJjaCBzdWdnZXN0aW9uc1xuICAgKiBvciBmaWx0ZXJpbmcuIFRoaXMgZW5hYmxlcyByZXNwb25zaXZlIHNlYXJjaCBleHBlcmllbmNlcyB3aXRoIGRlYm91bmNlZCBldmVudCBoYW5kbGluZy5cbiAgICpcbiAgICogQHBhcmFtIHtDdXN0b21FdmVudH0gZXZlbnQgLSBUaGUgaW5wdXQgZXZlbnQgZnJvbSB0aGUgSW9uaWMgc2VhcmNoYmFyIGNvbnRhaW5pbmcgdGhlIGN1cnJlbnQgdmFsdWVcbiAgICogQHJldHVybiB7dm9pZH1cbiAgICpcbiAgICogQG1lcm1haWRcbiAgICogc2VxdWVuY2VEaWFncmFtXG4gICAqICAgcGFydGljaXBhbnQgVSBhcyBVc2VyXG4gICAqICAgcGFydGljaXBhbnQgUyBhcyBTZWFyY2hiYXJDb21wb25lbnRcbiAgICogICBwYXJ0aWNpcGFudCBFIGFzIEV2ZW50IFN5c3RlbVxuICAgKlxuICAgKiAgIFUtPj5TOiBUeXBlIGluIHNlYXJjaGJhclxuICAgKiAgIFMtPj5TOiBoYW5kbGVJbnB1dChldmVudClcbiAgICogICBTLT4+UzogRXh0cmFjdCB2YWx1ZSBmcm9tIGV2ZW50XG4gICAqICAgYWx0IHZhbHVlIGlzIGVtcHR5IG9yIG51bGxcbiAgICogICAgIFMtPj5TOiBoYW5kbGVDbGVhcigpXG4gICAqICAgICBTLT4+RTogRW1pdCB1bmRlZmluZWRcbiAgICogICBlbHNlIHZhbHVlIGhhcyBjb250ZW50XG4gICAqICAgICBTLT4+UzogZW1pdEV2ZW50KHZhbHVlKVxuICAgKiAgICAgUy0+PkU6IEVtaXQgc2VhcmNoIHZhbHVlXG4gICAqICAgZW5kXG4gICAqXG4gICAqIEBtZW1iZXJPZiBTZWFyY2hiYXJDb21wb25lbnRcbiAgICovXG4gIGhhbmRsZUlucHV0KGV2ZW50OiBDdXN0b21FdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IHZhbHVlID0gZXZlbnQ/LmRldGFpbD8udmFsdWU7XG4gICAgaWYoIXZhbHVlIHx8ICF2YWx1ZT8ubGVuZ3RoKVxuICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlQ2xlYXIoKTtcbiAgICB0aGlzLmVtaXRFdmVudCh2YWx1ZSk7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEhhbmRsZXMgYmx1ciBldmVudHMgb24gdGhlIHNlYXJjaGJhci5cbiAgICogQHN1bW1hcnkgQ3VycmVudGx5IGFuIGVtcHR5IG1ldGhvZCwgY2FuIGJlIGltcGxlbWVudGVkIGZvciBzcGVjaWZpYyBibHVyIGJlaGF2aW9yLlxuICAgKiBAcGFyYW0ge0N1c3RvbUV2ZW50fSBldmVudCAtIFRoZSBibHVyIGV2ZW50IGZyb20gdGhlIHNlYXJjaGJhclxuICAgKiBAcmV0dXJuIHt2b2lkfVxuICAgKi9cbiAgLy8gaGFuZGxlQmx1cihldmVudDogQ3VzdG9tRXZlbnQpOiB2b2lkIHt9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBFbWl0cyBzZWFyY2ggZXZlbnRzIHRocm91Z2ggbXVsdGlwbGUgY2hhbm5lbHMuXG4gICAqIEBzdW1tYXJ5IE9yY2hlc3RyYXRlcyB0aGUgZW1pc3Npb24gb2Ygc2VhcmNoIGV2ZW50cyBib3RoIGFzIGNvbXBvbmVudCBvdXRwdXQgZXZlbnRzIGFuZCBvcHRpb25hbGx5XG4gICAqIGFzIGdsb2JhbCB3aW5kb3cgZXZlbnRzLiBUaGlzIGR1YWwtY2hhbm5lbCBhcHByb2FjaCBlbmFibGVzIGJvdGggZGlyZWN0IHBhcmVudC1jaGlsZCBjb21tdW5pY2F0aW9uXG4gICAqIGFuZCBhcHBsaWNhdGlvbi13aWRlIGV2ZW50IGJyb2FkY2FzdGluZywgc3VwcG9ydGluZyBmbGV4aWJsZSBpbnRlZ3JhdGlvbiBwYXR0ZXJucyBhbmQgbG9vc2UgY291cGxpbmdcbiAgICogYmV0d2VlbiBjb21wb25lbnRzIHRoYXQgbmVlZCB0byByZXNwb25kIHRvIHNlYXJjaCBhY3Rpb25zLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZyB8IHVuZGVmaW5lZH0gdmFsdWUgLSBUaGUgc2VhcmNoIHZhbHVlIHRvIGVtaXQgYWNyb3NzIGFsbCBjb25maWd1cmVkIGNoYW5uZWxzXG4gICAqIEByZXR1cm4ge3ZvaWR9XG4gICAqXG4gICAqIEBtZXJtYWlkXG4gICAqIHNlcXVlbmNlRGlhZ3JhbVxuICAgKiAgIHBhcnRpY2lwYW50IFMgYXMgU2VhcmNoYmFyQ29tcG9uZW50XG4gICAqICAgcGFydGljaXBhbnQgUCBhcyBQYXJlbnQgQ29tcG9uZW50XG4gICAqICAgcGFydGljaXBhbnQgVyBhcyBXaW5kb3cgRXZlbnQgU3lzdGVtXG4gICAqXG4gICAqICAgUy0+PlM6IGVtaXRFdmVudCh2YWx1ZSlcbiAgICogICBTLT4+UDogc2VhcmNoRXZlbnQuZW1pdCh2YWx1ZSlcbiAgICogICBhbHQgZW1pdEV2ZW50VG9XaW5kb3cgaXMgdHJ1ZVxuICAgKiAgICAgUy0+Plc6IHdpbmRvd0V2ZW50RW1pdHRlcignc2VhcmNoYmFyRXZlbnQnLCB7dmFsdWV9KVxuICAgKiAgIGVuZFxuICAgKlxuICAgKiBAbWVtYmVyT2YgU2VhcmNoYmFyQ29tcG9uZW50XG4gICAqL1xuICBlbWl0RXZlbnQodmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCk6IHZvaWQge1xuICAgIHRoaXMuc2VhcmNoRXZlbnQuZW1pdCh2YWx1ZSk7XG4gICAgaWYodGhpcy5lbWl0RXZlbnRUb1dpbmRvdylcbiAgICAgIHdpbmRvd0V2ZW50RW1pdHRlcignc2VhcmNoYmFyRXZlbnQnLCB7dmFsdWU6IHZhbHVlfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gUHJldmVudHMgZGVmYXVsdCBiZWhhdmlvciBvZiBET00gZXZlbnRzLlxuICAgKiBAc3VtbWFyeSBVdGlsaXR5IG1ldGhvZCB0byBwcmV2ZW50IHVud2FudGVkIGRlZmF1bHQgYWN0aW9ucyBvbiBET00gZXZlbnRzLCBzdWNoIGFzIGZvcm0gc3VibWlzc2lvbnNcbiAgICogb3IgbmF2aWdhdGlvbiB0cmlnZ2Vycy4gVGhpcyBpcyBjb21tb25seSB1c2VkIGluIGV2ZW50IGhhbmRsZXJzIHdoZXJlIHRoZSBkZWZhdWx0IGJyb3dzZXIgYmVoYXZpb3JcbiAgICogd291bGQgaW50ZXJmZXJlIHdpdGggdGhlIGNvbXBvbmVudCdzIGN1c3RvbSBsb2dpYyBvciB1c2VyIGV4cGVyaWVuY2UgZGVzaWduLlxuICAgKlxuICAgKiBAcGFyYW0ge0V2ZW50fSBldmVudCAtIFRoZSBET00gZXZlbnQgd2hvc2UgZGVmYXVsdCBiZWhhdmlvciBzaG91bGQgYmUgcHJldmVudGVkXG4gICAqIEByZXR1cm4ge3ZvaWR9XG4gICAqIEBtZW1iZXJPZiBTZWFyY2hiYXJDb21wb25lbnRcbiAgICovXG4gIHByZXZlbnRDaGFuZ2UoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gIH1cbn1cbiIsIjxpb24tc2VhcmNoYmFyXG4gIFtpZF09XCJ1aWRcIlxuICBuZ0NsYXNzPVwiZGNmLXNlYXJjaGJhclwiXG4gIG5hbWU9XCJzZWFyY2hcIlxuICBtb2RlPVwiaW9zXCJcbiAgKGtleXVwLmVudGVyKT1cInByZXZlbnRDaGFuZ2UoJGV2ZW50KVwiXG4gIChpb25DaGFuZ2UpPVwiaGFuZGxlQ2hhbmdlKCRldmVudClcIlxuICAoaW9uSW5wdXQpPVwiaGFuZGxlSW5wdXQoJGV2ZW50KVwiXG4gIChpb25DbGVhcik9XCJoYW5kbGVDbGVhcigpXCJcbiAgW2F1dG9jb21wbGV0ZV09XCJhdXRvY29tcGxldGVcIlxuICBbc2hvd0NhbmNlbEJ1dHRvbl09XCJzaG93Q2FuY2VsQnV0dG9uXCJcbiAgW2NhbmNlbEJ1dHRvblRleHRdPVwiYnV0dG9uQ2FuY2VsVGV4dFwiXG4gIFtjbGVhckljb25dPVwiY2xlYXJJY29uXCJcbiAgW2NvbG9yXT1cImNvbG9yXCJcbiAgW2RlYm91bmNlXT1cImRlYm91bmNlXCJcbiAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgW2VudGVya2V5aGludF09XCJlbnRlcmtleWhpbnRcIlxuICBbaW5wdXRtb2RlXT1cImlucHV0bW9kZVwiXG4gIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gIFtzZWFyY2hJY29uXT1cInNlYXJjaEljb25cIlxuICBbc2hvd0NsZWFyQnV0dG9uXT1cInNob3dDbGVhckJ1dHRvblwiXG4gIFtzcGVsbGNoZWNrXT1cInNwZWxsY2hlY2tcIlxuICBbdHlwZV09XCJ0eXBlXCJcbiAgI2NvbXBvbmVudFxuIC8+XG4iXX0=
|
|
@@ -16,10 +16,10 @@ export class CollapsableDirective {
|
|
|
16
16
|
}
|
|
17
17
|
}
|
|
18
18
|
}
|
|
19
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
20
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.
|
|
19
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CollapsableDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
20
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: CollapsableDirective, isStandalone: true, selector: "[decafCollapsable]", ngImport: i0 }); }
|
|
21
21
|
}
|
|
22
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
22
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CollapsableDirective, decorators: [{
|
|
23
23
|
type: Directive,
|
|
24
24
|
args: [{
|
|
25
25
|
selector: '[decafCollapsable]',
|