@bizdoc/core 2.4.3 → 2.4.5

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.
Files changed (42) hide show
  1. package/assets/bizdoc-schema.json +3 -0
  2. package/assets/themes/brown.min.css +1 -1
  3. package/assets/themes/dark.min.css +1 -1
  4. package/assets/themes/deep-purple-light-blue.min.css +2 -2
  5. package/assets/themes/deep-purple-teal.min.css +1 -1
  6. package/assets/themes/default.min.css +1 -1
  7. package/assets/themes/green.min.css +1 -1
  8. package/assets/themes/indigo.min.css +1 -1
  9. package/esm2022/lib/compose/compose.pane.component.mjs +1 -1
  10. package/esm2022/lib/compose/form-ref.mjs +12 -21
  11. package/esm2022/lib/compose/form-selector/form-selector.sheet.mjs +11 -41
  12. package/esm2022/lib/compose/form.component.mjs +12 -14
  13. package/esm2022/lib/compose/new-menu.component.mjs +16 -43
  14. package/esm2022/lib/compose/overlay.component.exp.mjs +93 -0
  15. package/esm2022/lib/core/base.mjs +1 -1
  16. package/esm2022/lib/core/document-factory.service.mjs +136 -0
  17. package/esm2022/lib/core/info/document-info.service.mjs +1 -1
  18. package/esm2022/lib/core/inputs/auto-complete.input.mjs +3 -3
  19. package/esm2022/lib/core/inputs/select.input.mjs +5 -4
  20. package/esm2022/lib/core/mailbox.service.mjs +7 -7
  21. package/esm2022/lib/core/models.mjs +1 -1
  22. package/esm2022/lib/core/slots/slots.component.mjs +3 -3
  23. package/esm2022/lib/home/home.desktop.component.mjs +9 -37
  24. package/esm2022/lib/notifications/types/invite.notification.mjs +8 -8
  25. package/esm2022/lib/shared.module.mjs +7 -5
  26. package/esm2022/public-api.mjs +2 -1
  27. package/fesm2022/bizdoc-core.mjs +273 -167
  28. package/fesm2022/bizdoc-core.mjs.map +1 -1
  29. package/lib/compose/form-ref.d.ts +7 -12
  30. package/lib/compose/form-selector/form-selector.sheet.d.ts +4 -6
  31. package/lib/compose/form.component.d.ts +1 -0
  32. package/lib/compose/new-menu.component.d.ts +5 -10
  33. package/lib/compose/overlay.component.exp.d.ts +28 -0
  34. package/lib/core/base.d.ts +6 -1
  35. package/lib/core/document-factory.service.d.ts +28 -0
  36. package/lib/core/mailbox.service.d.ts +1 -1
  37. package/lib/core/models.d.ts +1 -0
  38. package/lib/home/home.desktop.component.d.ts +3 -4
  39. package/lib/notifications/types/invite.notification.d.ts +3 -3
  40. package/lib/shared.module.d.ts +203 -202
  41. package/package.json +1 -1
  42. package/public-api.d.ts +2 -1
@@ -6,7 +6,7 @@ import { OpenPolicy } from '../core/configuration';
6
6
  import * as i0 from "@angular/core";
7
7
  import * as i1 from "../core/session.service";
8
8
  import * as i2 from "../core/mailbox.service";
9
- import * as i3 from "../core/prompt.service";
9
+ import * as i3 from "../core/document-factory.service";
10
10
  import * as i4 from "../core/slots/router.service";
11
11
  import * as i5 from "@angular/material/progress-bar";
12
12
  import * as i6 from "@angular/material/list";
@@ -15,21 +15,21 @@ import * as i8 from "@angular/material/icon";
15
15
  import * as i9 from "../core/pipes/translate.pipe";
16
16
  const DEBOUNCE_SEARCH_TIME = 200;
17
17
  export class ComposeMenuComponent {
18
- constructor(_session, _mailbox, _ps, _router) {
18
+ constructor(_session, _mailbox, _factory, _router) {
19
19
  this._session = _session;
20
20
  this._mailbox = _mailbox;
21
- this._ps = _ps;
21
+ this._factory = _factory;
22
22
  this._router = _router;
23
23
  this.change = new EventEmitter();
24
24
  this.search = new FormControl(null);
25
25
  this._destroy = new Subject();
26
- this._working = new Subject();
26
+ this._working$ = new Subject();
27
27
  this.defaultgroup = { forms: [] };
28
28
  this.groups = [];
29
29
  }
30
30
  ngOnInit() {
31
31
  this.items = this.search.valueChanges.pipe(takeUntil(this._destroy), debounceTime(DEBOUNCE_SEARCH_TIME), switchMap(v => this._mailbox.findAll(v ? { contains: v } : { type: 'recent' }, { take: 5 })));
32
- this._working.pipe(takeUntil(this._destroy), debounceTime(200)).subscribe(v => this.working = v);
32
+ this._working$.pipe(takeUntil(this._destroy), debounceTime(200)).subscribe(v => this.working = v);
33
33
  this._session.profile.forms.forEach(f => {
34
34
  if (!f.creatable)
35
35
  return;
@@ -48,27 +48,23 @@ export class ComposeMenuComponent {
48
48
  });
49
49
  }
50
50
  clear() { this.search.setValue(null); }
51
- create(form) {
52
- this._working.next(true);
53
- this._mailbox.create(form).subscribe({
51
+ create(formId) {
52
+ this._working$.next(true);
53
+ this._factory.create(formId).subscribe({
54
54
  next: i => this._nav(i),
55
- error: e => this._error(e),
56
- complete: () => this._working.next(false)
55
+ complete: () => this._working$.next(false)
57
56
  });
58
57
  }
59
58
  copy(item) {
60
- this._working.next(true);
59
+ this._working$.next(true);
61
60
  this.search.disable();
62
- this._mailbox.copy(item.documentId).
61
+ this._factory.copy(item.documentId).
63
62
  subscribe({
64
63
  next: i => {
65
- this.search.setValue(null);
66
- this._ps.toast('Copied', i.number);
64
+ this.clear();
67
65
  this._nav(i);
68
- }, error: e => {
69
- this._error(e);
70
66
  }, complete: () => {
71
- this._working.next(false);
67
+ this._working$.next(false);
72
68
  this.search.enable();
73
69
  }
74
70
  });
@@ -80,40 +76,17 @@ export class ComposeMenuComponent {
80
76
  state: { item }
81
77
  });
82
78
  }
83
- /**
84
- * Handle http error response
85
- * @param e
86
- */
87
- _error(e) {
88
- if (e.constructor.name === 'PositionError')
89
- switch (e.code) {
90
- case 1:
91
- this._ps.error('UserDeniedGeoErr');
92
- break;
93
- default:
94
- this._ps.error('GeoErr');
95
- }
96
- else
97
- switch (e.status) {
98
- case 406: // server ValidationException thrown
99
- const message = e.error;
100
- this._ps.errorString(message);
101
- break;
102
- default:
103
- this._ps.error();
104
- }
105
- }
106
79
  ngOnDestroy() {
107
80
  this._destroy.next();
108
81
  this._destroy.complete();
109
82
  }
110
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: ComposeMenuComponent, deps: [{ token: i1.SessionService }, { token: i2.MailboxService }, { token: i3.PromptService }, { token: i4.PanesRouter }], target: i0.ɵɵFactoryTarget.Component }); }
83
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: ComposeMenuComponent, deps: [{ token: i1.SessionService }, { token: i2.MailboxService }, { token: i3.DocumentFactory }, { token: i4.PanesRouter }], target: i0.ɵɵFactoryTarget.Component }); }
111
84
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.4", type: ComposeMenuComponent, selector: "bizdoc-new-menu", outputs: { change: "change" }, ngImport: i0, template: "<mat-progress-bar mode=\"indeterminate\" [style.visibility]=\"working ? 'visible':'hidden'\"></mat-progress-bar>\n<div class=\"container\">\n <h1 class=\"mat-h1\">{{'New'|translate}}</h1>\n <!--<span class=\"mat-subheader\">BizDoc</span>-->\n\n <mat-nav-list dense>\n @for (f of defaultgroup.forms; track f) {\n <mat-list-item (click)=\"create(f.name)\" [attr.data-help]=\"f.name + '-form'\">\n <mat-icon matListItemIcon>{{f.icon || 'description'}}</mat-icon>\n <span matListItemTitle>{{f.title}}</span>\n </mat-list-item>\n }\n @for (g of groups; track g; let index = $index) {\n @if (index) {\n <mat-divider></mat-divider>\n }\n <h3 mat-subheader>{{g.title}}</h3>\n @for (f of g.forms; track f) {\n <mat-list-item (click)=\"create(f.name)\" [attr.data-help]=\"f.name + '-form'\">\n <mat-icon matListItemIcon>{{f.icon || 'description'}}</mat-icon>\n <span matListItemTitle>{{f.title}}</span>\n </mat-list-item>\n }\n }\n </mat-nav-list>\n</div>\n<!--<mat-spinner radius=\"25\" *ngIf=\"creating===f.name\"></mat-spinner>-->\n", styles: ["h1{font-weight:500;margin:0 16px}form{padding:8px}hr{opacity:.4}\n"], dependencies: [{ kind: "component", type: i5.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "component", type: i6.MatNavList, selector: "mat-nav-list", exportAs: ["matNavList"] }, { kind: "component", type: i6.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: i6.MatListItemIcon, selector: "[matListItemIcon]" }, { kind: "directive", type: i6.MatListSubheaderCssMatStyler, selector: "[mat-subheader], [matSubheader]" }, { kind: "component", type: i7.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "directive", type: i6.MatListItemTitle, selector: "[matListItemTitle]" }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: i9.TranslatePipe, name: "translate" }], animations: [] }); }
112
85
  }
113
86
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: ComposeMenuComponent, decorators: [{
114
87
  type: Component,
115
88
  args: [{ selector: 'bizdoc-new-menu', animations: [], template: "<mat-progress-bar mode=\"indeterminate\" [style.visibility]=\"working ? 'visible':'hidden'\"></mat-progress-bar>\n<div class=\"container\">\n <h1 class=\"mat-h1\">{{'New'|translate}}</h1>\n <!--<span class=\"mat-subheader\">BizDoc</span>-->\n\n <mat-nav-list dense>\n @for (f of defaultgroup.forms; track f) {\n <mat-list-item (click)=\"create(f.name)\" [attr.data-help]=\"f.name + '-form'\">\n <mat-icon matListItemIcon>{{f.icon || 'description'}}</mat-icon>\n <span matListItemTitle>{{f.title}}</span>\n </mat-list-item>\n }\n @for (g of groups; track g; let index = $index) {\n @if (index) {\n <mat-divider></mat-divider>\n }\n <h3 mat-subheader>{{g.title}}</h3>\n @for (f of g.forms; track f) {\n <mat-list-item (click)=\"create(f.name)\" [attr.data-help]=\"f.name + '-form'\">\n <mat-icon matListItemIcon>{{f.icon || 'description'}}</mat-icon>\n <span matListItemTitle>{{f.title}}</span>\n </mat-list-item>\n }\n }\n </mat-nav-list>\n</div>\n<!--<mat-spinner radius=\"25\" *ngIf=\"creating===f.name\"></mat-spinner>-->\n", styles: ["h1{font-weight:500;margin:0 16px}form{padding:8px}hr{opacity:.4}\n"] }]
116
- }], ctorParameters: () => [{ type: i1.SessionService }, { type: i2.MailboxService }, { type: i3.PromptService }, { type: i4.PanesRouter }], propDecorators: { change: [{
89
+ }], ctorParameters: () => [{ type: i1.SessionService }, { type: i2.MailboxService }, { type: i3.DocumentFactory }, { type: i4.PanesRouter }], propDecorators: { change: [{
117
90
  type: Output
118
91
  }] } });
