@esfaenza/core 15.2.139 → 15.2.141
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/esm2020/lib/app.component.mjs +2 -2
- package/esm2020/lib/core.module.mjs +2 -3
- package/esm2020/services/classes/app.state.mjs +24 -8
- package/fesm2015/esfaenza-core-services.mjs +34 -19
- package/fesm2015/esfaenza-core-services.mjs.map +1 -1
- package/fesm2015/esfaenza-core.mjs +3 -4
- package/fesm2015/esfaenza-core.mjs.map +1 -1
- package/fesm2020/esfaenza-core-services.mjs +34 -19
- package/fesm2020/esfaenza-core-services.mjs.map +1 -1
- package/fesm2020/esfaenza-core.mjs +3 -4
- package/fesm2020/esfaenza-core.mjs.map +1 -1
- package/package.json +1 -1
- package/services/classes/app.state.d.ts +6 -2
|
@@ -186,8 +186,7 @@ export class EsFaenzaCoreModule {
|
|
|
186
186
|
{ provide: SGR_DEBUG_MODE, useValue: config.debugMode ? (config.debugMode & DebugFlags.SignalR) == DebugFlags.SignalR : false },
|
|
187
187
|
{ provide: PREF_DEBUG_MODE, useValue: config.debugMode ? (config.debugMode & DebugFlags.Preferences) == DebugFlags.Preferences : false },
|
|
188
188
|
{ provide: ESC_DEBUG_MODE, useValue: config.debugMode ? (config.debugMode & DebugFlags.Charts) == DebugFlags.Charts : false },
|
|
189
|
-
|
|
190
|
-
{ provide: LOGIN_URL_LEGACY, useValue: config.legacyLogin !== null && config.legacyLogin !== undefined ? config.legacyLogin : true },
|
|
189
|
+
{ provide: LOGIN_URL_LEGACY, useValue: config.legacyLogin !== null && config.legacyLogin !== undefined ? config.legacyLogin : false },
|
|
191
190
|
{ provide: NAVBAR_EXTENSIONS, useValue: config.navbarExtensions ? config.navbarExtensions : [] },
|
|
192
191
|
{ provide: BaseAdapter, useClass: config?.chartsAdapter || BaseAdapter },
|
|
193
192
|
{ provide: BaseMessageService, useClass: config?.messageService || BaseMessageService },
|
|
@@ -231,4 +230,4 @@ export var DebugFlags;
|
|
|
231
230
|
DebugFlags[DebugFlags["Tabber"] = 128] = "Tabber";
|
|
232
231
|
DebugFlags[DebugFlags["All"] = 255] = "All";
|
|
233
232
|
})(DebugFlags || (DebugFlags = {}));
|
|
234
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvY29yZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsVUFBVTtBQUNWLE9BQU8sRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQTZCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6SCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUMvRSxPQUFPLEVBQVUsWUFBWSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM3RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDM0UsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxtQ0FBbUMsQ0FBQztBQUUzQyxVQUFVO0FBQ1YsT0FBTyxFQUFFLGlCQUFpQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDdkcsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDMUMsT0FBTyxzQkFBc0IsQ0FBQztBQUU5QixLQUFLO0FBQ0wsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGVBQWUsRUFBRSxvQkFBb0IsRUFBRSxnQ0FBZ0MsRUFBRSxjQUFjLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMvSyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsbUJBQW1CLEVBQUUseUJBQXlCLEVBQUUsY0FBYyxFQUFFLGdC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O2dCQUN6RCxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsR0FBRyxVQUFVLENBQUMsYUFBYSxDQUFDLElBQUksVUFBVSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFO2dCQUMzSSxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsR0FBRyxVQUFVLENBQUMsVUFBVSxDQUFDLElBQUksVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFO2dCQUNySSxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsR0FBRyxVQUFVLENBQUMsYUFBYSxDQUFDLElBQUksVUFBVSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFO2dCQUMzSSxFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsUUFBUSxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFO2dCQUMxSCxFQUFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLHFCQUFxQixFQUFFO2dCQUN2RSxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFO2dCQUM3SCxFQUFFLE9BQU8sRUFBRSxj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OztBQXdGRCxNQUFNLE9BQU8sd0JBQXdCO0NBcUNwQztBQUVELE1BQU0sQ0FBTixJQUFZLFVBV1g7QUFYRCxXQUFZLFVBQVU7SUFDbEIsMkNBQVEsQ0FBQTtJQUNSLDZEQUFzQixDQUFBO0lBQ3RCLHVEQUFtQixDQUFBO0lBQ25CLDZEQUFzQixDQUFBO0lBQ3RCLDJDQUFhLENBQUE7SUFDYixrREFBZ0IsQ0FBQTtJQUNoQiwwREFBb0IsQ0FBQTtJQUNwQixnREFBZSxDQUFBO0lBQ2YsaURBQWUsQ0FBQTtJQUNmLDJDQUFnQixDQUFBO0FBQ3BCLENBQUMsRUFYVyxVQUFVLEtBQVYsVUFBVSxRQVdyQiIsInNvdXJjZXNDb250ZW50IjpbIi8vIEFuZ3VsYXJcclxuaW1wb3J0IHsgTmdNb2R1bGUsIEVycm9ySGFuZGxlciwgTE9DQUxFX0lELCBBUFBfSU5JVElBTElaRVIsIE1vZHVsZVdpdGhQcm92aWRlcnMsIFR5cGUsIGlzRGV2TW9kZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEJyb3dzZXJBbmltYXRpb25zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlci9hbmltYXRpb25zJztcclxuaW1wb3J0IHsgUm91dGVzLCBSb3V0ZXJNb2R1bGUsIE5vUHJlbG9hZGluZywgUk9VVEVTIH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xyXG5pbXBvcnQgeyBNQVRfREFURV9GT1JNQVRTLCBNQVRfREFURV9MT0NBTEUgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZVwiO1xyXG5pbXBvcnQgeyBFVkVOVF9NQU5BR0VSX1BMVUdJTlMgfSBmcm9tIFwiQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3NlclwiO1xyXG5pbXBvcnQgeyBTZXJ2aWNlV29ya2VyTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL3NlcnZpY2Utd29ya2VyXCI7XHJcbmltcG9ydCB7IEh0dHBDbGllbnRNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2h0dHBcIjtcclxuaW1wb3J0IFwiQGFuZ3VsYXIvY29tbW9uL2xvY2FsZXMvZ2xvYmFsL2l0XCI7XHJcblxyXG4vLyBQbHVnaW5zXHJcbmltcG9ydCB7IE5neE1hdERhdGVBZGFwdGVyLCBOR1hfTUFUX0RBVEVfRk9STUFUUyB9IGZyb20gXCJAYW5ndWxhci1tYXRlcmlhbC1jb21wb25lbnRzL2RhdGV0aW1lLXBpY2tlclwiO1xyXG5pbXBvcnQgeyBDb29raWVTZXJ2aWNlIH0gZnJvbSBcIm5neC1jb29raWUtc2VydmljZVwiO1xyXG5pbXBvcnQgeyBUb2FzdHJNb2R1bGUgfSBmcm9tIFwibmd4LXRvYXN0clwiO1xyXG5pbXBvcnQgXCJ3aWRnc3Rlci93aWRnc3Rlci5qc1wiO1xyXG5cclxuLy8gRVNcclxuaW1wb3J0IHsgUHJlZmVyZW5jZXNNb2R1bGUsIFBSRUZfREVCVUdfTU9ERSwgUHJlZmVyZW5jZXNQZXJzaXN0b3IsIExvY2FsU3RvcmFnZVByZWZlcmVuY2VzUGVyc2lzdG9yLCBDYWNoZVBlcnNpc3RvciwgTG9jYWxTdG9yYWdlQ2FjaGVQZXJzaXN0b3IgfSBmcm9tIFwiQGVzZmFlbnphL3ByZWZlcmVuY2VzXCI7XHJcbmltcG9ydCB7IExvY2FsaXphdGlvbk1vZHVsZSwgTG9jYWxpemF0aW9uU2VydmljZSwgTG9jYWxpemF0aW9uTWlzc2luZ1BvbGljeSwgTE9DX0RFQlVHX01PREUsIEJhc2VMb2NhbGl6YXRpb24gfSBmcm9tIFwiQGVzZmFlbnphL2xvY2FsaXphdGlvbnNcIjtcclxuaW1wb3J0IHsgSHR0cHNlcnZpY2VNb2R1bGUsIEh0dHBTZXJ2aWNlRXh0ZW5zaW9ucywgSFRUUFNlcnZpY2UsIEhUVFBfREVCVUdfTU9ERSwgSFRUUF9JTlZBTElEQVRJT04gfSBmcm9tIFwiQGVzZmFlbnphL2h0dHBzZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFNpZ25hbHJOb3RpZmljYXRpb25zTW9kdWxlLCBTR1JfREVCVUdfTU9ERSwgQmFzZU1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSBcIkBlc2ZhZW56YS9zaWduYWxyLW5vdGlmaWNhdGlvbnNcIjtcclxuaW1wb3J0IHsgRm9ybXNBbmRWYWxpZGF0aW9uc01vZHVsZSwgTmd4RXhwYW5kZWREYXlKc0RhdGVBZGFwdGVyIH0gZnJvbSBcIkBlc2ZhZW56YS9mb3Jtcy1hbmQtdmFsaWRhdGlvbnNcIjtcclxuaW1wb3J0IHsgQWNjZXNzQ29udHJvbE1vZHVsZSwgQWNjZXNzQ29udHJvbFNlcnZpY2UsIEFDQ19ERUJVR19NT0RFIH0gZnJvbSBcIkBlc2ZhZW56YS9hY2Nlc3MtY29udHJvbFwiO1xyXG5pbXBvcnQgeyBCYXNlQWRhcHRlciwgRXNDaGFydHNNb2R1bGUsIEVTQ19ERUJVR19NT0RFIH0gZnJvbSBcIkBlc2ZhZW56YS9lcy1jaGFydHNcIjtcclxuaW1wb3J0IHsgRXh0ZW5zaW9uc01vZHVsZSwgRVhUX0RFQlVHX01PREUgfSBmcm9tIFwiQGVzZmFlbnphL2V4dGVuc2lvbnNcIjtcclxuaW1wb3J0IHsgQ29udGV4dE1lbnVNb2R1bGUgfSBmcm9tIFwiQGVzZmFlbnphL25neC1jb250ZXh0bWVudVwiO1xyXG5pbXBvcnQgeyBEcmFndWxhTW9kdWxlIH0gZnJvbSAnQGVzZmFlbnphL25neC1kcmFndWxhJztcclxuaW1wb3J0IHsgRXNUYWJsZU1vZHVsZSB9IGZyb20gXCJAZXNmYWVuemEvZXMtdGFibGVcIjtcclxuaW1wb3J0IHsgVEFCX0RFQlVHX01PREUgfSBmcm9tIFwiQGVzZmFlbnphL3RhYmJlclwiO1xyXG5cclxuLy8gQ29yZVxyXG5pbXBvcnQgeyBBUFBFcnJvckhhbmRsZXIsIEhUVFBTZXJ2aWNlRXh0ZW5zaW9ucywgQXBwbGljYXRpb25QcmVmZXJlbmNlc1BlcnNpc3RvciwgQXBwbGljYXRpb25DYWNoZVBlcnNpc3RvciwgU2Vzc2lvblJldHJpZXZlciwgT3V0Wm9uZUV2ZW50UGx1Z2luLCBUb2tlblNlcnZpY2UsIEdsb2JhbFNlYXJjaFNlcnZpY2UsIENvbXBsZXRlZEpvYlJlZGlyZWN0aW9uU2VydmljZSwgTWVudUZpbHRlcmluZ1NlcnZpY2UgfSBmcm9tIFwiQGVzZmFlbnphL2NvcmUvc2VydmljZXNcIjtcclxuaW1wb3J0IHsgUGFnZU5vdEZvdW5kQ29tcG9uZW50LCBTZXJ2ZXJFcnJvckNvbXBvbmVudCwgQW5ndWxhckVycm9yQ29tcG9uZW50LCBFeHRlcm5hbFBhZ2VzQ29tcG9uZW50LCBKYWNlTG9naW5Db21wb25lbnQsIFBhZ2VzQ29tcG9uZW50LCBSZWRpcmVjdGVyQ29tcG9uZW50LCBDb21wb25lbnRzTW9kdWxlIH0gZnJvbSBcIkBlc2ZhZW56YS9jb3JlL2NvbXBvbmVudHNcIjtcclxuaW1wb3J0IHsgQXBwbGljYXRpb25NZW51LCBFbnZPcHRpb25zLCBBY2NvdW50U2NvcGUsIE1FTlUsIE1FTlVfTE9DQUxJWkFUSU9OLCBSRURJUkVDVF9NQVAsIFVTRV9GQUtFX0FDQ0VTU19UT0tFTiwgTkFWQkFSX0VYVEVOU0lPTlMsIExPR0lOX1VSTF9MRUdBQ1kgfSBmcm9tIFwiQGVzZmFlbnphL2NvcmUvZG9tYWluXCJcclxuaW1wb3J0IHsgUk9VVEUsIEVNQkVEREVEX1JPVVRFIH0gZnJvbSBcIkBlc2ZhZW56YS9jb3JlL2RvbWFpblwiXHJcbmltcG9ydCB7IFRlbXBsYXRlQ29tbW9uIH0gZnJvbSBcIkBlc2ZhZW56YS9jb3JlL21vZHVsZXNcIjtcclxuXHJcbi8vIFJ4SnNcclxuaW1wb3J0IHsgY2F0Y2hFcnJvciwgc3dpdGNoTWFwLCB0YWtlLCB0YXAgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcclxuaW1wb3J0IHsgZm9ya0pvaW4sIE9ic2VydmFibGUsIG9mIH0gZnJvbSBcInJ4anNcIjtcclxuXHJcbi8vIEJvb3RzdHJhcFxyXG5pbXBvcnQgeyBQcm9ncmVzc2Jhck1vZHVsZSB9IGZyb20gXCJuZ3gtYm9vdHN0cmFwL3Byb2dyZXNzYmFyXCI7XHJcbmltcG9ydCB7IFRpbWVwaWNrZXJNb2R1bGUgfSBmcm9tIFwibmd4LWJvb3RzdHJhcC90aW1lcGlja2VyXCI7XHJcbmltcG9ydCB7IEJzRHJvcGRvd25Nb2R1bGUgfSBmcm9tIFwibmd4LWJvb3RzdHJhcC9kcm9wZG93blwiO1xyXG5pbXBvcnQgeyBUb29sdGlwTW9kdWxlIH0gZnJvbSBcIm5neC1ib290c3RyYXAvdG9vbHRpcFwiO1xyXG5pbXBvcnQgeyBNb2RhbE1vZHVsZSB9IGZyb20gXCJuZ3gtYm9vdHN0cmFwL21vZGFsXCI7XHJcblxyXG4vLyBBcHBsaWNhemlvbmVcclxuaW1wb3J0IHsgQXBwQ29tcG9uZW50IH0gZnJvbSBcIi4vYXBwLmNvbXBvbmVudFwiO1xyXG5cclxuLy8gUmVwb3NpdG9yaWVzXHJcbmNvbnN0IEdFVF9KYWNlX0dldEFjY291bnRTY29wZTogc3RyaW5nID0gXCIvYXBpL0phY2UvR2V0QWNjb3VudFNjb3BlXCI7XHJcbmNvbnN0IEdFVF9BcHBDb25maWdfR2V0QXBwQ29uZmlnOiBzdHJpbmcgPSBcIi9hcGkvQXBwQ29uZmlnL0dldEFwcENvbmZpZ1wiO1xyXG5cclxuZGVjbGFyZSB2YXIgbXljb25maWc6IEVudk9wdGlvbnM7XHJcblxyXG5jb25zdCBiYXNlQXBwUm91dGVzOiBSb3V0ZXMgPSBbXHJcbiAgICB7IHBhdGg6IFwiXCIsIHJlZGlyZWN0VG86IFwicGFnZXMve2VtcHR5Um91dGVSZWRpcmVjdH1cIiwgcGF0aE1hdGNoOiBcImZ1bGxcIiB9LFxyXG4gICAgeyBwYXRoOiBFTUJFRERFRF9ST1VURSwgY29tcG9uZW50OiBFeHRlcm5hbFBhZ2VzQ29tcG9uZW50IH0sXHJcbiAgICB7IHBhdGg6IFJPVVRFLCBjb21wb25lbnQ6IFBhZ2VzQ29tcG9uZW50IH0sXHJcbiAgICB7IHBhdGg6IFwicmRcIiwgY29tcG9uZW50OiBSZWRpcmVjdGVyQ29tcG9uZW50IH0sXHJcbiAgICB7IHBhdGg6IFwibG9naW5cIiwgY29tcG9uZW50OiBKYWNlTG9naW5Db21wb25lbnQgfSxcclxuICAgIHsgcGF0aDogXCJpc2VyclwiLCBjb21wb25lbnQ6IFNlcnZlckVycm9yQ29tcG9uZW50IH0sXHJcbiAgICB7IHBhdGg6IFwiYW5lcnJcIiwgY29tcG9uZW50OiBBbmd1bGFyRXJyb3JDb21wb25lbnQgfSxcclxuICAgIHsgcGF0aDogXCIqKlwiLCBjb21wb25lbnQ6IFBhZ2VOb3RGb3VuZENvbXBvbmVudCB9LFxyXG4gICAgXHJcbl07XHJcblxyXG5jb25zdCBNT0RVTEVTID0gW1xyXG4gICAgQnJvd3NlckFuaW1hdGlvbnNNb2R1bGUsXHJcbiAgICBIdHRwQ2xpZW50TW9kdWxlLFxyXG4gICAgVGVtcGxhdGVDb21tb24sXHJcbiAgICBDb21wb25lbnRzTW9kdWxlLFxyXG5cclxuICAgIC8vIEF0dGVuemlvbmUgYSBsYXNjaWFybG8gYXR0aXZvIGluIG5nIHNlcnZlOiBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL2lzc3Vlcy80NzQ1NVxyXG4gICAgU2VydmljZVdvcmtlck1vZHVsZS5yZWdpc3Rlcignbmdzdy13b3JrZXIuanMnLCB7IGVuYWJsZWQ6ICFpc0Rldk1vZGUoKSB9KSxcclxuICAgIFJvdXRlck1vZHVsZS5mb3JSb290KFtdLCB7IHVzZUhhc2g6IHRydWUsIHByZWxvYWRpbmdTdHJhdGVneTogTm9QcmVsb2FkaW5nLCBvblNhbWVVcmxOYXZpZ2F0aW9uOiBcInJlbG9hZFwiIH0pLFxyXG5cclxuICAgIC8vIEVTXHJcbiAgICBFc1RhYmxlTW9kdWxlLmZvclJvb3QoKSxcclxuICAgIEZvcm1zQW5kVmFsaWRhdGlvbnNNb2R1bGUuZm9yUm9vdCh7IGFjb2N1c3RvbTogXCJPXCIsIHNsaWRlck1vZGU6IHRydWUgfSksXHJcbiAgICBFeHRlbnNpb25zTW9kdWxlLmZvclJvb3QoKSxcclxuICAgIExvY2FsaXphdGlvbk1vZHVsZS5mb3JSb290KHsgbG9jYWxpemF0aW9uTWlzc2luZ1BvbGljeTogTG9jYWxpemF0aW9uTWlzc2luZ1BvbGljeS5QcmludFNvdXJjZSwgZGVmYXVsdExvY2FsZTogJ2l0LUlUJyB9KSxcclxuICAgIEFjY2Vzc0NvbnRyb2xNb2R1bGUuZm9yUm9vdCh7IGNvbnRleHRBd2FyZUtleTogXCJPXCIsIGRlZmF1bHRDb25kaXRpb246ICcoUjpKYWNlIEFkbWluIHx8IFI6SmFjZSBTdXBwb3J0KScgfSksXHJcbiAgICBIdHRwc2VydmljZU1vZHVsZS5mb3JSb290KCksXHJcbiAgICBTaWduYWxyTm90aWZpY2F0aW9uc01vZHVsZS5mb3JSb290KHsgZW5kcG9pbnRVcmw6ICdub3RpZnknLCB1c2VNZXNzYWdlUGFjazogdHJ1ZSB9KSxcclxuICAgIFByZWZlcmVuY2VzTW9kdWxlLmZvclJvb3QoeyByZXRyaWV2ZUFsbEF0U3RhcnQ6IHRydWUsIHNlc3Npb25SZXRyaWV2ZXI6IFNlc3Npb25SZXRyaWV2ZXIsIHByZWZlcmVuY2VQZXJzaXN0b3I6IEFwcGxpY2F0aW9uUHJlZmVyZW5jZXNQZXJzaXN0b3IsIGNhY2hlUGVyc2lzdG9yOiBBcHBsaWNhdGlvbkNhY2hlUGVyc2lzdG9yIH0pLFxyXG4gICAgRXNDaGFydHNNb2R1bGUuZm9yUm9vdCgpLFxyXG5cclxuICAgIC8vIEJvb3RzdHJhcFxyXG4gICAgVG9vbHRpcE1vZHVsZS5mb3JSb290KCksXHJcbiAgICBNb2RhbE1vZHVsZS5mb3JSb290KCksXHJcbiAgICBQcm9ncmVzc2Jhck1vZHVsZS5mb3JSb290KCksXHJcbiAgICBCc0Ryb3Bkb3duTW9kdWxlLmZvclJvb3QoKSxcclxuICAgIFRvYXN0ck1vZHVsZS5mb3JSb290KCksXHJcbiAgICBUaW1lcGlja2VyTW9kdWxlLmZvclJvb3QoKSxcclxuICAgIENvbnRleHRNZW51TW9kdWxlLmZvclJvb3QoKSxcclxuICAgIERyYWd1bGFNb2R1bGUuZm9yUm9vdCgpXHJcbl07XHJcblxyXG4vLyBHZW5lcmF0b3JlIGRlaSBmb3JtYXRpIGRhdGFcclxudmFyIGZvcm1hdHMgPSAoc3R5bGU6ICdsb25nJyB8ICdzaG9ydCcpID0+IHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgcGFyc2U6IHsgZGF0ZUlucHV0OiAnREQvTU0vWVlZWScgKyAoc3R5bGUgPT09ICdsb25nJyA/ICcgSEg6bW06c3MnIDogJycpIH0sXHJcbiAgICAgICAgZGlzcGxheToge1xyXG4gICAgICAgICAgICBkYXRlSW5wdXQ6ICdERC9NTS9ZWVlZJyArIChzdHlsZSA9PT0gJ2xvbmcnID8gJyBISDptbTpzcycgOiAnJyksXHJcbiAgICAgICAgICAgIG1vbnRoWWVhckxhYmVsOiAnTU0gWVlZWScsXHJcbiAgICAgICAgICAgIGRhdGVBMTF5TGFiZWw6ICdERC9NTS9ZWVlZJyArIChzdHlsZSA9PT0gJ2xvbmcnID8gJyBISDptbTpzcycgOiAnJyksXHJcbiAgICAgICAgICAgIG1vbnRoWWVhckExMXlMYWJlbDogJ01NIFlZWVknLFxyXG4gICAgICAgIH1cclxuICAgIH07XHJcbn1cclxuXHJcbmNvbnN0IGxvY2FsZUZhY3RvcnkgPSAobG9jOiBMb2NhbGl6YXRpb25TZXJ2aWNlKSA9PiBsb2MuU21hbGxMb2NhbGU7XHJcblxyXG5jb25zdCBQUk9WSURFUlMgPSBbXHJcbiAgICBDb29raWVTZXJ2aWNlLFxyXG5cclxuICAgIC8vIFByb3ZpZGVycyBhcHBsaWNhdGl2aVxyXG4gICAgeyBwcm92aWRlOiBFcnJvckhhbmRsZXIsIHVzZUNsYXNzOiBBUFBFcnJvckhhbmRsZXIgfSxcclxuICAgIHsgcHJvdmlkZTogRVZFTlRfTUFOQUdFUl9QTFVHSU5TLCB1c2VFeGlzdGluZzogT3V0Wm9uZUV2ZW50UGx1Z2luLCBtdWx0aTogdHJ1ZSB9LFxyXG4gICAgeyBwcm92aWRlOiBIdHRwU2VydmljZUV4dGVuc2lvbnMsIHVzZUNsYXNzOiBIVFRQU2VydmljZUV4dGVuc2lvbnMgfSxcclxuXHJcbiAgICAvLyBMb2NhbGUgZSBnZXN0aW9uaSBkZWxsZSBkYXRlXHJcbiAgICB7IHByb3ZpZGU6IExPQ0FMRV9JRCwgdXNlRmFjdG9yeTogbG9jYWxlRmFjdG9yeSwgZGVwczogW0xvY2FsaXphdGlvblNlcnZpY2VdIH0sXHJcbiAgICB7IHByb3ZpZGU6IE1BVF9EQVRFX0xPQ0FMRSwgdXNlRmFjdG9yeTogbG9jYWxlRmFjdG9yeSwgZGVwczogW0xvY2FsaXphdGlvblNlcnZpY2VdIH0sXHJcbiAgICB7IHByb3ZpZGU6IE1BVF9EQVRFX0ZPUk1BVFMsIHVzZVZhbHVlOiBmb3JtYXRzKCdzaG9ydCcpIH0sXHJcblxyXG4gICAgLy8gUXVlc3RpIGR1ZSBzb25vIHByb3ZpZGF0aSBkYWwgRm9ybXNBbmRWYWxpZGF0aW9uTW9kdWxlIHN0ZXNzbywgcGVyw7IgcXVlc3QndWx0aW1vIMOoIGRlZmluaXRvIGluIGZvclJvb3Qgc29sbyBsYXRvIGNvbXBvbmVudGkgc2hhcmVkLCBcclxuICAgIC8vIHF1aW5kaSBwZXIgcmVuZGVyZSBxdWVzdGkgcHJvdmlkZXIgZGlzcG9uaWJpbGkgYW5jaGUgYSBtb2R1bGkgZXN0ZXJuaSBkZXZvIHJpcHJvdmlkYXJsaSBhbmNoZSBxdWlcclxuICAgIHsgcHJvdmlkZTogTkdYX01BVF9EQVRFX0ZPUk1BVFMsIHVzZVZhbHVlOiBmb3JtYXRzKCdsb25nJykgfSxcclxuICAgIHsgcHJvdmlkZTogTmd4TWF0RGF0ZUFkYXB0ZXIsIHVzZUNsYXNzOiBOZ3hFeHBhbmRlZERheUpzRGF0ZUFkYXB0ZXIgfVxyXG5dO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICAgIGRlY2xhcmF0aW9uczogW0FwcENvbXBvbmVudF0sXHJcbiAgICBpbXBvcnRzOiBbLi4uTU9EVUxFU11cclxufSlcclxuZXhwb3J0IGNsYXNzIEVzRmFlbnphQ29yZU1vZHVsZSB7XHJcbiAgICBzdGF0aWMgZm9yUm9vdChjb25maWc/OiBFc0ZhZW56YUNvcmVNb2R1bGVDb25maWcpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPEVzRmFlbnphQ29yZU1vZHVsZT4ge1xyXG4gICAgICAgIGlmIChjb25maWcucm91dGVzKSB7XHJcbiAgICAgICAgICAgIC8vIEFnaWd1bnRhIGRlbGxhIHJvdXRlIGRpIGVtYmVkZGluZyBzZSBub24gZGljaGlhcmF0YSwgbGF0byBhZ2dpdW50YSBmYWNjaW8gaW4gbW9kbyBjaGUgbCdlbWJlZGRpbmcgc2lhIGRpc3BvbmliaWxlIHNvbG8gZGEgcm91dGUgaW50ZXJuZSAocGFnZXMgT0ssIHBhZ2VzX2V4dCBOT04gT0spXHJcbiAgICAgICAgICAgIGlmICghY29uZmlnLnJvdXRlcy5maW5kKHQgPT4gdC5wYXRoLnN0YXJ0c1dpdGgoXCJlbWJlZFwiKSkpXHJcbiAgICAgICAgICAgICAgICBjb25maWcucm91dGVzID0gWy4uLmNvbmZpZy5yb3V0ZXMsIHsgcGF0aDogXCJlbWJlZC86bW9kdWxlXCIsIGxvYWRDaGlsZHJlbjogKCkgPT4gaW1wb3J0KCdAZXNmYWVuemEvY29yZS9tb2R1bGVzJykudGhlbihtID0+IG0uRW1iZWRkaW5nTW9kdWxlKSB9XVxyXG5cclxuICAgICAgICAgICAgYmFzZUFwcFJvdXRlc1swXS5yZWRpcmVjdFRvID0gYHBhZ2VzLyR7Y29uZmlnLmVtcHR5Um91dGVSZWRpcmVjdCB8fCAnZGFzaGJvYXJkJ31gO1xyXG4gICAgICAgICAgICBiYXNlQXBwUm91dGVzLmZpbHRlcih0ID0+IFtcInBhZ2VzXCIsIFwicGFnZXNfZXh0XCJdLmluY2x1ZGVzKHQucGF0aCkpLmZvckVhY2gocGF0aCA9PiB7IHBhdGguY2hpbGRyZW4gPSBjb25maWcucm91dGVzLmZpbHRlcihyID0+ICFwYXRoLnBhdGguaW5jbHVkZXMoXCJwYWdlc19leHRcIikgfHwgIXIucGF0aC5zdGFydHNXaXRoKFwiZW1iZWRcIikpOyB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uZmlnLmRlYnVnTW9kZSA9ICghaXNEZXZNb2RlKCkgJiYgIWNvbmZpZy5mb3JjZURlYnVnTW9kZUZvclByb2RCdWlsZHMpID8gRGVidWdGbGFncy5Ob25lIDogKGNvbmZpZy5kZWJ1Z01vZGUgfHwgRGVidWdGbGFncy5BbGwpO1xyXG5cclxuICAgICAgICBsZXQgbWVyZ2VkQXBwSW5pdGlhbGl6ZXIgPSAoaHR0cDogSFRUUFNlcnZpY2UsIGJ0czogVG9rZW5TZXJ2aWNlLCBhYWM6IEFjY2Vzc0NvbnRyb2xTZXJ2aWNlLCBsb2M6IEJhc2VMb2NhbGl6YXRpb24pID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuICgpID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiJWNbQVBQX0lOSVRJQUxJWkVSXSBMb2FkaW5nIEFwcENvbmZpZyBhbmQgQWNjb3VudCBTY29wZS4uLlwiLCBcImJhY2tncm91bmQtY29sb3I6IHllbGxvd1wiKTtcclxuICAgICAgICAgICAgICAgIGxldCByZWFsT2JzZXJ2YWJsZSA9IGZvcmtKb2luKFxyXG4gICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYXBwQ29uZmlnOiBodHRwLmdldDxFbnZPcHRpb25zPihHRVRfQXBwQ29uZmlnX0dldEFwcENvbmZpZywgbnVsbCwgbnVsbCwgZmFsc2UpLnBpcGUoY2F0Y2hFcnJvcihfID0+IG9mKHt9KSkpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzY29wZTogaHR0cC5nZXQ8QWNjb3VudFNjb3BlPihHRVRfSmFjZV9HZXRBY2NvdW50U2NvcGUsIG51bGwsIG51bGwsIGZhbHNlKS5waXBlKGNhdGNoRXJyb3IoXyA9PiBvZihudWxsKSkpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBsb2NhbGU6IGxvYy5Mb2NhbGUucGlwZSh0YWtlKDEpLCBjYXRjaEVycm9yKF8gPT4gb2YoJ2l0LUlUJykpKSxcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgICAgICBsZXQgdXNlZE9ic2VydmFibGUgPSBjb25maWcub3B0aW9uc0FuZFNjb3BlUHJvdmlkZXIgfHwgcmVhbE9ic2VydmFibGU7XHJcblxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHVzZWRPYnNlcnZhYmxlLnBpcGUoXHJcbiAgICAgICAgICAgICAgICAgICAgdGFwKChyZXM6IHsgYXBwQ29uZmlnOiBFbnZPcHRpb25zLCBzY29wZTogQWNjb3VudFNjb3BlLCBsb2NhbGU6IHN0cmluZyB9KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG15Y29uZmlnID0gcmVzLmFwcENvbmZpZztcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gTCdhY2NvdW50IHNjb3BlIGxvIHByZW5kbyBkYWxsYSBRdWVyeSBhIGJhY2tlbmQgc29sbyBzZSBub24gdXNvIGlsIEZha2UgdG9rZW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFidHMuVVNFX0ZBS0VfQUNDRVNTX1RPS0VOKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnRzLmFjY291bnRTY29wZSA9IHJlcy5zY29wZTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiJWNbQVBQX0lOSVRJQUxJWkVSXSBhcHBDb25maWcgYW5kIHNjb3BlIHJlZ2lzdGVyZWRcIiwgXCJiYWNrZ3JvdW5kLWNvbG9yOiB5ZWxsb3dcIik7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoYnRzLmFjY291bnRTY29wZSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFhYy5pbml0aWFsaXplSWRlbnRpdHkoYnRzLmdldEphY2VJZGVudGl0eSgpKTtcclxuICAgICAgICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgICAgICAgICBzd2l0Y2hNYXAoXyA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghY29uZmlnLmluaXRpYWxpemVyRnVuY3Rpb24pXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gb2YoKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiJWNbQVBQX0lOSVRJQUxJWkVSXSBMb2FkaW5nIGN1c3RvbSBhcHBsaWNhdGlvbiBpbml0aWFsaXphdGlvblwiLCBcImJhY2tncm91bmQtY29sb3I6IHllbGxvd1wiKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNvbmZpZy5pbml0aWFsaXplckZ1bmN0aW9uKGh0dHAsIGJ0cywgYWFjKSgpLnBpcGUodGFwKF8gPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCIlY1tBUFBfSU5JVElBTElaRVJdIEluaXRpYWxpemF0aW9uIGlzIG92ZXJcIiwgXCJiYWNrZ3JvdW5kLWNvbG9yOiB5ZWxsb3dcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pKTtcclxuICAgICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIG5nTW9kdWxlOiBFc0ZhZW56YUNvcmVNb2R1bGUsXHJcbiAgICAgICAgICAgIHByb3ZpZGVyczogW1xyXG4gICAgICAgICAgICAgICAgLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqIFByb3ZpZGVyIHN0YXRpY2kgKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG4gICAgICAgICAgICAgICAgLi4uUFJPVklERVJTLFxyXG5cclxuICAgICAgICAgICAgICAgIC8vICoqKioqKioqKioqKioqKioqKioqKioqKiBQcm92aWRlciBjdXN0b21penphYmlsaSAqKioqKioqKioqKioqKioqKioqKioqKipcclxuICAgICAgICAgICAgICAgIC4uLighY29uZmlnLnJlZGlyZWN0aW9uTWFwID8gW10gOiBbeyBwcm92aWRlOiBSRURJUkVDVF9NQVAsIHVzZVZhbHVlOiBjb25maWcucmVkaXJlY3Rpb25NYXAgfV0pLFxyXG4gICAgICAgICAgICAgICAgeyBwcm92aWRlOiBBUFBfSU5JVElBTElaRVIsIHVzZUZhY3Rvcnk6IG1lcmdlZEFwcEluaXRpYWxpemVyLCBkZXBzOiBbSFRUUFNlcnZpY2UsIFRva2VuU2VydmljZSwgQWNjZXNzQ29udHJvbFNlcnZpY2UsIEJhc2VMb2NhbGl6YXRpb25dLCBtdWx0aTogdHJ1ZSB9LFxyXG4gICAgICAgICAgICAgICAgeyBwcm92aWRlOiBST1VURVMsIHVzZVZhbHVlOiBiYXNlQXBwUm91dGVzLCBtdWx0aTogdHJ1ZSB9LFxyXG4gICAgICAgICAgICAgICAgeyBwcm92aWRlOiBMT0NfREVCVUdfTU9ERSwgdXNlVmFsdWU6IGNvbmZpZy5kZWJ1Z01vZGUgPyAoY29uZmlnLmRlYnVnTW9kZSAmIERlYnVnRmxhZ3MuTG9jYWxpemF0aW9ucykgPT0gRGVidWdGbGFncy5Mb2NhbGl6YXRpb25zIDogZmFsc2UgfSxcclxuICAgICAgICAgICAgICAgIHsgcHJvdmlkZTogRVhUX0RFQlVHX01PREUsIHVzZVZhbHVlOiBjb25maWcuZGVidWdNb2RlID8gKGNvbmZpZy5kZWJ1Z01vZGUgJiBEZWJ1Z0ZsYWdzLkV4dGVuc2lvbnMpID09IERlYnVnRmxhZ3MuRXh0ZW5zaW9ucyA6IGZhbHNlIH0sXHJcbiAgICAgICAgICAgICAgICB7IHByb3ZpZGU6IEFDQ19ERUJVR19NT0RFLCB1c2VWYWx1ZTogY29uZmlnLmRlYnVnTW9kZSA/IChjb25maWcuZGVidWdNb2RlICYgRGVidWdGbGFncy5BY2Nlc3NDb250cm9sKSA9PSBEZWJ1Z0ZsYWdzLkFjY2Vzc0NvbnRyb2wgOiBmYWxzZSB9LFxyXG4gICAgICAgICAgICAgICAgeyBwcm92aWRlOiBIVFRQX0RFQlVHX01PREUsIHVzZVZhbHVlOiBjb25maWcuZGVidWdNb2RlID8gKGNvbmZpZy5kZWJ1Z01vZGUgJiBEZWJ1Z0ZsYWdzLkh0dHApID09IERlYnVnRmxhZ3MuSHR0cCA6IGZhbHNlIH0sXHJcbiAgICAgICAgICAgICAgICB7IHByb3ZpZGU6IEhUVFBfSU5WQUxJREFUSU9OLCB1c2VWYWx1ZTogY29uZmlnPy5odHRwSW52YWxpZGF0aW9uQ2FjaGUgfSxcclxuICAgICAgICAgICAgICAgIHsgcHJvdmlkZTogVEFCX0RFQlVHX01PREUsIHVzZVZhbHVlOiBjb25maWcuZGVidWdNb2RlID8gKGNvbmZpZy5kZWJ1Z01vZGUgJiBEZWJ1Z0ZsYWdzLlRhYmJlcikgPT0gRGVidWdGbGFncy5UYWJiZXIgOiBmYWxzZSB9LFxyXG4gICAgICAgICAgICAgICAgeyBwcm92aWRlOiBTR1JfREVCVUdfTU9ERSwgdXNlVmFsdWU6IGNvbmZpZy5kZWJ1Z01vZGUgPyAoY29uZmlnLmRlYnVnTW9kZSAmIERlYnVnRmxhZ3MuU2lnbmFsUikgPT0gRGVidWdGbGFncy5TaWduYWxSIDogZmFsc2UgfSxcclxuICAgICAgICAgICAgICAgIHsgcHJvdmlkZTogUFJFRl9ERUJVR19NT0RFLCB1c2VWYWx1ZTogY29uZmlnLmRlYnVnTW9kZSA/IChjb25maWcuZGVidWdNb2RlICYgRGVidWdGbGFncy5QcmVmZXJlbmNlcykgPT0gRGVidWdGbGFncy5QcmVmZXJlbmNlcyA6IGZhbHNlIH0sXHJcbiAgICAgICAgICAgICAgICB7IHByb3ZpZGU6IEVTQ19ERUJVR19NT0RFLCB1c2VWYWx1ZTogY29uZmlnLmRlYnVnTW9kZSA/IChjb25maWcuZGVidWdNb2RlICYgRGVidWdGbGFncy5DaGFydHMpID09IERlYnVnRmxhZ3MuQ2hhcnRzIDogZmFsc2UgfSxcclxuICAgICAgICAgICAgICAgIC8vVE9ETzogTlVPVk8gQVVUSFxyXG4gICAgICAgICAgICAgICAgeyBwcm92aWRlOiBMT0dJTl9VUkxfTEVHQUNZLCB1c2VWYWx1ZTogY29uZmlnLmxlZ2FjeUxvZ2luICE9PSBudWxsICYmIGNvbmZpZy5sZWdhY3lMb2dpbiAhPT0gdW5kZWZpbmVkID8gY29uZmlnLmxlZ2FjeUxvZ2luIDogdHJ1ZSB9LFxyXG4gICAgICAgICAgICAgICAgeyBwcm92aWRlOiBOQVZCQVJfRVhURU5TSU9OUywgdXNlVmFsdWU6IGNvbmZpZy5uYXZiYXJFeHRlbnNpb25zID8gY29uZmlnLm5hdmJhckV4dGVuc2lvbnMgOiBbXSB9LFxyXG4gICAgICAgICAgICAgICAgeyBwcm92aWRlOiBCYXNlQWRhcHRlciwgdXNlQ2xhc3M6IGNvbmZpZz8uY2hhcnRzQWRhcHRlciB8fCBCYXNlQWRhcHRlciB9LFxyXG4gICAgICAgICAgICAgICAgeyBwcm92aWRlOiBCYXNlTWVzc2FnZVNlcnZpY2UsIHVzZUNsYXNzOiBjb25maWc/Lm1lc3NhZ2VTZXJ2aWNlIHx8IEJhc2VNZXNzYWdlU2VydmljZSB9LFxyXG4gICAgICAgICAgICAgICAgeyBwcm92aWRlOiBHbG9iYWxTZWFyY2hTZXJ2aWNlLCB1c2VDbGFzczogY29uZmlnPy5nbG9iYWxTZWFyY2hTZXJ2aWNlIHx8IEdsb2JhbFNlYXJjaFNlcnZpY2UgfSxcclxuICAgICAgICAgICAgICAgIHsgcHJvdmlkZTogQ29tcGxldGVkSm9iUmVkaXJlY3Rpb25TZXJ2aWNlLCB1c2VDbGFzczogY29uZmlnPy5jb21wbGV0ZWRKb2JSZWRpcmVjdGlvblNlcnZpY2UgfHwgQ29tcGxldGVkSm9iUmVkaXJlY3Rpb25TZXJ2aWNlIH0sXHJcbiAgICAgICAgICAgICAgICB7IHByb3ZpZGU6IE1lbnVGaWx0ZXJpbmdTZXJ2aWNlLCB1c2VDbGFzczogY29uZmlnPy5tZW51RmlsdGVyaW5nU2VydmljZSB8fCBNZW51RmlsdGVyaW5nU2VydmljZSB9LFxyXG4gICAgICAgICAgICAgICAgeyBwcm92aWRlOiBNRU5VX0xPQ0FMSVpBVElPTiwgdXNlVmFsdWU6IGNvbmZpZy5tZW51TG9jIHx8IG51bGwgfSxcclxuICAgICAgICAgICAgICAgIHsgcHJvdmlkZTogTUVOVSwgdXNlVmFsdWU6IGNvbmZpZy5tZW51IH0sXHJcbiAgICAgICAgICAgICAgICB7IHByb3ZpZGU6IFVTRV9GQUtFX0FDQ0VTU19UT0tFTiwgdXNlVmFsdWU6ICEhY29uZmlnLmZha2VBY2Nlc3NUb2tlbiB9LFxyXG4gICAgICAgICAgICAgICAgeyBwcm92aWRlOiBQcmVmZXJlbmNlc1BlcnNpc3RvciwgdXNlQ2xhc3M6IGNvbmZpZy5mYWtlQWNjZXNzVG9rZW4gPyBMb2NhbFN0b3JhZ2VQcmVmZXJlbmNlc1BlcnNpc3RvciA6IEFwcGxpY2F0aW9uUHJlZmVyZW5jZXNQZXJzaXN0b3IgfSxcclxuICAgICAgICAgICAgICAgIHsgcHJvdmlkZTogQ2FjaGVQZXJzaXN0b3IsIHVzZUNsYXNzOiBjb25maWcuZmFrZUFjY2Vzc1Rva2VuID8gTG9jYWxTdG9yYWdlQ2FjaGVQZXJzaXN0b3IgOiBBcHBsaWNhdGlvbkNhY2hlUGVyc2lzdG9yIH1cclxuICAgICAgICAgICAgXVxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBFc0ZhZW56YUNvcmVNb2R1bGVDb25maWcge1xyXG4gICAgLyogUm91dGUgYXBwbGljYXRpdmUsIHNvbG8gcXVlbGxlIGRlbnRybyBhICoqcGFnZXMqKiAqL1xyXG4gICAgcm91dGVzITogUm91dGVzO1xyXG4gICAgLyogTWVuw7kgZGVsbGEgc2lkZWJhciBkZWxsJ2FwcGxpY2F6aW9uZSAqL1xyXG4gICAgbWVudTogQXBwbGljYXRpb25NZW51W107XHJcbiAgICAvKiBJbmRpY2Egc2UgdXRpbGl6emFyZSBsJ2FjY2VzcyB0b2tlbiBmaW50byAqL1xyXG4gICAgZmFrZUFjY2Vzc1Rva2VuPzogYm9vbGVhbjtcclxuICAgIC8qIFRpcG8gZGEgdXNhcmUgcGVyIGdlbmVyYXJlIGxlIGxvY2FsaXp6YWl6b25pIGRlbCBtZW7DuSAqL1xyXG4gICAgbWVudUxvYz86IFR5cGU8TG9jYWxpemF0aW9uU2VydmljZT47XHJcbiAgICAvKiBSZWRpcmVjdCBwZXIgbGEgcm9vdCBkZWxsJ2FwcGxpY2F6aW9uZSwgZGkgZGVmYXVsdCDDqCBpbXBvc3RhdG8gYSAqKmRhc2hib2FyZCoqLiBTZSBhbGwnaW50ZXJubyBkZWxsZSAqKnJvdXRlcyoqIG5vbiBlc2lzdGUgbGEgcm91dGUgKipkYXNoYm9hcmQqKiDDqCBkYSBpbXBvc3RhcmUgYWRlZ3VhdGFtZW50ZSAqL1xyXG4gICAgZW1wdHlSb3V0ZVJlZGlyZWN0Pzogc3RyaW5nO1xyXG4gICAgLyogU2Ugbm9uIHNwZWNpZmljYXRhIHZpZW5lIGltcG9zdGF0YSBhdXRvbWF0aWNhbWVudGUgYWQgXCJBbGxcIiBpbiBmYXNlIGRpIGRlYnVnLCBcIk5vbmVcIiBpbiBwcm9kdXppb25lIChxdWVzdCd1bHRpbW8gYSBwcmVzY2luZGVyZSwgYSBtZW5vIGNoZSAqKmZvcmNlRGVidWdNb2RlRm9yUHJvZEJ1aWxkcyoqIG5vbiBzaWEgdHJ1ZSkqL1xyXG4gICAgZGVidWdNb2RlPzogRGVidWdGbGFncztcclxuICAgIC8qIFBlcm1ldHRlIGRpIGZvcnphcmUgbGEgbW9kYWxpdMOgIGRpIGRlYnVnIHNwZWNpZmljYXRhIGFuY2hlIHBlciBsZSBidWlsZCBkaSBwcm9kdXppb25lLCAqKk5PTiBJTVBPU1RBUkUgQSBUUlVFKiogYSBtZW5vIGRpIHJhcmlzc2ltaXNzaW1pc3NpbWkgY2FzaSAqL1xyXG4gICAgZm9yY2VEZWJ1Z01vZGVGb3JQcm9kQnVpbGRzPzogYm9vbGVhbjtcclxuICAgIC8qIENhY2hlIGRpIGludmFsaWRhemlvbmUgcGVyIGxlIGNoaWFtYXRlIGh0dHAgKi9cclxuICAgIGh0dHBJbnZhbGlkYXRpb25DYWNoZT86IGFueTtcclxuICAgIC8qIEZ1bnppb25lIGRpIGluaXppYWxpenphemlvbmUgQVBQX0lOSVRJQUxJWkVSLWxpa2UgY2hlIHZpZW5lIHJpY2hpYW1hdGEgZG9wbyBhbGxhIGZ1bnppb25lIGRpIGluaXppYWxpenphemlvbmUgZGkgZGVmYXVsdCAqL1xyXG4gICAgaW5pdGlhbGl6ZXJGdW5jdGlvbj86IChodHRwOiBIVFRQU2VydmljZSwgYnRzOiBUb2tlblNlcnZpY2UsIGFhYzogQWNjZXNzQ29udHJvbFNlcnZpY2UpID0+ICgpID0+IE9ic2VydmFibGU8YW55PjtcclxuICAgIC8qIE1hcHBhIGRpIHJlZGlyZWN0IHBlciBwZXJtZXR0ZXJlIGFsICoqUmVkaXJlY3RlckNvbXBvbmVudCoqIGRpIHNhcGVyZSBkb3ZlIG5hdmlnYXJlIGluIGJhc2UgYSBPZ2dldHRvLVBhcmFtZXRyaSAqL1xyXG4gICAgcmVkaXJlY3Rpb25NYXA/OiB7IFtpbmRleDogc3RyaW5nXTogeyB1cmw6IHN0cmluZywgcGFyYW1zOiBzdHJpbmdbXSB9IH07XHJcbiAgICAvKiBBZGF0dGF0b3JlIGRlaSBncmFmaWNpIG5lbCBjYXNvIHVuIHByb2dldHRvIGZvc3NlIHZlY2NoaW8gKFJpbXVvdmliaWxlIHF1YW5kbyB0dXR0aSBpIHByb2dldHRpIHVzYW5vIG5hdGl2YW1lbnRlIGVzLWNoYXJ0cykgKi9cclxuICAgIGNoYXJ0c0FkYXB0ZXI/OiBUeXBlPEJhc2VBZGFwdGVyPjtcclxuICAgIC8qIFNlcnZpemlvIGNoZSBlc3BvbmUgaSBtZXNzYWdnaSBkaXNwb25pYmlsaSBzdSBTaWduYWxyICovXHJcbiAgICBtZXNzYWdlU2VydmljZT86IFR5cGU8QmFzZU1lc3NhZ2VTZXJ2aWNlPjtcclxuICAgIC8qIFNlcnZpemlvIHBlciBsYSBzZWFyY2ggZ2xvYmFsZSBkZWwgbW9kdWxvICovXHJcbiAgICBnbG9iYWxTZWFyY2hTZXJ2aWNlPzogVHlwZTxHbG9iYWxTZWFyY2hTZXJ2aWNlPjtcclxuICAgIC8qIFNlcnZpemlvIHBlciBmaWx0cmFyZSBsZSB2b2NpIGRpIG1lbsO5ICovXHJcbiAgICBtZW51RmlsdGVyaW5nU2VydmljZT86IFR5cGU8TWVudUZpbHRlcmluZ1NlcnZpY2U+O1xyXG4gICAgLyogU2Vydml6aW8gZGkgcmlkaXJlemlvbmUgcGVyIGpvYiBjb21wbGV0YXRpICovXHJcbiAgICBjb21wbGV0ZWRKb2JSZWRpcmVjdGlvblNlcnZpY2U/OiBUeXBlPENvbXBsZXRlZEpvYlJlZGlyZWN0aW9uU2VydmljZT47XHJcbiAgICAvKiBGdW56aW9uZSBkaSBvdmVycmlkZSBwZXIgcmVjdXBlcmFyZSBhY2NvdW50IHNjb3BlIGUgZW52b3B0aW9ucy4gUHXDsiBhbmNoZSBlc3NlcmUgdXRpbGl6emF0YSBwZXIgZm9ybmlyZSBtb2RlbGxpIGZpbnRpIGZpbm8gYWQgaW1wbGVtZW50YXppb25lICovXHJcbiAgICBvcHRpb25zQW5kU2NvcGVQcm92aWRlcj86IE9ic2VydmFibGU8eyBhcHBDb25maWc6IEVudk9wdGlvbnMsIHNjb3BlOiBBY2NvdW50U2NvcGUsIGxvY2FsZTogc3RyaW5nIH0+O1xyXG4gICAgLyogTGlzdGEgZGVpIGNvbXBvbmVudGkgY29uIGN1aSBlc3BhbmRlcmUgbGEgbmF2YmFyICovXHJcbiAgICBuYXZiYXJFeHRlbnNpb25zPzogVHlwZTxhbnk+W107XHJcbiAgICAvKiBpZGVudGlmaWNhIHNlIHV0aWxpenphcmUgbGEgdmVyc2lvbmUgdmVjY2hpYSBkZWxsJ3VybCBkaSBhdXRoICgke215Y29uZmlnLkFVVEhfVVJMfS9sb2dpbi9mb3JtP2NsaWVudD0ke215Y29uZmlnLkNMSUVOVF9OQU1FfSkgaW52ZWNlIGNoZSBsYSBudW92YSAoJHtteWNvbmZpZy5BVVRIX1VSTH0vbG9naW47Y2xpZW50PSR7bXljb25maWcuQ0xJRU5UX05BTUV9KSAqL1xyXG4gICAgbGVnYWN5TG9naW4/OiBib29sZWFuO1xyXG59XHJcblxyXG5leHBvcnQgZW51bSBEZWJ1Z0ZsYWdzIHtcclxuICAgIE5vbmUgPSAwLFxyXG4gICAgTG9jYWxpemF0aW9ucyA9IDEgPDwgMCxcclxuICAgIEV4dGVuc2lvbnMgPSAxIDw8IDEsXHJcbiAgICBBY2Nlc3NDb250cm9sID0gMSA8PCAyLFxyXG4gICAgSHR0cCA9IDEgPDwgMyxcclxuICAgIFNpZ25hbFIgPSAxIDw8IDQsXHJcbiAgICBQcmVmZXJlbmNlcyA9IDEgPDwgNSxcclxuICAgIENoYXJ0cyA9IDEgPDwgNixcclxuICAgIFRhYmJlciA9IDEgPDwgNyxcclxuICAgIEFsbCA9IH4ofjAgPDwgOClcclxufSJdfQ==
|
|
233
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvY29yZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsVUFBVTtBQUNWLE9BQU8sRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQTZCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6SCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUMvRSxPQUFPLEVBQVUsWUFBWSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM3RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDM0UsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxtQ0FBbUMsQ0FBQztBQUUzQyxVQUFVO0FBQ1YsT0FBTyxFQUFFLGlCQUFpQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDdkcsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDMUMsT0FBTyxzQkFBc0IsQ0FBQztBQUU5QixLQUFLO0FBQ0wsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGVBQWUsRUFBRSxvQkFBb0IsRUFBRSxnQ0FBZ0MsRUFBRSxjQUFjLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMvSyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsbUJBQW1CLEVBQUUseUJBQXlCLEVBQUUsY0FBYyxFQUFFLGdC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O2dCQUN6RCxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsR0FBRyxVQUFVLENBQUMsYUFBYSxDQUFDLElBQUksVUFBVSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFO2dCQUMzSSxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsR0FBRyxVQUFVLENBQUMsVUFBVSxDQUFDLElBQUksVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFO2dCQUNySSxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsR0FBRyxVQUFVLENBQUMsYUFBYSxDQUFDLElBQUksVUFBVSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFO2dCQUMzSSxFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsUUFBUSxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFO2dCQUMxSCxFQUFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLHFCQUFxQixFQUFFO2dCQUN2RSxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFO2dCQUM3SCxFQUFFLE9BQU8sRUFBRSxj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QUFPLHdCQUF3QjtDQXFDcEM7QUFFRCxNQUFNLENBQU4sSUFBWSxVQVdYO0FBWEQsV0FBWSxVQUFVO0lBQ2xCLDJDQUFRLENBQUE7SUFDUiw2REFBc0IsQ0FBQTtJQUN0Qix1REFBbUIsQ0FBQTtJQUNuQiw2REFBc0IsQ0FBQTtJQUN0QiwyQ0FBYSxDQUFBO0lBQ2Isa0RBQWdCLENBQUE7SUFDaEIsMERBQW9CLENBQUE7SUFDcEIsZ0RBQWUsQ0FBQTtJQUNmLGlEQUFlLENBQUE7SUFDZiwyQ0FBZ0IsQ0FBQTtBQUNwQixDQUFDLEVBWFcsVUFBVSxLQUFWLFVBQVUsUUFXckIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBBbmd1bGFyXHJcbmltcG9ydCB7IE5nTW9kdWxlLCBFcnJvckhhbmRsZXIsIExPQ0FMRV9JRCwgQVBQX0lOSVRJQUxJWkVSLCBNb2R1bGVXaXRoUHJvdmlkZXJzLCBUeXBlLCBpc0Rldk1vZGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBCcm93c2VyQW5pbWF0aW9uc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXIvYW5pbWF0aW9ucyc7XHJcbmltcG9ydCB7IFJvdXRlcywgUm91dGVyTW9kdWxlLCBOb1ByZWxvYWRpbmcsIFJPVVRFUyB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcclxuaW1wb3J0IHsgTUFUX0RBVEVfRk9STUFUUywgTUFUX0RBVEVfTE9DQUxFIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2NvcmVcIjtcclxuaW1wb3J0IHsgRVZFTlRfTUFOQUdFUl9QTFVHSU5TIH0gZnJvbSBcIkBhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXJcIjtcclxuaW1wb3J0IHsgU2VydmljZVdvcmtlck1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9zZXJ2aWNlLXdvcmtlclwiO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50TW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vbi9odHRwXCI7XHJcbmltcG9ydCBcIkBhbmd1bGFyL2NvbW1vbi9sb2NhbGVzL2dsb2JhbC9pdFwiO1xyXG5cclxuLy8gUGx1Z2luc1xyXG5pbXBvcnQgeyBOZ3hNYXREYXRlQWRhcHRlciwgTkdYX01BVF9EQVRFX0ZPUk1BVFMgfSBmcm9tIFwiQGFuZ3VsYXItbWF0ZXJpYWwtY29tcG9uZW50cy9kYXRldGltZS1waWNrZXJcIjtcclxuaW1wb3J0IHsgQ29va2llU2VydmljZSB9IGZyb20gXCJuZ3gtY29va2llLXNlcnZpY2VcIjtcclxuaW1wb3J0IHsgVG9hc3RyTW9kdWxlIH0gZnJvbSBcIm5neC10b2FzdHJcIjtcclxuaW1wb3J0IFwid2lkZ3N0ZXIvd2lkZ3N0ZXIuanNcIjtcclxuXHJcbi8vIEVTXHJcbmltcG9ydCB7IFByZWZlcmVuY2VzTW9kdWxlLCBQUkVGX0RFQlVHX01PREUsIFByZWZlcmVuY2VzUGVyc2lzdG9yLCBMb2NhbFN0b3JhZ2VQcmVmZXJlbmNlc1BlcnNpc3RvciwgQ2FjaGVQZXJzaXN0b3IsIExvY2FsU3RvcmFnZUNhY2hlUGVyc2lzdG9yIH0gZnJvbSBcIkBlc2ZhZW56YS9wcmVmZXJlbmNlc1wiO1xyXG5pbXBvcnQgeyBMb2NhbGl6YXRpb25Nb2R1bGUsIExvY2FsaXphdGlvblNlcnZpY2UsIExvY2FsaXphdGlvbk1pc3NpbmdQb2xpY3ksIExPQ19ERUJVR19NT0RFLCBCYXNlTG9jYWxpemF0aW9uIH0gZnJvbSBcIkBlc2ZhZW56YS9sb2NhbGl6YXRpb25zXCI7XHJcbmltcG9ydCB7IEh0dHBzZXJ2aWNlTW9kdWxlLCBIdHRwU2VydmljZUV4dGVuc2lvbnMsIEhUVFBTZXJ2aWNlLCBIVFRQX0RFQlVHX01PREUsIEhUVFBfSU5WQUxJREFUSU9OIH0gZnJvbSBcIkBlc2ZhZW56YS9odHRwc2VydmljZVwiO1xyXG5pbXBvcnQgeyBTaWduYWxyTm90aWZpY2F0aW9uc01vZHVsZSwgU0dSX0RFQlVHX01PREUsIEJhc2VNZXNzYWdlU2VydmljZSB9IGZyb20gXCJAZXNmYWVuemEvc2lnbmFsci1ub3RpZmljYXRpb25zXCI7XHJcbmltcG9ydCB7IEZvcm1zQW5kVmFsaWRhdGlvbnNNb2R1bGUsIE5neEV4cGFuZGVkRGF5SnNEYXRlQWRhcHRlciB9IGZyb20gXCJAZXNmYWVuemEvZm9ybXMtYW5kLXZhbGlkYXRpb25zXCI7XHJcbmltcG9ydCB7IEFjY2Vzc0NvbnRyb2xNb2R1bGUsIEFjY2Vzc0NvbnRyb2xTZXJ2aWNlLCBBQ0NfREVCVUdfTU9ERSB9IGZyb20gXCJAZXNmYWVuemEvYWNjZXNzLWNvbnRyb2xcIjtcclxuaW1wb3J0IHsgQmFzZUFkYXB0ZXIsIEVzQ2hhcnRzTW9kdWxlLCBFU0NfREVCVUdfTU9ERSB9IGZyb20gXCJAZXNmYWVuemEvZXMtY2hhcnRzXCI7XHJcbmltcG9ydCB7IEV4dGVuc2lvbnNNb2R1bGUsIEVYVF9ERUJVR19NT0RFIH0gZnJvbSBcIkBlc2ZhZW56YS9leHRlbnNpb25zXCI7XHJcbmltcG9ydCB7IENvbnRleHRNZW51TW9kdWxlIH0gZnJvbSBcIkBlc2ZhZW56YS9uZ3gtY29udGV4dG1lbnVcIjtcclxuaW1wb3J0IHsgRHJhZ3VsYU1vZHVsZSB9IGZyb20gJ0Blc2ZhZW56YS9uZ3gtZHJhZ3VsYSc7XHJcbmltcG9ydCB7IEVzVGFibGVNb2R1bGUgfSBmcm9tIFwiQGVzZmFlbnphL2VzLXRhYmxlXCI7XHJcbmltcG9ydCB7IFRBQl9ERUJVR19NT0RFIH0gZnJvbSBcIkBlc2ZhZW56YS90YWJiZXJcIjtcclxuXHJcbi8vIENvcmVcclxuaW1wb3J0IHsgQVBQRXJyb3JIYW5kbGVyLCBIVFRQU2VydmljZUV4dGVuc2lvbnMsIEFwcGxpY2F0aW9uUHJlZmVyZW5jZXNQZXJzaXN0b3IsIEFwcGxpY2F0aW9uQ2FjaGVQZXJzaXN0b3IsIFNlc3Npb25SZXRyaWV2ZXIsIE91dFpvbmVFdmVudFBsdWdpbiwgVG9rZW5TZXJ2aWNlLCBHbG9iYWxTZWFyY2hTZXJ2aWNlLCBDb21wbGV0ZWRKb2JSZWRpcmVjdGlvblNlcnZpY2UsIE1lbnVGaWx0ZXJpbmdTZXJ2aWNlIH0gZnJvbSBcIkBlc2ZhZW56YS9jb3JlL3NlcnZpY2VzXCI7XHJcbmltcG9ydCB7IFBhZ2VOb3RGb3VuZENvbXBvbmVudCwgU2VydmVyRXJyb3JDb21wb25lbnQsIEFuZ3VsYXJFcnJvckNvbXBvbmVudCwgRXh0ZXJuYWxQYWdlc0NvbXBvbmVudCwgSmFjZUxvZ2luQ29tcG9uZW50LCBQYWdlc0NvbXBvbmVudCwgUmVkaXJlY3RlckNvbXBvbmVudCwgQ29tcG9uZW50c01vZHVsZSB9IGZyb20gXCJAZXNmYWVuemEvY29yZS9jb21wb25lbnRzXCI7XHJcbmltcG9ydCB7IEFwcGxpY2F0aW9uTWVudSwgRW52T3B0aW9ucywgQWNjb3VudFNjb3BlLCBNRU5VLCBNRU5VX0xPQ0FMSVpBVElPTiwgUkVESVJFQ1RfTUFQLCBVU0VfRkFLRV9BQ0NFU1NfVE9LRU4sIE5BVkJBUl9FWFRFTlNJT05TLCBMT0dJTl9VUkxfTEVHQUNZIH0gZnJvbSBcIkBlc2ZhZW56YS9jb3JlL2RvbWFpblwiXHJcbmltcG9ydCB7IFJPVVRFLCBFTUJFRERFRF9ST1VURSB9IGZyb20gXCJAZXNmYWVuemEvY29yZS9kb21haW5cIlxyXG5pbXBvcnQgeyBUZW1wbGF0ZUNvbW1vbiB9IGZyb20gXCJAZXNmYWVuemEvY29yZS9tb2R1bGVzXCI7XHJcblxyXG4vLyBSeEpzXHJcbmltcG9ydCB7IGNhdGNoRXJyb3IsIHN3aXRjaE1hcCwgdGFrZSwgdGFwIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XHJcbmltcG9ydCB7IGZvcmtKb2luLCBPYnNlcnZhYmxlLCBvZiB9IGZyb20gXCJyeGpzXCI7XHJcblxyXG4vLyBCb290c3RyYXBcclxuaW1wb3J0IHsgUHJvZ3Jlc3NiYXJNb2R1bGUgfSBmcm9tIFwibmd4LWJvb3RzdHJhcC9wcm9ncmVzc2JhclwiO1xyXG5pbXBvcnQgeyBUaW1lcGlja2VyTW9kdWxlIH0gZnJvbSBcIm5neC1ib290c3RyYXAvdGltZXBpY2tlclwiO1xyXG5pbXBvcnQgeyBCc0Ryb3Bkb3duTW9kdWxlIH0gZnJvbSBcIm5neC1ib290c3RyYXAvZHJvcGRvd25cIjtcclxuaW1wb3J0IHsgVG9vbHRpcE1vZHVsZSB9IGZyb20gXCJuZ3gtYm9vdHN0cmFwL3Rvb2x0aXBcIjtcclxuaW1wb3J0IHsgTW9kYWxNb2R1bGUgfSBmcm9tIFwibmd4LWJvb3RzdHJhcC9tb2RhbFwiO1xyXG5cclxuLy8gQXBwbGljYXppb25lXHJcbmltcG9ydCB7IEFwcENvbXBvbmVudCB9IGZyb20gXCIuL2FwcC5jb21wb25lbnRcIjtcclxuXHJcbi8vIFJlcG9zaXRvcmllc1xyXG5jb25zdCBHRVRfSmFjZV9HZXRBY2NvdW50U2NvcGU6IHN0cmluZyA9IFwiL2FwaS9KYWNlL0dldEFjY291bnRTY29wZVwiO1xyXG5jb25zdCBHRVRfQXBwQ29uZmlnX0dldEFwcENvbmZpZzogc3RyaW5nID0gXCIvYXBpL0FwcENvbmZpZy9HZXRBcHBDb25maWdcIjtcclxuXHJcbmRlY2xhcmUgdmFyIG15Y29uZmlnOiBFbnZPcHRpb25zO1xyXG5cclxuY29uc3QgYmFzZUFwcFJvdXRlczogUm91dGVzID0gW1xyXG4gICAgeyBwYXRoOiBcIlwiLCByZWRpcmVjdFRvOiBcInBhZ2VzL3tlbXB0eVJvdXRlUmVkaXJlY3R9XCIsIHBhdGhNYXRjaDogXCJmdWxsXCIgfSxcclxuICAgIHsgcGF0aDogRU1CRURERURfUk9VVEUsIGNvbXBvbmVudDogRXh0ZXJuYWxQYWdlc0NvbXBvbmVudCB9LFxyXG4gICAgeyBwYXRoOiBST1VURSwgY29tcG9uZW50OiBQYWdlc0NvbXBvbmVudCB9LFxyXG4gICAgeyBwYXRoOiBcInJkXCIsIGNvbXBvbmVudDogUmVkaXJlY3RlckNvbXBvbmVudCB9LFxyXG4gICAgeyBwYXRoOiBcImxvZ2luXCIsIGNvbXBvbmVudDogSmFjZUxvZ2luQ29tcG9uZW50IH0sXHJcbiAgICB7IHBhdGg6IFwiaXNlcnJcIiwgY29tcG9uZW50OiBTZXJ2ZXJFcnJvckNvbXBvbmVudCB9LFxyXG4gICAgeyBwYXRoOiBcImFuZXJyXCIsIGNvbXBvbmVudDogQW5ndWxhckVycm9yQ29tcG9uZW50IH0sXHJcbiAgICB7IHBhdGg6IFwiKipcIiwgY29tcG9uZW50OiBQYWdlTm90Rm91bmRDb21wb25lbnQgfSxcclxuICAgIFxyXG5dO1xyXG5cclxuY29uc3QgTU9EVUxFUyA9IFtcclxuICAgIEJyb3dzZXJBbmltYXRpb25zTW9kdWxlLFxyXG4gICAgSHR0cENsaWVudE1vZHVsZSxcclxuICAgIFRlbXBsYXRlQ29tbW9uLFxyXG4gICAgQ29tcG9uZW50c01vZHVsZSxcclxuXHJcbiAgICAvLyBBdHRlbnppb25lIGEgbGFzY2lhcmxvIGF0dGl2byBpbiBuZyBzZXJ2ZTogaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvYW5ndWxhci9pc3N1ZXMvNDc0NTVcclxuICAgIFNlcnZpY2VXb3JrZXJNb2R1bGUucmVnaXN0ZXIoJ25nc3ctd29ya2VyLmpzJywgeyBlbmFibGVkOiAhaXNEZXZNb2RlKCkgfSksXHJcbiAgICBSb3V0ZXJNb2R1bGUuZm9yUm9vdChbXSwgeyB1c2VIYXNoOiB0cnVlLCBwcmVsb2FkaW5nU3RyYXRlZ3k6IE5vUHJlbG9hZGluZywgb25TYW1lVXJsTmF2aWdhdGlvbjogXCJyZWxvYWRcIiB9KSxcclxuXHJcbiAgICAvLyBFU1xyXG4gICAgRXNUYWJsZU1vZHVsZS5mb3JSb290KCksXHJcbiAgICBGb3Jtc0FuZFZhbGlkYXRpb25zTW9kdWxlLmZvclJvb3QoeyBhY29jdXN0b206IFwiT1wiLCBzbGlkZXJNb2RlOiB0cnVlIH0pLFxyXG4gICAgRXh0ZW5zaW9uc01vZHVsZS5mb3JSb290KCksXHJcbiAgICBMb2NhbGl6YXRpb25Nb2R1bGUuZm9yUm9vdCh7IGxvY2FsaXphdGlvbk1pc3NpbmdQb2xpY3k6IExvY2FsaXphdGlvbk1pc3NpbmdQb2xpY3kuUHJpbnRTb3VyY2UsIGRlZmF1bHRMb2NhbGU6ICdpdC1JVCcgfSksXHJcbiAgICBBY2Nlc3NDb250cm9sTW9kdWxlLmZvclJvb3QoeyBjb250ZXh0QXdhcmVLZXk6IFwiT1wiLCBkZWZhdWx0Q29uZGl0aW9uOiAnKFI6SmFjZSBBZG1pbiB8fCBSOkphY2UgU3VwcG9ydCknIH0pLFxyXG4gICAgSHR0cHNlcnZpY2VNb2R1bGUuZm9yUm9vdCgpLFxyXG4gICAgU2lnbmFsck5vdGlmaWNhdGlvbnNNb2R1bGUuZm9yUm9vdCh7IGVuZHBvaW50VXJsOiAnbm90aWZ5JywgdXNlTWVzc2FnZVBhY2s6IHRydWUgfSksXHJcbiAgICBQcmVmZXJlbmNlc01vZHVsZS5mb3JSb290KHsgcmV0cmlldmVBbGxBdFN0YXJ0OiB0cnVlLCBzZXNzaW9uUmV0cmlldmVyOiBTZXNzaW9uUmV0cmlldmVyLCBwcmVmZXJlbmNlUGVyc2lzdG9yOiBBcHBsaWNhdGlvblByZWZlcmVuY2VzUGVyc2lzdG9yLCBjYWNoZVBlcnNpc3RvcjogQXBwbGljYXRpb25DYWNoZVBlcnNpc3RvciB9KSxcclxuICAgIEVzQ2hhcnRzTW9kdWxlLmZvclJvb3QoKSxcclxuXHJcbiAgICAvLyBCb290c3RyYXBcclxuICAgIFRvb2x0aXBNb2R1bGUuZm9yUm9vdCgpLFxyXG4gICAgTW9kYWxNb2R1bGUuZm9yUm9vdCgpLFxyXG4gICAgUHJvZ3Jlc3NiYXJNb2R1bGUuZm9yUm9vdCgpLFxyXG4gICAgQnNEcm9wZG93bk1vZHVsZS5mb3JSb290KCksXHJcbiAgICBUb2FzdHJNb2R1bGUuZm9yUm9vdCgpLFxyXG4gICAgVGltZXBpY2tlck1vZHVsZS5mb3JSb290KCksXHJcbiAgICBDb250ZXh0TWVudU1vZHVsZS5mb3JSb290KCksXHJcbiAgICBEcmFndWxhTW9kdWxlLmZvclJvb3QoKVxyXG5dO1xyXG5cclxuLy8gR2VuZXJhdG9yZSBkZWkgZm9ybWF0aSBkYXRhXHJcbnZhciBmb3JtYXRzID0gKHN0eWxlOiAnbG9uZycgfCAnc2hvcnQnKSA9PiB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAgIHBhcnNlOiB7IGRhdGVJbnB1dDogJ0REL01NL1lZWVknICsgKHN0eWxlID09PSAnbG9uZycgPyAnIEhIOm1tOnNzJyA6ICcnKSB9LFxyXG4gICAgICAgIGRpc3BsYXk6IHtcclxuICAgICAgICAgICAgZGF0ZUlucHV0OiAnREQvTU0vWVlZWScgKyAoc3R5bGUgPT09ICdsb25nJyA/ICcgSEg6bW06c3MnIDogJycpLFxyXG4gICAgICAgICAgICBtb250aFllYXJMYWJlbDogJ01NIFlZWVknLFxyXG4gICAgICAgICAgICBkYXRlQTExeUxhYmVsOiAnREQvTU0vWVlZWScgKyAoc3R5bGUgPT09ICdsb25nJyA/ICcgSEg6bW06c3MnIDogJycpLFxyXG4gICAgICAgICAgICBtb250aFllYXJBMTF5TGFiZWw6ICdNTSBZWVlZJyxcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG59XHJcblxyXG5jb25zdCBsb2NhbGVGYWN0b3J5ID0gKGxvYzogTG9jYWxpemF0aW9uU2VydmljZSkgPT4gbG9jLlNtYWxsTG9jYWxlO1xyXG5cclxuY29uc3QgUFJPVklERVJTID0gW1xyXG4gICAgQ29va2llU2VydmljZSxcclxuXHJcbiAgICAvLyBQcm92aWRlcnMgYXBwbGljYXRpdmlcclxuICAgIHsgcHJvdmlkZTogRXJyb3JIYW5kbGVyLCB1c2VDbGFzczogQVBQRXJyb3JIYW5kbGVyIH0sXHJcbiAgICB7IHByb3ZpZGU6IEVWRU5UX01BTkFHRVJfUExVR0lOUywgdXNlRXhpc3Rpbmc6IE91dFpvbmVFdmVudFBsdWdpbiwgbXVsdGk6IHRydWUgfSxcclxuICAgIHsgcHJvdmlkZTogSHR0cFNlcnZpY2VFeHRlbnNpb25zLCB1c2VDbGFzczogSFRUUFNlcnZpY2VFeHRlbnNpb25zIH0sXHJcblxyXG4gICAgLy8gTG9jYWxlIGUgZ2VzdGlvbmkgZGVsbGUgZGF0ZVxyXG4gICAgeyBwcm92aWRlOiBMT0NBTEVfSUQsIHVzZUZhY3Rvcnk6IGxvY2FsZUZhY3RvcnksIGRlcHM6IFtMb2NhbGl6YXRpb25TZXJ2aWNlXSB9LFxyXG4gICAgeyBwcm92aWRlOiBNQVRfREFURV9MT0NBTEUsIHVzZUZhY3Rvcnk6IGxvY2FsZUZhY3RvcnksIGRlcHM6IFtMb2NhbGl6YXRpb25TZXJ2aWNlXSB9LFxyXG4gICAgeyBwcm92aWRlOiBNQVRfREFURV9GT1JNQVRTLCB1c2VWYWx1ZTogZm9ybWF0cygnc2hvcnQnKSB9LFxyXG5cclxuICAgIC8vIFF1ZXN0aSBkdWUgc29ubyBwcm92aWRhdGkgZGFsIEZvcm1zQW5kVmFsaWRhdGlvbk1vZHVsZSBzdGVzc28sIHBlcsOyIHF1ZXN0J3VsdGltbyDDqCBkZWZpbml0byBpbiBmb3JSb290IHNvbG8gbGF0byBjb21wb25lbnRpIHNoYXJlZCwgXHJcbiAgICAvLyBxdWluZGkgcGVyIHJlbmRlcmUgcXVlc3RpIHByb3ZpZGVyIGRpc3BvbmliaWxpIGFuY2hlIGEgbW9kdWxpIGVzdGVybmkgZGV2byByaXByb3ZpZGFybGkgYW5jaGUgcXVpXHJcbiAgICB7IHByb3ZpZGU6IE5HWF9NQVRfREFURV9GT1JNQVRTLCB1c2VWYWx1ZTogZm9ybWF0cygnbG9uZycpIH0sXHJcbiAgICB7IHByb3ZpZGU6IE5neE1hdERhdGVBZGFwdGVyLCB1c2VDbGFzczogTmd4RXhwYW5kZWREYXlKc0RhdGVBZGFwdGVyIH1cclxuXTtcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgICBkZWNsYXJhdGlvbnM6IFtBcHBDb21wb25lbnRdLFxyXG4gICAgaW1wb3J0czogWy4uLk1PRFVMRVNdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFc0ZhZW56YUNvcmVNb2R1bGUge1xyXG4gICAgc3RhdGljIGZvclJvb3QoY29uZmlnPzogRXNGYWVuemFDb3JlTW9kdWxlQ29uZmlnKTogTW9kdWxlV2l0aFByb3ZpZGVyczxFc0ZhZW56YUNvcmVNb2R1bGU+IHtcclxuICAgICAgICBpZiAoY29uZmlnLnJvdXRlcykge1xyXG4gICAgICAgICAgICAvLyBBZ2lndW50YSBkZWxsYSByb3V0ZSBkaSBlbWJlZGRpbmcgc2Ugbm9uIGRpY2hpYXJhdGEsIGxhdG8gYWdnaXVudGEgZmFjY2lvIGluIG1vZG8gY2hlIGwnZW1iZWRkaW5nIHNpYSBkaXNwb25pYmlsZSBzb2xvIGRhIHJvdXRlIGludGVybmUgKHBhZ2VzIE9LLCBwYWdlc19leHQgTk9OIE9LKVxyXG4gICAgICAgICAgICBpZiAoIWNvbmZpZy5yb3V0ZXMuZmluZCh0ID0+IHQucGF0aC5zdGFydHNXaXRoKFwiZW1iZWRcIikpKVxyXG4gICAgICAgICAgICAgICAgY29uZmlnLnJvdXRlcyA9IFsuLi5jb25maWcucm91dGVzLCB7IHBhdGg6IFwiZW1iZWQvOm1vZHVsZVwiLCBsb2FkQ2hpbGRyZW46ICgpID0+IGltcG9ydCgnQGVzZmFlbnphL2NvcmUvbW9kdWxlcycpLnRoZW4obSA9PiBtLkVtYmVkZGluZ01vZHVsZSkgfV1cclxuXHJcbiAgICAgICAgICAgIGJhc2VBcHBSb3V0ZXNbMF0ucmVkaXJlY3RUbyA9IGBwYWdlcy8ke2NvbmZpZy5lbXB0eVJvdXRlUmVkaXJlY3QgfHwgJ2Rhc2hib2FyZCd9YDtcclxuICAgICAgICAgICAgYmFzZUFwcFJvdXRlcy5maWx0ZXIodCA9PiBbXCJwYWdlc1wiLCBcInBhZ2VzX2V4dFwiXS5pbmNsdWRlcyh0LnBhdGgpKS5mb3JFYWNoKHBhdGggPT4geyBwYXRoLmNoaWxkcmVuID0gY29uZmlnLnJvdXRlcy5maWx0ZXIociA9PiAhcGF0aC5wYXRoLmluY2x1ZGVzKFwicGFnZXNfZXh0XCIpIHx8ICFyLnBhdGguc3RhcnRzV2l0aChcImVtYmVkXCIpKTsgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbmZpZy5kZWJ1Z01vZGUgPSAoIWlzRGV2TW9kZSgpICYmICFjb25maWcuZm9yY2VEZWJ1Z01vZGVGb3JQcm9kQnVpbGRzKSA/IERlYnVnRmxhZ3MuTm9uZSA6IChjb25maWcuZGVidWdNb2RlIHx8IERlYnVnRmxhZ3MuQWxsKTtcclxuXHJcbiAgICAgICAgbGV0IG1lcmdlZEFwcEluaXRpYWxpemVyID0gKGh0dHA6IEhUVFBTZXJ2aWNlLCBidHM6IFRva2VuU2VydmljZSwgYWFjOiBBY2Nlc3NDb250cm9sU2VydmljZSwgbG9jOiBCYXNlTG9jYWxpemF0aW9uKSA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIiVjW0FQUF9JTklUSUFMSVpFUl0gTG9hZGluZyBBcHBDb25maWcgYW5kIEFjY291bnQgU2NvcGUuLi5cIiwgXCJiYWNrZ3JvdW5kLWNvbG9yOiB5ZWxsb3dcIik7XHJcbiAgICAgICAgICAgICAgICBsZXQgcmVhbE9ic2VydmFibGUgPSBmb3JrSm9pbihcclxuICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFwcENvbmZpZzogaHR0cC5nZXQ8RW52T3B0aW9ucz4oR0VUX0FwcENvbmZpZ19HZXRBcHBDb25maWcsIG51bGwsIG51bGwsIGZhbHNlKS5waXBlKGNhdGNoRXJyb3IoXyA9PiBvZih7fSkpKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgc2NvcGU6IGh0dHAuZ2V0PEFjY291bnRTY29wZT4oR0VUX0phY2VfR2V0QWNjb3VudFNjb3BlLCBudWxsLCBudWxsLCBmYWxzZSkucGlwZShjYXRjaEVycm9yKF8gPT4gb2YobnVsbCkpKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxlOiBsb2MuTG9jYWxlLnBpcGUodGFrZSgxKSwgY2F0Y2hFcnJvcihfID0+IG9mKCdpdC1JVCcpKSksXHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICAgICAgbGV0IHVzZWRPYnNlcnZhYmxlID0gY29uZmlnLm9wdGlvbnNBbmRTY29wZVByb3ZpZGVyIHx8IHJlYWxPYnNlcnZhYmxlO1xyXG5cclxuICAgICAgICAgICAgICAgIHJldHVybiB1c2VkT2JzZXJ2YWJsZS5waXBlKFxyXG4gICAgICAgICAgICAgICAgICAgIHRhcCgocmVzOiB7IGFwcENvbmZpZzogRW52T3B0aW9ucywgc2NvcGU6IEFjY291bnRTY29wZSwgbG9jYWxlOiBzdHJpbmcgfSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBteWNvbmZpZyA9IHJlcy5hcHBDb25maWc7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIEwnYWNjb3VudCBzY29wZSBsbyBwcmVuZG8gZGFsbGEgUXVlcnkgYSBiYWNrZW5kIHNvbG8gc2Ugbm9uIHVzbyBpbCBGYWtlIHRva2VuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghYnRzLlVTRV9GQUtFX0FDQ0VTU19UT0tFTilcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ0cy5hY2NvdW50U2NvcGUgPSByZXMuc2NvcGU7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIiVjW0FQUF9JTklUSUFMSVpFUl0gYXBwQ29uZmlnIGFuZCBzY29wZSByZWdpc3RlcmVkXCIsIFwiYmFja2dyb3VuZC1jb2xvcjogeWVsbG93XCIpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGJ0cy5hY2NvdW50U2NvcGUpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhYWMuaW5pdGlhbGl6ZUlkZW50aXR5KGJ0cy5nZXRKYWNlSWRlbnRpdHkoKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICAgICAgICAgc3dpdGNoTWFwKF8gPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWNvbmZpZy5pbml0aWFsaXplckZ1bmN0aW9uKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9mKCk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIiVjW0FQUF9JTklUSUFMSVpFUl0gTG9hZGluZyBjdXN0b20gYXBwbGljYXRpb24gaW5pdGlhbGl6YXRpb25cIiwgXCJiYWNrZ3JvdW5kLWNvbG9yOiB5ZWxsb3dcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjb25maWcuaW5pdGlhbGl6ZXJGdW5jdGlvbihodHRwLCBidHMsIGFhYykoKS5waXBlKHRhcChfID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiJWNbQVBQX0lOSVRJQUxJWkVSXSBJbml0aWFsaXphdGlvbiBpcyBvdmVyXCIsIFwiYmFja2dyb3VuZC1jb2xvcjogeWVsbG93XCIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBuZ01vZHVsZTogRXNGYWVuemFDb3JlTW9kdWxlLFxyXG4gICAgICAgICAgICBwcm92aWRlcnM6IFtcclxuICAgICAgICAgICAgICAgIC8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKiBQcm92aWRlciBzdGF0aWNpICoqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuICAgICAgICAgICAgICAgIC4uLlBST1ZJREVSUyxcclxuXHJcbiAgICAgICAgICAgICAgICAvLyAqKioqKioqKioqKioqKioqKioqKioqKiogUHJvdmlkZXIgY3VzdG9taXp6YWJpbGkgKioqKioqKioqKioqKioqKioqKioqKioqXHJcbiAgICAgICAgICAgICAgICAuLi4oIWNvbmZpZy5yZWRpcmVjdGlvbk1hcCA/IFtdIDogW3sgcHJvdmlkZTogUkVESVJFQ1RfTUFQLCB1c2VWYWx1ZTogY29uZmlnLnJlZGlyZWN0aW9uTWFwIH1dKSxcclxuICAgICAgICAgICAgICAgIHsgcHJvdmlkZTogQVBQX0lOSVRJQUxJWkVSLCB1c2VGYWN0b3J5OiBtZXJnZWRBcHBJbml0aWFsaXplciwgZGVwczogW0hUVFBTZXJ2aWNlLCBUb2tlblNlcnZpY2UsIEFjY2Vzc0NvbnRyb2xTZXJ2aWNlLCBCYXNlTG9jYWxpemF0aW9uXSwgbXVsdGk6IHRydWUgfSxcclxuICAgICAgICAgICAgICAgIHsgcHJvdmlkZTogUk9VVEVTLCB1c2VWYWx1ZTogYmFzZUFwcFJvdXRlcywgbXVsdGk6IHRydWUgfSxcclxuICAgICAgICAgICAgICAgIHsgcHJvdmlkZTogTE9DX0RFQlVHX01PREUsIHVzZVZhbHVlOiBjb25maWcuZGVidWdNb2RlID8gKGNvbmZpZy5kZWJ1Z01vZGUgJiBEZWJ1Z0ZsYWdzLkxvY2FsaXphdGlvbnMpID09IERlYnVnRmxhZ3MuTG9jYWxpemF0aW9ucyA6IGZhbHNlIH0sXHJcbiAgICAgICAgICAgICAgICB7IHByb3ZpZGU6IEVYVF9ERUJVR19NT0RFLCB1c2VWYWx1ZTogY29uZmlnLmRlYnVnTW9kZSA/IChjb25maWcuZGVidWdNb2RlICYgRGVidWdGbGFncy5FeHRlbnNpb25zKSA9PSBEZWJ1Z0ZsYWdzLkV4dGVuc2lvbnMgOiBmYWxzZSB9LFxyXG4gICAgICAgICAgICAgICAgeyBwcm92aWRlOiBBQ0NfREVCVUdfTU9ERSwgdXNlVmFsdWU6IGNvbmZpZy5kZWJ1Z01vZGUgPyAoY29uZmlnLmRlYnVnTW9kZSAmIERlYnVnRmxhZ3MuQWNjZXNzQ29udHJvbCkgPT0gRGVidWdGbGFncy5BY2Nlc3NDb250cm9sIDogZmFsc2UgfSxcclxuICAgICAgICAgICAgICAgIHsgcHJvdmlkZTogSFRUUF9ERUJVR19NT0RFLCB1c2VWYWx1ZTogY29uZmlnLmRlYnVnTW9kZSA/IChjb25maWcuZGVidWdNb2RlICYgRGVidWdGbGFncy5IdHRwKSA9PSBEZWJ1Z0ZsYWdzLkh0dHAgOiBmYWxzZSB9LFxyXG4gICAgICAgICAgICAgICAgeyBwcm92aWRlOiBIVFRQX0lOVkFMSURBVElPTiwgdXNlVmFsdWU6IGNvbmZpZz8uaHR0cEludmFsaWRhdGlvbkNhY2hlIH0sXHJcbiAgICAgICAgICAgICAgICB7IHByb3ZpZGU6IFRBQl9ERUJVR19NT0RFLCB1c2VWYWx1ZTogY29uZmlnLmRlYnVnTW9kZSA/IChjb25maWcuZGVidWdNb2RlICYgRGVidWdGbGFncy5UYWJiZXIpID09IERlYnVnRmxhZ3MuVGFiYmVyIDogZmFsc2UgfSxcclxuICAgICAgICAgICAgICAgIHsgcHJvdmlkZTogU0dSX0RFQlVHX01PREUsIHVzZVZhbHVlOiBjb25maWcuZGVidWdNb2RlID8gKGNvbmZpZy5kZWJ1Z01vZGUgJiBEZWJ1Z0ZsYWdzLlNpZ25hbFIpID09IERlYnVnRmxhZ3MuU2lnbmFsUiA6IGZhbHNlIH0sXHJcbiAgICAgICAgICAgICAgICB7IHByb3ZpZGU6IFBSRUZfREVCVUdfTU9ERSwgdXNlVmFsdWU6IGNvbmZpZy5kZWJ1Z01vZGUgPyAoY29uZmlnLmRlYnVnTW9kZSAmIERlYnVnRmxhZ3MuUHJlZmVyZW5jZXMpID09IERlYnVnRmxhZ3MuUHJlZmVyZW5jZXMgOiBmYWxzZSB9LFxyXG4gICAgICAgICAgICAgICAgeyBwcm92aWRlOiBFU0NfREVCVUdfTU9ERSwgdXNlVmFsdWU6IGNvbmZpZy5kZWJ1Z01vZGUgPyAoY29uZmlnLmRlYnVnTW9kZSAmIERlYnVnRmxhZ3MuQ2hhcnRzKSA9PSBEZWJ1Z0ZsYWdzLkNoYXJ0cyA6IGZhbHNlIH0sXHJcbiAgICAgICAgICAgICAgICB7IHByb3ZpZGU6IExPR0lOX1VSTF9MRUdBQ1ksIHVzZVZhbHVlOiBjb25maWcubGVnYWN5TG9naW4gIT09IG51bGwgJiYgY29uZmlnLmxlZ2FjeUxvZ2luICE9PSB1bmRlZmluZWQgPyBjb25maWcubGVnYWN5TG9naW4gOiBmYWxzZSB9LFxyXG4gICAgICAgICAgICAgICAgeyBwcm92aWRlOiBOQVZCQVJfRVhURU5TSU9OUywgdXNlVmFsdWU6IGNvbmZpZy5uYXZiYXJFeHRlbnNpb25zID8gY29uZmlnLm5hdmJhckV4dGVuc2lvbnMgOiBbXSB9LFxyXG4gICAgICAgICAgICAgICAgeyBwcm92aWRlOiBCYXNlQWRhcHRlciwgdXNlQ2xhc3M6IGNvbmZpZz8uY2hhcnRzQWRhcHRlciB8fCBCYXNlQWRhcHRlciB9LFxyXG4gICAgICAgICAgICAgICAgeyBwcm92aWRlOiBCYXNlTWVzc2FnZVNlcnZpY2UsIHVzZUNsYXNzOiBjb25maWc/Lm1lc3NhZ2VTZXJ2aWNlIHx8IEJhc2VNZXNzYWdlU2VydmljZSB9LFxyXG4gICAgICAgICAgICAgICAgeyBwcm92aWRlOiBHbG9iYWxTZWFyY2hTZXJ2aWNlLCB1c2VDbGFzczogY29uZmlnPy5nbG9iYWxTZWFyY2hTZXJ2aWNlIHx8IEdsb2JhbFNlYXJjaFNlcnZpY2UgfSxcclxuICAgICAgICAgICAgICAgIHsgcHJvdmlkZTogQ29tcGxldGVkSm9iUmVkaXJlY3Rpb25TZXJ2aWNlLCB1c2VDbGFzczogY29uZmlnPy5jb21wbGV0ZWRKb2JSZWRpcmVjdGlvblNlcnZpY2UgfHwgQ29tcGxldGVkSm9iUmVkaXJlY3Rpb25TZXJ2aWNlIH0sXHJcbiAgICAgICAgICAgICAgICB7IHByb3ZpZGU6IE1lbnVGaWx0ZXJpbmdTZXJ2aWNlLCB1c2VDbGFzczogY29uZmlnPy5tZW51RmlsdGVyaW5nU2VydmljZSB8fCBNZW51RmlsdGVyaW5nU2VydmljZSB9LFxyXG4gICAgICAgICAgICAgICAgeyBwcm92aWRlOiBNRU5VX0xPQ0FMSVpBVElPTiwgdXNlVmFsdWU6IGNvbmZpZy5tZW51TG9jIHx8IG51bGwgfSxcclxuICAgICAgICAgICAgICAgIHsgcHJvdmlkZTogTUVOVSwgdXNlVmFsdWU6IGNvbmZpZy5tZW51IH0sXHJcbiAgICAgICAgICAgICAgICB7IHByb3ZpZGU6IFVTRV9GQUtFX0FDQ0VTU19UT0tFTiwgdXNlVmFsdWU6ICEhY29uZmlnLmZha2VBY2Nlc3NUb2tlbiB9LFxyXG4gICAgICAgICAgICAgICAgeyBwcm92aWRlOiBQcmVmZXJlbmNlc1BlcnNpc3RvciwgdXNlQ2xhc3M6IGNvbmZpZy5mYWtlQWNjZXNzVG9rZW4gPyBMb2NhbFN0b3JhZ2VQcmVmZXJlbmNlc1BlcnNpc3RvciA6IEFwcGxpY2F0aW9uUHJlZmVyZW5jZXNQZXJzaXN0b3IgfSxcclxuICAgICAgICAgICAgICAgIHsgcHJvdmlkZTogQ2FjaGVQZXJzaXN0b3IsIHVzZUNsYXNzOiBjb25maWcuZmFrZUFjY2Vzc1Rva2VuID8gTG9jYWxTdG9yYWdlQ2FjaGVQZXJzaXN0b3IgOiBBcHBsaWNhdGlvbkNhY2hlUGVyc2lzdG9yIH1cclxuICAgICAgICAgICAgXVxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBFc0ZhZW56YUNvcmVNb2R1bGVDb25maWcge1xyXG4gICAgLyogUm91dGUgYXBwbGljYXRpdmUsIHNvbG8gcXVlbGxlIGRlbnRybyBhICoqcGFnZXMqKiAqL1xyXG4gICAgcm91dGVzITogUm91dGVzO1xyXG4gICAgLyogTWVuw7kgZGVsbGEgc2lkZWJhciBkZWxsJ2FwcGxpY2F6aW9uZSAqL1xyXG4gICAgbWVudTogQXBwbGljYXRpb25NZW51W107XHJcbiAgICAvKiBJbmRpY2Egc2UgdXRpbGl6emFyZSBsJ2FjY2VzcyB0b2tlbiBmaW50byAqL1xyXG4gICAgZmFrZUFjY2Vzc1Rva2VuPzogYm9vbGVhbjtcclxuICAgIC8qIFRpcG8gZGEgdXNhcmUgcGVyIGdlbmVyYXJlIGxlIGxvY2FsaXp6YWl6b25pIGRlbCBtZW7DuSAqL1xyXG4gICAgbWVudUxvYz86IFR5cGU8TG9jYWxpemF0aW9uU2VydmljZT47XHJcbiAgICAvKiBSZWRpcmVjdCBwZXIgbGEgcm9vdCBkZWxsJ2FwcGxpY2F6aW9uZSwgZGkgZGVmYXVsdCDDqCBpbXBvc3RhdG8gYSAqKmRhc2hib2FyZCoqLiBTZSBhbGwnaW50ZXJubyBkZWxsZSAqKnJvdXRlcyoqIG5vbiBlc2lzdGUgbGEgcm91dGUgKipkYXNoYm9hcmQqKiDDqCBkYSBpbXBvc3RhcmUgYWRlZ3VhdGFtZW50ZSAqL1xyXG4gICAgZW1wdHlSb3V0ZVJlZGlyZWN0Pzogc3RyaW5nO1xyXG4gICAgLyogU2Ugbm9uIHNwZWNpZmljYXRhIHZpZW5lIGltcG9zdGF0YSBhdXRvbWF0aWNhbWVudGUgYWQgXCJBbGxcIiBpbiBmYXNlIGRpIGRlYnVnLCBcIk5vbmVcIiBpbiBwcm9kdXppb25lIChxdWVzdCd1bHRpbW8gYSBwcmVzY2luZGVyZSwgYSBtZW5vIGNoZSAqKmZvcmNlRGVidWdNb2RlRm9yUHJvZEJ1aWxkcyoqIG5vbiBzaWEgdHJ1ZSkqL1xyXG4gICAgZGVidWdNb2RlPzogRGVidWdGbGFncztcclxuICAgIC8qIFBlcm1ldHRlIGRpIGZvcnphcmUgbGEgbW9kYWxpdMOgIGRpIGRlYnVnIHNwZWNpZmljYXRhIGFuY2hlIHBlciBsZSBidWlsZCBkaSBwcm9kdXppb25lLCAqKk5PTiBJTVBPU1RBUkUgQSBUUlVFKiogYSBtZW5vIGRpIHJhcmlzc2ltaXNzaW1pc3NpbWkgY2FzaSAqL1xyXG4gICAgZm9yY2VEZWJ1Z01vZGVGb3JQcm9kQnVpbGRzPzogYm9vbGVhbjtcclxuICAgIC8qIENhY2hlIGRpIGludmFsaWRhemlvbmUgcGVyIGxlIGNoaWFtYXRlIGh0dHAgKi9cclxuICAgIGh0dHBJbnZhbGlkYXRpb25DYWNoZT86IGFueTtcclxuICAgIC8qIEZ1bnppb25lIGRpIGluaXppYWxpenphemlvbmUgQVBQX0lOSVRJQUxJWkVSLWxpa2UgY2hlIHZpZW5lIHJpY2hpYW1hdGEgZG9wbyBhbGxhIGZ1bnppb25lIGRpIGluaXppYWxpenphemlvbmUgZGkgZGVmYXVsdCAqL1xyXG4gICAgaW5pdGlhbGl6ZXJGdW5jdGlvbj86IChodHRwOiBIVFRQU2VydmljZSwgYnRzOiBUb2tlblNlcnZpY2UsIGFhYzogQWNjZXNzQ29udHJvbFNlcnZpY2UpID0+ICgpID0+IE9ic2VydmFibGU8YW55PjtcclxuICAgIC8qIE1hcHBhIGRpIHJlZGlyZWN0IHBlciBwZXJtZXR0ZXJlIGFsICoqUmVkaXJlY3RlckNvbXBvbmVudCoqIGRpIHNhcGVyZSBkb3ZlIG5hdmlnYXJlIGluIGJhc2UgYSBPZ2dldHRvLVBhcmFtZXRyaSAqL1xyXG4gICAgcmVkaXJlY3Rpb25NYXA/OiB7IFtpbmRleDogc3RyaW5nXTogeyB1cmw6IHN0cmluZywgcGFyYW1zOiBzdHJpbmdbXSB9IH07XHJcbiAgICAvKiBBZGF0dGF0b3JlIGRlaSBncmFmaWNpIG5lbCBjYXNvIHVuIHByb2dldHRvIGZvc3NlIHZlY2NoaW8gKFJpbXVvdmliaWxlIHF1YW5kbyB0dXR0aSBpIHByb2dldHRpIHVzYW5vIG5hdGl2YW1lbnRlIGVzLWNoYXJ0cykgKi9cclxuICAgIGNoYXJ0c0FkYXB0ZXI/OiBUeXBlPEJhc2VBZGFwdGVyPjtcclxuICAgIC8qIFNlcnZpemlvIGNoZSBlc3BvbmUgaSBtZXNzYWdnaSBkaXNwb25pYmlsaSBzdSBTaWduYWxyICovXHJcbiAgICBtZXNzYWdlU2VydmljZT86IFR5cGU8QmFzZU1lc3NhZ2VTZXJ2aWNlPjtcclxuICAgIC8qIFNlcnZpemlvIHBlciBsYSBzZWFyY2ggZ2xvYmFsZSBkZWwgbW9kdWxvICovXHJcbiAgICBnbG9iYWxTZWFyY2hTZXJ2aWNlPzogVHlwZTxHbG9iYWxTZWFyY2hTZXJ2aWNlPjtcclxuICAgIC8qIFNlcnZpemlvIHBlciBmaWx0cmFyZSBsZSB2b2NpIGRpIG1lbsO5ICovXHJcbiAgICBtZW51RmlsdGVyaW5nU2VydmljZT86IFR5cGU8TWVudUZpbHRlcmluZ1NlcnZpY2U+O1xyXG4gICAgLyogU2Vydml6aW8gZGkgcmlkaXJlemlvbmUgcGVyIGpvYiBjb21wbGV0YXRpICovXHJcbiAgICBjb21wbGV0ZWRKb2JSZWRpcmVjdGlvblNlcnZpY2U/OiBUeXBlPENvbXBsZXRlZEpvYlJlZGlyZWN0aW9uU2VydmljZT47XHJcbiAgICAvKiBGdW56aW9uZSBkaSBvdmVycmlkZSBwZXIgcmVjdXBlcmFyZSBhY2NvdW50IHNjb3BlIGUgZW52b3B0aW9ucy4gUHXDsiBhbmNoZSBlc3NlcmUgdXRpbGl6emF0YSBwZXIgZm9ybmlyZSBtb2RlbGxpIGZpbnRpIGZpbm8gYWQgaW1wbGVtZW50YXppb25lICovXHJcbiAgICBvcHRpb25zQW5kU2NvcGVQcm92aWRlcj86IE9ic2VydmFibGU8eyBhcHBDb25maWc6IEVudk9wdGlvbnMsIHNjb3BlOiBBY2NvdW50U2NvcGUsIGxvY2FsZTogc3RyaW5nIH0+O1xyXG4gICAgLyogTGlzdGEgZGVpIGNvbXBvbmVudGkgY29uIGN1aSBlc3BhbmRlcmUgbGEgbmF2YmFyICovXHJcbiAgICBuYXZiYXJFeHRlbnNpb25zPzogVHlwZTxhbnk+W107XHJcbiAgICAvKiBpZGVudGlmaWNhIHNlIHV0aWxpenphcmUgbGEgdmVyc2lvbmUgdmVjY2hpYSBkZWxsJ3VybCBkaSBhdXRoICgke215Y29uZmlnLkFVVEhfVVJMfS9sb2dpbi9mb3JtP2NsaWVudD0ke215Y29uZmlnLkNMSUVOVF9OQU1FfSkgaW52ZWNlIGNoZSBsYSBudW92YSAoJHtteWNvbmZpZy5BVVRIX1VSTH0vbG9naW47Y2xpZW50PSR7bXljb25maWcuQ0xJRU5UX05BTUV9KSAqL1xyXG4gICAgbGVnYWN5TG9naW4/OiBib29sZWFuO1xyXG59XHJcblxyXG5leHBvcnQgZW51bSBEZWJ1Z0ZsYWdzIHtcclxuICAgIE5vbmUgPSAwLFxyXG4gICAgTG9jYWxpemF0aW9ucyA9IDEgPDwgMCxcclxuICAgIEV4dGVuc2lvbnMgPSAxIDw8IDEsXHJcbiAgICBBY2Nlc3NDb250cm9sID0gMSA8PCAyLFxyXG4gICAgSHR0cCA9IDEgPDwgMyxcclxuICAgIFNpZ25hbFIgPSAxIDw8IDQsXHJcbiAgICBQcmVmZXJlbmNlcyA9IDEgPDwgNSxcclxuICAgIENoYXJ0cyA9IDEgPDwgNixcclxuICAgIFRhYmJlciA9IDEgPDwgNyxcclxuICAgIEFsbCA9IH4ofjAgPDwgOClcclxufSJdfQ==
|
|
@@ -11,17 +11,19 @@ import * as minMax from 'dayjs/plugin/minMax';
|
|
|
11
11
|
import * as utc from 'dayjs/plugin/utc';
|
|
12
12
|
import { Subject, filter } from "rxjs";
|
|
13
13
|
import * as i0 from "@angular/core";
|
|
14
|
-
import * as i1 from "@
|
|
15
|
-
import * as i2 from "
|
|
16
|
-
import * as i3 from "
|
|
17
|
-
import * as i4 from "@esfaenza/
|
|
14
|
+
import * as i1 from "@angular/router";
|
|
15
|
+
import * as i2 from "@esfaenza/localizations";
|
|
16
|
+
import * as i3 from "./app.accesstoken";
|
|
17
|
+
import * as i4 from "@esfaenza/signalr-notifications";
|
|
18
|
+
import * as i5 from "@esfaenza/extensions";
|
|
18
19
|
export class AppState {
|
|
19
20
|
set Modules(modules) {
|
|
20
21
|
this._modules = modules;
|
|
21
22
|
this.notifyDataChanged("modules.Retrieved", this._modules);
|
|
22
23
|
}
|
|
23
24
|
get Modules() { return this._modules; }
|
|
24
|
-
constructor(lc, bts, notifications, MessageDef, intercom, emb) {
|
|
25
|
+
constructor(router, lc, bts, notifications, MessageDef, intercom, emb) {
|
|
26
|
+
this.router = router;
|
|
25
27
|
this.lc = lc;
|
|
26
28
|
this.bts = bts;
|
|
27
29
|
this.notifications = notifications;
|
|
@@ -69,6 +71,20 @@ export class AppState {
|
|
|
69
71
|
this.emb.refreshBoundariesOnMenuCollapse();
|
|
70
72
|
});
|
|
71
73
|
}
|
|
74
|
+
/** Tenant§Account§User§APPNAME */
|
|
75
|
+
getSessionIdentity() {
|
|
76
|
+
if (this.SessionIdentity)
|
|
77
|
+
return this.SessionIdentity;
|
|
78
|
+
// Se non ho un id mi manca il login, quindi via di qua
|
|
79
|
+
var id = this.getJaceIDentity();
|
|
80
|
+
if (!id) {
|
|
81
|
+
//TODO: Commentare per la modalità IFRAME
|
|
82
|
+
this.router.navigate(["login"]);
|
|
83
|
+
return "";
|
|
84
|
+
}
|
|
85
|
+
this.SessionIdentity = "" + id.Idtenant + "§" + id.IdAccount + "§" + id.IdUser + "§" + myconfig.AppData.ModuleId;
|
|
86
|
+
return this.SessionIdentity;
|
|
87
|
+
}
|
|
72
88
|
registerNavigationIfMeaningful(route) {
|
|
73
89
|
let title = route.data["title"];
|
|
74
90
|
let internal = route.data["internalNavigation"];
|
|
@@ -191,10 +207,10 @@ export class AppState {
|
|
|
191
207
|
this.headerHeight = height;
|
|
192
208
|
}
|
|
193
209
|
}
|
|
194
|
-
AppState.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AppState, deps: [{ token: i1.
|
|
210
|
+
AppState.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AppState, deps: [{ token: i1.Router }, { token: i2.LocalizationService }, { token: i3.TokenService }, { token: i4.NotificationsService }, { token: i4.BaseMessageService }, { token: i5.InterComService }, { token: i5.AppEmbeddingExtensions }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
195
211
|
AppState.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AppState, providedIn: "root" });
|
|
196
212
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AppState, decorators: [{
|
|
197
213
|
type: Injectable,
|
|
198
214
|
args: [{ providedIn: "root" }]
|
|
199
|
-
}], ctorParameters: function () { return [{ type: i1.
|
|
200
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLnN0YXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zZXJ2aWNlcy9zcmMvY2xhc3Nlcy9hcHAuc3RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUkzQyxPQUFPLEVBQUUsbUJBQW1CLEVBQW9DLE1BQU0sc0JBQXNCLENBQUM7QUFDN0YsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQVNqRSxrQ0FBa0M7QUFDbEMsT0FBTyxLQUFLLGlCQUFpQixNQUFNLGdDQUFnQyxDQUFDO0FBQ3BFLE9BQU8sS0FBSyxjQUFjLE1BQU0sNkJBQTZCLENBQUM7QUFDOUQsT0FBTyxLQUFLLGFBQWEsTUFBTSw0QkFBNEIsQ0FBQztBQUM1RCxPQUFPLEtBQUssU0FBUyxNQUFNLHdCQUF3QixDQUFDO0FBQ3BELE9BQU8sS0FBSyxRQUFRLE1BQU0sdUJBQXVCLENBQUM7QUFDbEQsT0FBTyxLQUFLLE1BQU0sTUFBTSxxQkFBcUIsQ0FBQztBQUM5QyxPQUFPLEtBQUssR0FBRyxNQUFNLGtCQUFrQixDQUFDO0FBQ3hDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7QUFLdkMsTUFBTSxPQUFPLFFBQVE7SUF1QmpCLElBQVcsT0FBTyxDQUFDLE9BQTJCO1FBQzFDLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxtQkFBbUIsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUNELElBQVcsT0FBTyxLQUF5QixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBRWxFLFlBQW9CLEVBQXVCLEVBQVUsR0FBaUIsRUFBVSxhQUFtQyxFQUFVLFVBQThCLEVBQVUsUUFBeUIsRUFBVSxHQUEyQjtRQUEvTSxPQUFFLEdBQUYsRUFBRSxDQUFxQjtRQUFVLFFBQUcsR0FBSCxHQUFHLENBQWM7UUFBVSxrQkFBYSxHQUFiLGFBQWEsQ0FBc0I7UUFBVSxlQUFVLEdBQVYsVUFBVSxDQUFvQjtRQUFVLGFBQVEsR0FBUixRQUFRLENBQWlCO1FBQVUsUUFBRyxHQUFILEdBQUcsQ0FBd0I7UUF4QjVOLHVCQUFrQixHQUFZLEtBQUssQ0FBQztRQUNwQyxrQkFBYSxHQUFZLEtBQUssQ0FBQztRQUMvQixrQkFBYSxHQUFZLEtBQUssQ0FBQztRQUMvQixrQkFBYSxHQUFZLEtBQUssQ0FBQztRQUkvQixtQkFBYyxHQUFXLENBQUMsQ0FBQztRQUMzQixZQUFPLEdBQXFCLEVBQUUsQ0FBQztRQUM5QixvQkFBZSxHQUF3QyxFQUFFLENBQUM7UUFDM0QsMEJBQXFCLEdBQVksSUFBSSxDQUFDO1FBRXJDLFVBQUssR0FBRyxJQUFJLE9BQU8sRUFBVSxDQUFDO1FBQzlCLG1CQUFjLEdBQWlDLElBQUksR0FBRyxFQUEyQixDQUFDO1FBRW5GLHlCQUFvQixHQUEwQyxFQUFFLENBQUM7UUFXcEUsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBRXJCLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNsQixJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztRQUVoQyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztRQUN6QixJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBRXBELGtDQUFrQztRQUNsQyxJQUFJLEtBQUssR0FBRyxLQUFLLEVBQUUsQ0FBQztRQUNwQixJQUFJLFFBQVEsR0FBRyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDNUIsSUFBSSxVQUFVLEdBQUcsS0FBSyxDQUFDLFFBQVEsR0FBRyxRQUFRLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFDMUQsSUFBSSxVQUFVLEdBQUcsS0FBSyxDQUFDLFFBQVEsR0FBRyxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsRUFBRSxZQUFZLENBQUMsQ0FBQztRQUNoRSxJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssR0FBRyxVQUFVLElBQUksS0FBSyxHQUFHLFVBQVUsQ0FBQztRQUU5RCxzQ0FBc0M7UUFDdEMsSUFBSSxVQUFVLEdBQUcsS0FBSyxDQUFDLFFBQVEsR0FBRyxRQUFRLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFDMUQsSUFBSSxVQUFVLEdBQUcsS0FBSyxDQUFDLFFBQVEsR0FBRyxRQUFRLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFDMUQsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLEdBQUcsVUFBVSxJQUFJLEtBQUssR0FBRyxVQUFVLENBQUM7UUFFOUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBa0IsRUFBRSxFQUFFLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDaEcsQ0FBQztJQUVELHlJQUF5STtJQUN6SSxhQUFhO1FBQ1QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxLQUFLLElBQUksWUFBWSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDcEYsSUFBSSxZQUFZLEdBQUcsS0FBSyxFQUFFLElBQUksRUFBRSxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsNEJBQTRCLENBQUMsQ0FBQyxDQUFDLHlCQUF5QixDQUFDO1lBQzlHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztRQUM3RCxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsS0FBSyxJQUFJLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDeEYsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGdCQUFnQixFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztRQUMxRCxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFFLENBQVMsQ0FBQyxLQUFLLElBQUksa0JBQWtCLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUMvRSxJQUFJLENBQUMsR0FBRyxDQUFDLCtCQUErQixFQUFFLENBQUE7UUFDOUMsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsOEJBQThCLENBQUMsS0FBOEI7UUFDekQsSUFBSSxLQUFLLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNoQyxJQUFJLFFBQVEsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUE7UUFFL0MseUdBQXlHO1FBQ3pHLElBQUcsQ0FBQyxLQUFLO1lBQUUsT0FBTztRQUVsQjs7OztXQUlHO1FBQ0gsSUFBSSxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQztRQUNoRCxJQUFJLEdBQUcsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBRTVELElBQUksQ0FBQyxNQUFNO1lBQ1AsT0FBTyxDQUFDLEtBQUssQ0FBQyx1SUFBdUksR0FBRyxLQUFLLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFFdlAsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsNEJBQTRCLENBQUMsQ0FBQyxDQUFDLHlCQUF5QixFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUgsQ0FBQztJQUVELG9CQUFvQixDQUFDLENBQWtCO1FBQ25DLFFBQVEsQ0FBQyxDQUFDLElBQUksRUFBRTtZQUNaLEtBQUssbUJBQW1CLENBQUMsVUFBVTtnQkFDL0IsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDLENBQUMseUJBQXlCLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztnQkFDdkgsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLENBQUMsQ0FBQztnQkFDbkYsTUFBTTtTQUNiO0lBQ0wsQ0FBQztJQUVELFVBQVU7UUFDTixLQUFLLENBQUMsTUFBTSxDQUFPLGlCQUFrQixDQUFDLE9BQU8sSUFBSSxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3BFLEtBQUssQ0FBQyxNQUFNLENBQU8sTUFBTyxDQUFDLE9BQU8sSUFBSSxNQUFNLENBQUMsQ0FBQztRQUM5QyxLQUFLLENBQUMsTUFBTSxDQUFPLFNBQVUsQ0FBQyxPQUFPLElBQUksU0FBUyxDQUFDLENBQUM7UUFDcEQsS0FBSyxDQUFDLE1BQU0sQ0FBTyxjQUFlLENBQUMsT0FBTyxJQUFJLGNBQWMsQ0FBQyxDQUFDO1FBQzlELEtBQUssQ0FBQyxNQUFNLENBQU8sYUFBYyxDQUFDLE9BQU8sSUFBSSxhQUFhLENBQUMsQ0FBQztRQUM1RCxLQUFLLENBQUMsTUFBTSxDQUFPLFFBQVMsQ0FBQyxPQUFPLElBQUksUUFBUSxDQUFDLENBQUM7UUFDbEQsS0FBSyxDQUFDLE1BQU0sQ0FBTyxHQUFJLENBQUMsT0FBTyxJQUFJLEdBQUcsQ0FBQyxDQUFDO1FBRXhDLHlEQUF5RDtRQUN6RCxNQUFNLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNwRyxDQUFDO0lBRUQsd0JBQXdCO1FBQ3BCLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsMEJBQTBCLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFrQixFQUFFLEVBQUU7WUFDcEcsSUFBSSxJQUFJLEdBQUcsRUFBRSxDQUFDLFdBQVcsR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDLElBQUksR0FBRyxHQUFHLENBQUM7WUFDakQsSUFBSSxHQUFHLEdBQW1CO2dCQUN0QixFQUFFLEVBQUUsRUFBRSxDQUFDLFFBQVE7Z0JBQ2YsV0FBVyxFQUFFLElBQUk7Z0JBQ2pCLGdCQUFnQixFQUFFLElBQUksQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUk7Z0JBQ3pFLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBQ3hDLFNBQVMsRUFBRSxFQUFFLENBQUMsSUFBSSxJQUFJLFdBQVc7Z0JBQ2pDLE1BQU0sRUFBRSxFQUFFLENBQUMsVUFBVTtnQkFDckIsUUFBUSxFQUFFLEVBQUUsQ0FBQyxZQUFZO2dCQUN6QixVQUFVLEVBQUUsRUFBRSxDQUFDLGtCQUFrQjtnQkFDakMsZUFBZSxFQUFFLEVBQUUsQ0FBQyxtQkFBbUI7YUFDMUMsQ0FBQztZQUVGLFFBQVEsRUFBRSxDQUFDLElBQUksRUFBRTtnQkFDYixLQUFLLFNBQVM7b0JBQ1YsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsRUFBRTt3QkFDbkMsT0FBTyxDQUFDLElBQUksQ0FBQyxrREFBa0QsQ0FBQyxDQUFDO3dCQUNqRSxPQUFPO3FCQUNWO29CQUNELElBQUksQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEdBQUcsQ0FBQztvQkFDeEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztvQkFDL0IsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGdCQUFnQixFQUFFLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztvQkFDMUQsTUFBTTtnQkFDVixLQUFLLFVBQVU7b0JBQ1gsdUdBQXVHO29CQUN2RywrQ0FBK0M7b0JBQy9DLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsRUFBRTt3QkFDcEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLEdBQUcsR0FBRyxDQUFDO3dCQUN4QyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO3FCQUNsQztvQkFDRCxJQUFJLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUM7b0JBQzVFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxpQkFBaUIsRUFBRSxFQUFFLFdBQVcsRUFBRSxHQUFHLENBQUMsV0FBVyxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO29CQUNwSSxNQUFNO2dCQUNWLEtBQUssV0FBVztvQkFDWixJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLEVBQUU7d0JBQ3BDLElBQUksQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEdBQUcsQ0FBQzt3QkFDeEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztxQkFDbEM7b0JBQ0QsSUFBSSxXQUFXLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUM7b0JBQ3BELFdBQVcsQ0FBQyxVQUFVLEdBQUcsR0FBRyxDQUFDO29CQUM3QixXQUFXLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQyxVQUFVLENBQUM7b0JBQ25DLFdBQVcsQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FBQztvQkFDdkMsV0FBVyxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUMsa0JBQWtCLENBQUM7b0JBQy9DLFdBQVcsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO29CQUU3QixJQUFJLElBQUksQ0FBQyxxQkFBcUI7d0JBQzFCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxrQkFBa0IsRUFBRSxXQUFXLENBQUMsV0FBVyxDQUFDLENBQUM7b0JBRXhFLE1BQU07YUFDYjtZQUVELElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLENBQUM7UUFDeEUsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsVUFBVSxDQUFDLEdBQUc7UUFDVixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQztJQUN2QyxDQUFDO0lBRUQsZUFBZTtRQUNYLElBQUksSUFBSSxDQUFDLFlBQVk7WUFDakIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO1FBQzdCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUMvQyxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDN0IsQ0FBQztJQUVELGlCQUFpQixDQUFDLEtBQUssRUFBRSxLQUFLO1FBQzFCLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsS0FBSyxDQUFDO1FBQzFCLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO1lBQ1osS0FBSyxFQUFFLEtBQUs7WUFDWixJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUM7U0FDMUIsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELFNBQVMsQ0FBQyxLQUFhLEVBQUUsUUFBa0I7UUFDdkMsSUFBSSxXQUFXLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3ZELFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFM0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRCxRQUFRLENBQUMsSUFBUztRQUNkLElBQUksV0FBVyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUUvRCxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDN0IsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDdEMsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU0sZUFBZSxDQUFDLEtBQWE7UUFDaEMsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7SUFDOUIsQ0FBQztJQUVNLGVBQWUsQ0FBQyxNQUFjO1FBQ2pDLElBQUksQ0FBQyxZQUFZLEdBQUcsTUFBTSxDQUFDO0lBQy9CLENBQUM7O3FHQWxOUSxRQUFRO3lHQUFSLFFBQVEsY0FESyxNQUFNOzJGQUNuQixRQUFRO2tCQURwQixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbIi8vIEFuZ3VsYXJcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcblxyXG4vLyBDb25maWd1cmF6aW9uaVxyXG5pbXBvcnQgeyBCYXNlTWVzc2FnZVNlcnZpY2UsIE5vdGlmaWNhdGlvbnNTZXJ2aWNlLCBKb2JQcm9ncmVzc0R0byB9IGZyb20gXCJAZXNmYWVuemEvc2lnbmFsci1ub3RpZmljYXRpb25zXCI7XHJcbmltcG9ydCB7IEluYm91bmRNZXNzYWdlVHlwZXMsIEludGVyQ29tTWVzc2FnZSwgSW50ZXJDb21TZXJ2aWNlIH0gZnJvbSBcIkBlc2ZhZW56YS9leHRlbnNpb25zXCI7XHJcbmltcG9ydCB7IEFkbU1lc3NhZ2VUeXBlcywgTUtfQURNIH0gZnJvbSBcIkBlc2ZhZW56YS9hZG1pbi1tb2R1bGVcIjtcclxuaW1wb3J0IHsgTG9jYWxpemF0aW9uU2VydmljZSB9IGZyb20gXCJAZXNmYWVuemEvbG9jYWxpemF0aW9uc1wiO1xyXG5pbXBvcnQgeyBUb2tlblNlcnZpY2UgfSBmcm9tIFwiLi9hcHAuYWNjZXNzdG9rZW5cIjtcclxuXHJcbmltcG9ydCB7IEFwcEVtYmVkZGluZ0V4dGVuc2lvbnMgfSBmcm9tIFwiQGVzZmFlbnphL2V4dGVuc2lvbnNcIjtcclxuXHJcbi8vIENvcmVcclxuaW1wb3J0IHsgQWN0aXZlTW9kdWxlVmlldywgQXBwbGljYXRpb25Kb2IsIEphY2VJZGVudGl0eSB9IGZyb20gXCJAZXNmYWVuemEvY29yZS9kb21haW5cIjtcclxuXHJcbi8vIERpcmV0dGl2ZSwgQ29tcG9uZW50aSwgTGlicmVyaWVcclxuaW1wb3J0ICogYXMgY3VzdG9tUGFyc2VGb3JtYXQgZnJvbSAnZGF5anMvcGx1Z2luL2N1c3RvbVBhcnNlRm9ybWF0JztcclxuaW1wb3J0ICogYXMgaXNTYW1lT3JCZWZvcmUgZnJvbSAnZGF5anMvcGx1Z2luL2lzU2FtZU9yQmVmb3JlJztcclxuaW1wb3J0ICogYXMgaXNTYW1lT3JBZnRlciBmcm9tICdkYXlqcy9wbHVnaW4vaXNTYW1lT3JBZnRlcic7XHJcbmltcG9ydCAqIGFzIGlzQmV0d2VlbiBmcm9tICdkYXlqcy9wbHVnaW4vaXNCZXR3ZWVuJztcclxuaW1wb3J0ICogYXMgZHVyYXRpb24gZnJvbSAnZGF5anMvcGx1Z2luL2R1cmF0aW9uJztcclxuaW1wb3J0ICogYXMgbWluTWF4IGZyb20gJ2RheWpzL3BsdWdpbi9taW5NYXgnO1xyXG5pbXBvcnQgKiBhcyB1dGMgZnJvbSAnZGF5anMvcGx1Z2luL3V0Yyc7XHJcbmltcG9ydCB7IFN1YmplY3QsIGZpbHRlciB9IGZyb20gXCJyeGpzXCI7XHJcblxyXG5kZWNsYXJlIHZhciBkYXlqczogYW55O1xyXG5cclxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiBcInJvb3RcIiB9KVxyXG5leHBvcnQgY2xhc3MgQXBwU3RhdGUge1xyXG5cclxuICAgIHB1YmxpYyBzaWRlYmFyV2lkdGg6IG51bWJlcjtcclxuICAgIHB1YmxpYyBoZWFkZXJIZWlnaHQ6IG51bWJlcjtcclxuXHJcbiAgICBwdWJsaWMgcmVkaXJlY3RpbmdUb0xvZ2luOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBwdWJsaWMgaGFuZGxpbmdFcnJvcjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgcHVibGljIGNocmlzdG1hc1RpbWU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIHB1YmxpYyBoYWxsb3dlZW5UaW1lOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgcHJpdmF0ZSBKYWNlSWRlbnRpdHk6IEphY2VJZGVudGl0eTtcclxuXHJcbiAgICBwdWJsaWMgam9ic0luUHJvZ3Jlc3M6IG51bWJlciA9IDA7XHJcbiAgICBwdWJsaWMgYWxsSm9iczogQXBwbGljYXRpb25Kb2JbXSA9IFtdO1xyXG4gICAgcHJpdmF0ZSBqb2JXaXRoSWRzQ2FjaGU6IHsgW2luZGV4OiBzdHJpbmddOiBBcHBsaWNhdGlvbkpvYiB9ID0ge307XHJcbiAgICBwdWJsaWMgbm90aWZ5T25Db21wbGV0ZWRKb2JzOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgICBwcml2YXRlIF9kYXRhID0gbmV3IFN1YmplY3Q8T2JqZWN0PigpO1xyXG4gICAgcHJpdmF0ZSBfc3Vic2NyaXB0aW9uczogTWFwPHN0cmluZywgQXJyYXk8RnVuY3Rpb24+PiA9IG5ldyBNYXA8c3RyaW5nLCBBcnJheTxGdW5jdGlvbj4+KCk7XHJcblxyXG4gICAgcHVibGljIE1vZHVsZXNMb2NhbGl6YXRpb25zOiB7IFtpZDogc3RyaW5nXTogTG9jYWxpemF0aW9uU2VydmljZSB9ID0ge307XHJcblxyXG4gICAgcHJpdmF0ZSBfbW9kdWxlczogQWN0aXZlTW9kdWxlVmlld1tdO1xyXG4gICAgcHVibGljIHNldCBNb2R1bGVzKG1vZHVsZXM6IEFjdGl2ZU1vZHVsZVZpZXdbXSkge1xyXG4gICAgICAgIHRoaXMuX21vZHVsZXMgPSBtb2R1bGVzO1xyXG4gICAgICAgIHRoaXMubm90aWZ5RGF0YUNoYW5nZWQoXCJtb2R1bGVzLlJldHJpZXZlZFwiLCB0aGlzLl9tb2R1bGVzKTtcclxuICAgIH1cclxuICAgIHB1YmxpYyBnZXQgTW9kdWxlcygpOiBBY3RpdmVNb2R1bGVWaWV3W10geyByZXR1cm4gdGhpcy5fbW9kdWxlczsgfVxyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgbGM6IExvY2FsaXphdGlvblNlcnZpY2UsIHByaXZhdGUgYnRzOiBUb2tlblNlcnZpY2UsIHByaXZhdGUgbm90aWZpY2F0aW9uczogTm90aWZpY2F0aW9uc1NlcnZpY2UsIHByaXZhdGUgTWVzc2FnZURlZjogQmFzZU1lc3NhZ2VTZXJ2aWNlLCBwcml2YXRlIGludGVyY29tOiBJbnRlckNvbVNlcnZpY2UsIHByaXZhdGUgZW1iOiBBcHBFbWJlZGRpbmdFeHRlbnNpb25zKSB7XHJcblxyXG4gICAgICAgIHRoaXMuaG9va0VtYmVkZGluZygpO1xyXG5cclxuICAgICAgICB0aGlzLnNldHVwRGF5anMoKTtcclxuICAgICAgICB0aGlzLnNldHVwU2lnbmFsUkpvYkxpc3RlbmluZygpO1xyXG5cclxuICAgICAgICB0aGlzLkphY2VJZGVudGl0eSA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5fZGF0YS5zdWJzY3JpYmUoKGRhdGEpID0+IHRoaXMuX29uRXZlbnQoZGF0YSkpO1xyXG5cclxuICAgICAgICAvL0RlY2lkZSBzZSBzaWFtbyBhdHRvcm5vIGEgbmF0YWxlXHJcbiAgICAgICAgdmFyIHRvZGF5ID0gZGF5anMoKTtcclxuICAgICAgICB2YXIgdGhpc1llYXIgPSB0b2RheS55ZWFyKCk7XHJcbiAgICAgICAgdmFyIGxvd2VyQm91bmQgPSBkYXlqcyhcIjE4LzEyL1wiICsgdGhpc1llYXIsIFwiREQvTU0vWVlZWVwiKTtcclxuICAgICAgICB2YXIgdXBwZXJCb3VuZCA9IGRheWpzKFwiMDcvMDEvXCIgKyAodGhpc1llYXIgKyAxKSwgXCJERC9NTS9ZWVlZXCIpO1xyXG4gICAgICAgIHRoaXMuY2hyaXN0bWFzVGltZSA9IHRvZGF5ID4gbG93ZXJCb3VuZCAmJiB0b2RheSA8IHVwcGVyQm91bmQ7XHJcblxyXG4gICAgICAgIC8vRGVjaWRlIHNlIHNpYW1vIGF0dG9ybm8gYWQgaGFsbG93ZWVuXHJcbiAgICAgICAgdmFyIGxvd2VyQm91bmQgPSBkYXlqcyhcIjI4LzEwL1wiICsgdGhpc1llYXIsIFwiREQvTU0vWVlZWVwiKTtcclxuICAgICAgICB2YXIgdXBwZXJCb3VuZCA9IGRheWpzKFwiMDUvMTEvXCIgKyB0aGlzWWVhciwgXCJERC9NTS9ZWVlZXCIpO1xyXG4gICAgICAgIHRoaXMuaGFsbG93ZWVuVGltZSA9IHRvZGF5ID4gbG93ZXJCb3VuZCAmJiB0b2RheSA8IHVwcGVyQm91bmQ7XHJcblxyXG4gICAgICAgIHRoaXMuaW50ZXJjb20uaW5ib3VuZHMuc3Vic2NyaWJlKCh0OiBJbnRlckNvbU1lc3NhZ2UpID0+IHsgdGhpcy5oYW5kbGVJbmJvdW5kTWVzc2FnZSh0KTsgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gQ29sbGVnbyBsZSBpbmZvcm1hemlvbmkgZGVsbCdlbWJlZGRpbmcgY2hlIGRldm9ubyBhcHBvZ2dpYXJzaSBhbGwnYXBwIHN0YXRlIGluIG1vZG8gY2hlIHBvc3Nhbm8gY29tdW5pY2FyZSBjb2wgcmVzdG8gZGVsbCdhcHBsaWNhemlvbmVcclxuICAgIGhvb2tFbWJlZGRpbmcoKSB7XHJcbiAgICAgICAgdGhpcy5lbWIuTWVzc2FnZU9ic2VydmVyLnBpcGUoZmlsdGVyKGV2ID0+IGV2LmV2ZW50ID09IFwibmF2aWdhdGlvblwiKSkuc3Vic2NyaWJlKGV2ZW50ID0+IHtcclxuICAgICAgICAgICAgdmFyIG5hdmlnYXRpb25PcCA9IGV2ZW50Py5kYXRhPy5pbnRlcm5hbE5hdmlnYXRpb24gPyBcIm1lbnUuYWRqdXN0U3ViTmF2aWdhdGlvblRvXCIgOiBcIm1lbnUuYWRqdXN0TmF2aWdhdGlvblRvXCI7XHJcbiAgICAgICAgICAgIHRoaXMubm90aWZ5RGF0YUNoYW5nZWQobmF2aWdhdGlvbk9wLCBldmVudD8uZGF0YT8udGl0bGUpO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICB0aGlzLmVtYi5NZXNzYWdlT2JzZXJ2ZXIucGlwZShmaWx0ZXIoZXYgPT4gZXYuZXZlbnQgPT0gXCJ3aW5kb3ctbWVzc2FnZVwiKSkuc3Vic2NyaWJlKGV2ZW50ID0+IHtcclxuICAgICAgICAgICAgdGhpcy5ub3RpZnlEYXRhQ2hhbmdlZChcIndpbmRvdy1tZXNzYWdlXCIsIGV2ZW50Py5kYXRhKTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5fZGF0YS5waXBlKGZpbHRlcihlID0+IChlIGFzIGFueSkuZXZlbnQgPT0gXCJtZW51LmlzQ29sbGFwc2VkXCIpKS5zdWJzY3JpYmUoXyA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuZW1iLnJlZnJlc2hCb3VuZGFyaWVzT25NZW51Q29sbGFwc2UoKVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHJlZ2lzdGVyTmF2aWdhdGlvbklmTWVhbmluZ2Z1bChyb3V0ZT86IEFjdGl2YXRlZFJvdXRlU25hcHNob3QpIHtcclxuICAgICAgICBsZXQgdGl0bGUgPSByb3V0ZS5kYXRhW1widGl0bGVcIl07XHJcbiAgICAgICAgbGV0IGludGVybmFsID0gcm91dGUuZGF0YVtcImludGVybmFsTmF2aWdhdGlvblwiXVxyXG5cclxuICAgICAgICAvLyBQZXJtZXR0ZSBkaSBjaGlhbWFyZSBzdG8gcmVnaXN0ZXJOYXZpZ2F0aW9uIGEgcHJlc2NpbmRlcmUgZSBmYXJlIG9wdCBvdXQgc2Ugbm9uIMOoIHVuYSByb3V0ZSBuYXZpZ2FiaWxlXHJcbiAgICAgICAgaWYoIXRpdGxlKSByZXR1cm47XHJcblxyXG4gICAgICAgIC8qXHJcbiAgICAgICAgICogIFBhcmVudCAoe3VybDogW3twYXRoOiBcInttb2R1bGV9XCJ9XX0pXHJcbiAgICAgICAgICogICAgICBQYXJlbnQgKHt1cmw6IFt7cGF0aDogXCJcIn1dfSkgKFJvb3QgZGVsIG1vZHVsbyBsYXp5KVxyXG4gICAgICAgICAqICAgICAgICAgIC0+IE5hdmlnYXppb25lIGF0dHVhbGUgPC1cclxuICAgICAgICAgKi9cclxuICAgICAgICBsZXQgbW9kdWxlID0gcm91dGUucGFyZW50Py5wYXJlbnQ/LnVybFswXT8ucGF0aDtcclxuICAgICAgICBsZXQgbG9jID0gbW9kdWxlID8gdGhpcy5Nb2R1bGVzTG9jYWxpemF0aW9uc1ttb2R1bGVdIDogbnVsbDtcclxuXHJcbiAgICAgICAgaWYgKCFtb2R1bGUpXHJcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXCJJbXBvc3NpYmlsZSBlc3RyYXBvbGFyZSBpbCBtb2R1bG8gZGFsbGEgbmF2aWdhemlvbmUgKEF0dGVzbyBNb2R1bG8gYWwgc2Vjb25kbyBsaXZlbGxvIGRpIHBhcmVudGVsYSBwYXJ0ZW5kbyBkYWwgY29tcG9uZW50ZSBhdHR1YWxlKTogXCIgKyByb3V0ZS5wYXRoRnJvbVJvb3QubWFwKHYgPT4gdi51cmwubWFwKHNlZ21lbnQgPT4gc2VnbWVudC50b1N0cmluZygpKS5qb2luKCcvJykpLmpvaW4oJy8nKSk7XHJcblxyXG4gICAgICAgIHRoaXMubm90aWZ5RGF0YUNoYW5nZWQoaW50ZXJuYWwgPyBcIm1lbnUuYWRqdXN0U3ViTmF2aWdhdGlvblRvXCIgOiBcIm1lbnUuYWRqdXN0TmF2aWdhdGlvblRvXCIsIGxvYyA/IGxvYy5sb2ModGl0bGUpIDogdGl0bGUpO1xyXG4gICAgfVxyXG5cclxuICAgIGhhbmRsZUluYm91bmRNZXNzYWdlKHQ6IEludGVyQ29tTWVzc2FnZSkge1xyXG4gICAgICAgIHN3aXRjaCAodC50eXBlKSB7XHJcbiAgICAgICAgICAgIGNhc2UgSW5ib3VuZE1lc3NhZ2VUeXBlcy5OYXZpZ2F0aW9uOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5ub3RpZnlEYXRhQ2hhbmdlZCh0Lm1lc3NhZ2Uuc3ViID8gXCJtZW51LmFkanVzdFN1Yk5hdmlnYXRpb25Ub1wiIDogXCJtZW51LmFkanVzdE5hdmlnYXRpb25Ub1wiLCB0Lm1lc3NhZ2Uucm91dGVUaXRsZSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmludGVyY29tLnNlbmQoQWRtTWVzc2FnZVR5cGVzLk1lc3NhZ2UsIFwiTmF2aWdhdGlvbiBNZXNzYWdlIFJlY2VpdmVkXCIsIE1LX0FETSk7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgc2V0dXBEYXlqcygpIHtcclxuICAgICAgICBkYXlqcy5leHRlbmQoKDxhbnk+Y3VzdG9tUGFyc2VGb3JtYXQpLmRlZmF1bHQgfHwgY3VzdG9tUGFyc2VGb3JtYXQpO1xyXG4gICAgICAgIGRheWpzLmV4dGVuZCgoPGFueT5taW5NYXgpLmRlZmF1bHQgfHwgbWluTWF4KTtcclxuICAgICAgICBkYXlqcy5leHRlbmQoKDxhbnk+aXNCZXR3ZWVuKS5kZWZhdWx0IHx8IGlzQmV0d2Vlbik7XHJcbiAgICAgICAgZGF5anMuZXh0ZW5kKCg8YW55PmlzU2FtZU9yQmVmb3JlKS5kZWZhdWx0IHx8IGlzU2FtZU9yQmVmb3JlKTtcclxuICAgICAgICBkYXlqcy5leHRlbmQoKDxhbnk+aXNTYW1lT3JBZnRlcikuZGVmYXVsdCB8fCBpc1NhbWVPckFmdGVyKTtcclxuICAgICAgICBkYXlqcy5leHRlbmQoKDxhbnk+ZHVyYXRpb24pLmRlZmF1bHQgfHwgZHVyYXRpb24pO1xyXG4gICAgICAgIGRheWpzLmV4dGVuZCgoPGFueT51dGMpLmRlZmF1bHQgfHwgdXRjKTtcclxuXHJcbiAgICAgICAgLy8gUmVxdWlyZSBlIGNvbGxlZ2FtZW50byBjb24gbGEgbG9jYWxpenphemlvbmUgcGVyIGRheWpzXHJcbiAgICAgICAgaW1wb3J0KFwiZGF5anMvbG9jYWxlL1wiICsgdGhpcy5sYy5TbWFsbExvY2FsZSArIFwiLmpzXCIpLnRoZW4obG9jYWxlID0+IHsgZGF5anMubG9jYWxlKGxvY2FsZSk7IH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHNldHVwU2lnbmFsUkpvYkxpc3RlbmluZygpIHtcclxuICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbnMub2JzZXJ2ZSh0aGlzLk1lc3NhZ2VEZWYuSU5fSm9iUHJvZ3Jlc3NOb3RpZmljYXRpb24pLnN1YnNjcmliZSgoZXY6IEpvYlByb2dyZXNzRHRvKSA9PiB7XHJcbiAgICAgICAgICAgIHZhciBkZXNjID0gZXYuZGVzY3JpcHRpb24gKyBcIiAoXCIgKyBldi51c2VyICsgXCIpXCI7XHJcbiAgICAgICAgICAgIGxldCBqb2I6IEFwcGxpY2F0aW9uSm9iID0ge1xyXG4gICAgICAgICAgICAgICAgaWQ6IGV2Lmluc3RhbmNlLFxyXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IGRlc2MsXHJcbiAgICAgICAgICAgICAgICBzbWFsbGRlc2NyaXB0aW9uOiBkZXNjLmxlbmd0aCA+IDM1ID8gZGVzYy5zdWJzdHJpbmcoMCwgMzApICsgXCIuLi5cIiA6IGRlc2MsXHJcbiAgICAgICAgICAgICAgICBwZXJjZW50YWdlOiB0aGlzLnJvdW5kVG9Ud28oZXYucHJvZ3Jlc3MpLFxyXG4gICAgICAgICAgICAgICAgY29tcGxldGVkOiBldi50eXBlID09ICdDb21wbGV0ZWQnLFxyXG4gICAgICAgICAgICAgICAgZmlsZWlkOiBldi5yZXN1bHRmaWxlLFxyXG4gICAgICAgICAgICAgICAgcmVwb3J0aWQ6IGV2LnJlc3VsdHJlcG9ydCxcclxuICAgICAgICAgICAgICAgIHJlcG9ydHBhcnM6IGV2LnJlc3VsdHJlcG9ydHBhcmFtcyxcclxuICAgICAgICAgICAgICAgIGNvbXBsZXhyZXBvcnRpZDogZXYucmVzdWx0Y29tcGxleHJlcG9ydFxyXG4gICAgICAgICAgICB9O1xyXG5cclxuICAgICAgICAgICAgc3dpdGNoIChldi50eXBlKSB7XHJcbiAgICAgICAgICAgICAgICBjYXNlIFwiU3RhcnRlZFwiOlxyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmpvYldpdGhJZHNDYWNoZVtldi5pbnN0YW5jZV0pIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS53YXJuKFwiSm9iIGFscmVhZHkgcmVnaXN0ZXJlZCBvbiB0aGUgJ1N0YXJ0ZWQnIGNhbGxiYWNrXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuam9iV2l0aElkc0NhY2hlW2V2Lmluc3RhbmNlXSA9IGpvYjtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmFsbEpvYnMuc3BsaWNlKDAsIDAsIGpvYik7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ub3RpZnlEYXRhQ2hhbmdlZChcImFwcC5zdGFydGVkSm9iXCIsIGpvYi5kZXNjcmlwdGlvbik7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBjYXNlIFwiUHJvZ3Jlc3NcIjpcclxuICAgICAgICAgICAgICAgICAgICAvLyBTZSBtaSBhcnJpdmEgdW4gcHJvZ3Jlc3MgZGkgdW4gam9iIGNoZSBub24gaG8gc2lnbmlmaWNhIGNoZSBtaSBzb25vIGxvZ2dhdG8gb3JhIGNvbiBkZWkgSm9iIGluIGNvcnNvXHJcbiAgICAgICAgICAgICAgICAgICAgLy8gcXVpbmRpIHBlciBwcmltYSBjb3NhIGRldm8gbWV0dGVybG8gaW4gbGlzdGFcclxuICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMuam9iV2l0aElkc0NhY2hlW2V2Lmluc3RhbmNlXSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmpvYldpdGhJZHNDYWNoZVtldi5pbnN0YW5jZV0gPSBqb2I7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYWxsSm9icy5zcGxpY2UoMCwgMCwgam9iKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5qb2JXaXRoSWRzQ2FjaGVbZXYuaW5zdGFuY2VdLnBlcmNlbnRhZ2UgPSB0aGlzLnJvdW5kVG9Ud28oZXYucHJvZ3Jlc3MpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubm90aWZ5RGF0YUNoYW5nZWQoXCJhcHAucHJvZ3Jlc3NKb2JcIiwgeyBkZXNjcmlwdGlvbjogam9iLmRlc2NyaXB0aW9uLCBwcm9ncmVzczogdGhpcy5qb2JXaXRoSWRzQ2FjaGVbZXYuaW5zdGFuY2VdLnBlcmNlbnRhZ2UgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBjYXNlIFwiQ29tcGxldGVkXCI6XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLmpvYldpdGhJZHNDYWNoZVtldi5pbnN0YW5jZV0pIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5qb2JXaXRoSWRzQ2FjaGVbZXYuaW5zdGFuY2VdID0gam9iO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFsbEpvYnMuc3BsaWNlKDAsIDAsIGpvYik7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIHZhciBqb2JUb1VwZGF0ZSA9IHRoaXMuam9iV2l0aElkc0NhY2hlW2V2Lmluc3RhbmNlXTtcclxuICAgICAgICAgICAgICAgICAgICBqb2JUb1VwZGF0ZS5wZXJjZW50YWdlID0gMTAwO1xyXG4gICAgICAgICAgICAgICAgICAgIGpvYlRvVXBkYXRlLmZpbGVpZCA9IGV2LnJlc3VsdGZpbGU7XHJcbiAgICAgICAgICAgICAgICAgICAgam9iVG9VcGRhdGUucmVwb3J0aWQgPSBldi5yZXN1bHRyZXBvcnQ7XHJcbiAgICAgICAgICAgICAgICAgICAgam9iVG9VcGRhdGUucmVwb3J0cGFycyA9IGV2LnJlc3VsdHJlcG9ydHBhcmFtcztcclxuICAgICAgICAgICAgICAgICAgICBqb2JUb1VwZGF0ZS5jb21wbGV0ZWQgPSB0cnVlO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5ub3RpZnlPbkNvbXBsZXRlZEpvYnMpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubm90aWZ5RGF0YUNoYW5nZWQoXCJhcHAuY29tcGxldGVkSm9iXCIsIGpvYlRvVXBkYXRlLmRlc2NyaXB0aW9uKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHRoaXMuam9ic0luUHJvZ3Jlc3MgPSB0aGlzLmFsbEpvYnMuZmlsdGVyKHQgPT4gIXQuY29tcGxldGVkKS5sZW5ndGg7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcm91bmRUb1R3byhudW0pIHtcclxuICAgICAgICByZXR1cm4gTWF0aC5yb3VuZChudW0gKiAxMDApIC8gMTAwO1xyXG4gICAgfVxyXG5cclxuICAgIGdldEphY2VJRGVudGl0eSgpOiBKYWNlSWRlbnRpdHkge1xyXG4gICAgICAgIGlmICh0aGlzLkphY2VJZGVudGl0eSlcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuSmFjZUlkZW50aXR5O1xyXG4gICAgICAgIHRoaXMuSmFjZUlkZW50aXR5ID0gdGhpcy5idHMuZ2V0SmFjZUlkZW50aXR5KCk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuSmFjZUlkZW50aXR5O1xyXG4gICAgfVxyXG5cclxuICAgIG5vdGlmeURhdGFDaGFuZ2VkKGV2ZW50LCB2YWx1ZSkge1xyXG4gICAgICAgIHRoaXMuX2RhdGFbZXZlbnRdID0gdmFsdWU7XHJcbiAgICAgICAgdGhpcy5fZGF0YS5uZXh0KHtcclxuICAgICAgICAgICAgZXZlbnQ6IGV2ZW50LFxyXG4gICAgICAgICAgICBkYXRhOiB0aGlzLl9kYXRhW2V2ZW50XVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHN1YnNjcmliZShldmVudDogc3RyaW5nLCBjYWxsYmFjazogRnVuY3Rpb24pIHtcclxuICAgICAgICB2YXIgc3Vic2NyaWJlcnMgPSB0aGlzLl9zdWJzY3JpcHRpb25zLmdldChldmVudCkgfHwgW107XHJcbiAgICAgICAgc3Vic2NyaWJlcnMucHVzaChjYWxsYmFjayk7XHJcblxyXG4gICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMuc2V0KGV2ZW50LCBzdWJzY3JpYmVycyk7XHJcbiAgICB9XHJcblxyXG4gICAgX29uRXZlbnQoZGF0YTogYW55KSB7XHJcbiAgICAgICAgdmFyIHN1YnNjcmliZXJzID0gdGhpcy5fc3Vic2NyaXB0aW9ucy5nZXQoZGF0YVtcImV2ZW50XCJdKSB8fCBbXTtcclxuXHJcbiAgICAgICAgc3Vic2NyaWJlcnMuZm9yRWFjaCgoY2FsbGJhY2spID0+IHtcclxuICAgICAgICAgICAgY2FsbGJhY2suY2FsbChudWxsLCBkYXRhW1wiZGF0YVwiXSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHNldFNpZGViYXJXaWR0aCh3aWR0aDogbnVtYmVyKSB7XHJcbiAgICAgICAgdGhpcy5zaWRlYmFyV2lkdGggPSB3aWR0aDtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc2V0SGVhZGVySGVpZ2h0KGhlaWdodDogbnVtYmVyKSB7XHJcbiAgICAgICAgdGhpcy5oZWFkZXJIZWlnaHQgPSBoZWlnaHQ7XHJcbiAgICB9XHJcbn0iXX0=
|
|
215
|
+
}], ctorParameters: function () { return [{ type: i1.Router }, { type: i2.LocalizationService }, { type: i3.TokenService }, { type: i4.NotificationsService }, { type: i4.BaseMessageService }, { type: i5.InterComService }, { type: i5.AppEmbeddingExtensions }]; } });
|
|
216
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLnN0YXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zZXJ2aWNlcy9zcmMvY2xhc3Nlcy9hcHAuc3RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUkzQyxPQUFPLEVBQUUsbUJBQW1CLEVBQW9DLE1BQU0sc0JBQXNCLENBQUM7QUFDN0YsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQVNqRSxrQ0FBa0M7QUFDbEMsT0FBTyxLQUFLLGlCQUFpQixNQUFNLGdDQUFnQyxDQUFDO0FBQ3BFLE9BQU8sS0FBSyxjQUFjLE1BQU0sNkJBQTZCLENBQUM7QUFDOUQsT0FBTyxLQUFLLGFBQWEsTUFBTSw0QkFBNEIsQ0FBQztBQUM1RCxPQUFPLEtBQUssU0FBUyxNQUFNLHdCQUF3QixDQUFDO0FBQ3BELE9BQU8sS0FBSyxRQUFRLE1BQU0sdUJBQXVCLENBQUM7QUFDbEQsT0FBTyxLQUFLLE1BQU0sTUFBTSxxQkFBcUIsQ0FBQztBQUM5QyxPQUFPLEtBQUssR0FBRyxNQUFNLGtCQUFrQixDQUFDO0FBQ3hDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7O0FBTXZDLE1BQU0sT0FBTyxRQUFRO0lBd0JqQixJQUFXLE9BQU8sQ0FBQyxPQUEyQjtRQUMxQyxJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQztRQUN4QixJQUFJLENBQUMsaUJBQWlCLENBQUMsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFDRCxJQUFXLE9BQU8sS0FBeUIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUVsRSxZQUFvQixNQUFjLEVBQVUsRUFBdUIsRUFBVSxHQUFpQixFQUFVLGFBQW1DLEVBQVUs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LFNBQVMsQ0FBQyxLQUFhLEVBQUUsUUFBa0I7UUFDdkMsSUFBSSxXQUFXLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3ZELFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFM0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRCxRQUFRLENBQUMsSUFBUztRQUNkLElBQUksV0FBVyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUUvRCxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDN0IsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDdEMsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU0sZUFBZSxDQUFDLEtBQWE7UUFDaEMsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7SUFDOUIsQ0FBQztJQUVNLGVBQWUsQ0FBQyxNQUFjO1FBQ2pDLElBQUksQ0FBQyxZQUFZLEdBQUcsTUFBTSxDQUFDO0lBQy9CLENBQUM7O3FHQXBPUSxRQUFRO3lHQUFSLFFBQVEsY0FESyxNQUFNOzJGQUNuQixRQUFRO2tCQURwQixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbIi8vIEFuZ3VsYXJcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgUm91dGVyIH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbi8vIENvbmZpZ3VyYXppb25pXHJcbmltcG9ydCB7IEJhc2VNZXNzYWdlU2VydmljZSwgTm90aWZpY2F0aW9uc1NlcnZpY2UsIEpvYlByb2dyZXNzRHRvIH0gZnJvbSBcIkBlc2ZhZW56YS9zaWduYWxyLW5vdGlmaWNhdGlvbnNcIjtcclxuaW1wb3J0IHsgSW5ib3VuZE1lc3NhZ2VUeXBlcywgSW50ZXJDb21NZXNzYWdlLCBJbnRlckNvbVNlcnZpY2UgfSBmcm9tIFwiQGVzZmFlbnphL2V4dGVuc2lvbnNcIjtcclxuaW1wb3J0IHsgQWRtTWVzc2FnZVR5cGVzLCBNS19BRE0gfSBmcm9tIFwiQGVzZmFlbnphL2FkbWluLW1vZHVsZVwiO1xyXG5pbXBvcnQgeyBMb2NhbGl6YXRpb25TZXJ2aWNlIH0gZnJvbSBcIkBlc2ZhZW56YS9sb2NhbGl6YXRpb25zXCI7XHJcbmltcG9ydCB7IFRva2VuU2VydmljZSB9IGZyb20gXCIuL2FwcC5hY2Nlc3N0b2tlblwiO1xyXG5cclxuaW1wb3J0IHsgQXBwRW1iZWRkaW5nRXh0ZW5zaW9ucyB9IGZyb20gXCJAZXNmYWVuemEvZXh0ZW5zaW9uc1wiO1xyXG5cclxuLy8gQ29yZVxyXG5pbXBvcnQgeyBBY3RpdmVNb2R1bGVWaWV3LCBBcHBsaWNhdGlvbkpvYiwgRW52T3B0aW9ucywgSmFjZUlkZW50aXR5IH0gZnJvbSBcIkBlc2ZhZW56YS9jb3JlL2RvbWFpblwiO1xyXG5cclxuLy8gRGlyZXR0aXZlLCBDb21wb25lbnRpLCBMaWJyZXJpZVxyXG5pbXBvcnQgKiBhcyBjdXN0b21QYXJzZUZvcm1hdCBmcm9tICdkYXlqcy9wbHVnaW4vY3VzdG9tUGFyc2VGb3JtYXQnO1xyXG5pbXBvcnQgKiBhcyBpc1NhbWVPckJlZm9yZSBmcm9tICdkYXlqcy9wbHVnaW4vaXNTYW1lT3JCZWZvcmUnO1xyXG5pbXBvcnQgKiBhcyBpc1NhbWVPckFmdGVyIGZyb20gJ2RheWpzL3BsdWdpbi9pc1NhbWVPckFmdGVyJztcclxuaW1wb3J0ICogYXMgaXNCZXR3ZWVuIGZyb20gJ2RheWpzL3BsdWdpbi9pc0JldHdlZW4nO1xyXG5pbXBvcnQgKiBhcyBkdXJhdGlvbiBmcm9tICdkYXlqcy9wbHVnaW4vZHVyYXRpb24nO1xyXG5pbXBvcnQgKiBhcyBtaW5NYXggZnJvbSAnZGF5anMvcGx1Z2luL21pbk1heCc7XHJcbmltcG9ydCAqIGFzIHV0YyBmcm9tICdkYXlqcy9wbHVnaW4vdXRjJztcclxuaW1wb3J0IHsgU3ViamVjdCwgZmlsdGVyIH0gZnJvbSBcInJ4anNcIjtcclxuXHJcbmRlY2xhcmUgdmFyIGRheWpzOiBhbnk7XHJcbmRlY2xhcmUgdmFyIG15Y29uZmlnOiBFbnZPcHRpb25zO1xyXG5cclxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiBcInJvb3RcIiB9KVxyXG5leHBvcnQgY2xhc3MgQXBwU3RhdGUge1xyXG5cclxuICAgIHB1YmxpYyBzaWRlYmFyV2lkdGg6IG51bWJlcjtcclxuICAgIHB1YmxpYyBoZWFkZXJIZWlnaHQ6IG51bWJlcjtcclxuXHJcbiAgICBwdWJsaWMgcmVkaXJlY3RpbmdUb0xvZ2luOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBwdWJsaWMgaGFuZGxpbmdFcnJvcjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgcHVibGljIGNocmlzdG1hc1RpbWU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIHB1YmxpYyBoYWxsb3dlZW5UaW1lOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgcHJpdmF0ZSBTZXNzaW9uSWRlbnRpdHk6IHN0cmluZztcclxuICAgIHByaXZhdGUgSmFjZUlkZW50aXR5OiBKYWNlSWRlbnRpdHk7XHJcblxyXG4gICAgcHVibGljIGpvYnNJblByb2dyZXNzOiBudW1iZXIgPSAwO1xyXG4gICAgcHVibGljIGFsbEpvYnM6IEFwcGxpY2F0aW9uSm9iW10gPSBbXTtcclxuICAgIHByaXZhdGUgam9iV2l0aElkc0NhY2hlOiB7IFtpbmRleDogc3RyaW5nXTogQXBwbGljYXRpb25Kb2IgfSA9IHt9O1xyXG4gICAgcHVibGljIG5vdGlmeU9uQ29tcGxldGVkSm9iczogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gICAgcHJpdmF0ZSBfZGF0YSA9IG5ldyBTdWJqZWN0PE9iamVjdD4oKTtcclxuICAgIHByaXZhdGUgX3N1YnNjcmlwdGlvbnM6IE1hcDxzdHJpbmcsIEFycmF5PEZ1bmN0aW9uPj4gPSBuZXcgTWFwPHN0cmluZywgQXJyYXk8RnVuY3Rpb24+PigpO1xyXG5cclxuICAgIHB1YmxpYyBNb2R1bGVzTG9jYWxpemF0aW9uczogeyBbaWQ6IHN0cmluZ106IExvY2FsaXphdGlvblNlcnZpY2UgfSA9IHt9O1xyXG5cclxuICAgIHByaXZhdGUgX21vZHVsZXM6IEFjdGl2ZU1vZHVsZVZpZXdbXTtcclxuICAgIHB1YmxpYyBzZXQgTW9kdWxlcyhtb2R1bGVzOiBBY3RpdmVNb2R1bGVWaWV3W10pIHtcclxuICAgICAgICB0aGlzLl9tb2R1bGVzID0gbW9kdWxlcztcclxuICAgICAgICB0aGlzLm5vdGlmeURhdGFDaGFuZ2VkKFwibW9kdWxlcy5SZXRyaWV2ZWRcIiwgdGhpcy5fbW9kdWxlcyk7XHJcbiAgICB9XHJcbiAgICBwdWJsaWMgZ2V0IE1vZHVsZXMoKTogQWN0aXZlTW9kdWxlVmlld1tdIHsgcmV0dXJuIHRoaXMuX21vZHVsZXM7IH1cclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJvdXRlcjogUm91dGVyLCBwcml2YXRlIGxjOiBMb2NhbGl6YXRpb25TZXJ2aWNlLCBwcml2YXRlIGJ0czogVG9rZW5TZXJ2aWNlLCBwcml2YXRlIG5vdGlmaWNhdGlvbnM6IE5vdGlmaWNhdGlvbnNTZXJ2aWNlLCBwcml2YXRlIE1lc3NhZ2VEZWY6IEJhc2VNZXNzYWdlU2VydmljZSwgcHJpdmF0ZSBpbnRlcmNvbTogSW50ZXJDb21TZXJ2aWNlLCBwcml2YXRlIGVtYjogQXBwRW1iZWRkaW5nRXh0ZW5zaW9ucykge1xyXG5cclxuICAgICAgICB0aGlzLmhvb2tFbWJlZGRpbmcoKTtcclxuXHJcbiAgICAgICAgdGhpcy5zZXR1cERheWpzKCk7XHJcbiAgICAgICAgdGhpcy5zZXR1cFNpZ25hbFJKb2JMaXN0ZW5pbmcoKTtcclxuXHJcbiAgICAgICAgdGhpcy5KYWNlSWRlbnRpdHkgPSBudWxsO1xyXG4gICAgICAgIHRoaXMuX2RhdGEuc3Vic2NyaWJlKChkYXRhKSA9PiB0aGlzLl9vbkV2ZW50KGRhdGEpKTtcclxuXHJcbiAgICAgICAgLy9EZWNpZGUgc2Ugc2lhbW8gYXR0b3JubyBhIG5hdGFsZVxyXG4gICAgICAgIHZhciB0b2RheSA9IGRheWpzKCk7XHJcbiAgICAgICAgdmFyIHRoaXNZZWFyID0gdG9kYXkueWVhcigpO1xyXG4gICAgICAgIHZhciBsb3dlckJvdW5kID0gZGF5anMoXCIxOC8xMi9cIiArIHRoaXNZZWFyLCBcIkREL01NL1lZWVlcIik7XHJcbiAgICAgICAgdmFyIHVwcGVyQm91bmQgPSBkYXlqcyhcIjA3LzAxL1wiICsgKHRoaXNZZWFyICsgMSksIFwiREQvTU0vWVlZWVwiKTtcclxuICAgICAgICB0aGlzLmNocmlzdG1hc1RpbWUgPSB0b2RheSA+IGxvd2VyQm91bmQgJiYgdG9kYXkgPCB1cHBlckJvdW5kO1xyXG5cclxuICAgICAgICAvL0RlY2lkZSBzZSBzaWFtbyBhdHRvcm5vIGFkIGhhbGxvd2VlblxyXG4gICAgICAgIHZhciBsb3dlckJvdW5kID0gZGF5anMoXCIyOC8xMC9cIiArIHRoaXNZZWFyLCBcIkREL01NL1lZWVlcIik7XHJcbiAgICAgICAgdmFyIHVwcGVyQm91bmQgPSBkYXlqcyhcIjA1LzExL1wiICsgdGhpc1llYXIsIFwiREQvTU0vWVlZWVwiKTtcclxuICAgICAgICB0aGlzLmhhbGxvd2VlblRpbWUgPSB0b2RheSA+IGxvd2VyQm91bmQgJiYgdG9kYXkgPCB1cHBlckJvdW5kO1xyXG5cclxuICAgICAgICB0aGlzLmludGVyY29tLmluYm91bmRzLnN1YnNjcmliZSgodDogSW50ZXJDb21NZXNzYWdlKSA9PiB7IHRoaXMuaGFuZGxlSW5ib3VuZE1lc3NhZ2UodCk7IH0pO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIENvbGxlZ28gbGUgaW5mb3JtYXppb25pIGRlbGwnZW1iZWRkaW5nIGNoZSBkZXZvbm8gYXBwb2dnaWFyc2kgYWxsJ2FwcCBzdGF0ZSBpbiBtb2RvIGNoZSBwb3NzYW5vIGNvbXVuaWNhcmUgY29sIHJlc3RvIGRlbGwnYXBwbGljYXppb25lXHJcbiAgICBob29rRW1iZWRkaW5nKCkge1xyXG4gICAgICAgIHRoaXMuZW1iLk1lc3NhZ2VPYnNlcnZlci5waXBlKGZpbHRlcihldiA9PiBldi5ldmVudCA9PSBcIm5hdmlnYXRpb25cIikpLnN1YnNjcmliZShldmVudCA9PiB7XHJcbiAgICAgICAgICAgIHZhciBuYXZpZ2F0aW9uT3AgPSBldmVudD8uZGF0YT8uaW50ZXJuYWxOYXZpZ2F0aW9uID8gXCJtZW51LmFkanVzdFN1Yk5hdmlnYXRpb25Ub1wiIDogXCJtZW51LmFkanVzdE5hdmlnYXRpb25Ub1wiO1xyXG4gICAgICAgICAgICB0aGlzLm5vdGlmeURhdGFDaGFuZ2VkKG5hdmlnYXRpb25PcCwgZXZlbnQ/LmRhdGE/LnRpdGxlKTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5lbWIuTWVzc2FnZU9ic2VydmVyLnBpcGUoZmlsdGVyKGV2ID0+IGV2LmV2ZW50ID09IFwid2luZG93LW1lc3NhZ2VcIikpLnN1YnNjcmliZShldmVudCA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMubm90aWZ5RGF0YUNoYW5nZWQoXCJ3aW5kb3ctbWVzc2FnZVwiLCBldmVudD8uZGF0YSk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHRoaXMuX2RhdGEucGlwZShmaWx0ZXIoZSA9PiAoZSBhcyBhbnkpLmV2ZW50ID09IFwibWVudS5pc0NvbGxhcHNlZFwiKSkuc3Vic2NyaWJlKF8gPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmVtYi5yZWZyZXNoQm91bmRhcmllc09uTWVudUNvbGxhcHNlKClcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICAvKiogVGVuYW50wqdBY2NvdW50wqdVc2VywqdBUFBOQU1FICovXHJcbiAgICBnZXRTZXNzaW9uSWRlbnRpdHkoKTogc3RyaW5nIHtcclxuICAgICAgICBpZiAodGhpcy5TZXNzaW9uSWRlbnRpdHkpXHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLlNlc3Npb25JZGVudGl0eTtcclxuXHJcbiAgICAgICAgLy8gU2Ugbm9uIGhvIHVuIGlkIG1pIG1hbmNhIGlsIGxvZ2luLCBxdWluZGkgdmlhIGRpIHF1YVxyXG4gICAgICAgIHZhciBpZCA9IHRoaXMuZ2V0SmFjZUlEZW50aXR5KCk7XHJcbiAgICAgICAgaWYgKCFpZCkge1xyXG4gICAgICAgICAgICAvL1RPRE86IENvbW1lbnRhcmUgcGVyIGxhIG1vZGFsaXTDoCBJRlJBTUVcclxuICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW1wibG9naW5cIl0pO1xyXG4gICAgICAgICAgICByZXR1cm4gXCJcIjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuU2Vzc2lvbklkZW50aXR5ID0gXCJcIiArIGlkLklkdGVuYW50ICsgXCLCp1wiICsgaWQuSWRBY2NvdW50ICsgXCLCp1wiICsgaWQuSWRVc2VyICsgXCLCp1wiICsgbXljb25maWcuQXBwRGF0YS5Nb2R1bGVJZDtcclxuICAgICAgICByZXR1cm4gdGhpcy5TZXNzaW9uSWRlbnRpdHk7XHJcbiAgICB9XHJcblxyXG4gICAgcmVnaXN0ZXJOYXZpZ2F0aW9uSWZNZWFuaW5nZnVsKHJvdXRlPzogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCkge1xyXG4gICAgICAgIGxldCB0aXRsZSA9IHJvdXRlLmRhdGFbXCJ0aXRsZVwiXTtcclxuICAgICAgICBsZXQgaW50ZXJuYWwgPSByb3V0ZS5kYXRhW1wiaW50ZXJuYWxOYXZpZ2F0aW9uXCJdXHJcblxyXG4gICAgICAgIC8vIFBlcm1ldHRlIGRpIGNoaWFtYXJlIHN0byByZWdpc3Rlck5hdmlnYXRpb24gYSBwcmVzY2luZGVyZSBlIGZhcmUgb3B0IG91dCBzZSBub24gw6ggdW5hIHJvdXRlIG5hdmlnYWJpbGVcclxuICAgICAgICBpZighdGl0bGUpIHJldHVybjtcclxuXHJcbiAgICAgICAgLypcclxuICAgICAgICAgKiAgUGFyZW50ICh7dXJsOiBbe3BhdGg6IFwie21vZHVsZX1cIn1dfSlcclxuICAgICAgICAgKiAgICAgIFBhcmVudCAoe3VybDogW3twYXRoOiBcIlwifV19KSAoUm9vdCBkZWwgbW9kdWxvIGxhenkpXHJcbiAgICAgICAgICogICAgICAgICAgLT4gTmF2aWdhemlvbmUgYXR0dWFsZSA8LVxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIGxldCBtb2R1bGUgPSByb3V0ZS5wYXJlbnQ/LnBhcmVudD8udXJsWzBdPy5wYXRoO1xyXG4gICAgICAgIGxldCBsb2MgPSBtb2R1bGUgPyB0aGlzLk1vZHVsZXNMb2NhbGl6YXRpb25zW21vZHVsZV0gOiBudWxsO1xyXG5cclxuICAgICAgICBpZiAoIW1vZHVsZSlcclxuICAgICAgICAgICAgY29uc29sZS5lcnJvcihcIkltcG9zc2liaWxlIGVzdHJhcG9sYXJlIGlsIG1vZHVsbyBkYWxsYSBuYXZpZ2F6aW9uZSAoQXR0ZXNvIE1vZHVsbyBhbCBzZWNvbmRvIGxpdmVsbG8gZGkgcGFyZW50ZWxhIHBhcnRlbmRvIGRhbCBjb21wb25lbnRlIGF0dHVhbGUpOiBcIiArIHJvdXRlLnBhdGhGcm9tUm9vdC5tYXAodiA9PiB2LnVybC5tYXAoc2VnbWVudCA9PiBzZWdtZW50LnRvU3RyaW5nKCkpLmpvaW4oJy8nKSkuam9pbignLycpKTtcclxuXHJcbiAgICAgICAgdGhpcy5ub3RpZnlEYXRhQ2hhbmdlZChpbnRlcm5hbCA/IFwibWVudS5hZGp1c3RTdWJOYXZpZ2F0aW9uVG9cIiA6IFwibWVudS5hZGp1c3ROYXZpZ2F0aW9uVG9cIiwgbG9jID8gbG9jLmxvYyh0aXRsZSkgOiB0aXRsZSk7XHJcbiAgICB9XHJcblxyXG4gICAgaGFuZGxlSW5ib3VuZE1lc3NhZ2UodDogSW50ZXJDb21NZXNzYWdlKSB7XHJcbiAgICAgICAgc3dpdGNoICh0LnR5cGUpIHtcclxuICAgICAgICAgICAgY2FzZSBJbmJvdW5kTWVzc2FnZVR5cGVzLk5hdmlnYXRpb246XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5vdGlmeURhdGFDaGFuZ2VkKHQubWVzc2FnZS5zdWIgPyBcIm1lbnUuYWRqdXN0U3ViTmF2aWdhdGlvblRvXCIgOiBcIm1lbnUuYWRqdXN0TmF2aWdhdGlvblRvXCIsIHQubWVzc2FnZS5yb3V0ZVRpdGxlKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuaW50ZXJjb20uc2VuZChBZG1NZXNzYWdlVHlwZXMuTWVzc2FnZSwgXCJOYXZpZ2F0aW9uIE1lc3NhZ2UgUmVjZWl2ZWRcIiwgTUtfQURNKTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBzZXR1cERheWpzKCkge1xyXG4gICAgICAgIGRheWpzLmV4dGVuZCgoPGFueT5jdXN0b21QYXJzZUZvcm1hdCkuZGVmYXVsdCB8fCBjdXN0b21QYXJzZUZvcm1hdCk7XHJcbiAgICAgICAgZGF5anMuZXh0ZW5kKCg8YW55Pm1pbk1heCkuZGVmYXVsdCB8fCBtaW5NYXgpO1xyXG4gICAgICAgIGRheWpzLmV4dGVuZCgoPGFueT5pc0JldHdlZW4pLmRlZmF1bHQgfHwgaXNCZXR3ZWVuKTtcclxuICAgICAgICBkYXlqcy5leHRlbmQoKDxhbnk+aXNTYW1lT3JCZWZvcmUpLmRlZmF1bHQgfHwgaXNTYW1lT3JCZWZvcmUpO1xyXG4gICAgICAgIGRheWpzLmV4dGVuZCgoPGFueT5pc1NhbWVPckFmdGVyKS5kZWZhdWx0IHx8IGlzU2FtZU9yQWZ0ZXIpO1xyXG4gICAgICAgIGRheWpzLmV4dGVuZCgoPGFueT5kdXJhdGlvbikuZGVmYXVsdCB8fCBkdXJhdGlvbik7XHJcbiAgICAgICAgZGF5anMuZXh0ZW5kKCg8YW55PnV0YykuZGVmYXVsdCB8fCB1dGMpO1xyXG5cclxuICAgICAgICAvLyBSZXF1aXJlIGUgY29sbGVnYW1lbnRvIGNvbiBsYSBsb2NhbGl6emF6aW9uZSBwZXIgZGF5anNcclxuICAgICAgICBpbXBvcnQoXCJkYXlqcy9sb2NhbGUvXCIgKyB0aGlzLmxjLlNtYWxsTG9jYWxlICsgXCIuanNcIikudGhlbihsb2NhbGUgPT4geyBkYXlqcy5sb2NhbGUobG9jYWxlKTsgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0dXBTaWduYWxSSm9iTGlzdGVuaW5nKCkge1xyXG4gICAgICAgIHRoaXMubm90aWZpY2F0aW9ucy5vYnNlcnZlKHRoaXMuTWVzc2FnZURlZi5JTl9Kb2JQcm9ncmVzc05vdGlmaWNhdGlvbikuc3Vic2NyaWJlKChldjogSm9iUHJvZ3Jlc3NEdG8pID0+IHtcclxuICAgICAgICAgICAgdmFyIGRlc2MgPSBldi5kZXNjcmlwdGlvbiArIFwiIChcIiArIGV2LnVzZXIgKyBcIilcIjtcclxuICAgICAgICAgICAgbGV0IGpvYjogQXBwbGljYXRpb25Kb2IgPSB7XHJcbiAgICAgICAgICAgICAgICBpZDogZXYuaW5zdGFuY2UsXHJcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogZGVzYyxcclxuICAgICAgICAgICAgICAgIHNtYWxsZGVzY3JpcHRpb246IGRlc2MubGVuZ3RoID4gMzUgPyBkZXNjLnN1YnN0cmluZygwLCAzMCkgKyBcIi4uLlwiIDogZGVzYyxcclxuICAgICAgICAgICAgICAgIHBlcmNlbnRhZ2U6IHRoaXMucm91bmRUb1R3byhldi5wcm9ncmVzcyksXHJcbiAgICAgICAgICAgICAgICBjb21wbGV0ZWQ6IGV2LnR5cGUgPT0gJ0NvbXBsZXRlZCcsXHJcbiAgICAgICAgICAgICAgICBmaWxlaWQ6IGV2LnJlc3VsdGZpbGUsXHJcbiAgICAgICAgICAgICAgICByZXBvcnRpZDogZXYucmVzdWx0cmVwb3J0LFxyXG4gICAgICAgICAgICAgICAgcmVwb3J0cGFyczogZXYucmVzdWx0cmVwb3J0cGFyYW1zLFxyXG4gICAgICAgICAgICAgICAgY29tcGxleHJlcG9ydGlkOiBldi5yZXN1bHRjb21wbGV4cmVwb3J0XHJcbiAgICAgICAgICAgIH07XHJcblxyXG4gICAgICAgICAgICBzd2l0Y2ggKGV2LnR5cGUpIHtcclxuICAgICAgICAgICAgICAgIGNhc2UgXCJTdGFydGVkXCI6XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuam9iV2l0aElkc0NhY2hlW2V2Lmluc3RhbmNlXSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oXCJKb2IgYWxyZWFkeSByZWdpc3RlcmVkIG9uIHRoZSAnU3RhcnRlZCcgY2FsbGJhY2tcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5qb2JXaXRoSWRzQ2FjaGVbZXYuaW5zdGFuY2VdID0gam9iO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWxsSm9icy5zcGxpY2UoMCwgMCwgam9iKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm5vdGlmeURhdGFDaGFuZ2VkKFwiYXBwLnN0YXJ0ZWRKb2JcIiwgam9iLmRlc2NyaXB0aW9uKTtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIGNhc2UgXCJQcm9ncmVzc1wiOlxyXG4gICAgICAgICAgICAgICAgICAgIC8vIFNlIG1pIGFycml2YSB1biBwcm9ncmVzcyBkaSB1biBqb2IgY2hlIG5vbiBobyBzaWduaWZpY2EgY2hlIG1pIHNvbm8gbG9nZ2F0byBvcmEgY29uIGRlaSBKb2IgaW4gY29yc29cclxuICAgICAgICAgICAgICAgICAgICAvLyBxdWluZGkgcGVyIHByaW1hIGNvc2EgZGV2byBtZXR0ZXJsbyBpbiBsaXN0YVxyXG4gICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy5qb2JXaXRoSWRzQ2FjaGVbZXYuaW5zdGFuY2VdKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuam9iV2l0aElkc0NhY2hlW2V2Lmluc3RhbmNlXSA9IGpvYjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hbGxKb2JzLnNwbGljZSgwLCAwLCBqb2IpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmpvYldpdGhJZHNDYWNoZVtldi5pbnN0YW5jZV0ucGVyY2VudGFnZSA9IHRoaXMucm91bmRUb1R3byhldi5wcm9ncmVzcyk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ub3RpZnlEYXRhQ2hhbmdlZChcImFwcC5wcm9ncmVzc0pvYlwiLCB7IGRlc2NyaXB0aW9uOiBqb2IuZGVzY3JpcHRpb24sIHByb2dyZXNzOiB0aGlzLmpvYldpdGhJZHNDYWNoZVtldi5pbnN0YW5jZV0ucGVyY2VudGFnZSB9KTtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIGNhc2UgXCJDb21wbGV0ZWRcIjpcclxuICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMuam9iV2l0aElkc0NhY2hlW2V2Lmluc3RhbmNlXSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmpvYldpdGhJZHNDYWNoZVtldi5pbnN0YW5jZV0gPSBqb2I7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYWxsSm9icy5zcGxpY2UoMCwgMCwgam9iKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIGpvYlRvVXBkYXRlID0gdGhpcy5qb2JXaXRoSWRzQ2FjaGVbZXYuaW5zdGFuY2VdO1xyXG4gICAgICAgICAgICAgICAgICAgIGpvYlRvVXBkYXRlLnBlcmNlbnRhZ2UgPSAxMDA7XHJcbiAgICAgICAgICAgICAgICAgICAgam9iVG9VcGRhdGUuZmlsZWlkID0gZXYucmVzdWx0ZmlsZTtcclxuICAgICAgICAgICAgICAgICAgICBqb2JUb1VwZGF0ZS5yZXBvcnRpZCA9IGV2LnJlc3VsdHJlcG9ydDtcclxuICAgICAgICAgICAgICAgICAgICBqb2JUb1VwZGF0ZS5yZXBvcnRwYXJzID0gZXYucmVzdWx0cmVwb3J0cGFyYW1zO1xyXG4gICAgICAgICAgICAgICAgICAgIGpvYlRvVXBkYXRlLmNvbXBsZXRlZCA9IHRydWU7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLm5vdGlmeU9uQ29tcGxldGVkSm9icylcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ub3RpZnlEYXRhQ2hhbmdlZChcImFwcC5jb21wbGV0ZWRKb2JcIiwgam9iVG9VcGRhdGUuZGVzY3JpcHRpb24pO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdGhpcy5qb2JzSW5Qcm9ncmVzcyA9IHRoaXMuYWxsSm9icy5maWx0ZXIodCA9PiAhdC5jb21wbGV0ZWQpLmxlbmd0aDtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICByb3VuZFRvVHdvKG51bSkge1xyXG4gICAgICAgIHJldHVybiBNYXRoLnJvdW5kKG51bSAqIDEwMCkgLyAxMDA7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0SmFjZUlEZW50aXR5KCk6IEphY2VJZGVudGl0eSB7XHJcbiAgICAgICAgaWYgKHRoaXMuSmFjZUlkZW50aXR5KVxyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5KYWNlSWRlbnRpdHk7XHJcbiAgICAgICAgdGhpcy5KYWNlSWRlbnRpdHkgPSB0aGlzLmJ0cy5nZXRKYWNlSWRlbnRpdHkoKTtcclxuICAgICAgICByZXR1cm4gdGhpcy5KYWNlSWRlbnRpdHk7XHJcbiAgICB9XHJcblxyXG4gICAgbm90aWZ5RGF0YUNoYW5nZWQoZXZlbnQsIHZhbHVlKSB7XHJcbiAgICAgICAgdGhpcy5fZGF0YVtldmVudF0gPSB2YWx1ZTtcclxuICAgICAgICB0aGlzLl9kYXRhLm5leHQoe1xyXG4gICAgICAgICAgICBldmVudDogZXZlbnQsXHJcbiAgICAgICAgICAgIGRhdGE6IHRoaXMuX2RhdGFbZXZlbnRdXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgc3Vic2NyaWJlKGV2ZW50OiBzdHJpbmcsIGNhbGxiYWNrOiBGdW5jdGlvbikge1xyXG4gICAgICAgIHZhciBzdWJzY3JpYmVycyA9IHRoaXMuX3N1YnNjcmlwdGlvbnMuZ2V0KGV2ZW50KSB8fCBbXTtcclxuICAgICAgICBzdWJzY3JpYmVycy5wdXNoKGNhbGxiYWNrKTtcclxuXHJcbiAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9ucy5zZXQoZXZlbnQsIHN1YnNjcmliZXJzKTtcclxuICAgIH1cclxuXHJcbiAgICBfb25FdmVudChkYXRhOiBhbnkpIHtcclxuICAgICAgICB2YXIgc3Vic2NyaWJlcnMgPSB0aGlzLl9zdWJzY3JpcHRpb25zLmdldChkYXRhW1wiZXZlbnRcIl0pIHx8IFtdO1xyXG5cclxuICAgICAgICBzdWJzY3JpYmVycy5mb3JFYWNoKChjYWxsYmFjaykgPT4ge1xyXG4gICAgICAgICAgICBjYWxsYmFjay5jYWxsKG51bGwsIGRhdGFbXCJkYXRhXCJdKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc2V0U2lkZWJhcldpZHRoKHdpZHRoOiBudW1iZXIpIHtcclxuICAgICAgICB0aGlzLnNpZGViYXJXaWR0aCA9IHdpZHRoO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzZXRIZWFkZXJIZWlnaHQoaGVpZ2h0OiBudW1iZXIpIHtcclxuICAgICAgICB0aGlzLmhlYWRlckhlaWdodCA9IGhlaWdodDtcclxuICAgIH1cclxufSJdfQ==
|
|
@@ -5,11 +5,11 @@ import * as i1 from 'ngx-cookie-service';
|
|
|
5
5
|
import { of, Subject, filter } from 'rxjs';
|
|
6
6
|
import * as i2 from '@angular/common/http';
|
|
7
7
|
import { HttpErrorResponse, HttpHeaders } from '@angular/common/http';
|
|
8
|
-
import * as
|
|
8
|
+
import * as i1$1 from '@angular/router';
|
|
9
9
|
import { Router } from '@angular/router';
|
|
10
|
-
import * as i1$
|
|
10
|
+
import * as i1$2 from '@esfaenza/localizations';
|
|
11
11
|
import { LocalizationService } from '@esfaenza/localizations';
|
|
12
|
-
import * as
|
|
12
|
+
import * as i5 from '@esfaenza/extensions';
|
|
13
13
|
import { InboundMessageTypes } from '@esfaenza/extensions';
|
|
14
14
|
import { AdmMessageTypes, MK_ADM } from '@esfaenza/admin-module';
|
|
15
15
|
import * as customParseFormat from 'dayjs/plugin/customParseFormat';
|
|
@@ -19,10 +19,10 @@ import * as isBetween from 'dayjs/plugin/isBetween';
|
|
|
19
19
|
import * as duration from 'dayjs/plugin/duration';
|
|
20
20
|
import * as minMax from 'dayjs/plugin/minMax';
|
|
21
21
|
import * as utc from 'dayjs/plugin/utc';
|
|
22
|
-
import * as
|
|
23
|
-
import * as i5 from '@esfaenza/access-control';
|
|
22
|
+
import * as i4 from '@esfaenza/signalr-notifications';
|
|
23
|
+
import * as i5$1 from '@esfaenza/access-control';
|
|
24
24
|
import { AccessControlRouteGuard } from '@esfaenza/access-control';
|
|
25
|
-
import * as i4$
|
|
25
|
+
import * as i4$1 from '@esfaenza/preferences';
|
|
26
26
|
import { CachePersistor, PreferencesPersistor } from '@esfaenza/preferences';
|
|
27
27
|
import { catchError, map } from 'rxjs/operators';
|
|
28
28
|
|
|
@@ -1165,7 +1165,8 @@ class AppState {
|
|
|
1165
1165
|
this.notifyDataChanged("modules.Retrieved", this._modules);
|
|
1166
1166
|
}
|
|
1167
1167
|
get Modules() { return this._modules; }
|
|
1168
|
-
constructor(lc, bts, notifications, MessageDef, intercom, emb) {
|
|
1168
|
+
constructor(router, lc, bts, notifications, MessageDef, intercom, emb) {
|
|
1169
|
+
this.router = router;
|
|
1169
1170
|
this.lc = lc;
|
|
1170
1171
|
this.bts = bts;
|
|
1171
1172
|
this.notifications = notifications;
|
|
@@ -1214,6 +1215,20 @@ class AppState {
|
|
|
1214
1215
|
this.emb.refreshBoundariesOnMenuCollapse();
|
|
1215
1216
|
});
|
|
1216
1217
|
}
|
|
1218
|
+
/** Tenant§Account§User§APPNAME */
|
|
1219
|
+
getSessionIdentity() {
|
|
1220
|
+
if (this.SessionIdentity)
|
|
1221
|
+
return this.SessionIdentity;
|
|
1222
|
+
// Se non ho un id mi manca il login, quindi via di qua
|
|
1223
|
+
var id = this.getJaceIDentity();
|
|
1224
|
+
if (!id) {
|
|
1225
|
+
//TODO: Commentare per la modalità IFRAME
|
|
1226
|
+
this.router.navigate(["login"]);
|
|
1227
|
+
return "";
|
|
1228
|
+
}
|
|
1229
|
+
this.SessionIdentity = "" + id.Idtenant + "§" + id.IdAccount + "§" + id.IdUser + "§" + myconfig.AppData.ModuleId;
|
|
1230
|
+
return this.SessionIdentity;
|
|
1231
|
+
}
|
|
1217
1232
|
registerNavigationIfMeaningful(route) {
|
|
1218
1233
|
var _a, _b, _c;
|
|
1219
1234
|
let title = route.data["title"];
|
|
@@ -1337,12 +1352,12 @@ class AppState {
|
|
|
1337
1352
|
this.headerHeight = height;
|
|
1338
1353
|
}
|
|
1339
1354
|
}
|
|
1340
|
-
AppState.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AppState, deps: [{ token: i1$1.LocalizationService }, { token: TokenService }, { token:
|
|
1355
|
+
AppState.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AppState, deps: [{ token: i1$1.Router }, { token: i1$2.LocalizationService }, { token: TokenService }, { token: i4.NotificationsService }, { token: i4.BaseMessageService }, { token: i5.InterComService }, { token: i5.AppEmbeddingExtensions }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1341
1356
|
AppState.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AppState, providedIn: "root" });
|
|
1342
1357
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AppState, decorators: [{
|
|
1343
1358
|
type: Injectable,
|
|
1344
1359
|
args: [{ providedIn: "root" }]
|
|
1345
|
-
}], ctorParameters: function () { return [{ type: i1$1.LocalizationService }, { type: TokenService }, { type:
|
|
1360
|
+
}], ctorParameters: function () { return [{ type: i1$1.Router }, { type: i1$2.LocalizationService }, { type: TokenService }, { type: i4.NotificationsService }, { type: i4.BaseMessageService }, { type: i5.InterComService }, { type: i5.AppEmbeddingExtensions }]; } });
|
|
1346
1361
|
|
|
1347
1362
|
// Angular
|
|
1348
1363
|
class HTTPServiceExtensions {
|
|
@@ -1418,11 +1433,11 @@ class HTTPServiceExtensions {
|
|
|
1418
1433
|
}
|
|
1419
1434
|
}
|
|
1420
1435
|
}
|
|
1421
|
-
HTTPServiceExtensions.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: HTTPServiceExtensions, deps: [{ token: i1$
|
|
1436
|
+
HTTPServiceExtensions.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: HTTPServiceExtensions, deps: [{ token: i1$2.LocalizationService }, { token: TokenService }, { token: AppState }, { token: i1$1.Router }, { token: i5$1.AccessControlService }, { token: i5.MessageService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1422
1437
|
HTTPServiceExtensions.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: HTTPServiceExtensions });
|
|
1423
1438
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: HTTPServiceExtensions, decorators: [{
|
|
1424
1439
|
type: Injectable
|
|
1425
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
1440
|
+
}], ctorParameters: function () { return [{ type: i1$2.LocalizationService }, { type: TokenService }, { type: AppState }, { type: i1$1.Router }, { type: i5$1.AccessControlService }, { type: i5.MessageService }]; } });
|
|
1426
1441
|
|
|
1427
1442
|
// Angular
|
|
1428
1443
|
class MenuFilteringService {
|
|
@@ -1480,12 +1495,12 @@ class SessionRetriever {
|
|
|
1480
1495
|
return this.SessionIdentity;
|
|
1481
1496
|
}
|
|
1482
1497
|
}
|
|
1483
|
-
SessionRetriever.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SessionRetriever, deps: [{ token: TokenService }, { token:
|
|
1498
|
+
SessionRetriever.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SessionRetriever, deps: [{ token: TokenService }, { token: i1$1.Router }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1484
1499
|
SessionRetriever.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SessionRetriever, providedIn: "root" });
|
|
1485
1500
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SessionRetriever, decorators: [{
|
|
1486
1501
|
type: Injectable,
|
|
1487
1502
|
args: [{ providedIn: "root" }]
|
|
1488
|
-
}], ctorParameters: function () { return [{ type: TokenService }, { type:
|
|
1503
|
+
}], ctorParameters: function () { return [{ type: TokenService }, { type: i1$1.Router }]; } });
|
|
1489
1504
|
|
|
1490
1505
|
// Angular
|
|
1491
1506
|
// Chiamate ai Repository
|
|
@@ -1563,11 +1578,11 @@ class ApplicationCachePersistor extends CachePersistor {
|
|
|
1563
1578
|
return `${this.getItemsUrl(sessionKey)}/${itemKey}`;
|
|
1564
1579
|
}
|
|
1565
1580
|
}
|
|
1566
|
-
ApplicationCachePersistor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ApplicationCachePersistor, deps: [{ token: i1$
|
|
1581
|
+
ApplicationCachePersistor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ApplicationCachePersistor, deps: [{ token: i1$2.LocalizationService }, { token: i2.HttpClient }, { token: TokenService }, { token: i4$1.BaseSessionRetriever }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1567
1582
|
ApplicationCachePersistor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ApplicationCachePersistor });
|
|
1568
1583
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ApplicationCachePersistor, decorators: [{
|
|
1569
1584
|
type: Injectable
|
|
1570
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
1585
|
+
}], ctorParameters: function () { return [{ type: i1$2.LocalizationService }, { type: i2.HttpClient }, { type: TokenService }, { type: i4$1.BaseSessionRetriever }]; } });
|
|
1571
1586
|
|
|
1572
1587
|
// Angular
|
|
1573
1588
|
// Chiamate ai Repository
|
|
@@ -1645,11 +1660,11 @@ class ApplicationPreferencesPersistor extends PreferencesPersistor {
|
|
|
1645
1660
|
return `${this.getItemsUrl(sessionKey)}/${itemKey}`;
|
|
1646
1661
|
}
|
|
1647
1662
|
}
|
|
1648
|
-
ApplicationPreferencesPersistor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ApplicationPreferencesPersistor, deps: [{ token: i1$
|
|
1663
|
+
ApplicationPreferencesPersistor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ApplicationPreferencesPersistor, deps: [{ token: i1$2.LocalizationService }, { token: i2.HttpClient }, { token: TokenService }, { token: i4$1.BaseSessionRetriever }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1649
1664
|
ApplicationPreferencesPersistor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ApplicationPreferencesPersistor });
|
|
1650
1665
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ApplicationPreferencesPersistor, decorators: [{
|
|
1651
1666
|
type: Injectable
|
|
1652
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
1667
|
+
}], ctorParameters: function () { return [{ type: i1$2.LocalizationService }, { type: i2.HttpClient }, { type: TokenService }, { type: i4$1.BaseSessionRetriever }]; } });
|
|
1653
1668
|
|
|
1654
1669
|
// Angular
|
|
1655
1670
|
class BaseRouterGuard extends AccessControlRouteGuard {
|
|
@@ -1659,11 +1674,11 @@ class BaseRouterGuard extends AccessControlRouteGuard {
|
|
|
1659
1674
|
acc.initializeIdentity(ts.getJaceIdentity());
|
|
1660
1675
|
}
|
|
1661
1676
|
}
|
|
1662
|
-
BaseRouterGuard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BaseRouterGuard, deps: [{ token:
|
|
1677
|
+
BaseRouterGuard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BaseRouterGuard, deps: [{ token: i5.MessageService }, { token: i5$1.AccessControlService }, { token: i1$1.Router }, { token: TokenService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1663
1678
|
BaseRouterGuard.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BaseRouterGuard });
|
|
1664
1679
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BaseRouterGuard, decorators: [{
|
|
1665
1680
|
type: Injectable
|
|
1666
|
-
}], ctorParameters: function () { return [{ type:
|
|
1681
|
+
}], ctorParameters: function () { return [{ type: i5.MessageService }, { type: i5$1.AccessControlService }, { type: i1$1.Router }, { type: TokenService }]; } });
|
|
1667
1682
|
|
|
1668
1683
|
/**
|
|
1669
1684
|
* Generated bundle index. Do not edit.
|