ngx-scandoc 18.0.2 → 19.0.1

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 (48) hide show
  1. package/fesm2022/ngx-scandoc.mjs +130 -130
  2. package/fesm2022/ngx-scandoc.mjs.map +1 -1
  3. package/package.json +9 -11
  4. package/esm2022/core/app.worker.mjs +0 -236
  5. package/esm2022/core/components/base.component.mjs +0 -15
  6. package/esm2022/core/components/camera-switch/camera-switch.component.mjs +0 -25
  7. package/esm2022/core/components/components.module.mjs +0 -69
  8. package/esm2022/core/components/manual-scan/manual-scan.component.mjs +0 -290
  9. package/esm2022/core/components/scan/scan.component.mjs +0 -733
  10. package/esm2022/core/components/scan-results/scan-results.component.mjs +0 -65
  11. package/esm2022/core/components/webcam/domain/webcam-image.mjs +0 -58
  12. package/esm2022/core/components/webcam/domain/webcam-init-error.mjs +0 -3
  13. package/esm2022/core/components/webcam/domain/webcam-mirror-properties.mjs +0 -3
  14. package/esm2022/core/components/webcam/util/webcam.util.mjs +0 -50
  15. package/esm2022/core/components/webcam/webcam/webcam.component.mjs +0 -543
  16. package/esm2022/core/components/webcam/webcam.module.mjs +0 -29
  17. package/esm2022/core/helpers/object-utils.mjs +0 -100
  18. package/esm2022/core/interfaces/config.mjs +0 -2
  19. package/esm2022/core/interfaces/guest.data.mjs +0 -2
  20. package/esm2022/core/pipes/pipes.module.mjs +0 -19
  21. package/esm2022/core/pipes/safeResourceUrl.pipe.mjs +0 -20
  22. package/esm2022/core/shared/material.module.mjs +0 -162
  23. package/esm2022/core/tokens/config.tokens.mjs +0 -4
  24. package/esm2022/dialogs/components/blank/blank.component.mjs +0 -46
  25. package/esm2022/dialogs/components/confirm/confirm.component.mjs +0 -51
  26. package/esm2022/dialogs/components/loading/loading.component.mjs +0 -12
  27. package/esm2022/dialogs/components/prompt-manual/prompt-manual.component.mjs +0 -30
  28. package/esm2022/dialogs/components/scan-profile/scan-profile.component.mjs +0 -79
  29. package/esm2022/dialogs/components/scan-selfie/scan-selfie.component.mjs +0 -95
  30. package/esm2022/dialogs/components/turn-document/turn-document.component.mjs +0 -31
  31. package/esm2022/dialogs/dialogs.core.provider.mjs +0 -120
  32. package/esm2022/dialogs/dialogs.module.mjs +0 -102
  33. package/esm2022/forms/form.module.mjs +0 -87
  34. package/esm2022/forms/types/avatar.type.mjs +0 -58
  35. package/esm2022/forms/types/profile.image.type.mjs +0 -64
  36. package/esm2022/forms/types/title.type.mjs +0 -32
  37. package/esm2022/lib/ngx-scandoc.module.mjs +0 -44
  38. package/esm2022/ngx-scandoc.mjs +0 -5
  39. package/esm2022/providers/auth.provider.mjs +0 -113
  40. package/esm2022/providers/camera.provider.mjs +0 -87
  41. package/esm2022/providers/interceptor.provider.mjs +0 -77
  42. package/esm2022/providers/layout.provider.mjs +0 -30
  43. package/esm2022/providers/scan.form.mjs +0 -347
  44. package/esm2022/providers/scan.provider.mjs +0 -756
  45. package/esm2022/providers/translate-loader.provider.mjs +0 -126
  46. package/esm2022/providers/translation.provider.mjs +0 -133
  47. package/esm2022/providers/webrtc.provider.mjs +0 -58
  48. package/esm2022/public-api.mjs +0 -33