119
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV3LW1lbnUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9jb21wb3NlL25ldy1tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvY29tcG9zZS9uZXctbWVudS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBcUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25GLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBS3BFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7Ozs7Ozs7QUFHbkQsTUFBTSxvQkFBb0IsR0FBRyxHQUFHLENBQUM7QUFPakMsTUFBTSxPQUFPLG9CQUFvQjtJQVMvQixZQUFvQixRQUF3QixFQUNsQyxRQUF3QixFQUN4QixHQUFrQixFQUNsQixPQUFvQjtRQUhWLGFBQVEsR0FBUixRQUFRLENBQWdCO1FBQ2xDLGFBQVEsR0FBUixRQUFRLENBQWdCO1FBQ3hCLFFBQUcsR0FBSCxHQUFHLENBQWU7UUFDbEIsWUFBTyxHQUFQLE9BQU8sQ0FBYTtRQVhYLFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3RDLFdBQU0sR0FBRyxJQUFJLFdBQVcsQ0FBUyxJQUFJLENBQUMsQ0FBQztRQUUvQixhQUFRLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUMvQixhQUFRLEdBQUcsSUFBSSxPQUFPLEVBQVcsQ0FBQztRQUUxQyxpQkFBWSxHQUFVLEVBQUUsS0FBSyxFQUFFLEVB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QUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUM3QixDQUFDOztZQUNFLFFBQVMsQ0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUMvQixLQUFLLEdBQUcsRUFBRSxvQ0FBb0M7b0JBQzVDLE1BQU0sT0FBTyxHQUFJLENBQVMsQ0FBQyxLQUFLLENBQUM7b0JBQ2pDLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO29CQUM5QixNQUFNO2dCQUNSO29CQUNFLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDckIsQ0FBQztJQUNILENBQUM7SUFDRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzNCLENBQUM7OEdBbEdVLG9CQUFvQjtrR0FBcEIsb0JBQW9CLHNGQ2xCakMsMm1DQTJCQSw4bUNEWGMsRUFBRTs7MkZBRUgsb0JBQW9CO2tCQU5oQyxTQUFTOytCQUNFLGlCQUFpQixjQUdmLEVBQUU7c0tBR0ssTUFBTTtzQkFBeEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgc3dpdGNoTWFwLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IEZvcm0sIEhlYWRlck1vZGVsLCBSZWNpcGllbnRNb2RlbCB9IGZyb20gJy4uL2NvcmUvbW9kZWxzJztcclxuaW1wb3J0IHsgUHJvbXB0U2VydmljZSB9IGZyb20gJy4uL2NvcmUvcHJvbXB0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTZXNzaW9uU2VydmljZSB9IGZyb20gJy4uL2NvcmUvc2Vzc2lvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUGFuZXNSb3V0ZXIgfSBmcm9tICcuLi9jb3JlL3Nsb3RzL3JvdXRlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgT3BlblBvbGljeSB9IGZyb20gJy4uL2NvcmUvY29uZmlndXJhdGlvbic7XHJcbmltcG9ydCB7IE1haWxib3hTZXJ2aWNlLCBQb3NpdGlvbkVycm9yIH0gZnJvbSAnLi4vY29yZS9tYWlsYm94LnNlcnZpY2UnO1xyXG5cclxuY29uc3QgREVCT1VOQ0VfU0VBUkNIX1RJTUUgPSAyMDA7XHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYml6ZG9jLW5ldy1tZW51JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vbmV3LW1lbnUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL25ldy1tZW51LmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgYW5pbWF0aW9uczogW11cclxufSlcclxuZXhwb3J0IGNsYXNzIENvbXBvc2VNZW51Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIEBPdXRwdXQoKSByZWFkb25seSBjaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgcmVhZG9ubHkgc2VhcmNoID0gbmV3IEZvcm1Db250cm9sPHN0cmluZz4obnVsbCk7XHJcbiAgaXRlbXM6IE9ic2VydmFibGU8SGVhZGVyTW9kZWxbXT47XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfZGVzdHJveSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfd29ya2luZyA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XHJcbiAgd29ya2luZzogYm9vbGVhbjtcclxuICByZWFkb25seSBkZWZhdWx0Z3JvdXA6IEdyb3VwID0geyBmb3JtczogW10gfTtcclxuICByZWFkb25seSBncm91cHM6IEdyb3VwW10gPSBbXTtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9zZXNzaW9uOiBTZXNzaW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgX21haWxib3g6IE1haWxib3hTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfcHM6IFByb21wdFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9yb3V0ZXI6IFBhbmVzUm91dGVyKSB7IH1cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuaXRlbXMgPSB0aGlzLnNlYXJjaC52YWx1ZUNoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSksXHJcbiAgICAgIGRlYm91bmNlVGltZShERUJPVU5DRV9TRUFSQ0hfVElNRSksXHJcbiAgICAgIHN3aXRjaE1hcCh2ID0+IHRoaXMuX21haWxib3guZmluZEFsbCh2ID8geyBjb250YWluczogdiB9IDogeyB0eXBlOiAncmVjZW50JyB9LCB7IHRha2U6IDUgfSkpKTtcclxuICAgIHRoaXMuX3dvcmtpbmcucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSksIGRlYm91bmNlVGltZSgyMDApKS5zdWJzY3JpYmUodiA9PiB0aGlzLndvcmtpbmcgPSB2KTtcclxuXHJcbiAgICB0aGlzLl9zZXNzaW9uLnByb2ZpbGUuZm9ybXMuZm9yRWFjaChmID0+IHtcclxuICAgICAgaWYgKCFmLmNyZWF0YWJsZSkgcmV0dXJuO1xyXG4gICAgICBpZiAoIWYuZ3JvdXApIHRoaXMuZGVmYXVsdGdyb3VwLmZvcm1zLnB1c2goZik7XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIGxldCBncm91cCA9IHRoaXMuZ3JvdXBzW2YuZ3JvdXBdIGFzIEdyb3VwO1xyXG4gICAgICAgIGlmIChncm91cClcclxuICAgICAgICAgIGdyb3VwLmZvcm1zLnB1c2goZik7XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICBncm91cCA9IHsgdGl0bGU6IGYuZ3JvdXAsIGZvcm1zOiBbZl0gfTtcclxuICAgICAgICAgIHRoaXMuZ3JvdXBzW2YuZ3JvdXBdID0gZ3JvdXA7XHJcbiAgICAgICAgICB0aGlzLmdyb3Vwcy5wdXNoKGdyb3VwKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuICBjbGVhcigpIHsgdGhpcy5zZWFyY2guc2V0VmFsdWUobnVsbCkgfVxyXG4gIGNyZWF0ZShmb3JtOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX3dvcmtpbmcubmV4dCh0cnVlKTtcclxuICAgIHRoaXMuX21haWxib3guY3JlYXRlKGZvcm0pLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IGkgPT5cclxuICAgICAgICB0aGlzLl9uYXYoaSlcclxuICAgICAgLFxyXG4gICAgICBlcnJvcjogZSA9PlxyXG4gICAgICAgIHRoaXMuX2Vycm9yKGUpXHJcbiAgICAgICxcclxuICAgICAgY29tcGxldGU6ICgpID0+XHJcbiAgICAgICAgdGhpcy5fd29ya2luZy5uZXh0KGZhbHNlKVxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIGNvcHkoaXRlbTogSGVhZGVyTW9kZWwpIHtcclxuICAgIHRoaXMuX3dvcmtpbmcubmV4dCh0cnVlKTtcclxuICAgIHRoaXMuc2VhcmNoLmRpc2FibGUoKTtcclxuICAgIHRoaXMuX21haWxib3guY29weShpdGVtLmRvY3VtZW50SWQpLlxyXG4gICAgICBzdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IGkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5zZWFyY2guc2V0VmFsdWUobnVsbCk7XHJcbiAgICAgICAgICB0aGlzLl9wcy50b2FzdCgnQ29waWVkJywgaS5udW1iZXIpO1xyXG4gICAgICAgICAgdGhpcy5fbmF2KGkpO1xyXG4gICAgICAgIH0sIGVycm9yOiBlID0+IHtcclxuICAgICAgICAgIHRoaXMuX2Vycm9yKGUpO1xyXG4gICAgICAgIH0sIGNvbXBsZXRlOiAoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLl93b3JraW5nLm5leHQoZmFsc2UpO1xyXG4gICAgICAgICAgdGhpcy5zZWFyY2guZW5hYmxlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfbmF2KGl0ZW06IFJlY2lwaWVudE1vZGVsPGFueT4pIHtcclxuICAgIHRoaXMuY2hhbmdlLmVtaXQoaXRlbSk7XHJcbiAgICB0aGlzLl9yb3V0ZXIubmF2aWdhdGUoWydtYWlsYm94L2knLCBpdGVtLmlkLmVuY29kZUlkKCldLFxyXG4gICAgICB7XHJcbiAgICAgICAgcG9saWN5OiBPcGVuUG9saWN5LkNsZWFyLFxyXG4gICAgICAgIHN0YXRlOiB7IGl0ZW0gfVxyXG4gICAgICB9KTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogSGFuZGxlIGh0dHAgZXJyb3IgcmVzcG9uc2VcclxuICAgKiBAcGFyYW0gZVxyXG4gICAqL1xyXG4gIHByaXZhdGUgX2Vycm9yKGU6IGFueSB8IFBvc2l0aW9uRXJyb3IpIHtcclxuICAgIGlmIChlLmNvbnN0cnVjdG9yLm5hbWUgPT09ICdQb3NpdGlvbkVycm9yJylcclxuICAgICAgc3dpdGNoICgoZSBhcyBQb3NpdGlvbkVycm9yKS5jb2RlKSB7XHJcbiAgICAgICAgY2FzZSAxOlxyXG4gICAgICAgICAgdGhpcy5fcHMuZXJyb3IoJ1VzZXJEZW5pZWRHZW9FcnInKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICB0aGlzLl9wcy5lcnJvcignR2VvRXJyJyk7XHJcbiAgICAgIH1cclxuICAgIGVsc2Ugc3dpdGNoICgoZSBhcyBhbnkpLnN0YXR1cykge1xyXG4gICAgICBjYXNlIDQwNjogLy8gc2VydmVyIFZhbGlkYXRpb25FeGNlcHRpb24gdGhyb3duXHJcbiAgICAgICAgY29uc3QgbWVzc2FnZSA9IChlIGFzIGFueSkuZXJyb3I7XHJcbiAgICAgICAgdGhpcy5fcHMuZXJyb3JTdHJpbmcobWVzc2FnZSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgdGhpcy5fcHMuZXJyb3IoKTtcclxuICAgIH1cclxuICB9XHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLl9kZXN0cm95Lm5leHQoKTtcclxuICAgIHRoaXMuX2Rlc3Ryb3kuY29tcGxldGUoKTtcclxuICB9XHJcbn1cclxuaW50ZXJmYWNlIEdyb3VwIHtcclxuICB0aXRsZT86IHN0cmluZztcclxuICBmb3JtczogRm9ybVtdO1xyXG59XHJcbiIsIjxtYXQtcHJvZ3Jlc3MtYmFyIG1vZGU9XCJpbmRldGVybWluYXRlXCIgW3N0eWxlLnZpc2liaWxpdHldPVwid29ya2luZyA/ICd2aXNpYmxlJzonaGlkZGVuJ1wiPjwvbWF0LXByb2dyZXNzLWJhcj5cbjxkaXYgY2xhc3M9XCJjb250YWluZXJcIj5cbiAgPGgxIGNsYXNzPVwibWF0LWgxXCI+e3snTmV3J3x0cmFuc2xhdGV9fTwvaDE+XG4gIDwhLS08c3BhbiBjbGFzcz1cIm1hdC1zdWJoZWFkZXJcIj5CaXpEb2M8L3NwYW4+LS0+XG5cbiAgPG1hdC1uYXYtbGlzdCBkZW5zZT5cbiAgICBAZm9yIChmIG9mIGRlZmF1bHRncm91cC5mb3JtczsgdHJhY2sgZikge1xuICAgICAgPG1hdC1saXN0LWl0ZW0gKGNsaWNrKT1cImNyZWF0ZShmLm5hbWUpXCIgW2F0dHIuZGF0YS1oZWxwXT1cImYubmFtZSArICctZm9ybSdcIj5cbiAgICAgICAgPG1hdC1pY29uIG1hdExpc3RJdGVtSWNvbj57e2YuaWNvbiB8fCAnZGVzY3JpcHRpb24nfX08L21hdC1pY29uPlxuICAgICAgICA8c3BhbiBtYXRMaXN0SXRlbVRpdGxlPnt7Zi50aXRsZX19PC9zcGFuPlxuICAgICAgPC9tYXQtbGlzdC1pdGVtPlxuICAgIH1cbiAgICBAZm9yIChnIG9mIGdyb3VwczsgdHJhY2sgZzsgbGV0IGluZGV4ID0gJGluZGV4KSB7XG4gICAgICBAaWYgKGluZGV4KSB7XG4gICAgICAgIDxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPlxuICAgICAgfVxuICAgICAgPGgzIG1hdC1zdWJoZWFkZXI+e3tnLnRpdGxlfX08L2gzPlxuICAgICAgQGZvciAoZiBvZiBnLmZvcm1zOyB0cmFjayBmKSB7XG4gICAgICAgIDxtYXQtbGlzdC1pdGVtIChjbGljayk9XCJjcmVhdGUoZi5uYW1lKVwiIFthdHRyLmRhdGEtaGVscF09XCJmLm5hbWUgKyAnLWZvcm0nXCI+XG4gICAgICAgICAgPG1hdC1pY29uIG1hdExpc3RJdGVtSWNvbj57e2YuaWNvbiB8fCAnZGVzY3JpcHRpb24nfX08L21hdC1pY29uPlxuICAgICAgICAgIDxzcGFuIG1hdExpc3RJdGVtVGl0bGU+e3tmLnRpdGxlfX08L3NwYW4+XG4gICAgICAgIDwvbWF0LWxpc3QtaXRlbT5cbiAgICAgIH1cbiAgICB9XG4gIDwvbWF0LW5hdi1saXN0PlxuPC9kaXY+XG48IS0tPG1hdC1zcGlubmVyIHJhZGl1cz1cIjI1XCIgKm5nSWY9XCJjcmVhdGluZz09PWYubmFtZVwiPjwvbWF0LXNwaW5uZXI+LS0+XG4iXX0=
92
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV3LW1lbnUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9jb21wb3NlL25ldy1tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvY29tcG9zZS9uZXctbWVudS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBcUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25GLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSXBFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7Ozs7Ozs7QUFJbkQsTUFBTSxvQkFBb0IsR0FBRyxHQUFHLENBQUM7QUFRakMsTUFBTSxPQUFPLG9CQUFvQjtJQVMvQixZQUNVLFFBQXdCLEVBQ3hCLFFBQXdCLEVBQ3hCLFFBQXlCLEVBQ3pCLE9BQW9CO1FBSHBCLGFBQVEsR0FBUixRQUFRLENBQWdCO1FBQ3hCLGFBQVEsR0FBUixRQUFRLENBQWdCO1FBQ3hCLGFBQVEsR0FBUixRQUFRLENBQWlCO1FBQ3pCLFlBQU8sR0FBUCxPQUFPLENBQWE7UUFaWCxXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUN0QyxXQUFNLEdBQUcsSUFBSSxXQUFXLENBQVMsSUFBSSxDQUFDLENBQUM7UUFFL0IsYUFBUSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFDL0IsY0FBUyxHQUFHLElBQUksT0FBTyxFQUFXLENBQUM7UUFFM0MsaUJBQVksR0FBVSxFQUFFLEtBQUssRUFBRSxF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QUMsQ0FBQyxDQUFDLENBQUM7WUFDZixDQUFDLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRTtnQkFDaEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQzNCLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDdkIsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNQLENBQUM7SUFDTyxJQUFJLENBQUMsSUFBeUI7UUFDcEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdkIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxFQUNyRDtZQUNFLE1BQU0sRUFBRSxVQUFVLENBQUMsS0FBSztZQUN4QixLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUU7U0FDaEIsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUNELFdBQVc7UUFDVCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDM0IsQ0FBQzs4R0F2RVUsb0JBQW9CO2tHQUFwQixvQkFBb0Isc0ZDbkJqQywybUNBMkJBLDhtQ0RWYyxFQUFFOzsyRkFFSCxvQkFBb0I7a0JBTmhDLFNBQVM7K0JBQ0UsaUJBQWlCLGNBR2YsRUFBRTt3S0FHSyxNQUFNO3NCQUF4QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBzd2l0Y2hNYXAsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgRm9ybSwgSGVhZGVyTW9kZWwsIFJlY2lwaWVudE1vZGVsIH0gZnJvbSAnLi4vY29yZS9tb2RlbHMnO1xyXG5pbXBvcnQgeyBTZXNzaW9uU2VydmljZSB9IGZyb20gJy4uL2NvcmUvc2Vzc2lvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUGFuZXNSb3V0ZXIgfSBmcm9tICcuLi9jb3JlL3Nsb3RzL3JvdXRlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgT3BlblBvbGljeSB9IGZyb20gJy4uL2NvcmUvY29uZmlndXJhdGlvbic7XHJcbmltcG9ydCB7IE1haWxib3hTZXJ2aWNlIH0gZnJvbSAnLi4vY29yZS9tYWlsYm94LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBEb2N1bWVudEZhY3RvcnkgfSBmcm9tICcuLi9jb3JlL2RvY3VtZW50LWZhY3Rvcnkuc2VydmljZSc7XHJcblxyXG5jb25zdCBERUJPVU5DRV9TRUFSQ0hfVElNRSA9IDIwMDtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYml6ZG9jLW5ldy1tZW51JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vbmV3LW1lbnUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL25ldy1tZW51LmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgYW5pbWF0aW9uczogW11cclxufSlcclxuZXhwb3J0IGNsYXNzIENvbXBvc2VNZW51Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIEBPdXRwdXQoKSByZWFkb25seSBjaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgcmVhZG9ubHkgc2VhcmNoID0gbmV3IEZvcm1Db250cm9sPHN0cmluZz4obnVsbCk7XHJcbiAgaXRlbXM6IE9ic2VydmFibGU8SGVhZGVyTW9kZWxbXT47XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfZGVzdHJveSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfd29ya2luZyQgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xyXG4gIHdvcmtpbmc6IGJvb2xlYW47XHJcbiAgcmVhZG9ubHkgZGVmYXVsdGdyb3VwOiBHcm91cCA9IHsgZm9ybXM6IFtdIH07XHJcbiAgcmVhZG9ubHkgZ3JvdXBzOiBHcm91cFtdID0gW107XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF9zZXNzaW9uOiBTZXNzaW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgX21haWxib3g6IE1haWxib3hTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfZmFjdG9yeTogRG9jdW1lbnRGYWN0b3J5LFxyXG4gICAgcHJpdmF0ZSBfcm91dGVyOiBQYW5lc1JvdXRlcikgeyB9XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLml0ZW1zID0gdGhpcy5zZWFyY2gudmFsdWVDaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpLFxyXG4gICAgICBkZWJvdW5jZVRpbWUoREVCT1VOQ0VfU0VBUkNIX1RJTUUpLFxyXG4gICAgICBzd2l0Y2hNYXAodiA9PiB0aGlzLl9tYWlsYm94LmZpbmRBbGwodiA/IHsgY29udGFpbnM6IHYgfSA6IHsgdHlwZTogJ3JlY2VudCcgfSwgeyB0YWtlOiA1IH0pKSk7XHJcbiAgICB0aGlzLl93b3JraW5nJC5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95KSwgZGVib3VuY2VUaW1lKDIwMCkpLnN1YnNjcmliZSh2ID0+IHRoaXMud29ya2luZyA9IHYpO1xyXG5cclxuICAgIHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5mb3Jtcy5mb3JFYWNoKGYgPT4ge1xyXG4gICAgICBpZiAoIWYuY3JlYXRhYmxlKSByZXR1cm47XHJcbiAgICAgIGlmICghZi5ncm91cCkgdGhpcy5kZWZhdWx0Z3JvdXAuZm9ybXMucHVzaChmKTtcclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgbGV0IGdyb3VwID0gdGhpcy5ncm91cHNbZi5ncm91cF0gYXMgR3JvdXA7XHJcbiAgICAgICAgaWYgKGdyb3VwKVxyXG4gICAgICAgICAgZ3JvdXAuZm9ybXMucHVzaChmKTtcclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIGdyb3VwID0geyB0aXRsZTogZi5ncm91cCwgZm9ybXM6IFtmXSB9O1xyXG4gICAgICAgICAgdGhpcy5ncm91cHNbZi5ncm91cF0gPSBncm91cDtcclxuICAgICAgICAgIHRoaXMuZ3JvdXBzLnB1c2goZ3JvdXApO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIGNsZWFyKCkgeyB0aGlzLnNlYXJjaC5zZXRWYWx1ZShudWxsKSB9XHJcbiAgY3JlYXRlKGZvcm1JZDogc3RyaW5nKSB7XHJcbiAgICB0aGlzLl93b3JraW5nJC5uZXh0KHRydWUpO1xyXG4gICAgdGhpcy5fZmFjdG9yeS5jcmVhdGUoZm9ybUlkKS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiBpID0+IFxyXG4gICAgICAgIHRoaXMuX25hdihpKVxyXG4gICAgICAsXHJcbiAgICAgIGNvbXBsZXRlOiAoKSA9PlxyXG4gICAgICAgIHRoaXMuX3dvcmtpbmckLm5leHQoZmFsc2UpXHJcbiAgICB9KTtcclxuICB9XHJcbiAgY29weShpdGVtOiBIZWFkZXJNb2RlbCkge1xyXG4gICAgdGhpcy5fd29ya2luZyQubmV4dCh0cnVlKTtcclxuICAgIHRoaXMuc2VhcmNoLmRpc2FibGUoKTtcclxuICAgIHRoaXMuX2ZhY3RvcnkuY29weShpdGVtLmRvY3VtZW50SWQpLlxyXG4gICAgICBzdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IGkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5jbGVhcigpO1xyXG4gICAgICAgICAgdGhpcy5fbmF2KGkpO1xyXG4gICAgICAgIH0sIGNvbXBsZXRlOiAoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLl93b3JraW5nJC5uZXh0KGZhbHNlKTtcclxuICAgICAgICAgIHRoaXMuc2VhcmNoLmVuYWJsZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX25hdihpdGVtOiBSZWNpcGllbnRNb2RlbDxhbnk+KSB7XHJcbiAgICB0aGlzLmNoYW5nZS5lbWl0KGl0ZW0pO1xyXG4gICAgdGhpcy5fcm91dGVyLm5hdmlnYXRlKFsnbWFpbGJveC9pJywgaXRlbS5pZC5lbmNvZGVJZCgpXSxcclxuICAgICAge1xyXG4gICAgICAgIHBvbGljeTogT3BlblBvbGljeS5DbGVhcixcclxuICAgICAgICBzdGF0ZTogeyBpdGVtIH1cclxuICAgICAgfSk7XHJcbiAgfVxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fZGVzdHJveS5uZXh0KCk7XHJcbiAgICB0aGlzLl9kZXN0cm95LmNvbXBsZXRlKCk7XHJcbiAgfVxyXG59XHJcbmludGVyZmFjZSBHcm91cCB7XHJcbiAgdGl0bGU/OiBzdHJpbmc7XHJcbiAgZm9ybXM6IEZvcm1bXTtcclxufVxyXG4iLCI8bWF0LXByb2dyZXNzLWJhciBtb2RlPVwiaW5kZXRlcm1pbmF0ZVwiIFtzdHlsZS52aXNpYmlsaXR5XT1cIndvcmtpbmcgPyAndmlzaWJsZSc6J2hpZGRlbidcIj48L21hdC1wcm9ncmVzcy1iYXI+XG48ZGl2IGNsYXNzPVwiY29udGFpbmVyXCI+XG4gIDxoMSBjbGFzcz1cIm1hdC1oMVwiPnt7J05ldyd8dHJhbnNsYXRlfX08L2gxPlxuICA8IS0tPHNwYW4gY2xhc3M9XCJtYXQtc3ViaGVhZGVyXCI+Qml6RG9jPC9zcGFuPi0tPlxuXG4gIDxtYXQtbmF2LWxpc3QgZGVuc2U+XG4gICAgQGZvciAoZiBvZiBkZWZhdWx0Z3JvdXAuZm9ybXM7IHRyYWNrIGYpIHtcbiAgICAgIDxtYXQtbGlzdC1pdGVtIChjbGljayk9XCJjcmVhdGUoZi5uYW1lKVwiIFthdHRyLmRhdGEtaGVscF09XCJmLm5hbWUgKyAnLWZvcm0nXCI+XG4gICAgICAgIDxtYXQtaWNvbiBtYXRMaXN0SXRlbUljb24+e3tmLmljb24gfHwgJ2Rlc2NyaXB0aW9uJ319PC9tYXQtaWNvbj5cbiAgICAgICAgPHNwYW4gbWF0TGlzdEl0ZW1UaXRsZT57e2YudGl0bGV9fTwvc3Bhbj5cbiAgICAgIDwvbWF0LWxpc3QtaXRlbT5cbiAgICB9XG4gICAgQGZvciAoZyBvZiBncm91cHM7IHRyYWNrIGc7IGxldCBpbmRleCA9ICRpbmRleCkge1xuICAgICAgQGlmIChpbmRleCkge1xuICAgICAgICA8bWF0LWRpdmlkZXI+PC9tYXQtZGl2aWRlcj5cbiAgICAgIH1cbiAgICAgIDxoMyBtYXQtc3ViaGVhZGVyPnt7Zy50aXRsZX19PC9oMz5cbiAgICAgIEBmb3IgKGYgb2YgZy5mb3JtczsgdHJhY2sgZikge1xuICAgICAgICA8bWF0LWxpc3QtaXRlbSAoY2xpY2spPVwiY3JlYXRlKGYubmFtZSlcIiBbYXR0ci5kYXRhLWhlbHBdPVwiZi5uYW1lICsgJy1mb3JtJ1wiPlxuICAgICAgICAgIDxtYXQtaWNvbiBtYXRMaXN0SXRlbUljb24+e3tmLmljb24gfHwgJ2Rlc2NyaXB0aW9uJ319PC9tYXQtaWNvbj5cbiAgICAgICAgICA8c3BhbiBtYXRMaXN0SXRlbVRpdGxlPnt7Zi50aXRsZX19PC9zcGFuPlxuICAgICAgICA8L21hdC1saXN0LWl0ZW0+XG4gICAgICB9XG4gICAgfVxuICA8L21hdC1uYXYtbGlzdD5cbjwvZGl2PlxuPCEtLTxtYXQtc3Bpbm5lciByYWRpdXM9XCIyNVwiICpuZ0lmPVwiY3JlYXRpbmc9PT1mLm5hbWVcIj48L21hdC1zcGlubmVyPi0tPlxuIl19
@@ -0,0 +1,93 @@
1
+ import { Component, Inject, Injector, ViewChild, ViewContainerRef } from '@angular/core';
2
+ import { DIALOG_DATA } from '@angular/cdk/dialog';
3
+ import { Subject } from 'rxjs';
4
+ import { takeUntil } from 'rxjs/operators';
5
+ import { FormRef } from './form-ref';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "../core/session.service";
8
+ import * as i2 from "../core/router";
9
+ import * as i3 from "../core/component-factory-resolver";
10
+ import * as i4 from "../core/guide/guide.service";
11
+ import * as i5 from "../core/hub.service";
12
+ import * as i6 from "@angular/material/progress-bar";
13
+ import * as i7 from "@angular/material/button";
14
+ import * as i8 from "@angular/material/icon";
15
+ import * as i9 from "../core/popup/tooltip.directive";
16
+ import * as i10 from "../core/pipes/translate.pipe";
17
+ export class OverlayFormComponent {
18
+ constructor(session, _router, _injector, _cf, _guide, _messaging, formId) {
19
+ this._router = _router;
20
+ this._injector = _injector;
21
+ this._cf = _cf;
22
+ this._guide = _guide;
23
+ this._messaging = _messaging;
24
+ this.created$ = new Subject();
25
+ this._destroy = new Subject();
26
+ this.form = session.profile.forms.find(f => f.name === formId);
27
+ }
28
+ ngOnInit() {
29
+ if (!this.form.template)
30
+ throw (`Form '${this.form.name}' model missing '[Template()]' attribute.`);
31
+ const comp = this._cf.component(this.form.template);
32
+ this._formRef = new FormRef(this._router, this.form);
33
+ // create on form event
34
+ this._formRef._create$.pipe(takeUntil(this._destroy)).
35
+ subscribe({
36
+ next: m => {
37
+ this.creating = true;
38
+ this.created$.next(m);
39
+ },
40
+ error: this.created$.error.bind(this)
41
+ });
42
+ const injector = Injector.create({
43
+ providers: [
44
+ {
45
+ provide: FormRef, useValue: this._formRef
46
+ }
47
+ ], parent: this._injector
48
+ });
49
+ const componentRef = this.container.createComponent(comp, { injector });
50
+ const instance = componentRef.instance;
51
+ this._formRef._mode = instance.mode = 'overlay';
52
+ // callback
53
+ this._messaging.callback$.pipe(takeUntil(this._destroy)).subscribe(e => instance.onMessage && instance.onMessage(e.message));
54
+ }
55
+ guide() {
56
+ this._guide.start(this.form.guide);
57
+ }
58
+ ngOnDestroy() {
59
+ this.created$.unsubscribe();
60
+ this._destroy.next();
61
+ }
62
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: OverlayFormComponent, deps: [{ token: i1.SessionService }, { token: i2.RouterImpl }, { token: i0.Injector }, { token: i3.BizDocComponentFactoryResolver }, { token: i4.GuideService }, { token: i5.HubService }, { token: DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
63
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.4", type: OverlayFormComponent, selector: "ng-component", viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true, read: ViewContainerRef, static: true }], ngImport: i0, template: `
64
+ <h1 class="mat-h1 row">{{form.title}}
65
+ @if(form.guide) {
66
+ <span class="divider"></span>
67
+ <button mat-icon-button (click)="guide()" [bizdocTooltip]="'Help'|translate"><mat-icon>support</mat-icon></button>
68
+ }
69
+ </h1>
70
+ <hr />
71
+ <mat-progress-bar mode="indeterminate" [style.visibility]="creating ? 'visible':'hidden'"></mat-progress-bar>
72
+ <ng-container #container></ng-container>`, isInline: true, styles: [":host{display:flex;flex-direction:column}\n"], dependencies: [{ kind: "component", type: i6.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "component", type: i7.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i9.TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: i10.TranslatePipe, name: "translate" }] }); }
73
+ }
74
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: OverlayFormComponent, decorators: [{
75
+ type: Component,
76
+ args: [{ template: `
77
+ <h1 class="mat-h1 row">{{form.title}}
78
+ @if(form.guide) {
79
+ <span class="divider"></span>
80
+ <button mat-icon-button (click)="guide()" [bizdocTooltip]="'Help'|translate"><mat-icon>support</mat-icon></button>
81
+ }
82
+ </h1>
83
+ <hr />
84
+ <mat-progress-bar mode="indeterminate" [style.visibility]="creating ? 'visible':'hidden'"></mat-progress-bar>
85
+ <ng-container #container></ng-container>`, host: {}, styles: [":host{display:flex;flex-direction:column}\n"] }]
86
+ }], ctorParameters: () => [{ type: i1.SessionService }, { type: i2.RouterImpl }, { type: i0.Injector }, { type: i3.BizDocComponentFactoryResolver }, { type: i4.GuideService }, { type: i5.HubService }, { type: undefined, decorators: [{
87
+ type: Inject,
88
+ args: [DIALOG_DATA]
89
+ }] }], propDecorators: { container: [{
90
+ type: ViewChild,
91
+ args: ['container', { static: true, read: ViewContainerRef }]
92
+ }] } });
93
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS5jb21wb25lbnQuZXhwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9jb21wb3NlL292ZXJsYXkuY29tcG9uZW50LmV4cC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQXFCLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU1RyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFlBQVksQ0FBQzs7Ozs7Ozs7Ozs7O0FBNEJyQyxNQUFNLE9BQU8sb0JBQW9CO0lBTy9CLFlBQ0UsT0FBdUIsRUFDZixPQUFtQixFQUNuQixTQUFtQixFQUNuQixHQUFtQyxFQUNuQyxNQUFvQixFQUNwQixVQUFzQixFQUNULE1BQWM7UUFMM0IsWUFBTyxHQUFQLE9BQU8sQ0FBWTtRQUNuQixjQUFTLEdBQVQsU0FBUyxDQUFVO1FBQ25CLFFBQUcsR0FBSCxHQUFHLENBQWdDO1FBQ25DLFdBQU0sR0FBTixNQUFNLENBQWM7UUFDcEIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQVp2QixhQUFRLEdBQUcsSUFBSSxPQUFPLEVBQU8sQ0FBQztRQUt0QixhQUFRLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQVM5QyxJQUFJLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssTUFBTSxDQUFDLENBQUM7SUFDakUsQ0FBQztJQUNELFFBQVE7UUFDTixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRO1lBQ3JCLE1BQU0sQ0FBQyxTQUFTLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSwyQ0FBMkMsQ0FBQyxDQUFDO1FBQzdFLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDcEQsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNyRCx1QkFBdUI7UUFDdkIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDbkQsU0FBUyxDQUFDO1lBQ1IsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFO2dCQUNSLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO2dCQUNyQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN4QixDQUFDO1lBQ0QsS0FBSyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7U0FDdEMsQ0FBQyxDQUFDO1FBQ0wsTUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQztZQUMvQixTQUFTLEVBQUU7Z0JBQ1Q7b0JBQ0UsT0FBTyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7aUJBQzFDO2FBQ0YsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLFNBQVM7U0FDMUIsQ0FBQyxDQUFDO1FBRUgsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQXFCLElBQUksRUFBRSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFFNUYsTUFBTSxRQUFRLEdBQUcsWUFBWSxDQUFDLFFBQVEsQ0FBQztRQUN2QyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssR0FBRyxRQUFRLENBQUMsSUFBSSxHQUFHLFNBQVMsQ0FBQztRQUVoRCxXQUFXO1FBQ1gsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FDckUsUUFBUSxDQUFDLFNBQVMsSUFBSSxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFDRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBQ0QsV0FBVztRQUNULElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDNUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN2QixDQUFDOzhHQXREVSxvQkFBb0Isc01BY3JCLFdBQVc7a0dBZFYsb0JBQW9CLHVJQUVlLGdCQUFnQiwyQ0FmcEQ7Ozs7Ozs7OzsyQ0FTK0I7OzJGQUk5QixvQkFBb0I7a0JBbEJoQyxTQUFTOytCQUtFOzs7Ozs7Ozs7MkNBUytCLFFBQ25DLEVBQUU7OzBCQWlCTCxNQUFNOzJCQUFDLFdBQVc7eUNBWjZDLFNBQVM7c0JBQTFFLFNBQVM7dUJBQUMsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCwgSW5qZWN0b3IsIE9uRGVzdHJveSwgT25Jbml0LCBWaWV3Q2hpbGQsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgdHJpZ2dlciB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xyXG5pbXBvcnQgeyBESUFMT0dfREFUQSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kaWFsb2cnO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgRm9ybVJlZiB9IGZyb20gJy4vZm9ybS1yZWYnO1xyXG5pbXBvcnQgeyBSb3V0ZXJJbXBsIH0gZnJvbSAnLi4vY29yZS9yb3V0ZXInO1xyXG5pbXBvcnQgeyBTZXNzaW9uU2VydmljZSB9IGZyb20gJy4uL2NvcmUvc2Vzc2lvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQml6RG9jQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyIH0gZnJvbSAnLi4vY29yZS9jb21wb25lbnQtZmFjdG9yeS1yZXNvbHZlcic7XHJcbmltcG9ydCB7IEh1YlNlcnZpY2UgfSBmcm9tICcuLi9jb3JlL2h1Yi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgR3VpZGVTZXJ2aWNlIH0gZnJvbSAnLi4vY29yZS9ndWlkZS9ndWlkZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRm9ybUNvbXBvbmVudCB9IGZyb20gJy4uL2NvcmUvYmFzZSc7XHJcbmltcG9ydCB7IEZvcm0gfSBmcm9tICcuLi9jb3JlL21vZGVscyc7XHJcbmltcG9ydCB7IEVudGVyRXhpdFRvcCB9IGZyb20gJy4uL2NvcmUvYW5pbWF0aW9ucyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzdHlsZXM6IGA6aG9zdCB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICB9YCxcclxuICB0ZW1wbGF0ZTogYFxyXG4gIDxoMSBjbGFzcz1cIm1hdC1oMSByb3dcIj57e2Zvcm0udGl0bGV9fVxyXG4gIEBpZihmb3JtLmd1aWRlKSB7XHJcbiAgICA8c3BhbiBjbGFzcz1cImRpdmlkZXJcIj48L3NwYW4+XHJcbiAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwiZ3VpZGUoKVwiIFtiaXpkb2NUb29sdGlwXT1cIidIZWxwJ3x0cmFuc2xhdGVcIj48bWF0LWljb24+c3VwcG9ydDwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgfVxyXG4gIDwvaDE+XHJcbiAgPGhyIC8+XHJcbiAgPG1hdC1wcm9ncmVzcy1iYXIgbW9kZT1cImluZGV0ZXJtaW5hdGVcIiBbc3R5bGUudmlzaWJpbGl0eV09XCJjcmVhdGluZyA/ICd2aXNpYmxlJzonaGlkZGVuJ1wiPjwvbWF0LXByb2dyZXNzLWJhcj5cclxuICA8bmctY29udGFpbmVyICNjb250YWluZXI+PC9uZy1jb250YWluZXI+YCxcclxuICBob3N0OiB7fSxcclxuLy8gIGFuaW1hdGlvbnM6IFt0cmlnZ2VyKCdmb3JtJywgRW50ZXJFeGl0VG9wKV1cclxufSlcclxuZXhwb3J0IGNsYXNzIE92ZXJsYXlGb3JtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIHJlYWRvbmx5IGNyZWF0ZWQkID0gbmV3IFN1YmplY3Q8YW55PigpO1xyXG4gIEBWaWV3Q2hpbGQoJ2NvbnRhaW5lcicsIHsgc3RhdGljOiB0cnVlLCByZWFkOiBWaWV3Q29udGFpbmVyUmVmIH0pIGNvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZjtcclxuICBwcml2YXRlIF9mb3JtUmVmOiBGb3JtUmVmPGFueSwgYW55PjtcclxuICBmb3JtOiBGb3JtO1xyXG4gIGNyZWF0aW5nOiBib29sZWFuO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgX2Rlc3Ryb3kgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgc2Vzc2lvbjogU2Vzc2lvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9yb3V0ZXI6IFJvdXRlckltcGwsXHJcbiAgICBwcml2YXRlIF9pbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgICBwcml2YXRlIF9jZjogQml6RG9jQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxyXG4gICAgcHJpdmF0ZSBfZ3VpZGU6IEd1aWRlU2VydmljZSxcclxuICAgIHByaXZhdGUgX21lc3NhZ2luZzogSHViU2VydmljZSxcclxuICAgIEBJbmplY3QoRElBTE9HX0RBVEEpIGZvcm1JZDogc3RyaW5nKSB7XHJcbiAgICB0aGlzLmZvcm0gPSBzZXNzaW9uLnByb2ZpbGUuZm9ybXMuZmluZChmID0+IGYubmFtZSA9PT0gZm9ybUlkKTtcclxuICB9XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuZm9ybS50ZW1wbGF0ZSlcclxuICAgICAgdGhyb3cgKGBGb3JtICcke3RoaXMuZm9ybS5uYW1lfScgbW9kZWwgbWlzc2luZyAnW1RlbXBsYXRlKCldJyBhdHRyaWJ1dGUuYCk7XHJcbiAgICBjb25zdCBjb21wID0gdGhpcy5fY2YuY29tcG9uZW50KHRoaXMuZm9ybS50ZW1wbGF0ZSk7XHJcbiAgICB0aGlzLl9mb3JtUmVmID0gbmV3IEZvcm1SZWYodGhpcy5fcm91dGVyLCB0aGlzLmZvcm0pO1xyXG4gICAgLy8gY3JlYXRlIG9uIGZvcm0gZXZlbnRcclxuICAgIHRoaXMuX2Zvcm1SZWYuX2NyZWF0ZSQucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSkpLlxyXG4gICAgICBzdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IG0gPT4ge1xyXG4gICAgICAgICAgdGhpcy5jcmVhdGluZyA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLmNyZWF0ZWQkLm5leHQobSk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBlcnJvcjogdGhpcy5jcmVhdGVkJC5lcnJvci5iaW5kKHRoaXMpXHJcbiAgICAgIH0pO1xyXG4gICAgY29uc3QgaW5qZWN0b3IgPSBJbmplY3Rvci5jcmVhdGUoe1xyXG4gICAgICBwcm92aWRlcnM6IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICBwcm92aWRlOiBGb3JtUmVmLCB1c2VWYWx1ZTogdGhpcy5fZm9ybVJlZlxyXG4gICAgICAgIH1cclxuICAgICAgXSwgcGFyZW50OiB0aGlzLl9pbmplY3RvclxyXG4gICAgfSk7XHJcblxyXG4gICAgY29uc3QgY29tcG9uZW50UmVmID0gdGhpcy5jb250YWluZXIuY3JlYXRlQ29tcG9uZW50PEZvcm1Db21wb25lbnQ8YW55Pj4oY29tcCwgeyBpbmplY3RvciB9KTtcclxuXHJcbiAgICBjb25zdCBpbnN0YW5jZSA9IGNvbXBvbmVudFJlZi5pbnN0YW5jZTtcclxuICAgIHRoaXMuX2Zvcm1SZWYuX21vZGUgPSBpbnN0YW5jZS5tb2RlID0gJ292ZXJsYXknO1xyXG5cclxuICAgIC8vIGNhbGxiYWNrXHJcbiAgICB0aGlzLl9tZXNzYWdpbmcuY2FsbGJhY2skLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpKS5zdWJzY3JpYmUoZSA9PlxyXG4gICAgICBpbnN0YW5jZS5vbk1lc3NhZ2UgJiYgaW5zdGFuY2Uub25NZXNzYWdlKGUubWVzc2FnZSkpO1xyXG4gIH1cclxuICBndWlkZSgpIHtcclxuICAgIHRoaXMuX2d1aWRlLnN0YXJ0KHRoaXMuZm9ybS5ndWlkZSk7XHJcbiAgfVxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5jcmVhdGVkJC51bnN1YnNjcmliZSgpO1xyXG4gICAgdGhpcy5fZGVzdHJveS5uZXh0KCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvY29yZS9iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBdHRhY2htZW50LCBEb2N1bWVudE1vZGVsLCBGaWVsZEluZm8gfSBmcm9tIFwiLi4vY29yZS9tb2RlbHNcIjtcclxuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBNYXRGb3JtRmllbGRBcHBlYXJhbmNlIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGRcIjtcclxuXHJcbmV4cG9ydCBkZWNsYXJlIHR5cGUgVmlld01vZGUgPSAnY29tcG9zZScgfCAncHJldmlldycgfCAncHJpbnQnIHwgJ3ZlcnNpb24nO1xyXG5cclxuZXhwb3J0IGRlY2xhcmUgdHlwZSBGb3JtTW9kZSA9ICcnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBGb3JtQ29tcG9uZW50PFRNb2RlbD4gZXh0ZW5kcyBNYW5hZ2VkQ29tcG9uZW50PFRNb2RlbD4ge1xyXG4gIGZvcm06IEZvcm1Hcm91cDtcclxuICBtb2RlOiBWaWV3TW9kZTtcclxuICBvbkJpbmQoZGF0YTogRG9jdW1lbnRNb2RlbDxUTW9kZWw+LCB2ZXJzaW9uPzogVE1vZGVsKTogdm9pZDtcclxuICBvbk1lc3NhZ2U/PFQgPSBhbnk+KG9iajogVCk7XHJcbiAgb25TYXZlPygpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHwgUHJvbWlzZTxib29sZWFuPiB8IGJvb2xlYW47XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBDb250cm9sRGVzaWduZXI8VCA9IGFueT4ge1xyXG4gIGZvcm06IEZvcm1Hcm91cDtcclxuICBvbkJpbmQ/KG1vZGVsOiBUKTtcclxufVxyXG5leHBvcnRcclxuICBpbnRlcmZhY2UgQ29udHJvbENvbXBvbmVudDxUVmFsdWUgPSBhbnk+IHtcclxuICBhcHBlYXJhbmNlPzogTWF0Rm9ybUZpZWxkQXBwZWFyYW5jZTtcclxuICBtb2RlOiBWaWV3TW9kZTtcclxuICBjb250cm9sOiBBYnN0cmFjdENvbnRyb2w8VFZhbHVlPjtcclxuICBmb2N1cz8oKTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBSZXBvcnRDb21wb25lbnQ8VFJlc3VsdCwgVEFyZ3MgPSBhbnksIFRPcHRpb25zID0gYW55PiBleHRlbmRzIE1hbmFnZWRDb21wb25lbnQ8VEFyZ3M+IHtcclxuICBvbkJpbmQoZGF0YTogVFJlc3VsdFtdLCBhcmdzPzogVEFyZ3MpO1xyXG4gIG9uRXhwb3J0PyhkYXRhOiBUUmVzdWx0W10pO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEFyZ3VtZW50c0NvbXBvbmVudDxUQXJncyA9IGFueT4gZXh0ZW5kcyBNYW5hZ2VkQ29tcG9uZW50PFRBcmdzPiB7XHJcbiAgZm9ybTogRm9ybUdyb3VwO1xyXG4gIC8vb25CaW5kPyhkYXRhOiBGaWVsZEluZm9bXSk6IHZvaWQ7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgTWFuYWdlZENvbXBvbmVudDxUQXJncz4ge1xyXG4gIC8vbW9kZWxDaGFuZ2U6IE9ic2VydmFibGU8VEFyZ3M+O1xyXG4gIC8vcmVhZG9ubHkgdmFsaWRDaGFuZ2VzOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xyXG4gIC8vcmVhZG9ubHkgZGlydHlDaGFuZ2VzOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFdpZGdldENvbXBvbmVudDxUUmVzdWx0LCBUQXJncyA9IGFueT4ge1xyXG4gIG9uQmluZChkYXRhOiBUUmVzdWx0LCBhcmdzPzogVEFyZ3MpO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFV0aWxpdHlDb21wb25lbnQ8VFJlc3VsdCA9IGFueSwgVEFyZ3MgPSBhbnksIFRPcHRpb25zID0gYW55PiB7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBFeHBsb3JlSXRlbUNvbXBvbmVudDxUTW9kZWw+IHtcclxuICBvbkJpbmQoZGF0YTogVE1vZGVsKTtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIERvY3VtZW50Vmlld0NvbXBvbmVudDxUUmVzdWx0ID0gYW55LCBUQXJncyA9IGFueSwgVE9wdGlvbnMgPSBhbnk+IHtcclxuICBvbkJpbmQobW9kZWw6IERvY3VtZW50TW9kZWw8YW55Pik7XHJcbn1cclxuIl19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvY29yZS9iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBdHRhY2htZW50LCBEb2N1bWVudE1vZGVsLCBGaWVsZEluZm8gfSBmcm9tIFwiLi4vY29yZS9tb2RlbHNcIjtcclxuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBNYXRGb3JtRmllbGRBcHBlYXJhbmNlIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGRcIjtcclxuXHJcbmV4cG9ydCBkZWNsYXJlIHR5cGUgVmlld01vZGUgPSAnY29tcG9zZScgfCAncHJldmlldycgfCAncHJpbnQnIHwgJ3ZlcnNpb24nIHwgJ292ZXJsYXknO1xyXG5cclxuZXhwb3J0IGRlY2xhcmUgdHlwZSBGb3JtTW9kZSA9ICcnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBGb3JtQ29tcG9uZW50PFRNb2RlbD4gZXh0ZW5kcyBNYW5hZ2VkQ29tcG9uZW50PFRNb2RlbD4ge1xyXG4gIGZvcm06IEZvcm1Hcm91cDtcclxuICBtb2RlOiBWaWV3TW9kZTtcclxuICBvbkJpbmQoZGF0YTogRG9jdW1lbnRNb2RlbDxUTW9kZWw+LCB2ZXJzaW9uPzogVE1vZGVsKTogdm9pZDtcclxuICAvKipcclxuICAgKiBcclxuICAgKiBAcGFyYW0gb2JqXHJcbiAgICovXHJcbiAgb25NZXNzYWdlPzxUID0gYW55PihvYmo6IFQpO1xyXG4gIG9uTmF2aWdhdGU/KHBhZ2U6IG51bWJlciB8IHN0cmluZyk7XHJcbiAgb25TYXZlPygpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHwgUHJvbWlzZTxib29sZWFuPiB8IGJvb2xlYW47XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBDb250cm9sRGVzaWduZXI8VCA9IGFueT4ge1xyXG4gIGZvcm06IEZvcm1Hcm91cDtcclxuICBvbkJpbmQ/KG1vZGVsOiBUKTtcclxufVxyXG5leHBvcnRcclxuICBpbnRlcmZhY2UgQ29udHJvbENvbXBvbmVudDxUVmFsdWUgPSBhbnk+IHtcclxuICBhcHBlYXJhbmNlPzogTWF0Rm9ybUZpZWxkQXBwZWFyYW5jZTtcclxuICBtb2RlOiBWaWV3TW9kZTtcclxuICBjb250cm9sOiBBYnN0cmFjdENvbnRyb2w8VFZhbHVlPjtcclxuICBmb2N1cz8oKTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBSZXBvcnRDb21wb25lbnQ8VFJlc3VsdCwgVEFyZ3MgPSBhbnksIFRPcHRpb25zID0gYW55PiBleHRlbmRzIE1hbmFnZWRDb21wb25lbnQ8VEFyZ3M+IHtcclxuICBvbkJpbmQoZGF0YTogVFJlc3VsdFtdLCBhcmdzPzogVEFyZ3MpO1xyXG4gIG9uRXhwb3J0PyhkYXRhOiBUUmVzdWx0W10pO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEFyZ3VtZW50c0NvbXBvbmVudDxUQXJncyA9IGFueT4gZXh0ZW5kcyBNYW5hZ2VkQ29tcG9uZW50PFRBcmdzPiB7XHJcbiAgZm9ybTogRm9ybUdyb3VwO1xyXG4gIC8vb25CaW5kPyhkYXRhOiBGaWVsZEluZm9bXSk6IHZvaWQ7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgTWFuYWdlZENvbXBvbmVudDxUQXJncz4ge1xyXG4gIC8vbW9kZWxDaGFuZ2U6IE9ic2VydmFibGU8VEFyZ3M+O1xyXG4gIC8vcmVhZG9ubHkgdmFsaWRDaGFuZ2VzOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xyXG4gIC8vcmVhZG9ubHkgZGlydHlDaGFuZ2VzOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFdpZGdldENvbXBvbmVudDxUUmVzdWx0LCBUQXJncyA9IGFueT4ge1xyXG4gIG9uQmluZChkYXRhOiBUUmVzdWx0LCBhcmdzPzogVEFyZ3MpO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFV0aWxpdHlDb21wb25lbnQ8VFJlc3VsdCA9IGFueSwgVEFyZ3MgPSBhbnksIFRPcHRpb25zID0gYW55PiB7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBFeHBsb3JlSXRlbUNvbXBvbmVudDxUTW9kZWw+IHtcclxuICBvbkJpbmQoZGF0YTogVE1vZGVsKTtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIERvY3VtZW50Vmlld0NvbXBvbmVudDxUUmVzdWx0ID0gYW55LCBUQXJncyA9IGFueSwgVE9wdGlvbnMgPSBhbnk+IHtcclxuICBvbkJpbmQobW9kZWw6IERvY3VtZW50TW9kZWw8YW55Pik7XHJcbn1cclxuIl19
@@ -0,0 +1,136 @@
1
+ import { Injectable, Injector } from '@angular/core';
2
+ import { ComponentPortal } from '@angular/cdk/portal';
3
+ import { Observable, filter, merge } from 'rxjs';
4
+ import { OverlayFormComponent } from '../compose/overlay.component.exp';
5
+ import { OpenPolicy } from './configuration';
6
+ import { DIALOG_DATA } from '@angular/cdk/dialog';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "./session.service";
9
+ import * as i2 from "./mailbox.service";
10
+ import * as i3 from "./prompt.service";
11
+ import * as i4 from "@angular/cdk/overlay";
12
+ import * as i5 from "@angular/cdk/bidi";
13
+ import * as i6 from "./router";
14
+ export class DocumentFactory {
15
+ constructor(_session, _mailbox, _ps, _overlay, _dir, _router) {
16
+ this._session = _session;
17
+ this._mailbox = _mailbox;
18
+ this._ps = _ps;
19
+ this._overlay = _overlay;
20
+ this._dir = _dir;
21
+ this._router = _router;
22
+ }
23
+ create(formId) {
24
+ const form = this._session.profile.forms.find(f => f.name == formId);
25
+ return new Observable(observe => {
26
+ switch (form.mode) {
27
+ case 'Overlay':
28
+ const overlayRef = this._overlay.create({
29
+ positionStrategy: this._overlay.position().global().
30
+ centerHorizontally().centerVertically(),
31
+ hasBackdrop: true,
32
+ height: '90vh',
33
+ width: '90vw',
34
+ direction: this._dir.value,
35
+ backdropClass: 'cdk-overlay-transparent-backdrop',
36
+ panelClass: 'home-panel'
37
+ });
38
+ const injector = Injector.create({
39
+ providers: [
40
+ {
41
+ provide: DIALOG_DATA,
42
+ useValue: formId
43
+ }
44
+ ]
45
+ });
46
+ const portal = new ComponentPortal(OverlayFormComponent, null, injector);
47
+ const compRef = overlayRef.attach(portal);
48
+ compRef.instance.created$.
49
+ subscribe(m => {
50
+ if (m !== false)
51
+ this._mailbox.create(formId, m).subscribe({
52
+ next: d => {
53
+ observe.next(d);
54
+ },
55
+ error: e => {
56
+ this._error(e);
57
+ overlayRef.detach();
58
+ observe.error();
59
+ },
60
+ complete: () => {
61
+ overlayRef.detach();
62
+ observe.complete();
63
+ }
64
+ });
65
+ else {
66
+ observe.error();
67
+ overlayRef.detach();
68
+ }
69
+ });
70
+ merge(overlayRef.backdropClick(), overlayRef.keydownEvents().pipe(filter(k => k.key === 'Escape'))).
71
+ subscribe(() => {
72
+ observe.error();
73
+ overlayRef.detach();
74
+ });
75
+ default:
76
+ this._mailbox.create(formId).subscribe({
77
+ next: m => observe.next(m),
78
+ error: e => {
79
+ this._error(e);
80
+ observe.error();
81
+ },
82
+ complete: () => observe.complete()
83
+ });
84
+ }
85
+ });
86
+ }
87
+ _nav(item) {
88
+ this._router.navigate(['mailbox/i', item.id.encodeId()], {
89
+ policy: OpenPolicy.Clear,
90
+ state: { item }
91
+ });
92
+ }
93
+ copy(documentId) {
94
+ return new Observable(observe => this._mailbox.copy(documentId).
95
+ subscribe({
96
+ next: d => {
97
+ this._ps.toast('Copied', d.number);
98
+ observe.next();
99
+ }, error: e => {
100
+ this._error(e);
101
+ observe.error();
102
+ },
103
+ complete: () => observe.complete()
104
+ }));
105
+ }
106
+ /**
107
+ * Handle http error response
108
+ * @param e
109
+ */
110
+ _error(e) {
111
+ if (e.constructor.name === 'PositionError')
112
+ switch (e.code) {
113
+ case 1:
114
+ this._ps.error('UserDeniedGeoErr');
115
+ break;
116
+ default:
117
+ this._ps.error('GeoErr');
118
+ }
119
+ else
120
+ switch (e.status) {
121
+ case 406: // server ValidationException thrown
122
+ const message = e.error;
123
+ this._ps.errorString(message);
124
+ break;
125
+ default:
126
+ this._ps.error();
127
+ }
128
+ }
129
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: DocumentFactory, deps: [{ token: i1.SessionService }, { token: i2.MailboxService }, { token: i3.PromptService }, { token: i4.Overlay }, { token: i5.Directionality }, { token: i6.RouterImpl }], target: i0.ɵɵFactoryTarget.Injectable }); }
130
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: DocumentFactory, providedIn: 'root' }); }
131
+ }
132
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: DocumentFactory, decorators: [{
133
+ type: Injectable,
134
+ args: [{ providedIn: 'root' }]
135
+ }], ctorParameters: () => [{ type: i1.SessionService }, { type: i2.MailboxService }, { type: i3.PromptService }, { type: i4.Overlay }, { type: i5.Directionality }, { type: i6.RouterImpl }] });
136
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQtZmFjdG9yeS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9jb3JlL2RvY3VtZW50LWZhY3Rvcnkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUdyRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRWpELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBRXhFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUk3QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7Ozs7O0FBR2xELE1BQU0sT0FBTyxlQUFlO0lBQzFCLFlBQ1UsUUFBd0IsRUFDeEIsUUFBd0IsRUFDeEIsR0FBa0IsRUFDbEIsUUFBaUIsRUFDakIsSUFBb0IsRUFDcEIsT0FBbUI7UUFMbkIsYUFBUSxHQUFSLFFBQVEsQ0FBZ0I7UUFDeEIsYUFBUSxHQUFSLFFBQVEsQ0FBZ0I7UUFDeEIsUUFBRyxHQUFILEdBQUcsQ0FBZTtRQUNsQixhQUFRLEdBQVIsUUFBUSxDQUFTO1FBQ2pCLFNBQUksR0FBSixJQUFJLENBQWdCO1FBQ3BCLFlBQU8sR0FBUCxPQUFPLENBQVk7SUFBSSxDQUFDO0lBQ2xDLE1BQU0sQ0FBQyxNQUFjO1FBQ25CLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLE1BQU0sQ0FBQyxDQUFDO1FBQ3JFLE9BQU8sSUFBSSxVQUFV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Q0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLGtCQUFrQixDQUFDLENBQUM7b0JBQ25DLE1BQU07Z0JBQ1I7b0JBQ0UsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDN0IsQ0FBQzs7WUFDRSxRQUFTLENBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDL0IsS0FBSyxHQUFHLEVBQUUsb0NBQW9DO29CQUM1QyxNQUFNLE9BQU8sR0FBSSxDQUFTLENBQUMsS0FBSyxDQUFDO29CQUNqQyxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztvQkFDOUIsTUFBTTtnQkFDUjtvQkFDRSxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3JCLENBQUM7SUFDSCxDQUFDOzhHQWhIVSxlQUFlO2tIQUFmLGVBQWUsY0FERixNQUFNOzsyRkFDbkIsZUFBZTtrQkFEM0IsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBSb3V0ZXJJbXBsIH0gZnJvbSAnLi9yb3V0ZXInO1xyXG5pbXBvcnQgeyBPdmVybGF5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xyXG5pbXBvcnQgeyBDb21wb25lbnRQb3J0YWwgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgZmlsdGVyLCBtZXJnZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBEaXJlY3Rpb25hbGl0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9iaWRpJztcclxuaW1wb3J0IHsgT3ZlcmxheUZvcm1Db21wb25lbnQgfSBmcm9tICcuLi9jb21wb3NlL292ZXJsYXkuY29tcG9uZW50LmV4cCc7XHJcbmltcG9ydCB7IE1haWxib3hTZXJ2aWNlLCBQb3NpdGlvbkVycm9yIH0gZnJvbSAnLi9tYWlsYm94LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBPcGVuUG9saWN5IH0gZnJvbSAnLi9jb25maWd1cmF0aW9uJztcclxuaW1wb3J0IHsgUmVjaXBpZW50TW9kZWwgfSBmcm9tICcuL21vZGVscyc7XHJcbmltcG9ydCB7IFByb21wdFNlcnZpY2UgfSBmcm9tICcuL3Byb21wdC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU2Vzc2lvblNlcnZpY2UgfSBmcm9tICcuL3Nlc3Npb24uc2VydmljZSc7XHJcbmltcG9ydCB7IERJQUxPR19EQVRBIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RpYWxvZyc7XHJcblxyXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxyXG5leHBvcnQgY2xhc3MgRG9jdW1lbnRGYWN0b3J5IHtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgX3Nlc3Npb246IFNlc3Npb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfbWFpbGJveDogTWFpbGJveFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9wczogUHJvbXB0U2VydmljZSxcclxuICAgIHByaXZhdGUgX292ZXJsYXk6IE92ZXJsYXksXHJcbiAgICBwcml2YXRlIF9kaXI6IERpcmVjdGlvbmFsaXR5LFxyXG4gICAgcHJpdmF0ZSBfcm91dGVyOiBSb3V0ZXJJbXBsKSB7IH1cclxuICBjcmVhdGUoZm9ybUlkOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IGZvcm0gPSB0aGlzLl9zZXNzaW9uLnByb2ZpbGUuZm9ybXMuZmluZChmID0+IGYubmFtZSA9PSBmb3JtSWQpO1xyXG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlPFJlY2lwaWVudE1vZGVsPihvYnNlcnZlID0+IHtcclxuICAgICAgc3dpdGNoIChmb3JtLm1vZGUpIHtcclxuICAgICAgICBjYXNlICdPdmVybGF5JzpcclxuICAgICAgICAgIGNvbnN0IG92ZXJsYXlSZWYgPSB0aGlzLl9vdmVybGF5LmNyZWF0ZSh7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uU3RyYXRlZ3k6IHRoaXMuX292ZXJsYXkucG9zaXRpb24oKS5nbG9iYWwoKS5cclxuICAgICAgICAgICAgICBjZW50ZXJIb3Jpem9udGFsbHkoKS5jZW50ZXJWZXJ0aWNhbGx5KCksXHJcbiAgICAgICAgICAgIGhhc0JhY2tkcm9wOiB0cnVlLFxyXG4gICAgICAgICAgICBoZWlnaHQ6ICc5MHZoJyxcclxuICAgICAgICAgICAgd2lkdGg6ICc5MHZ3JyxcclxuICAgICAgICAgICAgZGlyZWN0aW9uOiB0aGlzLl9kaXIudmFsdWUsXHJcbiAgICAgICAgICAgIGJhY2tkcm9wQ2xhc3M6ICdjZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcCcsXHJcbiAgICAgICAgICAgIHBhbmVsQ2xhc3M6ICdob21lLXBhbmVsJ1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICBjb25zdCBpbmplY3RvciA9IEluamVjdG9yLmNyZWF0ZSh7XHJcbiAgICAgICAgICAgIHByb3ZpZGVyczogW1xyXG4gICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHByb3ZpZGU6IERJQUxPR19EQVRBLFxyXG4gICAgICAgICAgICAgICAgdXNlVmFsdWU6IGZvcm1JZFxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgXVxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICBjb25zdCBwb3J0YWwgPSBuZXcgQ29tcG9uZW50UG9ydGFsKE92ZXJsYXlGb3JtQ29tcG9uZW50LCBudWxsLCBpbmplY3Rvcik7XHJcbiAgICAgICAgICBjb25zdCBjb21wUmVmID0gb3ZlcmxheVJlZi5hdHRhY2gocG9ydGFsKTtcclxuICAgICAgICAgIGNvbXBSZWYuaW5zdGFuY2UuY3JlYXRlZCQuXHJcbiAgICAgICAgICAgIHN1YnNjcmliZShtID0+IHtcclxuICAgICAgICAgICAgICBpZiAobSAhPT0gZmFsc2UpIHRoaXMuX21haWxib3guY3JlYXRlKGZvcm1JZCwgbSkuc3Vic2NyaWJlKHtcclxuICAgICAgICAgICAgICAgIG5leHQ6IGQgPT4ge1xyXG4gICAgICAgICAgICAgICAgICBvYnNlcnZlLm5leHQoZCk7XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgZXJyb3I6IGUgPT4ge1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLl9lcnJvcihlKTtcclxuICAgICAgICAgICAgICAgICAgb3ZlcmxheVJlZi5kZXRhY2goKTtcclxuICAgICAgICAgICAgICAgICAgb2JzZXJ2ZS5lcnJvcigpO1xyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIGNvbXBsZXRlOiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgIG92ZXJsYXlSZWYuZGV0YWNoKCk7XHJcbiAgICAgICAgICAgICAgICAgIG9ic2VydmUuY29tcGxldGUoKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIG9ic2VydmUuZXJyb3IoKTtcclxuICAgICAgICAgICAgICAgIG92ZXJsYXlSZWYuZGV0YWNoKCk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIG1lcmdlKG92ZXJsYXlSZWYuYmFja2Ryb3BDbGljaygpLCBvdmVybGF5UmVmLmtleWRvd25FdmVudHMoKS5waXBlKGZpbHRlcihrID0+IGsua2V5ID09PSAnRXNjYXBlJykpKS5cclxuICAgICAgICAgICAgc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgICAgICBvYnNlcnZlLmVycm9yKCk7XHJcbiAgICAgICAgICAgICAgb3ZlcmxheVJlZi5kZXRhY2goKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgIHRoaXMuX21haWxib3guY3JlYXRlKGZvcm1JZCkuc3Vic2NyaWJlKHtcclxuICAgICAgICAgICAgbmV4dDogbSA9PiBvYnNlcnZlLm5leHQobSksXHJcbiAgICAgICAgICAgIGVycm9yOiBlID0+IHtcclxuICAgICAgICAgICAgICB0aGlzLl9lcnJvcihlKTtcclxuICAgICAgICAgICAgICBvYnNlcnZlLmVycm9yKCk7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGNvbXBsZXRlOiAoKSA9PiBvYnNlcnZlLmNvbXBsZXRlKClcclxuICAgICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfbmF2KGl0ZW06IFJlY2lwaWVudE1vZGVsPGFueT4pIHtcclxuICAgIHRoaXMuX3JvdXRlci5uYXZpZ2F0ZShbJ21haWxib3gvaScsIGl0ZW0uaWQuZW5jb2RlSWQoKV0sXHJcbiAgICAgIHtcclxuICAgICAgICBwb2xpY3k6IE9wZW5Qb2xpY3kuQ2xlYXIsXHJcbiAgICAgICAgc3RhdGU6IHsgaXRlbSB9XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuICBjb3B5KGRvY3VtZW50SWQ6IG51bWJlcikge1xyXG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlPFJlY2lwaWVudE1vZGVsPihvYnNlcnZlID0+IHRoaXMuX21haWxib3guY29weShkb2N1bWVudElkKS5cclxuICAgICAgc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiBkID0+IHtcclxuICAgICAgICAgIHRoaXMuX3BzLnRvYXN0KCdDb3BpZWQnLCBkLm51bWJlcik7XHJcbiAgICAgICAgICBvYnNlcnZlLm5leHQoKTtcclxuICAgICAgICB9LCBlcnJvcjogZSA9PiB7XHJcbiAgICAgICAgICB0aGlzLl9lcnJvcihlKTtcclxuICAgICAgICAgIG9ic2VydmUuZXJyb3IoKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIGNvbXBsZXRlOiAoKT0+IG9ic2VydmUuY29tcGxldGUoKVxyXG4gICAgICB9KSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIEhhbmRsZSBodHRwIGVycm9yIHJlc3BvbnNlXHJcbiAgICogQHBhcmFtIGVcclxuICAgKi9cclxuICBwcml2YXRlIF9lcnJvcihlOiBhbnkgfCBQb3NpdGlvbkVycm9yKSB7XHJcbiAgICBpZiAoZS5jb25zdHJ1Y3Rvci5uYW1lID09PSAnUG9zaXRpb25FcnJvcicpXHJcbiAgICAgIHN3aXRjaCAoKGUgYXMgUG9zaXRpb25FcnJvcikuY29kZSkge1xyXG4gICAgICAgIGNhc2UgMTpcclxuICAgICAgICAgIHRoaXMuX3BzLmVycm9yKCdVc2VyRGVuaWVkR2VvRXJyJyk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgdGhpcy5fcHMuZXJyb3IoJ0dlb0VycicpO1xyXG4gICAgICB9XHJcbiAgICBlbHNlIHN3aXRjaCAoKGUgYXMgYW55KS5zdGF0dXMpIHtcclxuICAgICAgY2FzZSA0MDY6IC8vIHNlcnZlciBWYWxpZGF0aW9uRXhjZXB0aW9uIHRocm93blxyXG4gICAgICAgIGNvbnN0IG1lc3NhZ2UgPSAoZSBhcyBhbnkpLmVycm9yO1xyXG4gICAgICAgIHRoaXMuX3BzLmVycm9yU3RyaW5nKG1lc3NhZ2UpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHRoaXMuX3BzLmVycm9yKCk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -18,4 +18,4 @@ export class DocumentInfo {
18
18
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: DocumentInfo, decorators: [{
19
19
  type: Injectable
20
20
  }], ctorParameters: () => [{ type: i1.RouterImpl }] });
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQtaW5mby5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9jb3JlL2luZm8vZG9jdW1lbnQtaW5mby5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQUszQyxNQUFNLE9BQU8sWUFBWTtJQUN2QixZQUFvQixPQUFtQjtRQUFuQixZQUFPLEdBQVAsT0FBTyxDQUFZO0lBQUksQ0FBQztJQUM1Qzs7O09BR0c7SUFDSCxJQUFJLENBQUMsRUFBVSxFQUFFLE1BQW1CO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQ3pFLENBQUM7OEdBUlUsWUFBWTtrSEFBWixZQUFZOzsyRkFBWixZQUFZO2tCQUR4QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBSb3V0ZXJJbXBsIH0gZnJvbSAnLi4vLi4vY29yZS9yb3V0ZXInO1xyXG5pbXBvcnQgeyBPcGVuUG9saWN5IH0gZnJvbSAnLi4vY29uZmlndXJhdGlvbic7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBEb2N1bWVudEluZm8ge1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX3JvdXRlcjogUm91dGVySW1wbCkgeyB9XHJcbiAgLyoqXHJcbiAgICogcHJldmlldyBmb3JtXHJcbiAgICogQHBhcmFtIGlkIGRvY3VtZW50SWRcclxuICAgKi9cclxuICBvcGVuKGlkOiBudW1iZXIsIHBvbGljeT86IE9wZW5Qb2xpY3kpOiBQcm9taXNlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3JvdXRlci5uYXZpZ2F0ZShbJ21haWxib3gvZCcsIGlkLmVuY29kZUlkKCldLCB7IHBvbGljeSB9KTtcclxuICB9XHJcbn1cclxuIl19
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQtaW5mby5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9jb3JlL2luZm8vZG9jdW1lbnQtaW5mby5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQUszQyxNQUFNLE9BQU8sWUFBWTtJQUN2QixZQUNVLE9BQW1CO1FBQW5CLFlBQU8sR0FBUCxPQUFPLENBQVk7SUFBSSxDQUFDO0lBQ2xDOzs7T0FHRztJQUNILElBQUksQ0FBQyxFQUFVLEVBQUUsTUFBbUI7UUFDbEMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDekUsQ0FBQzs4R0FUVSxZQUFZO2tIQUFaLFlBQVk7OzJGQUFaLFlBQVk7a0JBRHhCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJvdXRlckltcGwgfSBmcm9tICcuLi8uLi9jb3JlL3JvdXRlcic7XHJcbmltcG9ydCB7IE9wZW5Qb2xpY3kgfSBmcm9tICcuLi9jb25maWd1cmF0aW9uJztcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIERvY3VtZW50SW5mbyB7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF9yb3V0ZXI6IFJvdXRlckltcGwpIHsgfVxyXG4gIC8qKlxyXG4gICAqIHByZXZpZXcgZm9ybVxyXG4gICAqIEBwYXJhbSBpZCBkb2N1bWVudElkXHJcbiAgICovXHJcbiAgb3BlbihpZDogbnVtYmVyLCBwb2xpY3k/OiBPcGVuUG9saWN5KTogUHJvbWlzZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLl9yb3V0ZXIubmF2aWdhdGUoWydtYWlsYm94L2QnLCBpZC5lbmNvZGVJZCgpXSwgeyBwb2xpY3kgfSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -182,7 +182,7 @@ export class TypeAutocomplete {
182
182
  }
