valtech-components 4.0.125 → 4.0.127
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/services/auth/auth.service.mjs +70 -1
- package/esm2022/lib/services/auth/index.mjs +2 -2
- package/esm2022/lib/services/auth/storage.service.mjs +22 -1
- package/esm2022/lib/services/auth/types.mjs +1 -1
- package/esm2022/lib/services/meta/meta.service.mjs +17 -1
- package/esm2022/lib/version.mjs +2 -2
- package/fesm2022/valtech-components.mjs +107 -2
- package/fesm2022/valtech-components.mjs.map +1 -1
- package/lib/services/auth/auth.service.d.ts +20 -0
- package/lib/services/auth/index.d.ts +1 -1
- package/lib/services/auth/storage.service.d.ts +17 -0
- package/lib/services/auth/types.d.ts +29 -0
- package/lib/services/meta/meta.service.d.ts +5 -0
- package/lib/version.d.ts +1 -1
- package/package.json +1 -1
|
@@ -81,7 +81,7 @@ export { authInterceptor } from './interceptor';
|
|
|
81
81
|
// Servicios internos (para testing o extensión)
|
|
82
82
|
export { AuthStateService } from './auth-state.service';
|
|
83
83
|
export { TokenService } from './token.service';
|
|
84
|
-
export { AuthStorageService } from './storage.service';
|
|
84
|
+
export { AuthStorageService, LOGGED_IN_HINT_COOKIE } from './storage.service';
|
|
85
85
|
export { AuthSyncService } from './sync.service';
|
|
86
86
|
// Servicios de gestión de dispositivos y sesiones
|
|
87
87
|
export { DeviceService } from './device.service';
|
|
@@ -95,4 +95,4 @@ export { HandoffService, HANDOFF_TOKEN_PARAM, HANDOFF_ROUTE_PARAM } from './hand
|
|
|
95
95
|
export { OrgSwitchService } from './org-switch.service';
|
|
96
96
|
// Cross-app cross-org notification click handler
|
|
97
97
|
export { NotificationActionService } from './notification-action.service';
|
|
98
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
98
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL3NlcnZpY2VzL2F1dGgvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXFFRztBQUVILFFBQVE7QUFDUixjQUFjLFNBQVMsQ0FBQztBQUV4QixnQkFBZ0I7QUFDaEIsT0FBTyxFQUNMLG1CQUFtQixFQUNuQixrQkFBa0IsRUFDbEIsNkJBQTZCLEVBQzdCLG1CQUFtQixHQUNwQixNQUFNLFVBQVUsQ0FBQztBQUVsQixxQkFBcUI7QUFDckIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdDLFNBQVM7QUFDVCxPQUFPLEVBQ0wsU0FBUyxFQUNULFVBQVUsRUFDVixlQUFlLEVBQ2Ysd0JBQXdCLEVBQ3hCLGVBQWUsRUFDZixTQUFTLEdBQ1YsTUFBTSxVQUFVLENBQUM7QUFFbEIsa0NBQWtDO0FBQ2xDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFaEQsZ0RBQWdEO0FBQ2hELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM5RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFakQsa0RBQWtEO0FBQ2xELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFbkQsdUJBQXVCO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUVwRSx3RUFBd0U7QUFDeEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxtQkFBbUIsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBUTdGLDJDQUEyQztBQUMzQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUd4RCxpREFBaUQ7QUFDakQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sK0JBQStCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFZhbHRlY2ggQXV0aCBTZXJ2aWNlXG4gKlxuICogU2VydmljaW8gZGUgYXV0ZW50aWNhY2nDs24gcmV1dGlsaXphYmxlIHBhcmEgYXBsaWNhY2lvbmVzIEFuZ3VsYXIuXG4gKiBQcm9wb3JjaW9uYSBhdXRlbnRpY2FjacOzbiBjb24gQXV0aFYyLCBNRkEsIHNpbmNyb25pemFjacOzbiBlbnRyZSBwZXN0YcOxYXMsXG4gKiByZWZyZXNoIHByb2FjdGl2byBkZSB0b2tlbnMsIHkgcmVnaXN0cm8gYXV0b23DoXRpY28gZGUgZGlzcG9zaXRpdm9zIHBhcmFcbiAqIHB1c2ggbm90aWZpY2F0aW9ucy5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogLy8gRW4gbWFpbi50c1xuICogaW1wb3J0IHsgYm9vdHN0cmFwQXBwbGljYXRpb24gfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbiAqIGltcG9ydCB7IHByb3ZpZGVWYWx0ZWNoQXV0aCwgcHJvdmlkZVZhbHRlY2hGaXJlYmFzZSB9IGZyb20gJ3ZhbHRlY2gtY29tcG9uZW50cyc7XG4gKiBpbXBvcnQgeyBlbnZpcm9ubWVudCB9IGZyb20gJy4vZW52aXJvbm1lbnRzL2Vudmlyb25tZW50JztcbiAqXG4gKiBib290c3RyYXBBcHBsaWNhdGlvbihBcHBDb21wb25lbnQsIHtcbiAqICAgcHJvdmlkZXJzOiBbXG4gKiAgICAgcHJvdmlkZVZhbHRlY2hGaXJlYmFzZShlbnZpcm9ubWVudC5maXJlYmFzZSksXG4gKiAgICAgcHJvdmlkZVZhbHRlY2hBdXRoKHtcbiAqICAgICAgIGFwaVVybDogZW52aXJvbm1lbnQuYXBpVXJsLFxuICogICAgICAgZW5hYmxlRmlyZWJhc2VJbnRlZ3JhdGlvbjogdHJ1ZSxcbiAqICAgICAgIGVuYWJsZURldmljZVJlZ2lzdHJhdGlvbjogdHJ1ZSwgLy8gQXV0by1yZWdpc3RyYSBkaXNwb3NpdGl2b3MgcGFyYSBwdXNoXG4gKiAgICAgfSksXG4gKiAgIF0sXG4gKiB9KTtcbiAqXG4gKiAvLyBFbiBhcHAucm91dGVzLnRzXG4gKiBpbXBvcnQgeyBhdXRoR3VhcmQsIGd1ZXN0R3VhcmQsIHBlcm1pc3Npb25HdWFyZCB9IGZyb20gJ3ZhbHRlY2gtY29tcG9uZW50cyc7XG4gKlxuICogY29uc3Qgcm91dGVzOiBSb3V0ZXMgPSBbXG4gKiAgIHsgcGF0aDogJ2xvZ2luJywgY2FuQWN0aXZhdGU6IFtndWVzdEd1YXJkXSwgbG9hZENvbXBvbmVudDogKCkgPT4gaW1wb3J0KCcuL2xvZ2luLnBhZ2UnKSB9LFxuICogICB7IHBhdGg6ICdkYXNoYm9hcmQnLCBjYW5BY3RpdmF0ZTogW2F1dGhHdWFyZF0sIGxvYWRDb21wb25lbnQ6ICgpID0+IGltcG9ydCgnLi9kYXNoYm9hcmQucGFnZScpIH0sXG4gKiAgIHsgcGF0aDogJ2FkbWluJywgY2FuQWN0aXZhdGU6IFthdXRoR3VhcmQsIHBlcm1pc3Npb25HdWFyZCgnYWRtaW46KicpXSwgbG9hZENvbXBvbmVudDogKCkgPT4gaW1wb3J0KCcuL2FkbWluLnBhZ2UnKSB9LFxuICogXTtcbiAqXG4gKiAvLyBFbiBjb21wb25lbnRlc1xuICogaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICd2YWx0ZWNoLWNvbXBvbmVudHMnO1xuICpcbiAqIEBDb21wb25lbnQoey4uLn0pXG4gKiBleHBvcnQgY2xhc3MgTG9naW5Db21wb25lbnQge1xuICogICBwcml2YXRlIGF1dGggPSBpbmplY3QoQXV0aFNlcnZpY2UpO1xuICpcbiAqICAgYXN5bmMgbG9naW4oKSB7XG4gKiAgICAgYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5hdXRoLnNpZ25pbih7IGVtYWlsLCBwYXNzd29yZCB9KSk7XG4gKiAgICAgaWYgKHRoaXMuYXV0aC5tZmFQZW5kaW5nKCkucmVxdWlyZWQpIHtcbiAqICAgICAgIC8vIE1vc3RyYXIgVUkgZGUgTUZBXG4gKiAgICAgfSBlbHNlIHtcbiAqICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL2Rhc2hib2FyZCddKTtcbiAqICAgICB9XG4gKiAgIH1cbiAqXG4gKiAgIC8vIEhhYmlsaXRhciBub3RpZmljYWNpb25lcyBwdXNoIChzb2xpY2l0YSBwZXJtaXNvcyArIHJlZ2lzdHJhIGRpc3Bvc2l0aXZvKVxuICogICBhc3luYyBlbmFibGVOb3RpZmljYXRpb25zKCkge1xuICogICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuYXV0aC5lbmFibGVOb3RpZmljYXRpb25zKCk7XG4gKiAgICAgaWYgKHJlc3VsdC5ncmFudGVkKSB7XG4gKiAgICAgICBjb25zb2xlLmxvZygnTm90aWZpY2FjaW9uZXMgaGFiaWxpdGFkYXMnKTtcbiAqICAgICB9XG4gKiAgIH1cbiAqXG4gKiAgIC8vIFZlcmlmaWNhciBlc3RhZG8gZGUgcGVybWlzb3NcbiAqICAgZ2V0IGNhblJlY2VpdmVOb3RpZmljYXRpb25zKCk6IGJvb2xlYW4ge1xuICogICAgIHJldHVybiB0aGlzLmF1dGguZ2V0Tm90aWZpY2F0aW9uUGVybWlzc2lvblN0YXRlKCkgPT09ICdncmFudGVkJztcbiAqICAgfVxuICpcbiAqICAgLy8gRW4gdGVtcGxhdGU6IHVzYXIgc2lnbmFscyBkaXJlY3RhbWVudGVcbiAqICAgLy8ge3sgYXV0aC51c2VyKCk/LmVtYWlsIH19XG4gKiAgIC8vIEBpZiAoYXV0aC5oYXNQZXJtaXNzaW9uKCd0ZW1wbGF0ZXM6ZWRpdCcpKSB7IC4uLiB9XG4gKiB9XG4gKiBgYGBcbiAqL1xuXG4vLyBUaXBvc1xuZXhwb3J0ICogZnJvbSAnLi90eXBlcyc7XG5cbi8vIENvbmZpZ3VyYWNpw7NuXG5leHBvcnQge1xuICBWQUxURUNIX0FVVEhfQ09ORklHLFxuICBwcm92aWRlVmFsdGVjaEF1dGgsXG4gIHByb3ZpZGVWYWx0ZWNoQXV0aEludGVyY2VwdG9yLFxuICBERUZBVUxUX0FVVEhfQ09ORklHLFxufSBmcm9tICcuL2NvbmZpZyc7XG5cbi8vIFNlcnZpY2lvIHByaW5jaXBhbFxuZXhwb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuL2F1dGguc2VydmljZSc7XG5cbi8vIEd1YXJkc1xuZXhwb3J0IHtcbiAgYXV0aEd1YXJkLFxuICBndWVzdEd1YXJkLFxuICBwZXJtaXNzaW9uR3VhcmQsXG4gIHBlcm1pc3Npb25HdWFyZEZyb21Sb3V0ZSxcbiAgc3VwZXJBZG1pbkd1YXJkLFxuICByb2xlR3VhcmQsXG59IGZyb20gJy4vZ3VhcmRzJztcblxuLy8gSW50ZXJjZXB0b3IgKHBhcmEgdXNvIGF2YW56YWRvKVxuZXhwb3J0IHsgYXV0aEludGVyY2VwdG9yIH0gZnJvbSAnLi9pbnRlcmNlcHRvcic7XG5cbi8vIFNlcnZpY2lvcyBpbnRlcm5vcyAocGFyYSB0ZXN0aW5nIG8gZXh0ZW5zacOzbilcbmV4cG9ydCB7IEF1dGhTdGF0ZVNlcnZpY2UgfSBmcm9tICcuL2F1dGgtc3RhdGUuc2VydmljZSc7XG5leHBvcnQgeyBUb2tlblNlcnZpY2UgfSBmcm9tICcuL3Rva2VuLnNlcnZpY2UnO1xuZXhwb3J0IHsgQXV0aFN0b3JhZ2VTZXJ2aWNlLCBMT0dHRURfSU5fSElOVF9DT09LSUUgfSBmcm9tICcuL3N0b3JhZ2Uuc2VydmljZSc7XG5leHBvcnQgeyBBdXRoU3luY1NlcnZpY2UgfSBmcm9tICcuL3N5bmMuc2VydmljZSc7XG5cbi8vIFNlcnZpY2lvcyBkZSBnZXN0acOzbiBkZSBkaXNwb3NpdGl2b3MgeSBzZXNpb25lc1xuZXhwb3J0IHsgRGV2aWNlU2VydmljZSB9IGZyb20gJy4vZGV2aWNlLnNlcnZpY2UnO1xuZXhwb3J0IHsgU2Vzc2lvblNlcnZpY2UgfSBmcm9tICcuL3Nlc3Npb24uc2VydmljZSc7XG5cbi8vIE9BdXRoIChMb2dpbiBzb2NpYWwpXG5leHBvcnQgeyBPQXV0aFNlcnZpY2UgfSBmcm9tICcuL29hdXRoLnNlcnZpY2UnO1xuZXhwb3J0IHsgT0F1dGhDYWxsYmFja0NvbXBvbmVudCB9IGZyb20gJy4vb2F1dGgtY2FsbGJhY2suY29tcG9uZW50JztcblxuLy8gQ3Jvc3MtYXBwIHNlc3Npb24gaGFuZG9mZiAoT0F1dGggQXV0aG9yaXphdGlvbiBDb2RlIHBhdHRlcm4gaW50ZXJuYWwpXG5leHBvcnQgeyBIYW5kb2ZmU2VydmljZSwgSEFORE9GRl9UT0tFTl9QQVJBTSwgSEFORE9GRl9ST1VURV9QQVJBTSB9IGZyb20gJy4vaGFuZG9mZi5zZXJ2aWNlJztcbmV4cG9ydCB0eXBlIHtcbiAgSGFuZG9mZkNyZWF0ZVJlcXVlc3QsXG4gIEhhbmRvZmZDcmVhdGVSZXNwb25zZSxcbiAgSGFuZG9mZkV4Y2hhbmdlUmVzcG9uc2UsXG4gIERldGVjdEFuZEV4Y2hhbmdlT3B0aW9ucyxcbn0gZnJvbSAnLi9oYW5kb2ZmLnNlcnZpY2UnO1xuXG4vLyBBY3RpdmUgb3JnYW5pemF0aW9uIHN3aXRjaCBvcmNoZXN0cmF0aW9uXG5leHBvcnQgeyBPcmdTd2l0Y2hTZXJ2aWNlIH0gZnJvbSAnLi9vcmctc3dpdGNoLnNlcnZpY2UnO1xuZXhwb3J0IHR5cGUgeyBPcmdDaGFuZ2VkRXZlbnQsIFN3aXRjaE9yZ09wdGlvbnMgfSBmcm9tICcuL29yZy1zd2l0Y2guc2VydmljZSc7XG5cbi8vIENyb3NzLWFwcCBjcm9zcy1vcmcgbm90aWZpY2F0aW9uIGNsaWNrIGhhbmRsZXJcbmV4cG9ydCB7IE5vdGlmaWNhdGlvbkFjdGlvblNlcnZpY2UgfSBmcm9tICcuL25vdGlmaWNhdGlvbi1hY3Rpb24uc2VydmljZSc7XG5leHBvcnQgdHlwZSB7IE5vdGlmaWNhdGlvbk9wZW5SZXN1bHQgfSBmcm9tICcuL25vdGlmaWNhdGlvbi1hY3Rpb24uc2VydmljZSc7XG4iXX0=
|
|
@@ -2,6 +2,13 @@ import { Inject, Injectable, Optional, PLATFORM_ID, isDevMode } from '@angular/c
|
|
|
2
2
|
import { isPlatformBrowser } from '@angular/common';
|
|
3
3
|
import { VALTECH_AUTH_CONFIG } from './config';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
|
+
/**
|
|
6
|
+
* Nombre por defecto de la cookie-hint de sesión de familia (espejo JS-readable
|
|
7
|
+
* del refresh token HttpOnly). Debe coincidir con `HintCookieName` del backend
|
|
8
|
+
* (`backend/go/services/httpapi/hint_cookie.go`). Override por app vía
|
|
9
|
+
* `ValtechAuthConfig.loggedInHintCookie`.
|
|
10
|
+
*/
|
|
11
|
+
export const LOGGED_IN_HINT_COOKIE = 'valtech_logged_in';
|
|
5
12
|
/**
|
|
6
13
|
* Servicio para persistencia de estado de autenticación en localStorage.
|
|
7
14
|
*/
|
|
@@ -37,6 +44,20 @@ export class AuthStorageService {
|
|
|
37
44
|
return false;
|
|
38
45
|
}
|
|
39
46
|
}
|
|
47
|
+
/**
|
|
48
|
+
* ¿Existe la cookie-hint JS-readable de "sesión activa en la familia"?
|
|
49
|
+
*
|
|
50
|
+
* La setea el backend en login/logout (`HttpOnly:false`, `Domain=.myvaltech.com`)
|
|
51
|
+
* como espejo legible por JS del refresh token HttpOnly (`valtech_refresh`), que
|
|
52
|
+
* JS no puede leer. Es un hint de UI, no una credencial. Lo usan `initialize()`
|
|
53
|
+
* (bootstrap cross-origin, gated por `bootstrapSessionFromHint`) y el sitio
|
|
54
|
+
* público para decidir landing-vs-app sin exponer el token.
|
|
55
|
+
*/
|
|
56
|
+
hasLoggedInHint(cookieName = LOGGED_IN_HINT_COOKIE) {
|
|
57
|
+
if (!this.isBrowser)
|
|
58
|
+
return false;
|
|
59
|
+
return document.cookie.split(';').some(c => c.trim() === `${cookieName}=1`);
|
|
60
|
+
}
|
|
40
61
|
/**
|
|
41
62
|
* Guarda el estado completo de autenticación.
|
|
42
63
|
*/
|
|
@@ -199,4 +220,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
199
220
|
type: Inject,
|
|
200
221
|
args: [PLATFORM_ID]
|
|
201
222
|
}] }] });
|
|
202
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZXJ2aWNlcy9hdXRoL3N0b3JhZ2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxVQUFVLENBQUM7O0FBZS9DOztHQUVHO0FBRUgsTUFBTSxPQUFPLGtCQUFrQjtJQWM3QixZQUNtRCxNQUFnQyxFQUM1RCxVQUFrQjtRQURVLFdBQU0sR0FBTixNQUFNLENBQTBCO1FBR2pGLElBQUksQ0FBQyxTQUFTLEdBQUcsaUJBQWlCLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDL0MsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLElBQUksU0FBUyxFQUFFLEVBQUUsQ0FBQztZQUNoQyxPQUFPLENBQUMsSUFBSSxDQUNWLG1GQUFtRixDQUNwRixDQUFDO1FBQ0osQ0FBQztRQUNELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsYUFBYSxJQUFJLGVBQWUsQ0FBQztRQUM3RCxJQUFJLENBQUMsSUFBSSxHQUFHO1lBQ1YsWUFBWSxFQUFFLEdBQUcsTUFBTSxjQUFjO1lBQ3JDLGFBQWEsRUFBRSxHQUFHLE1BQU0sZUFBZTtZQUN2QyxLQUFLLEVBQUUsR0FBRyxNQUFNLE9BQU87WUFDdkIsV0FBVyxFQUFFLEdBQUcsTUFBTSxhQUFhO1lBQ25DLGNBQWMsRUFBRSxHQUFHLE1BQU0sZ0JBQWdCO1lBQ3pDLFVBQVUsRUFBRSxHQUFHLE1BQU0sWUFBWTtTQUNsQyxDQUFDO1FBQ0YsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUM3QyxDQUFDO0lBRUQsK0VBQStFO0lBQ3ZFLGlCQUFpQjtRQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTTtZQUFFLE9BQU8sS0FBSyxDQUFDO1FBQzFELElBQUksQ0FBQztZQUNILE1BQU0sT0FBTyxHQUFHLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDO1lBQzdFLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDO1lBQ3pDLE1BQU0sSUFBSSxHQUFHLENBQUMsQ0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUM3RCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDekMsQ0FBQztRQUFDLE1BQU0sQ0FBQztZQUNQLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztJQUNILENBQUM7SUFFRDs7T0FFRztJQUNILFNBQVMsQ0FBQyxLQUFzQjtRQUM5QixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVM7WUFBRSxPQUFPO1FBQzVCLElBQUksQ0FBQztZQUNILFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ2hFLDJFQUEyRTtZQUMzRSwwRUFBMEU7WUFDMUUsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLElBQUksS0FBSyxDQUFDLFlBQVksRUFBRSxDQUFDO2dCQUMzQyxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUNwRSxDQUFDO1lBQ0QsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQ25FLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztZQUMvRSxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztZQUMzRSxJQUFJLEtBQUssQ0FBQyxTQUFTLEVBQUUsQ0FBQztnQkFDcEIsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7WUFDdEUsQ0FBQztRQUNILENBQUM7UUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ1gsT0FBTyxDQUFDLElBQUksQ0FBQyxrREFBa0QsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN0RSxDQUFDO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0gsU0FBUztRQUNQLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUztZQUFFLE9BQU8sRUFBRSxDQUFDO1FBQy9CLElBQUksQ0FBQztZQUNILE1BQU0sV0FBVyxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUNqRSxNQUFNLFlBQVksR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDbkUsTUFBTSxTQUFTLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3hELE1BQU0sZUFBZSxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUNwRSxNQUFNLFlBQVksR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssTUFBTSxDQUFDO1lBQy9FLE1BQU0sWUFBWSxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUVoRSxPQUFPO2dCQUNMLFdBQVcsRUFBRSxXQUFXLElBQUksU0FBUztnQkFDckMsWUFBWSxFQUFFLFlBQVksSUFBSSxTQUFTO2dCQUN2QyxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUM3QyxXQUFXLEVBQUUsZUFBZSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUMvRCxZQUFZO2dCQUNaLFNBQVMsRUFBRSxZQUFZLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUzthQUMzRCxDQUFDO1FBQ0osQ0FBQztRQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDWCxPQUFPLENBQUMsSUFBSSxDQUFDLG9EQUFvRCxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3RFLE9BQU8sRUFBRSxDQUFDO1FBQ1osQ0FBQztJQUNILENBQUM7SUFFRDs7T0FFRztJQUNILGVBQWUsQ0FBQyxLQUFhLEVBQUUsU0FBa0I7UUFDL0MsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTO1lBQUUsT0FBTztRQUM1QixJQUFJLENBQUM7WUFDSCxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ3BELElBQUksU0FBUyxFQUFFLENBQUM7Z0JBQ2QsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztZQUNoRSxDQUFDO1FBQ0gsQ0FBQztRQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDWCxPQUFPLENBQUMsSUFBSSxDQUFDLDZDQUE2QyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ2pFLENBQUM7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxnQkFBZ0IsQ0FBQyxLQUFhO1FBQzVCLDZFQUE2RTtRQUM3RSxzREFBc0Q7UUFDdEQsSUFBSSxJQUFJLENBQUMsVUFBVSxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVM7WUFBRSxPQUFPO1FBQy9DLElBQUksQ0FBQztZQUNILFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDdkQsQ0FBQztRQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDWCxPQUFPLENBQUMsSUFBSSxDQUFDLDhDQUE4QyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ2xFLENBQUM7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxlQUFlLENBQUMsUUFBZ0M7UUFDOUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTO1lBQUUsT0FBTztRQUM1QixJQUFJLENBQUM7WUFDSCxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDdEUsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1lBQ2xGLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO1FBQ2hGLENBQUM7UUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ1gsT0FBTyxDQUFDLElBQUksQ0FBQyx5Q0FBeUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUM3RCxDQUFDO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0gsZUFBZTtRQUtiLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDcEIsT0FBTyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsV0FBVyxFQUFFLEVBQUUsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLENBQUM7UUFDN0QsQ0FBQztRQUNELElBQUksQ0FBQztZQUNILE1BQU0sU0FBUyxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN4RCxNQUFNLGVBQWUsR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDcEUsTUFBTSxZQUFZLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLE1BQU0sQ0FBQztZQUUvRSxPQUFPO2dCQUNMLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQzdDLFdBQVcsRUFBRSxlQUFlLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQy9ELFlBQVk7YUFDYixDQUFDO1FBQ0osQ0FBQztRQUFDLE1BQU0sQ0FBQztZQUNQLE9BQU8sRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLFdBQVcsRUFBRSxFQUFFLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxDQUFDO1FBQzdELENBQUM7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxlQUFlO1FBQ2IsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFDakMsT0FBTyxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsS0FBSztRQUNILElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUztZQUFFLE9BQU87UUFDNUIsSUFBSSxDQUFDO1lBQ0gsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3hFLENBQUM7UUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ1gsT0FBTyxDQUFDLElBQUksQ0FBQyx3Q0FBd0MsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUM1RCxDQUFDO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0gsY0FBYztRQUNaLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUztZQUFFLE9BQU8sS0FBSyxDQUFDO1FBQ2xDLE9BQU8sQ0FBQyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUN4RCxDQUFDOytHQWxNVSxrQkFBa0Isa0JBZVAsbUJBQW1CLDZCQUMvQixXQUFXO21IQWhCVixrQkFBa0IsY0FETCxNQUFNOzs0RkFDbkIsa0JBQWtCO2tCQUQ5QixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRTs7MEJBZ0I3QixRQUFROzswQkFBSSxNQUFNOzJCQUFDLG1CQUFtQjs7MEJBQ3RDLE1BQU07MkJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgT3B0aW9uYWwsIFBMQVRGT1JNX0lELCBpc0Rldk1vZGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFZBTFRFQ0hfQVVUSF9DT05GSUcgfSBmcm9tICcuL2NvbmZpZyc7XG5pbXBvcnQgeyBTdG9yZWRBdXRoU3RhdGUsIEdldFBlcm1pc3Npb25zUmVzcG9uc2UsIFZhbHRlY2hBdXRoQ29uZmlnIH0gZnJvbSAnLi90eXBlcyc7XG5cbi8qKlxuICogQ2xhdmVzIGRlIHN0b3JhZ2UgcGFyYSBhdXRlbnRpY2FjacOzbi5cbiAqL1xuaW50ZXJmYWNlIFN0b3JhZ2VLZXlzIHtcbiAgQUNDRVNTX1RPS0VOOiBzdHJpbmc7XG4gIFJFRlJFU0hfVE9LRU46IHN0cmluZztcbiAgUk9MRVM6IHN0cmluZztcbiAgUEVSTUlTU0lPTlM6IHN0cmluZztcbiAgSVNfU1VQRVJfQURNSU46IHN0cmluZztcbiAgRVhQSVJFU19BVDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFNlcnZpY2lvIHBhcmEgcGVyc2lzdGVuY2lhIGRlIGVzdGFkbyBkZSBhdXRlbnRpY2FjacOzbiBlbiBsb2NhbFN0b3JhZ2UuXG4gKi9cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgQXV0aFN0b3JhZ2VTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBrZXlzOiBTdG9yYWdlS2V5cztcbiAgcHJpdmF0ZSByZWFkb25seSBpc0Jyb3dzZXI6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEgtMDU6IG1vZG8gY29va2llLW9ubHkgZGVsIHJlZnJlc2ggdG9rZW4uIGB0cnVlYCBjdWFuZG8gZWwgZnJvbnRlbmQgeSBsYSBBUElcbiAgICogY29tcGFydGVuIHNpdGUgKG1pc21vIHJlZ2lzdHJhYmxlIGRvbWFpbikg4oaSIGxhIGNvb2tpZSBIdHRwT25seSBlc1xuICAgKiBmaXJzdC1wYXJ0eSB5IGNvbmZpYWJsZSDihpIgTk8gc2UgcGVyc2lzdGUgZWwgcmVmcmVzaCBlbiBsb2NhbFN0b3JhZ2UgKHVuIFhTU1xuICAgKiBubyBwdWVkZSByb2JhcmxvKS4gYGZhbHNlYCBlbiBjcm9zcy1zaXRlIChkZXYgYC53ZWIuYXBwYCB2cyBgLm15dmFsdGVjaC5jb21gKVxuICAgKiBkb25kZSBsb3MgYnJvd3NlcnMgYmxvcXVlYW4gbGEgY29va2llIGRlIHRlcmNlcm9zIChTYWZhcmkgSVRQLCBDaHJvbWVcbiAgICogM3JkLXBhcnR5IHBoYXNlLW91dCkg4oaSIGZhbGxiYWNrIHRyYW5zaXRpb24tc2FmZSAocmVmcmVzaCBlbiBsb2NhbFN0b3JhZ2UpLlxuICAgKi9cbiAgcmVhZG9ubHkgY29va2llT25seTogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KFZBTFRFQ0hfQVVUSF9DT05GSUcpIHByaXZhdGUgY29uZmlnOiBWYWx0ZWNoQXV0aENvbmZpZyB8IG51bGwsXG4gICAgQEluamVjdChQTEFURk9STV9JRCkgcGxhdGZvcm1JZDogT2JqZWN0XG4gICkge1xuICAgIHRoaXMuaXNCcm93c2VyID0gaXNQbGF0Zm9ybUJyb3dzZXIocGxhdGZvcm1JZCk7XG4gICAgaWYgKCF0aGlzLmNvbmZpZyAmJiBpc0Rldk1vZGUoKSkge1xuICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAnW3ZhbHRlY2gtY29tcG9uZW50c10gQXV0aFN0b3JhZ2VTZXJ2aWNlOiBwcm92aWRlVmFsdGVjaEF1dGgoKSBubyBlc3TDoSBlbiBtYWluLnRzLidcbiAgICAgICk7XG4gICAgfVxuICAgIGNvbnN0IHByZWZpeCA9IHRoaXMuY29uZmlnPy5zdG9yYWdlUHJlZml4IHx8ICd2YWx0ZWNoX2F1dGhfJztcbiAgICB0aGlzLmtleXMgPSB7XG4gICAgICBBQ0NFU1NfVE9LRU46IGAke3ByZWZpeH1hY2Nlc3NfdG9rZW5gLFxuICAgICAgUkVGUkVTSF9UT0tFTjogYCR7cHJlZml4fXJlZnJlc2hfdG9rZW5gLFxuICAgICAgUk9MRVM6IGAke3ByZWZpeH1yb2xlc2AsXG4gICAgICBQRVJNSVNTSU9OUzogYCR7cHJlZml4fXBlcm1pc3Npb25zYCxcbiAgICAgIElTX1NVUEVSX0FETUlOOiBgJHtwcmVmaXh9aXNfc3VwZXJfYWRtaW5gLFxuICAgICAgRVhQSVJFU19BVDogYCR7cHJlZml4fWV4cGlyZXNfYXRgLFxuICAgIH07XG4gICAgdGhpcy5jb29raWVPbmx5ID0gdGhpcy5jb21wdXRlQ29va2llT25seSgpO1xuICB9XG5cbiAgLyoqIFNhbWUtc2l0ZSBjaGVjazogZnJvbnRlbmQgaG9zdCB2cyBBUEkgaG9zdCBjb21wYXJ0ZW4gcmVnaXN0cmFibGUgZG9tYWluLiAqL1xuICBwcml2YXRlIGNvbXB1dGVDb29raWVPbmx5KCk6IGJvb2xlYW4ge1xuICAgIGlmICghdGhpcy5pc0Jyb3dzZXIgfHwgIXRoaXMuY29uZmlnPy5hcGlVcmwpIHJldHVybiBmYWxzZTtcbiAgICB0cnkge1xuICAgICAgY29uc3QgYXBpSG9zdCA9IG5ldyBVUkwodGhpcy5jb25maWcuYXBpVXJsLCB3aW5kb3cubG9jYXRpb24ub3JpZ2luKS5ob3N0bmFtZTtcbiAgICAgIGNvbnN0IGFwcEhvc3QgPSB3aW5kb3cubG9jYXRpb24uaG9zdG5hbWU7XG4gICAgICBjb25zdCBzaXRlID0gKGg6IHN0cmluZykgPT4gaC5zcGxpdCgnLicpLnNsaWNlKC0yKS5qb2luKCcuJyk7XG4gICAgICByZXR1cm4gc2l0ZShhcGlIb3N0KSA9PT0gc2l0ZShhcHBIb3N0KTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogR3VhcmRhIGVsIGVzdGFkbyBjb21wbGV0byBkZSBhdXRlbnRpY2FjacOzbi5cbiAgICovXG4gIHNhdmVTdGF0ZShzdGF0ZTogU3RvcmVkQXV0aFN0YXRlKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmlzQnJvd3NlcikgcmV0dXJuO1xuICAgIHRyeSB7XG4gICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmtleXMuQUNDRVNTX1RPS0VOLCBzdGF0ZS5hY2Nlc3NUb2tlbik7XG4gICAgICAvLyBILTA1OiBlbCByZWZyZXNoIHNvbG8gc2UgcGVyc2lzdGUgZW4gY3Jvc3Mtc2l0ZSAoZmFsbGJhY2spOyBlbiBzYW1lLXNpdGVcbiAgICAgIC8vIChjb29raWVPbmx5KSB2aXZlIFNPTE8gZW4gbGEgY29va2llIEh0dHBPbmx5ICh1biBYU1Mgbm8gcHVlZGUgcm9iYXJsbykuXG4gICAgICBpZiAoIXRoaXMuY29va2llT25seSAmJiBzdGF0ZS5yZWZyZXNoVG9rZW4pIHtcbiAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5rZXlzLlJFRlJFU0hfVE9LRU4sIHN0YXRlLnJlZnJlc2hUb2tlbik7XG4gICAgICB9XG4gICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmtleXMuUk9MRVMsIEpTT04uc3RyaW5naWZ5KHN0YXRlLnJvbGVzKSk7XG4gICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmtleXMuUEVSTUlTU0lPTlMsIEpTT04uc3RyaW5naWZ5KHN0YXRlLnBlcm1pc3Npb25zKSk7XG4gICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmtleXMuSVNfU1VQRVJfQURNSU4sIFN0cmluZyhzdGF0ZS5pc1N1cGVyQWRtaW4pKTtcbiAgICAgIGlmIChzdGF0ZS5leHBpcmVzQXQpIHtcbiAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5rZXlzLkVYUElSRVNfQVQsIFN0cmluZyhzdGF0ZS5leHBpcmVzQXQpKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBjb25zb2xlLndhcm4oJ1tWYWx0ZWNoQXV0aF0gRXJyb3IgZ3VhcmRhbmRvIGVzdGFkbyBlbiBzdG9yYWdlOicsIGUpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDYXJnYSBlbCBlc3RhZG8gZGUgYXV0ZW50aWNhY2nDs24gZGVzZGUgc3RvcmFnZS5cbiAgICovXG4gIGxvYWRTdGF0ZSgpOiBQYXJ0aWFsPFN0b3JlZEF1dGhTdGF0ZT4ge1xuICAgIGlmICghdGhpcy5pc0Jyb3dzZXIpIHJldHVybiB7fTtcbiAgICB0cnkge1xuICAgICAgY29uc3QgYWNjZXNzVG9rZW4gPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmtleXMuQUNDRVNTX1RPS0VOKTtcbiAgICAgIGNvbnN0IHJlZnJlc2hUb2tlbiA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMua2V5cy5SRUZSRVNIX1RPS0VOKTtcbiAgICAgIGNvbnN0IHJvbGVzSnNvbiA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMua2V5cy5ST0xFUyk7XG4gICAgICBjb25zdCBwZXJtaXNzaW9uc0pzb24gPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmtleXMuUEVSTUlTU0lPTlMpO1xuICAgICAgY29uc3QgaXNTdXBlckFkbWluID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5rZXlzLklTX1NVUEVSX0FETUlOKSA9PT0gJ3RydWUnO1xuICAgICAgY29uc3QgZXhwaXJlc0F0U3RyID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5rZXlzLkVYUElSRVNfQVQpO1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBhY2Nlc3NUb2tlbjogYWNjZXNzVG9rZW4gfHwgdW5kZWZpbmVkLFxuICAgICAgICByZWZyZXNoVG9rZW46IHJlZnJlc2hUb2tlbiB8fCB1bmRlZmluZWQsXG4gICAgICAgIHJvbGVzOiByb2xlc0pzb24gPyBKU09OLnBhcnNlKHJvbGVzSnNvbikgOiBbXSxcbiAgICAgICAgcGVybWlzc2lvbnM6IHBlcm1pc3Npb25zSnNvbiA/IEpTT04ucGFyc2UocGVybWlzc2lvbnNKc29uKSA6IFtdLFxuICAgICAgICBpc1N1cGVyQWRtaW4sXG4gICAgICAgIGV4cGlyZXNBdDogZXhwaXJlc0F0U3RyID8gTnVtYmVyKGV4cGlyZXNBdFN0cikgOiB1bmRlZmluZWQsXG4gICAgICB9O1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGNvbnNvbGUud2FybignW1ZhbHRlY2hBdXRoXSBFcnJvciBjYXJnYW5kbyBlc3RhZG8gZGVzZGUgc3RvcmFnZTonLCBlKTtcbiAgICAgIHJldHVybiB7fTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogR3VhcmRhIHNvbG8gZWwgYWNjZXNzIHRva2VuLlxuICAgKi9cbiAgc2F2ZUFjY2Vzc1Rva2VuKHRva2VuOiBzdHJpbmcsIGV4cGlyZXNBdD86IG51bWJlcik6IHZvaWQge1xuICAgIGlmICghdGhpcy5pc0Jyb3dzZXIpIHJldHVybjtcbiAgICB0cnkge1xuICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5rZXlzLkFDQ0VTU19UT0tFTiwgdG9rZW4pO1xuICAgICAgaWYgKGV4cGlyZXNBdCkge1xuICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmtleXMuRVhQSVJFU19BVCwgU3RyaW5nKGV4cGlyZXNBdCkpO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGNvbnNvbGUud2FybignW1ZhbHRlY2hBdXRoXSBFcnJvciBndWFyZGFuZG8gYWNjZXNzIHRva2VuOicsIGUpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBHdWFyZGEgZWwgcmVmcmVzaCB0b2tlbiAodG9rZW4gcm90YXRpb24pLlxuICAgKi9cbiAgc2F2ZVJlZnJlc2hUb2tlbih0b2tlbjogc3RyaW5nKTogdm9pZCB7XG4gICAgLy8gSC0wNTogc29sbyBzZSBwZXJzaXN0ZSBlbiBjcm9zcy1zaXRlIChmYWxsYmFjaykuIEVuIGNvb2tpZU9ubHkgKHNhbWUtc2l0ZSlcbiAgICAvLyBlbCByZWZyZXNoIHZpdmUgc29sbyBlbiBsYSBjb29raWUgSHR0cE9ubHkg4oaSIG5vLW9wLlxuICAgIGlmICh0aGlzLmNvb2tpZU9ubHkgfHwgIXRoaXMuaXNCcm93c2VyKSByZXR1cm47XG4gICAgdHJ5IHtcbiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMua2V5cy5SRUZSRVNIX1RPS0VOLCB0b2tlbik7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgY29uc29sZS53YXJuKCdbVmFsdGVjaEF1dGhdIEVycm9yIGd1YXJkYW5kbyByZWZyZXNoIHRva2VuOicsIGUpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBHdWFyZGEgbG9zIHBlcm1pc29zIGFjdHVhbGl6YWRvcy5cbiAgICovXG4gIHNhdmVQZXJtaXNzaW9ucyhyZXNwb25zZTogR2V0UGVybWlzc2lvbnNSZXNwb25zZSk6IHZvaWQge1xuICAgIGlmICghdGhpcy5pc0Jyb3dzZXIpIHJldHVybjtcbiAgICB0cnkge1xuICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5rZXlzLlJPTEVTLCBKU09OLnN0cmluZ2lmeShyZXNwb25zZS5yb2xlcykpO1xuICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5rZXlzLlBFUk1JU1NJT05TLCBKU09OLnN0cmluZ2lmeShyZXNwb25zZS5wZXJtaXNzaW9ucykpO1xuICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5rZXlzLklTX1NVUEVSX0FETUlOLCBTdHJpbmcocmVzcG9uc2UuaXNTdXBlckFkbWluKSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgY29uc29sZS53YXJuKCdbVmFsdGVjaEF1dGhdIEVycm9yIGd1YXJkYW5kbyBwZXJtaXNvczonLCBlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ2FyZ2EgbG9zIHBlcm1pc29zIGRlc2RlIHN0b3JhZ2UuXG4gICAqL1xuICBsb2FkUGVybWlzc2lvbnMoKToge1xuICAgIHJvbGVzOiBzdHJpbmdbXTtcbiAgICBwZXJtaXNzaW9uczogc3RyaW5nW107XG4gICAgaXNTdXBlckFkbWluOiBib29sZWFuO1xuICB9IHtcbiAgICBpZiAoIXRoaXMuaXNCcm93c2VyKSB7XG4gICAgICByZXR1cm4geyByb2xlczogW10sIHBlcm1pc3Npb25zOiBbXSwgaXNTdXBlckFkbWluOiBmYWxzZSB9O1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgY29uc3Qgcm9sZXNKc29uID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5rZXlzLlJPTEVTKTtcbiAgICAgIGNvbnN0IHBlcm1pc3Npb25zSnNvbiA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMua2V5cy5QRVJNSVNTSU9OUyk7XG4gICAgICBjb25zdCBpc1N1cGVyQWRtaW4gPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmtleXMuSVNfU1VQRVJfQURNSU4pID09PSAndHJ1ZSc7XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIHJvbGVzOiByb2xlc0pzb24gPyBKU09OLnBhcnNlKHJvbGVzSnNvbikgOiBbXSxcbiAgICAgICAgcGVybWlzc2lvbnM6IHBlcm1pc3Npb25zSnNvbiA/IEpTT04ucGFyc2UocGVybWlzc2lvbnNKc29uKSA6IFtdLFxuICAgICAgICBpc1N1cGVyQWRtaW4sXG4gICAgICB9O1xuICAgIH0gY2F0Y2gge1xuICAgICAgcmV0dXJuIHsgcm9sZXM6IFtdLCBwZXJtaXNzaW9uczogW10sIGlzU3VwZXJBZG1pbjogZmFsc2UgfTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogT2J0aWVuZSBlbCByZWZyZXNoIHRva2VuLlxuICAgKi9cbiAgZ2V0UmVmcmVzaFRva2VuKCk6IHN0cmluZyB8IG51bGwge1xuICAgIGlmICghdGhpcy5pc0Jyb3dzZXIpIHJldHVybiBudWxsO1xuICAgIHJldHVybiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmtleXMuUkVGUkVTSF9UT0tFTik7XG4gIH1cblxuICAvKipcbiAgICogTGltcGlhIHRvZG8gZWwgZXN0YWRvIGRlIGF1dGVudGljYWNpw7NuLlxuICAgKi9cbiAgY2xlYXIoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmlzQnJvd3NlcikgcmV0dXJuO1xuICAgIHRyeSB7XG4gICAgICBPYmplY3QudmFsdWVzKHRoaXMua2V5cykuZm9yRWFjaChrZXkgPT4gbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oa2V5KSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgY29uc29sZS53YXJuKCdbVmFsdGVjaEF1dGhdIEVycm9yIGxpbXBpYW5kbyBzdG9yYWdlOicsIGUpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBWZXJpZmljYSBzaSBoYXkgZXN0YWRvIGd1YXJkYWRvLlxuICAgKi9cbiAgaGFzU3RvcmVkU3RhdGUoKTogYm9vbGVhbiB7XG4gICAgaWYgKCF0aGlzLmlzQnJvd3NlcikgcmV0dXJuIGZhbHNlO1xuICAgIHJldHVybiAhIWxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMua2V5cy5BQ0NFU1NfVE9LRU4pO1xuICB9XG59XG4iXX0=
|
|
223
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZXJ2aWNlcy9hdXRoL3N0b3JhZ2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxVQUFVLENBQUM7O0FBRy9DOzs7OztHQUtHO0FBQ0gsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsbUJBQW1CLENBQUM7QUFjekQ7O0dBRUc7QUFFSCxNQUFNLE9BQU8sa0JBQWtCO0lBYzdCLFlBQ21ELE1BQWdDLEVBQzVELFVBQWtCO1FBRFUsV0FBTSxHQUFOLE1BQU0sQ0FBMEI7UUFHakYsSUFBSSxDQUFDLFNBQVMsR0FBRyxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUMvQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sSUFBSSxTQUFTLEVBQUUsRUFBRSxDQUFDO1lBQ2hDLE9BQU8sQ0FBQyxJQUFJLENBQ1YsbUZBQW1GLENBQ3BGLENBQUM7UUFDSixDQUFDO1FBQ0QsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxhQUFhLElBQUksZUFBZSxDQUFDO1FBQzdELElBQUksQ0FBQyxJQUFJLEdBQUc7WUFDVixZQUFZLEVBQUUsR0FBRyxNQUFNLGNBQWM7WUFDckMsYUFBYSxFQUFFLEdBQUcsTUFBTSxlQUFlO1lBQ3ZDLEtBQUssRUFBRSxHQUFHLE1BQU0sT0FBTztZQUN2QixXQUFXLEVBQUUsR0FBRyxNQUFNLGFBQWE7WUFDbkMsY0FBYyxFQUFFLEdBQUcsTUFBTSxnQkFBZ0I7WUFDekMsVUFBVSxFQUFFLEdBQUcsTUFB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QkFBbUIsNkJBQy9CLFdBQVc7bUhBaEJWLGtCQUFrQixjQURMLE1BQU07OzRGQUNuQixrQkFBa0I7a0JBRDlCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFOzswQkFnQjdCLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsbUJBQW1COzswQkFDdEMsTUFBTTsyQkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBPcHRpb25hbCwgUExBVEZPUk1fSUQsIGlzRGV2TW9kZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgVkFMVEVDSF9BVVRIX0NPTkZJRyB9IGZyb20gJy4vY29uZmlnJztcbmltcG9ydCB7IFN0b3JlZEF1dGhTdGF0ZSwgR2V0UGVybWlzc2lvbnNSZXNwb25zZSwgVmFsdGVjaEF1dGhDb25maWcgfSBmcm9tICcuL3R5cGVzJztcblxuLyoqXG4gKiBOb21icmUgcG9yIGRlZmVjdG8gZGUgbGEgY29va2llLWhpbnQgZGUgc2VzacOzbiBkZSBmYW1pbGlhIChlc3Blam8gSlMtcmVhZGFibGVcbiAqIGRlbCByZWZyZXNoIHRva2VuIEh0dHBPbmx5KS4gRGViZSBjb2luY2lkaXIgY29uIGBIaW50Q29va2llTmFtZWAgZGVsIGJhY2tlbmRcbiAqIChgYmFja2VuZC9nby9zZXJ2aWNlcy9odHRwYXBpL2hpbnRfY29va2llLmdvYCkuIE92ZXJyaWRlIHBvciBhcHAgdsOtYVxuICogYFZhbHRlY2hBdXRoQ29uZmlnLmxvZ2dlZEluSGludENvb2tpZWAuXG4gKi9cbmV4cG9ydCBjb25zdCBMT0dHRURfSU5fSElOVF9DT09LSUUgPSAndmFsdGVjaF9sb2dnZWRfaW4nO1xuXG4vKipcbiAqIENsYXZlcyBkZSBzdG9yYWdlIHBhcmEgYXV0ZW50aWNhY2nDs24uXG4gKi9cbmludGVyZmFjZSBTdG9yYWdlS2V5cyB7XG4gIEFDQ0VTU19UT0tFTjogc3RyaW5nO1xuICBSRUZSRVNIX1RPS0VOOiBzdHJpbmc7XG4gIFJPTEVTOiBzdHJpbmc7XG4gIFBFUk1JU1NJT05TOiBzdHJpbmc7XG4gIElTX1NVUEVSX0FETUlOOiBzdHJpbmc7XG4gIEVYUElSRVNfQVQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBTZXJ2aWNpbyBwYXJhIHBlcnNpc3RlbmNpYSBkZSBlc3RhZG8gZGUgYXV0ZW50aWNhY2nDs24gZW4gbG9jYWxTdG9yYWdlLlxuICovXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIEF1dGhTdG9yYWdlU2VydmljZSB7XG4gIHByaXZhdGUga2V5czogU3RvcmFnZUtleXM7XG4gIHByaXZhdGUgcmVhZG9ubHkgaXNCcm93c2VyOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBILTA1OiBtb2RvIGNvb2tpZS1vbmx5IGRlbCByZWZyZXNoIHRva2VuLiBgdHJ1ZWAgY3VhbmRvIGVsIGZyb250ZW5kIHkgbGEgQVBJXG4gICAqIGNvbXBhcnRlbiBzaXRlIChtaXNtbyByZWdpc3RyYWJsZSBkb21haW4pIOKGkiBsYSBjb29raWUgSHR0cE9ubHkgZXNcbiAgICogZmlyc3QtcGFydHkgeSBjb25maWFibGUg4oaSIE5PIHNlIHBlcnNpc3RlIGVsIHJlZnJlc2ggZW4gbG9jYWxTdG9yYWdlICh1biBYU1NcbiAgICogbm8gcHVlZGUgcm9iYXJsbykuIGBmYWxzZWAgZW4gY3Jvc3Mtc2l0ZSAoZGV2IGAud2ViLmFwcGAgdnMgYC5teXZhbHRlY2guY29tYClcbiAgICogZG9uZGUgbG9zIGJyb3dzZXJzIGJsb3F1ZWFuIGxhIGNvb2tpZSBkZSB0ZXJjZXJvcyAoU2FmYXJpIElUUCwgQ2hyb21lXG4gICAqIDNyZC1wYXJ0eSBwaGFzZS1vdXQpIOKGkiBmYWxsYmFjayB0cmFuc2l0aW9uLXNhZmUgKHJlZnJlc2ggZW4gbG9jYWxTdG9yYWdlKS5cbiAgICovXG4gIHJlYWRvbmx5IGNvb2tpZU9ubHk6IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChWQUxURUNIX0FVVEhfQ09ORklHKSBwcml2YXRlIGNvbmZpZzogVmFsdGVjaEF1dGhDb25maWcgfCBudWxsLFxuICAgIEBJbmplY3QoUExBVEZPUk1fSUQpIHBsYXRmb3JtSWQ6IE9iamVjdFxuICApIHtcbiAgICB0aGlzLmlzQnJvd3NlciA9IGlzUGxhdGZvcm1Ccm93c2VyKHBsYXRmb3JtSWQpO1xuICAgIGlmICghdGhpcy5jb25maWcgJiYgaXNEZXZNb2RlKCkpIHtcbiAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgJ1t2YWx0ZWNoLWNvbXBvbmVudHNdIEF1dGhTdG9yYWdlU2VydmljZTogcHJvdmlkZVZhbHRlY2hBdXRoKCkgbm8gZXN0w6EgZW4gbWFpbi50cy4nXG4gICAgICApO1xuICAgIH1cbiAgICBjb25zdCBwcmVmaXggPSB0aGlzLmNvbmZpZz8uc3RvcmFnZVByZWZpeCB8fCAndmFsdGVjaF9hdXRoXyc7XG4gICAgdGhpcy5rZXlzID0ge1xuICAgICAgQUNDRVNTX1RPS0VOOiBgJHtwcmVmaXh9YWNjZXNzX3Rva2VuYCxcbiAgICAgIFJFRlJFU0hfVE9LRU46IGAke3ByZWZpeH1yZWZyZXNoX3Rva2VuYCxcbiAgICAgIFJPTEVTOiBgJHtwcmVmaXh9cm9sZXNgLFxuICAgICAgUEVSTUlTU0lPTlM6IGAke3ByZWZpeH1wZXJtaXNzaW9uc2AsXG4gICAgICBJU19TVVBFUl9BRE1JTjogYCR7cHJlZml4fWlzX3N1cGVyX2FkbWluYCxcbiAgICAgIEVYUElSRVNfQVQ6IGAke3ByZWZpeH1leHBpcmVzX2F0YCxcbiAgICB9O1xuICAgIHRoaXMuY29va2llT25seSA9IHRoaXMuY29tcHV0ZUNvb2tpZU9ubHkoKTtcbiAgfVxuXG4gIC8qKiBTYW1lLXNpdGUgY2hlY2s6IGZyb250ZW5kIGhvc3QgdnMgQVBJIGhvc3QgY29tcGFydGVuIHJlZ2lzdHJhYmxlIGRvbWFpbi4gKi9cbiAgcHJpdmF0ZSBjb21wdXRlQ29va2llT25seSgpOiBib29sZWFuIHtcbiAgICBpZiAoIXRoaXMuaXNCcm93c2VyIHx8ICF0aGlzLmNvbmZpZz8uYXBpVXJsKSByZXR1cm4gZmFsc2U7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGFwaUhvc3QgPSBuZXcgVVJMKHRoaXMuY29uZmlnLmFwaVVybCwgd2luZG93LmxvY2F0aW9uLm9yaWdpbikuaG9zdG5hbWU7XG4gICAgICBjb25zdCBhcHBIb3N0ID0gd2luZG93LmxvY2F0aW9uLmhvc3RuYW1lO1xuICAgICAgY29uc3Qgc2l0ZSA9IChoOiBzdHJpbmcpID0+IGguc3BsaXQoJy4nKS5zbGljZSgtMikuam9pbignLicpO1xuICAgICAgcmV0dXJuIHNpdGUoYXBpSG9zdCkgPT09IHNpdGUoYXBwSG9zdCk7XG4gICAgfSBjYXRjaCB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIMK/RXhpc3RlIGxhIGNvb2tpZS1oaW50IEpTLXJlYWRhYmxlIGRlIFwic2VzacOzbiBhY3RpdmEgZW4gbGEgZmFtaWxpYVwiP1xuICAgKlxuICAgKiBMYSBzZXRlYSBlbCBiYWNrZW5kIGVuIGxvZ2luL2xvZ291dCAoYEh0dHBPbmx5OmZhbHNlYCwgYERvbWFpbj0ubXl2YWx0ZWNoLmNvbWApXG4gICAqIGNvbW8gZXNwZWpvIGxlZ2libGUgcG9yIEpTIGRlbCByZWZyZXNoIHRva2VuIEh0dHBPbmx5IChgdmFsdGVjaF9yZWZyZXNoYCksIHF1ZVxuICAgKiBKUyBubyBwdWVkZSBsZWVyLiBFcyB1biBoaW50IGRlIFVJLCBubyB1bmEgY3JlZGVuY2lhbC4gTG8gdXNhbiBgaW5pdGlhbGl6ZSgpYFxuICAgKiAoYm9vdHN0cmFwIGNyb3NzLW9yaWdpbiwgZ2F0ZWQgcG9yIGBib290c3RyYXBTZXNzaW9uRnJvbUhpbnRgKSB5IGVsIHNpdGlvXG4gICAqIHDDumJsaWNvIHBhcmEgZGVjaWRpciBsYW5kaW5nLXZzLWFwcCBzaW4gZXhwb25lciBlbCB0b2tlbi5cbiAgICovXG4gIGhhc0xvZ2dlZEluSGludChjb29raWVOYW1lOiBzdHJpbmcgPSBMT0dHRURfSU5fSElOVF9DT09LSUUpOiBib29sZWFuIHtcbiAgICBpZiAoIXRoaXMuaXNCcm93c2VyKSByZXR1cm4gZmFsc2U7XG4gICAgcmV0dXJuIGRvY3VtZW50LmNvb2tpZS5zcGxpdCgnOycpLnNvbWUoYyA9PiBjLnRyaW0oKSA9PT0gYCR7Y29va2llTmFtZX09MWApO1xuICB9XG5cbiAgLyoqXG4gICAqIEd1YXJkYSBlbCBlc3RhZG8gY29tcGxldG8gZGUgYXV0ZW50aWNhY2nDs24uXG4gICAqL1xuICBzYXZlU3RhdGUoc3RhdGU6IFN0b3JlZEF1dGhTdGF0ZSk6IHZvaWQge1xuICAgIGlmICghdGhpcy5pc0Jyb3dzZXIpIHJldHVybjtcbiAgICB0cnkge1xuICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5rZXlzLkFDQ0VTU19UT0tFTiwgc3RhdGUuYWNjZXNzVG9rZW4pO1xuICAgICAgLy8gSC0wNTogZWwgcmVmcmVzaCBzb2xvIHNlIHBlcnNpc3RlIGVuIGNyb3NzLXNpdGUgKGZhbGxiYWNrKTsgZW4gc2FtZS1zaXRlXG4gICAgICAvLyAoY29va2llT25seSkgdml2ZSBTT0xPIGVuIGxhIGNvb2tpZSBIdHRwT25seSAodW4gWFNTIG5vIHB1ZWRlIHJvYmFybG8pLlxuICAgICAgaWYgKCF0aGlzLmNvb2tpZU9ubHkgJiYgc3RhdGUucmVmcmVzaFRva2VuKSB7XG4gICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMua2V5cy5SRUZSRVNIX1RPS0VOLCBzdGF0ZS5yZWZyZXNoVG9rZW4pO1xuICAgICAgfVxuICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5rZXlzLlJPTEVTLCBKU09OLnN0cmluZ2lmeShzdGF0ZS5yb2xlcykpO1xuICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5rZXlzLlBFUk1JU1NJT05TLCBKU09OLnN0cmluZ2lmeShzdGF0ZS5wZXJtaXNzaW9ucykpO1xuICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5rZXlzLklTX1NVUEVSX0FETUlOLCBTdHJpbmcoc3RhdGUuaXNTdXBlckFkbWluKSk7XG4gICAgICBpZiAoc3RhdGUuZXhwaXJlc0F0KSB7XG4gICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMua2V5cy5FWFBJUkVTX0FULCBTdHJpbmcoc3RhdGUuZXhwaXJlc0F0KSk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgY29uc29sZS53YXJuKCdbVmFsdGVjaEF1dGhdIEVycm9yIGd1YXJkYW5kbyBlc3RhZG8gZW4gc3RvcmFnZTonLCBlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ2FyZ2EgZWwgZXN0YWRvIGRlIGF1dGVudGljYWNpw7NuIGRlc2RlIHN0b3JhZ2UuXG4gICAqL1xuICBsb2FkU3RhdGUoKTogUGFydGlhbDxTdG9yZWRBdXRoU3RhdGU+IHtcbiAgICBpZiAoIXRoaXMuaXNCcm93c2VyKSByZXR1cm4ge307XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGFjY2Vzc1Rva2VuID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5rZXlzLkFDQ0VTU19UT0tFTik7XG4gICAgICBjb25zdCByZWZyZXNoVG9rZW4gPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmtleXMuUkVGUkVTSF9UT0tFTik7XG4gICAgICBjb25zdCByb2xlc0pzb24gPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmtleXMuUk9MRVMpO1xuICAgICAgY29uc3QgcGVybWlzc2lvbnNKc29uID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5rZXlzLlBFUk1JU1NJT05TKTtcbiAgICAgIGNvbnN0IGlzU3VwZXJBZG1pbiA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMua2V5cy5JU19TVVBFUl9BRE1JTikgPT09ICd0cnVlJztcbiAgICAgIGNvbnN0IGV4cGlyZXNBdFN0ciA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMua2V5cy5FWFBJUkVTX0FUKTtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgYWNjZXNzVG9rZW46IGFjY2Vzc1Rva2VuIHx8IHVuZGVmaW5lZCxcbiAgICAgICAgcmVmcmVzaFRva2VuOiByZWZyZXNoVG9rZW4gfHwgdW5kZWZpbmVkLFxuICAgICAgICByb2xlczogcm9sZXNKc29uID8gSlNPTi5wYXJzZShyb2xlc0pzb24pIDogW10sXG4gICAgICAgIHBlcm1pc3Npb25zOiBwZXJtaXNzaW9uc0pzb24gPyBKU09OLnBhcnNlKHBlcm1pc3Npb25zSnNvbikgOiBbXSxcbiAgICAgICAgaXNTdXBlckFkbWluLFxuICAgICAgICBleHBpcmVzQXQ6IGV4cGlyZXNBdFN0ciA/IE51bWJlcihleHBpcmVzQXRTdHIpIDogdW5kZWZpbmVkLFxuICAgICAgfTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBjb25zb2xlLndhcm4oJ1tWYWx0ZWNoQXV0aF0gRXJyb3IgY2FyZ2FuZG8gZXN0YWRvIGRlc2RlIHN0b3JhZ2U6JywgZSk7XG4gICAgICByZXR1cm4ge307XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEd1YXJkYSBzb2xvIGVsIGFjY2VzcyB0b2tlbi5cbiAgICovXG4gIHNhdmVBY2Nlc3NUb2tlbih0b2tlbjogc3RyaW5nLCBleHBpcmVzQXQ/OiBudW1iZXIpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaXNCcm93c2VyKSByZXR1cm47XG4gICAgdHJ5IHtcbiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMua2V5cy5BQ0NFU1NfVE9LRU4sIHRva2VuKTtcbiAgICAgIGlmIChleHBpcmVzQXQpIHtcbiAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5rZXlzLkVYUElSRVNfQVQsIFN0cmluZyhleHBpcmVzQXQpKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBjb25zb2xlLndhcm4oJ1tWYWx0ZWNoQXV0aF0gRXJyb3IgZ3VhcmRhbmRvIGFjY2VzcyB0b2tlbjonLCBlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogR3VhcmRhIGVsIHJlZnJlc2ggdG9rZW4gKHRva2VuIHJvdGF0aW9uKS5cbiAgICovXG4gIHNhdmVSZWZyZXNoVG9rZW4odG9rZW46IHN0cmluZyk6IHZvaWQge1xuICAgIC8vIEgtMDU6IHNvbG8gc2UgcGVyc2lzdGUgZW4gY3Jvc3Mtc2l0ZSAoZmFsbGJhY2spLiBFbiBjb29raWVPbmx5IChzYW1lLXNpdGUpXG4gICAgLy8gZWwgcmVmcmVzaCB2aXZlIHNvbG8gZW4gbGEgY29va2llIEh0dHBPbmx5IOKGkiBuby1vcC5cbiAgICBpZiAodGhpcy5jb29raWVPbmx5IHx8ICF0aGlzLmlzQnJvd3NlcikgcmV0dXJuO1xuICAgIHRyeSB7XG4gICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmtleXMuUkVGUkVTSF9UT0tFTiwgdG9rZW4pO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGNvbnNvbGUud2FybignW1ZhbHRlY2hBdXRoXSBFcnJvciBndWFyZGFuZG8gcmVmcmVzaCB0b2tlbjonLCBlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogR3VhcmRhIGxvcyBwZXJtaXNvcyBhY3R1YWxpemFkb3MuXG4gICAqL1xuICBzYXZlUGVybWlzc2lvbnMocmVzcG9uc2U6IEdldFBlcm1pc3Npb25zUmVzcG9uc2UpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaXNCcm93c2VyKSByZXR1cm47XG4gICAgdHJ5IHtcbiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMua2V5cy5ST0xFUywgSlNPTi5zdHJpbmdpZnkocmVzcG9uc2Uucm9sZXMpKTtcbiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMua2V5cy5QRVJNSVNTSU9OUywgSlNPTi5zdHJpbmdpZnkocmVzcG9uc2UucGVybWlzc2lvbnMpKTtcbiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMua2V5cy5JU19TVVBFUl9BRE1JTiwgU3RyaW5nKHJlc3BvbnNlLmlzU3VwZXJBZG1pbikpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGNvbnNvbGUud2FybignW1ZhbHRlY2hBdXRoXSBFcnJvciBndWFyZGFuZG8gcGVybWlzb3M6JywgZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENhcmdhIGxvcyBwZXJtaXNvcyBkZXNkZSBzdG9yYWdlLlxuICAgKi9cbiAgbG9hZFBlcm1pc3Npb25zKCk6IHtcbiAgICByb2xlczogc3RyaW5nW107XG4gICAgcGVybWlzc2lvbnM6IHN0cmluZ1tdO1xuICAgIGlzU3VwZXJBZG1pbjogYm9vbGVhbjtcbiAgfSB7XG4gICAgaWYgKCF0aGlzLmlzQnJvd3Nlcikge1xuICAgICAgcmV0dXJuIHsgcm9sZXM6IFtdLCBwZXJtaXNzaW9uczogW10sIGlzU3VwZXJBZG1pbjogZmFsc2UgfTtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJvbGVzSnNvbiA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMua2V5cy5ST0xFUyk7XG4gICAgICBjb25zdCBwZXJtaXNzaW9uc0pzb24gPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmtleXMuUEVSTUlTU0lPTlMpO1xuICAgICAgY29uc3QgaXNTdXBlckFkbWluID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5rZXlzLklTX1NVUEVSX0FETUlOKSA9PT0gJ3RydWUnO1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICByb2xlczogcm9sZXNKc29uID8gSlNPTi5wYXJzZShyb2xlc0pzb24pIDogW10sXG4gICAgICAgIHBlcm1pc3Npb25zOiBwZXJtaXNzaW9uc0pzb24gPyBKU09OLnBhcnNlKHBlcm1pc3Npb25zSnNvbikgOiBbXSxcbiAgICAgICAgaXNTdXBlckFkbWluLFxuICAgICAgfTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIHJldHVybiB7IHJvbGVzOiBbXSwgcGVybWlzc2lvbnM6IFtdLCBpc1N1cGVyQWRtaW46IGZhbHNlIH07XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIE9idGllbmUgZWwgcmVmcmVzaCB0b2tlbi5cbiAgICovXG4gIGdldFJlZnJlc2hUb2tlbigpOiBzdHJpbmcgfCBudWxsIHtcbiAgICBpZiAoIXRoaXMuaXNCcm93c2VyKSByZXR1cm4gbnVsbDtcbiAgICByZXR1cm4gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5rZXlzLlJFRlJFU0hfVE9LRU4pO1xuICB9XG5cbiAgLyoqXG4gICAqIExpbXBpYSB0b2RvIGVsIGVzdGFkbyBkZSBhdXRlbnRpY2FjacOzbi5cbiAgICovXG4gIGNsZWFyKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5pc0Jyb3dzZXIpIHJldHVybjtcbiAgICB0cnkge1xuICAgICAgT2JqZWN0LnZhbHVlcyh0aGlzLmtleXMpLmZvckVhY2goa2V5ID0+IGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKGtleSkpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGNvbnNvbGUud2FybignW1ZhbHRlY2hBdXRoXSBFcnJvciBsaW1waWFuZG8gc3RvcmFnZTonLCBlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVmVyaWZpY2Egc2kgaGF5IGVzdGFkbyBndWFyZGFkby5cbiAgICovXG4gIGhhc1N0b3JlZFN0YXRlKCk6IGJvb2xlYW4ge1xuICAgIGlmICghdGhpcy5pc0Jyb3dzZXIpIHJldHVybiBmYWxzZTtcbiAgICByZXR1cm4gISFsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmtleXMuQUNDRVNTX1RPS0VOKTtcbiAgfVxufVxuIl19
|
|
@@ -28,4 +28,4 @@ export const INITIAL_MFA_STATE = {
|
|
|
28
28
|
mfaToken: null,
|
|
29
29
|
method: null,
|
|
30
30
|
};
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL3NlcnZpY2VzL2F1dGgvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHO0FBNEhIOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQWM7SUFDM0MsZUFBZSxFQUFFLEtBQUs7SUFDdEIsU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsSUFBSTtJQUNqQixZQUFZLEVBQUUsSUFBSTtJQUNsQixNQUFNLEVBQUUsSUFBSTtJQUNaLEtBQUssRUFBRSxJQUFJO0lBQ1gsU0FBUyxFQUFFLElBQUk7SUFDZixLQUFLLEVBQUUsRUFBRTtJQUNULFdBQVcsRUFBRSxFQUFFO0lBQ2YsWUFBWSxFQUFFLEtBQUs7SUFDbkIsU0FBUyxFQUFFLEtBQUs7SUFDaEIsU0FBUyxFQUFFLElBQUk7SUFDZixLQUFLLEVBQUUsSUFBSTtDQUNaLENBQUM7QUFrQkY7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBb0I7SUFDaEQsUUFBUSxFQUFFLEtBQUs7SUFDZixRQUFRLEVBQUUsSUFBSTtJQUNkLE1BQU0sRUFBRSxJQUFJO0NBQ2IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGlwb3MgZSBpbnRlcmZhY2VzIHBhcmEgZWwgc2VydmljaW8gZGUgYXV0ZW50aWNhY2nDs24gZGUgVmFsdGVjaC5cbiAqIEFsaW5lYWRvcyBjb24gZWwgYmFja2VuZCBBdXRoVjIuXG4gKi9cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIENPTkZJR1VSQUNJw5NOXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIENvbmZpZ3VyYWNpw7NuIHBhcmEgZWwgc2VydmljaW8gZGUgYXV0ZW50aWNhY2nDs24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVmFsdGVjaEF1dGhDb25maWcge1xuICAvKiogVVJMIGJhc2UgZGUgbGEgQVBJIChlajogJ2h0dHBzOi8vYXBpLm15dmFsdGVjaC5jb20nKSAqL1xuICBhcGlVcmw6IHN0cmluZztcbiAgLyoqIFByZWZpam8gcGFyYSBlbmRwb2ludHMgZGUgYXV0aCAoZGVmYXVsdDogJy92Mi9hdXRoJykgKi9cbiAgYXV0aFByZWZpeD86IHN0cmluZztcbiAgLyoqIFByZWZpam8gcGFyYSBsYXMgY2xhdmVzIGRlIGxvY2FsU3RvcmFnZSAoZGVmYXVsdDogJ3ZhbHRlY2hfYXV0aF8nKSAqL1xuICBzdG9yYWdlUHJlZml4Pzogc3RyaW5nO1xuICAvKiogVGllbXBvIGFudGVzIGRlIGV4cGlyYWNpw7NuIHBhcmEgcmVmcmVzY2FyIHRva2VuIGVuIHNlZ3VuZG9zIChkZWZhdWx0OiA2MCkgKi9cbiAgcmVmcmVzaEJlZm9yZUV4cGlyeT86IG51bWJlcjtcbiAgLyoqIEhhYmlsaXRhciBzaW5jcm9uaXphY2nDs24gZW50cmUgcGVzdGHDsWFzIChkZWZhdWx0OiB0cnVlKSAqL1xuICBlbmFibGVUYWJTeW5jPzogYm9vbGVhbjtcbiAgLyoqIFJ1dGEgZGUgcmVkaXJlY2Npw7NuIGN1YW5kbyBubyBhdXRlbnRpY2FkbyAoZGVmYXVsdDogJy9sb2dpbicpICovXG4gIGxvZ2luUm91dGU/OiBzdHJpbmc7XG4gIC8qKiBSdXRhIGRlIHJlZGlyZWNjacOzbiBjdWFuZG8geWEgYXV0ZW50aWNhZG8gKGRlZmF1bHQ6ICcvJykgKi9cbiAgaG9tZVJvdXRlPzogc3RyaW5nO1xuICAvKiogUnV0YSBwYXJhIGFjY2VzbyBkZW5lZ2FkbyAoZGVmYXVsdDogJy91bmF1dGhvcml6ZWQnKSAqL1xuICB1bmF1dGhvcml6ZWRSb3V0ZT86IHN0cmluZztcbiAgLyoqIEhhYmlsaXRhciBpbnRlZ3JhY2nDs24gY29uIEZpcmViYXNlU2VydmljZSAoZGVmYXVsdDogZmFsc2UpICovXG4gIGVuYWJsZUZpcmViYXNlSW50ZWdyYXRpb24/OiBib29sZWFuO1xuICAvKiogSGFiaWxpdGFyIHJlZ2lzdHJvIGF1dG9tw6F0aWNvIGRlIGRldmljZSB0b2tlbnMgcGFyYSBwdXNoIG5vdGlmaWNhdGlvbnMgKGRlZmF1bHQ6IGZhbHNlKSAqL1xuICBlbmFibGVEZXZpY2VSZWdpc3RyYXRpb24/OiBib29sZWFuO1xuICAvKipcbiAgICogQXBwSUQgZGUgZXN0YSBhcHAgZGVudHJvIGRlbCBmYWN0b3J5IChlajogJ3Nob3djYXNlJywgJ3NpZ2lmeScsICdteXZhbHRlY2gnKS5cbiAgICogVXNhZG8gcG9yIE5vdGlmaWNhdGlvbkFjdGlvblNlcnZpY2UgcGFyYSBkZWNpZGlyIHNpIHVuYSBub3RpZmljYWNpw7NuXG4gICAqIGFwdW50YSBhIGxhIGFwcCBhY3R1YWwgbyByZXF1aWVyZSBoYW5kb2ZmIGNyb3NzLWFwcC5cbiAgICovXG4gIGFwcElkPzogc3RyaW5nO1xuICAvKipcbiAgICogTWFwYSBhcHBJZCDihpIgYmFzZVVybCBhYnNvbHV0YSBwYXJhIGhhbmRvZmYgY3Jvc3MtYXBwLlxuICAgKiBFajogeyBzaWdpZnk6ICdodHRwczovL3NpZ2lmeS5jb20nLCBteXZhbHRlY2g6ICdodHRwczovL2FwcC5teXZhbHRlY2guY29tJyB9XG4gICAqIE5vdGlmaWNhdGlvbkFjdGlvblNlcnZpY2UgdXNhIGVzdGUgbWFwIGFsIGRpc3BhcmFyIGhhbmRvZmYgYSBvdHJhIGFwcC5cbiAgICovXG4gIGFwcFVybHM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuICAvKipcbiAgICogSGFiaWxpdGFyIHNpbmNyb25pemFjacOzbiByZWFjdGl2YSBkZSBwZXJtaXNvcyB2aWEgRmlyZXN0b3JlIG9uU25hcHNob3QgKGRlZmF1bHQ6IGZhbHNlKS5cbiAgICogUmVxdWllcmUgZW5hYmxlRmlyZWJhc2VJbnRlZ3JhdGlvbjogdHJ1ZS4gQ3VhbmRvIHVuIGFkbWluIGFzaWduYSBvIHJldm9jYSB1biByb2wsXG4gICAqIGVsIGZyb250ZW5kIGFjdHVhbGl6YSByb2xlcy9wZXJtaXNvcyBzaW4gcmVjYXJnYXIgbGEgcMOhZ2luYSAofjEtM3MgbGF0ZW5jaWEpLlxuICAgKiBSZXF1aWVyZSBxdWUgZWwgYmFja2VuZCB0ZW5nYSBTeW5jUkJBQ1RvRmlyZXN0b3JlIGFjdGl2by5cbiAgICovXG4gIGVuYWJsZUZpcmVzdG9yZVJCQUM/OiBib29sZWFuO1xufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gRVNUQURPIERFIEFVVEVOVElDQUNJw5NOXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIEVzdGFkbyBjb21wbGV0byBkZSBhdXRlbnRpY2FjacOzbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBdXRoU3RhdGUge1xuICAvKiogVXN1YXJpbyBlc3TDoSBhdXRlbnRpY2FkbyAqL1xuICBpc0F1dGhlbnRpY2F0ZWQ6IGJvb2xlYW47XG4gIC8qKiBFc3RhZG8gZGUgY2FyZ2EgaW5pY2lhbCAqL1xuICBpc0xvYWRpbmc6IGJvb2xlYW47XG4gIC8qKiBUb2tlbiBkZSBhY2Nlc28gYWN0dWFsICovXG4gIGFjY2Vzc1Rva2VuOiBzdHJpbmcgfCBudWxsO1xuICAvKiogVG9rZW4gZGUgcmVmcmVzY28gYWN0dWFsICovXG4gIHJlZnJlc2hUb2tlbjogc3RyaW5nIHwgbnVsbDtcbiAgLyoqIElEIGRlbCB1c3VhcmlvICovXG4gIHVzZXJJZDogc3RyaW5nIHwgbnVsbDtcbiAgLyoqIEVtYWlsIGRlbCB1c3VhcmlvICovXG4gIGVtYWlsOiBzdHJpbmcgfCBudWxsO1xuICAvKiogTm9tYnJlIGNvbXBsZXRvIGRlbCB1c3VhcmlvIChwb2JsYWRvIHRyYXMgYGdldFByb2ZpbGUoKWApICovXG4gIG5hbWU/OiBzdHJpbmcgfCBudWxsO1xuICAvKiogVXNlcm5hbWUvaGFuZGxlIChwb2JsYWRvIHRyYXMgYGdldFByb2ZpbGUoKWApICovXG4gIGhhbmRsZT86IHN0cmluZyB8IG51bGw7XG4gIC8qKiBVUkwgZGVsIGF2YXRhciAocG9ibGFkbyB0cmFzIGBnZXRQcm9maWxlKClgKSAqL1xuICBhdmF0YXJVcmw/OiBzdHJpbmcgfCBudWxsO1xuICAvKiogVGVsw6lmb25vIChwb2JsYWRvIHRyYXMgYGdldFByb2ZpbGUoKWApICovXG4gIHBob25lPzogc3RyaW5nIHwgbnVsbDtcbiAgLyoqIElEIGRlIGxhIG9yZ2FuaXphY2nDs24gYWN0aXZhICovXG4gIGFjdGl2ZU9yZz86IHN0cmluZyB8IG51bGw7XG4gIC8qKiBSb2xlcyBkZWwgdXN1YXJpbyAqL1xuICByb2xlczogc3RyaW5nW107XG4gIC8qKiBQZXJtaXNvcyBkZWwgdXN1YXJpbyAoZm9ybWF0byAncmVzb3VyY2U6YWN0aW9uJykgKi9cbiAgcGVybWlzc2lvbnM6IHN0cmluZ1tdO1xuICAvKiogVXN1YXJpbyBlcyBzdXBlciBhZG1pbiAqL1xuICBpc1N1cGVyQWRtaW46IGJvb2xlYW47XG4gIC8qKiBVc3VhcmlvIHRpZW5lIHN1c2NyaXBjacOzbiBwcmVtaXVtIGFjdGl2YSAobm8gdmUgYWRzKSAqL1xuICBpc1ByZW1pdW06IGJvb2xlYW47XG4gIC8qKiBUaW1lc3RhbXAgZGUgZXhwaXJhY2nDs24gZGVsIGFjY2Vzc1Rva2VuIChtcykgKi9cbiAgZXhwaXJlc0F0OiBudW1iZXIgfCBudWxsO1xuICAvKiogRXJyb3IgZGUgYXV0ZW50aWNhY2nDs24gKHNpIGV4aXN0ZSkgKi9cbiAgZXJyb3I6IEF1dGhFcnJvciB8IG51bGw7XG59XG5cbi8qKlxuICogSW5mb3JtYWNpw7NuIGRlbCB1c3VhcmlvIGF1dGVudGljYWRvLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEF1dGhVc2VyIHtcbiAgdXNlcklkOiBzdHJpbmc7XG4gIGVtYWlsOiBzdHJpbmc7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIHBob25lPzogc3RyaW5nO1xuICAvKiogVXNlcm5hbWUvaGFuZGxlIGRlbCB1c3VhcmlvIChlajogQHZpY3RvcnYpICovXG4gIGhhbmRsZT86IHN0cmluZztcbiAgLyoqIElEIGRlIGxhIG9yZ2FuaXphY2nDs24gYWN0aXZhICovXG4gIGFjdGl2ZU9yZz86IHN0cmluZztcbiAgLyoqIFVSTCBkZWwgYXZhdGFyIGRlbCB1c3VhcmlvICovXG4gIGF2YXRhclVybD86IHN0cmluZztcbiAgcm9sZXM6IHN0cmluZ1tdO1xuICBwZXJtaXNzaW9uczogc3RyaW5nW107XG4gIGlzU3VwZXJBZG1pbjogYm9vbGVhbjtcbiAgbWZhRW5hYmxlZD86IGJvb2xlYW47XG4gIG1mYU1ldGhvZD86IE1GQU1ldGhvZDtcbn1cblxuLyoqXG4gKiBFcnJvciBkZSBhdXRlbnRpY2FjacOzbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBdXRoRXJyb3Ige1xuICBjb2RlOiBzdHJpbmc7XG4gIG1lc3NhZ2U6IHN0cmluZztcbn1cblxuLyoqXG4gKiBFc3RhZG8gaW5pY2lhbCBkZSBhdXRlbnRpY2FjacOzbi5cbiAqL1xuZXhwb3J0IGNvbnN0IElOSVRJQUxfQVVUSF9TVEFURTogQXV0aFN0YXRlID0ge1xuICBpc0F1dGhlbnRpY2F0ZWQ6IGZhbHNlLFxuICBpc0xvYWRpbmc6IHRydWUsXG4gIGFjY2Vzc1Rva2VuOiBudWxsLFxuICByZWZyZXNoVG9rZW46IG51bGwsXG4gIHVzZXJJZDogbnVsbCxcbiAgZW1haWw6IG51bGwsXG4gIGFjdGl2ZU9yZzogbnVsbCxcbiAgcm9sZXM6IFtdLFxuICBwZXJtaXNzaW9uczogW10sXG4gIGlzU3VwZXJBZG1pbjogZmFsc2UsXG4gIGlzUHJlbWl1bTogZmFsc2UsXG4gIGV4cGlyZXNBdDogbnVsbCxcbiAgZXJyb3I6IG51bGwsXG59O1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gTUZBXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKiogTcOpdG9kb3MgZGUgTUZBIHNvcG9ydGFkb3MgKi9cbmV4cG9ydCB0eXBlIE1GQU1ldGhvZCA9ICdFTUFJTCcgfCAnU01TJyB8ICdUT1RQJztcblxuLyoqXG4gKiBFc3RhZG8gZGUgTUZBIHBlbmRpZW50ZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBNRkFQZW5kaW5nU3RhdGUge1xuICByZXF1aXJlZDogYm9vbGVhbjtcbiAgbWZhVG9rZW46IHN0cmluZyB8IG51bGw7XG4gIG1ldGhvZDogTUZBTWV0aG9kIHwgbnVsbDtcbn1cblxuLyoqXG4gKiBFc3RhZG8gaW5pY2lhbCBkZSBNRkEuXG4gKi9cbmV4cG9ydCBjb25zdCBJTklUSUFMX01GQV9TVEFURTogTUZBUGVuZGluZ1N0YXRlID0ge1xuICByZXF1aXJlZDogZmFsc2UsXG4gIG1mYVRva2VuOiBudWxsLFxuICBtZXRob2Q6IG51bGwsXG59O1xuXG4vKipcbiAqIFJlc3VsdGFkbyBkZSBzZXR1cCBkZSBNRkEuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTUZBU2V0dXBSZXN1bHQge1xuICBjb2RlU2VudDogYm9vbGVhbjtcbiAgbWVzc2FnZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIEVzdGFkbyBkZSBNRkEgZGVsIHVzdWFyaW8uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTUZBU3RhdHVzIHtcbiAgZW5hYmxlZDogYm9vbGVhbjtcbiAgbWV0aG9kOiBNRkFNZXRob2QgfCBudWxsO1xufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gVE9UUCBNRkEgKEdvb2dsZSBBdXRoZW50aWNhdG9yKVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBSZXNwb25zZSBkZSBzZXR1cCBkZSBUT1RQLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRPVFBTZXR1cFJlc3BvbnNlIHtcbiAgb3BlcmF0aW9uSWQ6IHN0cmluZztcbiAgLyoqIFNlY3JldG8gVE9UUCBlbiBiYXNlMzIgKHBhcmEgZW50cmFkYSBtYW51YWwpICovXG4gIHNlY3JldDogc3RyaW5nO1xuICAvKiogVVJMIHBhcmEgZ2VuZXJhciBRUiBjb2RlIChvdHBhdXRoOi8vLi4uKSAqL1xuICBxckNvZGVVcmw6IHN0cmluZztcbiAgLyoqIEPDs2RpZ29zIGRlIHJlc3BhbGRvIGRlIHVuIHNvbG8gdXNvICovXG4gIGJhY2t1cENvZGVzOiBzdHJpbmdbXTtcbiAgbWVzc2FnZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIFJlcXVlc3QgcGFyYSB2ZXJpZmljYXIgc2V0dXAgZGUgVE9UUC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUT1RQVmVyaWZ5U2V0dXBSZXF1ZXN0IHtcbiAgLyoqIEPDs2RpZ28gVE9UUCBkZSA2IGTDrWdpdG9zICovXG4gIGNvZGU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZXNwb25zZSBkZSB2ZXJpZmljYWNpw7NuIGRlIHNldHVwIFRPVFAuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVE9UUFZlcmlmeVNldHVwUmVzcG9uc2Uge1xuICBvcGVyYXRpb25JZDogc3RyaW5nO1xuICBlbmFibGVkOiBib29sZWFuO1xuICBtZXNzYWdlOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmVxdWVzdCBwYXJhIGRlc2hhYmlsaXRhciBUT1RQLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRPVFBEaXNhYmxlUmVxdWVzdCB7XG4gIHBhc3N3b3JkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmVzcG9uc2UgZGUgZGVzaGFiaWxpdGFyIFRPVFAuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVE9UUERpc2FibGVSZXNwb25zZSB7XG4gIG9wZXJhdGlvbklkOiBzdHJpbmc7XG4gIGRpc2FibGVkOiBib29sZWFuO1xuICBtZXNzYWdlOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmVzcG9uc2UgZGUgcmVnZW5lcmFyIGPDs2RpZ29zIGRlIHJlc3BhbGRvLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlZ2VuZXJhdGVCYWNrdXBDb2Rlc1Jlc3BvbnNlIHtcbiAgb3BlcmF0aW9uSWQ6IHN0cmluZztcbiAgYmFja3VwQ29kZXM6IHN0cmluZ1tdO1xuICBtZXNzYWdlOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmVzcG9uc2UgZGUgY2FudGlkYWQgZGUgY8OzZGlnb3MgZGUgcmVzcGFsZG8uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQmFja3VwQ29kZXNDb3VudFJlc3BvbnNlIHtcbiAgb3BlcmF0aW9uSWQ6IHN0cmluZztcbiAgY291bnQ6IG51bWJlcjtcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFJFUVVFU1RTL1JFU1BPTlNFUyAoYWxpbmVhZG9zIGNvbiBiYWNrZW5kIEF1dGhWMilcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogUmVxdWVzdCBwYXJhIHNpZ251cCAocmVnaXN0cm8pLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNpZ251cFJlcXVlc3Qge1xuICBlbWFpbDogc3RyaW5nO1xuICBwYXNzd29yZDogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIHBob25lPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFJlc3BvbnNlIGRlIHNpZ251cCAocmVnaXN0cm8pLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNpZ251cFJlc3BvbnNlIHtcbiAgb3BlcmF0aW9uSWQ6IHN0cmluZztcbiAgdXNlcklkOiBzdHJpbmc7XG4gIG1lc3NhZ2U6IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZXF1ZXN0IHBhcmEgdmVyaWZpY2FyIGVtYWlsLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFZlcmlmeUVtYWlsUmVxdWVzdCB7XG4gIGVtYWlsOiBzdHJpbmc7XG4gIGNvZGU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZXNwb25zZSBkZSB2ZXJpZmljYWNpw7NuIGRlIGVtYWlsLlxuICogU2kgZXMgZXhpdG9zbywgaW5jbHV5ZSB0b2tlbnMgcGFyYSBhdXRvLWxvZ2luLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFZlcmlmeUVtYWlsUmVzcG9uc2Uge1xuICBvcGVyYXRpb25JZDogc3RyaW5nO1xuICB2ZXJpZmllZDogYm9vbGVhbjtcbiAgYWNjZXNzVG9rZW4/OiBzdHJpbmc7XG4gIHJlZnJlc2hUb2tlbj86IHN0cmluZztcbiAgZmlyZWJhc2VUb2tlbj86IHN0cmluZztcbiAgZXhwaXJlc0luPzogbnVtYmVyO1xuICB0b2tlblR5cGU/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmVxdWVzdCBwYXJhIGFjdGl2YXIgdW5hIGN1ZW50YSBwcmUtYXByb3Zpc2lvbmFkYSBwb3IgdW5hIG9yZ2FuaXphY2nDs25cbiAqIChBRFItMDIzKTogZWwgdXN1YXJpbyBkZWZpbmUgc3UgY29udHJhc2XDsWEgY29uIGVsIHRva2VuIGRlbCBlbmxhY2UgZGUgZW1haWwuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQWN0aXZhdGVBY2NvdW50UmVxdWVzdCB7XG4gIHRva2VuOiBzdHJpbmc7XG4gIG5ld1Bhc3N3b3JkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmVzcG9uc2UgZGUgYWN0aXZhY2nDs24gZGUgY3VlbnRhLiBFbiDDqXhpdG8gaW5jbHV5ZSB0b2tlbnMgZGUgYXV0by1zaWduaW5cbiAqIChtaXNtbyBzaGFwZSBxdWUgdmVyaWZ5LWVtYWlsKSDigJQgZWwgdXN1YXJpbyBxdWVkYSBsb2d1ZWFkbyB0cmFzIGFjdGl2YXIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQWN0aXZhdGVBY2NvdW50UmVzcG9uc2Uge1xuICBvcGVyYXRpb25JZDogc3RyaW5nO1xuICBhY3RpdmF0ZWQ6IGJvb2xlYW47XG4gIGFjY2Vzc1Rva2VuPzogc3RyaW5nO1xuICByZWZyZXNoVG9rZW4/OiBzdHJpbmc7XG4gIGZpcmViYXNlVG9rZW4/OiBzdHJpbmc7XG4gIGV4cGlyZXNJbj86IG51bWJlcjtcbiAgdG9rZW5UeXBlPzogc3RyaW5nO1xuICByb2xlcz86IHN0cmluZ1tdO1xuICBwZXJtaXNzaW9ucz86IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIFJlcXVlc3QgcGFyYSByZWVudmlhciBjw7NkaWdvIGRlIHZlcmlmaWNhY2nDs24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVzZW5kQ29kZVJlcXVlc3Qge1xuICBlbWFpbDogc3RyaW5nO1xuICB0eXBlOiAnRU1BSUxfVkVSSUZZJyB8ICdQQVNTV09SRF9SRVNFVCc7XG59XG5cbi8qKlxuICogUmVzcG9uc2UgZGUgcmVlbnbDrW8gZGUgY8OzZGlnby5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXNlbmRDb2RlUmVzcG9uc2Uge1xuICBvcGVyYXRpb25JZDogc3RyaW5nO1xuICBzZW50OiBib29sZWFuO1xufVxuXG4vKipcbiAqIFJlcXVlc3QgcGFyYSBzaWduaW4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2lnbmluUmVxdWVzdCB7XG4gIGVtYWlsOiBzdHJpbmc7XG4gIHBhc3N3b3JkOiBzdHJpbmc7XG4gIC8qKiBQbGF0YWZvcm1hIGRlbCBkaXNwb3NpdGl2byAocGFyYSBkZXRlY2Npw7NuIGRlIG51ZXZvIGRpc3Bvc2l0aXZvKSAqL1xuICBwbGF0Zm9ybT86IERldmljZVBsYXRmb3JtO1xuICAvKiogTmF2ZWdhZG9yIChzb2xvIHdlYikgKi9cbiAgYnJvd3Nlcj86IHN0cmluZztcbiAgLyoqIFNpc3RlbWEgb3BlcmF0aXZvICovXG4gIG9zPzogc3RyaW5nO1xuICAvKiogTm9tYnJlIGFtaWdhYmxlIGRlbCBkaXNwb3NpdGl2byAqL1xuICBkZXZpY2VOYW1lPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFJlc3BvbnNlIGRlIHNpZ25pbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTaWduaW5SZXNwb25zZSB7XG4gIG9wZXJhdGlvbklkOiBzdHJpbmc7XG4gIGFjY2Vzc1Rva2VuPzogc3RyaW5nO1xuICByZWZyZXNoVG9rZW4/OiBzdHJpbmc7XG4gIGZpcmViYXNlVG9rZW4/OiBzdHJpbmc7XG4gIGV4cGlyZXNJbj86IG51bWJlcjtcbiAgdG9rZW5UeXBlPzogc3RyaW5nO1xuICBtZmFSZXF1aXJlZD86IGJvb2xlYW47XG4gIG1mYVRva2VuPzogc3RyaW5nO1xuICBtZmFNZXRob2Q/OiBNRkFNZXRob2Q7XG4gIHJvbGVzPzogc3RyaW5nW107XG4gIHBlcm1pc3Npb25zPzogc3RyaW5nW107XG4gIC8qKiBJbmRpY2Egc2kgZWwgbG9naW4gZnVlIGRlc2RlIHVuIGRpc3Bvc2l0aXZvIG51ZXZvL25vIHJlY29ub2NpZG8gKi9cbiAgaXNOZXdEZXZpY2U/OiBib29sZWFuO1xuICAvKiogSUQgZGVsIGRpc3Bvc2l0aXZvIHVzYWRvIHBhcmEgZWwgbG9naW4gKi9cbiAgZGV2aWNlSWQ/OiBzdHJpbmc7XG4gIC8qKiBJZGlvbWEgcHJlZmVyaWRvIGRlbCB1c3VhcmlvIChwYXJhIHNpbmNyb25pemFyIGNvbiBpMThuKSAqL1xuICBsYW5ndWFnZT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZXF1ZXN0IHBhcmEgdmVyaWZpY2FyIE1GQS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBNRkFWZXJpZnlSZXF1ZXN0IHtcbiAgbWZhVG9rZW46IHN0cmluZztcbiAgY29kZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIFJlc3BvbnNlIGRlIHZlcmlmaWNhciBNRkEuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTUZBVmVyaWZ5UmVzcG9uc2Uge1xuICBvcGVyYXRpb25JZDogc3RyaW5nO1xuICBhY2Nlc3NUb2tlbjogc3RyaW5nO1xuICByZWZyZXNoVG9rZW46IHN0cmluZztcbiAgZmlyZWJhc2VUb2tlbj86IHN0cmluZztcbiAgZXhwaXJlc0luOiBudW1iZXI7XG4gIHRva2VuVHlwZTogc3RyaW5nO1xuICByb2xlcz86IHN0cmluZ1tdO1xuICBwZXJtaXNzaW9ucz86IHN0cmluZ1tdO1xuICAvKiogSWRpb21hIHByZWZlcmlkbyBkZWwgdXN1YXJpbyAocGFyYSBzaW5jcm9uaXphciBjb24gaTE4bikgKi9cbiAgbGFuZ3VhZ2U/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmVxdWVzdCBwYXJhIHJlZnJlc2NhciB0b2tlbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZWZyZXNoUmVxdWVzdCB7XG4gIHJlZnJlc2hUb2tlbjogc3RyaW5nO1xufVxuXG4vKipcbiAqIFJlc3BvbnNlIGRlIHJlZnJlc2NhciB0b2tlbi5cbiAqIEltcGxlbWVudGEgdG9rZW4gcm90YXRpb246IGNhZGEgcmVmcmVzaCBnZW5lcmEgdW4gbnVldm8gcmVmcmVzaCB0b2tlbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZWZyZXNoUmVzcG9uc2Uge1xuICBvcGVyYXRpb25JZDogc3RyaW5nO1xuICBhY2Nlc3NUb2tlbjogc3RyaW5nO1xuICByZWZyZXNoVG9rZW46IHN0cmluZzsgLy8gVG9rZW4gcm90YXRpb246IG51ZXZvIHJlZnJlc2ggdG9rZW5cbiAgZXhwaXJlc0luOiBudW1iZXI7XG4gIGZpcmViYXNlVG9rZW4/OiBzdHJpbmc7XG4gIHJvbGVzPzogc3RyaW5nW107XG4gIHBlcm1pc3Npb25zPzogc3RyaW5nW107XG59XG5cbi8qKlxuICogUmVxdWVzdCBwYXJhIGxvZ291dC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMb2dvdXRSZXF1ZXN0IHtcbiAgcmVmcmVzaFRva2VuOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmVzcG9uc2UgZGUgbG9nb3V0LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIExvZ291dFJlc3BvbnNlIHtcbiAgb3BlcmF0aW9uSWQ6IHN0cmluZztcbiAgc3VjY2VzczogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBSZXNwb25zZSBkZSBvYnRlbmVyIHBlcm1pc29zLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdldFBlcm1pc3Npb25zUmVzcG9uc2Uge1xuICBvcGVyYXRpb25JZDogc3RyaW5nO1xuICByb2xlczogc3RyaW5nW107XG4gIHBlcm1pc3Npb25zOiBzdHJpbmdbXTtcbiAgaXNTdXBlckFkbWluOiBib29sZWFuO1xufVxuXG4vKipcbiAqIFJlcXVlc3QgcGFyYSBzZXR1cCBkZSBNRkEuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTUZBU2V0dXBSZXF1ZXN0IHtcbiAgbWV0aG9kOiBNRkFNZXRob2Q7XG4gIHBob25lPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFJlc3BvbnNlIGRlIHNldHVwIGRlIE1GQS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBNRkFTZXR1cFJlc3BvbnNlIHtcbiAgb3BlcmF0aW9uSWQ6IHN0cmluZztcbiAgY29kZVNlbnQ6IGJvb2xlYW47XG4gIG1lc3NhZ2U6IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZXF1ZXN0IHBhcmEgY29uZmlybWFyIE1GQS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBNRkFDb25maXJtUmVxdWVzdCB7XG4gIGNvZGU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZXNwb25zZSBkZSBjb25maXJtYXIgTUZBLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE1GQUNvbmZpcm1SZXNwb25zZSB7XG4gIG9wZXJhdGlvbklkOiBzdHJpbmc7XG4gIG1mYUVuYWJsZWQ6IGJvb2xlYW47XG4gIG1ldGhvZDogTUZBTWV0aG9kO1xufVxuXG4vKipcbiAqIFJlcXVlc3QgcGFyYSBkZXNoYWJpbGl0YXIgTUZBLlxuICovXG4vKipcbiAqIEFjZXB0YSBgcGFzc3dvcmRgIChjdWVudGEgY29uIGNvbnRyYXNlw7FhKSBvIGBtZmFDb2RlYCAoY3VlbnRhIE9BdXRoLW9ubHlcbiAqIGNvbiBUT1RQIHF1ZSBwcnVlYmEgcG9zZXNpw7NuIGRlbCBzZWd1bmRvIGZhY3RvcikuIFVubyByZXF1ZXJpZG8uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTUZBRGlzYWJsZVJlcXVlc3Qge1xuICBwYXNzd29yZD86IHN0cmluZztcbiAgbWZhQ29kZT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZXNwb25zZSBkZSBkZXNoYWJpbGl0YXIgTUZBLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE1GQURpc2FibGVSZXNwb25zZSB7XG4gIG9wZXJhdGlvbklkOiBzdHJpbmc7XG4gIG1mYURpc2FibGVkOiBib29sZWFuO1xufVxuXG4vKipcbiAqIFJlcXVlc3QgcGFyYSBpbmljaWFyIHJlY3VwZXJhY2nDs24gZGUgY29udHJhc2XDsWEuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRm9yZ290UGFzc3dvcmRSZXF1ZXN0IHtcbiAgZW1haWw6IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZXNwb25zZSBkZSBmb3Jnb3QgcGFzc3dvcmQgKHNpZW1wcmUgaWd1YWwgcG9yIHNlZ3VyaWRhZCkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRm9yZ290UGFzc3dvcmRSZXNwb25zZSB7XG4gIG9wZXJhdGlvbklkOiBzdHJpbmc7XG4gIG1lc3NhZ2U6IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZXF1ZXN0IHBhcmEgcmVzZXRlYXIgY29udHJhc2XDsWEgY29uIGPDs2RpZ28uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVzZXRQYXNzd29yZFJlcXVlc3Qge1xuICBlbWFpbDogc3RyaW5nO1xuICBjb2RlOiBzdHJpbmc7XG4gIG5ld1Bhc3N3b3JkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmVzcG9uc2UgZGUgcmVzZXQgcGFzc3dvcmQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVzZXRQYXNzd29yZFJlc3BvbnNlIHtcbiAgb3BlcmF0aW9uSWQ6IHN0cmluZztcbiAgc3VjY2VzczogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBSZXF1ZXN0IHBhcmEgaW5pY2lhciByZXNldCBkZSBNRkEgcG9yIGVtYWlsICh1c2VyIHBlcmRpw7Mgc3UgMsK6IGZhY3RvcikuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTUZBUmVzZXRSZXF1ZXN0UmVxdWVzdCB7XG4gIGVtYWlsOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmVzcG9uc2UgZGUgTUZBIHJlc2V0IHJlcXVlc3QgKHNpZW1wcmUgaWd1YWwgcG9yIHNlZ3VyaWRhZCDigJQgYW50aS1lbnVtZXJhY2nDs24pLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE1GQVJlc2V0UmVxdWVzdFJlc3BvbnNlIHtcbiAgb3BlcmF0aW9uSWQ6IHN0cmluZztcbiAgbWVzc2FnZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIFJlcXVlc3QgcGFyYSBjb25maXJtYXIgZWwgcmVzZXQgZGUgTUZBIGNvbiBlbCBjw7NkaWdvIHJlY2liaWRvIHBvciBlbWFpbC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBNRkFSZXNldENvbmZpcm1SZXF1ZXN0IHtcbiAgZW1haWw6IHN0cmluZztcbiAgY29kZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIFJlc3BvbnNlIGRlIE1GQSByZXNldCBjb25maXJtLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE1GQVJlc2V0Q29uZmlybVJlc3BvbnNlIHtcbiAgb3BlcmF0aW9uSWQ6IHN0cmluZztcbiAgc3VjY2VzczogYm9vbGVhbjtcbiAgbWVzc2FnZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIFJlcXVlc3QgcGFyYSBjYW1iaWFyIGNvbnRyYXNlw7FhICh1c3VhcmlvIGF1dGVudGljYWRvKS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDaGFuZ2VQYXNzd29yZFJlcXVlc3Qge1xuICBjdXJyZW50UGFzc3dvcmQ6IHN0cmluZztcbiAgbmV3UGFzc3dvcmQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZXNwb25zZSBkZSBjYW1iaW8gZGUgY29udHJhc2XDsWEuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2hhbmdlUGFzc3dvcmRSZXNwb25zZSB7XG4gIG9wZXJhdGlvbklkOiBzdHJpbmc7XG4gIHN1Y2Nlc3M6IGJvb2xlYW47XG59XG5cbi8qKlxuICogUmVxdWVzdCBwYXJhIGVsaW1pbmFyIGN1ZW50YS5cbiAqIFVzdWFyaW9zIGNvbiBjb250cmFzZcOxYTogZW52aWFyIGBwYXNzd29yZGAuXG4gKiBVc3VhcmlvcyBPQXV0aCBzaW4gY29udHJhc2XDsWE6IGVudmlhciBgY29kZWAgKG9idGVuaWRvIHZpYSBzZW5kRGVsZXRlQWNjb3VudENvZGUpLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERlbGV0ZUFjY291bnRSZXF1ZXN0IHtcbiAgcGFzc3dvcmQ/OiBzdHJpbmc7XG4gIGNvZGU/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmVzcG9uc2UgZGUgZW52aWFyIGPDs2RpZ28gZGUgY29uZmlybWFjacOzbiBkZSBlbGltaW5hY2nDs24gZGUgY3VlbnRhLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNlbmREZWxldGVBY2NvdW50Q29kZVJlc3BvbnNlIHtcbiAgb3BlcmF0aW9uSWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZXNwb25zZSBkZSBlbGltaW5hciBjdWVudGEuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGVsZXRlQWNjb3VudFJlc3BvbnNlIHtcbiAgb3BlcmF0aW9uSWQ6IHN0cmluZztcbiAgZGVsZXRlZDogYm9vbGVhbjtcbiAgbWVzc2FnZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIFJlc3BvbnNlIGRlIG9idGVuZXIgcGVyZmlsIGRlbCB1c3VhcmlvLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdldFByb2ZpbGVSZXNwb25zZSB7XG4gIG9wZXJhdGlvbklkOiBzdHJpbmc7XG4gIHVzZXJJZDogc3RyaW5nO1xuICBlbWFpbDogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIHBob25lPzogc3RyaW5nO1xuICAvKiogVXNlcm5hbWUvaGFuZGxlIGRlbCB1c3VhcmlvICovXG4gIGhhbmRsZT86IHN0cmluZztcbiAgLyoqIFVSTCBkZWwgYXZhdGFyIGRlbCB1c3VhcmlvICovXG4gIGF2YXRhclVybD86IHN0cmluZztcbiAgZW1haWxWZXJpZmllZDogYm9vbGVhbjtcbiAgcGhvbmVWZXJpZmllZDogYm9vbGVhbjtcbiAgbWZhRW5hYmxlZDogYm9vbGVhbjtcbiAgbWZhTWV0aG9kPzogTUZBTWV0aG9kO1xuICAvKiogVHJ1ZSBzaSBsYSBjdWVudGEgdGllbmUgY29udHJhc2XDsWEgc2V0ZWFkYSAoZmFsc2UgcGFyYSBPQXV0aC1vbmx5IHNpbiBwYXNzd29yZCkuICovXG4gIGhhc1Bhc3N3b3JkPzogYm9vbGVhbjtcbiAgY3JlYXRlZEF0OiBzdHJpbmc7XG4gIHVwZGF0ZWRBdDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFJlcXVlc3QgcGFyYSBhY3R1YWxpemFyIHBlcmZpbC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBVcGRhdGVQcm9maWxlUmVxdWVzdCB7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIHBob25lPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFJlc3BvbnNlIGRlIGFjdHVhbGl6YXIgcGVyZmlsLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFVwZGF0ZVByb2ZpbGVSZXNwb25zZSB7XG4gIG9wZXJhdGlvbklkOiBzdHJpbmc7XG4gIHVwZGF0ZWQ6IGJvb2xlYW47XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBVUERBVEUgQVZBVEFSXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIFJlcXVlc3QgcGFyYSBhY3R1YWxpemFyIGF2YXRhciBkZWwgdXN1YXJpby5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBVcGRhdGVBdmF0YXJSZXF1ZXN0IHtcbiAgLyoqIFVSTCBkZWwgYXZhdGFyIGVuIEZpcmViYXNlIFN0b3JhZ2UgKi9cbiAgYXZhdGFyVXJsOiBzdHJpbmc7XG4gIC8qKiBVUkwgZGVsIHRodW1ibmFpbCAob3BjaW9uYWwpICovXG4gIGF2YXRhclRodW1ibmFpbD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZXNwb25zZSBkZSBhY3R1YWxpemFyIGF2YXRhci5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBVcGRhdGVBdmF0YXJSZXNwb25zZSB7XG4gIG9wZXJhdGlvbklkOiBzdHJpbmc7XG4gIGF2YXRhclVybDogc3RyaW5nO1xuICBhdmF0YXJUaHVtYm5haWw/OiBzdHJpbmc7XG4gIHVwZGF0ZWRBdDogc3RyaW5nO1xufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gRVZFTlRPUyBERSBTSU5DUk9OSVpBQ0nDk05cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBTV0lUQ0ggT1JHQU5JWkFUSU9OXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIFJlcXVlc3QgcGFyYSBjYW1iaWFyIGRlIG9yZ2FuaXphY2nDs24gYWN0aXZhLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFN3aXRjaE9yZ1JlcXVlc3Qge1xuICBvcmdhbml6YXRpb25JZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFJlc3BvbnNlIGRlIGNhbWJpbyBkZSBvcmdhbml6YWNpw7NuLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFN3aXRjaE9yZ1Jlc3BvbnNlIHtcbiAgb3BlcmF0aW9uSWQ6IHN0cmluZztcbiAgZmlyZWJhc2VUb2tlbjogc3RyaW5nO1xuICBhY3RpdmVPcmc6IHN0cmluZztcbiAgLyoqIE51ZXZvIEpXVCBjb24gYWN0aXZlT3JnIGFjdHVhbGl6YWRvLiBFbCBGRSBsbyBhbG1hY2VuYSBwYXJhIHF1ZSBlbFxuICAgKiAgYm9vdHN0cmFwIHBvc3QtcmVmcmVzaCB1c2UgbGEgb3JnIGNvcnJlY3RhIGVuIHZleiBkZWwgSldUIGNhY2hlYWRvLiAqL1xuICBhY2Nlc3NUb2tlbj86IHN0cmluZztcbiAgZXhwaXJlc0luPzogbnVtYmVyO1xufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gRVZFTlRPUyBERSBTSU5DUk9OSVpBQ0nDk05cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKiBUaXBvcyBkZSBldmVudG9zIGRlIHNpbmNyb25pemFjacOzbiBlbnRyZSBwZXN0YcOxYXMgKi9cbmV4cG9ydCB0eXBlIEF1dGhTeW5jRXZlbnRUeXBlID1cbiAgfCAnTE9HSU4nXG4gIHwgJ0xPR09VVCdcbiAgfCAnVE9LRU5fUkVGUkVTSCdcbiAgfCAnUEVSTUlTU0lPTlNfVVBEQVRFJ1xuICB8ICdPUkdfU1dJVENIJztcblxuLyoqXG4gKiBFdmVudG8gZGUgc2luY3Jvbml6YWNpw7NuIGVudHJlIHBlc3Rhw7Fhcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBdXRoU3luY0V2ZW50IHtcbiAgdHlwZTogQXV0aFN5bmNFdmVudFR5cGU7XG4gIHRpbWVzdGFtcDogbnVtYmVyO1xuICBwYXlsb2FkPzoge1xuICAgIGFjY2Vzc1Rva2VuPzogc3RyaW5nO1xuICAgIHJlZnJlc2hUb2tlbj86IHN0cmluZzsgLy8gVG9rZW4gcm90YXRpb24gc3VwcG9ydFxuICAgIGV4cGlyZXNBdD86IG51bWJlcjtcbiAgICBhY3RpdmVPcmc/OiBzdHJpbmc7XG4gIH07XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBKV1QgQ0xBSU1TXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIENsYWltcyBkZWwgSldUIGRlIGFjY2Vzby5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBKV1RDbGFpbXMge1xuICAvKiogVXNlciBJRCAqL1xuICB1aWQ6IHN0cmluZztcbiAgLyoqIEVtYWlsICovXG4gIGVtYWlsOiBzdHJpbmc7XG4gIC8qKiBTZXNzaW9uIElEICovXG4gIHNpZD86IHN0cmluZztcbiAgLyoqIFVzdWFyaW8gdGllbmUgc3VzY3JpcGNpw7NuIHByZW1pdW0gYWN0aXZhICovXG4gIHByZW1pdW0/OiBib29sZWFuO1xuICAvKiogQWN0aXZlIG9yZ2FuaXphdGlvbiBJRCAoSldUIGNsYWltIFwib3JnXCIpICovXG4gIG9yZz86IHN0cmluZztcbiAgLyoqIElzc3VlZCBhdCAqL1xuICBpYXQ6IG51bWJlcjtcbiAgLyoqIEV4cGlyYXRpb24gKi9cbiAgZXhwOiBudW1iZXI7XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBTVE9SQUdFXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIERhdG9zIHBlcnNpc3RpZG9zIGVuIHN0b3JhZ2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3RvcmVkQXV0aFN0YXRlIHtcbiAgYWNjZXNzVG9rZW46IHN0cmluZztcbiAgcmVmcmVzaFRva2VuOiBzdHJpbmc7XG4gIHJvbGVzOiBzdHJpbmdbXTtcbiAgcGVybWlzc2lvbnM6IHN0cmluZ1tdO1xuICBpc1N1cGVyQWRtaW46IGJvb2xlYW47XG4gIGlzUHJlbWl1bT86IGJvb2xlYW47XG4gIGV4cGlyZXNBdD86IG51bWJlcjtcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIERFVklDRSBSRUdJU1RSQVRJT04gKFB1c2ggTm90aWZpY2F0aW9ucylcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogUGxhdGFmb3JtYXMgc29wb3J0YWRhcyBwYXJhIHB1c2ggbm90aWZpY2F0aW9ucy5cbiAqL1xuZXhwb3J0IHR5cGUgRGV2aWNlUGxhdGZvcm0gPSAnd2ViJyB8ICdpb3MnIHwgJ2FuZHJvaWQnO1xuXG4vKipcbiAqIFJlcXVlc3QgcGFyYSByZWdpc3RyYXIgdW4gZGlzcG9zaXRpdm8uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVnaXN0ZXJEZXZpY2VSZXF1ZXN0IHtcbiAgLyoqIEZDTSB0b2tlbiBkZWwgZGlzcG9zaXRpdm8gKi9cbiAgdG9rZW46IHN0cmluZztcbiAgLyoqIFBsYXRhZm9ybWEgZGVsIGRpc3Bvc2l0aXZvICovXG4gIHBsYXRmb3JtOiBEZXZpY2VQbGF0Zm9ybTtcbiAgLyoqIE5hdmVnYWRvciAoc29sbyB3ZWIpICovXG4gIGJyb3dzZXI/OiBzdHJpbmc7XG4gIC8qKiBTaXN0ZW1hIG9wZXJhdGl2byAqL1xuICBvcz86IHN0cmluZztcbiAgLyoqIFZlcnNpw7NuIGRlIGxhIGFwbGljYWNpw7NuICovXG4gIGFwcFZlcnNpb24/OiBzdHJpbmc7XG4gIC8qKiBOb21icmUgYW1pZ2FibGUgZGVsIGRpc3Bvc2l0aXZvICovXG4gIG5hbWU/OiBzdHJpbmc7XG4gIC8qKiBNZXRhZGF0YSBhZGljaW9uYWwgKi9cbiAgbWV0YWRhdGE/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xufVxuXG4vKipcbiAqIFJlc3BvbnNlIGRlIHJlZ2lzdHJvIGRlIGRpc3Bvc2l0aXZvLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlZ2lzdGVyRGV2aWNlUmVzcG9uc2Uge1xuICBvcGVyYXRpb25JZDogc3RyaW5nO1xuICBkZXZpY2U6IHtcbiAgICBkZXZpY2VJZDogc3RyaW5nO1xuICAgIHRva2VuOiBzdHJpbmc7XG4gICAgcGxhdGZvcm06IERldmljZVBsYXRmb3JtO1xuICAgIGJyb3dzZXI/OiBzdHJpbmc7XG4gICAgb3M/OiBzdHJpbmc7XG4gICAgbGFzdEFjdGl2ZTogc3RyaW5nO1xuICAgIGNyZWF0ZWRBdDogc3RyaW5nO1xuICB9O1xuICAvKiogdHJ1ZSBzaSBlcyB1biBudWV2byBkaXNwb3NpdGl2bywgZmFsc2Ugc2kgc2UgYWN0dWFsaXrDsyB1bm8gZXhpc3RlbnRlICovXG4gIGlzTmV3OiBib29sZWFuO1xufVxuXG4vKipcbiAqIFJlc3VsdGFkbyBkZSBoYWJpbGl0YXIgbm90aWZpY2FjaW9uZXMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRW5hYmxlTm90aWZpY2F0aW9uc1Jlc3VsdCB7XG4gIC8qKiBTaSBzZSBvdG9yZ2Fyb24gbG9zIHBlcm1pc29zICovXG4gIGdyYW50ZWQ6IGJvb2xlYW47XG4gIC8qKiBGQ00gdG9rZW4gKHNvbG8gc2kgZ3JhbnRlZD10cnVlKSAqL1xuICB0b2tlbj86IHN0cmluZztcbiAgLyoqIFNpIGVsIGRpc3Bvc2l0aXZvIGZ1ZSByZWdpc3RyYWRvIGVuIGVsIGJhY2tlbmQgKi9cbiAgcmVnaXN0ZXJlZD86IGJvb2xlYW47XG59XG5cbi8qKlxuICogRXN0YWRvIGRlIHBlcm1pc29zIGRlIG5vdGlmaWNhY2nDs24uXG4gKi9cbmV4cG9ydCB0eXBlIE5vdGlmaWNhdGlvblBlcm1pc3Npb25TdGF0ZSA9ICdncmFudGVkJyB8ICdkZW5pZWQnIHwgJ2RlZmF1bHQnIHwgJ3Vuc3VwcG9ydGVkJztcblxuLyoqXG4gKiBSZXN1bHRhZG8gZGVsIHJlZ2lzdHJvIG1hbnVhbCBkZSBkaXNwb3NpdGl2by5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZWdpc3RlckRldmljZVJlc3VsdCB7XG4gIC8qKiBTaSBlbCBkaXNwb3NpdGl2byBmdWUgcmVnaXN0cmFkbyBleGl0b3NhbWVudGUgKi9cbiAgcmVnaXN0ZXJlZDogYm9vbGVhbjtcbiAgLyoqIElEIGRlbCBkaXNwb3NpdGl2byAoc29sbyBzaSByZWdpc3RlcmVkPXRydWUpICovXG4gIGRldmljZUlkPzogc3RyaW5nO1xuICAvKiogRkNNIHRva2VuIHVzYWRvIHBhcmEgZWwgcmVnaXN0cm8gKi9cbiAgdG9rZW4/OiBzdHJpbmc7XG4gIC8qKiBNZW5zYWplIGRlIGVycm9yIChzb2xvIHNpIHJlZ2lzdGVyZWQ9ZmFsc2UpICovXG4gIGVycm9yPzogc3RyaW5nO1xufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gREVWSUNFIE1BTkFHRU1FTlQgKERldGVjY2nDs24gZGUgZGlzcG9zaXRpdm9zIG51ZXZvcylcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogRXN0YWRvcyBwb3NpYmxlcyBkZSB1biBkaXNwb3NpdGl2by5cbiAqL1xuZXhwb3J0IHR5cGUgRGV2aWNlU3RhdHVzID0gJ2FjdGl2ZScgfCAncGVuZGluZ19hcHByb3ZhbCcgfCAnYmxvY2tlZCc7XG5cbi8qKlxuICogSW5mb3JtYWNpw7NuIGNvbXBsZXRhIGRlIHVuIGRpc3Bvc2l0aXZvIHJlZ2lzdHJhZG8uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGV2aWNlSW5mbyB7XG4gIC8qKiBJRCDDum5pY28gZGVsIGRpc3Bvc2l0aXZvICovXG4gIGRldmljZUlkOiBzdHJpbmc7XG4gIC8qKiBQbGF0YWZvcm1hIGRlbCBkaXNwb3NpdGl2byAqL1xuICBwbGF0Zm9ybTogRGV2aWNlUGxhdGZvcm07XG4gIC8qKiBOYXZlZ2Fkb3IgKHNvbG8gd2ViKSAqL1xuICBicm93c2VyPzogc3RyaW5nO1xuICAvKiogU2lzdGVtYSBvcGVyYXRpdm8gKi9cbiAgb3M/OiBzdHJpbmc7XG4gIC8qKiBOb21icmUgYW1pZ2FibGUgZGVsIGRpc3Bvc2l0aXZvICovXG4gIG5hbWU/OiBzdHJpbmc7XG4gIC8qKiBFc3RhZG8gYWN0dWFsIGRlbCBkaXNwb3NpdGl2byAqL1xuICBzdGF0dXM6IERldmljZVN0YXR1cztcbiAgLyoqIERpcmVjY2nDs24gSVAgZGVsIMO6bHRpbW8gYWNjZXNvICovXG4gIGlwQWRkcmVzcz86IHN0cmluZztcbiAgLyoqIFViaWNhY2nDs24gZ2VvZ3LDoWZpY2EgYXByb3hpbWFkYSAqL1xuICBsb2NhdGlvbj86IHN0cmluZztcbiAgLyoqIMOabHRpbWEgYWN0aXZpZGFkICovXG4gIGxhc3RBY3RpdmU6IHN0cmluZztcbiAgLyoqIEZlY2hhIGRlIGNyZWFjacOzbi9yZWdpc3RybyAqL1xuICBjcmVhdGVkQXQ6IHN0cmluZztcbiAgLyoqIEZlY2hhIGRlIGFwcm9iYWNpw7NuIChzaSBhcGxpY2EpICovXG4gIGFwcHJvdmVkQXQ/OiBzdHJpbmc7XG4gIC8qKiBGZWNoYSBkZSBibG9xdWVvIChzaSBhcGxpY2EpICovXG4gIGJsb2NrZWRBdD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZXNwb25zZSBkZSBsaXN0YXIgZGlzcG9zaXRpdm9zIGRlbCB1c3VhcmlvLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIExpc3REZXZpY2VzUmVzcG9uc2Uge1xuICBvcGVyYXRpb25JZDogc3RyaW5nO1xuICBkZXZpY2VzOiBEZXZpY2VJbmZvW107XG59XG5cbi8qKlxuICogUmVzcG9uc2UgZGUgYWNjacOzbiBzb2JyZSBkaXNwb3NpdGl2byAoYmxvY2svYXBwcm92ZS9kZWxldGUpLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERldmljZUFjdGlvblJlc3VsdCB7XG4gIG9wZXJhdGlvbklkOiBzdHJpbmc7XG4gIHN1Y2Nlc3M6IGJvb2xlYW47XG4gIG1lc3NhZ2U6IHN0cmluZztcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFNFU1NJT04gTUFOQUdFTUVOVCAoR2VzdGnDs24gZGUgc2VzaW9uZXMgYWN0aXZhcylcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogSW5mb3JtYWNpw7NuIGRlIHVuYSBzZXNpw7NuIGFjdGl2YS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTZXNzaW9uSW5mbyB7XG4gIC8qKiBJRCDDum5pY28gZGUgbGEgc2VzacOzbiAqL1xuICBzZXNzaW9uSWQ6IHN0cmluZztcbiAgLyoqIElEIGRlbCBkaXNwb3NpdGl2byBhc29jaWFkbyAoc2kgZXhpc3RlKSAqL1xuICBkZXZpY2VJZD86IHN0cmluZztcbiAgLyoqIEluZm9ybWFjacOzbiBkZWwgZGlzcG9zaXRpdm8gKFVzZXItQWdlbnQpICovXG4gIGRldmljZUluZm8/OiBzdHJpbmc7XG4gIC8qKiBEaXJlY2Npw7NuIElQIGRlIGxhIHNlc2nDs24gKi9cbiAgaXA/OiBzdHJpbmc7XG4gIC8qKiBVYmljYWNpw7NuIGdlb2dyw6FmaWNhIGFwcm94aW1hZGEgKi9cbiAgbG9jYXRpb24/OiBzdHJpbmc7XG4gIC8qKiBGZWNoYSBkZSBjcmVhY2nDs24gZGUgbGEgc2VzacOzbiAqL1xuICBjcmVhdGVkQXQ6IHN0cmluZztcbiAgLyoqIEZlY2hhIGRlIGV4cGlyYWNpw7NuIGRlIGxhIHNlc2nDs24gKi9cbiAgZXhwaXJlc0F0OiBzdHJpbmc7XG4gIC8qKiBJbmRpY2Egc2kgZXMgbGEgc2VzacOzbiBhY3R1YWwgZGVsIHVzdWFyaW8gKi9cbiAgaXNDdXJyZW50OiBib29sZWFuO1xufVxuXG4vKipcbiAqIFJlc3BvbnNlIGRlIGxpc3RhciBzZXNpb25lcyBhY3RpdmFzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIExpc3RTZXNzaW9uc1Jlc3BvbnNlIHtcbiAgb3BlcmF0aW9uSWQ6IHN0cmluZztcbiAgc2Vzc2lvbnM6IFNlc3Npb25JbmZvW107XG59XG5cbi8qKlxuICogUmVzcG9uc2UgZGUgcmV2b2NhciBzZXNpw7NuKGVzKS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXZva2VTZXNzaW9uc1Jlc3BvbnNlIHtcbiAgb3BlcmF0aW9uSWQ6IHN0cmluZztcbiAgc3VjY2VzczogYm9vbGVhbjtcbiAgLyoqIE7Dum1lcm8gZGUgc2VzaW9uZXMgcmV2b2NhZGFzICovXG4gIHNlc3Npb25zUmV2b2tlZDogbnVtYmVyO1xufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gREVWSUNFIEFDVElPTiAoQWNjaW9uZXMgZGVzZGUgZW1haWwgZGUgYWxlcnRhKVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBSZXF1ZXN0IHBhcmEgZWplY3V0YXIgYWNjacOzbiBkZSBkaXNwb3NpdGl2byBkZXNkZSBlbWFpbC5cbiAqIEVsIHRva2VuIHZpZW5lIGVuIGxhIFVSTCBkZWwgZW1haWwgZGUgYWxlcnRhLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERldmljZUFjdGlvblJlcXVlc3Qge1xuICAvKiogVG9rZW4gSldUIGRlIGFjY2nDs24gKDI0aCwgdW4gc29sbyB1c28pICovXG4gIHRva2VuOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmVzcG9uc2UgZGUgZWplY3V0YXIgYWNjacOzbiBkZSBkaXNwb3NpdGl2by5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEZXZpY2VBY3Rpb25SZXNwb25zZSB7XG4gIG9wZXJhdGlvbklkOiBzdHJpbmc7XG4gIC8qKiBTaSBsYSBhY2Npw7NuIGZ1ZSBlamVjdXRhZGEgZXhpdG9zYW1lbnRlICovXG4gIHN1Y2Nlc3M6IGJvb2xlYW47XG4gIC8qKiBBY2Npw7NuIGVqZWN1dGFkYSAocmVmdXNlLCBhcHByb3ZlLCBibG9jaykgKi9cbiAgYWN0aW9uOiBzdHJpbmc7XG4gIC8qKiBJRCBkZWwgZGlzcG9zaXRpdm8gYWZlY3RhZG8gKi9cbiAgZGV2aWNlSWQ6IHN0cmluZztcbiAgLyoqIE7Dum1lcm8gZGUgc2VzaW9uZXMgcmV2b2NhZGFzIChzaSBhY3Rpb249cmVmdXNlL2Jsb2NrKSAqL1xuICBzZXNzaW9uc1Jldm9rZWQ/OiBudW1iZXI7XG4gIC8qKiBNZW5zYWplIGRlc2NyaXB0aXZvICovXG4gIG1lc3NhZ2U6IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZXNwb25zZSBkZSB2YWxpZGFyIHRva2VuIGRlIGFjY2nDs24gKHNpbiBlamVjdXRhcikuXG4gKiBVc2FkbyBwYXJhIG1vc3RyYXIgY29uZmlybWFjacOzbiBhbCB1c3VhcmlvIGFudGVzIGRlIGVqZWN1dGFyLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFZhbGlkYXRlQWN0aW9uUmVzcG9uc2Uge1xuICBvcGVyYXRpb25JZDogc3RyaW5nO1xuICAvKiogU2kgZWwgdG9rZW4gZXMgdsOhbGlkbyAqL1xuICB2YWxpZDogYm9vbGVhbjtcbiAgLyoqIFRpcG8gZGUgYWNjacOzbiAoZGV2aWNlOnJlZnVzZSwgZGV2aWNlOmFwcHJvdmUsIGV0Yy4pICovXG4gIGFjdGlvblR5cGU/OiBzdHJpbmc7XG4gIC8qKiBUaXBvIGRlIHJlY3Vyc28gb2JqZXRpdm8gKGRldmljZSwgZG9jdW1lbnQsIGV0Yy4pICovXG4gIHRhcmdldFR5cGU/OiBzdHJpbmc7XG4gIC8qKiBJRCBkZWwgcmVjdXJzbyBvYmpldGl2byAqL1xuICB0YXJnZXRJZD86IHN0cmluZztcbiAgLyoqIE1lbnNhamUgZGUgZXJyb3IgKHNpIHZhbGlkPWZhbHNlKSAqL1xuICBtZXNzYWdlPzogc3RyaW5nO1xufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gT0FVVEggKExvZ2luIHNvY2lhbClcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogUHJvdmVlZG9yZXMgT0F1dGggc29wb3J0YWRvcy5cbiAqL1xuZXhwb3J0IHR5cGUgT0F1dGhQcm92aWRlciA9ICdnb29nbGUnIHwgJ2FwcGxlJyB8ICdtaWNyb3NvZnQnO1xuXG4vKipcbiAqIFJlc3VsdGFkbyBleGl0b3NvIGRlIGZsdWpvIE9BdXRoLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE9BdXRoUmVzdWx0IHtcbiAgLyoqIFRva2VuIGRlIGFjY2VzbyBKV1QgKi9cbiAgYWNjZXNzVG9rZW46IHN0cmluZztcbiAgLyoqIFRva2VuIGRlIHJlZnJlc2NvICovXG4gIHJlZnJlc2hUb2tlbjogc3RyaW5nO1xuICAvKiogVG9rZW4gZGUgRmlyZWJhc2UgKHNpIGVzdMOhIGhhYmlsaXRhZG8pICovXG4gIGZpcmViYXNlVG9rZW4/OiBzdHJpbmc7XG4gIC8qKiBUaWVtcG8gZGUgZXhwaXJhY2nDs24gZW4gc2VndW5kb3MgKi9cbiAgZXhwaXJlc0luOiBudW1iZXI7XG4gIC8qKiBSb2xlcyBkZWwgdXN1YXJpbyAqL1xuICByb2xlcz86IHN0cmluZ1tdO1xuICAvKiogUGVybWlzb3MgZGVsIHVzdWFyaW8gKi9cbiAgcGVybWlzc2lvbnM/OiBzdHJpbmdbXTtcbiAgLyoqIEluZGljYSBzaSBlcyB1biB1c3VhcmlvIG51ZXZvIChyZWNpw6luIGNyZWFkbykgKi9cbiAgaXNOZXdVc2VyPzogYm9vbGVhbjtcbiAgLyoqIEluZGljYSBzaSBsYSBjdWVudGEgZnVlIHZpbmN1bGFkYSBhIHVzdWFyaW8gZXhpc3RlbnRlICovXG4gIGxpbmtlZD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBgdHJ1ZWAgc2kgZWwgYmFja2VuZCBleGlnZSB2ZXJpZmljYWNpw7NuIE1GQSB0cmFzIGVsIE9BdXRoLiBFbiBlc2UgY2Fzb1xuICAgKiBOTyB2aWVuZW4gYGFjY2Vzc1Rva2VuYC9gcmVmcmVzaFRva2VuYCDigJQgZWwgZmx1am8gY29udGluw7phIGNvbiBgbWZhVG9rZW5gLlxuICAgKi9cbiAgbWZhUmVxdWlyZWQ/OiBib29sZWFuO1xuICAvKiogVG9rZW4gdGVtcG9yYWwgcGFyYSBlbCBjaGFsbGVuZ2UgTUZBIChwcmVzZW50ZSBzaSBgbWZhUmVxdWlyZWRgKS4gKi9cbiAgbWZhVG9rZW4/OiBzdHJpbmc7XG4gIC8qKiBNw6l0b2RvIE1GQSBjb25maWd1cmFkbyBwb3IgZWwgdXN1YXJpbyAocHJlc2VudGUgc2kgYG1mYVJlcXVpcmVkYCkuICovXG4gIG1mYU1ldGhvZD86IE1GQU1ldGhvZDtcbn1cblxuLyoqXG4gKiBFcnJvciBkZSBPQXV0aC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPQXV0aEVycm9yIHtcbiAgLyoqIEPDs2RpZ28gZGUgZXJyb3IgKi9cbiAgY29kZTogc3RyaW5nO1xuICAvKiogTWVuc2FqZSBkZXNjcmlwdGl2byAqL1xuICBtZXNzYWdlOiBzdHJpbmc7XG59XG5cbi8qKlxuICogRGF0b3MgZW52aWFkb3MgZGVzZGUgcG9wdXAgY2FsbGJhY2sgdmlhIHBvc3RNZXNzYWdlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE9BdXRoQ2FsbGJhY2tEYXRhIHtcbiAgLyoqIFRpcG8gZGUgbWVuc2FqZSAqL1xuICB0eXBlOiAnb2F1dGgtY2FsbGJhY2snO1xuICAvKiogVG9rZW5zIChzaSDDqXhpdG8pICovXG4gIHRva2Vucz86IE9BdXRoUmVzdWx0O1xuICAvKiogRXJyb3IgKHNpIGZhbGzDsykgKi9cbiAgZXJyb3I/OiBPQXV0aEVycm9yO1xuICAvKipcbiAgICogTm9uY2UgZGVsIG9wZW5lciAoTS0wNykuIEVsIHBvcHVwIGxvIHJlY2liZSBkZWwgYmFja2VuZCAocm91bmQtdHJpcCBwb3IgZWxcbiAgICogT0F1dGhTdGF0ZSBmaXJtYWRvKSB5IGxvIHJlZW52w61hOyBlbCBvcGVuZXIgbG8gdmVyaWZpY2EgY29udHJhIGVsIHF1ZSBnZW5lcsOzXG4gICAqIGVuIG1lbW9yaWEg4oaSIHJlY2hhemEgdW4gb2F1dGhfY2FsbGJhY2tfZGF0YSBmb3JqYWRvIGVuIGxvY2FsU3RvcmFnZSBwb3IgWFNTLlxuICAgKi9cbiAgbm9uY2U/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvdmVlZG9yIE9BdXRoIHZpbmN1bGFkbyBhbCB1c3VhcmlvLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIExpbmtlZFByb3ZpZGVyIHtcbiAgLyoqIE5vbWJyZSBkZWwgcHJvdmVlZG9yICovXG4gIHByb3ZpZGVyOiBPQXV0aFByb3ZpZGVyO1xuICAvKiogRW1haWwgYXNvY2lhZG8gYWwgcHJvdmVlZG9yICovXG4gIGVtYWlsOiBzdHJpbmc7XG4gIC8qKiBOb21icmUgZGVsIHVzdWFyaW8gZW4gZWwgcHJvdmVlZG9yICovXG4gIG5hbWU/OiBzdHJpbmc7XG4gIC8qKiBVUkwgZGUgaW1hZ2VuIGRlIHBlcmZpbCAqL1xuICBwaWN0dXJlPzogc3RyaW5nO1xuICAvKiogRmVjaGEgZGUgdmluY3VsYWNpw7NuICovXG4gIGxpbmtlZEF0OiBzdHJpbmc7XG4gIC8qKiDDmmx0aW1hIHZleiBxdWUgc2UgdXPDsyBwYXJhIGxvZ2luICovXG4gIGxhc3RVc2VkQXQ/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmVzcG9uc2UgZGUgdmVyaWZpY2FyIHNpIHRpZW5lIGNvbnRyYXNlw7FhLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEhhc1Bhc3N3b3JkUmVzcG9uc2Uge1xuICBvcGVyYXRpb25JZDogc3RyaW5nO1xuICBoYXNQYXNzd29yZDogYm9vbGVhbjtcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEhBTkRMRSAoVXNlcm5hbWUpXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIFJlcXVlc3QgcGFyYSBhY3R1YWxpemFyIGhhbmRsZSAoQHVzZXJuYW1lKS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBVcGRhdGVIYW5kbGVSZXF1ZXN0IHtcbiAgaGFuZGxlOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmVzcG9uc2UgZGUgYWN0dWFsaXphciBoYW5kbGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVXBkYXRlSGFuZGxlUmVzcG9uc2Uge1xuICBvcGVyYXRpb25JZDogc3RyaW5nO1xuICBoYW5kbGU6IHN0cmluZztcbiAgdXBkYXRlZDogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBSZXF1ZXN0IHBhcmEgdmVyaWZpY2FyIGRpc3BvbmliaWxpZGFkIGRlIGhhbmRsZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDaGVja0hhbmRsZVJlcXVlc3Qge1xuICBoYW5kbGU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZXNwb25zZSBkZSB2ZXJpZmljYXIgZGlzcG9uaWJpbGlkYWQgZGUgaGFuZGxlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENoZWNrSGFuZGxlUmVzcG9uc2Uge1xuICBvcGVyYXRpb25JZDogc3RyaW5nO1xuICBoYW5kbGU6IHN0cmluZztcbiAgYXZhaWxhYmxlOiBib29sZWFuO1xufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gTElOS0VEIFBST1ZJREVSUyAoT0F1dGgpXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIFJlc3BvbnNlIGRlIG9idGVuZXIgcHJvdmVlZG9yZXMgT0F1dGggdmluY3VsYWRvcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHZXRMaW5rZWRQcm92aWRlcnNSZXNwb25zZSB7XG4gIG9wZXJhdGlvbklkOiBzdHJpbmc7XG4gIHByb3ZpZGVyczogTGlua2VkUHJvdmlkZXJbXTtcbn1cblxuLyoqXG4gKiBSZXF1ZXN0IHBhcmEgZGVzdmluY3VsYXIgdW4gcHJvdmVlZG9yIE9BdXRoLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFVubGlua1Byb3ZpZGVyUmVxdWVzdCB7XG4gIHByb3ZpZGVyOiBPQXV0aFByb3ZpZGVyO1xufVxuXG4vKipcbiAqIFJlc3BvbnNlIGRlIGRlc3ZpbmN1bGFyIHByb3ZlZWRvci5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBVbmxpbmtQcm92aWRlclJlc3BvbnNlIHtcbiAgb3BlcmF0aW9uSWQ6IHN0cmluZztcbiAgdW5saW5rZWQ6IGJvb2xlYW47XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gRU1BSUwgQ0hBTkdFIOKAlCAzLXN0ZXAgZmxvd1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmV4cG9ydCBpbnRlcmZhY2UgSW5pdGlhdGVFbWFpbENoYW5nZVJlcXVlc3Qge1xuICBjdXJyZW50UGFzc3dvcmQ6IHN0cmluZztcbiAgbmV3RW1haWw6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJbml0aWF0ZUVtYWlsQ2hhbmdlUmVzcG9uc2Uge1xuICBvcGVyYXRpb25JZDogc3RyaW5nO1xuICBwZW5kaW5nRW1haWw6IHN0cmluZztcbiAgcmVxdWVzdExvY2F0aW9uOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29uZmlybUVtYWlsQ2hhbmdlU3RlcDFSZXF1ZXN0IHtcbiAgY29kZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbmZpcm1FbWFpbENoYW5nZVN0ZXAxUmVzcG9uc2Uge1xuICBvcGVyYXRpb25JZDogc3RyaW5nO1xuICB2ZXJpZmllZDogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb25maXJtRW1haWxDaGFuZ2VTdGVwMlJlcXVlc3Qge1xuICBjb2RlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29uZmlybUVtYWlsQ2hhbmdlU3RlcDJSZXNwb25zZSB7XG4gIG9wZXJhdGlvbklkOiBzdHJpbmc7XG4gIHN1Y2Nlc3M6IGJvb2xlYW47XG4gIG5ld0VtYWlsOiBzdHJpbmc7XG59XG4iXX0=
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL3NlcnZpY2VzL2F1dGgvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHO0FBeUpIOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQWM7SUFDM0MsZUFBZSxFQUFFLEtBQUs7SUFDdEIsU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsSUFBSTtJQUNqQixZQUFZLEVBQUUsSUFBSTtJQUNsQixNQUFNLEVBQUUsSUFBSTtJQUNaLEtBQUssRUFBRSxJQUFJO0lBQ1gsU0FBUyxFQUFFLElBQUk7SUFDZixLQUFLLEVBQUUsRUFBRTtJQUNULFdBQVcsRUFBRSxFQUFFO0lBQ2YsWUFBWSxFQUFFLEtBQUs7SUFDbkIsU0FBUyxFQUFFLEtBQUs7SUFDaEIsU0FBUyxFQUFFLElBQUk7SUFDZixLQUFLLEVBQUUsSUFBSTtDQUNaLENBQUM7QUFrQkY7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBb0I7SUFDaEQsUUFBUSxFQUFFLEtBQUs7SUFDZixRQUFRLEVBQUUsSUFBSTtJQUNkLE1BQU0sRUFBRSxJQUFJO0NBQ2IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGlwb3MgZSBpbnRlcmZhY2VzIHBhcmEgZWwgc2VydmljaW8gZGUgYXV0ZW50aWNhY2nDs24gZGUgVmFsdGVjaC5cbiAqIEFsaW5lYWRvcyBjb24gZWwgYmFja2VuZCBBdXRoVjIuXG4gKi9cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIENPTkZJR1VSQUNJw5NOXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIENvbmZpZ3VyYWNpw7NuIHBhcmEgZWwgc2VydmljaW8gZGUgYXV0ZW50aWNhY2nDs24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVmFsdGVjaEF1dGhDb25maWcge1xuICAvKiogVVJMIGJhc2UgZGUgbGEgQVBJIChlajogJ2h0dHBzOi8vYXBpLm15dmFsdGVjaC5jb20nKSAqL1xuICBhcGlVcmw6IHN0cmluZztcbiAgLyoqIFByZWZpam8gcGFyYSBlbmRwb2ludHMgZGUgYXV0aCAoZGVmYXVsdDogJy92Mi9hdXRoJykgKi9cbiAgYXV0aFByZWZpeD86IHN0cmluZztcbiAgLyoqIFByZWZpam8gcGFyYSBsYXMgY2xhdmVzIGRlIGxvY2FsU3RvcmFnZSAoZGVmYXVsdDogJ3ZhbHRlY2hfYXV0aF8nKSAqL1xuICBzdG9yYWdlUHJlZml4Pzogc3RyaW5nO1xuICAvKiogVGllbXBvIGFudGVzIGRlIGV4cGlyYWNpw7NuIHBhcmEgcmVmcmVzY2FyIHRva2VuIGVuIHNlZ3VuZG9zIChkZWZhdWx0OiA2MCkgKi9cbiAgcmVmcmVzaEJlZm9yZUV4cGlyeT86IG51bWJlcjtcbiAgLyoqIEhhYmlsaXRhciBzaW5jcm9uaXphY2nDs24gZW50cmUgcGVzdGHDsWFzIChkZWZhdWx0OiB0cnVlKSAqL1xuICBlbmFibGVUYWJTeW5jPzogYm9vbGVhbjtcbiAgLyoqIFJ1dGEgZGUgcmVkaXJlY2Npw7NuIGN1YW5kbyBubyBhdXRlbnRpY2FkbyAoZGVmYXVsdDogJy9sb2dpbicpICovXG4gIGxvZ2luUm91dGU/OiBzdHJpbmc7XG4gIC8qKiBSdXRhIGRlIHJlZGlyZWNjacOzbiBjdWFuZG8geWEgYXV0ZW50aWNhZG8gKGRlZmF1bHQ6ICcvJykgKi9cbiAgaG9tZVJvdXRlPzogc3RyaW5nO1xuICAvKiogUnV0YSBwYXJhIGFjY2VzbyBkZW5lZ2FkbyAoZGVmYXVsdDogJy91bmF1dGhvcml6ZWQnKSAqL1xuICB1bmF1dGhvcml6ZWRSb3V0ZT86IHN0cmluZztcbiAgLyoqIEhhYmlsaXRhciBpbnRlZ3JhY2nDs24gY29uIEZpcmViYXNlU2VydmljZSAoZGVmYXVsdDogZmFsc2UpICovXG4gIGVuYWJsZUZpcmViYXNlSW50ZWdyYXRpb24/OiBib29sZWFuO1xuICAvKiogSGFiaWxpdGFyIHJlZ2lzdHJvIGF1dG9tw6F0aWNvIGRlIGRldmljZSB0b2tlbnMgcGFyYSBwdXNoIG5vdGlmaWNhdGlvbnMgKGRlZmF1bHQ6IGZhbHNlKSAqL1xuICBlbmFibGVEZXZpY2VSZWdpc3RyYXRpb24/OiBib29sZWFuO1xuICAvKipcbiAgICogQXBwSUQgZGUgZXN0YSBhcHAgZGVudHJvIGRlbCBmYWN0b3J5IChlajogJ3Nob3djYXNlJywgJ3NpZ2lmeScsICdteXZhbHRlY2gnKS5cbiAgICogVXNhZG8gcG9yIE5vdGlmaWNhdGlvbkFjdGlvblNlcnZpY2UgcGFyYSBkZWNpZGlyIHNpIHVuYSBub3RpZmljYWNpw7NuXG4gICAqIGFwdW50YSBhIGxhIGFwcCBhY3R1YWwgbyByZXF1aWVyZSBoYW5kb2ZmIGNyb3NzLWFwcC5cbiAgICovXG4gIGFwcElkPzogc3RyaW5nO1xuICAvKipcbiAgICogTWFwYSBhcHBJZCDihpIgYmFzZVVybCBhYnNvbHV0YSBwYXJhIGhhbmRvZmYgY3Jvc3MtYXBwLlxuICAgKiBFajogeyBzaWdpZnk6ICdodHRwczovL3NpZ2lmeS5jb20nLCBteXZhbHRlY2g6ICdodHRwczovL2FwcC5teXZhbHRlY2guY29tJyB9XG4gICAqIE5vdGlmaWNhdGlvbkFjdGlvblNlcnZpY2UgdXNhIGVzdGUgbWFwIGFsIGRpc3BhcmFyIGhhbmRvZmYgYSBvdHJhIGFwcC5cbiAgICovXG4gIGFwcFVybHM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuICAvKipcbiAgICogSGFiaWxpdGFyIHNpbmNyb25pemFjacOzbiByZWFjdGl2YSBkZSBwZXJtaXNvcyB2aWEgRmlyZXN0b3JlIG9uU25hcHNob3QgKGRlZmF1bHQ6IGZhbHNlKS5cbiAgICogUmVxdWllcmUgZW5hYmxlRmlyZWJhc2VJbnRlZ3JhdGlvbjogdHJ1ZS4gQ3VhbmRvIHVuIGFkbWluIGFzaWduYSBvIHJldm9jYSB1biByb2wsXG4gICAqIGVsIGZyb250ZW5kIGFjdHVhbGl6YSByb2xlcy9wZXJtaXNvcyBzaW4gcmVjYXJnYXIgbGEgcMOhZ2luYSAofjEtM3MgbGF0ZW5jaWEpLlxuICAgKiBSZXF1aWVyZSBxdWUgZWwgYmFja2VuZCB0ZW5nYSBTeW5jUkJBQ1RvRmlyZXN0b3JlIGFjdGl2by5cbiAgICovXG4gIGVuYWJsZUZpcmVzdG9yZVJCQUM/OiBib29sZWFuO1xuICAvKipcbiAgICogQm9vdHN0cmFwZWFyIGxhIHNlc2nDs24gZGVzZGUgbGEgY29va2llLWhpbnQgZGUgZmFtaWxpYSAoZGVmYXVsdDogZmFsc2UpLlxuICAgKlxuICAgKiBDdWFuZG8gZXMgYHRydWVgIHkgZW4gZWwgYXJyYW5xdWUgTk8gaGF5IGFjY2VzcyB0b2tlbiBlbiBlbCBzdG9yYWdlIGRlIGVzdGVcbiAgICogb3JpZ2luIFBFUk8gZXhpc3RlIGxhIGNvb2tpZSBKUy1yZWFkYWJsZSBkZSBcInNlc2nDs24gYWN0aXZhIGVuIGxhIGZhbWlsaWFcIlxuICAgKiAodmVyIGBsb2dnZWRJbkhpbnRDb29raWVgKSwgYGluaXRpYWxpemUoKWAgaW50ZW50YSB1biBgL3JlZnJlc2hgIHBhcmFcbiAgICogaW5zdGFsYXIgbGEgc2VzacOzbiBjcm9zcy1vcmlnaW4uIEVsIHJlZnJlc2ggdG9rZW4gSHR0cE9ubHkgZGVsIGJhY2tlbmQgZXNcbiAgICogYFNhbWVTaXRlPU5vbmVgIOKGkiB2aWFqYSBhIGxhIEFQSSBkZXNkZSBjdWFscXVpZXIgYXBwIGRlbCBmYWN0b3J5LCBhc8OtIHF1ZSB1blxuICAgKiB1c3VhcmlvIGxvZ3VlYWRvIGVuIG90cmEgYXBwIChlai4gc2hvd2Nhc2UpIHF1ZWRhIGF1dGVudGljYWRvIGFsIGVudHJhciBhXG4gICAqIGVzdGEgc2luIHJlLWxvZ3VlYXIgbmkgaGFuZG9mZiBleHBsw61jaXRvLlxuICAgKlxuICAgKiBFbCBpbnRlbnRvIGVzICoqYmxvcXVlYW50ZSoqIChhIGRpZmVyZW5jaWEgZGVsIHJlZnJlc2ggZGUgZm9uZG8gZGVsIHRva2VuXG4gICAqIGV4cGlyYWRvKTogbm8gaGF5IGNsYWltcyBxdWUgcmVzdGF1cmFyIGRlIGZvcm1hIG9wdGltaXN0YSwgYXPDrSBxdWUgc2UgZXNwZXJhXG4gICAqIHBhcmEgcXVlIGxvcyBndWFyZHMgKGBhdXRoR3VhcmRgL2BndWVzdEd1YXJkYCkgdmVhbiBlbCBlc3RhZG8gY29ycmVjdG8uIFNvbG9cbiAgICogYWZlY3RhIGEgdmlzaXRhbnRlcyBDT04gbGEgaGludCAoc2VzacOzbiBkZSBmYW1pbGlhKSwgbm8gYSBhbsOzbmltb3MuIEVsIHNwbGFzaFxuICAgKiBwcmUtYm9vdHN0cmFwIGRlbCBgaW5kZXguaHRtbGAgY3VicmUgbGEgbGF0ZW5jaWEgZGVsIGNvbGQgc3RhcnQuXG4gICAqXG4gICAqIENhdmVhdDogbGEgaGludCB0aWVuZSBgRG9tYWluPS5teXZhbHRlY2guY29tYCDihpIgZW4gZGV2IChhcHBzIGVuIGAqLndlYi5hcHBgKVxuICAgKiBubyBlcyBsZWdpYmxlIHkgZWwgcmVmcmVzaCBjcm9zcy1zaXRlIHNlIGJsb3F1ZWE7IGVsIGludGVudG8gZmFsbGEgbGltcGlvIHlcbiAgICogbGEgYXBwIHNpZ3VlIGNvbW8gaW52aXRhZG8uIEZ1bmNpb25hIGVuIHByb2QgKGRvbWluaW9zIGAqLm15dmFsdGVjaC5jb21gKS5cbiAgICovXG4gIGJvb3RzdHJhcFNlc3Npb25Gcm9tSGludD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBOb21icmUgZGUgbGEgY29va2llIEpTLXJlYWRhYmxlIHF1ZSBpbmRpY2Egc2VzacOzbiBhY3RpdmEgZW4gbGEgZmFtaWxpYVxuICAgKiAoZGVmYXVsdDogJ3ZhbHRlY2hfbG9nZ2VkX2luJykuIExhIHNldGVhIGVsIGJhY2tlbmQgZW4gbG9naW4vbG9nb3V0XG4gICAqIChgSHR0cE9ubHk6ZmFsc2VgLCBgRG9tYWluPS5teXZhbHRlY2guY29tYCkuIEVzIHVuIGhpbnQgZGUgVUksIG5vIHVuYVxuICAgKiBjcmVkZW5jaWFsIOKAlCBlbCB0b2tlbiByZWFsIHZhIGVuIGxhIGNvb2tpZSBIdHRwT25seSBgdmFsdGVjaF9yZWZyZXNoYC5cbiAgICovXG4gIGxvZ2dlZEluSGludENvb2tpZT86IHN0cmluZztcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEVTVEFETyBERSBBVVRFTlRJQ0FDScOTTlxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBFc3RhZG8gY29tcGxldG8gZGUgYXV0ZW50aWNhY2nDs24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXV0aFN0YXRlIHtcbiAgLyoqIFVzdWFyaW8gZXN0w6EgYXV0ZW50aWNhZG8gKi9cbiAgaXNBdXRoZW50aWNhdGVkOiBib29sZWFuO1xuICAvKiogRXN0YWRvIGRlIGNhcmdhIGluaWNpYWwgKi9cbiAgaXNMb2FkaW5nOiBib29sZWFuO1xuICAvKiogVG9rZW4gZGUgYWNjZXNvIGFjdHVhbCAqL1xuICBhY2Nlc3NUb2tlbjogc3RyaW5nIHwgbnVsbDtcbiAgLyoqIFRva2VuIGRlIHJlZnJlc2NvIGFjdHVhbCAqL1xuICByZWZyZXNoVG9rZW46IHN0cmluZyB8IG51bGw7XG4gIC8qKiBJRCBkZWwgdXN1YXJpbyAqL1xuICB1c2VySWQ6IHN0cmluZyB8IG51bGw7XG4gIC8qKiBFbWFpbCBkZWwgdXN1YXJpbyAqL1xuICBlbWFpbDogc3RyaW5nIHwgbnVsbDtcbiAgLyoqIE5vbWJyZSBjb21wbGV0byBkZWwgdXN1YXJpbyAocG9ibGFkbyB0cmFzIGBnZXRQcm9maWxlKClgKSAqL1xuICBuYW1lPzogc3RyaW5nIHwgbnVsbDtcbiAgLyoqIFVzZXJuYW1lL2hhbmRsZSAocG9ibGFkbyB0cmFzIGBnZXRQcm9maWxlKClgKSAqL1xuICBoYW5kbGU/OiBzdHJpbmcgfCBudWxsO1xuICAvKiogVVJMIGRlbCBhdmF0YXIgKHBvYmxhZG8gdHJhcyBgZ2V0UHJvZmlsZSgpYCkgKi9cbiAgYXZhdGFyVXJsPzogc3RyaW5nIHwgbnVsbDtcbiAgLyoqIFRlbMOpZm9ubyAocG9ibGFkbyB0cmFzIGBnZXRQcm9maWxlKClgKSAqL1xuICBwaG9uZT86IHN0cmluZyB8IG51bGw7XG4gIC8qKiBJRCBkZSBsYSBvcmdhbml6YWNpw7NuIGFjdGl2YSAqL1xuICBhY3RpdmVPcmc/OiBzdHJpbmcgfCBudWxsO1xuICAvKiogUm9sZXMgZGVsIHVzdWFyaW8gKi9cbiAgcm9sZXM6IHN0cmluZ1tdO1xuICAvKiogUGVybWlzb3MgZGVsIHVzdWFyaW8gKGZvcm1hdG8gJ3Jlc291cmNlOmFjdGlvbicpICovXG4gIHBlcm1pc3Npb25zOiBzdHJpbmdbXTtcbiAgLyoqIFVzdWFyaW8gZXMgc3VwZXIgYWRtaW4gKi9cbiAgaXNTdXBlckFkbWluOiBib29sZWFuO1xuICAvKiogVXN1YXJpbyB0aWVuZSBzdXNjcmlwY2nDs24gcHJlbWl1bSBhY3RpdmEgKG5vIHZlIGFkcykgKi9cbiAgaXNQcmVtaXVtOiBib29sZWFuO1xuICAvKiogVGltZXN0YW1wIGRlIGV4cGlyYWNpw7NuIGRlbCBhY2Nlc3NUb2tlbiAobXMpICovXG4gIGV4cGlyZXNBdDogbnVtYmVyIHwgbnVsbDtcbiAgLyoqIEVycm9yIGRlIGF1dGVudGljYWNpw7NuIChzaSBleGlzdGUpICovXG4gIGVycm9yOiBBdXRoRXJyb3IgfCBudWxsO1xufVxuXG4vKipcbiAqIEluZm9ybWFjacOzbiBkZWwgdXN1YXJpbyBhdXRlbnRpY2Fkby5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBdXRoVXNlciB7XG4gIHVzZXJJZDogc3RyaW5nO1xuICBlbWFpbDogc3RyaW5nO1xuICBuYW1lPzogc3RyaW5nO1xuICBwaG9uZT86IHN0cmluZztcbiAgLyoqIFVzZXJuYW1lL2hhbmRsZSBkZWwgdXN1YXJpbyAoZWo6IEB2aWN0b3J2KSAqL1xuICBoYW5kbGU/OiBzdHJpbmc7XG4gIC8qKiBJRCBkZSBsYSBvcmdhbml6YWNpw7NuIGFjdGl2YSAqL1xuICBhY3RpdmVPcmc/OiBzdHJpbmc7XG4gIC8qKiBVUkwgZGVsIGF2YXRhciBkZWwgdXN1YXJpbyAqL1xuICBhdmF0YXJVcmw/OiBzdHJpbmc7XG4gIHJvbGVzOiBzdHJpbmdbXTtcbiAgcGVybWlzc2lvbnM6IHN0cmluZ1tdO1xuICBpc1N1cGVyQWRtaW46IGJvb2xlYW47XG4gIG1mYUVuYWJsZWQ/OiBib29sZWFuO1xuICBtZmFNZXRob2Q/OiBNRkFNZXRob2Q7XG59XG5cbi8qKlxuICogRXJyb3IgZGUgYXV0ZW50aWNhY2nDs24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXV0aEVycm9yIHtcbiAgY29kZTogc3RyaW5nO1xuICBtZXNzYWdlOiBzdHJpbmc7XG59XG5cbi8qKlxuICogRXN0YWRvIGluaWNpYWwgZGUgYXV0ZW50aWNhY2nDs24uXG4gKi9cbmV4cG9ydCBjb25zdCBJTklUSUFMX0FVVEhfU1RBVEU6IEF1dGhTdGF0ZSA9IHtcbiAgaXNBdXRoZW50aWNhdGVkOiBmYWxzZSxcbiAgaXNMb2FkaW5nOiB0cnVlLFxuICBhY2Nlc3NUb2tlbjogbnVsbCxcbiAgcmVmcmVzaFRva2VuOiBudWxsLFxuICB1c2VySWQ6IG51bGwsXG4gIGVtYWlsOiBudWxsLFxuICBhY3RpdmVPcmc6IG51bGwsXG4gIHJvbGVzOiBbXSxcbiAgcGVybWlzc2lvbnM6IFtdLFxuICBpc1N1cGVyQWRtaW46IGZhbHNlLFxuICBpc1ByZW1pdW06IGZhbHNlLFxuICBleHBpcmVzQXQ6IG51bGwsXG4gIGVycm9yOiBudWxsLFxufTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIE1GQVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqIE3DqXRvZG9zIGRlIE1GQSBzb3BvcnRhZG9zICovXG5leHBvcnQgdHlwZSBNRkFNZXRob2QgPSAnRU1BSUwnIHwgJ1NNUycgfCAnVE9UUCc7XG5cbi8qKlxuICogRXN0YWRvIGRlIE1GQSBwZW5kaWVudGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTUZBUGVuZGluZ1N0YXRlIHtcbiAgcmVxdWlyZWQ6IGJvb2xlYW47XG4gIG1mYVRva2VuOiBzdHJpbmcgfCBudWxsO1xuICBtZXRob2Q6IE1GQU1ldGhvZCB8IG51bGw7XG59XG5cbi8qKlxuICogRXN0YWRvIGluaWNpYWwgZGUgTUZBLlxuICovXG5leHBvcnQgY29uc3QgSU5JVElBTF9NRkFfU1RBVEU6IE1GQVBlbmRpbmdTdGF0ZSA9IHtcbiAgcmVxdWlyZWQ6IGZhbHNlLFxuICBtZmFUb2tlbjogbnVsbCxcbiAgbWV0aG9kOiBudWxsLFxufTtcblxuLyoqXG4gKiBSZXN1bHRhZG8gZGUgc2V0dXAgZGUgTUZBLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE1GQVNldHVwUmVzdWx0IHtcbiAgY29kZVNlbnQ6IGJvb2xlYW47XG4gIG1lc3NhZ2U6IHN0cmluZztcbn1cblxuLyoqXG4gKiBFc3RhZG8gZGUgTUZBIGRlbCB1c3VhcmlvLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE1GQVN0YXR1cyB7XG4gIGVuYWJsZWQ6IGJvb2xlYW47XG4gIG1ldGhvZDogTUZBTWV0aG9kIHwgbnVsbDtcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFRPVFAgTUZBIChHb29nbGUgQXV0aGVudGljYXRvcilcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogUmVzcG9uc2UgZGUgc2V0dXAgZGUgVE9UUC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUT1RQU2V0dXBSZXNwb25zZSB7XG4gIG9wZXJhdGlvbklkOiBzdHJpbmc7XG4gIC8qKiBTZWNyZXRvIFRPVFAgZW4gYmFzZTMyIChwYXJhIGVudHJhZGEgbWFudWFsKSAqL1xuICBzZWNyZXQ6IHN0cmluZztcbiAgLyoqIFVSTCBwYXJhIGdlbmVyYXIgUVIgY29kZSAob3RwYXV0aDovLy4uLikgKi9cbiAgcXJDb2RlVXJsOiBzdHJpbmc7XG4gIC8qKiBDw7NkaWdvcyBkZSByZXNwYWxkbyBkZSB1biBzb2xvIHVzbyAqL1xuICBiYWNrdXBDb2Rlczogc3RyaW5nW107XG4gIG1lc3NhZ2U6IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZXF1ZXN0IHBhcmEgdmVyaWZpY2FyIHNldHVwIGRlIFRPVFAuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVE9UUFZlcmlmeVNldHVwUmVxdWVzdCB7XG4gIC8qKiBDw7NkaWdvIFRPVFAgZGUgNiBkw61naXRvcyAqL1xuICBjb2RlOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmVzcG9uc2UgZGUgdmVyaWZpY2FjacOzbiBkZSBzZXR1cCBUT1RQLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRPVFBWZXJpZnlTZXR1cFJlc3BvbnNlIHtcbiAgb3BlcmF0aW9uSWQ6IHN0cmluZztcbiAgZW5hYmxlZDogYm9vbGVhbjtcbiAgbWVzc2FnZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIFJlcXVlc3QgcGFyYSBkZXNoYWJpbGl0YXIgVE9UUC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUT1RQRGlzYWJsZVJlcXVlc3Qge1xuICBwYXNzd29yZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFJlc3BvbnNlIGRlIGRlc2hhYmlsaXRhciBUT1RQLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRPVFBEaXNhYmxlUmVzcG9uc2Uge1xuICBvcGVyYXRpb25JZDogc3RyaW5nO1xuICBkaXNhYmxlZDogYm9vbGVhbjtcbiAgbWVzc2FnZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIFJlc3BvbnNlIGRlIHJlZ2VuZXJhciBjw7NkaWdvcyBkZSByZXNwYWxkby5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZWdlbmVyYXRlQmFja3VwQ29kZXNSZXNwb25zZSB7XG4gIG9wZXJhdGlvbklkOiBzdHJpbmc7XG4gIGJhY2t1cENvZGVzOiBzdHJpbmdbXTtcbiAgbWVzc2FnZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIFJlc3BvbnNlIGRlIGNhbnRpZGFkIGRlIGPDs2RpZ29zIGRlIHJlc3BhbGRvLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEJhY2t1cENvZGVzQ291bnRSZXNwb25zZSB7XG4gIG9wZXJhdGlvbklkOiBzdHJpbmc7XG4gIGNvdW50OiBudW1iZXI7XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBSRVFVRVNUUy9SRVNQT05TRVMgKGFsaW5lYWRvcyBjb24gYmFja2VuZCBBdXRoVjIpXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIFJlcXVlc3QgcGFyYSBzaWdudXAgKHJlZ2lzdHJvKS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTaWdudXBSZXF1ZXN0IHtcbiAgZW1haWw6IHN0cmluZztcbiAgcGFzc3dvcmQ6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICBwaG9uZT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZXNwb25zZSBkZSBzaWdudXAgKHJlZ2lzdHJvKS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTaWdudXBSZXNwb25zZSB7XG4gIG9wZXJhdGlvbklkOiBzdHJpbmc7XG4gIHVzZXJJZDogc3RyaW5nO1xuICBtZXNzYWdlOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmVxdWVzdCBwYXJhIHZlcmlmaWNhciBlbWFpbC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBWZXJpZnlFbWFpbFJlcXVlc3Qge1xuICBlbWFpbDogc3RyaW5nO1xuICBjb2RlOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmVzcG9uc2UgZGUgdmVyaWZpY2FjacOzbiBkZSBlbWFpbC5cbiAqIFNpIGVzIGV4aXRvc28sIGluY2x1eWUgdG9rZW5zIHBhcmEgYXV0by1sb2dpbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBWZXJpZnlFbWFpbFJlc3BvbnNlIHtcbiAgb3BlcmF0aW9uSWQ6IHN0cmluZztcbiAgdmVyaWZpZWQ6IGJvb2xlYW47XG4gIGFjY2Vzc1Rva2VuPzogc3RyaW5nO1xuICByZWZyZXNoVG9rZW4/OiBzdHJpbmc7XG4gIGZpcmViYXNlVG9rZW4/OiBzdHJpbmc7XG4gIGV4cGlyZXNJbj86IG51bWJlcjtcbiAgdG9rZW5UeXBlPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFJlcXVlc3QgcGFyYSBhY3RpdmFyIHVuYSBjdWVudGEgcHJlLWFwcm92aXNpb25hZGEgcG9yIHVuYSBvcmdhbml6YWNpw7NuXG4gKiAoQURSLTAyMyk6IGVsIHVzdWFyaW8gZGVmaW5lIHN1IGNvbnRyYXNlw7FhIGNvbiBlbCB0b2tlbiBkZWwgZW5sYWNlIGRlIGVtYWlsLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFjdGl2YXRlQWNjb3VudFJlcXVlc3Qge1xuICB0b2tlbjogc3RyaW5nO1xuICBuZXdQYXNzd29yZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFJlc3BvbnNlIGRlIGFjdGl2YWNpw7NuIGRlIGN1ZW50YS4gRW4gw6l4aXRvIGluY2x1eWUgdG9rZW5zIGRlIGF1dG8tc2lnbmluXG4gKiAobWlzbW8gc2hhcGUgcXVlIHZlcmlmeS1lbWFpbCkg4oCUIGVsIHVzdWFyaW8gcXVlZGEgbG9ndWVhZG8gdHJhcyBhY3RpdmFyLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFjdGl2YXRlQWNjb3VudFJlc3BvbnNlIHtcbiAgb3BlcmF0aW9uSWQ6IHN0cmluZztcbiAgYWN0aXZhdGVkOiBib29sZWFuO1xuICBhY2Nlc3NUb2tlbj86IHN0cmluZztcbiAgcmVmcmVzaFRva2VuPzogc3RyaW5nO1xuICBmaXJlYmFzZVRva2VuPzogc3RyaW5nO1xuICBleHBpcmVzSW4/OiBudW1iZXI7XG4gIHRva2VuVHlwZT86IHN0cmluZztcbiAgcm9sZXM/OiBzdHJpbmdbXTtcbiAgcGVybWlzc2lvbnM/OiBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBSZXF1ZXN0IHBhcmEgcmVlbnZpYXIgY8OzZGlnbyBkZSB2ZXJpZmljYWNpw7NuLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlc2VuZENvZGVSZXF1ZXN0IHtcbiAgZW1haWw6IHN0cmluZztcbiAgdHlwZTogJ0VNQUlMX1ZFUklGWScgfCAnUEFTU1dPUkRfUkVTRVQnO1xufVxuXG4vKipcbiAqIFJlc3BvbnNlIGRlIHJlZW52w61vIGRlIGPDs2RpZ28uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVzZW5kQ29kZVJlc3BvbnNlIHtcbiAgb3BlcmF0aW9uSWQ6IHN0cmluZztcbiAgc2VudDogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBSZXF1ZXN0IHBhcmEgc2lnbmluLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNpZ25pblJlcXVlc3Qge1xuICBlbWFpbDogc3RyaW5nO1xuICBwYXNzd29yZDogc3RyaW5nO1xuICAvKiogUGxhdGFmb3JtYSBkZWwgZGlzcG9zaXRpdm8gKHBhcmEgZGV0ZWNjacOzbiBkZSBudWV2byBkaXNwb3NpdGl2bykgKi9cbiAgcGxhdGZvcm0/OiBEZXZpY2VQbGF0Zm9ybTtcbiAgLyoqIE5hdmVnYWRvciAoc29sbyB3ZWIpICovXG4gIGJyb3dzZXI/OiBzdHJpbmc7XG4gIC8qKiBTaXN0ZW1hIG9wZXJhdGl2byAqL1xuICBvcz86IHN0cmluZztcbiAgLyoqIE5vbWJyZSBhbWlnYWJsZSBkZWwgZGlzcG9zaXRpdm8gKi9cbiAgZGV2aWNlTmFtZT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZXNwb25zZSBkZSBzaWduaW4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2lnbmluUmVzcG9uc2Uge1xuICBvcGVyYXRpb25JZDogc3RyaW5nO1xuICBhY2Nlc3NUb2tlbj86IHN0cmluZztcbiAgcmVmcmVzaFRva2VuPzogc3RyaW5nO1xuICBmaXJlYmFzZVRva2VuPzogc3RyaW5nO1xuICBleHBpcmVzSW4/OiBudW1iZXI7XG4gIHRva2VuVHlwZT86IHN0cmluZztcbiAgbWZhUmVxdWlyZWQ/OiBib29sZWFuO1xuICBtZmFUb2tlbj86IHN0cmluZztcbiAgbWZhTWV0aG9kPzogTUZBTWV0aG9kO1xuICByb2xlcz86IHN0cmluZ1tdO1xuICBwZXJtaXNzaW9ucz86IHN0cmluZ1tdO1xuICAvKiogSW5kaWNhIHNpIGVsIGxvZ2luIGZ1ZSBkZXNkZSB1biBkaXNwb3NpdGl2byBudWV2by9ubyByZWNvbm9jaWRvICovXG4gIGlzTmV3RGV2aWNlPzogYm9vbGVhbjtcbiAgLyoqIElEIGRlbCBkaXNwb3NpdGl2byB1c2FkbyBwYXJhIGVsIGxvZ2luICovXG4gIGRldmljZUlkPzogc3RyaW5nO1xuICAvKiogSWRpb21hIHByZWZlcmlkbyBkZWwgdXN1YXJpbyAocGFyYSBzaW5jcm9uaXphciBjb24gaTE4bikgKi9cbiAgbGFuZ3VhZ2U/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmVxdWVzdCBwYXJhIHZlcmlmaWNhciBNRkEuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTUZBVmVyaWZ5UmVxdWVzdCB7XG4gIG1mYVRva2VuOiBzdHJpbmc7XG4gIGNvZGU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZXNwb25zZSBkZSB2ZXJpZmljYXIgTUZBLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE1GQVZlcmlmeVJlc3BvbnNlIHtcbiAgb3BlcmF0aW9uSWQ6IHN0cmluZztcbiAgYWNjZXNzVG9rZW46IHN0cmluZztcbiAgcmVmcmVzaFRva2VuOiBzdHJpbmc7XG4gIGZpcmViYXNlVG9rZW4/OiBzdHJpbmc7XG4gIGV4cGlyZXNJbjogbnVtYmVyO1xuICB0b2tlblR5cGU6IHN0cmluZztcbiAgcm9sZXM/OiBzdHJpbmdbXTtcbiAgcGVybWlzc2lvbnM/OiBzdHJpbmdbXTtcbiAgLyoqIElkaW9tYSBwcmVmZXJpZG8gZGVsIHVzdWFyaW8gKHBhcmEgc2luY3Jvbml6YXIgY29uIGkxOG4pICovXG4gIGxhbmd1YWdlPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFJlcXVlc3QgcGFyYSByZWZyZXNjYXIgdG9rZW4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVmcmVzaFJlcXVlc3Qge1xuICByZWZyZXNoVG9rZW46IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZXNwb25zZSBkZSByZWZyZXNjYXIgdG9rZW4uXG4gKiBJbXBsZW1lbnRhIHRva2VuIHJvdGF0aW9uOiBjYWRhIHJlZnJlc2ggZ2VuZXJhIHVuIG51ZXZvIHJlZnJlc2ggdG9rZW4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVmcmVzaFJlc3BvbnNlIHtcbiAgb3BlcmF0aW9uSWQ6IHN0cmluZztcbiAgYWNjZXNzVG9rZW46IHN0cmluZztcbiAgcmVmcmVzaFRva2VuOiBzdHJpbmc7IC8vIFRva2VuIHJvdGF0aW9uOiBudWV2byByZWZyZXNoIHRva2VuXG4gIGV4cGlyZXNJbjogbnVtYmVyO1xuICBmaXJlYmFzZVRva2VuPzogc3RyaW5nO1xuICByb2xlcz86IHN0cmluZ1tdO1xuICBwZXJtaXNzaW9ucz86IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIFJlcXVlc3QgcGFyYSBsb2dvdXQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTG9nb3V0UmVxdWVzdCB7XG4gIHJlZnJlc2hUb2tlbjogc3RyaW5nO1xufVxuXG4vKipcbiAqIFJlc3BvbnNlIGRlIGxvZ291dC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMb2dvdXRSZXNwb25zZSB7XG4gIG9wZXJhdGlvbklkOiBzdHJpbmc7XG4gIHN1Y2Nlc3M6IGJvb2xlYW47XG59XG5cbi8qKlxuICogUmVzcG9uc2UgZGUgb2J0ZW5lciBwZXJtaXNvcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHZXRQZXJtaXNzaW9uc1Jlc3BvbnNlIHtcbiAgb3BlcmF0aW9uSWQ6IHN0cmluZztcbiAgcm9sZXM6IHN0cmluZ1tdO1xuICBwZXJtaXNzaW9uczogc3RyaW5nW107XG4gIGlzU3VwZXJBZG1pbjogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBSZXF1ZXN0IHBhcmEgc2V0dXAgZGUgTUZBLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE1GQVNldHVwUmVxdWVzdCB7XG4gIG1ldGhvZDogTUZBTWV0aG9kO1xuICBwaG9uZT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZXNwb25zZSBkZSBzZXR1cCBkZSBNRkEuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTUZBU2V0dXBSZXNwb25zZSB7XG4gIG9wZXJhdGlvbklkOiBzdHJpbmc7XG4gIGNvZGVTZW50OiBib29sZWFuO1xuICBtZXNzYWdlOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmVxdWVzdCBwYXJhIGNvbmZpcm1hciBNRkEuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTUZBQ29uZmlybVJlcXVlc3Qge1xuICBjb2RlOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmVzcG9uc2UgZGUgY29uZmlybWFyIE1GQS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBNRkFDb25maXJtUmVzcG9uc2Uge1xuICBvcGVyYXRpb25JZDogc3RyaW5nO1xuICBtZmFFbmFibGVkOiBib29sZWFuO1xuICBtZXRob2Q6IE1GQU1ldGhvZDtcbn1cblxuLyoqXG4gKiBSZXF1ZXN0IHBhcmEgZGVzaGFiaWxpdGFyIE1GQS5cbiAqL1xuLyoqXG4gKiBBY2VwdGEgYHBhc3N3b3JkYCAoY3VlbnRhIGNvbiBjb250cmFzZcOxYSkgbyBgbWZhQ29kZWAgKGN1ZW50YSBPQXV0aC1vbmx5XG4gKiBjb24gVE9UUCBxdWUgcHJ1ZWJhIHBvc2VzacOzbiBkZWwgc2VndW5kbyBmYWN0b3IpLiBVbm8gcmVxdWVyaWRvLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE1GQURpc2FibGVSZXF1ZXN0IHtcbiAgcGFzc3dvcmQ/OiBzdHJpbmc7XG4gIG1mYUNvZGU/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmVzcG9uc2UgZGUgZGVzaGFiaWxpdGFyIE1GQS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBNRkFEaXNhYmxlUmVzcG9uc2Uge1xuICBvcGVyYXRpb25JZDogc3RyaW5nO1xuICBtZmFEaXNhYmxlZDogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBSZXF1ZXN0IHBhcmEgaW5pY2lhciByZWN1cGVyYWNpw7NuIGRlIGNvbnRyYXNlw7FhLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEZvcmdvdFBhc3N3b3JkUmVxdWVzdCB7XG4gIGVtYWlsOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmVzcG9uc2UgZGUgZm9yZ290IHBhc3N3b3JkIChzaWVtcHJlIGlndWFsIHBvciBzZWd1cmlkYWQpLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEZvcmdvdFBhc3N3b3JkUmVzcG9uc2Uge1xuICBvcGVyYXRpb25JZDogc3RyaW5nO1xuICBtZXNzYWdlOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmVxdWVzdCBwYXJhIHJlc2V0ZWFyIGNvbnRyYXNlw7FhIGNvbiBjw7NkaWdvLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlc2V0UGFzc3dvcmRSZXF1ZXN0IHtcbiAgZW1haWw6IHN0cmluZztcbiAgY29kZTogc3RyaW5nO1xuICBuZXdQYXNzd29yZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFJlc3BvbnNlIGRlIHJlc2V0IHBhc3N3b3JkLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlc2V0UGFzc3dvcmRSZXNwb25zZSB7XG4gIG9wZXJhdGlvbklkOiBzdHJpbmc7XG4gIHN1Y2Nlc3M6IGJvb2xlYW47XG59XG5cbi8qKlxuICogUmVxdWVzdCBwYXJhIGluaWNpYXIgcmVzZXQgZGUgTUZBIHBvciBlbWFpbCAodXNlciBwZXJkacOzIHN1IDLCuiBmYWN0b3IpLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE1GQVJlc2V0UmVxdWVzdFJlcXVlc3Qge1xuICBlbWFpbDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFJlc3BvbnNlIGRlIE1GQSByZXNldCByZXF1ZXN0IChzaWVtcHJlIGlndWFsIHBvciBzZWd1cmlkYWQg4oCUIGFudGktZW51bWVyYWNpw7NuKS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBNRkFSZXNldFJlcXVlc3RSZXNwb25zZSB7XG4gIG9wZXJhdGlvbklkOiBzdHJpbmc7XG4gIG1lc3NhZ2U6IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZXF1ZXN0IHBhcmEgY29uZmlybWFyIGVsIHJlc2V0IGRlIE1GQSBjb24gZWwgY8OzZGlnbyByZWNpYmlkbyBwb3IgZW1haWwuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTUZBUmVzZXRDb25maXJtUmVxdWVzdCB7XG4gIGVtYWlsOiBzdHJpbmc7XG4gIGNvZGU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZXNwb25zZSBkZSBNRkEgcmVzZXQgY29uZmlybS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBNRkFSZXNldENvbmZpcm1SZXNwb25zZSB7XG4gIG9wZXJhdGlvbklkOiBzdHJpbmc7XG4gIHN1Y2Nlc3M6IGJvb2xlYW47XG4gIG1lc3NhZ2U6IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZXF1ZXN0IHBhcmEgY2FtYmlhciBjb250cmFzZcOxYSAodXN1YXJpbyBhdXRlbnRpY2FkbykuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2hhbmdlUGFzc3dvcmRSZXF1ZXN0IHtcbiAgY3VycmVudFBhc3N3b3JkOiBzdHJpbmc7XG4gIG5ld1Bhc3N3b3JkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmVzcG9uc2UgZGUgY2FtYmlvIGRlIGNvbnRyYXNlw7FhLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENoYW5nZVBhc3N3b3JkUmVzcG9uc2Uge1xuICBvcGVyYXRpb25JZDogc3RyaW5nO1xuICBzdWNjZXNzOiBib29sZWFuO1xufVxuXG4vKipcbiAqIFJlcXVlc3QgcGFyYSBlbGltaW5hciBjdWVudGEuXG4gKiBVc3VhcmlvcyBjb24gY29udHJhc2XDsWE6IGVudmlhciBgcGFzc3dvcmRgLlxuICogVXN1YXJpb3MgT0F1dGggc2luIGNvbnRyYXNlw7FhOiBlbnZpYXIgYGNvZGVgIChvYnRlbmlkbyB2aWEgc2VuZERlbGV0ZUFjY291bnRDb2RlKS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEZWxldGVBY2NvdW50UmVxdWVzdCB7XG4gIHBhc3N3b3JkPzogc3RyaW5nO1xuICBjb2RlPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFJlc3BvbnNlIGRlIGVudmlhciBjw7NkaWdvIGRlIGNvbmZpcm1hY2nDs24gZGUgZWxpbWluYWNpw7NuIGRlIGN1ZW50YS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTZW5kRGVsZXRlQWNjb3VudENvZGVSZXNwb25zZSB7XG4gIG9wZXJhdGlvbklkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmVzcG9uc2UgZGUgZWxpbWluYXIgY3VlbnRhLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERlbGV0ZUFjY291bnRSZXNwb25zZSB7XG4gIG9wZXJhdGlvbklkOiBzdHJpbmc7XG4gIGRlbGV0ZWQ6IGJvb2xlYW47XG4gIG1lc3NhZ2U6IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZXNwb25zZSBkZSBvYnRlbmVyIHBlcmZpbCBkZWwgdXN1YXJpby5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHZXRQcm9maWxlUmVzcG9uc2Uge1xuICBvcGVyYXRpb25JZDogc3RyaW5nO1xuICB1c2VySWQ6IHN0cmluZztcbiAgZW1haWw6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICBwaG9uZT86IHN0cmluZztcbiAgLyoqIFVzZXJuYW1lL2hhbmRsZSBkZWwgdXN1YXJpbyAqL1xuICBoYW5kbGU/OiBzdHJpbmc7XG4gIC8qKiBVUkwgZGVsIGF2YXRhciBkZWwgdXN1YXJpbyAqL1xuICBhdmF0YXJVcmw/OiBzdHJpbmc7XG4gIGVtYWlsVmVyaWZpZWQ6IGJvb2xlYW47XG4gIHBob25lVmVyaWZpZWQ6IGJvb2xlYW47XG4gIG1mYUVuYWJsZWQ6IGJvb2xlYW47XG4gIG1mYU1ldGhvZD86IE1GQU1ldGhvZDtcbiAgLyoqIFRydWUgc2kgbGEgY3VlbnRhIHRpZW5lIGNvbnRyYXNlw7FhIHNldGVhZGEgKGZhbHNlIHBhcmEgT0F1dGgtb25seSBzaW4gcGFzc3dvcmQpLiAqL1xuICBoYXNQYXNzd29yZD86IGJvb2xlYW47XG4gIGNyZWF0ZWRBdDogc3RyaW5nO1xuICB1cGRhdGVkQXQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZXF1ZXN0IHBhcmEgYWN0dWFsaXphciBwZXJmaWwuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVXBkYXRlUHJvZmlsZVJlcXVlc3Qge1xuICBuYW1lPzogc3RyaW5nO1xuICBwaG9uZT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZXNwb25zZSBkZSBhY3R1YWxpemFyIHBlcmZpbC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBVcGRhdGVQcm9maWxlUmVzcG9uc2Uge1xuICBvcGVyYXRpb25JZDogc3RyaW5nO1xuICB1cGRhdGVkOiBib29sZWFuO1xufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gVVBEQVRFIEFWQVRBUlxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBSZXF1ZXN0IHBhcmEgYWN0dWFsaXphciBhdmF0YXIgZGVsIHVzdWFyaW8uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVXBkYXRlQXZhdGFyUmVxdWVzdCB7XG4gIC8qKiBVUkwgZGVsIGF2YXRhciBlbiBGaXJlYmFzZSBTdG9yYWdlICovXG4gIGF2YXRhclVybDogc3RyaW5nO1xuICAvKiogVVJMIGRlbCB0aHVtYm5haWwgKG9wY2lvbmFsKSAqL1xuICBhdmF0YXJUaHVtYm5haWw/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmVzcG9uc2UgZGUgYWN0dWFsaXphciBhdmF0YXIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVXBkYXRlQXZhdGFyUmVzcG9uc2Uge1xuICBvcGVyYXRpb25JZDogc3RyaW5nO1xuICBhdmF0YXJVcmw6IHN0cmluZztcbiAgYXZhdGFyVGh1bWJuYWlsPzogc3RyaW5nO1xuICB1cGRhdGVkQXQ6IHN0cmluZztcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEVWRU5UT1MgREUgU0lOQ1JPTklaQUNJw5NOXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gU1dJVENIIE9SR0FOSVpBVElPTlxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBSZXF1ZXN0IHBhcmEgY2FtYmlhciBkZSBvcmdhbml6YWNpw7NuIGFjdGl2YS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTd2l0Y2hPcmdSZXF1ZXN0IHtcbiAgb3JnYW5pemF0aW9uSWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZXNwb25zZSBkZSBjYW1iaW8gZGUgb3JnYW5pemFjacOzbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTd2l0Y2hPcmdSZXNwb25zZSB7XG4gIG9wZXJhdGlvbklkOiBzdHJpbmc7XG4gIGZpcmViYXNlVG9rZW46IHN0cmluZztcbiAgYWN0aXZlT3JnOiBzdHJpbmc7XG4gIC8qKiBOdWV2byBKV1QgY29uIGFjdGl2ZU9yZyBhY3R1YWxpemFkby4gRWwgRkUgbG8gYWxtYWNlbmEgcGFyYSBxdWUgZWxcbiAgICogIGJvb3RzdHJhcCBwb3N0LXJlZnJlc2ggdXNlIGxhIG9yZyBjb3JyZWN0YSBlbiB2ZXogZGVsIEpXVCBjYWNoZWFkby4gKi9cbiAgYWNjZXNzVG9rZW4/OiBzdHJpbmc7XG4gIGV4cGlyZXNJbj86IG51bWJlcjtcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEVWRU5UT1MgREUgU0lOQ1JPTklaQUNJw5NOXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKiogVGlwb3MgZGUgZXZlbnRvcyBkZSBzaW5jcm9uaXphY2nDs24gZW50cmUgcGVzdGHDsWFzICovXG5leHBvcnQgdHlwZSBBdXRoU3luY0V2ZW50VHlwZSA9XG4gIHwgJ0xPR0lOJ1xuICB8ICdMT0dPVVQnXG4gIHwgJ1RPS0VOX1JFRlJFU0gnXG4gIHwgJ1BFUk1JU1NJT05TX1VQREFURSdcbiAgfCAnT1JHX1NXSVRDSCc7XG5cbi8qKlxuICogRXZlbnRvIGRlIHNpbmNyb25pemFjacOzbiBlbnRyZSBwZXN0YcOxYXMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXV0aFN5bmNFdmVudCB7XG4gIHR5cGU6IEF1dGhTeW5jRXZlbnRUeXBlO1xuICB0aW1lc3RhbXA6IG51bWJlcjtcbiAgcGF5bG9hZD86IHtcbiAgICBhY2Nlc3NUb2tlbj86IHN0cmluZztcbiAgICByZWZyZXNoVG9rZW4/OiBzdHJpbmc7IC8vIFRva2VuIHJvdGF0aW9uIHN1cHBvcnRcbiAgICBleHBpcmVzQXQ/OiBudW1iZXI7XG4gICAgYWN0aXZlT3JnPzogc3RyaW5nO1xuICB9O1xufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gSldUIENMQUlNU1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBDbGFpbXMgZGVsIEpXVCBkZSBhY2Nlc28uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSldUQ2xhaW1zIHtcbiAgLyoqIFVzZXIgSUQgKi9cbiAgdWlkOiBzdHJpbmc7XG4gIC8qKiBFbWFpbCAqL1xuICBlbWFpbDogc3RyaW5nO1xuICAvKiogU2Vzc2lvbiBJRCAqL1xuICBzaWQ/OiBzdHJpbmc7XG4gIC8qKiBVc3VhcmlvIHRpZW5lIHN1c2NyaXBjacOzbiBwcmVtaXVtIGFjdGl2YSAqL1xuICBwcmVtaXVtPzogYm9vbGVhbjtcbiAgLyoqIEFjdGl2ZSBvcmdhbml6YXRpb24gSUQgKEpXVCBjbGFpbSBcIm9yZ1wiKSAqL1xuICBvcmc/OiBzdHJpbmc7XG4gIC8qKiBJc3N1ZWQgYXQgKi9cbiAgaWF0OiBudW1iZXI7XG4gIC8qKiBFeHBpcmF0aW9uICovXG4gIGV4cDogbnVtYmVyO1xufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gU1RPUkFHRVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBEYXRvcyBwZXJzaXN0aWRvcyBlbiBzdG9yYWdlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFN0b3JlZEF1dGhTdGF0ZSB7XG4gIGFjY2Vzc1Rva2VuOiBzdHJpbmc7XG4gIHJlZnJlc2hUb2tlbjogc3RyaW5nO1xuICByb2xlczogc3RyaW5nW107XG4gIHBlcm1pc3Npb25zOiBzdHJpbmdbXTtcbiAgaXNTdXBlckFkbWluOiBib29sZWFuO1xuICBpc1ByZW1pdW0/OiBib29sZWFuO1xuICBleHBpcmVzQXQ/OiBudW1iZXI7XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBERVZJQ0UgUkVHSVNUUkFUSU9OIChQdXNoIE5vdGlmaWNhdGlvbnMpXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIFBsYXRhZm9ybWFzIHNvcG9ydGFkYXMgcGFyYSBwdXNoIG5vdGlmaWNhdGlvbnMuXG4gKi9cbmV4cG9ydCB0eXBlIERldmljZVBsYXRmb3JtID0gJ3dlYicgfCAnaW9zJyB8ICdhbmRyb2lkJztcblxuLyoqXG4gKiBSZXF1ZXN0IHBhcmEgcmVnaXN0cmFyIHVuIGRpc3Bvc2l0aXZvLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlZ2lzdGVyRGV2aWNlUmVxdWVzdCB7XG4gIC8qKiBGQ00gdG9rZW4gZGVsIGRpc3Bvc2l0aXZvICovXG4gIHRva2VuOiBzdHJpbmc7XG4gIC8qKiBQbGF0YWZvcm1hIGRlbCBkaXNwb3NpdGl2byAqL1xuICBwbGF0Zm9ybTogRGV2aWNlUGxhdGZvcm07XG4gIC8qKiBOYXZlZ2Fkb3IgKHNvbG8gd2ViKSAqL1xuICBicm93c2VyPzogc3RyaW5nO1xuICAvKiogU2lzdGVtYSBvcGVyYXRpdm8gKi9cbiAgb3M/OiBzdHJpbmc7XG4gIC8qKiBWZXJzacOzbiBkZSBsYSBhcGxpY2FjacOzbiAqL1xuICBhcHBWZXJzaW9uPzogc3RyaW5nO1xuICAvKiogTm9tYnJlIGFtaWdhYmxlIGRlbCBkaXNwb3NpdGl2byAqL1xuICBuYW1lPzogc3RyaW5nO1xuICAvKiogTWV0YWRhdGEgYWRpY2lvbmFsICovXG4gIG1ldGFkYXRhPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbn1cblxuLyoqXG4gKiBSZXNwb25zZSBkZSByZWdpc3RybyBkZSBkaXNwb3NpdGl2by5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZWdpc3RlckRldmljZVJlc3BvbnNlIHtcbiAgb3BlcmF0aW9uSWQ6IHN0cmluZztcbiAgZGV2aWNlOiB7XG4gICAgZGV2aWNlSWQ6IHN0cmluZztcbiAgICB0b2tlbjogc3RyaW5nO1xuICAgIHBsYXRmb3JtOiBEZXZpY2VQbGF0Zm9ybTtcbiAgICBicm93c2VyPzogc3RyaW5nO1xuICAgIG9zPzogc3RyaW5nO1xuICAgIGxhc3RBY3RpdmU6IHN0cmluZztcbiAgICBjcmVhdGVkQXQ6IHN0cmluZztcbiAgfTtcbiAgLyoqIHRydWUgc2kgZXMgdW4gbnVldm8gZGlzcG9zaXRpdm8sIGZhbHNlIHNpIHNlIGFjdHVhbGl6w7MgdW5vIGV4aXN0ZW50ZSAqL1xuICBpc05ldzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBSZXN1bHRhZG8gZGUgaGFiaWxpdGFyIG5vdGlmaWNhY2lvbmVzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEVuYWJsZU5vdGlmaWNhdGlvbnNSZXN1bHQge1xuICAvKiogU2kgc2Ugb3Rvcmdhcm9uIGxvcyBwZXJtaXNvcyAqL1xuICBncmFudGVkOiBib29sZWFuO1xuICAvKiogRkNNIHRva2VuIChzb2xvIHNpIGdyYW50ZWQ9dHJ1ZSkgKi9cbiAgdG9rZW4/OiBzdHJpbmc7XG4gIC8qKiBTaSBlbCBkaXNwb3NpdGl2byBmdWUgcmVnaXN0cmFkbyBlbiBlbCBiYWNrZW5kICovXG4gIHJlZ2lzdGVyZWQ/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIEVzdGFkbyBkZSBwZXJtaXNvcyBkZSBub3RpZmljYWNpw7NuLlxuICovXG5leHBvcnQgdHlwZSBOb3RpZmljYXRpb25QZXJtaXNzaW9uU3RhdGUgPSAnZ3JhbnRlZCcgfCAnZGVuaWVkJyB8ICdkZWZhdWx0JyB8ICd1bnN1cHBvcnRlZCc7XG5cbi8qKlxuICogUmVzdWx0YWRvIGRlbCByZWdpc3RybyBtYW51YWwgZGUgZGlzcG9zaXRpdm8uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVnaXN0ZXJEZXZpY2VSZXN1bHQge1xuICAvKiogU2kgZWwgZGlzcG9zaXRpdm8gZnVlIHJlZ2lzdHJhZG8gZXhpdG9zYW1lbnRlICovXG4gIHJlZ2lzdGVyZWQ6IGJvb2xlYW47XG4gIC8qKiBJRCBkZWwgZGlzcG9zaXRpdm8gKHNvbG8gc2kgcmVnaXN0ZXJlZD10cnVlKSAqL1xuICBkZXZpY2VJZD86IHN0cmluZztcbiAgLyoqIEZDTSB0b2tlbiB1c2FkbyBwYXJhIGVsIHJlZ2lzdHJvICovXG4gIHRva2VuPzogc3RyaW5nO1xuICAvKiogTWVuc2FqZSBkZSBlcnJvciAoc29sbyBzaSByZWdpc3RlcmVkPWZhbHNlKSAqL1xuICBlcnJvcj86IHN0cmluZztcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIERFVklDRSBNQU5BR0VNRU5UIChEZXRlY2Npw7NuIGRlIGRpc3Bvc2l0aXZvcyBudWV2b3MpXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIEVzdGFkb3MgcG9zaWJsZXMgZGUgdW4gZGlzcG9zaXRpdm8uXG4gKi9cbmV4cG9ydCB0eXBlIERldmljZVN0YXR1cyA9ICdhY3RpdmUnIHwgJ3BlbmRpbmdfYXBwcm92YWwnIHwgJ2Jsb2NrZWQnO1xuXG4vKipcbiAqIEluZm9ybWFjacOzbiBjb21wbGV0YSBkZSB1biBkaXNwb3NpdGl2byByZWdpc3RyYWRvLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERldmljZUluZm8ge1xuICAvKiogSUQgw7puaWNvIGRlbCBkaXNwb3NpdGl2byAqL1xuICBkZXZpY2VJZDogc3RyaW5nO1xuICAvKiogUGxhdGFmb3JtYSBkZWwgZGlzcG9zaXRpdm8gKi9cbiAgcGxhdGZvcm06IERldmljZVBsYXRmb3JtO1xuICAvKiogTmF2ZWdhZG9yIChzb2xvIHdlYikgKi9cbiAgYnJvd3Nlcj86IHN0cmluZztcbiAgLyoqIFNpc3RlbWEgb3BlcmF0aXZvICovXG4gIG9zPzogc3RyaW5nO1xuICAvKiogTm9tYnJlIGFtaWdhYmxlIGRlbCBkaXNwb3NpdGl2byAqL1xuICBuYW1lPzogc3RyaW5nO1xuICAvKiogRXN0YWRvIGFjdHVhbCBkZWwgZGlzcG9zaXRpdm8gKi9cbiAgc3RhdHVzOiBEZXZpY2VTdGF0dXM7XG4gIC8qKiBEaXJlY2Npw7NuIElQIGRlbCDDumx0aW1vIGFjY2VzbyAqL1xuICBpcEFkZHJlc3M/OiBzdHJpbmc7XG4gIC8qKiBVYmljYWNpw7NuIGdlb2dyw6FmaWNhIGFwcm94aW1hZGEgKi9cbiAgbG9jYXRpb24/OiBzdHJpbmc7XG4gIC8qKiDDmmx0aW1hIGFjdGl2aWRhZCAqL1xuICBsYXN0QWN0aXZlOiBzdHJpbmc7XG4gIC8qKiBGZWNoYSBkZSBjcmVhY2nDs24vcmVnaXN0cm8gKi9cbiAgY3JlYXRlZEF0OiBzdHJpbmc7XG4gIC8qKiBGZWNoYSBkZSBhcHJvYmFjacOzbiAoc2kgYXBsaWNhKSAqL1xuICBhcHByb3ZlZEF0Pzogc3RyaW5nO1xuICAvKiogRmVjaGEgZGUgYmxvcXVlbyAoc2kgYXBsaWNhKSAqL1xuICBibG9ja2VkQXQ/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmVzcG9uc2UgZGUgbGlzdGFyIGRpc3Bvc2l0aXZvcyBkZWwgdXN1YXJpby5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMaXN0RGV2aWNlc1Jlc3BvbnNlIHtcbiAgb3BlcmF0aW9uSWQ6IHN0cmluZztcbiAgZGV2aWNlczogRGV2aWNlSW5mb1tdO1xufVxuXG4vKipcbiAqIFJlc3BvbnNlIGRlIGFjY2nDs24gc29icmUgZGlzcG9zaXRpdm8gKGJsb2NrL2FwcHJvdmUvZGVsZXRlKS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEZXZpY2VBY3Rpb25SZXN1bHQge1xuICBvcGVyYXRpb25JZDogc3RyaW5nO1xuICBzdWNjZXNzOiBib29sZWFuO1xuICBtZXNzYWdlOiBzdHJpbmc7XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBTRVNTSU9OIE1BTkFHRU1FTlQgKEdlc3Rpw7NuIGRlIHNlc2lvbmVzIGFjdGl2YXMpXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIEluZm9ybWFjacOzbiBkZSB1bmEgc2VzacOzbiBhY3RpdmEuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2Vzc2lvbkluZm8ge1xuICAvKiogSUQgw7puaWNvIGRlIGxhIHNlc2nDs24gKi9cbiAgc2Vzc2lvbklkOiBzdHJpbmc7XG4gIC8qKiBJRCBkZWwgZGlzcG9zaXRpdm8gYXNvY2lhZG8gKHNpIGV4aXN0ZSkgKi9cbiAgZGV2aWNlSWQ/OiBzdHJpbmc7XG4gIC8qKiBJbmZvcm1hY2nDs24gZGVsIGRpc3Bvc2l0aXZvIChVc2VyLUFnZW50KSAqL1xuICBkZXZpY2VJbmZvPzogc3RyaW5nO1xuICAvKiogRGlyZWNjacOzbiBJUCBkZSBsYSBzZXNpw7NuICovXG4gIGlwPzogc3RyaW5nO1xuICAvKiogVWJpY2FjacOzbiBnZW9ncsOhZmljYSBhcHJveGltYWRhICovXG4gIGxvY2F0aW9uPzogc3RyaW5nO1xuICAvKiogRmVjaGEgZGUgY3JlYWNpw7NuIGRlIGxhIHNlc2nDs24gKi9cbiAgY3JlYXRlZEF0OiBzdHJpbmc7XG4gIC8qKiBGZWNoYSBkZSBleHBpcmFjacOzbiBkZSBsYSBzZXNpw7NuICovXG4gIGV4cGlyZXNBdDogc3RyaW5nO1xuICAvKiogSW5kaWNhIHNpIGVzIGxhIHNlc2nDs24gYWN0dWFsIGRlbCB1c3VhcmlvICovXG4gIGlzQ3VycmVudDogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBSZXNwb25zZSBkZSBsaXN0YXIgc2VzaW9uZXMgYWN0aXZhcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMaXN0U2Vzc2lvbnNSZXNwb25zZSB7XG4gIG9wZXJhdGlvbklkOiBzdHJpbmc7XG4gIHNlc3Npb25zOiBTZXNzaW9uSW5mb1tdO1xufVxuXG4vKipcbiAqIFJlc3BvbnNlIGRlIHJldm9jYXIgc2VzacOzbihlcykuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmV2b2tlU2Vzc2lvbnNSZXNwb25zZSB7XG4gIG9wZXJhdGlvbklkOiBzdHJpbmc7XG4gIHN1Y2Nlc3M6IGJvb2xlYW47XG4gIC8qKiBOw7ptZXJvIGRlIHNlc2lvbmVzIHJldm9jYWRhcyAqL1xuICBzZXNzaW9uc1Jldm9rZWQ6IG51bWJlcjtcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIERFVklDRSBBQ1RJT04gKEFjY2lvbmVzIGRlc2RlIGVtYWlsIGRlIGFsZXJ0YSlcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogUmVxdWVzdCBwYXJhIGVqZWN1dGFyIGFjY2nDs24gZGUgZGlzcG9zaXRpdm8gZGVzZGUgZW1haWwuXG4gKiBFbCB0b2tlbiB2aWVuZSBlbiBsYSBVUkwgZGVsIGVtYWlsIGRlIGFsZXJ0YS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEZXZpY2VBY3Rpb25SZXF1ZXN0IHtcbiAgLyoqIFRva2VuIEpXVCBkZSBhY2Npw7NuICgyNGgsIHVuIHNvbG8gdXNvKSAqL1xuICB0b2tlbjogc3RyaW5nO1xufVxuXG4vKipcbiAqIFJlc3BvbnNlIGRlIGVqZWN1dGFyIGFjY2nDs24gZGUgZGlzcG9zaXRpdm8uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGV2aWNlQWN0aW9uUmVzcG9uc2Uge1xuICBvcGVyYXRpb25JZDogc3RyaW5nO1xuICAvKiogU2kgbGEgYWNjacOzbiBmdWUgZWplY3V0YWRhIGV4aXRvc2FtZW50ZSAqL1xuICBzdWNjZXNzOiBib29sZWFuO1xuICAvKiogQWNjacOzbiBlamVjdXRhZGEgKHJlZnVzZSwgYXBwcm92ZSwgYmxvY2spICovXG4gIGFjdGlvbjogc3RyaW5nO1xuICAvKiogSUQgZGVsIGRpc3Bvc2l0aXZvIGFmZWN0YWRvICovXG4gIGRldmljZUlkOiBzdHJpbmc7XG4gIC8qKiBOw7ptZXJvIGRlIHNlc2lvbmVzIHJldm9jYWRhcyAoc2kgYWN0aW9uPXJlZnVzZS9ibG9jaykgKi9cbiAgc2Vzc2lvbnNSZXZva2VkPzogbnVtYmVyO1xuICAvKiogTWVuc2FqZSBkZXNjcmlwdGl2byAqL1xuICBtZXNzYWdlOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmVzcG9uc2UgZGUgdmFsaWRhciB0b2tlbiBkZSBhY2Npw7NuIChzaW4gZWplY3V0YXIpLlxuICogVXNhZG8gcGFyYSBtb3N0cmFyIGNvbmZpcm1hY2nDs24gYWwgdXN1YXJpbyBhbnRlcyBkZSBlamVjdXRhci5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBWYWxpZGF0ZUFjdGlvblJlc3BvbnNlIHtcbiAgb3BlcmF0aW9uSWQ6IHN0cmluZztcbiAgLyoqIFNpIGVsIHRva2VuIGVzIHbDoWxpZG8gKi9cbiAgdmFsaWQ6IGJvb2xlYW47XG4gIC8qKiBUaXBvIGRlIGFjY2nDs24gKGRldmljZTpyZWZ1c2UsIGRldmljZTphcHByb3ZlLCBldGMuKSAqL1xuICBhY3Rpb25UeXBlPzogc3RyaW5nO1xuICAvKiogVGlwbyBkZSByZWN1cnNvIG9iamV0aXZvIChkZXZpY2UsIGRvY3VtZW50LCBldGMuKSAqL1xuICB0YXJnZXRUeXBlPzogc3RyaW5nO1xuICAvKiogSUQgZGVsIHJlY3Vyc28gb2JqZXRpdm8gKi9cbiAgdGFyZ2V0SWQ/OiBzdHJpbmc7XG4gIC8qKiBNZW5zYWplIGRlIGVycm9yIChzaSB2YWxpZD1mYWxzZSkgKi9cbiAgbWVzc2FnZT86IHN0cmluZztcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIE9BVVRIIChMb2dpbiBzb2NpYWwpXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIFByb3ZlZWRvcmVzIE9BdXRoIHNvcG9ydGFkb3MuXG4gKi9cbmV4cG9ydCB0eXBlIE9BdXRoUHJvdmlkZXIgPSAnZ29vZ2xlJyB8ICdhcHBsZScgfCAnbWljcm9zb2Z0JztcblxuLyoqXG4gKiBSZXN1bHRhZG8gZXhpdG9zbyBkZSBmbHVqbyBPQXV0aC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPQXV0aFJlc3VsdCB7XG4gIC8qKiBUb2tlbiBkZSBhY2Nlc28gSldUICovXG4gIGFjY2Vzc1Rva2VuOiBzdHJpbmc7XG4gIC8qKiBUb2tlbiBkZSByZWZyZXNjbyAqL1xuICByZWZyZXNoVG9rZW46IHN0cmluZztcbiAgLyoqIFRva2VuIGRlIEZpcmViYXNlIChzaSBlc3TDoSBoYWJpbGl0YWRvKSAqL1xuICBmaXJlYmFzZVRva2VuPzogc3RyaW5nO1xuICAvKiogVGllbXBvIGRlIGV4cGlyYWNpw7NuIGVuIHNlZ3VuZG9zICovXG4gIGV4cGlyZXNJbjogbnVtYmVyO1xuICAvKiogUm9sZXMgZGVsIHVzdWFyaW8gKi9cbiAgcm9sZXM/OiBzdHJpbmdbXTtcbiAgLyoqIFBlcm1pc29zIGRlbCB1c3VhcmlvICovXG4gIHBlcm1pc3Npb25zPzogc3RyaW5nW107XG4gIC8qKiBJbmRpY2Egc2kgZXMgdW4gdXN1YXJpbyBudWV2byAocmVjacOpbiBjcmVhZG8pICovXG4gIGlzTmV3VXNlcj86IGJvb2xlYW47XG4gIC8qKiBJbmRpY2Egc2kgbGEgY3VlbnRhIGZ1ZSB2aW5jdWxhZGEgYSB1c3VhcmlvIGV4aXN0ZW50ZSAqL1xuICBsaW5rZWQ/OiBib29sZWFuO1xuICAvKipcbiAgICogYHRydWVgIHNpIGVsIGJhY2tlbmQgZXhpZ2UgdmVyaWZpY2FjacOzbiBNRkEgdHJhcyBlbCBPQXV0aC4gRW4gZXNlIGNhc29cbiAgICogTk8gdmllbmVuIGBhY2Nlc3NUb2tlbmAvYHJlZnJlc2hUb2tlbmAg4oCUIGVsIGZsdWpvIGNvbnRpbsO6YSBjb24gYG1mYVRva2VuYC5cbiAgICovXG4gIG1mYVJlcXVpcmVkPzogYm9vbGVhbjtcbiAgLyoqIFRva2VuIHRlbXBvcmFsIHBhcmEgZWwgY2hhbGxlbmdlIE1GQSAocHJlc2VudGUgc2kgYG1mYVJlcXVpcmVkYCkuICovXG4gIG1mYVRva2VuPzogc3RyaW5nO1xuICAvKiogTcOpdG9kbyBNRkEgY29uZmlndXJhZG8gcG9yIGVsIHVzdWFyaW8gKHByZXNlbnRlIHNpIGBtZmFSZXF1aXJlZGApLiAqL1xuICBtZmFNZXRob2Q/OiBNRkFNZXRob2Q7XG59XG5cbi8qKlxuICogRXJyb3IgZGUgT0F1dGguXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT0F1dGhFcnJvciB7XG4gIC8qKiBDw7NkaWdvIGRlIGVycm9yICovXG4gIGNvZGU6IHN0cmluZztcbiAgLyoqIE1lbnNhamUgZGVzY3JpcHRpdm8gKi9cbiAgbWVzc2FnZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIERhdG9zIGVudmlhZG9zIGRlc2RlIHBvcHVwIGNhbGxiYWNrIHZpYSBwb3N0TWVzc2FnZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPQXV0aENhbGxiYWNrRGF0YSB7XG4gIC8qKiBUaXBvIGRlIG1lbnNhamUgKi9cbiAgdHlwZTogJ29hdXRoLWNhbGxiYWNrJztcbiAgLyoqIFRva2VucyAoc2kgw6l4aXRvKSAqL1xuICB0b2tlbnM/OiBPQXV0aFJlc3VsdDtcbiAgLyoqIEVycm9yIChzaSBmYWxsw7MpICovXG4gIGVycm9yPzogT0F1dGhFcnJvcjtcbiAgLyoqXG4gICAqIE5vbmNlIGRlbCBvcGVuZXIgKE0tMDcpLiBFbCBwb3B1cCBsbyByZWNpYmUgZGVsIGJhY2tlbmQgKHJvdW5kLXRyaXAgcG9yIGVsXG4gICAqIE9BdXRoU3RhdGUgZmlybWFkbykgeSBsbyByZWVudsOtYTsgZWwgb3BlbmVyIGxvIHZlcmlmaWNhIGNvbnRyYSBlbCBxdWUgZ2VuZXLDs1xuICAgKiBlbiBtZW1vcmlhIOKGkiByZWNoYXphIHVuIG9hdXRoX2NhbGxiYWNrX2RhdGEgZm9yamFkbyBlbiBsb2NhbFN0b3JhZ2UgcG9yIFhTUy5cbiAgICovXG4gIG5vbmNlPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3ZlZWRvciBPQXV0aCB2aW5jdWxhZG8gYWwgdXN1YXJpby5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMaW5rZWRQcm92aWRlciB7XG4gIC8qKiBOb21icmUgZGVsIHByb3ZlZWRvciAqL1xuICBwcm92aWRlcjogT0F1dGhQcm92aWRlcjtcbiAgLyoqIEVtYWlsIGFzb2NpYWRvIGFsIHByb3ZlZWRvciAqL1xuICBlbWFpbDogc3RyaW5nO1xuICAvKiogTm9tYnJlIGRlbCB1c3VhcmlvIGVuIGVsIHByb3ZlZWRvciAqL1xuICBuYW1lPzogc3RyaW5nO1xuICAvKiogVVJMIGRlIGltYWdlbiBkZSBwZXJmaWwgKi9cbiAgcGljdHVyZT86IHN0cmluZztcbiAgLyoqIEZlY2hhIGRlIHZpbmN1bGFjacOzbiAqL1xuICBsaW5rZWRBdDogc3RyaW5nO1xuICAvKiogw5psdGltYSB2ZXogcXVlIHNlIHVzw7MgcGFyYSBsb2dpbiAqL1xuICBsYXN0VXNlZEF0Pzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFJlc3BvbnNlIGRlIHZlcmlmaWNhciBzaSB0aWVuZSBjb250cmFzZcOxYS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBIYXNQYXNzd29yZFJlc3BvbnNlIHtcbiAgb3BlcmF0aW9uSWQ6IHN0cmluZztcbiAgaGFzUGFzc3dvcmQ6IGJvb2xlYW47XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBIQU5ETEUgKFVzZXJuYW1lKVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBSZXF1ZXN0IHBhcmEgYWN0dWFsaXphciBoYW5kbGUgKEB1c2VybmFtZSkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVXBkYXRlSGFuZGxlUmVxdWVzdCB7XG4gIGhhbmRsZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIFJlc3BvbnNlIGRlIGFjdHVhbGl6YXIgaGFuZGxlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFVwZGF0ZUhhbmRsZVJlc3BvbnNlIHtcbiAgb3BlcmF0aW9uSWQ6IHN0cmluZztcbiAgaGFuZGxlOiBzdHJpbmc7XG4gIHVwZGF0ZWQ6IGJvb2xlYW47XG59XG5cbi8qKlxuICogUmVxdWVzdCBwYXJhIHZlcmlmaWNhciBkaXNwb25pYmlsaWRhZCBkZSBoYW5kbGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2hlY2tIYW5kbGVSZXF1ZXN0IHtcbiAgaGFuZGxlOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmVzcG9uc2UgZGUgdmVyaWZpY2FyIGRpc3BvbmliaWxpZGFkIGRlIGhhbmRsZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDaGVja0hhbmRsZVJlc3BvbnNlIHtcbiAgb3BlcmF0aW9uSWQ6IHN0cmluZztcbiAgaGFuZGxlOiBzdHJpbmc7XG4gIGF2YWlsYWJsZTogYm9vbGVhbjtcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIExJTktFRCBQUk9WSURFUlMgKE9BdXRoKVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBSZXNwb25zZSBkZSBvYnRlbmVyIHByb3ZlZWRvcmVzIE9BdXRoIHZpbmN1bGFkb3MuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR2V0TGlua2VkUHJvdmlkZXJzUmVzcG9uc2Uge1xuICBvcGVyYXRpb25JZDogc3RyaW5nO1xuICBwcm92aWRlcnM6IExpbmtlZFByb3ZpZGVyW107XG59XG5cbi8qKlxuICogUmVxdWVzdCBwYXJhIGRlc3ZpbmN1bGFyIHVuIHByb3ZlZWRvciBPQXV0aC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBVbmxpbmtQcm92aWRlclJlcXVlc3Qge1xuICBwcm92aWRlcjogT0F1dGhQcm92aWRlcjtcbn1cblxuLyoqXG4gKiBSZXNwb25zZSBkZSBkZXN2aW5jdWxhciBwcm92ZWVkb3IuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVW5saW5rUHJvdmlkZXJSZXNwb25zZSB7XG4gIG9wZXJhdGlvbklkOiBzdHJpbmc7XG4gIHVubGlua2VkOiBib29sZWFuO1xufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEVNQUlMIENIQU5HRSDigJQgMy1zdGVwIGZsb3dcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5leHBvcnQgaW50ZXJmYWNlIEluaXRpYXRlRW1haWxDaGFuZ2VSZXF1ZXN0IHtcbiAgY3VycmVudFBhc3N3b3JkOiBzdHJpbmc7XG4gIG5ld0VtYWlsOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSW5pdGlhdGVFbWFpbENoYW5nZVJlc3BvbnNlIHtcbiAgb3BlcmF0aW9uSWQ6IHN0cmluZztcbiAgcGVuZGluZ0VtYWlsOiBzdHJpbmc7XG4gIHJlcXVlc3RMb2NhdGlvbjogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbmZpcm1FbWFpbENoYW5nZVN0ZXAxUmVxdWVzdCB7XG4gIGNvZGU6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb25maXJtRW1haWxDaGFuZ2VTdGVwMVJlc3BvbnNlIHtcbiAgb3BlcmF0aW9uSWQ6IHN0cmluZztcbiAgdmVyaWZpZWQ6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29uZmlybUVtYWlsQ2hhbmdlU3RlcDJSZXF1ZXN0IHtcbiAgY29kZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbmZpcm1FbWFpbENoYW5nZVN0ZXAyUmVzcG9uc2Uge1xuICBvcGVyYXRpb25JZDogc3RyaW5nO1xuICBzdWNjZXNzOiBib29sZWFuO1xuICBuZXdFbWFpbDogc3RyaW5nO1xufVxuIl19
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { DOCUMENT } from '@angular/common';
|
|
1
2
|
import { Injectable, inject } from '@angular/core';
|
|
2
3
|
import { Meta, Title } from '@angular/platform-browser';
|
|
3
4
|
import * as i0 from "@angular/core";
|
|
@@ -5,6 +6,7 @@ export class MetaService {
|
|
|
5
6
|
constructor() {
|
|
6
7
|
this.meta = inject(Meta);
|
|
7
8
|
this.titleService = inject(Title);
|
|
9
|
+
this.document = inject(DOCUMENT);
|
|
8
10
|
this.baseUrl = '';
|
|
9
11
|
this.defaultImage = '/assets/images/main-icon.png';
|
|
10
12
|
this.siteName = '';
|
|
@@ -44,6 +46,20 @@ export class MetaService {
|
|
|
44
46
|
this.meta.updateTag({ name: 'twitter:title', content: fullTitle });
|
|
45
47
|
this.meta.updateTag({ name: 'twitter:description', content: metadata.description });
|
|
46
48
|
this.meta.updateTag({ name: 'twitter:image', content: fullImageUrl });
|
|
49
|
+
// Canonical — evita contenido duplicado (trailing slash, params, idioma).
|
|
50
|
+
this.setCanonical(url);
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Setea (o actualiza) el <link rel="canonical"> del head. SSR-safe vía DOCUMENT.
|
|
54
|
+
*/
|
|
55
|
+
setCanonical(url) {
|
|
56
|
+
let link = this.document.querySelector("link[rel='canonical']");
|
|
57
|
+
if (!link) {
|
|
58
|
+
link = this.document.createElement('link');
|
|
59
|
+
link.setAttribute('rel', 'canonical');
|
|
60
|
+
this.document.head.appendChild(link);
|
|
61
|
+
}
|
|
62
|
+
link.setAttribute('href', url);
|
|
47
63
|
}
|
|
48
64
|
/**
|
|
49
65
|
* Resetear a valores por defecto
|
|
@@ -60,4 +76,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
60
76
|
providedIn: 'root',
|
|
61
77
|
}]
|
|
62
78
|
}] });
|
|
63
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
79
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0YS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZXJ2aWNlcy9tZXRhL21ldGEuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7QUFNeEQsTUFBTSxPQUFPLFdBQVc7SUFIeEI7UUFJVSxTQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3BCLGlCQUFZLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzdCLGFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFNUIsWUFBTyxHQUFHLEVBQUUsQ0FBQztRQUNiLGlCQUFZLEdBQUcsOEJBQThCLENBQUM7UUFDOUMsYUFBUSxHQUFHLEVBQUUsQ0FBQztLQWtFdkI7SUFoRUM7O09BRUc7SUFDSCxTQUFTLENBQUMsTUFBa0I7UUFDMUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDO1FBQzlCLElBQUksQ0FBQyxRQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQztRQUNoQyxJQUFJLE1BQU0sQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN4QixJQUFJLENBQUMsWUFBWSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUM7UUFDMUMsQ0FBQztJQUNILENBQUM7SUFFRDs7T0FFRztJQUNILGNBQWMsQ0FBQyxRQUFzQixFQUFFLElBQWE7UUFDbEQsTUFBTSxTQUFTLEdBQUcsR0FBRyxRQUFRLENBQUMsS0FBSyxNQUFNLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUN6RCxNQUFNLEdBQUcsR0FBRyxJQUFJLENB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QUcsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRDs7T0FFRztJQUNILGNBQWMsQ0FBQyxRQUFzQjtRQUNuQyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7K0dBeEVVLFdBQVc7bUhBQVgsV0FBVyxjQUZWLE1BQU07OzRGQUVQLFdBQVc7a0JBSHZCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNZXRhLCBUaXRsZSB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHsgUGFnZU1ldGFkYXRhLCBNZXRhQ29uZmlnIH0gZnJvbSAnLi90eXBlcyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBNZXRhU2VydmljZSB7XG4gIHByaXZhdGUgbWV0YSA9IGluamVjdChNZXRhKTtcbiAgcHJpdmF0ZSB0aXRsZVNlcnZpY2UgPSBpbmplY3QoVGl0bGUpO1xuICBwcml2YXRlIGRvY3VtZW50ID0gaW5qZWN0KERPQ1VNRU5UKTtcblxuICBwcml2YXRlIGJhc2VVcmwgPSAnJztcbiAgcHJpdmF0ZSBkZWZhdWx0SW1hZ2UgPSAnL2Fzc2V0cy9pbWFnZXMvbWFpbi1pY29uLnBuZyc7XG4gIHByaXZhdGUgc2l0ZU5hbWUgPSAnJztcblxuICAvKipcbiAgICogQ29uZmlndXJhciBlbCBzZXJ2aWNpbyBjb24gdmFsb3JlcyBkZSBsYSBhcHBcbiAgICovXG4gIGNvbmZpZ3VyZShjb25maWc6IE1ldGFDb25maWcpOiB2b2lkIHtcbiAgICB0aGlzLmJhc2VVcmwgPSBjb25maWcuYmFzZVVybDtcbiAgICB0aGlzLnNpdGVOYW1lID0gY29uZmlnLnNpdGVOYW1lO1xuICAgIGlmIChjb25maWcuZGVmYXVsdEltYWdlKSB7XG4gICAgICB0aGlzLmRlZmF1bHRJbWFnZSA9IGNvbmZpZy5kZWZhdWx0SW1hZ2U7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEFjdHVhbGl6YXIgbWV0YSB0YWdzIGRlIGxhIHDDoWdpbmFcbiAgICovXG4gIHVwZGF0ZVBhZ2VNZXRhKG1ldGFkYXRhOiBQYWdlTWV0YWRhdGEsIHBhdGg/OiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBmdWxsVGl0bGUgPSBgJHttZXRhZGF0YS50aXRsZX0gfCAke3RoaXMuc2l0ZU5hbWV9YDtcbiAgICBjb25zdCB1cmwgPSBwYXRoID8gYCR7dGhpcy5iYXNlVXJsfSR7cGF0aH1gIDogdGhpcy5iYXNlVXJsO1xuICAgIGNvbnN0IG9nSW1hZ2UgPSBtZXRhZGF0YS5vZ0ltYWdlIHx8IHRoaXMuZGVmYXVsdEltYWdlO1xuICAgIGNvbnN0IGZ1bGxJbWFnZVVybCA9IG9nSW1hZ2Uuc3RhcnRzV2l0aCgnaHR0cCcpID8gb2dJbWFnZSA6IGAke3RoaXMuYmFzZVVybH0ke29nSW1hZ2V9YDtcblxuICAgIC8vIFRpdGxlXG4gICAgdGhpcy50aXRsZVNlcnZpY2Uuc2V0VGl0bGUoZnVsbFRpdGxlKTtcblxuICAgIC8vIEJhc2ljIG1ldGEgdGFnc1xuICAgIHRoaXMubWV0YS51cGRhdGVUYWcoeyBuYW1lOiAnZGVzY3JpcHRpb24nLCBjb250ZW50OiBtZXRhZGF0YS5kZXNjcmlwdGlvbiB9KTtcbiAgICBpZiAobWV0YWRhdGEua2V5d29yZHMpIHtcbiAgICAgIHRoaXMubWV0YS51cGRhdGVUYWcoeyBuYW1lOiAna2V5d29yZHMnLCBjb250ZW50OiBtZXRhZGF0YS5rZXl3b3JkcyB9KTtcbiAgICB9XG5cbiAgICAvLyBPcGVuIEdyYXBoXG4gICAgdGhpcy5tZXRhLnVwZGF0ZVRhZyh7IHByb3BlcnR5OiAnb2c6dGl0bGUnLCBjb250ZW50OiBmdWxsVGl0bGUgfSk7XG4gICAgdGhpcy5tZXRhLnVwZGF0ZVRhZyh7IHByb3BlcnR5OiAnb2c6ZGVzY3JpcHRpb24nLCBjb250ZW50OiBtZXRhZGF0YS5kZXNjcmlwdGlvbiB9KTtcbiAgICB0aGlzLm1ldGEudXBkYXRlVGFnKHsgcHJvcGVydHk6ICdvZzp1cmwnLCBjb250ZW50OiB1cmwgfSk7XG4gICAgdGhpcy5tZXRhLnVwZGF0ZVRhZyh7IHByb3BlcnR5OiAnb2c6aW1hZ2UnLCBjb250ZW50OiBmdWxsSW1hZ2VVcmwgfSk7XG4gICAgdGhpcy5tZXRhLnVwZGF0ZVRhZyh7IHByb3BlcnR5OiAnb2c6dHlwZScsIGNvbnRlbnQ6IG1ldGFkYXRhLnR5cGUgfHwgJ3dlYnNpdGUnIH0pO1xuXG4gICAgLy8gVHdpdHRlciBDYXJkXG4gICAgdGhpcy5tZXRhLnVwZGF0ZVRhZyh7IG5hbWU6ICd0d2l0dGVyOnRpdGxlJywgY29udGVudDogZnVsbFRpdGxlIH0pO1xuICAgIHRoaXMubWV0YS51cGRhdGVUYWcoeyBuYW1lOiAndHdpdHRlcjpkZXNjcmlwdGlvbicsIGNvbnRlbnQ6IG1ldGFkYXRhLmRlc2NyaXB0aW9uIH0pO1xuICAgIHRoaXMubWV0YS51cGRhdGVUYWcoeyBuYW1lOiAndHdpdHRlcjppbWFnZScsIGNvbnRlbnQ6IGZ1bGxJbWFnZVVybCB9KTtcblxuICAgIC8vIENhbm9uaWNhbCDigJQgZXZpdGEgY29udGVuaWRvIGR1cGxpY2FkbyAodHJhaWxpbmcgc2xhc2gsIHBhcmFtcywgaWRpb21hKS5cbiAgICB0aGlzLnNldENhbm9uaWNhbCh1cmwpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldGVhIChvIGFjdHVhbGl6YSkgZWwgPGxpbmsgcmVsPVwiY2Fub25pY2FsXCI+IGRlbCBoZWFkLiBTU1Itc2FmZSB2w61hIERPQ1VNRU5ULlxuICAgKi9cbiAgcHJpdmF0ZSBzZXRDYW5vbmljYWwodXJsOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBsZXQgbGluayA9IHRoaXMuZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcImxpbmtbcmVsPSdjYW5vbmljYWwnXVwiKSBhcyBIVE1MTGlua0VsZW1lbnQgfCBudWxsO1xuICAgIGlmICghbGluaykge1xuICAgICAgbGluayA9IHRoaXMuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbGluaycpO1xuICAgICAgbGluay5zZXRBdHRyaWJ1dGUoJ3JlbCcsICdjYW5vbmljYWwnKTtcbiAgICAgIHRoaXMuZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChsaW5rKTtcbiAgICB9XG4gICAgbGluay5zZXRBdHRyaWJ1dGUoJ2hyZWYnLCB1cmwpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc2V0ZWFyIGEgdmFsb3JlcyBwb3IgZGVmZWN0b1xuICAgKi9cbiAgcmVzZXRUb0RlZmF1bHQobWV0YWRhdGE6IFBhZ2VNZXRhZGF0YSk6IHZvaWQge1xuICAgIHRoaXMudXBkYXRlUGFnZU1ldGEobWV0YWRhdGEpO1xuICB9XG59XG4iXX0=
|
package/esm2022/lib/version.mjs
CHANGED
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
* Current version of valtech-components.
|
|
3
3
|
* This is automatically updated during the publish process.
|
|
4
4
|
*/
|
|
5
|
-
export const VERSION = '4.0.
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
5
|
+
export const VERSION = '4.0.127';
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDdXJyZW50IHZlcnNpb24gb2YgdmFsdGVjaC1jb21wb25lbnRzLlxuICogVGhpcyBpcyBhdXRvbWF0aWNhbGx5IHVwZGF0ZWQgZHVyaW5nIHRoZSBwdWJsaXNoIHByb2Nlc3MuXG4gKi9cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gJzQuMC4xMjcnO1xuIl19
|