@@ -1,77 +0,0 @@
1
- import { HttpHeaders } from '@angular/common/http';
2
- import { Injectable } from '@angular/core';
3
- import { throwError } from 'rxjs';
4
- import { catchError, share, switchMap } from 'rxjs/operators';
5
- import { NgxScandocAuthProvider } from './auth.provider';
6
- import * as i0 from "@angular/core";
7
- export class HttpErrorInterceptor {
8
- constructor(injector) {
9
- this.injector = injector;
10
- }
11
- intercept(req, next) {
12
- this.authProvider = this.injector.get(NgxScandocAuthProvider);
13
- //console.log(req.url);
14
- if (req.url.indexOf('/ks/') >= 0 || req.url.indexOf('/assets/') >= 0) {
15
- return next.handle(req);
16
- }
17
- // const authProvider = this.injector.get(AuthProvider);
18
- if (this.authProvider.config.validDomains) {
19
- const valid = this.authProvider.config.validDomains
20
- .map((domain) => {
21
- return req.url.indexOf(domain) >= 0;
22
- })
23
- .filter((m) => m).length > 0;
24
- if (!valid) {
25
- return next.handle(req);
26
- }
27
- }
28
- this.inflightAuthRequest = this.authProvider.accesToken;
29
- return this.inflightAuthRequest.pipe(share(), switchMap((token) => {
30
- // unset request inflight
31
- this.inflightAuthRequest = null;
32
- const transaction = req.headers.get('TransactionID');
33
- const authReq = req.clone({
34
- headers: this.getHeaders(token, transaction || ''),
35
- });
36
- return next.handle(authReq);
37
- }), catchError((err) => {
38
- let tokenExpired = false;
39
- if (err.errors) {
40
- const find = err.erros.find((es) => es.indexOf('Invalid token') > -1);
41
- tokenExpired = find ? true : false;
42
- }
43
- console.log(err);
44
- if (err.status === 401 || err.status === 403 || tokenExpired) {
45
- return this.authProvider.refreshToken().pipe(switchMap((token) => {
46
- const transaction = req.headers.get('TransactionID');
47
- const authReq = req.clone({
48
- headers: this.getHeaders(token, transaction || ''),
49
- });
50
- return next.handle(authReq);
51
- }));
52
- }
53
- else {
54
- return throwError(() => err);
55
- }
56
- }));
57
- }
58
- getHeaders(token, TransactionID) {
59
- if (TransactionID) {
60
- return new HttpHeaders({
61
- 'Content-Type': 'application/json',
62
- Authorization: token,
63
- TransactionID,
64
- });
65
- }
66
- return new HttpHeaders({
67
- 'Content-Type': 'application/json',
68
- Authorization: token,
69
- });
70
- }
71
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: HttpErrorInterceptor, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable }); }
72
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: HttpErrorInterceptor }); }
73
- }
74
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: HttpErrorInterceptor, decorators: [{
75
- type: Injectable
76
- }], ctorParameters: () => [{ type: i0.Injector }] });
77
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJjZXB0b3IucHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc2NhbmRvYy9zcmMvcHJvdmlkZXJzL2ludGVyY2VwdG9yLnByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBMEIsV0FBVyxFQUFnQyxNQUFNLHNCQUFzQixDQUFDO0FBQ3pHLE9BQU8sRUFBRSxVQUFVLEVBQVksTUFBTSxlQUFlLENBQUM7QUFDckQsT0FBTyxFQUFjLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM5QyxPQUFPLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFHekQsTUFBTSxPQUFPLG9CQUFvQjtJQUkvQixZQUFvQixRQUFrQjtRQUFsQixhQUFRLEdBQVIsUUFBUSxDQUFVO0lBQUcsQ0FBQztJQUUxQyxTQUFTLENBQ1AsR0FBcUIsRUFDckIsSUFBaUI7UUFHakIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1FBQzlELHVCQUF1QjtRQUN2QixJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUNyRSxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDMUIsQ0FBQztRQUVGLHdEQUF3RDtRQUV2RCxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQzFDLE1BQU0sS0FBSyxHQUNULElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxD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O2FBQ2QsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUNELE9BQU8sSUFBSSxXQUFXLENBQUM7WUFDckIsY0FBYyxFQUFFLGtCQUFrQjtZQUNsQyxhQUFhLEVBQUUsS0FBSztTQUNyQixDQUFDLENBQUM7SUFDTCxDQUFDOytHQXZGVSxvQkFBb0I7bUhBQXBCLG9CQUFvQjs7NEZBQXBCLG9CQUFvQjtrQkFEaEMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBFdmVudCwgSHR0cEhhbmRsZXIsIEh0dHBIZWFkZXJzLCBIdHRwSW50ZXJjZXB0b3IsIEh0dHBSZXF1ZXN0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIHRocm93RXJyb3IgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIHNoYXJlLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBOZ3hTY2FuZG9jQXV0aFByb3ZpZGVyIH0gZnJvbSAnLi9hdXRoLnByb3ZpZGVyJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEh0dHBFcnJvckludGVyY2VwdG9yIGltcGxlbWVudHMgSHR0cEludGVyY2VwdG9yIHtcbiAgaW5mbGlnaHRBdXRoUmVxdWVzdCE6IE9ic2VydmFibGU8YW55PiB8IG51bGw7XG5cbiAgYXV0aFByb3ZpZGVyITpOZ3hTY2FuZG9jQXV0aFByb3ZpZGVyO1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGluamVjdG9yOiBJbmplY3Rvcikge31cblxuICBpbnRlcmNlcHQoXG4gICAgcmVxOiBIdHRwUmVxdWVzdDxhbnk+LFxuICAgIG5leHQ6IEh0dHBIYW5kbGVyXG4gICk6IE9ic2VydmFibGU8SHR0cEV2ZW50PGFueT4+IHtcblxuICAgIHRoaXMuYXV0aFByb3ZpZGVyID0gdGhpcy5pbmplY3Rvci5nZXQoTmd4U2NhbmRvY0F1dGhQcm92aWRlcik7XG4gICAgLy9jb25zb2xlLmxvZyhyZXEudXJsKTtcbiAgICBpZiAocmVxLnVybC5pbmRleE9mKCcva3MvJykgPj0gMCB8fCByZXEudXJsLmluZGV4T2YoJy9hc3NldHMvJykgPj0gMCkge1xuICAgICAgcmV0dXJuIG5leHQuaGFuZGxlKHJlcSk7XG4gICAgfVxuXG4gICAvLyBjb25zdCBhdXRoUHJvdmlkZXIgPSB0aGlzLmluamVjdG9yLmdldChBdXRoUHJvdmlkZXIpO1xuXG4gICAgaWYgKHRoaXMuYXV0aFByb3ZpZGVyLmNvbmZpZy52YWxpZERvbWFpbnMpIHtcbiAgICAgIGNvbnN0IHZhbGlkID1cbiAgICAgICAgdGhpcy5hdXRoUHJvdmlkZXIuY29uZmlnLnZhbGlkRG9tYWluc1xuICAgICAgICAgIC5tYXAoKGRvbWFpbikgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHJlcS51cmwuaW5kZXhPZihkb21haW4pID49IDA7XG4gICAgICAgICAgfSlcbiAgICAgICAgICAuZmlsdGVyKChtKSA9PiBtKS5sZW5ndGggPiAwO1xuICAgICAgaWYgKCF2YWxpZCkge1xuICAgICAgICByZXR1cm4gbmV4dC5oYW5kbGUocmVxKTtcbiAgICAgIH1cbiAgICB9XG5cblxuICAgIHRoaXMuaW5mbGlnaHRBdXRoUmVxdWVzdCA9IHRoaXMuYXV0aFByb3ZpZGVyLmFjY2VzVG9rZW47XG5cbiAgICByZXR1cm4gdGhpcy5pbmZsaWdodEF1dGhSZXF1ZXN0LnBpcGUoXG4gICAgICBzaGFyZSgpLFxuICAgICAgc3dpdGNoTWFwKCh0b2tlbjogc3RyaW5nKSA9PiB7XG4gICAgICAgIC8vIHVuc2V0IHJlcXVlc3QgaW5mbGlnaHRcbiAgICAgICAgdGhpcy5pbmZsaWdodEF1dGhSZXF1ZXN0ID0gbnVsbDtcblxuICAgICAgICBjb25zdCB0cmFuc2FjdGlvbiA9IHJlcS5oZWFkZXJzLmdldCgnVHJhbnNhY3Rpb25JRCcpO1xuICAgICAgICBjb25zdCBhdXRoUmVxID0gcmVxLmNsb25lKHtcbiAgICAgICAgICBoZWFkZXJzOiB0aGlzLmdldEhlYWRlcnModG9rZW4sIHRyYW5zYWN0aW9uIHx8ICcnKSxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIG5leHQuaGFuZGxlKGF1dGhSZXEpO1xuICAgICAgfSksXG4gICAgICBjYXRjaEVycm9yKChlcnI6IGFueSkgPT4ge1xuICAgICAgICBsZXQgdG9rZW5FeHBpcmVkID0gZmFsc2U7XG4gICAgICAgIGlmIChlcnIuZXJyb3JzKSB7XG4gICAgICAgICAgY29uc3QgZmluZCA9IGVyci5lcnJvcy5maW5kKFxuICAgICAgICAgICAgKGVzOiBzdHJpbmcpID0+IGVzLmluZGV4T2YoJ0ludmFsaWQgdG9rZW4nKSA+IC0xXG4gICAgICAgICAgKTtcbiAgICAgICAgICB0b2tlbkV4cGlyZWQgPSBmaW5kID8gdHJ1ZSA6IGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnNvbGUubG9nKGVycik7XG5cbiAgICAgICAgaWYgKGVyci5zdGF0dXMgPT09IDQwMSB8fCBlcnIuc3RhdHVzID09PSA0MDMgfHwgdG9rZW5FeHBpcmVkKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuYXV0aFByb3ZpZGVyLnJlZnJlc2hUb2tlbigpLnBpcGUoXG4gICAgICAgICAgICBzd2l0Y2hNYXAoKHRva2VuKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IHRyYW5zYWN0aW9uID0gcmVxLmhlYWRlcnMuZ2V0KCdUcmFuc2FjdGlvbklEJyk7XG4gICAgICAgICAgICAgIGNvbnN0IGF1dGhSZXEgPSByZXEuY2xvbmUoe1xuICAgICAgICAgICAgICAgIGhlYWRlcnM6IHRoaXMuZ2V0SGVhZGVycyh0b2tlbiwgdHJhbnNhY3Rpb24gfHwgJycpLFxuICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICByZXR1cm4gbmV4dC5oYW5kbGUoYXV0aFJlcSk7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gZXJyKTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRIZWFkZXJzKHRva2VuOiBzdHJpbmcsIFRyYW5zYWN0aW9uSUQ6IHN0cmluZykge1xuICAgIGlmIChUcmFuc2FjdGlvbklEKSB7XG4gICAgICByZXR1cm4gbmV3IEh0dHBIZWFkZXJzKHtcbiAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICAgQXV0aG9yaXphdGlvbjogdG9rZW4sXG4gICAgICAgIFRyYW5zYWN0aW9uSUQsXG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBIdHRwSGVhZGVycyh7XG4gICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgQXV0aG9yaXphdGlvbjogdG9rZW4sXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -1,30 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { distinctUntilChanged, tap } from 'rxjs';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "@angular/cdk/layout";
5
- import * as i2 from "@angular/cdk/platform";
6
- export class LayoutProvider {
7
- constructor(breakpointObserver, platform) {
8
- this.breakpointObserver = breakpointObserver;
9
- this.platform = platform;
10
- this.isMobile = false;
11
- this.breakpoint$ = this.breakpointObserver
12
- .observe(['(min-width: 768px)'])
13
- .pipe(tap((value) => console.log(value)), distinctUntilChanged());
14
- }
15
- init() {
16
- this.breakpoint$.subscribe((v) => {
17
- this.isMobile = !v.matches || this.platform.IOS || this.platform.ANDROID;
18
- document.body.className = this.isMobile ? 'mobile' : 'desktop';
19
- });
20
- }
21
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LayoutProvider, deps: [{ token: i1.BreakpointObserver }, { token: i2.Platform }], target: i0.ɵɵFactoryTarget.Injectable }); }
22
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LayoutProvider, providedIn: 'root' }); }
23
- }
24
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LayoutProvider, decorators: [{
25
- type: Injectable,
26
- args: [{
27
- providedIn: 'root',
28
- }]
29
- }], ctorParameters: () => [{ type: i1.BreakpointObserver }, { type: i2.Platform }] });
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LnByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNjYW5kb2Mvc3JjL3Byb3ZpZGVycy9sYXlvdXQucHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7O0FBS2pELE1BQU0sT0FBTyxjQUFjO0lBUXpCLFlBQW9CLGtCQUFzQyxFQUFTLFFBQWlCO1FBQWhFLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFBUyxhQUFRLEdBQVIsUUFBUSxDQUFTO1FBUHBGLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDUixnQkFBVyxHQUFHLElBQUksQ0FBQyxrQkFBa0I7YUFDM0MsT0FBTyxDQUFDLENBQUMsb0JBQW9CLENBQUMsQ0FBQzthQUMvQixJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQ2xDLG9CQUFvQixFQUFFLENBQ3ZCLENBQUM7SUFDbUYsQ0FBQztJQUV4RixJQUFJO1FBR0YsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFNLEVBQUUsRUFBRTtZQUNwQyxJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQztZQUV6RSxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUNqRSxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7K0dBbEJVLGNBQWM7bUhBQWQsY0FBYyxjQUZiLE1BQU07OzRGQUVQLGNBQWM7a0JBSDFCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQnJlYWtwb2ludE9ic2VydmVyIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2xheW91dCc7XG5pbXBvcnQgeyBQbGF0Zm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wbGF0Zm9ybSc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgdGFwIH0gZnJvbSAncnhqcyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBMYXlvdXRQcm92aWRlciB7XG4gIGlzTW9iaWxlID0gZmFsc2U7XG4gIHJlYWRvbmx5IGJyZWFrcG9pbnQkID0gdGhpcy5icmVha3BvaW50T2JzZXJ2ZXJcbiAgICAub2JzZXJ2ZShbJyhtaW4td2lkdGg6IDc2OHB4KSddKVxuICAgIC5waXBlKFxuICAgICAgdGFwKCh2YWx1ZSkgPT4gY29uc29sZS5sb2codmFsdWUpKSxcbiAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKClcbiAgICApO1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGJyZWFrcG9pbnRPYnNlcnZlcjogQnJlYWtwb2ludE9ic2VydmVyLHByaXZhdGUgcGxhdGZvcm06UGxhdGZvcm0pIHt9XG5cbiAgaW5pdCgpIHtcblxuXG4gICAgdGhpcy5icmVha3BvaW50JC5zdWJzY3JpYmUoKHY6IGFueSkgPT4ge1xuICAgICAgdGhpcy5pc01vYmlsZSA9ICF2Lm1hdGNoZXMgfHwgdGhpcy5wbGF0Zm9ybS5JT1MgfHwgdGhpcy5wbGF0Zm9ybS5BTkRST0lEO1xuXG4gICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTmFtZSA9IHRoaXMuaXNNb2JpbGUgPyAnbW9iaWxlJyA6ICdkZXNrdG9wJztcbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -1,347 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { Subject } from 'rxjs';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "./translation.provider";
5
- import * as i2 from "./scan.provider";
6
- export class NgxScandocFieldsProvider {
7
- constructor(translate, provider) {
8
- this.translate = translate;
9
- this.provider = provider;
10
- this.selfie$ = new Subject();
11
- }
12
- update() {
13
- return [
14
- {
15
- fieldGroupClassName: 'px-16',
16
- fieldGroup: [
17
- {
18
- wrappers: [],
19
- type: 'checkbox',
20
- key: 'profile',
21
- class: 'checkbox ',
22
- defaultValue: true,
23
- props: {
24
- label: 'scandoc.form.scan.document.update.profile',
25
- },
26
- },
27
- {
28
- wrappers: [],
29
- type: 'checkbox',
30
- class: 'checkbox ',
31
- key: 'document',
32
- defaultValue: true,
33
- props: {
34
- label: 'scandoc.form.scan.document.update.document',
35
- },
36
- },
37
- {
38
- wrappers: [],
39
- type: 'checkbox',
40
- class: 'checkbox ',
41
- key: 'attachment',
42
- defaultValue: true,
43
- props: {
44
- label: 'scandoc.form.scan.document.update.attachment',
45
- },
46
- },
47
- ].map((item) => this.translate.forms(item)),
48
- },
49
- ];
50
- }
51
- document() {
52
- if (this.customFields) {
53
- return this.customFields;
54
- }
55
- return [
56
- {
57
- className: 'w-100-p',
58
- fieldGroupClassName: 'form-flex-row profile-details',
59
- fieldGroup: [
60
- {
61
- className: 'w-100-p ',
62
- fieldGroupClassName: 'card-group',
63
- fieldGroup: [
64
- {
65
- type: 'title',
66
- props: {
67
- label: 'scandoc.form.scan.document.guestDetailsTitle',
68
- },
69
- },
70
- {
71
- type: 'profile-image',
72
- key: '_avatar',
73
- props: {
74
- label: 'scandoc.form.scan.document.firstName',
75
- },
76
- },
77
- {
78
- type: 'input',
79
- key: 'firstName',
80
- className: 'small',
81
- props: {
82
- label: 'scandoc.form.scan.document.firstName',
83
- required: true,
84
- },
85
- },
86
- {
87
- type: 'input',
88
- key: 'lastName',
89
- className: 'small',
90
- props: {
91
- label: 'scandoc.form.scan.document.lastName',
92
- required: true,
93
- },
94
- },
95
- {
96
- className: 'small',
97
- key: 'secondName',
98
- type: 'input',
99
- props: {
100
- label: 'scandoc.form.scan.document.secondLastName',
101
- },
102
- hideExpression: 'model.hideSecondLastName',
103
- },
104
- {
105
- type: 'input',
106
- key: 'middleName',
107
- className: 'small',
108
- props: {
109
- label: 'scandoc.form.scan.document.middleName',
110
- },
111
- },
112
- {
113
- className: '',
114
- fieldGroupClassName: 'form-flex-row space-between',
115
- fieldGroup: [
116
- {
117
- type: 'datepicker',
118
- key: 'birthDate',
119
- className: 'w-100-p small mr-8',
120
- props: {
121
- label: 'scandoc.form.scan.document.birthDate',
122
- },
123
- },
124
- {
125
- type: 'select',
126
- key: 'gender',
127
- className: 'w-100-p small ml-8',
128
- props: {
129
- label: 'scandoc.form.scan.document.gender',
130
- options: [
131
- { value: 'MALE', label: 'MALE' },
132
- { value: 'FEMALE', label: 'FEMALE' },
133
- { value: 'NA', label: 'N/A' },
134
- ],
135
- },
136
- },
137
- ],
138
- },
139
- {
140
- className: '',
141
- fieldGroupClassName: 'form-flex-row space-between',
142
- fieldGroup: [
143
- {
144
- type: 'input',
145
- key: 'birthPlace',
146
- className: 'small w-100-p mr-8',
147
- props: {
148
- label: 'scandoc.form.scan.document.birthPlace',
149
- },
150
- },
151
- {
152
- type: 'select',
153
- key: 'birthCountry',
154
- className: 'small w-100-p ml-8',
155
- props: {
156
- label: 'scandoc.form.scan.document.birthCountry',
157
- options: this.provider.countries(),
158
- },
159
- },
160
- ],
161
- },
162
- {
163
- className: 'small',
164
- key: 'nationality',
165
- type: 'select',
166
- props: {
167
- label: 'scandoc.form.scan.document.nationality',
168
- // appearance: 'outline',
169
- // options: this.profileProvider.nationalities(),
170
- options: this.provider.countries(),
171
- },
172
- },
173
- ],
174
- },
175
- {
176
- className: 'w-100-p',
177
- fieldGroupClassName: 'form-flex-column',
178
- fieldGroup: [
179
- {
180
- className: 'w-100-p',
181
- fieldGroupClassName: 'card-group',
182
- fieldGroup: [
183
- {
184
- type: 'title',
185
- props: {
186
- label: 'scandoc.form.scan.document.documentTitle',
187
- },
188
- },
189
- {
190
- type: 'select',
191
- key: 'documentType',
192
- props: {
193
- label: 'scandoc.form.scan.document.documentType',
194
- options: [
195
- { value: 'ID', label: 'Identity Document' },
196
- { value: 'PASS', label: 'Passport' },
197
- { value: 'DL', label: 'Driver Licence' },
198
- ],
199
- // valueProp: 'id',
200
- // labelProp: 'value',
201
- required: true,
202
- },
203
- },
204
- {
205
- type: 'input',
206
- key: 'documentNumber',
207
- props: {
208
- label: 'scandoc.form.scan.document.documentNumber',
209
- required: true,
210
- },
211
- },
212
- {
213
- className: '',
214
- fieldGroupClassName: 'form-flex-row space-between',
215
- fieldGroup: [
216
- {
217
- type: 'datepicker',
218
- key: 'issueDate',
219
- className: 'small mr-8',
220
- props: {
221
- label: 'scandoc.form.scan.document.issueDate',
222
- },
223
- },
224
- {
225
- type: 'datepicker',
226
- key: 'expirationDate',
227
- className: 'small ml-8',
228
- props: {
229
- label: 'scandoc.form.scan.document.expirationDate',
230
- },
231
- },
232
- ],
233
- },
234
- {
235
- type: 'select',
236
- key: 'issueStateCode',
237
- props: {
238
- label: 'scandoc.form.scan.document.issuingStateCode',
239
- options: this.provider.countries(),
240
- },
241
- },
242
- {
243
- type: 'input',
244
- key: 'issuingPlace',
245
- props: {
246
- label: 'scandoc.form.scan.document.issuingPlace',
247
- required: false,
248
- },
249
- },
250
- ],
251
- },
252
- {
253
- className: 'w-100-p',
254
- fieldGroupClassName: 'card-group',
255
- fieldGroup: [
256
- {
257
- type: 'title',
258
- props: {
259
- label: 'scandoc.form.scan.document.addressTitle',
260
- badge: 'communications',
261
- },
262
- },
263
- {
264
- className: 'small',
265
- key: 'country',
266
- type: 'select',
267
- props: {
268
- required: true,
269
- label: 'scandoc.form.profile.address.country',
270
- options: this.provider.countries(),
271
- },
272
- // expressionProperties: {
273
- // 'props.disabled': (model: any) => !model.newAddress,
274
- // },
275
- hooks: {
276
- onInit: (model) => {
277
- console.log(model);
278
- },
279
- },
280
- },
281
- {
282
- className: '',
283
- fieldGroupClassName: 'form-flex-row space-between',
284
- fieldGroup: [
285
- {
286
- className: 'mr-8 w-100-p',
287
- key: 'zip',
288
- type: 'input',
289
- props: {
290
- label: 'scandoc.form.profile.address.zip',
291
- labelProp: (item) => {
292
- return `${item.zip} (${item.city})`;
293
- },
294
- set: (field, option) => {
295
- // console.log(option, field);
296
- field.formControl.setValue(option.value.zip);
297
- // set CITY
298
- field.form.get('city').setValue(option.value.city);
299
- },
300
- filter: (key, field) => {
301
- // return this.profileProvider.zipCodes({
302
- // countryCode: field.form.get('country').value,
303
- // zip: key,
304
- // });
305
- },
306
- },
307
- // expressionProperties: {
308
- // 'props.disabled': (model: any) =>
309
- // !model.newAddress,
310
- // },
311
- },
312
- {
313
- className: 'small w-100-p ml-8',
314
- key: 'city',
315
- type: 'input',
316
- props: {
317
- label: 'scandoc.form.profile.address.city',
318
- },
319
- },
320
- ],
321
- },
322
- {
323
- className: 'small w-100-p',
324
- key: 'street1',
325
- type: 'input',
326
- props: {
327
- label: 'scandoc.form.profile.address.street',
328
- },
329
- },
330
- ],
331
- },
332
- ],
333
- },
334
- ],
335
- },
336
- ].map((item) => this.translate.forms(item));
337
- }
338
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NgxScandocFieldsProvider, deps: [{ token: i1.NgxScanDocTranslationProvider }, { token: i2.ScanProvider }], target: i0.ɵɵFactoryTarget.Injectable }); }
339
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NgxScandocFieldsProvider, providedIn: 'root' }); }
340
- }
341
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NgxScandocFieldsProvider, decorators: [{
342
- type: Injectable,
343
- args: [{
344
- providedIn: 'root',
345
- }]
346
- }], ctorParameters: () => [{ type: i1.NgxScanDocTranslationProvider }, { type: i2.ScanProvider }] });
347
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nhbi5mb3JtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNjYW5kb2Mvc3JjL3Byb3ZpZGVycy9zY2FuLmZvcm0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUkzQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7O0FBTS9CLE1BQU0sT0FBTyx3QkFBd0I7SUFHbkMsWUFDVSxTQUF3QyxFQUN4QyxRQUFzQjtRQUR0QixjQUFTLEdBQVQsU0FBUyxDQUErQjtRQUN4QyxhQUFRLEdBQVIsUUFBUSxDQUFjO1FBSmhDLFlBQU8sR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO0lBT3JCLENBQUM7SUFFSixNQUFNO1FBQ0osT0FBTztZQUNMO2dCQUNFLG1CQUFtQixFQUFFLE9BQU87Z0JBQzVCLFVBQVUsRUFBRTtvQkFDVjt3QkFDRSxRQUFRLEVBQUUsRUFBRTt3QkFDWixJQUFJLEVBQUUsVUFBVTt3QkFDaEIsR0FBRyxFQUFFLFNBQVM7d0JBQ2QsS0FBSyxFQUFFLFdBQVc7d0JBQ2xCLFlBQVksRUFBRSxJQUFJO3dCQUNsQixLQUFLLEVBQUU7NEJBQ0wsS0FBSyxFQUFFLDJDQUEyQzt5QkFDbkQ7cUJBQ0Y7b0JBQ0Q7d0JBQ0UsUUFBUSxFQUFFLEVBQUU7d0JBQ1osSUFBSSxFQUFFLFVBQVU7d0JBQ2hCLEtBQUssRUFBRSxXQUFXO3dCQUNsQixHQUFHLEVBQUUsVUFBVTt3QkFDZixZQUFZLEVBQUUsSUFBSTt3QkFDbEIsS0FBSyxFQUFFOzRCQUNMLEtBQUssRUFBRSw0Q0FBNEM7eUJBQ3BEO3FCQUNGO29CQUNEO3dCQUNFLFFBQVEsRUFBRSxFQUFFO3dCQUNaLElBQUksRUFBRSxVQUFVO3dCQUNoQixLQUFLLEVBQUUsV0FBVzt3QkFDbEIsR0FBRyxFQUFFLFlBQVk7d0JBQ2pCLFlBQVksRUFBRSxJQUFJO3dCQUNs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QUFDLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO29EQUNyRCxDQUFDO29EQUNELE1BQU0sRUFBRSxDQUFDLEdBQVcsRUFBRSxLQUFVLEVBQUUsRUFBRTt3REFDbEMseUNBQXlDO3dEQUN6QyxrREFBa0Q7d0RBQ2xELGNBQWM7d0RBQ2QsTUFBTTtvREFDUixDQUFDO2lEQUNGO2dEQUNELDBCQUEwQjtnREFDMUIsc0NBQXNDO2dEQUN0Qyx5QkFBeUI7Z0RBQ3pCLEtBQUs7NkNBQ047NENBQ0Q7Z0RBQ0UsU0FBUyxFQUFFLG9CQUFvQjtnREFDL0IsR0FBRyxFQUFFLE1BQU07Z0RBQ1gsSUFBSSxFQUFFLE9BQU87Z0RBQ2IsS0FBSyxFQUFFO29EQUNMLEtBQUssRUFBRSxtQ0FBbUM7aURBQzNDOzZDQUNGO3lDQUNGO3FDQUNGO29DQUVEO3dDQUNFLFNBQVMsRUFBRSxlQUFlO3dDQUMxQixHQUFHLEVBQUUsU0FBUzt3Q0FDZCxJQUFJLEVBQUUsT0FBTzt3Q0FDYixLQUFLLEVBQUU7NENBQ0wsS0FBSyxFQUFFLHFDQUFxQzt5Q0FDN0M7cUNBQ0Y7aUNBQ0Y7NkJBQ0Y7eUJBQ0Y7cUJBQ0Y7aUJBQ0Y7YUFDRjtTQUNGLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQzlDLENBQUM7K0dBclZVLHdCQUF3QjttSEFBeEIsd0JBQXdCLGNBRnZCLE1BQU07OzRGQUVQLHdCQUF3QjtrQkFIcEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRPcHRpb24gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcbmltcG9ydCB7IEZvcm1seUZpZWxkQ29uZmlnIH0gZnJvbSAnQG5neC1mb3JtbHkvY29yZSc7XG5cbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFNjYW5Qcm92aWRlciB9IGZyb20gJy4vc2Nhbi5wcm92aWRlcic7XG5pbXBvcnQgeyBOZ3hTY2FuRG9jVHJhbnNsYXRpb25Qcm92aWRlciB9IGZyb20gJy4vdHJhbnNsYXRpb24ucHJvdmlkZXInO1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIE5neFNjYW5kb2NGaWVsZHNQcm92aWRlciB7XG4gIHNlbGZpZSQgPSBuZXcgU3ViamVjdCgpO1xuICBjdXN0b21GaWVsZHM6YW55O1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHRyYW5zbGF0ZTogTmd4U2NhbkRvY1RyYW5zbGF0aW9uUHJvdmlkZXIsXG4gICAgcHJpdmF0ZSBwcm92aWRlcjogU2NhblByb3ZpZGVyLFxuXG5cbiAgKSB7fVxuXG4gIHVwZGF0ZSgpOiBGb3JtbHlGaWVsZENvbmZpZ1tdIHtcbiAgICByZXR1cm4gW1xuICAgICAge1xuICAgICAgICBmaWVsZEdyb3VwQ2xhc3NOYW1lOiAncHgtMTYnLFxuICAgICAgICBmaWVsZEdyb3VwOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgd3JhcHBlcnM6IFtdLFxuICAgICAgICAgICAgdHlwZTogJ2NoZWNrYm94JyxcbiAgICAgICAgICAgIGtleTogJ3Byb2ZpbGUnLFxuICAgICAgICAgICAgY2xhc3M6ICdjaGVja2JveCAnLFxuICAgICAgICAgICAgZGVmYXVsdFZhbHVlOiB0cnVlLFxuICAgICAgICAgICAgcHJvcHM6IHtcbiAgICAgICAgICAgICAgbGFiZWw6ICdzY2FuZG9jLmZvcm0uc2Nhbi5kb2N1bWVudC51cGRhdGUucHJvZmlsZScsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgd3JhcHBlcnM6IFtdLFxuICAgICAgICAgICAgdHlwZTogJ2NoZWNrYm94JyxcbiAgICAgICAgICAgIGNsYXNzOiAnY2hlY2tib3ggJyxcbiAgICAgICAgICAgIGtleTogJ2RvY3VtZW50JyxcbiAgICAgICAgICAgIGRlZmF1bHRWYWx1ZTogdHJ1ZSxcbiAgICAgICAgICAgIHByb3BzOiB7XG4gICAgICAgICAgICAgIGxhYmVsOiAnc2NhbmRvYy5mb3JtLnNjYW4uZG9jdW1lbnQudXBkYXRlLmRvY3VtZW50JyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICB3cmFwcGVyczogW10sXG4gICAgICAgICAgICB0eXBlOiAnY2hlY2tib3gnLFxuICAgICAgICAgICAgY2xhc3M6ICdjaGVja2JveCAnLFxuICAgICAgICAgICAga2V5OiAnYXR0YWNobWVudCcsXG4gICAgICAgICAgICBkZWZhdWx0VmFsdWU6IHRydWUsXG4gICAgICAgICAgICBwcm9wczoge1xuICAgICAgICAgICAgICBsYWJlbDogJ3NjYW5kb2MuZm9ybS5zY2FuLmRvY3VtZW50LnVwZGF0ZS5hdHRhY2htZW50JyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgXS5tYXAoKGl0ZW0pID0+IHRoaXMudHJhbnNsYXRlLmZvcm1zKGl0ZW0pKSxcbiAgICAgIH0sXG4gICAgXTtcbiAgfVxuICBkb2N1bWVudCgpOiBGb3JtbHlGaWVsZENvbmZpZ1tdIHtcblxuICAgIGlmKHRoaXMuY3VzdG9tRmllbGRzKXtcbiAgICAgIHJldHVybiB0aGlzLmN1c3RvbUZpZWxkcztcbiAgICB9XG4gICAgcmV0dXJuIFtcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAndy0xMDAtcCcsXG4gICAgICAgIGZpZWxkR3JvdXBDbGFzc05hbWU6ICdmb3JtLWZsZXgtcm93ICBwcm9maWxlLWRldGFpbHMnLFxuICAgICAgICBmaWVsZEdyb3VwOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgY2xhc3NOYW1lOiAndy0xMDAtcCAnLFxuICAgICAgICAgICAgZmllbGRHcm91cENsYXNzTmFtZTogJ2NhcmQtZ3JvdXAnLFxuICAgICAgICAgICAgZmllbGRHcm91cDogW1xuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgdHlwZTogJ3RpdGxlJyxcbiAgICAgICAgICAgICAgICBwcm9wczoge1xuICAgICAgICAgICAgICAgICAgbGFiZWw6ICdzY2FuZG9jLmZvcm0uc2Nhbi5kb2N1bWVudC5ndWVzdERldGFpbHNUaXRsZScsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHR5cGU6ICdwcm9maWxlLWltYWdlJyxcbiAgICAgICAgICAgICAgICBrZXk6ICdfYXZhdGFyJyxcbiAgICAgICAgICAgICAgICBwcm9wczoge1xuICAgICAgICAgICAgICAgICAgbGFiZWw6ICdzY2FuZG9jLmZvcm0uc2Nhbi5kb2N1bWVudC5maXJzdE5hbWUnLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB0eXBlOiAnaW5wdXQnLFxuICAgICAgICAgICAgICAgIGtleTogJ2ZpcnN0TmFtZScsXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAnc21hbGwnLFxuICAgICAgICAgICAgICAgIHByb3BzOiB7XG4gICAgICAgICAgICAgICAgICBsYWJlbDogJ3NjYW5kb2MuZm9ybS5zY2FuLmRvY3VtZW50LmZpcnN0TmFtZScsXG4gICAgICAgICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgdHlwZTogJ2lucHV0JyxcbiAgICAgICAgICAgICAgICBrZXk6ICdsYXN0TmFtZScsXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAnc21hbGwnLFxuICAgICAgICAgICAgICAgIHByb3BzOiB7XG4gICAgICAgICAgICAgICAgICBsYWJlbDogJ3NjYW5kb2MuZm9ybS5zY2FuLmRvY3VtZW50Lmxhc3ROYW1lJyxcbiAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICdzbWFsbCcsXG4gICAgICAgICAgICAgICAga2V5OiAnc2Vjb25kTmFtZScsXG4gICAgICAgICAgICAgICAgdHlwZTogJ2lucHV0JyxcbiAgICAgICAgICAgICAgICBwcm9wczoge1xuICAgICAgICAgICAgICAgICAgbGFiZWw6ICdzY2FuZG9jLmZvcm0uc2Nhbi5kb2N1bWVudC5zZWNvbmRMYXN0TmFtZScsXG4gICAgICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgICAgIGhpZGVFeHByZXNzaW9uOiAnbW9kZWwuaGlkZVNlY29uZExhc3ROYW1lJyxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHR5cGU6ICdpbnB1dCcsXG4gICAgICAgICAgICAgICAga2V5OiAnbWlkZGxlTmFtZScsXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAnc21hbGwnLFxuICAgICAgICAgICAgICAgIHByb3BzOiB7XG4gICAgICAgICAgICAgICAgICBsYWJlbDogJ3NjYW5kb2MuZm9ybS5zY2FuLmRvY3VtZW50Lm1pZGRsZU5hbWUnLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICcnLFxuICAgICAgICAgICAgICAgIGZpZWxkR3JvdXBDbGFzc05hbWU6ICdmb3JtLWZsZXgtcm93IHNwYWNlLWJldHdlZW4nLFxuICAgICAgICAgICAgICAgIGZpZWxkR3JvdXA6IFtcbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogJ2RhdGVwaWNrZXInLFxuICAgICAgICAgICAgICAgICAgICBrZXk6ICdiaXJ0aERhdGUnLFxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICd3LTEwMC1wIHNtYWxsIG1yLTgnLFxuICAgICAgICAgICAgICAgICAgICBwcm9wczoge1xuICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiAnc2NhbmRvYy5mb3JtLnNjYW4uZG9jdW1lbnQuYmlydGhEYXRlJyxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHR5cGU6ICdzZWxlY3QnLFxuICAgICAgICAgICAgICAgICAgICBrZXk6ICdnZW5kZXInLFxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICd3LTEwMC1wIHNtYWxsIG1sLTgnLFxuICAgICAgICAgICAgICAgICAgICBwcm9wczoge1xuICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiAnc2NhbmRvYy5mb3JtLnNjYW4uZG9jdW1lbnQuZ2VuZGVyJyxcbiAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICB7IHZhbHVlOiAnTUFMRScsIGxhYmVsOiAnTUFMRScgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHsgdmFsdWU6ICdGRU1BTEUnLCBsYWJlbDogJ0ZFTUFMRScgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHsgdmFsdWU6ICdOQScsIGxhYmVsOiAnTi9BJyB9LFxuICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICcnLFxuICAgICAgICAgICAgICAgIGZpZWxkR3JvdXBDbGFzc05hbWU6ICdmb3JtLWZsZXgtcm93IHNwYWNlLWJldHdlZW4nLFxuICAgICAgICAgICAgICAgIGZpZWxkR3JvdXA6IFtcbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogJ2lucHV0JyxcbiAgICAgICAgICAgICAgICAgICAga2V5OiAnYmlydGhQbGFjZScsXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogJ3NtYWxsIHctMTAwLXAgbXItOCcsXG4gICAgICAgICAgICAgICAgICAgIHByb3BzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgbGFiZWw6ICdzY2FuZG9jLmZvcm0uc2Nhbi5kb2N1bWVudC5iaXJ0aFBsYWNlJyxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHR5cGU6ICdzZWxlY3QnLFxuICAgICAgICAgICAgICAgICAgICBrZXk6ICdiaXJ0aENvdW50cnknLFxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICdzbWFsbCB3LTEwMC1wIG1sLTgnLFxuICAgICAgICAgICAgICAgICAgICBwcm9wczoge1xuICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiAnc2NhbmRvYy5mb3JtLnNjYW4uZG9jdW1lbnQuYmlydGhDb3VudHJ5JyxcblxuICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnM6IHRoaXMucHJvdmlkZXIuY291bnRyaWVzKCksXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICdzbWFsbCcsXG4gICAgICAgICAgICAgICAga2V5OiAnbmF0aW9uYWxpdHknLFxuICAgICAgICAgICAgICAgIHR5cGU6ICdzZWxlY3QnLFxuICAgICAgICAgICAgICAgIHByb3BzOiB7XG4gICAgICAgICAgICAgICAgICBsYWJlbDogJ3NjYW5kb2MuZm9ybS5zY2FuLmRvY3VtZW50Lm5hdGlvbmFsaXR5JyxcbiAgICAgICAgICAgICAgICAgIC8vICAgYXBwZWFyYW5jZTogJ291dGxpbmUnLFxuICAgICAgICAgICAgICAgICAgLy8gIG9wdGlvbnM6IHRoaXMucHJvZmlsZVByb3ZpZGVyLm5hdGlvbmFsaXRpZXMoKSxcbiAgICAgICAgICAgICAgICAgIG9wdGlvbnM6IHRoaXMucHJvdmlkZXIuY291bnRyaWVzKCksXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjbGFzc05hbWU6ICd3LTEwMC1wJyxcbiAgICAgICAgICAgIGZpZWxkR3JvdXBDbGFzc05hbWU6ICdmb3JtLWZsZXgtY29sdW1uJyxcbiAgICAgICAgICAgIGZpZWxkR3JvdXA6IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogJ3ctMTAwLXAnLFxuICAgICAgICAgICAgICAgIGZpZWxkR3JvdXBDbGFzc05hbWU6ICdjYXJkLWdyb3VwJyxcbiAgICAgICAgICAgICAgICBmaWVsZEdyb3VwOiBbXG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHR5cGU6ICd0aXRsZScsXG4gICAgICAgICAgICAgICAgICAgIHByb3BzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgbGFiZWw6ICdzY2FuZG9jLmZvcm0uc2Nhbi5kb2N1bWVudC5kb2N1bWVudFRpdGxlJyxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHR5cGU6ICdzZWxlY3QnLFxuICAgICAgICAgICAgICAgICAgICBrZXk6ICdkb2N1bWVudFR5cGUnLFxuICAgICAgICAgICAgICAgICAgICBwcm9wczoge1xuICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiAnc2NhbmRvYy5mb3JtLnNjYW4uZG9jdW1lbnQuZG9jdW1lbnRUeXBlJyxcbiAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICB7IHZhbHVlOiAnSUQnLCBsYWJlbDogJ0lkZW50aXR5IERvY3VtZW50JyB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgeyB2YWx1ZTogJ1BBU1MnLCBsYWJlbDogJ1Bhc3Nwb3J0JyB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgeyB2YWx1ZTogJ0RMJywgbGFiZWw6ICdEcml2ZXIgTGljZW5jZScgfSxcbiAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgIC8vICB2YWx1ZVByb3A6ICdpZCcsXG4gICAgICAgICAgICAgICAgICAgICAgLy8gIGxhYmVsUHJvcDogJ3ZhbHVlJyxcbiAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHR5cGU6ICdpbnB1dCcsXG4gICAgICAgICAgICAgICAgICAgIGtleTogJ2RvY3VtZW50TnVtYmVyJyxcbiAgICAgICAgICAgICAgICAgICAgcHJvcHM6IHtcbiAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogJ3NjYW5kb2MuZm9ybS5zY2FuLmRvY3VtZW50LmRvY3VtZW50TnVtYmVyJyxcbiAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogJycsXG4gICAgICAgICAgICAgICAgICAgIGZpZWxkR3JvdXBDbGFzc05hbWU6ICdmb3JtLWZsZXgtcm93IHNwYWNlLWJldHdlZW4nLFxuICAgICAgICAgICAgICAgICAgICBmaWVsZEdyb3VwOiBbXG4gICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ2RhdGVwaWNrZXInLFxuICAgICAgICAgICAgICAgICAgICAgICAga2V5OiAnaXNzdWVEYXRlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogJ3NtYWxsIG1yLTgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcHM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6ICdzY2FuZG9jLmZvcm0uc2Nhbi5kb2N1bWVudC5pc3N1ZURhdGUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICdkYXRlcGlja2VyJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleTogJ2V4cGlyYXRpb25EYXRlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogJ3NtYWxsIG1sLTgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcHM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6ICdzY2FuZG9jLmZvcm0uc2Nhbi5kb2N1bWVudC5leHBpcmF0aW9uRGF0ZScsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICB0eXBlOiAnc2VsZWN0JyxcbiAgICAgICAgICAgICAgICAgICAga2V5OiAnaXNzdWVTdGF0ZUNvZGUnLFxuICAgICAgICAgICAgICAgICAgICBwcm9wczoge1xuICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiAnc2NhbmRvYy5mb3JtLnNjYW4uZG9jdW1lbnQuaXNzdWluZ1N0YXRlQ29kZScsXG5cbiAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zOiB0aGlzLnByb3ZpZGVyLmNvdW50cmllcygpLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogJ2lucHV0JyxcbiAgICAgICAgICAgICAgICAgICAga2V5OiAnaXNzdWluZ1BsYWNlJyxcbiAgICAgICAgICAgICAgICAgICAgcHJvcHM6IHtcbiAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogJ3NjYW5kb2MuZm9ybS5zY2FuLmRvY3VtZW50Lmlzc3VpbmdQbGFjZScsXG4gICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAndy0xMDAtcCcsXG4gICAgICAgICAgICAgICAgZmllbGRHcm91cENsYXNzTmFtZTogJ2NhcmQtZ3JvdXAnLFxuICAgICAgICAgICAgICAgIGZpZWxkR3JvdXA6IFtcbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogJ3RpdGxlJyxcbiAgICAgICAgICAgICAgICAgICAgcHJvcHM6IHtcbiAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogJ3NjYW5kb2MuZm9ybS5zY2FuLmRvY3VtZW50LmFkZHJlc3NUaXRsZScsXG4gICAgICAgICAgICAgICAgICAgICAgYmFkZ2U6ICdjb21tdW5pY2F0aW9ucycsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICdzbWFsbCcsXG4gICAgICAgICAgICAgICAgICAgIGtleTogJ2NvdW50cnknLFxuICAgICAgICAgICAgICAgICAgICB0eXBlOiAnc2VsZWN0JyxcbiAgICAgICAgICAgICAgICAgICAgcHJvcHM6IHtcbiAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogJ3NjYW5kb2MuZm9ybS5wcm9maWxlLmFkZHJlc3MuY291bnRyeScsXG4gICAgICAgICAgICAgICAgICAgICAgb3B0aW9uczogdGhpcy5wcm92aWRlci5jb3VudHJpZXMoKSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgLy8gZXhwcmVzc2lvblByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgICAgICAgICAgLy8gICAncHJvcHMuZGlzYWJsZWQnOiAobW9kZWw6IGFueSkgPT4gIW1vZGVsLm5ld0FkZHJlc3MsXG4gICAgICAgICAgICAgICAgICAgIC8vIH0sXG4gICAgICAgICAgICAgICAgICAgIGhvb2tzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgb25Jbml0OiAobW9kZWw6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2cobW9kZWwpO1xuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICcnLFxuICAgICAgICAgICAgICAgICAgICBmaWVsZEdyb3VwQ2xhc3NOYW1lOiAnZm9ybS1mbGV4LXJvdyBzcGFjZS1iZXR3ZWVuJyxcbiAgICAgICAgICAgICAgICAgICAgZmllbGRHcm91cDogW1xuICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogJ21yLTggdy0xMDAtcCcsXG4gICAgICAgICAgICAgICAgICAgICAgICBrZXk6ICd6aXAnLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ2lucHV0JyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiAnc2NhbmRvYy5mb3JtLnByb2ZpbGUuYWRkcmVzcy56aXAnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbFByb3A6IChpdGVtOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYCR7aXRlbS56aXB9ICgke2l0ZW0uY2l0eX0pYDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgICAgICAgICAgICAgICBzZXQ6IChmaWVsZDogYW55LCBvcHRpb246IE1hdE9wdGlvbikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKG9wdGlvbiwgZmllbGQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkLmZvcm1Db250cm9sLnNldFZhbHVlKG9wdGlvbi52YWx1ZS56aXApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNldCBDSVRZXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmllbGQuZm9ybS5nZXQoJ2NpdHknKS5zZXRWYWx1ZShvcHRpb24udmFsdWUuY2l0eSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlcjogKGtleTogc3RyaW5nLCBmaWVsZDogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmV0dXJuIHRoaXMucHJvZmlsZVByb3ZpZGVyLnppcENvZGVzKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgIGNvdW50cnlDb2RlOiBmaWVsZC5mb3JtLmdldCgnY291bnRyeScpLnZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgemlwOiBrZXksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gZXhwcmVzc2lvblByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgJ3Byb3BzLmRpc2FibGVkJzogKG1vZGVsOiBhbnkpID0+XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyAgICAgIW1vZGVsLm5ld0FkZHJlc3MsXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyB9LFxuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAnc21hbGwgdy0xMDAtcCBtbC04JyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleTogJ2NpdHknLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ2lucHV0JyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiAnc2NhbmRvYy5mb3JtLnByb2ZpbGUuYWRkcmVzcy5jaXR5JyxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAnc21hbGwgdy0xMDAtcCcsXG4gICAgICAgICAgICAgICAgICAgIGtleTogJ3N0cmVldDEnLFxuICAgICAgICAgICAgICAgICAgICB0eXBlOiAnaW5wdXQnLFxuICAgICAgICAgICAgICAgICAgICBwcm9wczoge1xuICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiAnc2NhbmRvYy5mb3JtLnByb2ZpbGUuYWRkcmVzcy5zdHJlZXQnLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICBdLm1hcCgoaXRlbSkgPT4gdGhpcy50cmFuc2xhdGUuZm9ybXMoaXRlbSkpO1xuICB9XG59XG4iXX0=