183
183
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: TypeAutocomplete, deps: [{ token: i1.NgControl, optional: true, self: true }, { token: i2.FocusMonitor }, { token: i0.ElementRef }, { token: i3.SessionService }, { token: i4.DatasourceService }], target: i0.ɵɵFactoryTarget.Component }); }
184
184
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.4", type: TypeAutocomplete, selector: "bizdoc-autocomplete", inputs: { _type: ["type", "_type"], placeholder: "placeholder", text: "text", required: "required", disabled: "disabled", value: "value", minimumChars: "minimumChars", textFormControlName: "textFormControlName", textFormControl: "textFormControl" }, outputs: { textChange: "textChange", optionSelected: "optionSelected" }, host: { properties: { "class.floating": "this.shouldLabelFloat", "attr.aria-describedby": "this.describedBy", "id": "this.id" }, classAttribute: "row" }, providers: [{ provide: MatFormFieldControl, useExisting: TypeAutocomplete }], viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["input"], descendants: true, static: true }, { propertyName: "trigger", first: true, predicate: ["input"], descendants: true, read: MatAutocompleteTrigger, static: true }], ngImport: i0, template: `<input matInput [matAutocomplete]="auto" [placeholder]="placeholder" [formControl]="_control" #input
185
- (focus)="_onFocus()" (blur)="_onBlur()" [disabled]="disabled" [required]="required"/>
185
+ (focus)="_onFocus()" (blur)="_onBlur()" [required]="required"/>
186
186
  <mat-autocomplete #auto (optionSelected)="_optionSelected($event)" [displayWith]='displayFn'>
