@hitsoft/ovolt 0.0.11 → 0.0.12
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/config/providers/ovolt-integration-log-route.provider.d.ts +9 -0
- package/esm2020/config/ovolt-config.module.mjs +3 -1
- package/esm2020/config/providers/ovolt-integration-log-route.provider.mjs +19 -0
- package/esm2020/lib/components/hit-fuel-integration-logs/components/hit-fuel-integration-log.component.mjs +29 -11
- package/esm2020/lib/components/hit-ovolt-integration-logs/components/hit-ovolt-integration-log.component.mjs +170 -0
- package/esm2020/lib/components/hit-ovolt-integration-logs/hit-ovolt-integration-log-routing.module.mjs +26 -0
- package/esm2020/lib/components/hit-ovolt-integration-logs/hit-ovolt-integration-log.module.mjs +71 -0
- package/esm2020/lib/components/hit-proxy/hit-ovolt-integration-logs/hit-ovolt-integration-log.service.mjs +40 -0
- package/esm2020/lib/components/hit-proxy/hit-ovolt-integration-logs/models.mjs +2 -0
- package/esm2020/lib/ovolt-integration-logs/ovolt-integration-log/components/ovolt-integration-log.component.mjs +113 -0
- package/esm2020/lib/ovolt-integration-logs/ovolt-integration-log/ovolt-integration-log-routing.module.mjs +26 -0
- package/esm2020/lib/ovolt-integration-logs/ovolt-integration-log/ovolt-integration-log.module.mjs +52 -0
- package/esm2020/lib/ovolt-routing.module.mjs +3 -1
- package/esm2020/lib/proxy/ovolt-integration-logs/models.mjs +2 -0
- package/esm2020/lib/proxy/ovolt-integration-logs/ovolt-integration-log.service.mjs +51 -0
- package/fesm2015/hitsoft-ovolt-config.mjs +29 -11
- package/fesm2015/hitsoft-ovolt-config.mjs.map +1 -1
- package/fesm2015/hitsoft-ovolt.mjs +362 -22
- package/fesm2015/hitsoft-ovolt.mjs.map +1 -1
- package/fesm2020/hitsoft-ovolt-config.mjs +29 -11
- package/fesm2020/hitsoft-ovolt-config.mjs.map +1 -1
- package/fesm2020/hitsoft-ovolt.mjs +361 -22
- package/fesm2020/hitsoft-ovolt.mjs.map +1 -1
- package/lib/components/hit-ovolt-integration-logs/components/hit-ovolt-integration-log.component.d.ts +39 -0
- package/lib/components/hit-ovolt-integration-logs/hit-ovolt-integration-log-routing.module.d.ts +7 -0
- package/lib/components/hit-ovolt-integration-logs/hit-ovolt-integration-log.module.d.ts +16 -0
- package/lib/components/hit-proxy/hit-ovolt-integration-logs/hit-ovolt-integration-log.service.d.ts +16 -0
- package/lib/components/hit-proxy/hit-ovolt-integration-logs/models.d.ts +3 -0
- package/lib/ovolt-integration-logs/ovolt-integration-log/components/ovolt-integration-log.component.d.ts +35 -0
- package/lib/ovolt-integration-logs/ovolt-integration-log/ovolt-integration-log-routing.module.d.ts +7 -0
- package/lib/ovolt-integration-logs/ovolt-integration-log/ovolt-integration-log.module.d.ts +15 -0
- package/lib/proxy/ovolt-integration-logs/models.d.ts +47 -0
- package/lib/proxy/ovolt-integration-logs/ovolt-integration-log.service.d.ts +19 -0
- package/package.json +1 -1
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { RoutesService } from '@abp/ng.core';
|
|
2
|
+
export declare const OVOLT_INTEGRATION_LOGS_OVOLT_INTEGRATION_LOG_ROUTE_PROVIDER: {
|
|
3
|
+
provide: import("@angular/core").InjectionToken<readonly (() => void | import("rxjs").Observable<unknown> | Promise<unknown>)[]>;
|
|
4
|
+
useFactory: typeof configureRoutes;
|
|
5
|
+
deps: (typeof RoutesService)[];
|
|
6
|
+
multi: boolean;
|
|
7
|
+
}[];
|
|
8
|
+
declare function configureRoutes(routes: RoutesService): () => void;
|
|
9
|
+
export {};
|
|
@@ -4,6 +4,7 @@ import { PROCESS_LOGS_PROCESS_LOG_ROUTE_PROVIDER } from './providers/process-log
|
|
|
4
4
|
import { SYSTEM_PARAMETERS_SYSTEM_PARAMETER_ROUTE_PROVIDER } from './providers/system-parameter-route.provider';
|
|
5
5
|
import { FUEL_INTEGRATION_LOGS_FUEL_INTEGRATION_LOG_ROUTE_PROVIDER } from './providers/fuel-integration-log-route.provider';
|
|
6
6
|
import { LATEST_FAILED_PROCESS_LOGS_LATEST_FAILED_PROCESS_LOG_ROUTE_PROVIDER } from './providers/hit-error-process-log-route.provider';
|
|
7
|
+
import { OVOLT_INTEGRATION_LOGS_OVOLT_INTEGRATION_LOG_ROUTE_PROVIDER } from './providers/ovolt-integration-log-route.provider';
|
|
7
8
|
import * as i0 from "@angular/core";
|
|
8
9
|
export class OvoltConfigModule {
|
|
9
10
|
static forRoot() {
|
|
@@ -15,6 +16,7 @@ export class OvoltConfigModule {
|
|
|
15
16
|
PROCESS_LOGS_PROCESS_LOG_ROUTE_PROVIDER,
|
|
16
17
|
LATEST_FAILED_PROCESS_LOGS_LATEST_FAILED_PROCESS_LOG_ROUTE_PROVIDER,
|
|
17
18
|
FUEL_INTEGRATION_LOGS_FUEL_INTEGRATION_LOG_ROUTE_PROVIDER,
|
|
19
|
+
OVOLT_INTEGRATION_LOGS_OVOLT_INTEGRATION_LOG_ROUTE_PROVIDER,
|
|
18
20
|
],
|
|
19
21
|
};
|
|
20
22
|
}
|
|
@@ -25,4 +27,4 @@ OvoltConfigModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", versi
|
|
|
25
27
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: OvoltConfigModule, decorators: [{
|
|
26
28
|
type: NgModule
|
|
27
29
|
}] });
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZvbHQtY29uZmlnLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL292b2x0L2NvbmZpZy9zcmMvb3ZvbHQtY29uZmlnLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXVCLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsdUNBQXVDLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNqRyxPQUFPLEVBQUUsaURBQWlELEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUNoSCxPQUFPLEVBQUUseURBQXlELEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUM1SCxPQUFPLEVBQUUsbUVBQW1FLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUN2SSxPQUFPLEVBQUUsMkRBQTJELEVBQUUsTUFBTSxrREFBa0QsQ0FBQzs7QUFHL0gsTUFBTSxPQUFPLGlCQUFpQjtJQUM1QixNQUFNLENBQUMsT0FBTztRQUNaLE9BQU87WUFDTCxRQUFRLEVBQUUsaUJBQWlCO1lBQzNCLFNBQVMsRUFBRTtnQkFDVCxxQkFBcUI7Z0JBQ3JCLGlEQUFpRDtnQkFDakQsdUNBQXVDO2dCQUN2QyxtRUFBbUU7Z0JBQ25FLHlEQUF5RDtnQkFDekQsMkRBQTJEO2FBQzVEO1NBQ0YsQ0FBQztJQUNKLENBQUM7OzhHQWJVLGlCQUFpQjsrR0FBakIsaUJBQWlCOytHQUFqQixpQkFBaUI7MkZBQWpCLGlCQUFpQjtrQkFEN0IsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE9WT0xUX1JPVVRFX1BST1ZJREVSUyB9IGZyb20gJy4vcHJvdmlkZXJzL3JvdXRlLnByb3ZpZGVyJztcclxuaW1wb3J0IHsgUFJPQ0VTU19MT0dTX1BST0NFU1NfTE9HX1JPVVRFX1BST1ZJREVSIH0gZnJvbSAnLi9wcm92aWRlcnMvcHJvY2Vzcy1sb2ctcm91dGUucHJvdmlkZXInO1xyXG5pbXBvcnQgeyBTWVNURU1fUEFSQU1FVEVSU19TWVNURU1fUEFSQU1FVEVSX1JPVVRFX1BST1ZJREVSIH0gZnJvbSAnLi9wcm92aWRlcnMvc3lzdGVtLXBhcmFtZXRlci1yb3V0ZS5wcm92aWRlcic7XHJcbmltcG9ydCB7IEZVRUxfSU5URUdSQVRJT05fTE9HU19GVUVMX0lOVEVHUkFUSU9OX0xPR19ST1VURV9QUk9WSURFUiB9IGZyb20gJy4vcHJvdmlkZXJzL2Z1ZWwtaW50ZWdyYXRpb24tbG9nLXJvdXRlLnByb3ZpZGVyJztcclxuaW1wb3J0IHsgTEFURVNUX0ZBSUxFRF9QUk9DRVNTX0xPR1NfTEFURVNUX0ZBSUxFRF9QUk9DRVNTX0xPR19ST1VURV9QUk9WSURFUiB9IGZyb20gJy4vcHJvdmlkZXJzL2hpdC1lcnJvci1wcm9jZXNzLWxvZy1yb3V0ZS5wcm92aWRlcic7XHJcbmltcG9ydCB7IE9WT0xUX0lOVEVHUkFUSU9OX0xPR1NfT1ZPTFRfSU5URUdSQVRJT05fTE9HX1JPVVRFX1BST1ZJREVSIH0gZnJvbSAnLi9wcm92aWRlcnMvb3ZvbHQtaW50ZWdyYXRpb24tbG9nLXJvdXRlLnByb3ZpZGVyJztcclxuXHJcbkBOZ01vZHVsZSgpXHJcbmV4cG9ydCBjbGFzcyBPdm9sdENvbmZpZ01vZHVsZSB7XHJcbiAgc3RhdGljIGZvclJvb3QoKTogTW9kdWxlV2l0aFByb3ZpZGVyczxPdm9sdENvbmZpZ01vZHVsZT4ge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgbmdNb2R1bGU6IE92b2x0Q29uZmlnTW9kdWxlLFxyXG4gICAgICBwcm92aWRlcnM6IFtcclxuICAgICAgICBPVk9MVF9ST1VURV9QUk9WSURFUlMsXHJcbiAgICAgICAgU1lTVEVNX1BBUkFNRVRFUlNfU1lTVEVNX1BBUkFNRVRFUl9ST1VURV9QUk9WSURFUixcclxuICAgICAgICBQUk9DRVNTX0xPR1NfUFJPQ0VTU19MT0dfUk9VVEVfUFJPVklERVIsXHJcbiAgICAgICAgTEFURVNUX0ZBSUxFRF9QUk9DRVNTX0xPR1NfTEFURVNUX0ZBSUxFRF9QUk9DRVNTX0xPR19ST1VURV9QUk9WSURFUixcclxuICAgICAgICBGVUVMX0lOVEVHUkFUSU9OX0xPR1NfRlVFTF9JTlRFR1JBVElPTl9MT0dfUk9VVEVfUFJPVklERVIsXHJcbiAgICAgICAgT1ZPTFRfSU5URUdSQVRJT05fTE9HU19PVk9MVF9JTlRFR1JBVElPTl9MT0dfUk9VVEVfUFJPVklERVIsXHJcbiAgICAgIF0sXHJcbiAgICB9O1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { RoutesService } from '@abp/ng.core';
|
|
2
|
+
import { APP_INITIALIZER } from '@angular/core';
|
|
3
|
+
export const OVOLT_INTEGRATION_LOGS_OVOLT_INTEGRATION_LOG_ROUTE_PROVIDER = [
|
|
4
|
+
{ provide: APP_INITIALIZER, useFactory: configureRoutes, deps: [RoutesService], multi: true },
|
|
5
|
+
];
|
|
6
|
+
function configureRoutes(routes) {
|
|
7
|
+
return () => {
|
|
8
|
+
routes.add([
|
|
9
|
+
{
|
|
10
|
+
path: '/ovolt/ovolt-integration-logs',
|
|
11
|
+
parentName: "Ovolt::Menu:Ovolt" /* eOvoltRouteNames.Ovolt */,
|
|
12
|
+
name: 'Ovolt::Menu:OvoltIntegrationLogs',
|
|
13
|
+
layout: "application" /* eLayoutType.application */,
|
|
14
|
+
requiredPolicy: 'Ovolt.OvoltIntegrationLogs',
|
|
15
|
+
},
|
|
16
|
+
]);
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZvbHQtaW50ZWdyYXRpb24tbG9nLXJvdXRlLnByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb3ZvbHQvY29uZmlnL3NyYy9wcm92aWRlcnMvb3ZvbHQtaW50ZWdyYXRpb24tbG9nLXJvdXRlLnByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZSxhQUFhLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDMUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUdoRCxNQUFNLENBQUMsTUFBTSwyREFBMkQsR0FBRztJQUN6RSxFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsVUFBVSxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxhQUFhLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO0NBQzlGLENBQUM7QUFFRixTQUFTLGVBQWUsQ0FBQyxNQUFxQjtJQUM1QyxPQUFPLEdBQUcsRUFBRTtRQUNWLE1BQU0sQ0FBQyxHQUFHLENBQUM7WUFDVDtnQkFDRSxJQUFJLEVBQUUsK0JBQStCO2dCQUNyQyxVQUFVLGtEQUF3QjtnQkFDbEMsSUFBSSxFQUFFLGtDQUFrQztnQkFDeEMsTUFBTSw2Q0FBeUI7Z0JBQy9CLGNBQWMsRUFBRSw0QkFBNEI7YUFDN0M7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZUxheW91dFR5cGUsIFJvdXRlc1NlcnZpY2UgfSBmcm9tICdAYWJwL25nLmNvcmUnO1xyXG5pbXBvcnQgeyBBUFBfSU5JVElBTElaRVIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgZU92b2x0Um91dGVOYW1lcyB9IGZyb20gJy4uL2VudW1zL3JvdXRlLW5hbWVzJztcclxuXHJcbmV4cG9ydCBjb25zdCBPVk9MVF9JTlRFR1JBVElPTl9MT0dTX09WT0xUX0lOVEVHUkFUSU9OX0xPR19ST1VURV9QUk9WSURFUiA9IFtcclxuICB7IHByb3ZpZGU6IEFQUF9JTklUSUFMSVpFUiwgdXNlRmFjdG9yeTogY29uZmlndXJlUm91dGVzLCBkZXBzOiBbUm91dGVzU2VydmljZV0sIG11bHRpOiB0cnVlIH0sXHJcbl07XHJcblxyXG5mdW5jdGlvbiBjb25maWd1cmVSb3V0ZXMocm91dGVzOiBSb3V0ZXNTZXJ2aWNlKSB7XHJcbiAgcmV0dXJuICgpID0+IHtcclxuICAgIHJvdXRlcy5hZGQoW1xyXG4gICAgICB7XHJcbiAgICAgICAgcGF0aDogJy9vdm9sdC9vdm9sdC1pbnRlZ3JhdGlvbi1sb2dzJyxcclxuICAgICAgICBwYXJlbnROYW1lOiBlT3ZvbHRSb3V0ZU5hbWVzLk92b2x0LFxyXG4gICAgICAgIG5hbWU6ICdPdm9sdDo6TWVudTpPdm9sdEludGVncmF0aW9uTG9ncycsXHJcbiAgICAgICAgbGF5b3V0OiBlTGF5b3V0VHlwZS5hcHBsaWNhdGlvbixcclxuICAgICAgICByZXF1aXJlZFBvbGljeTogJ092b2x0Lk92b2x0SW50ZWdyYXRpb25Mb2dzJyxcclxuICAgICAgfSxcclxuICAgIF0pO1xyXG4gIH07XHJcbn1cclxuIl19
|
|
@@ -76,19 +76,27 @@ export class HitFuelIntegrationLogComponent {
|
|
|
76
76
|
this.FuelIntegrationLogDataSource = this.hitFuelIntegrationLogService.LoadFuelIntegrationLogs;
|
|
77
77
|
}
|
|
78
78
|
showRequestBody(id) {
|
|
79
|
-
// Yükleme durumunu başlat (gerekirse)
|
|
80
79
|
this.isLoadingRequestBodyModel = true;
|
|
81
|
-
// Önce popup'ı kapat (önceki tıklamalarda açık kalmış olabilir)
|
|
82
80
|
this.isRequestBodyModalOpen = false;
|
|
83
81
|
this.hitFuelIntegrationLogService.getRequesteBody({ logId: id })
|
|
84
82
|
.subscribe({
|
|
85
83
|
next: (data) => {
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
84
|
+
try {
|
|
85
|
+
this.selectedRequestBodyModel =
|
|
86
|
+
typeof data === 'string' ? JSON.parse(data) : data;
|
|
87
|
+
this.isRequestBodyModalOpen = true;
|
|
88
|
+
}
|
|
89
|
+
catch (parseError) {
|
|
90
|
+
this.toaster.info('Gelen veri gösterilecek formatta değil.');
|
|
91
|
+
}
|
|
92
|
+
},
|
|
93
|
+
error: (err) => {
|
|
94
|
+
this.toaster.info('Veri alınırken hata oluştu.');
|
|
95
|
+
},
|
|
96
|
+
complete: () => {
|
|
97
|
+
this.isLoadingRequestBodyModel = false;
|
|
89
98
|
}
|
|
90
99
|
});
|
|
91
|
-
this.isLoadingRequestBodyModel = false;
|
|
92
100
|
}
|
|
93
101
|
showResponseBody(id) {
|
|
94
102
|
// Yükleme durumunu başlat (gerekirse)
|
|
@@ -98,12 +106,22 @@ export class HitFuelIntegrationLogComponent {
|
|
|
98
106
|
this.hitFuelIntegrationLogService.getResponseBody({ logId: id })
|
|
99
107
|
.subscribe({
|
|
100
108
|
next: (data) => {
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
109
|
+
try {
|
|
110
|
+
this.selectedResponseBodyModel = typeof data === 'string' ? JSON.parse(data) : data;
|
|
111
|
+
// Veri geldikten sonra popup'ı aç
|
|
112
|
+
this.isResponseBodyModalOpen = true;
|
|
113
|
+
}
|
|
114
|
+
catch (parseError) {
|
|
115
|
+
this.toaster.info('Gelen veri gösterilecek formatta değil.');
|
|
116
|
+
}
|
|
117
|
+
},
|
|
118
|
+
error: (err) => {
|
|
119
|
+
this.toaster.info('Veri alınırken hata oluştu.');
|
|
120
|
+
},
|
|
121
|
+
complete: () => {
|
|
122
|
+
this.isLoadingRequestBodyModel = false;
|
|
104
123
|
}
|
|
105
124
|
});
|
|
106
|
-
this.isLoadingResponseBodyModel = false;
|
|
107
125
|
}
|
|
108
126
|
editFuelIntegrationLog(record) {
|
|
109
127
|
console.log('Edit:', record);
|
|
@@ -154,4 +172,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
154
172
|
type: ViewChild,
|
|
155
173
|
args: ['dxGrid', { static: false }]
|
|
156
174
|
}] } });
|
|
157
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGl0LWZ1ZWwtaW50ZWdyYXRpb24tbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL292b2x0L3NyYy9saWIvY29tcG9uZW50cy9oaXQtZnVlbC1pbnRlZ3JhdGlvbi1sb2dzL2NvbXBvbmVudHMvaGl0LWZ1ZWwtaW50ZWdyYXRpb24tbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL292b2x0L3NyYy9saWIvY29tcG9uZW50cy9oaXQtZnVlbC1pbnRlZ3JhdGlvbi1sb2dzL2NvbXBvbmVudHMvaGl0LWZ1ZWwtaW50ZWdyYXRpb24tbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQVUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXRGLE9BQU8sRUFBRSxXQUFXLEVBQXdFLE1BQU0sY0FBYyxDQUFDO0FBQ2pILE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUNBQWlDLENBQUM7Ozs7Ozs7Ozs7O0FBYTlELE1BQU0sT0FBTyw4QkFBOEI7SUFxQnZDLFlBQ1ksT0FBa0MsRUFDbkMsS0FBcUIsRUFDWiw0QkFBMEQsRUFDbEUsT0FBdUIsRUFDdkIsWUFBaUMsRUFDakMsaUJBQW9DLEVBQ2hDLFlBQWlDO1FBTnJDLFlBQU8sR0FBUCxPQUFPLENBQTJCO1FBQ25DLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQ1osaUNBQTRCLEdBQTVCLDRCQUE0QixDQUE4QjtRQUNsRSxZQUFPLEdBQVAsT0FBTyxDQUFnQjtRQUN2QixpQkFBWSxHQUFaLFlBQVksQ0FBcUI7UUFDakMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNoQyxpQkFBWSxHQUFaLFlBQVksQ0FBcUI7UUF4QmpELGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBRXBCLDJCQUFzQixHQUFHLEtBQUssQ0FBQztRQUUvQiw4QkFBeUIsR0FBRyxLQUFLLENBQUM7UUFLbEMsNEJBQXVCLEdBQUcsS0FBSyxDQUFDO1FBRWhDLCtCQUEwQixHQUFHLEtBQUssQ0FBQztJQWMvQixDQUFDO0lBRUwsUUFBUTtRQUNKLElBQUksQ0FBQyxlQUFlLEdBQUcsRUFBRSxDQUFDO1FBRTFCLElBQUksSUFBSSxDQUFDLGlCQUFpQixDQUFDLGdCQUFnQixDQUFDLDJDQUEyQyxDQUFDLEVBQUU7WUFDdEYsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUM7Z0JBQ3RCLEdBQUcsRUFBRSxhQUFhO2dCQUNsQixJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyx3QkFBd0IsQ0FBQztnQkFDdEMsSUFBSSxFQUFFLFNBQVM7YUFDbEIsQ0FBQyxDQUFDO1NBQ047UUFFRCxJQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxnQkFBZ0IsQ0FBQyw0Q0FBNEMsQ0FBQyxFQUFFO1lBQ3ZGLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDO2dCQUN0QixHQUFHLEVBQUUsY0FBYztnQkFDbkIsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMseUJBQXlCLENBQUM7Z0JBQ3ZDLElBQUksRUFBRSxRQUFRO2FBQ2pCLENBQUMsQ0FBQztTQUNOO1FBRUQsSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsZ0JBQWdCLENBQUMsa0NBQWtDLENBQUMsRUFBRTtZQUM3RSxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQztnQkFDdEIsR0FBRyxFQUFFLFFBQVE7Z0JBQ2IsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDO2dCQUM3QixJQUFJLEVBQUUsUUFBUTthQUNqQixDQUFDLENBQUM7U0FDTjtRQUVELElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUV0QixJQUFJLENBQUMsNkJBQTZCLEdBQUc7WUFDakMsSUFBSSxFQUFFLE9BQU87WUFDYixXQUFXLEVBQUUsVUFBVTtZQUN2QixJQUFJLEVBQUUsUUFBUTtZQUNkLE9BQU8sRUFBRSxHQUFHLEVBQUU7Z0JBQ1YsSUFBSSxDQUFDLHNCQUFzQixHQUFHLEtBQUssQ0FBQztZQUN4QyxDQUFDO1NBQ0osQ0FBQztRQUVGLElBQUksQ0FBQyw4QkFBOEIsR0FBRztZQUNsQyxJQUFJLEVBQUUsT0FBTztZQUNiLFdBQVcsRUFBRSxVQUFVO1lBQ3ZCLElBQUksRUFBRSxRQUFRO1lBQ2QsT0FBTyxFQUFFLEdBQUcsRUFBRTtnQkFDVixJQUFJLENBQUMsdUJBQXVCLEdBQUcsS0FBSyxDQUFDO1lBQ3pDLENBQUM7U0FDSixDQUFDO0lBQ04sQ0FBQztJQUVELENBQUMsQ0FBQyxHQUFXO1FBQ1QsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQsY0FBYztRQUNWLHdDQUF3QztRQUN4QyxJQUFJLENBQUMsNEJBQTRCLEdBQUcsSUFBSSxDQUFDLDRCQUE0QixDQUFDLHVCQUF1QixDQUFDO0lBQ2xHLENBQUM7SUFFRCxlQUFlLENBQUMsRUFBTztRQUNuQixzQ0FBc0M7UUFDdEMsSUFBSSxDQUFDLHlCQUF5QixHQUFHLElBQUksQ0FBQztRQUV0QyxnRUFBZ0U7UUFDaEUsSUFBSSxDQUFDLHNCQUFzQixHQUFHLEtBQUssQ0FBQztRQUVwQyxJQUFJLENBQUMsNEJBQTRCLENBQUMsZUFBZSxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFDO2FBQzNELFNBQVMsQ0FBQztZQUNQLElBQUksRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFO2dCQUNYLElBQUksQ0FBQyx3QkFBd0IsR0FBRyxPQUFPLElBQUksS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztnQkFFbkYsa0NBQWtDO2dCQUNsQyxJQUFJLENBQUMsc0JBQXNCLEdBQUcsSUFBSSxDQUFDO1lBQ3ZDLENBQUM7U0FDSixDQUFDLENBQUM7UUFDUCxJQUFJLENBQUMseUJBQXlCLEdBQUcsS0FBSyxDQUFDO0lBQzNDLENBQUM7SUFHRCxnQkFBZ0IsQ0FBQyxFQUFPO1FBQ3BCLHNDQUFzQztRQUN0QyxJQUFJLENBQUMsMEJBQTBCLEdBQUcsSUFBSSxDQUFDO1FBRXZDLGdFQUFnRTtRQUNoRSxJQUFJLENBQUMsdUJBQXVCLEdBQUcsS0FBSyxDQUFDO1FBRXJDLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxlQUFlLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQUM7YUFDM0QsU0FBUyxDQUFDO1lBQ1AsSUFBSSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUU7Z0JBQ1gsSUFBSSxDQUFDLHlCQUF5QixHQUFHLE9BQU8sSUFBSSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO2dCQUVwRixrQ0FBa0M7Z0JBQ2xDLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxJQUFJLENBQUM7WUFDeEMsQ0FBQztTQUNKLENBQUMsQ0FBQztRQUNQLElBQUksQ0FBQywwQkFBMEIsR0FBRyxLQUFLLENBQUM7SUFDNUMsQ0FBQztJQUVELHNCQUFzQixDQUFDLE1BQTZCO1FBQ2hELE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQzdCLG1EQUFtRDtJQUN2RCxDQUFDO0lBRUQsU0FBUztRQUNMLE9BQU8sQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDekIsSUFBSSxDQUFDLDRCQUE0QixDQUFDLFNBQVMsRUFBRTthQUN4QyxTQUFTLENBQUM7WUFDUCxJQUFJLEVBQUUsQ0FBQyxNQUFNLEVBQUUsRUFBRTtnQkFDYixJQUFJLE1BQU0sRUFBRTtvQkFDUiwwQkFBMEI7b0JBQzFCLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDO2lCQUNsQztxQkFBTTtvQkFFSCxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO2lCQUN2RDtZQUNMLENBQUM7U0FDSixDQUFDLENBQUM7SUFDWCxDQUFDO0lBRUQsd0JBQXdCLENBQUMsTUFBYztRQUNuQyxJQUFJLE9BQU8sQ0FBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLGtDQUFrQyxDQUFDLENBQUMsRUFBRTtZQUN0RCxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO2dCQUN2QywwQkFBMEI7Z0JBQzFCLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ25DLENBQUMsQ0FBQyxDQUFDO1NBQ047SUFDTCxDQUFDO0lBRUQsYUFBYSxDQUFDLENBQU0sRUFBRSxFQUFPO1FBQ3pCLE1BQU0sTUFBTSxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDO1FBRS9CLElBQUksTUFBTSxLQUFLLGFBQWEsRUFBRTtZQUMxQixJQUFJLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQzVCO1FBQ0QsSUFBSSxNQUFNLEtBQUssY0FBYyxFQUFFO1lBQzNCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUMsQ0FBQztTQUM3QjtRQUNELElBQUksTUFBTSxLQUFLLFFBQVEsRUFBRTtZQUNyQixJQUFJLENBQUMsd0JBQXdCLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDckM7SUFDTCxDQUFDOzsySEF6S1EsOEJBQThCOytHQUE5Qiw4QkFBOEIsdURBSjVCLENBQUMsV0FBVyxFQUFFLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLENBQUMsNEhDYmhGLGluTUF1R1c7MkZEdEZFLDhCQUE4QjtrQkFSMUMsU0FBUzsrQkFDSSw4QkFBOEIsbUJBQ3ZCLHVCQUF1QixDQUFDLE9BQU8sYUFFckMsQ0FBQyxXQUFXLEVBQUUsRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsQ0FBQzt5VEFLcEMsTUFBTTtzQkFBN0MsU0FBUzt1QkFBQyxRQUFRLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRHhEYXRhR3JpZENvbXBvbmVudCwgRHhEcm9wRG93bkJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJ2RldmV4dHJlbWUtYW5ndWxhcic7XHJcbmltcG9ydCB7IExpc3RTZXJ2aWNlLCBMb2NhbGl6YXRpb25TZXJ2aWNlLCBQZXJtaXNzaW9uU2VydmljZSwgVHJhY2tCeVNlcnZpY2UsIGRvd25sb2FkQmxvYiB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XHJcbmltcG9ydCB7IE5nYkRhdGVBZGFwdGVyIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xyXG5pbXBvcnQgeyBEYXRlQWRhcHRlciB9IGZyb20gJ0BhYnAvbmcudGhlbWUuc2hhcmVkL2V4dGVuc2lvbnMnO1xyXG5pbXBvcnQgeyBIaXRGdWVsSW50ZWdyYXRpb25Mb2dTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vaGl0LXByb3h5L2hpdC1mdWVsLWludGVncmF0aW9uLWxvZ3MvaGl0LWZ1ZWwtaW50ZWdyYXRpb24tbG9nLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDb25maXJtYXRpb25TZXJ2aWNlLCBUb2FzdGVyU2VydmljZSB9IGZyb20gJ0BhYnAvbmcudGhlbWUuc2hhcmVkJztcclxuaW1wb3J0IHsgRnVlbEludGVncmF0aW9uTG9nU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3Byb3h5L2Z1ZWwtaW50ZWdyYXRpb24tbG9ncy9mdWVsLWludGVncmF0aW9uLWxvZy5zZXJ2aWNlJztcclxuaW1wb3J0IHR5cGUgeyBGdWVsSW50ZWdyYXRpb25Mb2dEdG8gfSBmcm9tICcuLi8uLi8uLi9wcm94eS9mdWVsLWludGVncmF0aW9uLWxvZ3MvbW9kZWxzJztcclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2xpYi1oaXQtZnVlbC1pbnRlZ3JhdGlvbi1sb2cnLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5EZWZhdWx0LFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2hpdC1mdWVsLWludGVncmF0aW9uLWxvZy5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBwcm92aWRlcnM6IFtMaXN0U2VydmljZSwgeyBwcm92aWRlOiBOZ2JEYXRlQWRhcHRlciwgdXNlQ2xhc3M6IERhdGVBZGFwdGVyIH1dLFxyXG4gICAgc3R5bGVzOiBbXSxcclxufSlcclxuXHJcbmV4cG9ydCBjbGFzcyBIaXRGdWVsSW50ZWdyYXRpb25Mb2dDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gICAgQFZpZXdDaGlsZCgnZHhHcmlkJywgeyBzdGF0aWM6IGZhbHNlIH0pIGR4R3JpZCE6IER4RGF0YUdyaWRDb21wb25lbnQ7XHJcblxyXG4gICAgRnVlbEludGVncmF0aW9uTG9nRGF0YVNvdXJjZTogYW55O1xyXG4gICAgaXNkZWxldGVBbGwgPSBmYWxzZTtcclxuXHJcbiAgICBpc1JlcXVlc3RCb2R5TW9kYWxPcGVuID0gZmFsc2U7XHJcbiAgICBzZWxlY3RlZFJlcXVlc3RCb2R5TW9kZWw6IGFueTtcclxuICAgIGlzTG9hZGluZ1JlcXVlc3RCb2R5TW9kZWwgPSBmYWxzZTtcclxuXHJcbiAgICBjbG9zZVJlcXVlc3RCb2R5QnV0dG9uT3B0aW9uczogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XHJcblxyXG5cclxuICAgIGlzUmVzcG9uc2VCb2R5TW9kYWxPcGVuID0gZmFsc2U7XHJcbiAgICBzZWxlY3RlZFJlc3BvbnNlQm9keU1vZGVsOiBhbnk7XHJcbiAgICBpc0xvYWRpbmdSZXNwb25zZUJvZHlNb2RlbCA9IGZhbHNlO1xyXG4gICAgY2xvc2VSZXNwb25zZUJvZHlCdXR0b25PcHRpb25zOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcclxuXHJcbiAgICBhY3Rpb25NZW51SXRlbXM7XHJcblxyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByaXZhdGUgc2VydmljZTogRnVlbEludGVncmF0aW9uTG9nU2VydmljZSxcclxuICAgICAgICBwdWJsaWMgdHJhY2s6IFRyYWNrQnlTZXJ2aWNlLFxyXG4gICAgICAgIHB1YmxpYyByZWFkb25seSBoaXRGdWVsSW50ZWdyYXRpb25Mb2dTZXJ2aWNlOiBIaXRGdWVsSW50ZWdyYXRpb25Mb2dTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgdG9hc3RlcjogVG9hc3RlclNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBsb2NhbGl6YXRpb246IExvY2FsaXphdGlvblNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBwZXJtaXNzaW9uU2VydmljZTogUGVybWlzc2lvblNlcnZpY2UsXHJcbiAgICAgICAgICAgIHByaXZhdGUgY29uZmlybWF0aW9uOiBDb25maXJtYXRpb25TZXJ2aWNlLFxyXG4gICAgKSB7IH1cclxuXHJcbiAgICBuZ09uSW5pdCgpIHtcclxuICAgICAgICB0aGlzLmFjdGlvbk1lbnVJdGVtcyA9IFtdO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5wZXJtaXNzaW9uU2VydmljZS5nZXRHcmFudGVkUG9saWN5KCdPdm9sdC5GdWVsSW50ZWdyYXRpb25Mb2dzLlNob3dSZXF1ZXN0Qm9keScpKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYWN0aW9uTWVudUl0ZW1zLnB1c2goe1xyXG4gICAgICAgICAgICAgICAga2V5OiAncmVxdWVzdEJvZHknLFxyXG4gICAgICAgICAgICAgICAgdGV4dDogdGhpcy5sKCdPdm9sdDo6U2hvd1JlcXVlc3RCb2R5JyksXHJcbiAgICAgICAgICAgICAgICB0eXBlOiAnc3VjY2VzcydcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy5wZXJtaXNzaW9uU2VydmljZS5nZXRHcmFudGVkUG9saWN5KCdPdm9sdC5GdWVsSW50ZWdyYXRpb25Mb2dzLlNob3dSZXNwb25zZUJvZHknKSkge1xyXG4gICAgICAgICAgICB0aGlzLmFjdGlvbk1lbnVJdGVtcy5wdXNoKHtcclxuICAgICAgICAgICAgICAgIGtleTogJ3Jlc3BvbnNlQm9keScsXHJcbiAgICAgICAgICAgICAgICB0ZXh0OiB0aGlzLmwoJ092b2x0OjpTaG93UmVzcG9uc2VCb2R5JyksXHJcbiAgICAgICAgICAgICAgICB0eXBlOiAnbm9ybWFsJ1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0aGlzLnBlcm1pc3Npb25TZXJ2aWNlLmdldEdyYW50ZWRQb2xpY3koJ092b2x0LkZ1ZWxJbnRlZ3JhdGlvbkxvZ3MuRGVsZXRlJykpIHtcclxuICAgICAgICAgICAgdGhpcy5hY3Rpb25NZW51SXRlbXMucHVzaCh7XHJcbiAgICAgICAgICAgICAgICBrZXk6ICdkZWxldGUnLFxyXG4gICAgICAgICAgICAgICAgdGV4dDogdGhpcy5sKCdPdm9sdDo6RGVsZXRlJyksXHJcbiAgICAgICAgICAgICAgICB0eXBlOiAnZGFuZ2VyJ1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuaW5pdERhdGFTb3VyY2UoKTtcclxuXHJcbiAgICAgICAgdGhpcy5jbG9zZVJlcXVlc3RCb2R5QnV0dG9uT3B0aW9ucyA9IHtcclxuICAgICAgICAgICAgdGV4dDogJ0Nsb3NlJyxcclxuICAgICAgICAgICAgc3R5bGluZ01vZGU6ICdvdXRsaW5lZCcsXHJcbiAgICAgICAgICAgIHR5cGU6ICdub3JtYWwnLFxyXG4gICAgICAgICAgICBvbkNsaWNrOiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmlzUmVxdWVzdEJvZHlNb2RhbE9wZW4gPSBmYWxzZTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICB0aGlzLmNsb3NlUmVzcG9uc2VCb2R5QnV0dG9uT3B0aW9ucyA9IHtcclxuICAgICAgICAgICAgdGV4dDogJ0Nsb3NlJyxcclxuICAgICAgICAgICAgc3R5bGluZ01vZGU6ICdvdXRsaW5lZCcsXHJcbiAgICAgICAgICAgIHR5cGU6ICdub3JtYWwnLFxyXG4gICAgICAgICAgICBvbkNsaWNrOiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmlzUmVzcG9uc2VCb2R5TW9kYWxPcGVuID0gZmFsc2U7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICBsKGtleTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5sb2NhbGl6YXRpb24uaW5zdGFudChrZXkpO1xyXG4gICAgfVxyXG5cclxuICAgIGluaXREYXRhU291cmNlKCkge1xyXG4gICAgICAgIC8vIFN0b3JlJ3Ugc2FkZWNlIGJpciBrZXJlIG9sdcWfdHVydXlvcnV6XHJcbiAgICAgICAgdGhpcy5GdWVsSW50ZWdyYXRpb25Mb2dEYXRhU291cmNlID0gdGhpcy5oaXRGdWVsSW50ZWdyYXRpb25Mb2dTZXJ2aWNlLkxvYWRGdWVsSW50ZWdyYXRpb25Mb2dzO1xyXG4gICAgfVxyXG5cclxuICAgIHNob3dSZXF1ZXN0Qm9keShpZDogYW55KTogdm9pZCB7XHJcbiAgICAgICAgLy8gWcO8a2xlbWUgZHVydW11bnUgYmHFn2xhdCAoZ2VyZWtpcnNlKVxyXG4gICAgICAgIHRoaXMuaXNMb2FkaW5nUmVxdWVzdEJvZHlNb2RlbCA9IHRydWU7XHJcblxyXG4gICAgICAgIC8vIMOWbmNlIHBvcHVwJ8SxIGthcGF0ICjDtm5jZWtpIHTEsWtsYW1hbGFyZGEgYcOnxLFrIGthbG3EscWfIG9sYWJpbGlyKVxyXG4gICAgICAgIHRoaXMuaXNSZXF1ZXN0Qm9keU1vZGFsT3BlbiA9IGZhbHNlO1xyXG5cclxuICAgICAgICB0aGlzLmhpdEZ1ZWxJbnRlZ3JhdGlvbkxvZ1NlcnZpY2UuZ2V0UmVxdWVzdGVCb2R5KHsgbG9nSWQ6IGlkIH0pXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgICAgICAgICAgbmV4dDogKGRhdGEpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkUmVxdWVzdEJvZHlNb2RlbCA9IHR5cGVvZiBkYXRhID09PSAnc3RyaW5nJyA/IEpTT04ucGFyc2UoZGF0YSkgOiBkYXRhO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAvLyBWZXJpIGdlbGRpa3RlbiBzb25yYSBwb3B1cCfEsSBhw6dcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmlzUmVxdWVzdEJvZHlNb2RhbE9wZW4gPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLmlzTG9hZGluZ1JlcXVlc3RCb2R5TW9kZWwgPSBmYWxzZTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgc2hvd1Jlc3BvbnNlQm9keShpZDogYW55KTogdm9pZCB7XHJcbiAgICAgICAgLy8gWcO8a2xlbWUgZHVydW11bnUgYmHFn2xhdCAoZ2VyZWtpcnNlKVxyXG4gICAgICAgIHRoaXMuaXNMb2FkaW5nUmVzcG9uc2VCb2R5TW9kZWwgPSB0cnVlO1xyXG5cclxuICAgICAgICAvLyDDlm5jZSBwb3B1cCfEsSBrYXBhdCAow7ZuY2VraSB0xLFrbGFtYWxhcmRhIGHDp8SxayBrYWxtxLHFnyBvbGFiaWxpcilcclxuICAgICAgICB0aGlzLmlzUmVzcG9uc2VCb2R5TW9kYWxPcGVuID0gZmFsc2U7XHJcblxyXG4gICAgICAgIHRoaXMuaGl0RnVlbEludGVncmF0aW9uTG9nU2VydmljZS5nZXRSZXNwb25zZUJvZHkoeyBsb2dJZDogaWQgfSlcclxuICAgICAgICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgICAgICAgICBuZXh0OiAoZGF0YSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRSZXNwb25zZUJvZHlNb2RlbCA9IHR5cGVvZiBkYXRhID09PSAnc3RyaW5nJyA/IEpTT04ucGFyc2UoZGF0YSkgOiBkYXRhO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAvLyBWZXJpIGdlbGRpa3RlbiBzb25yYSBwb3B1cCfEsSBhw6dcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmlzUmVzcG9uc2VCb2R5TW9kYWxPcGVuID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5pc0xvYWRpbmdSZXNwb25zZUJvZHlNb2RlbCA9IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIGVkaXRGdWVsSW50ZWdyYXRpb25Mb2cocmVjb3JkOiBGdWVsSW50ZWdyYXRpb25Mb2dEdG8pIHtcclxuICAgICAgICBjb25zb2xlLmxvZygnRWRpdDonLCByZWNvcmQpO1xyXG4gICAgICAgIC8vIE1vZGFsIGZvcm0gYcOnxLFsYWNhayDFn2VraWxkZSBpbXBsZW1lbnQgZWRpbGViaWxpclxyXG4gICAgfVxyXG5cclxuICAgIGRlbGV0ZUFsbCgpIHtcclxuICAgICAgICBjb25zb2xlLmxvZygnZGVsZXRlQWxsJyk7XHJcbiAgICAgICAgdGhpcy5oaXRGdWVsSW50ZWdyYXRpb25Mb2dTZXJ2aWNlLmRlbGV0ZUFsbCgpXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgICAgICAgICAgbmV4dDogKHJlc3VsdCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gR3JpZCdpIHJlZnJlc2ggZWRpeW9ydXpcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5keEdyaWQuaW5zdGFuY2UucmVmcmVzaCgpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRvYXN0ZXIuZXJyb3IoJ1ZlcmkgecO8a2xlbmlya2VuIGhhdGEgb2x1xZ90dS4nKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGRlbGV0ZUZ1ZWxJbnRlZ3JhdGlvbkxvZyhyZWNvcmQ6IHN0cmluZykge1xyXG4gICAgICAgIGlmIChjb25maXJtKCB0aGlzLmwoJ092b2x0OjpEZWxldGVDb25maXJtYXRpb25NZXNzYWdlJykpKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VydmljZS5kZWxldGUocmVjb3JkKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgLy8gR3JpZCdpIHJlZnJlc2ggZWRpeW9ydXpcclxuICAgICAgICAgICAgICAgIHRoaXMuZHhHcmlkLmluc3RhbmNlLnJlZnJlc2goKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG9uQWN0aW9uQ2xpY2soZTogYW55LCBpZDogYW55KTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgYWN0aW9uID0gZS5pdGVtRGF0YT8ua2V5O1xyXG5cclxuICAgICAgICBpZiAoYWN0aW9uID09PSAncmVxdWVzdEJvZHknKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2hvd1JlcXVlc3RCb2R5KGlkKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGFjdGlvbiA9PT0gJ3Jlc3BvbnNlQm9keScpIHtcclxuICAgICAgICAgICAgdGhpcy5zaG93UmVzcG9uc2VCb2R5KGlkKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGFjdGlvbiA9PT0gJ2RlbGV0ZScpIHtcclxuICAgICAgICAgICAgdGhpcy5kZWxldGVGdWVsSW50ZWdyYXRpb25Mb2coaWQpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbn1cclxuIiwiPGFicC1wYWdlIFt0aXRsZV09XCInT3ZvbHQ6OkZ1ZWxJbnRlZ3JhdGlvbkxvZ3MnIHwgYWJwTG9jYWxpemF0aW9uXCI+XHJcbiAgICA8YWJwLXBhZ2UtdG9vbGJhci1jb250YWluZXIgY2xhc3M9XCJjb2xcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1sZy1lbmQgcHQtMlwiPlxyXG4gICAgICAgICAgICA8ZHgtYnV0dG9uICphYnBQZXJtaXNzaW9uPVwiJ092b2x0LkZ1ZWxJbnRlZ3JhdGlvbkxvZ3MuRGVsZXRlQWxsJ1wiXHJcbiAgICAgICAgICAgICAgICB0ZXh0PVwie3sgJ092b2x0OjpEZWxldGVBbGwnIHwgYWJwTG9jYWxpemF0aW9uIH19XCIgdHlwZT1cImRhbmdlclwiIChvbkNsaWNrKT1cImRlbGV0ZUFsbCgpXCJcclxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJpc2RlbGV0ZUFsbFwiPjwvZHgtYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9hYnAtcGFnZS10b29sYmFyLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwiY2FyZCBtdC0yXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keVwiPlxyXG4gICAgICAgICAgICA8ZHgtZGF0YS1ncmlkICNkeEdyaWQgW2RhdGFTb3VyY2VdPVwiRnVlbEludGVncmF0aW9uTG9nRGF0YVNvdXJjZVwiIFtzaG93Um93TGluZXNdPVwidHJ1ZVwiIFtzaG93Qm9yZGVyc109XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgIFtyZW1vdGVPcGVyYXRpb25zXT1cInRydWVcIiBbaG92ZXJTdGF0ZUVuYWJsZWRdPVwidHJ1ZVwiIFtyZXBhaW50Q2hhbmdlc09ubHldPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICBbYWxsb3dDb2x1bW5SZXNpemluZ109XCJ0cnVlXCIgY29sdW1uUmVzaXppbmdNb2RlPVwid2lkZ2V0XCIgW2FsbG93Q29sdW1uUmVvcmRlcmluZ109XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgIFtjb2x1bW5BdXRvV2lkdGhdPVwidHJ1ZVwiIFtjb2x1bW5IaWRpbmdFbmFibGVkXT1cInRydWVcIiBrZXlFeHByPVwiaWRcIj5cclxuICAgICAgICAgICAgICAgIDxkeG8tcGFnaW5nIFtwYWdlU2l6ZV09XCI1MFwiPjwvZHhvLXBhZ2luZz5cclxuICAgICAgICAgICAgICAgIDxkeG8tY29sdW1uLWZpeGluZyBbZW5hYmxlZF09XCJ0cnVlXCI+PC9keG8tY29sdW1uLWZpeGluZz5cclxuICAgICAgICAgICAgICAgIDxkeG8taGVhZGVyLWZpbHRlciBbYWxsb3dTZWFyY2hdPVwidHJ1ZVwiIFt2aXNpYmxlXT1cInRydWVcIj48L2R4by1oZWFkZXItZmlsdGVyPlxyXG4gICAgICAgICAgICAgICAgPGR4by1maWx0ZXItcm93IFt2aXNpYmxlXT1cInRydWVcIj48L2R4by1maWx0ZXItcm93PlxyXG4gICAgICAgICAgICAgICAgPGR4by1jb2x1bW4tZml4aW5nIFtlbmFibGVkXT1cInRydWVcIj48L2R4by1jb2x1bW4tZml4aW5nPlxyXG4gICAgICAgICAgICAgICAgPGR4by1maWx0ZXItYnVpbGRlciBbYWxsb3dIaWVyYXJjaGljYWxGaWVsZHNdPVwidHJ1ZVwiPjwvZHhvLWZpbHRlci1idWlsZGVyPlxyXG4gICAgICAgICAgICAgICAgPGR4by1maWx0ZXItcGFuZWwgW3Zpc2libGVdPVwidHJ1ZVwiPjwvZHhvLWZpbHRlci1wYW5lbD5cclxuICAgICAgICAgICAgICAgIDxkeG8tc29ydGluZyBtb2RlPVwic2luZ2xlXCI+PC9keG8tc29ydGluZz5cclxuICAgICAgICAgICAgICAgIDxkeG8tc2Nyb2xsaW5nIG1vZGU9XCJob3Jpem9udGFsXCIgc2hvd1Njcm9sbGJhcj1cImFsd2F5c1wiPjwvZHhvLXNjcm9sbGluZz5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZHhpLWNvbHVtbiAqbmdJZj1cImFjdGlvbk1lbnVJdGVtcz8ubGVuZ3RoID4gMFwiIFtmaXhlZF09XCJ0cnVlXCIgYWxpZ25tZW50PVwiY2VudGVyXCJcclxuICAgICAgICAgICAgICAgICAgICBjYXB0aW9uPVwie3sgJ092b2x0OjpQcm9jZXNzZXMnIHwgYWJwTG9jYWxpemF0aW9uIH19XCIgZGF0YUZpZWxkPVwiaWRcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtjZWxsVGVtcGxhdGVdPVwiJ2FjdGlvblRlbXBsYXRlJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKmR4VGVtcGxhdGU9XCJsZXQgZGF0YSBvZiAnYWN0aW9uVGVtcGxhdGUnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkeC1kcm9wLWRvd24tYnV0dG9uIHRleHQ9XCJ7eyAnT3ZvbHQ6OlNob3cnIHwgYWJwTG9jYWxpemF0aW9uIH19XCIgc3R5bGluZ01vZGU9XCJvdXRsaW5lZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5RXhwcj1cInRleHRcIiBrZXlFeHByPVwia2V5XCIgW2l0ZW1zXT1cImFjdGlvbk1lbnVJdGVtc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob25JdGVtQ2xpY2spPVwib25BY3Rpb25DbGljaygkZXZlbnQsIGRhdGEuZGF0YS5pZClcIj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpkeFRlbXBsYXRlPVwibGV0IGl0ZW0gb2YgJ2l0ZW0nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGR4LWJ1dHRvbiBbdGV4dF09XCJpdGVtLnRleHRcIiBzdHlsaW5nTW9kZT1cInRleHRcIiB3aWR0aD1cIjE4MFwiIGhlaWdodD1cIjQwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9keC1idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9keC1kcm9wLWRvd24tYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9keGktY29sdW1uPlxyXG5cclxuICAgICAgICAgICAgICAgIDxkeGktY29sdW1uIGRhdGFGaWVsZD1cInBhdGhcIiBjYXB0aW9uPVwie3sgJ092b2x0OjpQYXRoJyB8IGFicExvY2FsaXphdGlvbiB9fVwiPjwvZHhpLWNvbHVtbj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZHhpLWNvbHVtbiBkYXRhRmllbGQ9XCJtZXRob2RcIiBjYXB0aW9uPVwie3sgJ092b2x0OjpNZXRob2QnIHwgYWJwTG9jYWxpemF0aW9uIH19XCI+PC9keGktY29sdW1uPlxyXG5cclxuICAgICAgICAgICAgICAgIDwhLS0gPGR4aS1jb2x1bW4gW2ZpeGVkXT1cInRydWVcIiBjYXB0aW9uPVwie3sgJ092b2x0OjpSZXF1ZXN0Qm9keScgfCBhYnBMb2NhbGl6YXRpb24gfX1cIiBkYXRhRmllbGQ9XCJpZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2NlbGxUZW1wbGF0ZV09XCIncmVxdWVzdEJvZHlUZW1wbGF0ZSdcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICpkeFRlbXBsYXRlPVwibGV0IGRhdGEgb2YgJ3JlcXVlc3RCb2R5VGVtcGxhdGUnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkeC1idXR0b24gdGV4dD1cInt7ICdPdm9sdDo6U2hvd1JlcXVlc3RCb2R5JyB8IGFicExvY2FsaXphdGlvbiB9fVwiIHR5cGU9XCJkZWZhdWx0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvbkNsaWNrKT1cInNob3dSZXF1ZXN0Qm9keShkYXRhLmRhdGEuaWQpXCI+PC9keC1idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2R4aS1jb2x1bW4+XHJcblxyXG4gICAgICAgICAgICAgICAgPGR4aS1jb2x1bW4gW2ZpeGVkXT1cInRydWVcIiBjYXB0aW9uPVwie3sgJ092b2x0OjpSZXNwb25zZUJvZHknIHwgYWJwTG9jYWxpemF0aW9uIH19XCIgZGF0YUZpZWxkPVwiaWRcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtjZWxsVGVtcGxhdGVdPVwiJ3Jlc3BvbnNlQm9keVRlbXBsYXRlJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKmR4VGVtcGxhdGU9XCJsZXQgZGF0YSBvZiAncmVzcG9uc2VCb2R5VGVtcGxhdGUnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkeC1idXR0b24gdGV4dD1cInt7ICdPdm9sdDo6U2hvd1Jlc3BvbnNlQm9keScgfCBhYnBMb2NhbGl6YXRpb24gfX1cIiB0eXBlPVwiZGVmYXVsdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob25DbGljayk9XCJzaG93UmVzcG9uc2VCb2R5KGRhdGEuZGF0YS5pZClcIj48L2R4LWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZHhpLWNvbHVtbj4gLS0+XHJcblxyXG4gICAgICAgICAgICAgICAgPGR4aS1jb2x1bW4gZGF0YUZpZWxkPVwic3RhdHVzQ29kZVwiIGNhcHRpb249XCJ7eyAnT3ZvbHQ6OlN0YXR1c0NvZGUnIHwgYWJwTG9jYWxpemF0aW9uIH19XCI+PC9keGktY29sdW1uPlxyXG5cclxuICAgICAgICAgICAgICAgIDxkeGktY29sdW1uIGNhcHRpb249XCJ7eyAnT3ZvbHQ6OlJlcXVlc3RUaW1lJyB8IGFicExvY2FsaXphdGlvbiB9fVwiIGRhdGFGaWVsZD1cInJlcXVlc3RUaW1lXCJcclxuICAgICAgICAgICAgICAgICAgICBkYXRhVHlwZT1cImRhdGV0aW1lXCIgW2Zvcm1hdF09XCIgJ2RkLk1NLnl5eXkgSEg6bW06c3MnIFwiIHNvcnRPcmRlcj1cImRlc2NcIiBzb3J0SW5kZXg9XCIwXCI+XHJcbiAgICAgICAgICAgICAgICA8L2R4aS1jb2x1bW4+XHJcblxyXG4gICAgICAgICAgICAgICAgPGR4aS1jb2x1bW4gY2FwdGlvbj1cInt7ICdPdm9sdDo6UmVzcG9uc2VUaW1lJyB8IGFicExvY2FsaXphdGlvbiB9fVwiIGRhdGFGaWVsZD1cInJlc3BvbnNlVGltZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgZGF0YVR5cGU9XCJkYXRldGltZVwiIFtmb3JtYXRdPVwiICdkZC5NTS55eXl5IEhIOm1tOnNzJyBcIj5cclxuICAgICAgICAgICAgICAgIDwvZHhpLWNvbHVtbj5cclxuICAgICAgICAgICAgPC9keC1kYXRhLWdyaWQ+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8IS0tIFJlcXVlc3QgSlNPTiBQb3B1cCAtLT5cclxuICAgIDxkeC1wb3B1cCBbKHZpc2libGUpXT1cImlzUmVxdWVzdEJvZHlNb2RhbE9wZW5cIiBbc2hvd1RpdGxlXT1cInRydWVcIiBbdGl0bGVdPVwiJ092b2x0OjpSZXF1ZXN0Qm9keScgfCBhYnBMb2NhbGl6YXRpb25cIlxyXG4gICAgICAgIFtoaWRlT25PdXRzaWRlQ2xpY2tdPVwidHJ1ZVwiIFtzaG93Q2xvc2VCdXR0b25dPVwiZmFsc2VcIj5cclxuICAgICAgICA8ZHhpLXRvb2xiYXItaXRlbSB3aWRnZXQ9XCJkeEJ1dHRvblwiIHRvb2xiYXI9XCJib3R0b21cIiBsb2NhdGlvbj1cImFmdGVyXCIgW29wdGlvbnNdPVwiY2xvc2VSZXF1ZXN0Qm9keUJ1dHRvbk9wdGlvbnNcIj5cclxuICAgICAgICA8L2R4aS10b29sYmFyLWl0ZW0+XHJcbiAgICAgICAgPGRpdiAqZHhUZW1wbGF0ZT1cImxldCBkYXRhIG9mICdjb250ZW50J1wiIGNsYXNzPVwicC0zXCI+XHJcbiAgICAgICAgICAgIDxkeC1zY3JvbGwtdmlldz5cclxuICAgICAgICAgICAgICAgIDxwcmUgc3R5bGU9XCJ3aGl0ZS1zcGFjZTogcHJlLXdyYXA7IHdvcmQtd3JhcDogYnJlYWstd29yZDtcIj5cclxuICAgICAgICAgICAge3sgc2VsZWN0ZWRSZXF1ZXN0Qm9keU1vZGVsIHwganNvbiB9fVxyXG4gICAgICAgICAgPC9wcmU+XHJcbiAgICAgICAgICAgIDwvZHgtc2Nyb2xsLXZpZXc+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2R4LXBvcHVwPlxyXG5cclxuXHJcbiAgICA8IS0tIFJlc3BvbnNlIEpTT04gUG9wdXAgLS0+XHJcbiAgICA8ZHgtcG9wdXAgWyh2aXNpYmxlKV09XCJpc1Jlc3BvbnNlQm9keU1vZGFsT3BlblwiIFtzaG93VGl0bGVdPVwidHJ1ZVwiIFt0aXRsZV09XCInT3ZvbHQ6OlJlc3BvbnNlQm9keScgfCBhYnBMb2NhbGl6YXRpb25cIlxyXG4gICAgICAgIFtoaWRlT25PdXRzaWRlQ2xpY2tdPVwidHJ1ZVwiIFtzaG93Q2xvc2VCdXR0b25dPVwiZmFsc2VcIj5cclxuICAgICAgICA8ZHhpLXRvb2xiYXItaXRlbSB3aWRnZXQ9XCJkeEJ1dHRvblwiIHRvb2xiYXI9XCJib3R0b21cIiBsb2NhdGlvbj1cImFmdGVyXCJcclxuICAgICAgICAgICAgW29wdGlvbnNdPVwiY2xvc2VSZXNwb25zZUJvZHlCdXR0b25PcHRpb25zXCI+XHJcbiAgICAgICAgPC9keGktdG9vbGJhci1pdGVtPlxyXG4gICAgICAgIDxkaXYgKmR4VGVtcGxhdGU9XCJsZXQgZGF0YSBvZiAnY29udGVudCdcIiBjbGFzcz1cInAtM1wiPlxyXG4gICAgICAgICAgICA8ZHgtc2Nyb2xsLXZpZXc+XHJcbiAgICAgICAgICAgICAgICA8cHJlIHN0eWxlPVwid2hpdGUtc3BhY2U6IHByZS13cmFwOyB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XCI+XHJcbiAgICAgICAgICAgIHt7IHNlbGVjdGVkUmVzcG9uc2VCb2R5TW9kZWwgfCBqc29uIH19XHJcbiAgICAgICAgICA8L3ByZT5cclxuICAgICAgICAgICAgPC9keC1zY3JvbGwtdmlldz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZHgtcG9wdXA+XHJcbjwvYWJwLXBhZ2U+Il19
|
|
175
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGl0LWZ1ZWwtaW50ZWdyYXRpb24tbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL292b2x0L3NyYy9saWIvY29tcG9uZW50cy9oaXQtZnVlbC1pbnRlZ3JhdGlvbi1sb2dzL2NvbXBvbmVudHMvaGl0LWZ1ZWwtaW50ZWdyYXRpb24tbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL292b2x0L3NyYy9saWIvY29tcG9uZW50cy9oaXQtZnVlbC1pbnRlZ3JhdGlvbi1sb2dzL2NvbXBvbmVudHMvaGl0LWZ1ZWwtaW50ZWdyYXRpb24tbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQVUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXRGLE9BQU8sRUFBRSxXQUFXLEVBQXdFLE1BQU0sY0FBYyxDQUFDO0FBQ2pILE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUNBQWlDLENBQUM7Ozs7Ozs7Ozs7O0FBYTlELE1BQU0sT0FBTyw4QkFBOEI7SUFxQnZDLFlBQ1ksT0FBa0MsRUFDbkMsS0FBcUIsRUFDWiw0QkFBMEQsRUFDbEUsT0FBdUIsRUFDdkIsWUFBaUMsRUFDakMsaUJBQW9DLEVBQ3BDLFlBQWlDO1FBTmpDLFlBQU8sR0FBUCxPQUFPLENBQTJCO1FBQ25DLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQ1osaUNBQTRCLEdBQTVCLDRCQUE0QixDQUE4QjtRQUNsRSxZQUFPLEdBQVAsT0FBTyxDQUFnQjtRQUN2QixpQkFBWSxHQUFaLFlBQVksQ0FBcUI7UUFDakMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQyxpQkFBWSxHQUFaLFlBQVksQ0FBcUI7UUF4QjdDLGdC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SSxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUMsQ0FBQztTQUM1QjtRQUNELElBQUksTUFBTSxLQUFLLGNBQWMsRUFBRTtZQUMzQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDN0I7UUFDRCxJQUFJLE1BQU0sS0FBSyxRQUFRLEVBQUU7WUFDckIsSUFBSSxDQUFDLHdCQUF3QixDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQ3JDO0lBQ0wsQ0FBQzs7MkhBdkxRLDhCQUE4QjsrR0FBOUIsOEJBQThCLHVEQUo1QixDQUFDLFdBQVcsRUFBRSxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxDQUFDLDRIQ2JoRixpbk1BdUdXOzJGRHRGRSw4QkFBOEI7a0JBUjFDLFNBQVM7K0JBQ0ksOEJBQThCLG1CQUN2Qix1QkFBdUIsQ0FBQyxPQUFPLGFBRXJDLENBQUMsV0FBVyxFQUFFLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLENBQUM7eVRBS3BDLE1BQU07c0JBQTdDLFNBQVM7dUJBQUMsUUFBUSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IER4RGF0YUdyaWRDb21wb25lbnQsIER4RHJvcERvd25CdXR0b25Db21wb25lbnQgfSBmcm9tICdkZXZleHRyZW1lLWFuZ3VsYXInO1xyXG5pbXBvcnQgeyBMaXN0U2VydmljZSwgTG9jYWxpemF0aW9uU2VydmljZSwgUGVybWlzc2lvblNlcnZpY2UsIFRyYWNrQnlTZXJ2aWNlLCBkb3dubG9hZEJsb2IgfSBmcm9tICdAYWJwL25nLmNvcmUnO1xyXG5pbXBvcnQgeyBOZ2JEYXRlQWRhcHRlciB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcclxuaW1wb3J0IHsgRGF0ZUFkYXB0ZXIgfSBmcm9tICdAYWJwL25nLnRoZW1lLnNoYXJlZC9leHRlbnNpb25zJztcclxuaW1wb3J0IHsgSGl0RnVlbEludGVncmF0aW9uTG9nU2VydmljZSB9IGZyb20gJy4uLy4uL2hpdC1wcm94eS9oaXQtZnVlbC1pbnRlZ3JhdGlvbi1sb2dzL2hpdC1mdWVsLWludGVncmF0aW9uLWxvZy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ29uZmlybWF0aW9uU2VydmljZSwgVG9hc3RlclNlcnZpY2UgfSBmcm9tICdAYWJwL25nLnRoZW1lLnNoYXJlZCc7XHJcbmltcG9ydCB7IEZ1ZWxJbnRlZ3JhdGlvbkxvZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9wcm94eS9mdWVsLWludGVncmF0aW9uLWxvZ3MvZnVlbC1pbnRlZ3JhdGlvbi1sb2cuc2VydmljZSc7XHJcbmltcG9ydCB0eXBlIHsgRnVlbEludGVncmF0aW9uTG9nRHRvIH0gZnJvbSAnLi4vLi4vLi4vcHJveHkvZnVlbC1pbnRlZ3JhdGlvbi1sb2dzL21vZGVscyc7XHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdsaWItaGl0LWZ1ZWwtaW50ZWdyYXRpb24tbG9nJyxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuRGVmYXVsdCxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9oaXQtZnVlbC1pbnRlZ3JhdGlvbi1sb2cuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgcHJvdmlkZXJzOiBbTGlzdFNlcnZpY2UsIHsgcHJvdmlkZTogTmdiRGF0ZUFkYXB0ZXIsIHVzZUNsYXNzOiBEYXRlQWRhcHRlciB9XSxcclxuICAgIHN0eWxlczogW10sXHJcbn0pXHJcblxyXG5leHBvcnQgY2xhc3MgSGl0RnVlbEludGVncmF0aW9uTG9nQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICAgIEBWaWV3Q2hpbGQoJ2R4R3JpZCcsIHsgc3RhdGljOiBmYWxzZSB9KSBkeEdyaWQhOiBEeERhdGFHcmlkQ29tcG9uZW50O1xyXG5cclxuICAgIEZ1ZWxJbnRlZ3JhdGlvbkxvZ0RhdGFTb3VyY2U6IGFueTtcclxuICAgIGlzZGVsZXRlQWxsID0gZmFsc2U7XHJcblxyXG4gICAgaXNSZXF1ZXN0Qm9keU1vZGFsT3BlbiA9IGZhbHNlO1xyXG4gICAgc2VsZWN0ZWRSZXF1ZXN0Qm9keU1vZGVsOiBhbnk7XHJcbiAgICBpc0xvYWRpbmdSZXF1ZXN0Qm9keU1vZGVsID0gZmFsc2U7XHJcblxyXG4gICAgY2xvc2VSZXF1ZXN0Qm9keUJ1dHRvbk9wdGlvbnM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xyXG5cclxuXHJcbiAgICBpc1Jlc3BvbnNlQm9keU1vZGFsT3BlbiA9IGZhbHNlO1xyXG4gICAgc2VsZWN0ZWRSZXNwb25zZUJvZHlNb2RlbDogYW55O1xyXG4gICAgaXNMb2FkaW5nUmVzcG9uc2VCb2R5TW9kZWwgPSBmYWxzZTtcclxuICAgIGNsb3NlUmVzcG9uc2VCb2R5QnV0dG9uT3B0aW9uczogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XHJcblxyXG4gICAgYWN0aW9uTWVudUl0ZW1zO1xyXG5cclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIHNlcnZpY2U6IEZ1ZWxJbnRlZ3JhdGlvbkxvZ1NlcnZpY2UsXHJcbiAgICAgICAgcHVibGljIHRyYWNrOiBUcmFja0J5U2VydmljZSxcclxuICAgICAgICBwdWJsaWMgcmVhZG9ubHkgaGl0RnVlbEludGVncmF0aW9uTG9nU2VydmljZTogSGl0RnVlbEludGVncmF0aW9uTG9nU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIHRvYXN0ZXI6IFRvYXN0ZXJTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgbG9jYWxpemF0aW9uOiBMb2NhbGl6YXRpb25TZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgcGVybWlzc2lvblNlcnZpY2U6IFBlcm1pc3Npb25TZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgY29uZmlybWF0aW9uOiBDb25maXJtYXRpb25TZXJ2aWNlLFxyXG4gICAgKSB7IH1cclxuXHJcbiAgICBuZ09uSW5pdCgpIHtcclxuICAgICAgICB0aGlzLmFjdGlvbk1lbnVJdGVtcyA9IFtdO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5wZXJtaXNzaW9uU2VydmljZS5nZXRHcmFudGVkUG9saWN5KCdPdm9sdC5GdWVsSW50ZWdyYXRpb25Mb2dzLlNob3dSZXF1ZXN0Qm9keScpKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYWN0aW9uTWVudUl0ZW1zLnB1c2goe1xyXG4gICAgICAgICAgICAgICAga2V5OiAncmVxdWVzdEJvZHknLFxyXG4gICAgICAgICAgICAgICAgdGV4dDogdGhpcy5sKCdPdm9sdDo6U2hvd1JlcXVlc3RCb2R5JyksXHJcbiAgICAgICAgICAgICAgICB0eXBlOiAnc3VjY2VzcydcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy5wZXJtaXNzaW9uU2VydmljZS5nZXRHcmFudGVkUG9saWN5KCdPdm9sdC5GdWVsSW50ZWdyYXRpb25Mb2dzLlNob3dSZXNwb25zZUJvZHknKSkge1xyXG4gICAgICAgICAgICB0aGlzLmFjdGlvbk1lbnVJdGVtcy5wdXNoKHtcclxuICAgICAgICAgICAgICAgIGtleTogJ3Jlc3BvbnNlQm9keScsXHJcbiAgICAgICAgICAgICAgICB0ZXh0OiB0aGlzLmwoJ092b2x0OjpTaG93UmVzcG9uc2VCb2R5JyksXHJcbiAgICAgICAgICAgICAgICB0eXBlOiAnbm9ybWFsJ1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0aGlzLnBlcm1pc3Npb25TZXJ2aWNlLmdldEdyYW50ZWRQb2xpY3koJ092b2x0LkZ1ZWxJbnRlZ3JhdGlvbkxvZ3MuRGVsZXRlJykpIHtcclxuICAgICAgICAgICAgdGhpcy5hY3Rpb25NZW51SXRlbXMucHVzaCh7XHJcbiAgICAgICAgICAgICAgICBrZXk6ICdkZWxldGUnLFxyXG4gICAgICAgICAgICAgICAgdGV4dDogdGhpcy5sKCdPdm9sdDo6RGVsZXRlJyksXHJcbiAgICAgICAgICAgICAgICB0eXBlOiAnZGFuZ2VyJ1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuaW5pdERhdGFTb3VyY2UoKTtcclxuXHJcbiAgICAgICAgdGhpcy5jbG9zZVJlcXVlc3RCb2R5QnV0dG9uT3B0aW9ucyA9IHtcclxuICAgICAgICAgICAgdGV4dDogJ0Nsb3NlJyxcclxuICAgICAgICAgICAgc3R5bGluZ01vZGU6ICdvdXRsaW5lZCcsXHJcbiAgICAgICAgICAgIHR5cGU6ICdub3JtYWwnLFxyXG4gICAgICAgICAgICBvbkNsaWNrOiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmlzUmVxdWVzdEJvZHlNb2RhbE9wZW4gPSBmYWxzZTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICB0aGlzLmNsb3NlUmVzcG9uc2VCb2R5QnV0dG9uT3B0aW9ucyA9IHtcclxuICAgICAgICAgICAgdGV4dDogJ0Nsb3NlJyxcclxuICAgICAgICAgICAgc3R5bGluZ01vZGU6ICdvdXRsaW5lZCcsXHJcbiAgICAgICAgICAgIHR5cGU6ICdub3JtYWwnLFxyXG4gICAgICAgICAgICBvbkNsaWNrOiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmlzUmVzcG9uc2VCb2R5TW9kYWxPcGVuID0gZmFsc2U7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICBsKGtleTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5sb2NhbGl6YXRpb24uaW5zdGFudChrZXkpO1xyXG4gICAgfVxyXG5cclxuICAgIGluaXREYXRhU291cmNlKCkge1xyXG4gICAgICAgIC8vIFN0b3JlJ3Ugc2FkZWNlIGJpciBrZXJlIG9sdcWfdHVydXlvcnV6XHJcbiAgICAgICAgdGhpcy5GdWVsSW50ZWdyYXRpb25Mb2dEYXRhU291cmNlID0gdGhpcy5oaXRGdWVsSW50ZWdyYXRpb25Mb2dTZXJ2aWNlLkxvYWRGdWVsSW50ZWdyYXRpb25Mb2dzO1xyXG4gICAgfVxyXG5cclxuICAgIHNob3dSZXF1ZXN0Qm9keShpZDogYW55KTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5pc0xvYWRpbmdSZXF1ZXN0Qm9keU1vZGVsID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmlzUmVxdWVzdEJvZHlNb2RhbE9wZW4gPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmhpdEZ1ZWxJbnRlZ3JhdGlvbkxvZ1NlcnZpY2UuZ2V0UmVxdWVzdGVCb2R5KHsgbG9nSWQ6IGlkIH0pXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgICAgICAgICAgbmV4dDogKGRhdGEpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkUmVxdWVzdEJvZHlNb2RlbCA9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlb2YgZGF0YSA9PT0gJ3N0cmluZycgPyBKU09OLnBhcnNlKGRhdGEpIDogZGF0YTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaXNSZXF1ZXN0Qm9keU1vZGFsT3BlbiA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAocGFyc2VFcnJvcikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRvYXN0ZXIuaW5mbygnR2VsZW4gdmVyaSBnw7ZzdGVyaWxlY2VrIGZvcm1hdHRhIGRlxJ9pbC4nKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgZXJyb3I6IChlcnIpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRvYXN0ZXIuaW5mbygnVmVyaSBhbMSxbsSxcmtlbiBoYXRhIG9sdcWfdHUuJyk7XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgY29tcGxldGU6ICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmlzTG9hZGluZ1JlcXVlc3RCb2R5TW9kZWwgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIHNob3dSZXNwb25zZUJvZHkoaWQ6IGFueSk6IHZvaWQge1xyXG4gICAgICAgIC8vIFnDvGtsZW1lIGR1cnVtdW51IGJhxZ9sYXQgKGdlcmVraXJzZSlcclxuICAgICAgICB0aGlzLmlzTG9hZGluZ1Jlc3BvbnNlQm9keU1vZGVsID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgLy8gw5ZuY2UgcG9wdXAnxLEga2FwYXQgKMO2bmNla2kgdMSxa2xhbWFsYXJkYSBhw6fEsWsga2FsbcSxxZ8gb2xhYmlsaXIpXHJcbiAgICAgICAgdGhpcy5pc1Jlc3BvbnNlQm9keU1vZGFsT3BlbiA9IGZhbHNlO1xyXG5cclxuICAgICAgICB0aGlzLmhpdEZ1ZWxJbnRlZ3JhdGlvbkxvZ1NlcnZpY2UuZ2V0UmVzcG9uc2VCb2R5KHsgbG9nSWQ6IGlkIH0pXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgICAgICAgICAgbmV4dDogKGRhdGEpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkUmVzcG9uc2VCb2R5TW9kZWwgPSB0eXBlb2YgZGF0YSA9PT0gJ3N0cmluZycgPyBKU09OLnBhcnNlKGRhdGEpIDogZGF0YTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFZlcmkgZ2VsZGlrdGVuIHNvbnJhIHBvcHVwJ8SxIGHDp1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmlzUmVzcG9uc2VCb2R5TW9kYWxPcGVuID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChwYXJzZUVycm9yKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudG9hc3Rlci5pbmZvKCdHZWxlbiB2ZXJpIGfDtnN0ZXJpbGVjZWsgZm9ybWF0dGEgZGXEn2lsLicpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBlcnJvcjogKGVycikgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudG9hc3Rlci5pbmZvKCdWZXJpIGFsxLFuxLFya2VuIGhhdGEgb2x1xZ90dS4nKTtcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBjb21wbGV0ZTogKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXNMb2FkaW5nUmVxdWVzdEJvZHlNb2RlbCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBlZGl0RnVlbEludGVncmF0aW9uTG9nKHJlY29yZDogRnVlbEludGVncmF0aW9uTG9nRHRvKSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ0VkaXQ6JywgcmVjb3JkKTtcclxuICAgICAgICAvLyBNb2RhbCBmb3JtIGHDp8SxbGFjYWsgxZ9la2lsZGUgaW1wbGVtZW50IGVkaWxlYmlsaXJcclxuICAgIH1cclxuXHJcbiAgICBkZWxldGVBbGwoKSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ2RlbGV0ZUFsbCcpO1xyXG4gICAgICAgIHRoaXMuaGl0RnVlbEludGVncmF0aW9uTG9nU2VydmljZS5kZWxldGVBbGwoKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICAgICAgICAgIG5leHQ6IChyZXN1bHQpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIEdyaWQnaSByZWZyZXNoIGVkaXlvcnV6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZHhHcmlkLmluc3RhbmNlLnJlZnJlc2goKTtcclxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50b2FzdGVyLmVycm9yKCdWZXJpIHnDvGtsZW5pcmtlbiBoYXRhIG9sdcWfdHUuJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBkZWxldGVGdWVsSW50ZWdyYXRpb25Mb2cocmVjb3JkOiBzdHJpbmcpIHtcclxuICAgICAgICBpZiAoY29uZmlybSh0aGlzLmwoJ092b2x0OjpEZWxldGVDb25maXJtYXRpb25NZXNzYWdlJykpKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VydmljZS5kZWxldGUocmVjb3JkKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgLy8gR3JpZCdpIHJlZnJlc2ggZWRpeW9ydXpcclxuICAgICAgICAgICAgICAgIHRoaXMuZHhHcmlkLmluc3RhbmNlLnJlZnJlc2goKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG9uQWN0aW9uQ2xpY2soZTogYW55LCBpZDogYW55KTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgYWN0aW9uID0gZS5pdGVtRGF0YT8ua2V5O1xyXG5cclxuICAgICAgICBpZiAoYWN0aW9uID09PSAncmVxdWVzdEJvZHknKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2hvd1JlcXVlc3RCb2R5KGlkKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGFjdGlvbiA9PT0gJ3Jlc3BvbnNlQm9keScpIHtcclxuICAgICAgICAgICAgdGhpcy5zaG93UmVzcG9uc2VCb2R5KGlkKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGFjdGlvbiA9PT0gJ2RlbGV0ZScpIHtcclxuICAgICAgICAgICAgdGhpcy5kZWxldGVGdWVsSW50ZWdyYXRpb25Mb2coaWQpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbn1cclxuIiwiPGFicC1wYWdlIFt0aXRsZV09XCInT3ZvbHQ6OkZ1ZWxJbnRlZ3JhdGlvbkxvZ3MnIHwgYWJwTG9jYWxpemF0aW9uXCI+XHJcbiAgICA8YWJwLXBhZ2UtdG9vbGJhci1jb250YWluZXIgY2xhc3M9XCJjb2xcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1sZy1lbmQgcHQtMlwiPlxyXG4gICAgICAgICAgICA8ZHgtYnV0dG9uICphYnBQZXJtaXNzaW9uPVwiJ092b2x0LkZ1ZWxJbnRlZ3JhdGlvbkxvZ3MuRGVsZXRlQWxsJ1wiXHJcbiAgICAgICAgICAgICAgICB0ZXh0PVwie3sgJ092b2x0OjpEZWxldGVBbGwnIHwgYWJwTG9jYWxpemF0aW9uIH19XCIgdHlwZT1cImRhbmdlclwiIChvbkNsaWNrKT1cImRlbGV0ZUFsbCgpXCJcclxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJpc2RlbGV0ZUFsbFwiPjwvZHgtYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9hYnAtcGFnZS10b29sYmFyLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwiY2FyZCBtdC0yXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keVwiPlxyXG4gICAgICAgICAgICA8ZHgtZGF0YS1ncmlkICNkeEdyaWQgW2RhdGFTb3VyY2VdPVwiRnVlbEludGVncmF0aW9uTG9nRGF0YVNvdXJjZVwiIFtzaG93Um93TGluZXNdPVwidHJ1ZVwiIFtzaG93Qm9yZGVyc109XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgIFtyZW1vdGVPcGVyYXRpb25zXT1cInRydWVcIiBbaG92ZXJTdGF0ZUVuYWJsZWRdPVwidHJ1ZVwiIFtyZXBhaW50Q2hhbmdlc09ubHldPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICBbYWxsb3dDb2x1bW5SZXNpemluZ109XCJ0cnVlXCIgY29sdW1uUmVzaXppbmdNb2RlPVwid2lkZ2V0XCIgW2FsbG93Q29sdW1uUmVvcmRlcmluZ109XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgIFtjb2x1bW5BdXRvV2lkdGhdPVwidHJ1ZVwiIFtjb2x1bW5IaWRpbmdFbmFibGVkXT1cInRydWVcIiBrZXlFeHByPVwiaWRcIj5cclxuICAgICAgICAgICAgICAgIDxkeG8tcGFnaW5nIFtwYWdlU2l6ZV09XCI1MFwiPjwvZHhvLXBhZ2luZz5cclxuICAgICAgICAgICAgICAgIDxkeG8tY29sdW1uLWZpeGluZyBbZW5hYmxlZF09XCJ0cnVlXCI+PC9keG8tY29sdW1uLWZpeGluZz5cclxuICAgICAgICAgICAgICAgIDxkeG8taGVhZGVyLWZpbHRlciBbYWxsb3dTZWFyY2hdPVwidHJ1ZVwiIFt2aXNpYmxlXT1cInRydWVcIj48L2R4by1oZWFkZXItZmlsdGVyPlxyXG4gICAgICAgICAgICAgICAgPGR4by1maWx0ZXItcm93IFt2aXNpYmxlXT1cInRydWVcIj48L2R4by1maWx0ZXItcm93PlxyXG4gICAgICAgICAgICAgICAgPGR4by1jb2x1bW4tZml4aW5nIFtlbmFibGVkXT1cInRydWVcIj48L2R4by1jb2x1bW4tZml4aW5nPlxyXG4gICAgICAgICAgICAgICAgPGR4by1maWx0ZXItYnVpbGRlciBbYWxsb3dIaWVyYXJjaGljYWxGaWVsZHNdPVwidHJ1ZVwiPjwvZHhvLWZpbHRlci1idWlsZGVyPlxyXG4gICAgICAgICAgICAgICAgPGR4by1maWx0ZXItcGFuZWwgW3Zpc2libGVdPVwidHJ1ZVwiPjwvZHhvLWZpbHRlci1wYW5lbD5cclxuICAgICAgICAgICAgICAgIDxkeG8tc29ydGluZyBtb2RlPVwic2luZ2xlXCI+PC9keG8tc29ydGluZz5cclxuICAgICAgICAgICAgICAgIDxkeG8tc2Nyb2xsaW5nIG1vZGU9XCJob3Jpem9udGFsXCIgc2hvd1Njcm9sbGJhcj1cImFsd2F5c1wiPjwvZHhvLXNjcm9sbGluZz5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZHhpLWNvbHVtbiAqbmdJZj1cImFjdGlvbk1lbnVJdGVtcz8ubGVuZ3RoID4gMFwiIFtmaXhlZF09XCJ0cnVlXCIgYWxpZ25tZW50PVwiY2VudGVyXCJcclxuICAgICAgICAgICAgICAgICAgICBjYXB0aW9uPVwie3sgJ092b2x0OjpQcm9jZXNzZXMnIHwgYWJwTG9jYWxpemF0aW9uIH19XCIgZGF0YUZpZWxkPVwiaWRcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtjZWxsVGVtcGxhdGVdPVwiJ2FjdGlvblRlbXBsYXRlJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKmR4VGVtcGxhdGU9XCJsZXQgZGF0YSBvZiAnYWN0aW9uVGVtcGxhdGUnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkeC1kcm9wLWRvd24tYnV0dG9uIHRleHQ9XCJ7eyAnT3ZvbHQ6OlNob3cnIHwgYWJwTG9jYWxpemF0aW9uIH19XCIgc3R5bGluZ01vZGU9XCJvdXRsaW5lZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5RXhwcj1cInRleHRcIiBrZXlFeHByPVwia2V5XCIgW2l0ZW1zXT1cImFjdGlvbk1lbnVJdGVtc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob25JdGVtQ2xpY2spPVwib25BY3Rpb25DbGljaygkZXZlbnQsIGRhdGEuZGF0YS5pZClcIj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpkeFRlbXBsYXRlPVwibGV0IGl0ZW0gb2YgJ2l0ZW0nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGR4LWJ1dHRvbiBbdGV4dF09XCJpdGVtLnRleHRcIiBzdHlsaW5nTW9kZT1cInRleHRcIiB3aWR0aD1cIjE4MFwiIGhlaWdodD1cIjQwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9keC1idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9keC1kcm9wLWRvd24tYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9keGktY29sdW1uPlxyXG5cclxuICAgICAgICAgICAgICAgIDxkeGktY29sdW1uIGRhdGFGaWVsZD1cInBhdGhcIiBjYXB0aW9uPVwie3sgJ092b2x0OjpQYXRoJyB8IGFicExvY2FsaXphdGlvbiB9fVwiPjwvZHhpLWNvbHVtbj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZHhpLWNvbHVtbiBkYXRhRmllbGQ9XCJtZXRob2RcIiBjYXB0aW9uPVwie3sgJ092b2x0OjpNZXRob2QnIHwgYWJwTG9jYWxpemF0aW9uIH19XCI+PC9keGktY29sdW1uPlxyXG5cclxuICAgICAgICAgICAgICAgIDwhLS0gPGR4aS1jb2x1bW4gW2ZpeGVkXT1cInRydWVcIiBjYXB0aW9uPVwie3sgJ092b2x0OjpSZXF1ZXN0Qm9keScgfCBhYnBMb2NhbGl6YXRpb24gfX1cIiBkYXRhRmllbGQ9XCJpZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2NlbGxUZW1wbGF0ZV09XCIncmVxdWVzdEJvZHlUZW1wbGF0ZSdcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICpkeFRlbXBsYXRlPVwibGV0IGRhdGEgb2YgJ3JlcXVlc3RCb2R5VGVtcGxhdGUnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkeC1idXR0b24gdGV4dD1cInt7ICdPdm9sdDo6U2hvd1JlcXVlc3RCb2R5JyB8IGFicExvY2FsaXphdGlvbiB9fVwiIHR5cGU9XCJkZWZhdWx0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvbkNsaWNrKT1cInNob3dSZXF1ZXN0Qm9keShkYXRhLmRhdGEuaWQpXCI+PC9keC1idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2R4aS1jb2x1bW4+XHJcblxyXG4gICAgICAgICAgICAgICAgPGR4aS1jb2x1bW4gW2ZpeGVkXT1cInRydWVcIiBjYXB0aW9uPVwie3sgJ092b2x0OjpSZXNwb25zZUJvZHknIHwgYWJwTG9jYWxpemF0aW9uIH19XCIgZGF0YUZpZWxkPVwiaWRcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtjZWxsVGVtcGxhdGVdPVwiJ3Jlc3BvbnNlQm9keVRlbXBsYXRlJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKmR4VGVtcGxhdGU9XCJsZXQgZGF0YSBvZiAncmVzcG9uc2VCb2R5VGVtcGxhdGUnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkeC1idXR0b24gdGV4dD1cInt7ICdPdm9sdDo6U2hvd1Jlc3BvbnNlQm9keScgfCBhYnBMb2NhbGl6YXRpb24gfX1cIiB0eXBlPVwiZGVmYXVsdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob25DbGljayk9XCJzaG93UmVzcG9uc2VCb2R5KGRhdGEuZGF0YS5pZClcIj48L2R4LWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZHhpLWNvbHVtbj4gLS0+XHJcblxyXG4gICAgICAgICAgICAgICAgPGR4aS1jb2x1bW4gZGF0YUZpZWxkPVwic3RhdHVzQ29kZVwiIGNhcHRpb249XCJ7eyAnT3ZvbHQ6OlN0YXR1c0NvZGUnIHwgYWJwTG9jYWxpemF0aW9uIH19XCI+PC9keGktY29sdW1uPlxyXG5cclxuICAgICAgICAgICAgICAgIDxkeGktY29sdW1uIGNhcHRpb249XCJ7eyAnT3ZvbHQ6OlJlcXVlc3RUaW1lJyB8IGFicExvY2FsaXphdGlvbiB9fVwiIGRhdGFGaWVsZD1cInJlcXVlc3RUaW1lXCJcclxuICAgICAgICAgICAgICAgICAgICBkYXRhVHlwZT1cImRhdGV0aW1lXCIgW2Zvcm1hdF09XCIgJ2RkLk1NLnl5eXkgSEg6bW06c3MnIFwiIHNvcnRPcmRlcj1cImRlc2NcIiBzb3J0SW5kZXg9XCIwXCI+XHJcbiAgICAgICAgICAgICAgICA8L2R4aS1jb2x1bW4+XHJcblxyXG4gICAgICAgICAgICAgICAgPGR4aS1jb2x1bW4gY2FwdGlvbj1cInt7ICdPdm9sdDo6UmVzcG9uc2VUaW1lJyB8IGFicExvY2FsaXphdGlvbiB9fVwiIGRhdGFGaWVsZD1cInJlc3BvbnNlVGltZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgZGF0YVR5cGU9XCJkYXRldGltZVwiIFtmb3JtYXRdPVwiICdkZC5NTS55eXl5IEhIOm1tOnNzJyBcIj5cclxuICAgICAgICAgICAgICAgIDwvZHhpLWNvbHVtbj5cclxuICAgICAgICAgICAgPC9keC1kYXRhLWdyaWQ+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8IS0tIFJlcXVlc3QgSlNPTiBQb3B1cCAtLT5cclxuICAgIDxkeC1wb3B1cCBbKHZpc2libGUpXT1cImlzUmVxdWVzdEJvZHlNb2RhbE9wZW5cIiBbc2hvd1RpdGxlXT1cInRydWVcIiBbdGl0bGVdPVwiJ092b2x0OjpSZXF1ZXN0Qm9keScgfCBhYnBMb2NhbGl6YXRpb25cIlxyXG4gICAgICAgIFtoaWRlT25PdXRzaWRlQ2xpY2tdPVwidHJ1ZVwiIFtzaG93Q2xvc2VCdXR0b25dPVwiZmFsc2VcIj5cclxuICAgICAgICA8ZHhpLXRvb2xiYXItaXRlbSB3aWRnZXQ9XCJkeEJ1dHRvblwiIHRvb2xiYXI9XCJib3R0b21cIiBsb2NhdGlvbj1cImFmdGVyXCIgW29wdGlvbnNdPVwiY2xvc2VSZXF1ZXN0Qm9keUJ1dHRvbk9wdGlvbnNcIj5cclxuICAgICAgICA8L2R4aS10b29sYmFyLWl0ZW0+XHJcbiAgICAgICAgPGRpdiAqZHhUZW1wbGF0ZT1cImxldCBkYXRhIG9mICdjb250ZW50J1wiIGNsYXNzPVwicC0zXCI+XHJcbiAgICAgICAgICAgIDxkeC1zY3JvbGwtdmlldz5cclxuICAgICAgICAgICAgICAgIDxwcmUgc3R5bGU9XCJ3aGl0ZS1zcGFjZTogcHJlLXdyYXA7IHdvcmQtd3JhcDogYnJlYWstd29yZDtcIj5cclxuICAgICAgICAgICAge3sgc2VsZWN0ZWRSZXF1ZXN0Qm9keU1vZGVsIHwganNvbiB9fVxyXG4gICAgICAgICAgPC9wcmU+XHJcbiAgICAgICAgICAgIDwvZHgtc2Nyb2xsLXZpZXc+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2R4LXBvcHVwPlxyXG5cclxuXHJcbiAgICA8IS0tIFJlc3BvbnNlIEpTT04gUG9wdXAgLS0+XHJcbiAgICA8ZHgtcG9wdXAgWyh2aXNpYmxlKV09XCJpc1Jlc3BvbnNlQm9keU1vZGFsT3BlblwiIFtzaG93VGl0bGVdPVwidHJ1ZVwiIFt0aXRsZV09XCInT3ZvbHQ6OlJlc3BvbnNlQm9keScgfCBhYnBMb2NhbGl6YXRpb25cIlxyXG4gICAgICAgIFtoaWRlT25PdXRzaWRlQ2xpY2tdPVwidHJ1ZVwiIFtzaG93Q2xvc2VCdXR0b25dPVwiZmFsc2VcIj5cclxuICAgICAgICA8ZHhpLXRvb2xiYXItaXRlbSB3aWRnZXQ9XCJkeEJ1dHRvblwiIHRvb2xiYXI9XCJib3R0b21cIiBsb2NhdGlvbj1cImFmdGVyXCJcclxuICAgICAgICAgICAgW29wdGlvbnNdPVwiY2xvc2VSZXNwb25zZUJvZHlCdXR0b25PcHRpb25zXCI+XHJcbiAgICAgICAgPC9keGktdG9vbGJhci1pdGVtPlxyXG4gICAgICAgIDxkaXYgKmR4VGVtcGxhdGU9XCJsZXQgZGF0YSBvZiAnY29udGVudCdcIiBjbGFzcz1cInAtM1wiPlxyXG4gICAgICAgICAgICA8ZHgtc2Nyb2xsLXZpZXc+XHJcbiAgICAgICAgICAgICAgICA8cHJlIHN0eWxlPVwid2hpdGUtc3BhY2U6IHByZS13cmFwOyB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XCI+XHJcbiAgICAgICAgICAgIHt7IHNlbGVjdGVkUmVzcG9uc2VCb2R5TW9kZWwgfCBqc29uIH19XHJcbiAgICAgICAgICA8L3ByZT5cclxuICAgICAgICAgICAgPC9keC1zY3JvbGwtdmlldz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZHgtcG9wdXA+XHJcbjwvYWJwLXBhZ2U+Il19
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, ViewChild } from '@angular/core';
|
|
2
|
+
import { ListService } from '@abp/ng.core';
|
|
3
|
+
import { NgbDateAdapter } from '@ng-bootstrap/ng-bootstrap';
|
|
4
|
+
import { DateAdapter } from '@abp/ng.theme.shared/extensions';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "../../../proxy/ovolt-integration-logs/ovolt-integration-log.service";
|
|
7
|
+
import * as i2 from "@abp/ng.core";
|
|
8
|
+
import * as i3 from "../../hit-proxy/hit-ovolt-integration-logs/hit-ovolt-integration-log.service";
|
|
9
|
+
import * as i4 from "@abp/ng.theme.shared";
|
|
10
|
+
import * as i5 from "@angular/common";
|
|
11
|
+
import * as i6 from "@abp/ng.components/page";
|
|
12
|
+
import * as i7 from "devextreme-angular";
|
|
13
|
+
import * as i8 from "devextreme-angular/ui/nested";
|
|
14
|
+
import * as i9 from "devextreme-angular/core";
|
|
15
|
+
export class HitOvoltIntegrationLogComponent {
|
|
16
|
+
constructor(service, track, hitOvoltIntegrationLogService, toaster, localization, permissionService, confirmation) {
|
|
17
|
+
this.service = service;
|
|
18
|
+
this.track = track;
|
|
19
|
+
this.hitOvoltIntegrationLogService = hitOvoltIntegrationLogService;
|
|
20
|
+
this.toaster = toaster;
|
|
21
|
+
this.localization = localization;
|
|
22
|
+
this.permissionService = permissionService;
|
|
23
|
+
this.confirmation = confirmation;
|
|
24
|
+
this.isdeleteAll = false;
|
|
25
|
+
this.isRequestBodyModalOpen = false;
|
|
26
|
+
this.isLoadingRequestBodyModel = false;
|
|
27
|
+
this.isResponseBodyModalOpen = false;
|
|
28
|
+
this.isLoadingResponseBodyModel = false;
|
|
29
|
+
}
|
|
30
|
+
ngOnInit() {
|
|
31
|
+
this.actionMenuItems = [];
|
|
32
|
+
if (this.permissionService.getGrantedPolicy('Ovolt.OvoltIntegrationLogs.ShowRequestBody')) {
|
|
33
|
+
this.actionMenuItems.push({
|
|
34
|
+
key: 'requestBody',
|
|
35
|
+
text: this.l('Ovolt::ShowRequestBody'),
|
|
36
|
+
type: 'success'
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
if (this.permissionService.getGrantedPolicy('Ovolt.OvoltIntegrationLogs.ShowResponseBody')) {
|
|
40
|
+
this.actionMenuItems.push({
|
|
41
|
+
key: 'responseBody',
|
|
42
|
+
text: this.l('Ovolt::ShowResponseBody'),
|
|
43
|
+
type: 'normal'
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
if (this.permissionService.getGrantedPolicy('Ovolt.OvoltIntegrationLogs.Delete')) {
|
|
47
|
+
this.actionMenuItems.push({
|
|
48
|
+
key: 'delete',
|
|
49
|
+
text: this.l('Ovolt::Delete'),
|
|
50
|
+
type: 'danger'
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
this.initDataSource();
|
|
54
|
+
this.closeRequestBodyButtonOptions = {
|
|
55
|
+
text: 'Close',
|
|
56
|
+
stylingMode: 'outlined',
|
|
57
|
+
type: 'normal',
|
|
58
|
+
onClick: () => {
|
|
59
|
+
this.isRequestBodyModalOpen = false;
|
|
60
|
+
},
|
|
61
|
+
};
|
|
62
|
+
this.closeResponseBodyButtonOptions = {
|
|
63
|
+
text: 'Close',
|
|
64
|
+
stylingMode: 'outlined',
|
|
65
|
+
type: 'normal',
|
|
66
|
+
onClick: () => {
|
|
67
|
+
this.isResponseBodyModalOpen = false;
|
|
68
|
+
},
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
l(key) {
|
|
72
|
+
return this.localization.instant(key);
|
|
73
|
+
}
|
|
74
|
+
initDataSource() {
|
|
75
|
+
// Store'u sadece bir kere oluşturuyoruz
|
|
76
|
+
this.OvoltIntegrationLogDataSource = this.hitOvoltIntegrationLogService.LoadOvoltIntegrationLogs;
|
|
77
|
+
}
|
|
78
|
+
showRequestBody(id) {
|
|
79
|
+
this.isLoadingRequestBodyModel = true;
|
|
80
|
+
this.isRequestBodyModalOpen = false;
|
|
81
|
+
this.hitOvoltIntegrationLogService.getRequesteBody({ logId: id })
|
|
82
|
+
.subscribe({
|
|
83
|
+
next: (data) => {
|
|
84
|
+
try {
|
|
85
|
+
this.selectedRequestBodyModel = typeof data === 'string' ? JSON.parse(data) : data;
|
|
86
|
+
this.isRequestBodyModalOpen = true;
|
|
87
|
+
}
|
|
88
|
+
catch (parseError) {
|
|
89
|
+
this.toaster.info('Gelen veri gösterilecek formatta değil.');
|
|
90
|
+
}
|
|
91
|
+
},
|
|
92
|
+
error: (err) => {
|
|
93
|
+
this.toaster.info('Veri alınırken hata oluştu.');
|
|
94
|
+
},
|
|
95
|
+
complete: () => {
|
|
96
|
+
this.isLoadingRequestBodyModel = false;
|
|
97
|
+
}
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
showResponseBody(id) {
|
|
101
|
+
// Yükleme durumunu başlat (gerekirse)
|
|
102
|
+
this.isLoadingResponseBodyModel = true;
|
|
103
|
+
// Önce popup'ı kapat (önceki tıklamalarda açık kalmış olabilir)
|
|
104
|
+
this.isResponseBodyModalOpen = false;
|
|
105
|
+
this.hitOvoltIntegrationLogService.getResponseBody({ logId: id })
|
|
106
|
+
.subscribe({
|
|
107
|
+
next: (data) => {
|
|
108
|
+
try {
|
|
109
|
+
this.selectedResponseBodyModel = typeof data === 'string' ? JSON.parse(data) : data;
|
|
110
|
+
// Veri geldikten sonra popup'ı aç
|
|
111
|
+
this.isResponseBodyModalOpen = true;
|
|
112
|
+
}
|
|
113
|
+
catch (parseError) {
|
|
114
|
+
this.toaster.info('Gelen veri gösterilecek formatta değil.');
|
|
115
|
+
}
|
|
116
|
+
},
|
|
117
|
+
error: (err) => {
|
|
118
|
+
this.toaster.info('Veri alınırken hata oluştu.');
|
|
119
|
+
},
|
|
120
|
+
complete: () => {
|
|
121
|
+
this.isLoadingRequestBodyModel = false;
|
|
122
|
+
}
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
deleteAll() {
|
|
126
|
+
console.log('deleteAll');
|
|
127
|
+
this.hitOvoltIntegrationLogService.deleteAll()
|
|
128
|
+
.subscribe({
|
|
129
|
+
next: (result) => {
|
|
130
|
+
if (result) {
|
|
131
|
+
// Grid'i refresh ediyoruz
|
|
132
|
+
this.dxGrid.instance.refresh();
|
|
133
|
+
}
|
|
134
|
+
else {
|
|
135
|
+
this.toaster.error('Veri yüklenirken hata oluştu.');
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
deleteOvoltIntegrationLog(record) {
|
|
141
|
+
if (confirm(this.l('Ovolt::DeleteConfirmationMessage'))) {
|
|
142
|
+
this.service.delete(record).subscribe(() => {
|
|
143
|
+
// Grid'i refresh ediyoruz
|
|
144
|
+
this.dxGrid.instance.refresh();
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
onActionClick(e, id) {
|
|
149
|
+
const action = e.itemData?.key;
|
|
150
|
+
if (action === 'requestBody') {
|
|
151
|
+
this.showRequestBody(id);
|
|
152
|
+
}
|
|
153
|
+
if (action === 'responseBody') {
|
|
154
|
+
this.showResponseBody(id);
|
|
155
|
+
}
|
|
156
|
+
if (action === 'delete') {
|
|
157
|
+
this.deleteOvoltIntegrationLog(id);
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
HitOvoltIntegrationLogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitOvoltIntegrationLogComponent, deps: [{ token: i1.OvoltIntegrationLogService }, { token: i2.TrackByService }, { token: i3.HitOvoltIntegrationLogService }, { token: i4.ToasterService }, { token: i2.LocalizationService }, { token: i2.PermissionService }, { token: i4.ConfirmationService }], target: i0.ɵɵFactoryTarget.Component });
|
|
162
|
+
HitOvoltIntegrationLogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: HitOvoltIntegrationLogComponent, selector: "lib-hit-ovolt-integration-log", providers: [ListService, { provide: NgbDateAdapter, useClass: DateAdapter }], viewQueries: [{ propertyName: "dxGrid", first: true, predicate: ["dxGrid"], descendants: true }], ngImport: i0, template: "<abp-page [title]=\"'Ovolt::OvoltIntegrationLogs' | abpLocalization\">\r\n <abp-page-toolbar-container class=\"col\">\r\n <div class=\"text-lg-end pt-2\">\r\n <dx-button *abpPermission=\"'Ovolt.OvoltIntegrationLogs.DeleteAll'\"\r\n text=\"{{ 'Ovolt::DeleteAll' | abpLocalization }}\" type=\"danger\" (onClick)=\"deleteAll()\"\r\n [disabled]=\"isdeleteAll\"></dx-button>\r\n </div>\r\n </abp-page-toolbar-container>\r\n\r\n <div class=\"card mt-2\">\r\n <div class=\"card-body\">\r\n <dx-data-grid #dxGrid [dataSource]=\"OvoltIntegrationLogDataSource\" [showRowLines]=\"true\" [showBorders]=\"true\"\r\n [remoteOperations]=\"true\" [hoverStateEnabled]=\"true\" [repaintChangesOnly]=\"true\"\r\n [allowColumnResizing]=\"true\" columnResizingMode=\"widget\" [allowColumnReordering]=\"true\"\r\n [columnAutoWidth]=\"true\" [columnHidingEnabled]=\"true\" keyExpr=\"id\">\r\n <dxo-paging [pageSize]=\"50\"></dxo-paging>\r\n <dxo-column-fixing [enabled]=\"true\"></dxo-column-fixing>\r\n <dxo-header-filter [allowSearch]=\"true\" [visible]=\"true\"></dxo-header-filter>\r\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\r\n <dxo-column-fixing [enabled]=\"true\"></dxo-column-fixing>\r\n <dxo-filter-builder [allowHierarchicalFields]=\"true\"></dxo-filter-builder>\r\n <dxo-filter-panel [visible]=\"true\"></dxo-filter-panel>\r\n <dxo-sorting mode=\"single\"></dxo-sorting>\r\n <dxo-scrolling mode=\"horizontal\" showScrollbar=\"always\"></dxo-scrolling>\r\n\r\n <dxi-column *ngIf=\"actionMenuItems?.length > 0\" [fixed]=\"true\" alignment=\"center\"\r\n caption=\"{{ 'Ovolt::Processes' | abpLocalization }}\" dataField=\"id\"\r\n [cellTemplate]=\"'actionTemplate'\">\r\n <div *dxTemplate=\"let data of 'actionTemplate'\">\r\n <dx-drop-down-button text=\"{{ 'Ovolt::Show' | abpLocalization }}\" stylingMode=\"outlined\"\r\n displayExpr=\"text\" keyExpr=\"key\" [items]=\"actionMenuItems\"\r\n (onItemClick)=\"onActionClick($event, data.data.id)\">\r\n\r\n <div *dxTemplate=\"let item of 'item'\">\r\n <dx-button [text]=\"item.text\" stylingMode=\"text\" width=\"180\" height=\"40\">\r\n </dx-button>\r\n </div>\r\n </dx-drop-down-button>\r\n </div>\r\n </dxi-column>\r\n\r\n <dxi-column dataField=\"path\" caption=\"{{ 'Ovolt::Path' | abpLocalization }}\"></dxi-column>\r\n\r\n <dxi-column dataField=\"method\" caption=\"{{ 'Ovolt::Method' | abpLocalization }}\"></dxi-column>\r\n\r\n <!-- <dxi-column [fixed]=\"true\" caption=\"{{ 'Ovolt::RequestBody' | abpLocalization }}\" dataField=\"id\"\r\n [cellTemplate]=\"'requestBodyTemplate'\">\r\n <div *dxTemplate=\"let data of 'requestBodyTemplate'\">\r\n <dx-button text=\"{{ 'Ovolt::ShowRequestBody' | abpLocalization }}\" type=\"default\"\r\n (onClick)=\"showRequestBody(data.data.id)\"></dx-button>\r\n </div>\r\n </dxi-column>\r\n\r\n <dxi-column [fixed]=\"true\" caption=\"{{ 'Ovolt::ResponseBody' | abpLocalization }}\" dataField=\"id\"\r\n [cellTemplate]=\"'responseBodyTemplate'\">\r\n <div *dxTemplate=\"let data of 'responseBodyTemplate'\">\r\n <dx-button text=\"{{ 'Ovolt::ShowResponseBody' | abpLocalization }}\" type=\"default\"\r\n (onClick)=\"showResponseBody(data.data.id)\"></dx-button>\r\n </div>\r\n </dxi-column> -->\r\n\r\n <dxi-column dataField=\"statusCode\" caption=\"{{ 'Ovolt::StatusCode' | abpLocalization }}\"></dxi-column>\r\n\r\n <dxi-column caption=\"{{ 'Ovolt::RequestTime' | abpLocalization }}\" dataField=\"requestTime\"\r\n dataType=\"datetime\" [format]=\" 'dd.MM.yyyy HH:mm:ss' \" sortOrder=\"desc\" sortIndex=\"0\">\r\n </dxi-column>\r\n\r\n <dxi-column caption=\"{{ 'Ovolt::ResponseTime' | abpLocalization }}\" dataField=\"responseTime\"\r\n dataType=\"datetime\" [format]=\" 'dd.MM.yyyy HH:mm:ss' \">\r\n </dxi-column>\r\n </dx-data-grid>\r\n </div>\r\n </div>\r\n\r\n <!-- Request JSON Popup -->\r\n <dx-popup [(visible)]=\"isRequestBodyModalOpen\" [showTitle]=\"true\" [title]=\"'Ovolt::RequestBody' | abpLocalization\"\r\n [hideOnOutsideClick]=\"true\" [showCloseButton]=\"false\">\r\n <dxi-toolbar-item widget=\"dxButton\" toolbar=\"bottom\" location=\"after\" [options]=\"closeRequestBodyButtonOptions\">\r\n </dxi-toolbar-item>\r\n <div *dxTemplate=\"let data of 'content'\" class=\"p-3\">\r\n <dx-scroll-view>\r\n <pre style=\"white-space: pre-wrap; word-wrap: break-word;\">\r\n {{ selectedRequestBodyModel | json }}\r\n </pre>\r\n </dx-scroll-view>\r\n </div>\r\n </dx-popup>\r\n\r\n\r\n <!-- Response JSON Popup -->\r\n <dx-popup [(visible)]=\"isResponseBodyModalOpen\" [showTitle]=\"true\" [title]=\"'Ovolt::ResponseBody' | abpLocalization\"\r\n [hideOnOutsideClick]=\"true\" [showCloseButton]=\"false\">\r\n <dxi-toolbar-item widget=\"dxButton\" toolbar=\"bottom\" location=\"after\"\r\n [options]=\"closeResponseBodyButtonOptions\">\r\n </dxi-toolbar-item>\r\n <div *dxTemplate=\"let data of 'content'\" class=\"p-3\">\r\n <dx-scroll-view>\r\n <pre style=\"white-space: pre-wrap; word-wrap: break-word;\">\r\n {{ selectedResponseBodyModel | json }}\r\n </pre>\r\n </dx-scroll-view>\r\n </div>\r\n </dx-popup>\r\n</abp-page>", dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.PermissionDirective, selector: "[abpPermission]", inputs: ["abpPermission", "abpPermissionRunChangeDetection"] }, { kind: "component", type: i6.PageComponent, selector: "abp-page", inputs: ["title", "toolbar", "breadcrumb"] }, { kind: "component", type: i6.PageToolbarContainerComponent, selector: "abp-page-toolbar-container" }, { kind: "component", type: i7.DxDataGridComponent, selector: "dx-data-grid", inputs: ["accessKey", "activeStateEnabled", "allowColumnReordering", "allowColumnResizing", "autoNavigateToFocusedRow", "cacheEnabled", "cellHintEnabled", "columnAutoWidth", "columnChooser", "columnFixing", "columnHidingEnabled", "columnMinWidth", "columnResizingMode", "columns", "columnWidth", "customizeColumns", "dataRowTemplate", "dataSource", "dateSerializationFormat", "disabled", "editing", "elementAttr", "errorRowEnabled", "export", "filterBuilder", "filterBuilderPopup", "filterPanel", "filterRow", "filterSyncEnabled", "filterValue", "focusedColumnIndex", "focusedRowEnabled", "focusedRowIndex", "focusedRowKey", "grouping", "groupPanel", "headerFilter", "height", "highlightChanges", "hint", "hoverStateEnabled", "keyboardNavigation", "keyExpr", "loadPanel", "masterDetail", "noDataText", "pager", "paging", "remoteOperations", "renderAsync", "repaintChangesOnly", "rowAlternationEnabled", "rowDragging", "rowTemplate", "rtlEnabled", "scrolling", "searchPanel", "selectedRowKeys", "selection", "selectionFilter", "showBorders", "showColumnHeaders", "showColumnLines", "showRowLines", "sortByGroupSummaryInfo", "sorting", "stateStoring", "summary", "syncLookupFilterValues", "tabIndex", "toolbar", "twoWayBindingEnabled", "visible", "width", "wordWrapEnabled"], outputs: ["onAdaptiveDetailRowPreparing", "onCellClick", "onCellDblClick", "onCellHoverChanged", "onCellPrepared", "onContentReady", "onContextMenuPreparing", "onDataErrorOccurred", "onDisposing", "onEditCanceled", "onEditCanceling", "onEditingStart", "onEditorPrepared", "onEditorPreparing", "onExporting", "onFocusedCellChanged", "onFocusedCellChanging", "onFocusedRowChanged", "onFocusedRowChanging", "onInitialized", "onInitNewRow", "onKeyDown", "onOptionChanged", "onRowClick", "onRowCollapsed", "onRowCollapsing", "onRowDblClick", "onRowExpanded", "onRowExpanding", "onRowInserted", "onRowInserting", "onRowPrepared", "onRowRemoved", "onRowRemoving", "onRowUpdated", "onRowUpdating", "onRowValidating", "onSaved", "onSaving", "onSelectionChanged", "onToolbarPreparing", "accessKeyChange", "activeStateEnabledChange", "allowColumnReorderingChange", "allowColumnResizingChange", "autoNavigateToFocusedRowChange", "cacheEnabledChange", "cellHintEnabledChange", "columnAutoWidthChange", "columnChooserChange", "columnFixingChange", "columnHidingEnabledChange", "columnMinWidthChange", "columnResizingModeChange", "columnsChange", "columnWidthChange", "customizeColumnsChange", "dataRowTemplateChange", "dataSourceChange", "dateSerializationFormatChange", "disabledChange", "editingChange", "elementAttrChange", "errorRowEnabledChange", "exportChange", "filterBuilderChange", "filterBuilderPopupChange", "filterPanelChange", "filterRowChange", "filterSyncEnabledChange", "filterValueChange", "focusedColumnIndexChange", "focusedRowEnabledChange", "focusedRowIndexChange", "focusedRowKeyChange", "groupingChange", "groupPanelChange", "headerFilterChange", "heightChange", "highlightChangesChange", "hintChange", "hoverStateEnabledChange", "keyboardNavigationChange", "keyExprChange", "loadPanelChange", "masterDetailChange", "noDataTextChange", "pagerChange", "pagingChange", "remoteOperationsChange", "renderAsyncChange", "repaintChangesOnlyChange", "rowAlternationEnabledChange", "rowDraggingChange", "rowTemplateChange", "rtlEnabledChange", "scrollingChange", "searchPanelChange", "selectedRowKeysChange", "selectionChange", "selectionFilterChange", "showBordersChange", "showColumnHeadersChange", "showColumnLinesChange", "showRowLinesChange", "sortByGroupSummaryInfoChange", "sortingChange", "stateStoringChange", "summaryChange", "syncLookupFilterValuesChange", "tabIndexChange", "toolbarChange", "twoWayBindingEnabledChange", "visibleChange", "widthChange", "wordWrapEnabledChange"] }, { kind: "component", type: i8.DxoColumnFixingComponent, selector: "dxo-column-fixing", inputs: ["enabled", "texts"] }, { kind: "component", type: i8.DxiColumnComponent, selector: "dxi-column", inputs: ["alignment", "allowEditing", "allowExporting", "allowFiltering", "allowFixing", "allowGrouping", "allowHeaderFiltering", "allowHiding", "allowReordering", "allowResizing", "allowSearch", "allowSorting", "autoExpandGroup", "buttons", "calculateCellValue", "calculateDisplayValue", "calculateFilterExpression", "calculateGroupValue", "calculateSortValue", "caption", "cellTemplate", "columns", "cssClass", "customizeText", "dataField", "dataType", "editCellTemplate", "editorOptions", "encodeHtml", "falseText", "filterOperations", "filterType", "filterValue", "filterValues", "fixed", "fixedPosition", "format", "formItem", "groupCellTemplate", "groupIndex", "headerCellTemplate", "headerFilter", "hidingPriority", "isBand", "lookup", "minWidth", "name", "ownerBand", "renderAsync", "selectedFilterOperation", "setCellValue", "showEditorAlways", "showInColumnChooser", "showWhenGrouped", "sortIndex", "sortingMethod", "sortOrder", "trueText", "type", "validationRules", "visible", "visibleIndex", "width"], outputs: ["filterValueChange", "filterValuesChange", "groupIndexChange", "selectedFilterOperationChange", "sortIndexChange", "sortOrderChange", "visibleChange", "visibleIndexChange"] }, { kind: "component", type: i8.DxoHeaderFilterComponent, selector: "dxo-header-filter", inputs: ["allowSearch", "dataSource", "groupInterval", "height", "searchMode", "width", "searchTimeout", "texts", "visible", "showRelevantValues"] }, { kind: "component", type: i8.DxiToolbarItemComponent, selector: "dxi-toolbar-item", inputs: ["cssClass", "disabled", "html", "locateInMenu", "location", "menuItemTemplate", "options", "showText", "template", "text", "toolbar", "visible", "widget"] }, { kind: "component", type: i8.DxoFilterBuilderComponent, selector: "dxo-filter-builder", inputs: ["accessKey", "activeStateEnabled", "allowHierarchicalFields", "customOperations", "disabled", "elementAttr", "fields", "filterOperationDescriptions", "focusStateEnabled", "groupOperationDescriptions", "groupOperations", "height", "hint", "hoverStateEnabled", "maxGroupLevel", "onContentReady", "onDisposing", "onEditorPrepared", "onEditorPreparing", "onInitialized", "onOptionChanged", "onValueChanged", "rtlEnabled", "tabIndex", "value", "visible", "width"], outputs: ["valueChange"] }, { kind: "component", type: i8.DxoFilterPanelComponent, selector: "dxo-filter-panel", inputs: ["customizeText", "filterEnabled", "texts", "visible"], outputs: ["filterEnabledChange"] }, { kind: "component", type: i8.DxoFilterRowComponent, selector: "dxo-filter-row", inputs: ["applyFilter", "applyFilterText", "betweenEndText", "betweenStartText", "operationDescriptions", "resetOperationText", "showAllText", "showOperationChooser", "visible"] }, { kind: "component", type: i8.DxoPagingComponent, selector: "dxo-paging", inputs: ["enabled", "pageIndex", "pageSize"], outputs: ["pageIndexChange", "pageSizeChange"] }, { kind: "component", type: i8.DxoScrollingComponent, selector: "dxo-scrolling", inputs: ["columnRenderingMode", "mode", "preloadEnabled", "renderAsync", "rowRenderingMode", "scrollByContent", "scrollByThumb", "showScrollbar", "useNative"] }, { kind: "component", type: i8.DxoSortingComponent, selector: "dxo-sorting", inputs: ["ascendingText", "clearText", "descendingText", "mode", "showSortIndexes"] }, { kind: "directive", type: i9.DxTemplateDirective, selector: "[dxTemplate]", inputs: ["dxTemplateOf"] }, { kind: "component", type: i7.DxButtonComponent, selector: "dx-button", inputs: ["accessKey", "activeStateEnabled", "disabled", "elementAttr", "focusStateEnabled", "height", "hint", "hoverStateEnabled", "icon", "rtlEnabled", "stylingMode", "tabIndex", "template", "text", "type", "useSubmitBehavior", "validationGroup", "visible", "width"], outputs: ["onClick", "onContentReady", "onDisposing", "onInitialized", "onOptionChanged", "accessKeyChange", "activeStateEnabledChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hintChange", "hoverStateEnabledChange", "iconChange", "rtlEnabledChange", "stylingModeChange", "tabIndexChange", "templateChange", "textChange", "typeChange", "useSubmitBehaviorChange", "validationGroupChange", "visibleChange", "widthChange"] }, { kind: "component", type: i7.DxPopupComponent, selector: "dx-popup", inputs: ["accessKey", "animation", "closeOnOutsideClick", "container", "contentTemplate", "copyRootClassesToWrapper", "deferRendering", "disabled", "dragAndResizeArea", "dragEnabled", "dragOutsideBoundary", "elementAttr", "focusStateEnabled", "fullScreen", "height", "hideOnOutsideClick", "hideOnParentScroll", "hint", "hoverStateEnabled", "maxHeight", "maxWidth", "minHeight", "minWidth", "position", "resizeEnabled", "restorePosition", "rtlEnabled", "shading", "shadingColor", "showCloseButton", "showTitle", "tabIndex", "title", "titleTemplate", "toolbarItems", "visible", "width", "wrapperAttr"], outputs: ["onContentReady", "onDisposing", "onHidden", "onHiding", "onInitialized", "onOptionChanged", "onResize", "onResizeEnd", "onResizeStart", "onShowing", "onShown", "onTitleRendered", "accessKeyChange", "animationChange", "closeOnOutsideClickChange", "containerChange", "contentTemplateChange", "copyRootClassesToWrapperChange", "deferRenderingChange", "disabledChange", "dragAndResizeAreaChange", "dragEnabledChange", "dragOutsideBoundaryChange", "elementAttrChange", "focusStateEnabledChange", "fullScreenChange", "heightChange", "hideOnOutsideClickChange", "hideOnParentScrollChange", "hintChange", "hoverStateEnabledChange", "maxHeightChange", "maxWidthChange", "minHeightChange", "minWidthChange", "positionChange", "resizeEnabledChange", "restorePositionChange", "rtlEnabledChange", "shadingChange", "shadingColorChange", "showCloseButtonChange", "showTitleChange", "tabIndexChange", "titleChange", "titleTemplateChange", "toolbarItemsChange", "visibleChange", "widthChange", "wrapperAttrChange"] }, { kind: "component", type: i7.DxScrollViewComponent, selector: "dx-scroll-view", inputs: ["bounceEnabled", "direction", "disabled", "elementAttr", "height", "pulledDownText", "pullingDownText", "reachBottomText", "refreshingText", "rtlEnabled", "scrollByContent", "scrollByThumb", "showScrollbar", "useNative", "width"], outputs: ["onDisposing", "onInitialized", "onOptionChanged", "onPullDown", "onReachBottom", "onScroll", "onUpdated", "bounceEnabledChange", "directionChange", "disabledChange", "elementAttrChange", "heightChange", "pulledDownTextChange", "pullingDownTextChange", "reachBottomTextChange", "refreshingTextChange", "rtlEnabledChange", "scrollByContentChange", "scrollByThumbChange", "showScrollbarChange", "useNativeChange", "widthChange"] }, { kind: "component", type: i7.DxDropDownButtonComponent, selector: "dx-drop-down-button", inputs: ["accessKey", "activeStateEnabled", "dataSource", "deferRendering", "disabled", "displayExpr", "dropDownContentTemplate", "dropDownOptions", "elementAttr", "focusStateEnabled", "height", "hint", "hoverStateEnabled", "icon", "items", "itemTemplate", "keyExpr", "noDataText", "opened", "rtlEnabled", "selectedItem", "selectedItemKey", "showArrowIcon", "splitButton", "stylingMode", "tabIndex", "text", "useItemTextAsTitle", "useSelectMode", "visible", "width", "wrapItemText"], outputs: ["onButtonClick", "onContentReady", "onDisposing", "onInitialized", "onItemClick", "onOptionChanged", "onSelectionChanged", "accessKeyChange", "activeStateEnabledChange", "dataSourceChange", "deferRenderingChange", "disabledChange", "displayExprChange", "dropDownContentTemplateChange", "dropDownOptionsChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hintChange", "hoverStateEnabledChange", "iconChange", "itemsChange", "itemTemplateChange", "keyExprChange", "noDataTextChange", "openedChange", "rtlEnabledChange", "selectedItemChange", "selectedItemKeyChange", "showArrowIconChange", "splitButtonChange", "stylingModeChange", "tabIndexChange", "textChange", "useItemTextAsTitleChange", "useSelectModeChange", "visibleChange", "widthChange", "wrapItemTextChange"] }, { kind: "pipe", type: i5.JsonPipe, name: "json" }, { kind: "pipe", type: i2.LocalizationPipe, name: "abpLocalization" }], changeDetection: i0.ChangeDetectionStrategy.Default });
|
|
163
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitOvoltIntegrationLogComponent, decorators: [{
|
|
164
|
+
type: Component,
|
|
165
|
+
args: [{ selector: 'lib-hit-ovolt-integration-log', changeDetection: ChangeDetectionStrategy.Default, providers: [ListService, { provide: NgbDateAdapter, useClass: DateAdapter }], template: "<abp-page [title]=\"'Ovolt::OvoltIntegrationLogs' | abpLocalization\">\r\n <abp-page-toolbar-container class=\"col\">\r\n <div class=\"text-lg-end pt-2\">\r\n <dx-button *abpPermission=\"'Ovolt.OvoltIntegrationLogs.DeleteAll'\"\r\n text=\"{{ 'Ovolt::DeleteAll' | abpLocalization }}\" type=\"danger\" (onClick)=\"deleteAll()\"\r\n [disabled]=\"isdeleteAll\"></dx-button>\r\n </div>\r\n </abp-page-toolbar-container>\r\n\r\n <div class=\"card mt-2\">\r\n <div class=\"card-body\">\r\n <dx-data-grid #dxGrid [dataSource]=\"OvoltIntegrationLogDataSource\" [showRowLines]=\"true\" [showBorders]=\"true\"\r\n [remoteOperations]=\"true\" [hoverStateEnabled]=\"true\" [repaintChangesOnly]=\"true\"\r\n [allowColumnResizing]=\"true\" columnResizingMode=\"widget\" [allowColumnReordering]=\"true\"\r\n [columnAutoWidth]=\"true\" [columnHidingEnabled]=\"true\" keyExpr=\"id\">\r\n <dxo-paging [pageSize]=\"50\"></dxo-paging>\r\n <dxo-column-fixing [enabled]=\"true\"></dxo-column-fixing>\r\n <dxo-header-filter [allowSearch]=\"true\" [visible]=\"true\"></dxo-header-filter>\r\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\r\n <dxo-column-fixing [enabled]=\"true\"></dxo-column-fixing>\r\n <dxo-filter-builder [allowHierarchicalFields]=\"true\"></dxo-filter-builder>\r\n <dxo-filter-panel [visible]=\"true\"></dxo-filter-panel>\r\n <dxo-sorting mode=\"single\"></dxo-sorting>\r\n <dxo-scrolling mode=\"horizontal\" showScrollbar=\"always\"></dxo-scrolling>\r\n\r\n <dxi-column *ngIf=\"actionMenuItems?.length > 0\" [fixed]=\"true\" alignment=\"center\"\r\n caption=\"{{ 'Ovolt::Processes' | abpLocalization }}\" dataField=\"id\"\r\n [cellTemplate]=\"'actionTemplate'\">\r\n <div *dxTemplate=\"let data of 'actionTemplate'\">\r\n <dx-drop-down-button text=\"{{ 'Ovolt::Show' | abpLocalization }}\" stylingMode=\"outlined\"\r\n displayExpr=\"text\" keyExpr=\"key\" [items]=\"actionMenuItems\"\r\n (onItemClick)=\"onActionClick($event, data.data.id)\">\r\n\r\n <div *dxTemplate=\"let item of 'item'\">\r\n <dx-button [text]=\"item.text\" stylingMode=\"text\" width=\"180\" height=\"40\">\r\n </dx-button>\r\n </div>\r\n </dx-drop-down-button>\r\n </div>\r\n </dxi-column>\r\n\r\n <dxi-column dataField=\"path\" caption=\"{{ 'Ovolt::Path' | abpLocalization }}\"></dxi-column>\r\n\r\n <dxi-column dataField=\"method\" caption=\"{{ 'Ovolt::Method' | abpLocalization }}\"></dxi-column>\r\n\r\n <!-- <dxi-column [fixed]=\"true\" caption=\"{{ 'Ovolt::RequestBody' | abpLocalization }}\" dataField=\"id\"\r\n [cellTemplate]=\"'requestBodyTemplate'\">\r\n <div *dxTemplate=\"let data of 'requestBodyTemplate'\">\r\n <dx-button text=\"{{ 'Ovolt::ShowRequestBody' | abpLocalization }}\" type=\"default\"\r\n (onClick)=\"showRequestBody(data.data.id)\"></dx-button>\r\n </div>\r\n </dxi-column>\r\n\r\n <dxi-column [fixed]=\"true\" caption=\"{{ 'Ovolt::ResponseBody' | abpLocalization }}\" dataField=\"id\"\r\n [cellTemplate]=\"'responseBodyTemplate'\">\r\n <div *dxTemplate=\"let data of 'responseBodyTemplate'\">\r\n <dx-button text=\"{{ 'Ovolt::ShowResponseBody' | abpLocalization }}\" type=\"default\"\r\n (onClick)=\"showResponseBody(data.data.id)\"></dx-button>\r\n </div>\r\n </dxi-column> -->\r\n\r\n <dxi-column dataField=\"statusCode\" caption=\"{{ 'Ovolt::StatusCode' | abpLocalization }}\"></dxi-column>\r\n\r\n <dxi-column caption=\"{{ 'Ovolt::RequestTime' | abpLocalization }}\" dataField=\"requestTime\"\r\n dataType=\"datetime\" [format]=\" 'dd.MM.yyyy HH:mm:ss' \" sortOrder=\"desc\" sortIndex=\"0\">\r\n </dxi-column>\r\n\r\n <dxi-column caption=\"{{ 'Ovolt::ResponseTime' | abpLocalization }}\" dataField=\"responseTime\"\r\n dataType=\"datetime\" [format]=\" 'dd.MM.yyyy HH:mm:ss' \">\r\n </dxi-column>\r\n </dx-data-grid>\r\n </div>\r\n </div>\r\n\r\n <!-- Request JSON Popup -->\r\n <dx-popup [(visible)]=\"isRequestBodyModalOpen\" [showTitle]=\"true\" [title]=\"'Ovolt::RequestBody' | abpLocalization\"\r\n [hideOnOutsideClick]=\"true\" [showCloseButton]=\"false\">\r\n <dxi-toolbar-item widget=\"dxButton\" toolbar=\"bottom\" location=\"after\" [options]=\"closeRequestBodyButtonOptions\">\r\n </dxi-toolbar-item>\r\n <div *dxTemplate=\"let data of 'content'\" class=\"p-3\">\r\n <dx-scroll-view>\r\n <pre style=\"white-space: pre-wrap; word-wrap: break-word;\">\r\n {{ selectedRequestBodyModel | json }}\r\n </pre>\r\n </dx-scroll-view>\r\n </div>\r\n </dx-popup>\r\n\r\n\r\n <!-- Response JSON Popup -->\r\n <dx-popup [(visible)]=\"isResponseBodyModalOpen\" [showTitle]=\"true\" [title]=\"'Ovolt::ResponseBody' | abpLocalization\"\r\n [hideOnOutsideClick]=\"true\" [showCloseButton]=\"false\">\r\n <dxi-toolbar-item widget=\"dxButton\" toolbar=\"bottom\" location=\"after\"\r\n [options]=\"closeResponseBodyButtonOptions\">\r\n </dxi-toolbar-item>\r\n <div *dxTemplate=\"let data of 'content'\" class=\"p-3\">\r\n <dx-scroll-view>\r\n <pre style=\"white-space: pre-wrap; word-wrap: break-word;\">\r\n {{ selectedResponseBodyModel | json }}\r\n </pre>\r\n </dx-scroll-view>\r\n </div>\r\n </dx-popup>\r\n</abp-page>" }]
|
|
166
|
+
}], ctorParameters: function () { return [{ type: i1.OvoltIntegrationLogService }, { type: i2.TrackByService }, { type: i3.HitOvoltIntegrationLogService }, { type: i4.ToasterService }, { type: i2.LocalizationService }, { type: i2.PermissionService }, { type: i4.ConfirmationService }]; }, propDecorators: { dxGrid: [{
|
|
167
|
+
type: ViewChild,
|
|
168
|
+
args: ['dxGrid', { static: false }]
|
|
169
|
+
}] } });
|
|
170
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGl0LW92b2x0LWludGVncmF0aW9uLWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vdm9sdC9zcmMvbGliL2NvbXBvbmVudHMvaGl0LW92b2x0LWludGVncmF0aW9uLWxvZ3MvY29tcG9uZW50cy9oaXQtb3ZvbHQtaW50ZWdyYXRpb24tbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL292b2x0L3NyYy9saWIvY29tcG9uZW50cy9oaXQtb3ZvbHQtaW50ZWdyYXRpb24tbG9ncy9jb21wb25lbnRzL2hpdC1vdm9sdC1pbnRlZ3JhdGlvbi1sb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBVSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdEYsT0FBTyxFQUFFLFdBQVcsRUFBd0UsTUFBTSxjQUFjLENBQUM7QUFDakgsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzVELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7Ozs7Ozs7Ozs7QUFhOUQsTUFBTSxPQUFPLCtCQUErQjtJQXFCeEMsWUFDWSxPQUFtQyxFQUNwQyxLQUFxQixFQUNaLDZCQUE0RCxFQUNwRSxPQUF1QixFQUN2QixZQUFpQyxFQUNqQyxpQkFBb0MsRUFDcEMsWUFBaUM7UUFOakMsWUFBTyxHQUFQLE9BQU8sQ0FBNEI7UUFDcEMsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFDWixrQ0FBNkIsR0FBN0IsNkJBQTZCLENBQStCO1FBQ3BFLFlBQU8sR0FBUCxPQUFPLENBQWdCO1FBQ3ZCLGlCQUFZLEdBQVosWUFBWSxDQUFxQjtRQUNqQyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ3BDLGlCQUFZLEdBQVosWUFBWSxDQUFxQjtRQXhCN0MsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFFcEIsMkJBQXNCLEdBQUcsS0FBSyxDQUFDO1FBRS9CLDhCQUF5QixHQUFHLEtBQUssQ0FBQztRQUtsQyw0QkFBdUIsR0FBRyxLQUFLLENBQUM7UUFFaEMsK0JBQTBCLEdBQUcsS0FBSyxDQUFDO0lBYy9CLENBQUM7SUFFTCxRQUFRO1FBQ0osSUFBSSxDQUFDLGVBQWUsR0FBRyxFQUFFLENBQUM7UUFFMUIsSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsZ0JBQWdCLENBQUMsNENBQTRDLENBQUMsRUFBRTtZQUN2RixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQztnQkFDdEIsR0FBRyxFQUFFLGFBQWE7Z0JBQ2xCLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLHdCQUF3QixDQUFDO2dCQUN0QyxJQUFJLEVBQUUsU0FBUzthQUNsQixDQUFDLENBQUM7U0FDTjtRQUVELElBQUksSUFBSSxDQUFDLGlCQUFpQixDQUFDLGdCQUFnQixDQUFDLDZDQUE2QyxDQUFDLEVBQUU7WUFDeEYsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUM7Z0JBQ3RCLEdBQUcsRUFBRSxjQUFjO2dCQUNuQixJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyx5QkFBeUIsQ0FBQztnQkFDdkMsSUFBSSxFQUFFLFFBQVE7YUFDakIsQ0FBQyxDQUFDO1NBQ047UUFFRCxJQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxnQkFBZ0IsQ0FBQyxtQ0FBbUMsQ0FBQyxFQUFFO1lBQzlFLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDO2dCQUN0QixHQUFHLEVBQUUsUUFBUTtnQkFDYixJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUM7Z0JBQzdCLElBQUksRUFBRSxRQUFRO2FBQ2pCLENBQUMsQ0FBQztTQUNOO1FBRUQsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBRXRCLElBQUksQ0FBQyw2QkFBNkIsR0FBRztZQUNqQyxJQUFJLEVBQUUsT0FBTztZQUNiLFdBQVcsRUFBRSxVQUFVO1lBQ3ZCLElBQUksRUFBRSxRQUFRO1lBQ2QsT0FBTyxFQUFFLEdBQUcsRUFBRTtnQkFDVixJQUFJLENBQUMsc0JBQXNCLEdBQUcsS0FBSyxDQUFDO1lBQ3hDLENBQUM7U0FDSixDQUFDO1FBRUYsSUFBSSxDQUFDLDhCQUE4QixHQUFHO1lBQ2xDLElBQUksRUFBRSxPQUFPO1lBQ2IsV0FBVyxFQUFFLFVBQVU7WUFDdkIsSUFBSSxFQUFFLFFBQVE7WUFDZCxPQUFPLEVBQUUsR0FBRyxFQUFFO2dCQUNWLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxLQUFLLENBQUM7WUFDekMsQ0FBQztTQUNKLENBQUM7SUFDTixDQUFDO0lBRUQsQ0FBQyxDQUFDLEdBQVc7UUFDVCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRCxjQUFjO1FBQ1Ysd0NBQXdDO1FBQ3hDLElBQUksQ0FBQyw2QkFBNkIsR0FBRyxJQUFJLENBQUMsNkJBQTZCLENBQUMsd0JBQXdCLENBQUM7SUFDckcsQ0FBQztJQUVELGVBQWUsQ0FBQyxFQUFPO1FBRW5CLElBQUksQ0FBQyx5QkFBeUIsR0FBRyxJQUFJLENBQUM7UUFDdEMsSUFBSSxDQUFDLHNCQUFzQixHQUFHLEtBQUssQ0FBQztRQUVwQyxJQUFJLENBQUMsNkJBQTZCLENBQUMsZUFBZSxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFDO2FBQzVELFNBQVMsQ0FBQztZQUNQLElBQUksRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFO2dCQUNYLElBQUk7b0JBQ0EsSUFBSSxDQUFDLHdCQUF3QixHQUFHLE9BQU8sSUFBSSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO29CQUNuRixJQUFJLENBQUMsc0JBQXNCLEdBQUcsSUFBSSxDQUFDO2lCQUN0QztnQkFBQyxPQUFPLFVBQVUsRUFBRTtvQkFDakIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMseUNBQXlDLENBQUMsQ0FBQztpQkFDaEU7WUFDTCxDQUFDO1lBQ0QsS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUU7Z0JBQ1gsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsNkJBQTZCLENBQUMsQ0FBQztZQUNyRCxDQUFDO1lBQ0QsUUFBUSxFQUFFLEdBQUcsRUFBRTtnQkFDWCxJQUFJLENBQUMseUJBQXlCLEdBQUcsS0FBSyxDQUFDO1lBQzNDLENBQUM7U0FDSixDQUFDLENBQUM7SUFDWCxDQUFDO0lBR0QsZ0JBQWdCLENBQUMsRUFBTztRQUNwQixzQ0FBc0M7UUFDdEMsSUFBSSxDQUFDLDBCQUEwQixHQUFHLElBQUksQ0FBQztRQUV2QyxnRUFBZ0U7UUFDaEUsSUFBSSxDQUFDLHVCQUF1QixHQUFHLEtBQUssQ0FBQztRQUVyQyxJQUFJLENBQUMsNkJBQTZCLENBQUMsZUFBZSxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFDO2FBQzVELFNBQVMsQ0FBQztZQUNQLElBQUksRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFO2dCQUNYLElBQUk7b0JBQ0EsSUFBSSxDQUFDLHlCQUF5QixHQUFHLE9BQU8sSUFBSSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO29CQUNwRixrQ0FBa0M7b0JBQ2xDLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxJQUFJLENBQUM7aUJBQ3ZDO2dCQUFDLE9BQU8sVUFBVSxFQUFFO29CQUNqQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyx5Q0FBeUMsQ0FBQyxDQUFDO2lCQUNoRTtZQUNMLENBQUM7WUFDRCxLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRTtnQkFDWCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO1lBQ3JELENBQUM7WUFDRCxRQUFRLEVBQUUsR0FBRyxFQUFFO2dCQUNYLElBQUksQ0FBQyx5QkFBeUIsR0FBRyxLQUFLLENBQUM7WUFDM0MsQ0FBQztTQUNKLENBQUMsQ0FBQztJQUNYLENBQUM7SUFFRCxTQUFTO1FBQ0wsT0FBTyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN6QixJQUFJLENBQUMsNkJBQTZCLENBQUMsU0FBUyxFQUFFO2FBQ3pDLFNBQVMsQ0FBQztZQUNQLElBQUksRUFBRSxDQUFDLE1BQU0sRUFBRSxFQUFFO2dCQUNiLElBQUksTUFBTSxFQUFFO29CQUNSLDBCQUEwQjtvQkFDMUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUM7aUJBQ2xDO3FCQUFNO29CQUVILElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLCtCQUErQixDQUFDLENBQUM7aUJBQ3ZEO1lBQ0wsQ0FBQztTQUNKLENBQUMsQ0FBQztJQUNYLENBQUM7SUFFRCx5QkFBeUIsQ0FBQyxNQUFjO1FBQ3BDLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsa0NBQWtDLENBQUMsQ0FBQyxFQUFFO1lBQ3JELElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7Z0JBQ3ZDLDBCQUEwQjtnQkFDMUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDbkMsQ0FBQyxDQUFDLENBQUM7U0FDTjtJQUNMLENBQUM7SUFFRCxhQUFhLENBQUMsQ0FBTSxFQUFFLEVBQU87UUFDekIsTUFBTSxNQUFNLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUM7UUFFL0IsSUFBSSxNQUFNLEtBQUssYUFBYSxFQUFFO1lBQzFCLElBQUksQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDNUI7UUFDRCxJQUFJLE1BQU0sS0FBSyxjQUFjLEVBQUU7WUFDM0IsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQzdCO1FBQ0QsSUFBSSxNQUFNLEtBQUssUUFBUSxFQUFFO1lBQ3JCLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxFQUFFLENBQUMsQ0FBQztTQUN0QztJQUNMLENBQUM7OzRIQWpMUSwrQkFBK0I7Z0hBQS9CLCtCQUErQix3REFKN0IsQ0FBQyxXQUFXLEVBQUUsRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsQ0FBQyw0SENiaEYsb25NQXVHVzsyRkR0RkUsK0JBQStCO2tCQVIzQyxTQUFTOytCQUNJLCtCQUErQixtQkFDeEIsdUJBQXVCLENBQUMsT0FBTyxhQUVyQyxDQUFDLFdBQVcsRUFBRSxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxDQUFDOzJUQUtwQyxNQUFNO3NCQUE3QyxTQUFTO3VCQUFDLFFBQVEsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBEeERhdGFHcmlkQ29tcG9uZW50LCBEeERyb3BEb3duQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnZGV2ZXh0cmVtZS1hbmd1bGFyJztcclxuaW1wb3J0IHsgTGlzdFNlcnZpY2UsIExvY2FsaXphdGlvblNlcnZpY2UsIFBlcm1pc3Npb25TZXJ2aWNlLCBUcmFja0J5U2VydmljZSwgZG93bmxvYWRCbG9iIH0gZnJvbSAnQGFicC9uZy5jb3JlJztcclxuaW1wb3J0IHsgTmdiRGF0ZUFkYXB0ZXIgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcbmltcG9ydCB7IERhdGVBZGFwdGVyIH0gZnJvbSAnQGFicC9uZy50aGVtZS5zaGFyZWQvZXh0ZW5zaW9ucyc7XHJcbmltcG9ydCB7IENvbmZpcm1hdGlvblNlcnZpY2UsIFRvYXN0ZXJTZXJ2aWNlIH0gZnJvbSAnQGFicC9uZy50aGVtZS5zaGFyZWQnO1xyXG5pbXBvcnQgeyBPdm9sdEludGVncmF0aW9uTG9nU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3Byb3h5L292b2x0LWludGVncmF0aW9uLWxvZ3Mvb3ZvbHQtaW50ZWdyYXRpb24tbG9nLnNlcnZpY2UnO1xyXG5pbXBvcnQgdHlwZSB7IE92b2x0SW50ZWdyYXRpb25Mb2dEdG8gfSBmcm9tICcuLi8uLi8uLi9wcm94eS9vdm9sdC1pbnRlZ3JhdGlvbi1sb2dzL21vZGVscyc7XHJcbmltcG9ydCB7IEhpdE92b2x0SW50ZWdyYXRpb25Mb2dTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vaGl0LXByb3h5L2hpdC1vdm9sdC1pbnRlZ3JhdGlvbi1sb2dzL2hpdC1vdm9sdC1pbnRlZ3JhdGlvbi1sb2cuc2VydmljZSc7XHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdsaWItaGl0LW92b2x0LWludGVncmF0aW9uLWxvZycsXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LkRlZmF1bHQsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vaGl0LW92b2x0LWludGVncmF0aW9uLWxvZy5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBwcm92aWRlcnM6IFtMaXN0U2VydmljZSwgeyBwcm92aWRlOiBOZ2JEYXRlQWRhcHRlciwgdXNlQ2xhc3M6IERhdGVBZGFwdGVyIH1dLFxyXG4gICAgc3R5bGVzOiBbXSxcclxufSlcclxuXHJcbmV4cG9ydCBjbGFzcyBIaXRPdm9sdEludGVncmF0aW9uTG9nQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICAgIEBWaWV3Q2hpbGQoJ2R4R3JpZCcsIHsgc3RhdGljOiBmYWxzZSB9KSBkeEdyaWQhOiBEeERhdGFHcmlkQ29tcG9uZW50O1xyXG5cclxuICAgIE92b2x0SW50ZWdyYXRpb25Mb2dEYXRhU291cmNlOiBhbnk7XHJcbiAgICBpc2RlbGV0ZUFsbCA9IGZhbHNlO1xyXG5cclxuICAgIGlzUmVxdWVzdEJvZHlNb2RhbE9wZW4gPSBmYWxzZTtcclxuICAgIHNlbGVjdGVkUmVxdWVzdEJvZHlNb2RlbDogYW55O1xyXG4gICAgaXNMb2FkaW5nUmVxdWVzdEJvZHlNb2RlbCA9IGZhbHNlO1xyXG5cclxuICAgIGNsb3NlUmVxdWVzdEJvZHlCdXR0b25PcHRpb25zOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcclxuXHJcblxyXG4gICAgaXNSZXNwb25zZUJvZHlNb2RhbE9wZW4gPSBmYWxzZTtcclxuICAgIHNlbGVjdGVkUmVzcG9uc2VCb2R5TW9kZWw6IGFueTtcclxuICAgIGlzTG9hZGluZ1Jlc3BvbnNlQm9keU1vZGVsID0gZmFsc2U7XHJcbiAgICBjbG9zZVJlc3BvbnNlQm9keUJ1dHRvbk9wdGlvbnM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xyXG5cclxuICAgIGFjdGlvbk1lbnVJdGVtcztcclxuXHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJpdmF0ZSBzZXJ2aWNlOiBPdm9sdEludGVncmF0aW9uTG9nU2VydmljZSxcclxuICAgICAgICBwdWJsaWMgdHJhY2s6IFRyYWNrQnlTZXJ2aWNlLFxyXG4gICAgICAgIHB1YmxpYyByZWFkb25seSBoaXRPdm9sdEludGVncmF0aW9uTG9nU2VydmljZTogSGl0T3ZvbHRJbnRlZ3JhdGlvbkxvZ1NlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSB0b2FzdGVyOiBUb2FzdGVyU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIGxvY2FsaXphdGlvbjogTG9jYWxpemF0aW9uU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIHBlcm1pc3Npb25TZXJ2aWNlOiBQZXJtaXNzaW9uU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIGNvbmZpcm1hdGlvbjogQ29uZmlybWF0aW9uU2VydmljZSxcclxuICAgICkgeyB9XHJcblxyXG4gICAgbmdPbkluaXQoKSB7XHJcbiAgICAgICAgdGhpcy5hY3Rpb25NZW51SXRlbXMgPSBbXTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMucGVybWlzc2lvblNlcnZpY2UuZ2V0R3JhbnRlZFBvbGljeSgnT3ZvbHQuT3ZvbHRJbnRlZ3JhdGlvbkxvZ3MuU2hvd1JlcXVlc3RCb2R5JykpIHtcclxuICAgICAgICAgICAgdGhpcy5hY3Rpb25NZW51SXRlbXMucHVzaCh7XHJcbiAgICAgICAgICAgICAgICBrZXk6ICdyZXF1ZXN0Qm9keScsXHJcbiAgICAgICAgICAgICAgICB0ZXh0OiB0aGlzLmwoJ092b2x0OjpTaG93UmVxdWVzdEJvZHknKSxcclxuICAgICAgICAgICAgICAgIHR5cGU6ICdzdWNjZXNzJ1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0aGlzLnBlcm1pc3Npb25TZXJ2aWNlLmdldEdyYW50ZWRQb2xpY3koJ092b2x0Lk92b2x0SW50ZWdyYXRpb25Mb2dzLlNob3dSZXNwb25zZUJvZHknKSkge1xyXG4gICAgICAgICAgICB0aGlzLmFjdGlvbk1lbnVJdGVtcy5wdXNoKHtcclxuICAgICAgICAgICAgICAgIGtleTogJ3Jlc3BvbnNlQm9keScsXHJcbiAgICAgICAgICAgICAgICB0ZXh0OiB0aGlzLmwoJ092b2x0OjpTaG93UmVzcG9uc2VCb2R5JyksXHJcbiAgICAgICAgICAgICAgICB0eXBlOiAnbm9ybWFsJ1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0aGlzLnBlcm1pc3Npb25TZXJ2aWNlLmdldEdyYW50ZWRQb2xpY3koJ092b2x0Lk92b2x0SW50ZWdyYXRpb25Mb2dzLkRlbGV0ZScpKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYWN0aW9uTWVudUl0ZW1zLnB1c2goe1xyXG4gICAgICAgICAgICAgICAga2V5OiAnZGVsZXRlJyxcclxuICAgICAgICAgICAgICAgIHRleHQ6IHRoaXMubCgnT3ZvbHQ6OkRlbGV0ZScpLFxyXG4gICAgICAgICAgICAgICAgdHlwZTogJ2RhbmdlcidcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmluaXREYXRhU291cmNlKCk7XHJcblxyXG4gICAgICAgIHRoaXMuY2xvc2VSZXF1ZXN0Qm9keUJ1dHRvbk9wdGlvbnMgPSB7XHJcbiAgICAgICAgICAgIHRleHQ6ICdDbG9zZScsXHJcbiAgICAgICAgICAgIHN0eWxpbmdNb2RlOiAnb3V0bGluZWQnLFxyXG4gICAgICAgICAgICB0eXBlOiAnbm9ybWFsJyxcclxuICAgICAgICAgICAgb25DbGljazogKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5pc1JlcXVlc3RCb2R5TW9kYWxPcGVuID0gZmFsc2U7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgdGhpcy5jbG9zZVJlc3BvbnNlQm9keUJ1dHRvbk9wdGlvbnMgPSB7XHJcbiAgICAgICAgICAgIHRleHQ6ICdDbG9zZScsXHJcbiAgICAgICAgICAgIHN0eWxpbmdNb2RlOiAnb3V0bGluZWQnLFxyXG4gICAgICAgICAgICB0eXBlOiAnbm9ybWFsJyxcclxuICAgICAgICAgICAgb25DbGljazogKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5pc1Jlc3BvbnNlQm9keU1vZGFsT3BlbiA9IGZhbHNlO1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgbChrZXk6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMubG9jYWxpemF0aW9uLmluc3RhbnQoa2V5KTtcclxuICAgIH1cclxuXHJcbiAgICBpbml0RGF0YVNvdXJjZSgpIHtcclxuICAgICAgICAvLyBTdG9yZSd1IHNhZGVjZSBiaXIga2VyZSBvbHXFn3R1cnV5b3J1elxyXG4gICAgICAgIHRoaXMuT3ZvbHRJbnRlZ3JhdGlvbkxvZ0RhdGFTb3VyY2UgPSB0aGlzLmhpdE92b2x0SW50ZWdyYXRpb25Mb2dTZXJ2aWNlLkxvYWRPdm9sdEludGVncmF0aW9uTG9ncztcclxuICAgIH1cclxuXHJcbiAgICBzaG93UmVxdWVzdEJvZHkoaWQ6IGFueSk6IHZvaWQge1xyXG5cclxuICAgICAgICB0aGlzLmlzTG9hZGluZ1JlcXVlc3RCb2R5TW9kZWwgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuaXNSZXF1ZXN0Qm9keU1vZGFsT3BlbiA9IGZhbHNlO1xyXG5cclxuICAgICAgICB0aGlzLmhpdE92b2x0SW50ZWdyYXRpb25Mb2dTZXJ2aWNlLmdldFJlcXVlc3RlQm9keSh7IGxvZ0lkOiBpZCB9KVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICAgICAgICAgIG5leHQ6IChkYXRhKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFJlcXVlc3RCb2R5TW9kZWwgPSB0eXBlb2YgZGF0YSA9PT0gJ3N0cmluZycgPyBKU09OLnBhcnNlKGRhdGEpIDogZGF0YTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pc1JlcXVlc3RCb2R5TW9kYWxPcGVuID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChwYXJzZUVycm9yKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudG9hc3Rlci5pbmZvKCdHZWxlbiB2ZXJpIGfDtnN0ZXJpbGVjZWsgZm9ybWF0dGEgZGXEn2lsLicpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBlcnJvcjogKGVycikgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudG9hc3Rlci5pbmZvKCdWZXJpIGFsxLFuxLFya2VuIGhhdGEgb2x1xZ90dS4nKTtcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBjb21wbGV0ZTogKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXNMb2FkaW5nUmVxdWVzdEJvZHlNb2RlbCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgc2hvd1Jlc3BvbnNlQm9keShpZDogYW55KTogdm9pZCB7XHJcbiAgICAgICAgLy8gWcO8a2xlbWUgZHVydW11bnUgYmHFn2xhdCAoZ2VyZWtpcnNlKVxyXG4gICAgICAgIHRoaXMuaXNMb2FkaW5nUmVzcG9uc2VCb2R5TW9kZWwgPSB0cnVlO1xyXG5cclxuICAgICAgICAvLyDDlm5jZSBwb3B1cCfEsSBrYXBhdCAow7ZuY2VraSB0xLFrbGFtYWxhcmRhIGHDp8SxayBrYWxtxLHFnyBvbGFiaWxpcilcclxuICAgICAgICB0aGlzLmlzUmVzcG9uc2VCb2R5TW9kYWxPcGVuID0gZmFsc2U7XHJcblxyXG4gICAgICAgIHRoaXMuaGl0T3ZvbHRJbnRlZ3JhdGlvbkxvZ1NlcnZpY2UuZ2V0UmVzcG9uc2VCb2R5KHsgbG9nSWQ6IGlkIH0pXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgICAgICAgICAgbmV4dDogKGRhdGEpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkUmVzcG9uc2VCb2R5TW9kZWwgPSB0eXBlb2YgZGF0YSA9PT0gJ3N0cmluZycgPyBKU09OLnBhcnNlKGRhdGEpIDogZGF0YTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gVmVyaSBnZWxkaWt0ZW4gc29ucmEgcG9wdXAnxLEgYcOnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaXNSZXNwb25zZUJvZHlNb2RhbE9wZW4gPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKHBhcnNlRXJyb3IpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50b2FzdGVyLmluZm8oJ0dlbGVuIHZlcmkgZ8O2c3RlcmlsZWNlayBmb3JtYXR0YSBkZcSfaWwuJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIGVycm9yOiAoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50b2FzdGVyLmluZm8oJ1ZlcmkgYWzEsW7EsXJrZW4gaGF0YSBvbHXFn3R1LicpO1xyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIGNvbXBsZXRlOiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pc0xvYWRpbmdSZXF1ZXN0Qm9keU1vZGVsID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGRlbGV0ZUFsbCgpIHtcclxuICAgICAgICBjb25zb2xlLmxvZygnZGVsZXRlQWxsJyk7XHJcbiAgICAgICAgdGhpcy5oaXRPdm9sdEludGVncmF0aW9uTG9nU2VydmljZS5kZWxldGVBbGwoKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICAgICAgICAgIG5leHQ6IChyZXN1bHQpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIEdyaWQnaSByZWZyZXNoIGVkaXlvcnV6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZHhHcmlkLmluc3RhbmNlLnJlZnJlc2goKTtcclxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50b2FzdGVyLmVycm9yKCdWZXJpIHnDvGtsZW5pcmtlbiBoYXRhIG9sdcWfdHUuJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBkZWxldGVPdm9sdEludGVncmF0aW9uTG9nKHJlY29yZDogc3RyaW5nKSB7XHJcbiAgICAgICAgaWYgKGNvbmZpcm0odGhpcy5sKCdPdm9sdDo6RGVsZXRlQ29uZmlybWF0aW9uTWVzc2FnZScpKSkge1xyXG4gICAgICAgICAgICB0aGlzLnNlcnZpY2UuZGVsZXRlKHJlY29yZCkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgICAgICAgIC8vIEdyaWQnaSByZWZyZXNoIGVkaXlvcnV6XHJcbiAgICAgICAgICAgICAgICB0aGlzLmR4R3JpZC5pbnN0YW5jZS5yZWZyZXNoKCk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBvbkFjdGlvbkNsaWNrKGU6IGFueSwgaWQ6IGFueSk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IGFjdGlvbiA9IGUuaXRlbURhdGE/LmtleTtcclxuXHJcbiAgICAgICAgaWYgKGFjdGlvbiA9PT0gJ3JlcXVlc3RCb2R5Jykge1xyXG4gICAgICAgICAgICB0aGlzLnNob3dSZXF1ZXN0Qm9keShpZCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChhY3Rpb24gPT09ICdyZXNwb25zZUJvZHknKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2hvd1Jlc3BvbnNlQm9keShpZCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChhY3Rpb24gPT09ICdkZWxldGUnKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZGVsZXRlT3ZvbHRJbnRlZ3JhdGlvbkxvZyhpZCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxufVxyXG4iLCI8YWJwLXBhZ2UgW3RpdGxlXT1cIidPdm9sdDo6T3ZvbHRJbnRlZ3JhdGlvbkxvZ3MnIHwgYWJwTG9jYWxpemF0aW9uXCI+XHJcbiAgICA8YWJwLXBhZ2UtdG9vbGJhci1jb250YWluZXIgY2xhc3M9XCJjb2xcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1sZy1lbmQgcHQtMlwiPlxyXG4gICAgICAgICAgICA8ZHgtYnV0dG9uICphYnBQZXJtaXNzaW9uPVwiJ092b2x0Lk92b2x0SW50ZWdyYXRpb25Mb2dzLkRlbGV0ZUFsbCdcIlxyXG4gICAgICAgICAgICAgICAgdGV4dD1cInt7ICdPdm9sdDo6RGVsZXRlQWxsJyB8IGFicExvY2FsaXphdGlvbiB9fVwiIHR5cGU9XCJkYW5nZXJcIiAob25DbGljayk9XCJkZWxldGVBbGwoKVwiXHJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiaXNkZWxldGVBbGxcIj48L2R4LWJ1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvYWJwLXBhZ2UtdG9vbGJhci1jb250YWluZXI+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmQgbXQtMlwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHlcIj5cclxuICAgICAgICAgICAgPGR4LWRhdGEtZ3JpZCAjZHhHcmlkIFtkYXRhU291cmNlXT1cIk92b2x0SW50ZWdyYXRpb25Mb2dEYXRhU291cmNlXCIgW3Nob3dSb3dMaW5lc109XCJ0cnVlXCIgW3Nob3dCb3JkZXJzXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgW3JlbW90ZU9wZXJhdGlvbnNdPVwidHJ1ZVwiIFtob3ZlclN0YXRlRW5hYmxlZF09XCJ0cnVlXCIgW3JlcGFpbnRDaGFuZ2VzT25seV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgIFthbGxvd0NvbHVtblJlc2l6aW5nXT1cInRydWVcIiBjb2x1bW5SZXNpemluZ01vZGU9XCJ3aWRnZXRcIiBbYWxsb3dDb2x1bW5SZW9yZGVyaW5nXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgW2NvbHVtbkF1dG9XaWR0aF09XCJ0cnVlXCIgW2NvbHVtbkhpZGluZ0VuYWJsZWRdPVwidHJ1ZVwiIGtleUV4cHI9XCJpZFwiPlxyXG4gICAgICAgICAgICAgICAgPGR4by1wYWdpbmcgW3BhZ2VTaXplXT1cIjUwXCI+PC9keG8tcGFnaW5nPlxyXG4gICAgICAgICAgICAgICAgPGR4by1jb2x1bW4tZml4aW5nIFtlbmFibGVkXT1cInRydWVcIj48L2R4by1jb2x1bW4tZml4aW5nPlxyXG4gICAgICAgICAgICAgICAgPGR4by1oZWFkZXItZmlsdGVyIFthbGxvd1NlYXJjaF09XCJ0cnVlXCIgW3Zpc2libGVdPVwidHJ1ZVwiPjwvZHhvLWhlYWRlci1maWx0ZXI+XHJcbiAgICAgICAgICAgICAgICA8ZHhvLWZpbHRlci1yb3cgW3Zpc2libGVdPVwidHJ1ZVwiPjwvZHhvLWZpbHRlci1yb3c+XHJcbiAgICAgICAgICAgICAgICA8ZHhvLWNvbHVtbi1maXhpbmcgW2VuYWJsZWRdPVwidHJ1ZVwiPjwvZHhvLWNvbHVtbi1maXhpbmc+XHJcbiAgICAgICAgICAgICAgICA8ZHhvLWZpbHRlci1idWlsZGVyIFthbGxvd0hpZXJhcmNoaWNhbEZpZWxkc109XCJ0cnVlXCI+PC9keG8tZmlsdGVyLWJ1aWxkZXI+XHJcbiAgICAgICAgICAgICAgICA8ZHhvLWZpbHRlci1wYW5lbCBbdmlzaWJsZV09XCJ0cnVlXCI+PC9keG8tZmlsdGVyLXBhbmVsPlxyXG4gICAgICAgICAgICAgICAgPGR4by1zb3J0aW5nIG1vZGU9XCJzaW5nbGVcIj48L2R4by1zb3J0aW5nPlxyXG4gICAgICAgICAgICAgICAgPGR4by1zY3JvbGxpbmcgbW9kZT1cImhvcml6b250YWxcIiBzaG93U2Nyb2xsYmFyPVwiYWx3YXlzXCI+PC9keG8tc2Nyb2xsaW5nPlxyXG5cclxuICAgICAgICAgICAgICAgIDxkeGktY29sdW1uICpuZ0lmPVwiYWN0aW9uTWVudUl0ZW1zPy5sZW5ndGggPiAwXCIgW2ZpeGVkXT1cInRydWVcIiBhbGlnbm1lbnQ9XCJjZW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgIGNhcHRpb249XCJ7eyAnT3ZvbHQ6OlByb2Nlc3NlcycgfCBhYnBMb2NhbGl6YXRpb24gfX1cIiBkYXRhRmllbGQ9XCJpZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2NlbGxUZW1wbGF0ZV09XCInYWN0aW9uVGVtcGxhdGUnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqZHhUZW1wbGF0ZT1cImxldCBkYXRhIG9mICdhY3Rpb25UZW1wbGF0ZSdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGR4LWRyb3AtZG93bi1idXR0b24gdGV4dD1cInt7ICdPdm9sdDo6U2hvdycgfCBhYnBMb2NhbGl6YXRpb24gfX1cIiBzdHlsaW5nTW9kZT1cIm91dGxpbmVkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXlFeHByPVwidGV4dFwiIGtleUV4cHI9XCJrZXlcIiBbaXRlbXNdPVwiYWN0aW9uTWVudUl0ZW1zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvbkl0ZW1DbGljayk9XCJvbkFjdGlvbkNsaWNrKCRldmVudCwgZGF0YS5kYXRhLmlkKVwiPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKmR4VGVtcGxhdGU9XCJsZXQgaXRlbSBvZiAnaXRlbSdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZHgtYnV0dG9uIFt0ZXh0XT1cIml0ZW0udGV4dFwiIHN0eWxpbmdNb2RlPVwidGV4dFwiIHdpZHRoPVwiMTgwXCIgaGVpZ2h0PVwiNDBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2R4LWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2R4LWRyb3AtZG93bi1idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2R4aS1jb2x1bW4+XHJcblxyXG4gICAgICAgICAgICAgICAgPGR4aS1jb2x1bW4gZGF0YUZpZWxkPVwicGF0aFwiIGNhcHRpb249XCJ7eyAnT3ZvbHQ6OlBhdGgnIHwgYWJwTG9jYWxpemF0aW9uIH19XCI+PC9keGktY29sdW1uPlxyXG5cclxuICAgICAgICAgICAgICAgIDxkeGktY29sdW1uIGRhdGFGaWVsZD1cIm1ldGhvZFwiIGNhcHRpb249XCJ7eyAnT3ZvbHQ6Ok1ldGhvZCcgfCBhYnBMb2NhbGl6YXRpb24gfX1cIj48L2R4aS1jb2x1bW4+XHJcblxyXG4gICAgICAgICAgICAgICAgPCEtLSA8ZHhpLWNvbHVtbiBbZml4ZWRdPVwidHJ1ZVwiIGNhcHRpb249XCJ7eyAnT3ZvbHQ6OlJlcXVlc3RCb2R5JyB8IGFicExvY2FsaXphdGlvbiB9fVwiIGRhdGFGaWVsZD1cImlkXCJcclxuICAgICAgICAgICAgICAgICAgICBbY2VsbFRlbXBsYXRlXT1cIidyZXF1ZXN0Qm9keVRlbXBsYXRlJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKmR4VGVtcGxhdGU9XCJsZXQgZGF0YSBvZiAncmVxdWVzdEJvZHlUZW1wbGF0ZSdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGR4LWJ1dHRvbiB0ZXh0PVwie3sgJ092b2x0OjpTaG93UmVxdWVzdEJvZHknIHwgYWJwTG9jYWxpemF0aW9uIH19XCIgdHlwZT1cImRlZmF1bHRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9uQ2xpY2spPVwic2hvd1JlcXVlc3RCb2R5KGRhdGEuZGF0YS5pZClcIj48L2R4LWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZHhpLWNvbHVtbj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZHhpLWNvbHVtbiBbZml4ZWRdPVwidHJ1ZVwiIGNhcHRpb249XCJ7eyAnT3ZvbHQ6OlJlc3BvbnNlQm9keScgfCBhYnBMb2NhbGl6YXRpb24gfX1cIiBkYXRhRmllbGQ9XCJpZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2NlbGxUZW1wbGF0ZV09XCIncmVzcG9uc2VCb2R5VGVtcGxhdGUnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqZHhUZW1wbGF0ZT1cImxldCBkYXRhIG9mICdyZXNwb25zZUJvZHlUZW1wbGF0ZSdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGR4LWJ1dHRvbiB0ZXh0PVwie3sgJ092b2x0OjpTaG93UmVzcG9uc2VCb2R5JyB8IGFicExvY2FsaXphdGlvbiB9fVwiIHR5cGU9XCJkZWZhdWx0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvbkNsaWNrKT1cInNob3dSZXNwb25zZUJvZHkoZGF0YS5kYXRhLmlkKVwiPjwvZHgtYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9keGktY29sdW1uPiAtLT5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZHhpLWNvbHVtbiBkYXRhRmllbGQ9XCJzdGF0dXNDb2RlXCIgY2FwdGlvbj1cInt7ICdPdm9sdDo6U3RhdHVzQ29kZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cIj48L2R4aS1jb2x1bW4+XHJcblxyXG4gICAgICAgICAgICAgICAgPGR4aS1jb2x1bW4gY2FwdGlvbj1cInt7ICdPdm9sdDo6UmVxdWVzdFRpbWUnIHwgYWJwTG9jYWxpemF0aW9uIH19XCIgZGF0YUZpZWxkPVwicmVxdWVzdFRpbWVcIlxyXG4gICAgICAgICAgICAgICAgICAgIGRhdGFUeXBlPVwiZGF0ZXRpbWVcIiBbZm9ybWF0XT1cIiAnZGQuTU0ueXl5eSBISDptbTpzcycgXCIgc29ydE9yZGVyPVwiZGVzY1wiIHNvcnRJbmRleD1cIjBcIj5cclxuICAgICAgICAgICAgICAgIDwvZHhpLWNvbHVtbj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZHhpLWNvbHVtbiBjYXB0aW9uPVwie3sgJ092b2x0OjpSZXNwb25zZVRpbWUnIHwgYWJwTG9jYWxpemF0aW9uIH19XCIgZGF0YUZpZWxkPVwicmVzcG9uc2VUaW1lXCJcclxuICAgICAgICAgICAgICAgICAgICBkYXRhVHlwZT1cImRhdGV0aW1lXCIgW2Zvcm1hdF09XCIgJ2RkLk1NLnl5eXkgSEg6bW06c3MnIFwiPlxyXG4gICAgICAgICAgICAgICAgPC9keGktY29sdW1uPlxyXG4gICAgICAgICAgICA8L2R4LWRhdGEtZ3JpZD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDwhLS0gUmVxdWVzdCBKU09OIFBvcHVwIC0tPlxyXG4gICAgPGR4LXBvcHVwIFsodmlzaWJsZSldPVwiaXNSZXF1ZXN0Qm9keU1vZGFsT3BlblwiIFtzaG93VGl0bGVdPVwidHJ1ZVwiIFt0aXRsZV09XCInT3ZvbHQ6OlJlcXVlc3RCb2R5JyB8IGFicExvY2FsaXphdGlvblwiXHJcbiAgICAgICAgW2hpZGVPbk91dHNpZGVDbGlja109XCJ0cnVlXCIgW3Nob3dDbG9zZUJ1dHRvbl09XCJmYWxzZVwiPlxyXG4gICAgICAgIDxkeGktdG9vbGJhci1pdGVtIHdpZGdldD1cImR4QnV0dG9uXCIgdG9vbGJhcj1cImJvdHRvbVwiIGxvY2F0aW9uPVwiYWZ0ZXJcIiBbb3B0aW9uc109XCJjbG9zZVJlcXVlc3RCb2R5QnV0dG9uT3B0aW9uc1wiPlxyXG4gICAgICAgIDwvZHhpLXRvb2xiYXItaXRlbT5cclxuICAgICAgICA8ZGl2ICpkeFRlbXBsYXRlPVwibGV0IGRhdGEgb2YgJ2NvbnRlbnQnXCIgY2xhc3M9XCJwLTNcIj5cclxuICAgICAgICAgICAgPGR4LXNjcm9sbC12aWV3PlxyXG4gICAgICAgICAgICAgICAgPHByZSBzdHlsZT1cIndoaXRlLXNwYWNlOiBwcmUtd3JhcDsgd29yZC13cmFwOiBicmVhay13b3JkO1wiPlxyXG4gICAgICAgICAgICB7eyBzZWxlY3RlZFJlcXVlc3RCb2R5TW9kZWwgfCBqc29uIH19XHJcbiAgICAgICAgICA8L3ByZT5cclxuICAgICAgICAgICAgPC9keC1zY3JvbGwtdmlldz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZHgtcG9wdXA+XHJcblxyXG5cclxuICAgIDwhLS0gUmVzcG9uc2UgSlNPTiBQb3B1cCAtLT5cclxuICAgIDxkeC1wb3B1cCBbKHZpc2libGUpXT1cImlzUmVzcG9uc2VCb2R5TW9kYWxPcGVuXCIgW3Nob3dUaXRsZV09XCJ0cnVlXCIgW3RpdGxlXT1cIidPdm9sdDo6UmVzcG9uc2VCb2R5JyB8IGFicExvY2FsaXphdGlvblwiXHJcbiAgICAgICAgW2hpZGVPbk91dHNpZGVDbGlja109XCJ0cnVlXCIgW3Nob3dDbG9zZUJ1dHRvbl09XCJmYWxzZVwiPlxyXG4gICAgICAgIDxkeGktdG9vbGJhci1pdGVtIHdpZGdldD1cImR4QnV0dG9uXCIgdG9vbGJhcj1cImJvdHRvbVwiIGxvY2F0aW9uPVwiYWZ0ZXJcIlxyXG4gICAgICAgICAgICBbb3B0aW9uc109XCJjbG9zZVJlc3BvbnNlQm9keUJ1dHRvbk9wdGlvbnNcIj5cclxuICAgICAgICA8L2R4aS10b29sYmFyLWl0ZW0+XHJcbiAgICAgICAgPGRpdiAqZHhUZW1wbGF0ZT1cImxldCBkYXRhIG9mICdjb250ZW50J1wiIGNsYXNzPVwicC0zXCI+XHJcbiAgICAgICAgICAgIDxkeC1zY3JvbGwtdmlldz5cclxuICAgICAgICAgICAgICAgIDxwcmUgc3R5bGU9XCJ3aGl0ZS1zcGFjZTogcHJlLXdyYXA7IHdvcmQtd3JhcDogYnJlYWstd29yZDtcIj5cclxuICAgICAgICAgICAge3sgc2VsZWN0ZWRSZXNwb25zZUJvZHlNb2RlbCB8IGpzb24gfX1cclxuICAgICAgICAgIDwvcHJlPlxyXG4gICAgICAgICAgICA8L2R4LXNjcm9sbC12aWV3PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9keC1wb3B1cD5cclxuPC9hYnAtcGFnZT4iXX0=
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { AuthGuard, PermissionGuard } from '@abp/ng.core';
|
|
2
|
+
import { NgModule } from '@angular/core';
|
|
3
|
+
import { RouterModule } from '@angular/router';
|
|
4
|
+
import { HitOvoltIntegrationLogComponent } from './components/hit-ovolt-integration-log.component';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@angular/router";
|
|
7
|
+
const routes = [
|
|
8
|
+
{
|
|
9
|
+
path: '',
|
|
10
|
+
component: HitOvoltIntegrationLogComponent,
|
|
11
|
+
canActivate: [AuthGuard, PermissionGuard],
|
|
12
|
+
},
|
|
13
|
+
];
|
|
14
|
+
export class HitOvoltIntegrationLogRoutingModule {
|
|
15
|
+
}
|
|
16
|
+
HitOvoltIntegrationLogRoutingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitOvoltIntegrationLogRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
17
|
+
HitOvoltIntegrationLogRoutingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: HitOvoltIntegrationLogRoutingModule, imports: [i1.RouterModule], exports: [RouterModule] });
|
|
18
|
+
HitOvoltIntegrationLogRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitOvoltIntegrationLogRoutingModule, imports: [RouterModule.forChild(routes), RouterModule] });
|
|
19
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitOvoltIntegrationLogRoutingModule, decorators: [{
|
|
20
|
+
type: NgModule,
|
|
21
|
+
args: [{
|
|
22
|
+
imports: [RouterModule.forChild(routes)],
|
|
23
|
+
exports: [RouterModule],
|
|
24
|
+
}]
|
|
25
|
+
}] });
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGl0LW92b2x0LWludGVncmF0aW9uLWxvZy1yb3V0aW5nLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL292b2x0L3NyYy9saWIvY29tcG9uZW50cy9oaXQtb3ZvbHQtaW50ZWdyYXRpb24tbG9ncy9oaXQtb3ZvbHQtaW50ZWdyYXRpb24tbG9nLXJvdXRpbmcubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzFELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBVSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLGtEQUFrRCxDQUFDOzs7QUFFbkcsTUFBTSxNQUFNLEdBQVc7SUFDckI7UUFDRSxJQUFJLEVBQUUsRUFBRTtRQUNSLFNBQVMsRUFBRSwrQkFBK0I7UUFDMUMsV0FBVyxFQUFFLENBQUMsU0FBUyxFQUFFLGVBQWUsQ0FBQztLQUMxQztDQUNGLENBQUM7QUFNRixNQUFNLE9BQU8sbUNBQW1DOztnSUFBbkMsbUNBQW1DO2lJQUFuQyxtQ0FBbUMsd0NBRnBDLFlBQVk7aUlBRVgsbUNBQW1DLFlBSHBDLFlBQVksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQzdCLFlBQVk7MkZBRVgsbUNBQW1DO2tCQUovQyxRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7b0JBQ3hDLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztpQkFDeEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBdXRoR3VhcmQsIFBlcm1pc3Npb25HdWFyZCB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XHJcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJvdXRlck1vZHVsZSwgUm91dGVzIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgSGl0T3ZvbHRJbnRlZ3JhdGlvbkxvZ0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9oaXQtb3ZvbHQtaW50ZWdyYXRpb24tbG9nLmNvbXBvbmVudCc7XHJcblxyXG5jb25zdCByb3V0ZXM6IFJvdXRlcyA9IFtcclxuICB7XHJcbiAgICBwYXRoOiAnJyxcclxuICAgIGNvbXBvbmVudDogSGl0T3ZvbHRJbnRlZ3JhdGlvbkxvZ0NvbXBvbmVudCxcclxuICAgIGNhbkFjdGl2YXRlOiBbQXV0aEd1YXJkLCBQZXJtaXNzaW9uR3VhcmRdLFxyXG4gIH0sXHJcbl07XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGltcG9ydHM6IFtSb3V0ZXJNb2R1bGUuZm9yQ2hpbGQocm91dGVzKV0sXHJcbiAgZXhwb3J0czogW1JvdXRlck1vZHVsZV0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBIaXRPdm9sdEludGVncmF0aW9uTG9nUm91dGluZ01vZHVsZSB7fVxyXG4iXX0=
|