187
187
  @for (v of _items$ | async; track v) {
188
188
  <mat-option [value]="v">
@@ -205,7 +205,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImpor
205
205
  selector: 'bizdoc-autocomplete',
206
206
  providers: [{ provide: MatFormFieldControl, useExisting: TypeAutocomplete }],
207
207
  template: `<input matInput [matAutocomplete]="auto" [placeholder]="placeholder" [formControl]="_control" #input
208
- (focus)="_onFocus()" (blur)="_onBlur()" [disabled]="disabled" [required]="required"/>
208
+ (focus)="_onFocus()" (blur)="_onBlur()" [required]="required"/>
209
209
  <mat-autocomplete #auto (optionSelected)="_optionSelected($event)" [displayWith]='displayFn'>
210
210
  @for (v of _items$ | async; track v) {
211
211
  <mat-option [value]="v">
@@ -269,4 +269,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImpor
269
269
  }], textFormControl: [{
270
270
  type: Input
271
271
  }] } });
272
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0by1jb21wbGV0ZS5pbnB1dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvY29yZS9pbnB1dHMvYXV0by1jb21wbGV0ZS5pbnB1dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBYSxXQUFXLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBc0IsTUFBTSxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQVcsTUFBTSxlQUFlLENBQUM7QUFDdkosT0FBTyxFQUFtQyxXQUFXLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbkUsT0FBTyxFQUFnQyxzQkFBc0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRXRHLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzlELE9BQU8sRUFBRSxPQUFPLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDM0MsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSTVFLE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sY0FBYyxDQUFDOzs7Ozs7Ozs7Ozs7O0FBMkJsRCxNQUFNLE9BQ0UsZ0JBQWdCO0lBQ3RCLEtBQUs7UUFDSCxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUMxQyxDQUFDO2FBQ2MsV0FBTSxHQUFHLENBQUMsQUFBSixDQUFLO0lBaUIxQixJQUFhLFdBQVc7UUFDdEIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzNCLENBQUM7SUFDRCxJQUFJLFdBQVcsQ0FBQyxHQUFXO1FBQ3pCLElBQUksQ0FBQyxZQUFZLEdBQUcsR0FBRyxDQUFDO1FB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QUFFLFdBQVcsa0JBQWtCLEVBQUUsQ0FBQztvQkFDNUUsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7O1FBZ0JKO29CQUNOLElBQUksRUFBRTt3QkFDSixLQUFLLEVBQUUsS0FBSzt3QkFDWixrQkFBa0IsRUFBRSxrQkFBa0I7d0JBQ3RDLHlCQUF5QixFQUFFLGFBQWE7cUJBQ3pDO2lCQUNGOzswQkFrSmMsUUFBUTs7MEJBQUksSUFBSTswSkFoSVMsWUFBWTtzQkFBakQsU0FBUzt1QkFBQyxPQUFPLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUNnQyxPQUFPO3NCQUExRSxTQUFTO3VCQUFDLE9BQU8sRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLHNCQUFzQixFQUFFO2dCQUMxQyxFQUFFO3NCQUF6QixXQUFXO2dCQUNHLEtBQUs7c0JBQW5CLEtBQUs7dUJBQUMsTUFBTTtnQkFFQSxXQUFXO3NCQUF2QixLQUFLO2dCQU9HLElBQUk7c0JBQVosS0FBSztnQkFDYSxVQUFVO3NCQUE1QixNQUFNO2dCQUNZLGNBQWM7c0JBQWhDLE1BQU07Z0JBdUJILGdCQUFnQjtzQkFEbkIsV0FBVzt1QkFBQyxnQkFBZ0I7Z0JBS3pCLFFBQVE7c0JBRFgsS0FBSztnQkFhRixRQUFRO3NCQURYLEtBQUs7Z0JBY2dDLFdBQVc7c0JBQWhELFdBQVc7dUJBQUMsdUJBQXVCO2dCQXlCdkIsS0FBSztzQkFBakIsS0FBSztnQkFRTyxZQUFZO3NCQUF4QixLQUFLO2dCQXNCTyxtQkFBbUI7c0JBQS9CLEtBQUs7Z0JBR08sZUFBZTtzQkFBM0IsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uRGVzdHJveSwgSG9zdEJpbmRpbmcsIE9wdGlvbmFsLCBTZWxmLCBPbkluaXQsIEVsZW1lbnRSZWYsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBWaWV3Q2hpbGQsIERvQ2hlY2sgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTmdDb250cm9sLCBDb250cm9sVmFsdWVBY2Nlc3NvciwgRm9ybUNvbnRyb2wsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE1hdEZvcm1GaWVsZENvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcclxuaW1wb3J0IHsgTWF0QXV0b2NvbXBsZXRlU2VsZWN0ZWRFdmVudCwgTWF0QXV0b2NvbXBsZXRlVHJpZ2dlciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2F1dG9jb21wbGV0ZSc7XHJcbmltcG9ydCB7IEZvY3VzTW9uaXRvciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcclxuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcclxuaW1wb3J0IHsgU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIHRha2VVbnRpbCwgc3dpdGNoTWFwLCBmaWx0ZXIgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFNlc3Npb25TZXJ2aWNlIH0gZnJvbSAnLi4vc2Vzc2lvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRGF0YXNvdXJjZVNlcnZpY2UgfSBmcm9tICcuLi9kYXRhc291cmNlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBUeXBlLCBGaWVsZEluZm8gfSBmcm9tICcuLi9tb2RlbHMnO1xyXG5pbXBvcnQgeyBpc09iamVjdCwgaXNTdHJpbmcgfSBmcm9tICcuLi9mdW5jdGlvbnMnO1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2JpemRvYy1hdXRvY29tcGxldGUnLFxyXG4gIHByb3ZpZGVyczogW3sgcHJvdmlkZTogTWF0Rm9ybUZpZWxkQ29udHJvbCwgdXNlRXhpc3Rpbmc6IFR5cGVBdXRvY29tcGxldGUgfV0sXHJcbiAgdGVtcGxhdGU6IGA8aW5wdXQgbWF0SW5wdXQgW21hdEF1dG9jb21wbGV0ZV09XCJhdXRvXCIgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCIgW2Zvcm1Db250cm9sXT1cIl9jb250cm9sXCIgI2lucHV0XG4gICAgICAoZm9jdXMpPVwiX29uRm9jdXMoKVwiIChibHVyKT1cIl9vbkJsdXIoKVwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiLz5cbiAgICAgIDxtYXQtYXV0b2NvbXBsZXRlICNhdXRvIChvcHRpb25TZWxlY3RlZCk9XCJfb3B0aW9uU2VsZWN0ZWQoJGV2ZW50KVwiIFtkaXNwbGF5V2l0aF09J2Rpc3BsYXlGbic+XG4gICAgICAgIEBmb3IgKHYgb2YgX2l0ZW1zJCB8IGFzeW5jOyB0cmFjayB2KSB7XG4gICAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cInZcIj5cbiAgICAgICAgICAgIEBpZiAoIV9jb2x1bW4pIHtcbiAgICAgICAgICAgICAgPHNwYW4+e3t2LnZhbHVlfX08L3NwYW4+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAaWYgKF9jb2x1bW4pIHtcbiAgICAgICAgICAgICAgPHNwYW4+e3t2LnZhbHVlW19jb2x1bW4ubmFtZV19fTwvc3Bhbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgIH1cbiAgICAgIDwvbWF0LWF1dG9jb21wbGV0ZT5cbiAgICAgIEBpZiAoX2NvbnRyb2wudmFsdWUpIHtcbiAgICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gbWF0U3VmZml4IChjbGljayk9XCJjbGVhcigpXCI+PG1hdC1pY29uPmNsb3NlPC9tYXQtaWNvbj48L2J1dHRvbj5cbiAgICAgIH1gLFxyXG4gIGhvc3Q6IHtcclxuICAgIGNsYXNzOiAncm93JyxcclxuICAgICdbY2xhc3MuZmxvYXRpbmddJzogJ3Nob3VsZExhYmVsRmxvYXQnLFxyXG4gICAgJ1thdHRyLmFyaWEtZGVzY3JpYmVkYnldJzogJ2Rlc2NyaWJlZEJ5J1xyXG4gIH0sXHJcbn0pXHJcbmV4cG9ydFxyXG4gIGNsYXNzIFR5cGVBdXRvY29tcGxldGUgaW1wbGVtZW50cyBNYXRGb3JtRmllbGRDb250cm9sPHN0cmluZz4sIERvQ2hlY2ssIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkRlc3Ryb3ksIE9uSW5pdCB7XHJcbiAgZm9jdXMoKSB7XHJcbiAgICB0aGlzLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XHJcbiAgfVxyXG4gIHByaXZhdGUgc3RhdGljIG5leHRJZCA9IDA7XHJcbiAgcHJpdmF0ZSBfcGxhY2Vob2xkZXI6IHN0cmluZztcclxuICBwcml2YXRlIF9yZXF1aXJlZCA9IGZhbHNlO1xyXG4gIHByaXZhdGUgX2Rpc2FibGVkID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBfdmFsdWU/OiBzdHJpbmc7XHJcbiAgcHJpdmF0ZSBfb25DaGFuZ2U6IGFueTtcclxuICBwcml2YXRlIF9vblRvdWNoZWQ6IGFueTtcclxuICByZWFkb25seSBfY29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgpO1xyXG4gIHJlYWRvbmx5IHN0YXRlQ2hhbmdlcyA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgX2l0ZW1zJDogT2JzZXJ2YWJsZTxLZXlWYWx1ZVtdPjtcclxuICBfY29sdW1uOiBGaWVsZEluZm87XHJcbiAgcHJpdmF0ZSBfY29uZmlndXJhdGlvbjogVHlwZTtcclxuICBAVmlld0NoaWxkKCdpbnB1dCcsIHsgc3RhdGljOiB0cnVlIH0pIGlucHV0RWxlbWVudDogRWxlbWVudFJlZjtcclxuICBAVmlld0NoaWxkKCdpbnB1dCcsIHsgc3RhdGljOiB0cnVlLCByZWFkOiBNYXRBdXRvY29tcGxldGVUcmlnZ2VyIH0pIHRyaWdnZXI6IE1hdEF1dG9jb21wbGV0ZVRyaWdnZXI7XHJcbiAgQEhvc3RCaW5kaW5nKCkgcmVhZG9ubHkgaWQgPSBgdHlwZS1hdXRvLWNvbXBsZXRlLSR7VHlwZUF1dG9jb21wbGV0ZS5uZXh0SWQrK31gO1xyXG4gIEBJbnB1dCgndHlwZScpIF90eXBlITogc3RyaW5nO1xyXG4gIHByaXZhdGUgX3RleHRGb3JtQ29udHJvbDogRm9ybUNvbnRyb2w7XHJcbiAgQElucHV0KCkgZ2V0IHBsYWNlaG9sZGVyKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fcGxhY2Vob2xkZXI7XHJcbiAgfVxyXG4gIHNldCBwbGFjZWhvbGRlcihwbGg6IHN0cmluZykge1xyXG4gICAgdGhpcy5fcGxhY2Vob2xkZXIgPSBwbGg7XHJcbiAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XHJcbiAgfVxyXG4gIEBJbnB1dCgpIHRleHQ6IHN0cmluZztcclxuICBAT3V0cHV0KCkgcmVhZG9ubHkgdGV4dENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG4gIEBPdXRwdXQoKSByZWFkb25seSBvcHRpb25TZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXI8QXV0b2NvbXBsZXRlU2VsZWN0ZWRFdmVudD4oKTtcclxuICBkaXNwbGF5Rm4gPSAoaXRlbTogeyB2YWx1ZTogYW55IH0pID0+IHtcclxuICAgIGlmICghaXRlbSlcclxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgIGlmICghaXNPYmplY3QoaXRlbS52YWx1ZSkpXHJcbiAgICAgIHJldHVybiBpdGVtLnZhbHVlO1xyXG4gICAgZWxzZSB7XHJcbiAgICAgIGxldCBuYW1lID0gT2JqZWN0LmtleXMoaXRlbS52YWx1ZSlbMF07XHJcbiAgICAgIHJldHVybiBpdGVtLnZhbHVlW25hbWVdO1xyXG4gICAgfVxyXG4gIH1cclxuICBfb3B0aW9uU2VsZWN0ZWQoZTogTWF0QXV0b2NvbXBsZXRlU2VsZWN0ZWRFdmVudCkge1xyXG4gICAgY29uc3QgeyB2YWx1ZSwga2V5IH0gPSBlLm9wdGlvbi52YWx1ZSBhcyBLZXlWYWx1ZSB8fCB7fTtcclxuICAgIGNvbnN0IHRleHQgPSB0aGlzLl9jb2x1bW4gPyB2YWx1ZVt0aGlzLl9jb2x1bW4ubmFtZV0gOiB2YWx1ZTtcclxuICAgIHRoaXMuX3ZhbHVlID0ga2V5O1xyXG4gICAgdGhpcy5fdGV4dEZvcm1Db250cm9sICYmIHRoaXMuX3RleHRGb3JtQ29udHJvbC5zZXRWYWx1ZSh0ZXh0LCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XHJcbiAgICB0aGlzLnRleHRDaGFuZ2UuZW1pdCh0ZXh0KTtcclxuICAgIHRoaXMub3B0aW9uU2VsZWN0ZWQuZW1pdCh7IHZhbHVlOiBrZXksIHRleHQgfSk7XHJcbiAgICB0aGlzLl9vbkNoYW5nZSAmJiB0aGlzLl9vbkNoYW5nZShrZXkpO1xyXG4gIH1cclxuICBmb2N1c2VkID0gZmFsc2U7XHJcbiAgZ2V0IGVtcHR5KCk6IGJvb2xlYW4geyByZXR1cm4gIXRoaXMuX2NvbnRyb2wudmFsdWUgfHwgdGhpcy5fY29udHJvbC52YWx1ZSA9PT0gJyc7IH1cclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmZsb2F0aW5nJylcclxuICBnZXQgc2hvdWxkTGFiZWxGbG9hdCgpIHtcclxuICAgIHJldHVybiB0aGlzLmZvY3VzZWQgfHwgIXRoaXMuZW1wdHk7XHJcbiAgfVxyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IHJlcXVpcmVkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3JlcXVpcmVkO1xyXG4gIH1cclxuICBzZXQgcmVxdWlyZWQocmVxOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLl9yZXF1aXJlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eShyZXEpO1xyXG4gICAgaWYgKHRoaXMuX3JlcXVpcmVkKVxyXG4gICAgICB0aGlzLl9jb250cm9sLnNldFZhbGlkYXRvcnMoVmFsaWRhdG9ycy5yZXF1aXJlZCk7XHJcbiAgICBlbHNlXHJcbiAgICAgIHRoaXMuX2NvbnRyb2wuY2xlYXJWYWxpZGF0b3JzKCk7XHJcbiAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XHJcbiAgfVxyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4geyByZXR1cm4gdGhpcy5fZGlzYWJsZWQ7IH1cclxuICBzZXQgZGlzYWJsZWQodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuX2Rpc2FibGVkID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcclxuICAgIGlmICh0aGlzLl9jb250cm9sLmRpc2FibGVkICE9PSB0aGlzLl9kaXNhYmxlZCkge1xyXG4gICAgICBpZiAodGhpcy5fZGlzYWJsZWQpXHJcbiAgICAgICAgdGhpcy5fY29udHJvbC5kaXNhYmxlKCk7XHJcbiAgICAgIGVsc2VcclxuICAgICAgICB0aGlzLl9jb250cm9sLmVuYWJsZSgpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xyXG4gIH1cclxuICBlcnJvclN0YXRlID0gZmFsc2U7XHJcbiAgY29udHJvbFR5cGU/OiBzdHJpbmcgPSAnYml6ZG9jLXR5cGUtYXV0by1jb21wbGV0ZSc7XHJcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtZGVzY3JpYmVkYnknKSBkZXNjcmliZWRCeSA9ICcnO1xyXG5cclxuICBzZXREZXNjcmliZWRCeUlkcyhpZHM6IHN0cmluZ1tdKSB7XHJcbiAgICB0aGlzLmRlc2NyaWJlZEJ5ID0gaWRzLmpvaW4oJyAnKTtcclxuICB9XHJcbiAgb25Db250YWluZXJDbGljaygpOiB2b2lkIHtcclxuICAgIHRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcclxuICAgIHRoaXMudHJpZ2dlci5vcGVuUGFuZWwoKTtcclxuICB9XHJcbiAgY2xlYXIoKSB7XHJcbiAgICB0aGlzLl9zZXRWYWx1ZShudWxsLCB0cnVlKTtcclxuICAgIHRoaXMuX29uQ2hhbmdlICYmIHRoaXMuX29uQ2hhbmdlKG51bGwpO1xyXG4gIH1cclxuICB3cml0ZVZhbHVlKG9iajogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLl9zZXRWYWx1ZShvYmosIGZhbHNlKTtcclxuICB9XHJcbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLl9vbkNoYW5nZSA9IGZuO1xyXG4gIH1cclxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLl9vblRvdWNoZWQgPSBmbjtcclxuICB9XHJcbiAgc2V0RGlzYWJsZWRTdGF0ZT8oaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XHJcbiAgfVxyXG4gIEBJbnB1dCgpIGdldCB2YWx1ZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xyXG4gIH1cclxuICBzZXQgdmFsdWUodmFsOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX3NldFZhbHVlKHZhbCwgdHJ1ZSk7XHJcbiAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX21pbmltdW1DaGFycyA9IDE7XHJcbiAgQElucHV0KCkgc2V0IG1pbmltdW1DaGFycyh2YWw6IG51bWJlcikgeyB0aGlzLl9taW5pbXVtQ2hhcnMgPSB2YWw7IH1cclxuICBwcml2YXRlIF9zZXRWYWx1ZSh2YWw6IHN0cmluZywgZW1pdEV2ZW50OiBib29sZWFuKSB7XHJcbiAgICB0aGlzLl92YWx1ZSA9IHZhbDtcclxuICAgIC8vaWYgKHZhbClcclxuICAgIC8vdGhpcy5zZXJ2aWNlLmdldCh0aGlzLnNvdXJjZSwgdmFsKS5zdWJzY3JpYmUodiA9PiB7XHJcbiAgICAvL30pO1xyXG4gICAgdGhpcy5fY29udHJvbC5zZXRWYWx1ZSh2YWwgPyB7IGtleTogdmFsLCB2YWx1ZTogdGhpcy50ZXh0IHx8IHZhbCB9IDogdmFsLCB7IGVtaXRFdmVudCB9KTtcclxuICB9XHJcbiAgbmdEb0NoZWNrKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMubmdDb250cm9sKSB7XHJcbiAgICAgIHRoaXMuZXJyb3JTdGF0ZSA9IHRoaXMubmdDb250cm9sLmludmFsaWQgJiYgdGhpcy5uZ0NvbnRyb2wudG91Y2hlZDtcclxuICAgICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgX29uRm9jdXMoKSB7XHJcbiAgICB0aGlzLmZvY3VzZWQgPSB0cnVlO1xyXG4gICAgdGhpcy5fb25Ub3VjaGVkICYmIHRoaXMuX29uVG91Y2hlZCgpO1xyXG4gIH1cclxuICBfb25CbHVyKCkge1xyXG4gICAgdGhpcy5mb2N1c2VkID0gZmFsc2U7XHJcbiAgfVxyXG4gIEBJbnB1dCgpIHNldCB0ZXh0Rm9ybUNvbnRyb2xOYW1lKHZhbDogc3RyaW5nKSB7XHJcbiAgICB0aGlzLl90ZXh0Rm9ybUNvbnRyb2wgPSAoKHRoaXMubmdDb250cm9sLmNvbnRyb2wgYXMgRm9ybUNvbnRyb2wpLnBhcmVudCkuY29udHJvbHNbdmFsXSBhcyBGb3JtQ29udHJvbDtcclxuICB9XHJcbiAgQElucHV0KCkgc2V0IHRleHRGb3JtQ29udHJvbCh2YWw6IEZvcm1Db250cm9sKSB7XHJcbiAgICB0aGlzLl90ZXh0Rm9ybUNvbnRyb2wgPSB2YWw7XHJcbiAgfVxyXG4gIHByaXZhdGUgcmVhZG9ubHkgX2Rlc3Ryb3kgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIEBTZWxmKCkgcHVibGljIG5nQ29udHJvbDogTmdDb250cm9sLCBwcml2YXRlIF9mbTogRm9jdXNNb25pdG9yLCBwcml2YXRlIF9lbFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sIHByaXZhdGUgX3Nlc3Npb246IFNlc3Npb25TZXJ2aWNlLCBwcml2YXRlIF9zZXJ2aWNlOiBEYXRhc291cmNlU2VydmljZSkge1xyXG4gICAgaWYgKHRoaXMubmdDb250cm9sICE9IG51bGwpIHtcclxuICAgICAgdGhpcy5uZ0NvbnRyb2wudmFsdWVBY2Nlc3NvciA9IHRoaXM7XHJcbiAgICB9XHJcbiAgICBfZm0ubW9uaXRvcihfZWxSZWYubmF0aXZlRWxlbWVudCwgdHJ1ZSkuc3Vic2NyaWJlKG9yaWdpbiA9PiB7XHJcbiAgICAgIHRoaXMuZm9jdXNlZCA9ICEhb3JpZ2luO1xyXG4gICAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9jb25maWd1cmF0aW9uID0gdGhpcy5fc2Vzc2lvbi5wcm9maWxlLnR5cGVzLmZpbmQodCA9PiB0Lm5hbWUgPT09IHRoaXMuX3R5cGUpO1xyXG4gICAgaWYgKCF0aGlzLl9jb25maWd1cmF0aW9uKVxyXG4gICAgICB0aHJvdyBgJHt0aGlzLl90eXBlfSBpcyBub3QgYSBrbm93biB0eXBlLmA7XHJcbiAgICB0aGlzLl9jb2x1bW4gPSB0aGlzLl9jb25maWd1cmF0aW9uLmNvbHVtbnMgPyB0aGlzLl9jb25maWd1cmF0aW9uLmNvbHVtbnMuZmluZChjID0+ICFjLmZsYWdzfHxjLmZsYWdzLmluZGV4T2YoJ0tleScpIDwgMCkgOiBudWxsO1xyXG4gICAgdGhpcy5faXRlbXMkID0gdGhpcy5fY29udHJvbC52YWx1ZUNoYW5nZXMucGlwZShcclxuICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpLFxyXG4gICAgICBkZWJvdW5jZVRpbWUoMjUwKSxcclxuICAgICAgZmlsdGVyKHYgPT4gaXNTdHJpbmcodikgJiYgdi5sZW5ndGggPiB0aGlzLl9taW5pbXVtQ2hhcnMpLFxyXG4gICAgICBzd2l0Y2hNYXAodiA9PlxyXG4gICAgICAgIHRoaXMuX3NlcnZpY2UuYWxsKHRoaXMuX3R5cGUsIHYpKSk7XHJcbiAgICB0aGlzLl9jb250cm9sLnN0YXR1c0NoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSkpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIHRoaXMuZXJyb3JTdGF0ZSA9IHRoaXMuX2NvbnRyb2wuZXJyb3JzICE9IG51bGw7XHJcbiAgICB9KTtcclxuICAgIGNvbnN0IHZhbCA9IHRoaXMudmFsdWU7XHJcbiAgICBpZiAodmFsKVxyXG4gICAgICB0aGlzLl9zZXJ2aWNlLmdldCh0aGlzLl90eXBlLCB2YWwpLnN1YnNjcmliZSh2ID0+XHJcbiAgICAgICAgdGhpcy5fY29udHJvbC5zZXRWYWx1ZSh7IGtleTogdmFsLCB2YWx1ZTogdiB8fCB2YWwgfSwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pKTtcclxuICB9XHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLl9kZXN0cm95Lm5leHQoKTtcclxuICAgIHRoaXMuX2Rlc3Ryb3kuY29tcGxldGUoKTtcclxuICAgIHRoaXMuX2ZtLnN0b3BNb25pdG9yaW5nKHRoaXMuX2VsUmVmLm5hdGl2ZUVsZW1lbnQpO1xyXG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMuY29tcGxldGUoKTtcclxuICAgIHRoaXMudGV4dENoYW5nZS5jb21wbGV0ZSgpO1xyXG4gICAgdGhpcy5vcHRpb25TZWxlY3RlZC5jb21wbGV0ZSgpO1xyXG4gIH1cclxufVxyXG5pbnRlcmZhY2UgS2V5VmFsdWUgeyBrZXk6IGFueSwgdmFsdWU6IGFueSB9XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEF1dG9jb21wbGV0ZVNlbGVjdGVkRXZlbnQge1xyXG4gIHJlYWRvbmx5IHRleHQ6IHN0cmluZztcclxuICByZWFkb25seSB2YWx1ZTogYW55O1xyXG59XHJcbiJdfQ==
272
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0by1jb21wbGV0ZS5pbnB1dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvY29yZS9pbnB1dHMvYXV0by1jb21wbGV0ZS5pbnB1dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBYSxXQUFXLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBc0IsTUFBTSxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQVcsTUFBTSxlQUFlLENBQUM7QUFDdkosT0FBTyxFQUFtQyxXQUFXLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbkUsT0FBTyxFQUFnQyxzQkFBc0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRXRHLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzlELE9BQU8sRUFBRSxPQUFPLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDM0MsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSTVFLE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sY0FBYyxDQUFDOzs7Ozs7Ozs7Ozs7O0FBMkJsRCxNQUFNLE9BQ0UsZ0JBQWdCO0lBQ3RCLEtBQUs7UUFDSCxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUMxQyxDQUFDO2FBQ2MsV0FBTSxHQUFHLENBQUMsQUFBSixDQUFLO0lBaUIxQixJQUFhLFdBQVc7UUFDdEIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzNCLENBQUM7SUFDRCxJQUFJLFdBQVcsQ0FBQyxHQUFXO1FBQ3pCLElBQUksQ0FBQyxZQUFZLEdBQUcsR0FBRyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQWNELGVBQWUsQ0FBQyxDQUErQjtRQUM3QyxNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBaUIsSUFBSSxFQUFFLENBQUM7UUFDeEQsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUM3RCxJQUFJLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQztRQUNsQixJQUFJLENBQUMsZ0JBQWdCLElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUNwRixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMzQixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUMvQyxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVELElBQUksS0FBSyxLQUFjLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ25GLElBQ0ksZ0JBQWdCO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDckMsQ0FBQztJQUNELElBQ0ksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDO0lBQ0QsSUFBSSxRQUFRLENBQUMsR0FBWTtRQUN2QixJQUFJLENBQUMsU0FBUyxHQUFHLHFCQUFxQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzVDLElBQUksSUFBSSxDQUFDLFNBQVM7WUFDaEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDOztZQUVqRCxJQUFJLENBQUMsUUFBUSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUNELElBQ0ksUUFBUSxLQUFjLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFDbEQsSUFBSSxRQUFRLENBQUMsS0FBYztRQUN6QixJQUFJLENBQUMsU0FBUyxHQUFHLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlDLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEtBQUssSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQzlDLElBQUksSUFBSSxDQUFDLFNBQVM7Z0JBQ2hCLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUM7O2dCQUV4QixJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQzNCLENBQUM7UUFDRCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFLRCxpQkFBaUIsQ0FBQyxHQUFhO1FBQzdCLElBQUksQ0FBQyxXQUFXLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBQ0QsZ0JBQWdCO1FBQ2QsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDeEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBQ0QsS0FBSztRQUNILElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzNCLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBQ0QsVUFBVSxDQUFDLEdBQVE7UUFDakIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUNELGdCQUFnQixDQUFDLEVBQU87UUFDdEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUNELGlCQUFpQixDQUFDLEVBQU87UUFDdkIsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUNELGdCQUFnQixDQUFFLFVBQW1CO1FBQ25DLElBQUksQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDO0lBQzdCLENBQUM7SUFDRCxJQUFhLEtBQUs7UUFDaEIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3JCLENBQUM7SUFDRCxJQUFJLEtBQUssQ0FBQyxHQUFXO1FBQ25CLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzFCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELElBQWEsWUFBWSxDQUFDLEdBQVcsSUFBSSxJQUFJLENBQUMsYUFBYSxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDNUQsU0FBUyxDQUFDLEdBQVcsRUFBRSxTQUFrQjtRQUMvQyxJQUFJLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQztRQUNsQixVQUFVO1FBQ1YscURBQXFEO1FBQ3JELEtBQUs7UUFDTCxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksSUFBSSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztJQUMzRixDQUFDO0lBQ0QsU0FBUztRQUNQLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ25CLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUM7WUFDbkUsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUMzQixDQUFDO0lBQ0gsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUNwQixJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUN2QyxDQUFDO0lBQ0QsT0FBTztRQUNMLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO0lBQ3ZCLENBQUM7SUFDRCxJQUFhLG1CQUFtQixDQUFDLEdBQVc7UUFDMUMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLENBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUF1QixDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQWdCLENBQUM7SUFDeEcsQ0FBQztJQUNELElBQWEsZUFBZSxDQUFDLEdBQWdCO1FBQzNDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxHQUFHLENBQUM7SUFDOUIsQ0FBQztJQUVELFlBQXVDLFNBQW9CLEVBQVUsR0FBaUIsRUFBVSxNQUErQixFQUFVLFFBQXdCLEVBQVUsUUFBMkI7UUFBL0osY0FBUyxHQUFULFNBQVMsQ0FBVztRQUFVLFFBQUcsR0FBSCxHQUFHLENBQWM7UUFBVSxXQUFNLEdBQU4sTUFBTSxDQUF5QjtRQUFVLGFBQVEsR0FBUixRQUFRLENBQWdCO1FBQVUsYUFBUSxHQUFSLFFBQVEsQ0FBbUI7UUExSTlMLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFDbEIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUlqQixhQUFRLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUM3QixpQkFBWSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFNcEIsT0FBRSxHQUFHLHNCQUFzQixnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDO1FBVzVELGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBQ3hDLG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQTZCLENBQUM7UUFDbEYsY0FBUyxHQUFHLENBQUMsSUFBb0IsRUFBRSxFQUFFO1lBQ25DLElBQUksQ0FBQyxJQUFJO2dCQUNQLE9BQU8sU0FBUyxDQUFDO1lBQ25CLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztnQkFDdkIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO2lCQUNmLENBQUM7Z0JBQ0osSUFBSSxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3RDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMxQixDQUFDO1FBQ0gsQ0FBQyxDQUFBO1FBVUQsWUFBTyxHQUFHLEtBQUssQ0FBQztRQThCaEIsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUNuQixnQkFBVyxHQUFZLDJCQUEyQixDQUFDO1FBQ2IsZ0JBQVcsR0FBRyxFQUFFLENBQUM7UUFnQy9DLGtCQUFhLEdBQUcsQ0FBQyxDQUFDO1FBNkJULGFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBRTlDLElBQUksSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUMzQixJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7UUFDdEMsQ0FBQztRQUNELEdBQUcsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDekQsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDM0IsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsUUFBUTtRQUNOLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ25GLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYztZQUN0QixNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssdUJBQXVCLENBQUM7UUFDN0MsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDaEksSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQzVDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQ3hCLFlBQVksQ0FBQyxHQUFHLENBQUMsRUFDakIsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUN6RCxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FDWixJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN2QyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDeEUsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUM7UUFDakQsQ0FBQyxDQUFDLENBQUM7UUFDSCxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ3ZCLElBQUksR0FBRztZQUNMLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQy9DLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsQ0FBQyxJQUFJLEdBQUcsRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNuRixDQUFDO0lBQ0QsV0FBVztRQUNULElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ25ELElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDN0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUMzQixJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ2pDLENBQUM7OEdBbkxLLGdCQUFnQjtrR0FBaEIsZ0JBQWdCLDJnQkF6QlgsQ0FBQyxFQUFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQyw2TUEwQ2xDLHNCQUFzQiwyQ0F6Q3REOzs7Ozs7Ozs7Ozs7Ozs7O1FBZ0JKOzsyRkFRQSxnQkFBZ0I7a0JBM0J2QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxxQkFBcUI7b0JBQy9CLFNBQVMsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFdBQVcsa0JBQWtCLEVBQUUsQ0FBQztvQkFDNUUsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7O1FBZ0JKO29CQUNOLElBQUksRUFBRTt3QkFDSixLQUFLLEVBQUUsS0FBSzt3QkFDWixrQkFBa0IsRUFBRSxrQkFBa0I7d0JBQ3RDLHlCQUF5QixFQUFFLGFBQWE7cUJBQ3pDO2lCQUNGOzswQkFrSmMsUUFBUTs7MEJBQUksSUFBSTswSkFoSVMsWUFBWTtzQkFBakQsU0FBUzt1QkFBQyxPQUFPLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUNnQyxPQUFPO3NCQUExRSxTQUFTO3VCQUFDLE9BQU8sRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLHNCQUFzQixFQUFFO2dCQUMxQyxFQUFFO3NCQUF6QixXQUFXO2dCQUNHLEtBQUs7c0JBQW5CLEtBQUs7dUJBQUMsTUFBTTtnQkFFQSxXQUFXO3NCQUF2QixLQUFLO2dCQU9HLElBQUk7c0JBQVosS0FBSztnQkFDYSxVQUFVO3NCQUE1QixNQUFNO2dCQUNZLGNBQWM7c0JBQWhDLE1BQU07Z0JBdUJILGdCQUFnQjtzQkFEbkIsV0FBVzt1QkFBQyxnQkFBZ0I7Z0JBS3pCLFFBQVE7c0JBRFgsS0FBSztnQkFhRixRQUFRO3NCQURYLEtBQUs7Z0JBY2dDLFdBQVc7c0JBQWhELFdBQVc7dUJBQUMsdUJBQXVCO2dCQXlCdkIsS0FBSztzQkFBakIsS0FBSztnQkFRTyxZQUFZO3NCQUF4QixLQUFLO2dCQXNCTyxtQkFBbUI7c0JBQS9CLEtBQUs7Z0JBR08sZUFBZTtzQkFBM0IsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uRGVzdHJveSwgSG9zdEJpbmRpbmcsIE9wdGlvbmFsLCBTZWxmLCBPbkluaXQsIEVsZW1lbnRSZWYsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBWaWV3Q2hpbGQsIERvQ2hlY2sgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTmdDb250cm9sLCBDb250cm9sVmFsdWVBY2Nlc3NvciwgRm9ybUNvbnRyb2wsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE1hdEZvcm1GaWVsZENvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcclxuaW1wb3J0IHsgTWF0QXV0b2NvbXBsZXRlU2VsZWN0ZWRFdmVudCwgTWF0QXV0b2NvbXBsZXRlVHJpZ2dlciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2F1dG9jb21wbGV0ZSc7XHJcbmltcG9ydCB7IEZvY3VzTW9uaXRvciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcclxuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcclxuaW1wb3J0IHsgU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIHRha2VVbnRpbCwgc3dpdGNoTWFwLCBmaWx0ZXIgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFNlc3Npb25TZXJ2aWNlIH0gZnJvbSAnLi4vc2Vzc2lvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRGF0YXNvdXJjZVNlcnZpY2UgfSBmcm9tICcuLi9kYXRhc291cmNlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBUeXBlLCBGaWVsZEluZm8gfSBmcm9tICcuLi9tb2RlbHMnO1xyXG5pbXBvcnQgeyBpc09iamVjdCwgaXNTdHJpbmcgfSBmcm9tICcuLi9mdW5jdGlvbnMnO1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2JpemRvYy1hdXRvY29tcGxldGUnLFxyXG4gIHByb3ZpZGVyczogW3sgcHJvdmlkZTogTWF0Rm9ybUZpZWxkQ29udHJvbCwgdXNlRXhpc3Rpbmc6IFR5cGVBdXRvY29tcGxldGUgfV0sXHJcbiAgdGVtcGxhdGU6IGA8aW5wdXQgbWF0SW5wdXQgW21hdEF1dG9jb21wbGV0ZV09XCJhdXRvXCIgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCIgW2Zvcm1Db250cm9sXT1cIl9jb250cm9sXCIgI2lucHV0XG4gICAgICAoZm9jdXMpPVwiX29uRm9jdXMoKVwiIChibHVyKT1cIl9vbkJsdXIoKVwiIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiLz5cbiAgICAgIDxtYXQtYXV0b2NvbXBsZXRlICNhdXRvIChvcHRpb25TZWxlY3RlZCk9XCJfb3B0aW9uU2VsZWN0ZWQoJGV2ZW50KVwiIFtkaXNwbGF5V2l0aF09J2Rpc3BsYXlGbic+XG4gICAgICAgIEBmb3IgKHYgb2YgX2l0ZW1zJCB8IGFzeW5jOyB0cmFjayB2KSB7XG4gICAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cInZcIj5cbiAgICAgICAgICAgIEBpZiAoIV9jb2x1bW4pIHtcbiAgICAgICAgICAgICAgPHNwYW4+e3t2LnZhbHVlfX08L3NwYW4+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAaWYgKF9jb2x1bW4pIHtcbiAgICAgICAgICAgICAgPHNwYW4+e3t2LnZhbHVlW19jb2x1bW4ubmFtZV19fTwvc3Bhbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgIH1cbiAgICAgIDwvbWF0LWF1dG9jb21wbGV0ZT5cbiAgICAgIEBpZiAoX2NvbnRyb2wudmFsdWUpIHtcbiAgICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gbWF0U3VmZml4IChjbGljayk9XCJjbGVhcigpXCI+PG1hdC1pY29uPmNsb3NlPC9tYXQtaWNvbj48L2J1dHRvbj5cbiAgICAgIH1gLFxyXG4gIGhvc3Q6IHtcclxuICAgIGNsYXNzOiAncm93JyxcclxuICAgICdbY2xhc3MuZmxvYXRpbmddJzogJ3Nob3VsZExhYmVsRmxvYXQnLFxyXG4gICAgJ1thdHRyLmFyaWEtZGVzY3JpYmVkYnldJzogJ2Rlc2NyaWJlZEJ5J1xyXG4gIH0sXHJcbn0pXHJcbmV4cG9ydFxyXG4gIGNsYXNzIFR5cGVBdXRvY29tcGxldGUgaW1wbGVtZW50cyBNYXRGb3JtRmllbGRDb250cm9sPHN0cmluZz4sIERvQ2hlY2ssIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkRlc3Ryb3ksIE9uSW5pdCB7XHJcbiAgZm9jdXMoKSB7XHJcbiAgICB0aGlzLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XHJcbiAgfVxyXG4gIHByaXZhdGUgc3RhdGljIG5leHRJZCA9IDA7XHJcbiAgcHJpdmF0ZSBfcGxhY2Vob2xkZXI6IHN0cmluZztcclxuICBwcml2YXRlIF9yZXF1aXJlZCA9IGZhbHNlO1xyXG4gIHByaXZhdGUgX2Rpc2FibGVkID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBfdmFsdWU/OiBzdHJpbmc7XHJcbiAgcHJpdmF0ZSBfb25DaGFuZ2U6IGFueTtcclxuICBwcml2YXRlIF9vblRvdWNoZWQ6IGFueTtcclxuICByZWFkb25seSBfY29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgpO1xyXG4gIHJlYWRvbmx5IHN0YXRlQ2hhbmdlcyA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgX2l0ZW1zJDogT2JzZXJ2YWJsZTxLZXlWYWx1ZVtdPjtcclxuICBfY29sdW1uOiBGaWVsZEluZm87XHJcbiAgcHJpdmF0ZSBfY29uZmlndXJhdGlvbjogVHlwZTtcclxuICBAVmlld0NoaWxkKCdpbnB1dCcsIHsgc3RhdGljOiB0cnVlIH0pIGlucHV0RWxlbWVudDogRWxlbWVudFJlZjtcclxuICBAVmlld0NoaWxkKCdpbnB1dCcsIHsgc3RhdGljOiB0cnVlLCByZWFkOiBNYXRBdXRvY29tcGxldGVUcmlnZ2VyIH0pIHRyaWdnZXI6IE1hdEF1dG9jb21wbGV0ZVRyaWdnZXI7XHJcbiAgQEhvc3RCaW5kaW5nKCkgcmVhZG9ubHkgaWQgPSBgdHlwZS1hdXRvLWNvbXBsZXRlLSR7VHlwZUF1dG9jb21wbGV0ZS5uZXh0SWQrK31gO1xyXG4gIEBJbnB1dCgndHlwZScpIF90eXBlITogc3RyaW5nO1xyXG4gIHByaXZhdGUgX3RleHRGb3JtQ29udHJvbDogRm9ybUNvbnRyb2w7XHJcbiAgQElucHV0KCkgZ2V0IHBsYWNlaG9sZGVyKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fcGxhY2Vob2xkZXI7XHJcbiAgfVxyXG4gIHNldCBwbGFjZWhvbGRlcihwbGg6IHN0cmluZykge1xyXG4gICAgdGhpcy5fcGxhY2Vob2xkZXIgPSBwbGg7XHJcbiAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XHJcbiAgfVxyXG4gIEBJbnB1dCgpIHRleHQ6IHN0cmluZztcclxuICBAT3V0cHV0KCkgcmVhZG9ubHkgdGV4dENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG4gIEBPdXRwdXQoKSByZWFkb25seSBvcHRpb25TZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXI8QXV0b2NvbXBsZXRlU2VsZWN0ZWRFdmVudD4oKTtcclxuICBkaXNwbGF5Rm4gPSAoaXRlbTogeyB2YWx1ZTogYW55IH0pID0+IHtcclxuICAgIGlmICghaXRlbSlcclxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgIGlmICghaXNPYmplY3QoaXRlbS52YWx1ZSkpXHJcbiAgICAgIHJldHVybiBpdGVtLnZhbHVlO1xyXG4gICAgZWxzZSB7XHJcbiAgICAgIGxldCBuYW1lID0gT2JqZWN0LmtleXMoaXRlbS52YWx1ZSlbMF07XHJcbiAgICAgIHJldHVybiBpdGVtLnZhbHVlW25hbWVdO1xyXG4gICAgfVxyXG4gIH1cclxuICBfb3B0aW9uU2VsZWN0ZWQoZTogTWF0QXV0b2NvbXBsZXRlU2VsZWN0ZWRFdmVudCkge1xyXG4gICAgY29uc3QgeyB2YWx1ZSwga2V5IH0gPSBlLm9wdGlvbi52YWx1ZSBhcyBLZXlWYWx1ZSB8fCB7fTtcclxuICAgIGNvbnN0IHRleHQgPSB0aGlzLl9jb2x1bW4gPyB2YWx1ZVt0aGlzLl9jb2x1bW4ubmFtZV0gOiB2YWx1ZTtcclxuICAgIHRoaXMuX3ZhbHVlID0ga2V5O1xyXG4gICAgdGhpcy5fdGV4dEZvcm1Db250cm9sICYmIHRoaXMuX3RleHRGb3JtQ29udHJvbC5zZXRWYWx1ZSh0ZXh0LCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XHJcbiAgICB0aGlzLnRleHRDaGFuZ2UuZW1pdCh0ZXh0KTtcclxuICAgIHRoaXMub3B0aW9uU2VsZWN0ZWQuZW1pdCh7IHZhbHVlOiBrZXksIHRleHQgfSk7XHJcbiAgICB0aGlzLl9vbkNoYW5nZSAmJiB0aGlzLl9vbkNoYW5nZShrZXkpO1xyXG4gIH1cclxuICBmb2N1c2VkID0gZmFsc2U7XHJcbiAgZ2V0IGVtcHR5KCk6IGJvb2xlYW4geyByZXR1cm4gIXRoaXMuX2NvbnRyb2wudmFsdWUgfHwgdGhpcy5fY29udHJvbC52YWx1ZSA9PT0gJyc7IH1cclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmZsb2F0aW5nJylcclxuICBnZXQgc2hvdWxkTGFiZWxGbG9hdCgpIHtcclxuICAgIHJldHVybiB0aGlzLmZvY3VzZWQgfHwgIXRoaXMuZW1wdHk7XHJcbiAgfVxyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IHJlcXVpcmVkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3JlcXVpcmVkO1xyXG4gIH1cclxuICBzZXQgcmVxdWlyZWQocmVxOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLl9yZXF1aXJlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eShyZXEpO1xyXG4gICAgaWYgKHRoaXMuX3JlcXVpcmVkKVxyXG4gICAgICB0aGlzLl9jb250cm9sLnNldFZhbGlkYXRvcnMoVmFsaWRhdG9ycy5yZXF1aXJlZCk7XHJcbiAgICBlbHNlXHJcbiAgICAgIHRoaXMuX2NvbnRyb2wuY2xlYXJWYWxpZGF0b3JzKCk7XHJcbiAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XHJcbiAgfVxyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4geyByZXR1cm4gdGhpcy5fZGlzYWJsZWQ7IH1cclxuICBzZXQgZGlzYWJsZWQodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuX2Rpc2FibGVkID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcclxuICAgIGlmICh0aGlzLl9jb250cm9sLmRpc2FibGVkICE9PSB0aGlzLl9kaXNhYmxlZCkge1xyXG4gICAgICBpZiAodGhpcy5fZGlzYWJsZWQpXHJcbiAgICAgICAgdGhpcy5fY29udHJvbC5kaXNhYmxlKCk7XHJcbiAgICAgIGVsc2VcclxuICAgICAgICB0aGlzLl9jb250cm9sLmVuYWJsZSgpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xyXG4gIH1cclxuICBlcnJvclN0YXRlID0gZmFsc2U7XHJcbiAgY29udHJvbFR5cGU/OiBzdHJpbmcgPSAnYml6ZG9jLXR5cGUtYXV0by1jb21wbGV0ZSc7XHJcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtZGVzY3JpYmVkYnknKSBkZXNjcmliZWRCeSA9ICcnO1xyXG5cclxuICBzZXREZXNjcmliZWRCeUlkcyhpZHM6IHN0cmluZ1tdKSB7XHJcbiAgICB0aGlzLmRlc2NyaWJlZEJ5ID0gaWRzLmpvaW4oJyAnKTtcclxuICB9XHJcbiAgb25Db250YWluZXJDbGljaygpOiB2b2lkIHtcclxuICAgIHRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcclxuICAgIHRoaXMudHJpZ2dlci5vcGVuUGFuZWwoKTtcclxuICB9XHJcbiAgY2xlYXIoKSB7XHJcbiAgICB0aGlzLl9zZXRWYWx1ZShudWxsLCB0cnVlKTtcclxuICAgIHRoaXMuX29uQ2hhbmdlICYmIHRoaXMuX29uQ2hhbmdlKG51bGwpO1xyXG4gIH1cclxuICB3cml0ZVZhbHVlKG9iajogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLl9zZXRWYWx1ZShvYmosIGZhbHNlKTtcclxuICB9XHJcbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLl9vbkNoYW5nZSA9IGZuO1xyXG4gIH1cclxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLl9vblRvdWNoZWQgPSBmbjtcclxuICB9XHJcbiAgc2V0RGlzYWJsZWRTdGF0ZT8oaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XHJcbiAgfVxyXG4gIEBJbnB1dCgpIGdldCB2YWx1ZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xyXG4gIH1cclxuICBzZXQgdmFsdWUodmFsOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX3NldFZhbHVlKHZhbCwgdHJ1ZSk7XHJcbiAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX21pbmltdW1DaGFycyA9IDE7XHJcbiAgQElucHV0KCkgc2V0IG1pbmltdW1DaGFycyh2YWw6IG51bWJlcikgeyB0aGlzLl9taW5pbXVtQ2hhcnMgPSB2YWw7IH1cclxuICBwcml2YXRlIF9zZXRWYWx1ZSh2YWw6IHN0cmluZywgZW1pdEV2ZW50OiBib29sZWFuKSB7XHJcbiAgICB0aGlzLl92YWx1ZSA9IHZhbDtcclxuICAgIC8vaWYgKHZhbClcclxuICAgIC8vdGhpcy5zZXJ2aWNlLmdldCh0aGlzLnNvdXJjZSwgdmFsKS5zdWJzY3JpYmUodiA9PiB7XHJcbiAgICAvL30pO1xyXG4gICAgdGhpcy5fY29udHJvbC5zZXRWYWx1ZSh2YWwgPyB7IGtleTogdmFsLCB2YWx1ZTogdGhpcy50ZXh0IHx8IHZhbCB9IDogdmFsLCB7IGVtaXRFdmVudCB9KTtcclxuICB9XHJcbiAgbmdEb0NoZWNrKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMubmdDb250cm9sKSB7XHJcbiAgICAgIHRoaXMuZXJyb3JTdGF0ZSA9IHRoaXMubmdDb250cm9sLmludmFsaWQgJiYgdGhpcy5uZ0NvbnRyb2wudG91Y2hlZDtcclxuICAgICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgX29uRm9jdXMoKSB7XHJcbiAgICB0aGlzLmZvY3VzZWQgPSB0cnVlO1xyXG4gICAgdGhpcy5fb25Ub3VjaGVkICYmIHRoaXMuX29uVG91Y2hlZCgpO1xyXG4gIH1cclxuICBfb25CbHVyKCkge1xyXG4gICAgdGhpcy5mb2N1c2VkID0gZmFsc2U7XHJcbiAgfVxyXG4gIEBJbnB1dCgpIHNldCB0ZXh0Rm9ybUNvbnRyb2xOYW1lKHZhbDogc3RyaW5nKSB7XHJcbiAgICB0aGlzLl90ZXh0Rm9ybUNvbnRyb2wgPSAoKHRoaXMubmdDb250cm9sLmNvbnRyb2wgYXMgRm9ybUNvbnRyb2wpLnBhcmVudCkuY29udHJvbHNbdmFsXSBhcyBGb3JtQ29udHJvbDtcclxuICB9XHJcbiAgQElucHV0KCkgc2V0IHRleHRGb3JtQ29udHJvbCh2YWw6IEZvcm1Db250cm9sKSB7XHJcbiAgICB0aGlzLl90ZXh0Rm9ybUNvbnRyb2wgPSB2YWw7XHJcbiAgfVxyXG4gIHByaXZhdGUgcmVhZG9ubHkgX2Rlc3Ryb3kgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIEBTZWxmKCkgcHVibGljIG5nQ29udHJvbDogTmdDb250cm9sLCBwcml2YXRlIF9mbTogRm9jdXNNb25pdG9yLCBwcml2YXRlIF9lbFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sIHByaXZhdGUgX3Nlc3Npb246IFNlc3Npb25TZXJ2aWNlLCBwcml2YXRlIF9zZXJ2aWNlOiBEYXRhc291cmNlU2VydmljZSkge1xyXG4gICAgaWYgKHRoaXMubmdDb250cm9sICE9IG51bGwpIHtcclxuICAgICAgdGhpcy5uZ0NvbnRyb2wudmFsdWVBY2Nlc3NvciA9IHRoaXM7XHJcbiAgICB9XHJcbiAgICBfZm0ubW9uaXRvcihfZWxSZWYubmF0aXZlRWxlbWVudCwgdHJ1ZSkuc3Vic2NyaWJlKG9yaWdpbiA9PiB7XHJcbiAgICAgIHRoaXMuZm9jdXNlZCA9ICEhb3JpZ2luO1xyXG4gICAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9jb25maWd1cmF0aW9uID0gdGhpcy5fc2Vzc2lvbi5wcm9maWxlLnR5cGVzLmZpbmQodCA9PiB0Lm5hbWUgPT09IHRoaXMuX3R5cGUpO1xyXG4gICAgaWYgKCF0aGlzLl9jb25maWd1cmF0aW9uKVxyXG4gICAgICB0aHJvdyBgJHt0aGlzLl90eXBlfSBpcyBub3QgYSBrbm93biB0eXBlLmA7XHJcbiAgICB0aGlzLl9jb2x1bW4gPSB0aGlzLl9jb25maWd1cmF0aW9uLmNvbHVtbnMgPyB0aGlzLl9jb25maWd1cmF0aW9uLmNvbHVtbnMuZmluZChjID0+ICFjLmZsYWdzfHxjLmZsYWdzLmluZGV4T2YoJ0tleScpIDwgMCkgOiBudWxsO1xyXG4gICAgdGhpcy5faXRlbXMkID0gdGhpcy5fY29udHJvbC52YWx1ZUNoYW5nZXMucGlwZShcclxuICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpLFxyXG4gICAgICBkZWJvdW5jZVRpbWUoMjUwKSxcclxuICAgICAgZmlsdGVyKHYgPT4gaXNTdHJpbmcodikgJiYgdi5sZW5ndGggPiB0aGlzLl9taW5pbXVtQ2hhcnMpLFxyXG4gICAgICBzd2l0Y2hNYXAodiA9PlxyXG4gICAgICAgIHRoaXMuX3NlcnZpY2UuYWxsKHRoaXMuX3R5cGUsIHYpKSk7XHJcbiAgICB0aGlzLl9jb250cm9sLnN0YXR1c0NoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSkpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIHRoaXMuZXJyb3JTdGF0ZSA9IHRoaXMuX2NvbnRyb2wuZXJyb3JzICE9IG51bGw7XHJcbiAgICB9KTtcclxuICAgIGNvbnN0IHZhbCA9IHRoaXMudmFsdWU7XHJcbiAgICBpZiAodmFsKVxyXG4gICAgICB0aGlzLl9zZXJ2aWNlLmdldCh0aGlzLl90eXBlLCB2YWwpLnN1YnNjcmliZSh2ID0+XHJcbiAgICAgICAgdGhpcy5fY29udHJvbC5zZXRWYWx1ZSh7IGtleTogdmFsLCB2YWx1ZTogdiB8fCB2YWwgfSwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pKTtcclxuICB9XHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLl9kZXN0cm95Lm5leHQoKTtcclxuICAgIHRoaXMuX2Rlc3Ryb3kuY29tcGxldGUoKTtcclxuICAgIHRoaXMuX2ZtLnN0b3BNb25pdG9yaW5nKHRoaXMuX2VsUmVmLm5hdGl2ZUVsZW1lbnQpO1xyXG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMuY29tcGxldGUoKTtcclxuICAgIHRoaXMudGV4dENoYW5nZS5jb21wbGV0ZSgpO1xyXG4gICAgdGhpcy5vcHRpb25TZWxlY3RlZC5jb21wbGV0ZSgpO1xyXG4gIH1cclxufVxyXG5pbnRlcmZhY2UgS2V5VmFsdWUgeyBrZXk6IGFueSwgdmFsdWU6IGFueSB9XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEF1dG9jb21wbGV0ZVNlbGVjdGVkRXZlbnQge1xyXG4gIHJlYWRvbmx5IHRleHQ6IHN0cmluZztcclxuICByZWFkb25seSB2YWx1ZTogYW55O1xyXG59XHJcbiJdfQ==