general-library-union 2.4.77 → 2.4.78

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.
@@ -0,0 +1,86 @@
1
+ import { Injectable, Pipe } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class DashboardPipe {
4
+ GRAFICO = 'G';
5
+ COMPONENTE = 'C';
6
+ TABLA = 'T';
7
+ IFRAME = 'I';
8
+ DESCGRAFICO = 'Gráfico';
9
+ DESCCOMPONENTE = 'Componente';
10
+ DESCTABLA = 'Tabla';
11
+ DESCIFRAME = 'Iframe';
12
+ MAPATIPO = [
13
+ { nombre: this.DESCGRAFICO, codigo: this.GRAFICO },
14
+ { nombre: this.DESCCOMPONENTE, codigo: this.COMPONENTE },
15
+ { nombre: this.DESCTABLA, codigo: this.TABLA },
16
+ { nombre: this.DESCIFRAME, codigo: this.IFRAME }
17
+ ];
18
+ DIAGRAMA_BARRAS = 'B';
19
+ DIAGRAMA_BARRAS_HOR = 'H';
20
+ DIAGRAMA_TORTA = 'T';
21
+ DIAGRAMA_AREA = 'A';
22
+ DIAGRAMA_RADAR = 'R';
23
+ DIAGRAMA_POLAR = 'P';
24
+ DIAGRAMA_DONA = 'D';
25
+ DIAGRAMA_BARRAS_STRING = 'Diagrama de barras Vertifical';
26
+ DIAGRAMA_BARRAS_HOR_STRING = 'Diagrama de barras Horizontal';
27
+ DIAGRAMA_TORTA_STRING = 'Diagrama de Torta';
28
+ DIAGRAMA_AREA_STRING = 'Diagrama de Area';
29
+ DIAGRAMA_RADAR_STRING = 'Diagrama de Radar';
30
+ DIAGRAMA_POLAR_STRING = 'Diagrama de Polar';
31
+ DIAGRAMA_DONA_STRING = 'Diagrama de Dona';
32
+ TIPO_GRAFICO = [
33
+ { codigo: this.DIAGRAMA_BARRAS, nombre: this.DIAGRAMA_BARRAS_STRING },
34
+ { codigo: this.DIAGRAMA_BARRAS_HOR, nombre: this.DIAGRAMA_BARRAS_HOR_STRING },
35
+ { codigo: this.DIAGRAMA_TORTA, nombre: this.DIAGRAMA_TORTA_STRING },
36
+ { codigo: this.DIAGRAMA_AREA, nombre: this.DIAGRAMA_AREA_STRING },
37
+ { codigo: this.DIAGRAMA_POLAR, nombre: this.DIAGRAMA_POLAR_STRING },
38
+ { codigo: this.DIAGRAMA_DONA, nombre: this.DIAGRAMA_DONA_STRING },
39
+ { codigo: this.DIAGRAMA_RADAR, nombre: this.DIAGRAMA_RADAR_STRING },
40
+ ];
41
+ BAR = 'bar';
42
+ PIE = 'pie';
43
+ LINE = 'line';
44
+ POLARAREA = 'polarArea';
45
+ DOUGHNUT = 'doughnut';
46
+ RADAR = 'radar';
47
+ TIPO_GRAFICO_CHART = [
48
+ { codigo: this.DIAGRAMA_BARRAS, codigoChart: this.BAR },
49
+ { codigo: this.DIAGRAMA_BARRAS_HOR, codigoChart: this.BAR },
50
+ { codigo: this.DIAGRAMA_TORTA, codigoChart: this.PIE },
51
+ { codigo: this.DIAGRAMA_AREA, codigoChart: this.LINE },
52
+ { codigo: this.DIAGRAMA_POLAR, codigoChart: this.POLARAREA },
53
+ { codigo: this.DIAGRAMA_DONA, codigoChart: this.DOUGHNUT },
54
+ { codigo: this.DIAGRAMA_RADAR, codigoChart: this.RADAR },
55
+ ];
56
+ transform(value, ...args) {
57
+ let result = value;
58
+ if (args[0] == 'listaTipo') {
59
+ this.MAPATIPO.forEach(data => { if (data.codigo === value) {
60
+ result = data.nombre;
61
+ } });
62
+ }
63
+ if (args[0] == 'listaTipoGrafico') {
64
+ this.TIPO_GRAFICO.forEach(data => { if (data.codigo === value) {
65
+ result = data.nombre;
66
+ } });
67
+ }
68
+ return result;
69
+ }
70
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: DashboardPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
71
+ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.0.4", ngImport: i0, type: DashboardPipe, isStandalone: true, name: "dashboardPipe" });
72
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: DashboardPipe, providedIn: 'root' });
73
+ }
74
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: DashboardPipe, decorators: [{
75
+ type: Pipe,
76
+ args: [{
77
+ name: 'dashboardPipe',
78
+ standalone: true
79
+ }]
80
+ }, {
81
+ type: Injectable,
82
+ args: [{
83
+ providedIn: 'root'
84
+ }]
85
+ }] });
86
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaGJvYXJkLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3dlYmNvbW1vbi9waXBlcy9kYXNoYm9hcmQucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7O0FBVWhFLE1BQU0sT0FBTyxhQUFhO0lBRXpCLE9BQU8sR0FBRyxHQUFHLENBQUM7SUFDZCxVQUFVLEdBQUcsR0FBRyxDQUFDO0lBQ2pCLEtBQUssR0FBRyxHQUFHLENBQUM7SUFDWixNQUFNLEdBQUcsR0FBRyxDQUFDO0lBRWIsV0FBVyxHQUFHLFNBQVMsQ0FBQztJQUN4QixjQUFjLEdBQUcsWUFBWSxDQUFDO0lBQzlCLFNBQVMsR0FBRyxPQUFPLENBQUM7SUFDcEIsVUFBVSxHQUFHLFFBQVEsQ0FBQztJQUV0QixRQUFRLEdBQUc7UUFDVixFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFO1FBQ2xELEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxjQUFjLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUU7UUFDeEQsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRTtRQUM5QyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFO0tBQ2hELENBQUM7SUFFRixlQUFlLEdBQUcsR0FBRyxDQUFDO0lBQ3RCLG1CQUFtQixHQUFHLEdBQUcsQ0FBQztJQUMxQixjQUFjLEdBQUcsR0FBRyxDQUFDO0lBQ3JCLGFBQWEsR0FBRyxHQUFHLENBQUM7SUFDcEIsY0FBYyxHQUFHLEdBQUcsQ0FBQztJQUNyQixjQUFjLEdBQUcsR0FBRyxDQUFDO0lB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QUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxLQUFLLEVBQUUsQ0FBQztnQkFBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQTtZQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUFDLENBQUM7UUFDbEksT0FBTyxNQUFNLENBQUM7SUFDZixDQUFDO3VHQW5FVyxhQUFhO3FHQUFiLGFBQWE7MkdBQWIsYUFBYSxjQUZiLE1BQU07OzJGQUVOLGFBQWE7a0JBUnpCLElBQUk7bUJBQUM7b0JBQ0YsSUFBSSxFQUFFLGVBQWU7b0JBQ3JCLFVBQVUsRUFBRSxJQUFJO2lCQUNuQjs7a0JBRUEsVUFBVTttQkFBQztvQkFDWCxVQUFVLEVBQUUsTUFBTTtpQkFDbEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBQaXBlKHtcbiAgICBuYW1lOiAnZGFzaGJvYXJkUGlwZScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcblxuQEluamVjdGFibGUoe1xuXHRwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgRGFzaGJvYXJkUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuXG5cdEdSQUZJQ08gPSAnRyc7XG5cdENPTVBPTkVOVEUgPSAnQyc7XG5cdFRBQkxBID0gJ1QnO1xuXHRJRlJBTUUgPSAnSSc7XG5cdFxuXHRERVNDR1JBRklDTyA9ICdHcsOhZmljbyc7XG5cdERFU0NDT01QT05FTlRFID0gJ0NvbXBvbmVudGUnO1xuXHRERVNDVEFCTEEgPSAnVGFibGEnO1xuXHRERVNDSUZSQU1FID0gJ0lmcmFtZSc7XG5cblx0TUFQQVRJUE8gPSBbXG5cdFx0eyBub21icmU6IHRoaXMuREVTQ0dSQUZJQ08sIGNvZGlnbzogdGhpcy5HUkFGSUNPIH0sXG5cdFx0eyBub21icmU6IHRoaXMuREVTQ0NPTVBPTkVOVEUsIGNvZGlnbzogdGhpcy5DT01QT05FTlRFIH0sXG5cdFx0eyBub21icmU6IHRoaXMuREVTQ1RBQkxBLCBjb2RpZ286IHRoaXMuVEFCTEEgfSxcblx0XHR7IG5vbWJyZTogdGhpcy5ERVNDSUZSQU1FLCBjb2RpZ286IHRoaXMuSUZSQU1FIH1cblx0XTtcblxuXHRESUFHUkFNQV9CQVJSQVMgPSAnQic7XG5cdERJQUdSQU1BX0JBUlJBU19IT1IgPSAnSCc7XG5cdERJQUdSQU1BX1RPUlRBID0gJ1QnO1xuXHRESUFHUkFNQV9BUkVBID0gJ0EnO1xuXHRESUFHUkFNQV9SQURBUiA9ICdSJztcblx0RElBR1JBTUFfUE9MQVIgPSAnUCc7XG5cdERJQUdSQU1BX0RPTkEgPSAnRCc7XG5cdERJQUdSQU1BX0JBUlJBU19TVFJJTkcgPSAnRGlhZ3JhbWEgZGUgYmFycmFzIFZlcnRpZmljYWwnO1xuXHRESUFHUkFNQV9CQVJSQVNfSE9SX1NUUklORyA9ICdEaWFncmFtYSBkZSBiYXJyYXMgSG9yaXpvbnRhbCc7XG5cdERJQUdSQU1BX1RPUlRBX1NUUklORyA9ICdEaWFncmFtYSBkZSBUb3J0YSc7XG5cdERJQUdSQU1BX0FSRUFfU1RSSU5HID0gJ0RpYWdyYW1hIGRlIEFyZWEnO1xuXHRESUFHUkFNQV9SQURBUl9TVFJJTkcgPSAnRGlhZ3JhbWEgZGUgUmFkYXInO1xuXHRESUFHUkFNQV9QT0xBUl9TVFJJTkcgPSAnRGlhZ3JhbWEgZGUgUG9sYXInO1xuXHRESUFHUkFNQV9ET05BX1NUUklORyA9ICdEaWFncmFtYSBkZSBEb25hJztcblx0XG5cdFRJUE9fR1JBRklDTyA9IFtcblx0XHR7IGNvZGlnbzogdGhpcy5ESUFHUkFNQV9CQVJSQVMsIG5vbWJyZTogdGhpcy5ESUFHUkFNQV9CQVJSQVNfU1RSSU5HfSxcblx0XHR7IGNvZGlnbzogdGhpcy5ESUFHUkFNQV9CQVJSQVNfSE9SLCBub21icmU6IHRoaXMuRElBR1JBTUFfQkFSUkFTX0hPUl9TVFJJTkd9LFxuXHRcdHsgY29kaWdvOiB0aGlzLkRJQUdSQU1BX1RPUlRBLCBub21icmU6IHRoaXMuRElBR1JBTUFfVE9SVEFfU1RSSU5HfSxcblx0XHR7IGNvZGlnbzogdGhpcy5ESUFHUkFNQV9BUkVBLCBub21icmU6IHRoaXMuRElBR1JBTUFfQVJFQV9TVFJJTkd9LFxuXHRcdHsgY29kaWdvOiB0aGlzLkRJQUdSQU1BX1BPTEFSLCBub21icmU6IHRoaXMuRElBR1JBTUFfUE9MQVJfU1RSSU5HfSxcblx0XHR7IGNvZGlnbzogdGhpcy5ESUFHUkFNQV9ET05BLCBub21icmU6IHRoaXMuRElBR1JBTUFfRE9OQV9TVFJJTkd9LFxuXHRcdHsgY29kaWdvOiB0aGlzLkRJQUdSQU1BX1JBREFSLCBub21icmU6IHRoaXMuRElBR1JBTUFfUkFEQVJfU1RSSU5HfSxcblx0XTtcblxuXHRCQVIgPSAnYmFyJztcblx0UElFID0gJ3BpZSc7XG5cdExJTkUgPSAnbGluZSc7XG5cdFBPTEFSQVJFQSA9ICdwb2xhckFyZWEnO1xuXHRET1VHSE5VVCA9ICdkb3VnaG51dCc7XG5cdFJBREFSID0gJ3JhZGFyJztcblxuXHRUSVBPX0dSQUZJQ09fQ0hBUlQgPSBbXG5cdFx0eyBjb2RpZ286IHRoaXMuRElBR1JBTUFfQkFSUkFTLCBjb2RpZ29DaGFydDogdGhpcy5CQVJ9LFxuXHRcdHsgY29kaWdvOiB0aGlzLkRJQUdSQU1BX0JBUlJBU19IT1IsIGNvZGlnb0NoYXJ0OiB0aGlzLkJBUn0sXG5cdFx0eyBjb2RpZ286IHRoaXMuRElBR1JBTUFfVE9SVEEsIGNvZGlnb0NoYXJ0OiB0aGlzLlBJRX0sXG5cdFx0eyBjb2RpZ286IHRoaXMuRElBR1JBTUFfQVJFQSwgY29kaWdvQ2hhcnQ6IHRoaXMuTElORSB9LFxuXHRcdHsgY29kaWdvOiB0aGlzLkRJQUdSQU1BX1BPTEFSLCBjb2RpZ29DaGFydDogdGhpcy5QT0xBUkFSRUF9LFxuXHRcdHsgY29kaWdvOiB0aGlzLkRJQUdSQU1BX0RPTkEsIGNvZGlnb0NoYXJ0OiB0aGlzLkRPVUdITlVUfSxcblx0XHR7IGNvZGlnbzogdGhpcy5ESUFHUkFNQV9SQURBUiwgY29kaWdvQ2hhcnQ6IHRoaXMuUkFEQVJ9LFxuXHRdO1xuXG5cdHRyYW5zZm9ybSh2YWx1ZTogYW55LCAuLi5hcmdzOiBhbnkpOiBhbnkge1xuXHRcdGxldCByZXN1bHQgPSB2YWx1ZTtcblxuXHRcdGlmIChhcmdzWzBdID09ICdsaXN0YVRpcG8nKSB7IHRoaXMuTUFQQVRJUE8uZm9yRWFjaChkYXRhID0+IHsgaWYgKGRhdGEuY29kaWdvID09PSB2YWx1ZSkgeyByZXN1bHQgPSBkYXRhLm5vbWJyZSB9IH0pOyB9XG5cdFx0aWYgKGFyZ3NbMF0gPT0gJ2xpc3RhVGlwb0dyYWZpY28nKSB7IHRoaXMuVElQT19HUkFGSUNPLmZvckVhY2goZGF0YSA9PiB7IGlmIChkYXRhLmNvZGlnbyA9PT0gdmFsdWUpIHsgcmVzdWx0ID0gZGF0YS5ub21icmUgfSB9KTsgfVxuXHRcdHJldHVybiByZXN1bHQ7XG5cdH1cbn0iXX0=
@@ -141,6 +141,11 @@ export class ReporteFuentePipe {
141
141
  { codigo: this.IMAGEN, nombre: this.IMAGEN_DESC },
142
142
  { codigo: 'G', nombre: 'Grupo' },
143
143
  ];
144
+ RECURSO_GRAFICA = [
145
+ { codigo: this.SERIE, nombre: this.SERIE_STRING },
146
+ { codigo: this.CATEGORIA, nombre: this.CATEGORIA_STRING },
147
+ { codigo: this.VALOR, nombre: this.VALOR_STRING },
148
+ ];
144
149
  /* ======================================
145
150
  * Formatos de generacion de reportes
146
151
  * ====================================== */
@@ -293,4 +298,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImpor
293
298
  providedIn: 'root'
294
299
  }]
295
300
  }] });
296
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0ZS1mdWVudGUucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvd2ViY29tbW9uL3BpcGVzL3JlcG9ydGUtZnVlbnRlLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDOztBQVVoRSxNQUFNLE9BQU8saUJBQWlCO0lBRTdCLEdBQUcsR0FBRyxHQUFHLENBQUM7SUFDVixNQUFNLEdBQUcsR0FBRyxDQUFDO0lBQ2IsSUFBSSxHQUFHLEdBQUcsQ0FBQztJQUVYLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDakIsV0FBVyxHQUFHLFFBQVEsQ0FBQztJQUN2QixTQUFTLEdBQUcsTUFBTSxDQUFDO0lBRW5CLFVBQVUsR0FBRztRQUNaLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUU7UUFDM0MsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRTtRQUNqRCxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFO0tBQzdDLENBQUE7SUFFRCxzQkFBc0IsR0FBRztRQUN4QixFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFO0tBQ2pELENBQUE7SUFFRCxzQkFBc0IsR0FBRyxHQUFHLENBQUM7SUFDN0IsYUFBYSxHQUFHLEdBQUcsQ0FBQztJQUNwQixnQkFBZ0IsR0FBRyxHQUFHLENBQUM7SUFFdkIsYUFBYSxHQUFHO1FBQ2YsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLHNCQUFzQixFQUFFLE1BQU0sRUFBRSxzQ0FBc0MsRUFBRTtRQUN2RixFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsYUFBYSxFQUFFLE1BQU0sRUFBRSwrQkFBK0IsRUFBRTtRQUN2RSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLHdDQUF3QyxFQUFFO0tBQ25GLENBQUE7SUFFRCxXQUFXLEdBQUcsR0FBRyxDQUFDO0lBQ2xCLGVBQWUsR0FBRyxHQUFHLENBQUM7SUFDdEIsVUFBVSxHQUFHLEdBQUcsQ0FBQztJQUNqQixVQUFVLEdBQUcsR0FBRyxDQUFDO0lBQ2pCLGdCQUFnQixHQUFHLEdBQUcsQ0FBQztJQUN2QixpQkFBaUIsR0FBRyxHQUFHLENBQUM7SUFFeEIsVUFBVSxHQUFHO1FBQ1osRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFO1FBQzVDLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsTUFBTSxFQUFFLGVBQWUsRUFBRTtRQUNyRCxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsZUFBZSxFQUFFLE1BQU0sRUFBRSxnQkFBZ0IsRUFBRTtRQUMxRCxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUU7UUFDNUMsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxhQUFhLEVBQUU7UUFDeEQsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQUU7S0FDMUQsQ0FBQTtJQUVELFlBQVksR0FBRyxHQUFHLENBQUM7SUFDbkIsVUFBVSxHQUFHLEdBQUcsQ0FBQztJQUNqQixhQUFhLEdBQUc7UUFDZixFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsWUFBWSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUU7UUFDaEQsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFO0tBQzVDLENBQUE7SUFFRCxrQkFBa0IsR0FBRztRQUNwQixFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUU7UUFDNUMsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFO1FBQzlDLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRTtLQUM1QyxDQUFBO0lBRUQsUUFBUSxHQUFHLElBQUksQ0FBQztJQUNoQixnQkFBZ0IsR0FBRyxJQUFJLENBQUM7SUFDeEIsYUFBYSxHQUFHLElBQUksQ0FBQztJQUNyQixjQUFjLEdBQUcsSUFBSSxDQUFDO0lBQ3RCLGtCQUFrQixHQUFHLElBQUksQ0FBQztJQUMxQixrQkFBa0IsR0FBRyxJQUFJLENBQUM7SUFDMUIsVUFBVSxHQUFHLElBQUksQ0FBQztJQUNsQixlQUFlLEdBQUcsSUFBSSxDQUFDO0lBQ3ZCLHNCQUFzQixHQUFHLElBQUksQ0FBQztJQUU5QixXQUFXLEdBQUcsVUFBVSxDQUFDO0lBQ3pCLG1CQUFtQixHQUFHLG1CQUFtQixDQUFDO0lBQzFDLGdCQUFnQixHQUFHLE9BQU8sQ0FBQztJQUMzQixpQkFBaUIsR0FBRyxRQUFRLENBQUM7SUFDN0IscUJBQXFCLEdBQUcsYUFBYSxDQUFDO0lBQ3RDLGFBQWEsR0FBRyxXQUFXLENBQUM7SUFDNUIsa0JBQWtCLEdBQUcseUJBQXlCLENBQUM7SUFDL0MseUJBQXlCLEdBQUcsK0JBQStCLENBQUM7SUFFNUQsZ0JBQWdCLEdBQUc7UUFDbEIsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRTtRQUNuRCxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxtQkFBbUIsRUFBRTtRQUNuRSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsYUFBYSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7UUFDN0QsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLGNBQWMsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixFQUFFO1FBQy9ELEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLHFCQUFxQixFQUFFO1FBQ3ZFLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxhQUFhLEVBQUU7UUFDdkQsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLGVBQWUsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixFQUFFO1FBQ2pFLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLHlCQUF5QixFQUFFO0tBQy9FLENBQUE7SUFFRCxvQkFBb0IsR0FBRztRQUN0QixFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFO1FBQ25ELEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLG1CQUFtQixFQUFFO1FBQ25FLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxhQUFhLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtLQUM3RCxDQUFBO0lBRUQsZUFBZSxHQUFHLEdBQUcsQ0FBQztJQUN0QixtQkFBbUIsR0FBRyxHQUFHLENBQUM7SUFDMUIsY0FBYyxHQUFHLEdBQUcsQ0FBQztJQUNyQixhQUFhLEdBQUcsR0FBRyxDQUFDO0lBQ3BCLGNBQWMsR0FBRyxHQUFHLENBQUM7SUFDckIsY0FBYyxHQUFHLEdBQUcsQ0FBQztJQUNyQixhQUFhLEdBQUcsR0FBRyxDQUFDO0lBQ3BCLHNCQUFzQixHQUFHLCtCQUErQixDQUFDO0lBQ3pELDBCQUEwQixHQUFHLCtCQUErQixDQUFDO0lBQzdELHFCQUFxQixHQUFHLG1CQUFtQixDQUFDO0lBQzVDLG9CQUFvQixHQUFHLGtCQUFrQixDQUFDO0lBQzFDLHFCQUFxQixHQUFHLG1CQUFtQixDQUFDO0lBQzVDLHFCQUFxQixHQUFHLG1CQUFtQixDQUFDO0lBQzVDLG9CQUFvQixHQUFHLGtCQUFrQixDQUFDO0lBRTFDLGtCQUFrQixHQUFHO1FBQ3BCLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxlQUFlLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxzQkFBc0IsRUFBRTtRQUNyRSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsbUJBQW1CLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQywwQkFBMEIsRUFBRTtRQUM3RSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsY0FBYyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMscUJBQXFCLEVBQUU7UUFDbkUsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLGFBQWEsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLG9CQUFvQixFQUFFO1FBQ2pFLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxjQUFjLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxxQkFBcUIsRUFBRTtRQUNuRSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsYUFBYSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsb0JBQW9CLEVBQUU7UUFDakUsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLGNBQWMsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLHFCQUFxQixFQUFFO0tBQ25FLENBQUE7SUFFRCxjQUFjLEdBQUcsR0FBRyxDQUFDO0lBQ3JCLG1CQUFtQixHQUFHLEdBQUcsQ0FBQztJQUMxQixtQkFBbUIsR0FBRyxHQUFHLENBQUM7SUFDMUIseUJBQXlCLEdBQUcsR0FBRyxDQUFDO0lBQ2hDLGdDQUFnQyxHQUFHLEdBQUcsQ0FBQztJQUN2Qyw4QkFBOEIsR0FBRyxHQUFHLENBQUM7SUFDckMscUJBQXFCLEdBQUcsbUJBQW1CLENBQUM7SUFDNUMsMEJBQTBCLEdBQUcsd0JBQXdCLENBQUM7SUFDdEQsMEJBQTBCLEdBQUcsd0JBQXdCLENBQUM7SUFDdEQsZ0NBQWdDLEdBQUcsK0JBQStCLENBQUM7SUFDbkUsNEJBQTRCLEdBQUcsMENBQTBDLENBQUM7SUFDMUUscUNBQXFDLEdBQUcsd0NBQXdDLENBQUM7SUFFakYsc0JBQXNCLEdBQUc7UUFDeEIsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLGVBQWUsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLHNCQUFzQixFQUFFO1FBQ3JFLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxjQUFjLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxxQkFBcUIsRUFBRTtRQUNuRSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsYUFBYSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsb0JBQW9CLEVBQUU7UUFDakUsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLGNBQWMsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLHFCQUFxQixFQUFFO1FBQ25FLGtIQUFrSDtRQUNsSCxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsbUJBQW1CLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQywwQkFBMEIsRUFBRTtRQUM3RSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMseUJBQXlCLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxnQ0FBZ0MsRUFBRTtRQUN6RixFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsZ0NBQWdDLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyw0QkFBNEIsRUFBRTtRQUM1RixFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsOEJBQThCLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxxQ0FBcUMsRUFBRTtLQUNuRyxDQUFBO0lBRUQsS0FBSyxHQUFHLEdBQUcsQ0FBQztJQUNaLFNBQVMsR0FBRyxHQUFHLENBQUM7SUFDaEIsS0FBSyxHQUFHLEdBQUcsQ0FBQztJQUNaLE1BQU0sR0FBRyxHQUFHLENBQUM7SUFDYixZQUFZLEdBQUcsT0FBTyxDQUFDO0lBQ3ZCLGdCQUFnQixHQUFHLFdBQVcsQ0FBQztJQUMvQixZQUFZLEdBQUcsT0FBTyxDQUFDO0lBQ3ZCLFdBQVcsR0FBRyxRQUFRLENBQUM7SUFHdkIscUJBQXFCLEdBQUc7UUFDdkIsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBRTtRQUNqRCxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7UUFDekQsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBRTtRQUNqRCxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFO1FBQ2pELEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFO0tBQ2hDLENBQUE7SUFFRDs7Z0RBRTRDO0lBQzVDLHlCQUF5QixHQUFHLEdBQUcsQ0FBQztJQUNoQyw4QkFBOEIsR0FBRyxpQkFBaUIsQ0FBQztJQUVuRCxxQkFBcUIsR0FBRyxHQUFHLENBQUM7SUFDNUIsMEJBQTBCLEdBQUcsYUFBYSxDQUFDO0lBRTNDLGdCQUFnQixHQUFHLEdBQUcsQ0FBQztJQUN2QixxQkFBcUIsR0FBRyxPQUFPLENBQUM7SUFFaEMsY0FBYyxHQUFHLEdBQUcsQ0FBQztJQUNyQixtQkFBbUIsR0FBRyxhQUFhLENBQUM7SUFFcEMsb0JBQW9CLEdBQUcsR0FBRyxDQUFDO0lBQzNCLHlCQUF5QixHQUFHLFdBQVcsQ0FBQztJQUV4Qyx1QkFBdUIsR0FBRyxHQUFHLENBQUM7SUFDOUIsNEJBQTRCLEdBQUcsZUFBZSxDQUFDO0lBRS9DLGdCQUFnQixHQUFHLEdBQUcsQ0FBQztJQUN2QixxQkFBcUIsR0FBRyxPQUFPLENBQUM7SUFFaEMscUJBQXFCLEdBQUcsR0FBRyxDQUFDO0lBQzVCLDBCQUEwQixHQUFHLFlBQVksQ0FBQztJQUUxQzs7K0NBRTJDO0lBQzNDLG1CQUFtQixHQUFHLEdBQUcsQ0FBQztJQUMxQix3QkFBd0IsR0FBRyxXQUFXLENBQUM7SUFFdkMsc0JBQXNCLEdBQUcsR0FBRyxDQUFDO0lBQzdCLDJCQUEyQixHQUFHLGVBQWUsQ0FBQztJQUU5QyxxQkFBcUIsR0FBRyxHQUFHLENBQUM7SUFDNUIsMEJBQTBCLEdBQUcsY0FBYyxDQUFDO0lBRTVDLHdCQUF3QixHQUFHLElBQUksQ0FBQztJQUNoQyw2QkFBNkIsR0FBRywwQkFBMEIsQ0FBQztJQUUzRCxrQkFBa0IsR0FBRyxHQUFHLENBQUM7SUFDekIsdUJBQXVCLEdBQUcsVUFBVSxDQUFDO0lBRXJDLHlCQUF5QixHQUFHLEdBQUcsQ0FBQztJQUNoQyw4QkFBOEIsR0FBRyxpQkFBaUIsQ0FBQztJQUVuRCw0QkFBNEIsR0FBRyxZQUFZLENBQUM7SUFDNUMsd0JBQXdCLEdBQUcsUUFBUSxDQUFDO0lBQ3BDLDBCQUEwQixHQUFHLFVBQVUsQ0FBQztJQUV4Qyx1QkFBdUIsR0FBRyxPQUFPLENBQUM7SUFDbEMscUJBQXFCLEdBQUcsS0FBSyxDQUFDO0lBRTlCLHNDQUFzQyxHQUFHLFFBQVEsQ0FBQztJQUVsRCxzQkFBc0IsR0FBRyxHQUFHLENBQUM7SUFDN0IsMkJBQTJCLEdBQUcsZUFBZSxDQUFDO0lBRTlDLGtCQUFrQixHQUFHO1FBQ3BCLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFO1FBQ2xDLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO1FBQ2hDLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO1FBQ2hDLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO1FBQ2hDLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO1FBQ2hDLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO0tBQ2hDLENBQUE7SUFFRCxjQUFjLEdBQUcsR0FBRyxDQUFDO0lBQ3JCLFVBQVUsR0FBRyxHQUFHLENBQUM7SUFFakIsa0JBQWtCLEdBQUcsV0FBVyxDQUFDO0lBQ2pDLGNBQWMsR0FBRyxPQUFPLENBQUM7SUFFekIsS0FBSyxHQUFHO1FBQ1AsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLGNBQWMsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixFQUFFO1FBQ2hFLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxjQUFjLEVBQUU7S0FDeEQsQ0FBQTtJQUVELFNBQVMsR0FBRyxHQUFHLENBQUM7SUFDaEIsT0FBTyxHQUFHLEdBQUcsQ0FBQztJQUNkLE1BQU0sR0FBRyxHQUFHLENBQUM7SUFDYixXQUFXLEdBQUcsR0FBRyxDQUFDO0lBRWxCLGNBQWMsR0FBRyxXQUFXLENBQUM7SUFDN0IsWUFBWSxHQUFHLFNBQVMsQ0FBQztJQUN6QixXQUFXLEdBQUcsUUFBUSxDQUFDO0lBQ3ZCLGdCQUFnQixHQUFHLGFBQWEsQ0FBQztJQUVqQyxnQkFBZ0IsR0FBRztRQUNsQixFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsY0FBYyxFQUFFO1FBQ3ZELEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxZQUFZLEVBQUU7UUFDbkQsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRTtRQUNqRCxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7S0FDM0QsQ0FBQTtJQUVELHVCQUF1QjtJQUN2QixpQkFBaUIsR0FBRyxHQUFHLENBQUM7SUFDeEIscUJBQXFCLEdBQUcsR0FBRyxDQUFDO0lBRTVCLHNCQUFzQixHQUFHLE1BQU0sQ0FBQztJQUNoQywwQkFBMEIsR0FBRyxTQUFTLENBQUM7SUFFdkMsbUJBQW1CLEdBQUcsR0FBRyxDQUFDO0lBQzFCLG1CQUFtQixHQUFHO1FBQ3JCLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLHNCQUFzQixFQUFFO1FBQ3ZFLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLDBCQUEwQixFQUFFO0tBQy9FLENBQUE7SUFFRCxTQUFTLENBQUMsS0FBVSxFQUFFLEdBQUcsSUFBUztRQUNqQyxJQUFJLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksV0FBVyxFQUFFLENBQUM7WUFBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxLQUFLLEVBQUUsQ0FBQztnQkFBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQTtZQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUFDLENBQUM7UUFDekgsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksY0FBYyxFQUFFLENBQUM7WUFBQyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxLQUFLLEVBQUUsQ0FBQztnQkFBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQTtZQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUFDLENBQUM7UUFDL0gsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksZUFBZSxFQUFFLENBQUM7WUFBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxLQUFLLEVBQUUsQ0FBQztnQkFBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQTtZQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUFDLENBQUM7UUFDN0gsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksc0JBQXNCLEVBQUUsQ0FBQztZQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssS0FBSyxFQUFFLENBQUM7Z0JBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUE7WUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFBQyxDQUFDO1FBQzVJLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLHlCQUF5QixFQUFFLENBQUM7WUFBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLEtBQUssRUFBRSxDQUFDO2dCQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFBO1lBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQUMsQ0FBQztRQUM3SSxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxrQkFBa0IsRUFBRSxDQUFDO1lBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxLQUFLLEVBQUUsQ0FBQztnQkFBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQTtZQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUFDLENBQUM7UUFDeEksSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUkscUJBQXFCLEVBQUUsQ0FBQztZQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssS0FBSyxFQUFFLENBQUM7Z0JBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUE7WUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFBQyxDQUFDO1FBQy9JLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLHFCQUFxQixFQUFFLENBQUM7WUFBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLEtBQUssRUFBRSxDQUFDO2dCQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFBO1lBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQUMsQ0FBQztRQUM5SSxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxpQkFBaUIsRUFBRSxDQUFDO1lBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxLQUFLLEVBQUUsQ0FBQztnQkFBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQTtZQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUFDLENBQUM7UUFDckksSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksMEJBQTBCLEVBQUUsQ0FBQztZQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssS0FBSyxFQUFFLENBQUM7Z0JBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUE7WUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFBQyxDQUFDO1FBRWpKLE9BQU8sTUFBTSxDQUFDO0lBQ2YsQ0FBQzt1R0EvUlcsaUJBQWlCO3FHQUFqQixpQkFBaUI7MkdBQWpCLGlCQUFpQixjQUZqQixNQUFNOzsyRkFFTixpQkFBaUI7a0JBUjdCLElBQUk7bUJBQUM7b0JBQ0wsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLElBQUksRUFBRSxtQkFBbUI7aUJBQ3pCOztrQkFFQSxVQUFVO21CQUFDO29CQUNYLFVBQVUsRUFBRSxNQUFNO2lCQUNsQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQFBpcGUoe1xuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHRuYW1lOiAncmVwb3J0ZUZ1ZW50ZVBpcGUnXG59KVxuXG5ASW5qZWN0YWJsZSh7XG5cdHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBSZXBvcnRlRnVlbnRlUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuXG5cdFNRTCA9ICdTJztcblx0RlVFTlRFID0gJ0YnO1xuXHRGSUpPID0gJ0knO1xuXG5cdFNRTF9ERVNDID0gJ1NRTCc7XG5cdEZVRU5URV9ERVNDID0gJ0Z1ZW50ZSc7XG5cdEZJSk9fREVTQyA9ICdGaWpvJztcblxuXHRMSVNUQV9USVBPID0gW1xuXHRcdHsgY29kaWdvOiB0aGlzLlNRTCwgbm9tYnJlOiB0aGlzLlNRTF9ERVNDIH0sXG5cdFx0eyBjb2RpZ286IHRoaXMuRlVFTlRFLCBub21icmU6IHRoaXMuRlVFTlRFX0RFU0MgfSxcblx0XHR7IGNvZGlnbzogdGhpcy5GSUpPLCBub21icmU6IHRoaXMuRklKT19ERVNDIH1cblx0XVxuXG5cdExJU1RBX1RJUE9fU0lOX1BFUk1JU08gPSBbXG5cdFx0eyBjb2RpZ286IHRoaXMuRlVFTlRFLCBub21icmU6IHRoaXMuRlVFTlRFX0RFU0MgfSxcblx0XVxuXG5cdE1PTUVOVE9TX1NFR1VORE9fUExBTk8gPSAnUyc7XG5cdE1PTUVOVE9TX0hJTE8gPSAnSCc7XG5cdE1PTUVOVE9TX1NJTkhJTE8gPSAnRCc7XG5cblx0TElTVEFfTU9NRU5UTyA9IFtcblx0XHR7IGNvZGlnbzogdGhpcy5NT01FTlRPU19TRUdVTkRPX1BMQU5PLCBub21icmU6ICdTZSBwZXJtaXRlIGVqZWN1dGFyIGVuIHNlZ3VuZG8gcGxhbm8nIH0sXG5cdFx0eyBjb2RpZ286IHRoaXMuTU9NRU5UT1NfSElMTywgbm9tYnJlOiAnRWplY3V0YXIgc2luIGxpbWl0ZSBkZSB0aWVtcG8nIH0sXG5cdFx0eyBjb2RpZ286IHRoaXMuTU9NRU5UT1NfU0lOSElMTywgbm9tYnJlOiAnRWplY3V0YXIgbGltaXRlIGRlIHRpZW1wbyBkZSBsYSBzZXNpb24nIH1cblx0XVxuXG5cdFRJUE9fTlVNRVJPID0gJ04nO1xuXHRUSVBPX0JJR0RFQ0lNQUwgPSAnQic7XG5cdFRJUE9fRkVDSEEgPSAnRic7XG5cdFRJUE9fVEVYVE8gPSAnVCc7XG5cdFRJUE9fVEVYVE9fU0VSSUUgPSAnRSc7XG5cdFRJUE9fTlVNRVJPX1NFUklFID0gJ1UnO1xuXG5cdFRJUE9TX0RBVE8gPSBbXG5cdFx0eyBjb2RpZ286IHRoaXMuVElQT19GRUNIQSwgbm9tYnJlOiAnRmVjaGEnIH0sXG5cdFx0eyBjb2RpZ286IHRoaXMuVElQT19OVU1FUk8sIG5vbWJyZTogJ051bWVybyBFbnRlcm8nIH0sXG5cdFx0eyBjb2RpZ286IHRoaXMuVElQT19CSUdERUNJTUFMLCBub21icmU6ICdOdW1lcm8gRGVjaW1hbCcgfSxcblx0XHR7IGNvZGlnbzogdGhpcy5USVBPX1RFWFRPLCBub21icmU6ICdUZXh0bycgfSxcblx0XHR7IGNvZGlnbzogdGhpcy5USVBPX1RFWFRPX1NFUklFLCBub21icmU6ICdTZXJpZSBUZXh0bycgfSxcblx0XHR7IGNvZGlnbzogdGhpcy5USVBPX05VTUVST19TRVJJRSwgbm9tYnJlOiAnU2VyaWUgTnVtZXJvJyB9LFxuXHRdXG5cblx0VElQT19ESVJFQ1RPID0gJ0QnO1xuXHRUSVBPX0xJU1RBID0gJ0wnO1xuXHRUSVBPU19FTlRSQURBID0gW1xuXHRcdHsgY29kaWdvOiB0aGlzLlRJUE9fRElSRUNUTywgbm9tYnJlOiAnRGlyZWN0bycgfSxcblx0XHR7IGNvZGlnbzogdGhpcy5USVBPX0xJU1RBLCBub21icmU6ICdMaXN0YScgfSxcblx0XVxuXG5cdFRJUE9TX0RBVE9fQ09MVU1OQSA9IFtcblx0XHR7IGNvZGlnbzogdGhpcy5USVBPX0ZFQ0hBLCBub21icmU6ICdGZWNoYScgfSxcblx0XHR7IGNvZGlnbzogdGhpcy5USVBPX05VTUVSTywgbm9tYnJlOiAnTnVtZXJvJyB9LFxuXHRcdHsgY29kaWdvOiB0aGlzLlRJUE9fVEVYVE8sIG5vbWJyZTogJ1RleHRvJyB9LFxuXHRdXG5cblx0TUFSQ0FET1IgPSAnTUEnO1xuXHRNQVJDQURPUlJFR0lTVFJPID0gJ01SJztcblx0TUFSQ0FET1JUQUJMQSA9ICdUQic7XG5cdE1BUkNBRE9SSU1BR0VOID0gJ0lNJztcblx0TUFSQ0FET1JJTUFHRU5GSUpBID0gJ0lGJztcblx0TUFSQ0FET1JURVhUT1BMQU5PID0gJ1RQJztcblx0TUFSQ0FET1JRUiA9ICdRUic7XG5cdE1BUkNBRE9SQkFSQ09ERSA9ICdCQyc7XG5cdE1BUkNBRE9SQkFSQ09ERUdTMV8xMjggPSAnRzEnO1xuXG5cdERFU01BUkNBRE9SID0gJ01hcmNhZG9yJztcblx0REVTTUFSQ0FET1JSRUdJU1RSTyA9ICdNYXJjYWRvciBSZWdpc3Rybyc7XG5cdERFU01BUkNBRE9SVEFCTEEgPSAnVGFibGEnO1xuXHRERVNNQVJDQURPUklNQUdFTiA9ICdJbWFnZW4nO1xuXHRERVNNQVJDQURPUklNQUdFTkZJSkEgPSAnSW1hZ2VuIEZpamEnO1xuXHRERVNNQVJDQURPUlFSID0gJ0ltYWdlbiBRUic7XG5cdERFU01BUkNBRE9SQkFSQ09ERSA9ICdJbWFnZW4gQ29kaWdvIEJhcnJhIDEyOCc7XG5cdERFU01BUkNBRE9SQkFSQ09ERUdTMV8xMjggPSAnSW1hZ2VuIENvZGlnbyBCYXJyYSBHUzEgLSAxMjgnO1xuXG5cdExJU1RBX01BUkNBRE9SRVMgPSBbXG5cdFx0eyBjb2RpZ286IHRoaXMuTUFSQ0FET1IsIG5vbWJyZTogdGhpcy5ERVNNQVJDQURPUiB9LFxuXHRcdHsgY29kaWdvOiB0aGlzLk1BUkNBRE9SUkVHSVNUUk8sIG5vbWJyZTogdGhpcy5ERVNNQVJDQURPUlJFR0lTVFJPIH0sXG5cdFx0eyBjb2RpZ286IHRoaXMuTUFSQ0FET1JUQUJMQSwgbm9tYnJlOiB0aGlzLkRFU01BUkNBRE9SVEFCTEEgfSxcblx0XHR7IGNvZGlnbzogdGhpcy5NQVJDQURPUklNQUdFTiwgbm9tYnJlOiB0aGlzLkRFU01BUkNBRE9SSU1BR0VOIH0sXG5cdFx0eyBjb2RpZ286IHRoaXMuTUFSQ0FET1JJTUFHRU5GSUpBLCBub21icmU6IHRoaXMuREVTTUFSQ0FET1JJTUFHRU5GSUpBIH0sXG5cdFx0eyBjb2RpZ286IHRoaXMuTUFSQ0FET1JRUiwgbm9tYnJlOiB0aGlzLkRFU01BUkNBRE9SUVIgfSxcblx0XHR7IGNvZGlnbzogdGhpcy5NQVJDQURPUkJBUkNPREUsIG5vbWJyZTogdGhpcy5ERVNNQVJDQURPUkJBUkNPREUgfSxcblx0XHR7IGNvZGlnbzogdGhpcy5NQVJDQURPUkJBUkNPREVHUzFfMTI4LCBub21icmU6IHRoaXMuREVTTUFSQ0FET1JCQVJDT0RFR1MxXzEyOCB9LFxuXHRdXG5cblx0TElTVEFfTUFSQ0FET1JFU19YTUwgPSBbXG5cdFx0eyBjb2RpZ286IHRoaXMuTUFSQ0FET1IsIG5vbWJyZTogdGhpcy5ERVNNQVJDQURPUiB9LFxuXHRcdHsgY29kaWdvOiB0aGlzLk1BUkNBRE9SUkVHSVNUUk8sIG5vbWJyZTogdGhpcy5ERVNNQVJDQURPUlJFR0lTVFJPIH0sXG5cdFx0eyBjb2RpZ286IHRoaXMuTUFSQ0FET1JUQUJMQSwgbm9tYnJlOiB0aGlzLkRFU01BUkNBRE9SVEFCTEEgfSxcblx0XVxuXG5cdERJQUdSQU1BX0JBUlJBUyA9ICdCJztcblx0RElBR1JBTUFfQkFSUkFTX0hPUiA9ICdIJztcblx0RElBR1JBTUFfVE9SVEEgPSAnVCc7XG5cdERJQUdSQU1BX0FSRUEgPSAnQSc7XG5cdERJQUdSQU1BX1JBREFSID0gJ1InO1xuXHRESUFHUkFNQV9QT0xBUiA9ICdQJztcblx0RElBR1JBTUFfRE9OQSA9ICdEJztcblx0RElBR1JBTUFfQkFSUkFTX1NUUklORyA9ICdEaWFncmFtYSBkZSBiYXJyYXMgVmVydGlmaWNhbCc7XG5cdERJQUdSQU1BX0JBUlJBU19IT1JfU1RSSU5HID0gJ0RpYWdyYW1hIGRlIGJhcnJhcyBIb3Jpem9udGFsJztcblx0RElBR1JBTUFfVE9SVEFfU1RSSU5HID0gJ0RpYWdyYW1hIGRlIFRvcnRhJztcblx0RElBR1JBTUFfQVJFQV9TVFJJTkcgPSAnRGlhZ3JhbWEgZGUgQXJlYSc7XG5cdERJQUdSQU1BX1JBREFSX1NUUklORyA9ICdEaWFncmFtYSBkZSBSYWRhcic7XG5cdERJQUdSQU1BX1BPTEFSX1NUUklORyA9ICdEaWFncmFtYSBkZSBQb2xhcic7XG5cdERJQUdSQU1BX0RPTkFfU1RSSU5HID0gJ0RpYWdyYW1hIGRlIERvbmEnO1xuXG5cdExJU1RBX1RJUE9fR1JBRklDTyA9IFtcblx0XHR7IGNvZGlnbzogdGhpcy5ESUFHUkFNQV9CQVJSQVMsIG5vbWJyZTogdGhpcy5ESUFHUkFNQV9CQVJSQVNfU1RSSU5HIH0sXG5cdFx0eyBjb2RpZ286IHRoaXMuRElBR1JBTUFfQkFSUkFTX0hPUiwgbm9tYnJlOiB0aGlzLkRJQUdSQU1BX0JBUlJBU19IT1JfU1RSSU5HIH0sXG5cdFx0eyBjb2RpZ286IHRoaXMuRElBR1JBTUFfVE9SVEEsIG5vbWJyZTogdGhpcy5ESUFHUkFNQV9UT1JUQV9TVFJJTkcgfSxcblx0XHR7IGNvZGlnbzogdGhpcy5ESUFHUkFNQV9BUkVBLCBub21icmU6IHRoaXMuRElBR1JBTUFfQVJFQV9TVFJJTkcgfSxcblx0XHR7IGNvZGlnbzogdGhpcy5ESUFHUkFNQV9QT0xBUiwgbm9tYnJlOiB0aGlzLkRJQUdSQU1BX1BPTEFSX1NUUklORyB9LFxuXHRcdHsgY29kaWdvOiB0aGlzLkRJQUdSQU1BX0RPTkEsIG5vbWJyZTogdGhpcy5ESUFHUkFNQV9ET05BX1NUUklORyB9LFxuXHRcdHsgY29kaWdvOiB0aGlzLkRJQUdSQU1BX1JBREFSLCBub21icmU6IHRoaXMuRElBR1JBTUFfUkFEQVJfU1RSSU5HIH0sXG5cdF1cblxuXHRESUFHUkFNQV9MSU5FQSA9ICdMJztcblx0RElBR1JBTUFfSElTVE9HUkFNQSA9ICdIJztcblx0RElBR1JBTUFfRElGRVJFTkNJQSA9ICdEJztcblx0RElBR1JBTUFfQkFSUkFfSE9SSVpPTlRBTCA9ICdaJztcblx0RElBR1JBTUFfQkFSUkFfRVNDQUxBX0hPUklaT05UQUwgPSAnRSc7XG5cdERJQUdSQU1BX0JBUlJBX0VTQ0FMQV9WRVJUSUNBTCA9ICdWJztcblx0RElBR1JBTUFfTElORUFfU1RSSU5HID0gJ0RpYWdyYW1hIGRlIGxpbmVhJztcblx0RElBR1JBTUFfSElTVE9HUkFNQV9TVFJJTkcgPSAnRGlhZ3JhbWEgZGUgSGlzdG9ncmFtYSc7XG5cdERJQUdSQU1BX0RJRkVSRU5DSUFfU1RSSU5HID0gJ0RpYWdyYW1hIGRlIERpZmVyZW5jaWEnO1xuXHRESUFHUkFNQV9CQVJSQV9IT1JJWk9OVEFMX1NUUklORyA9ICdEaWFncmFtYSBkZSBCYXJyYXMgSG9yaXpvbnRhbCc7XG5cdERJQUdSQU1BX0JBUlJBX0VTQ0FMQV9TVFJJTkcgPSAnRGlhZ3JhbWEgaG9yaXpvbnRhbCBkZSBCYXJyYXMgY29uIGVzY2FsYSc7XG5cdERJQUdSQU1BX0JBUlJBX0VTQ0FMQV9WRVJUSUNBTF9TVFJJTkcgPSAnRGlhZ3JhbWEgdmVydGljYWwgZGUgQmFycmFzIGNvbiBlc2NhbGEnO1xuXG5cdExJU1RBX1RJUE9fR1JBRklDT19KRkMgPSBbXG5cdFx0eyBjb2RpZ286IHRoaXMuRElBR1JBTUFfQkFSUkFTLCBub21icmU6IHRoaXMuRElBR1JBTUFfQkFSUkFTX1NUUklORyB9LFxuXHRcdHsgY29kaWdvOiB0aGlzLkRJQUdSQU1BX1RPUlRBLCBub21icmU6IHRoaXMuRElBR1JBTUFfVE9SVEFfU1RSSU5HIH0sXG5cdFx0eyBjb2RpZ286IHRoaXMuRElBR1JBTUFfQVJFQSwgbm9tYnJlOiB0aGlzLkRJQUdSQU1BX0FSRUFfU1RSSU5HIH0sXG5cdFx0eyBjb2RpZ286IHRoaXMuRElBR1JBTUFfTElORUEsIG5vbWJyZTogdGhpcy5ESUFHUkFNQV9MSU5FQV9TVFJJTkcgfSxcblx0XHQvL3tjb2RpZ286IHRoaXMuRElBR1JBTUFfSElTVE9HUkFNQSwgbm9tYnJlOiB0aGlzLkRJQUdSQU1BX0hJU1RPR1JBTUFfU1RSSU5HfSwgLy9UT0RPIGFqdXN0YXIgZW4gRWplY3VjaW9uIFJlcG9ydGVcblx0XHR7IGNvZGlnbzogdGhpcy5ESUFHUkFNQV9ESUZFUkVOQ0lBLCBub21icmU6IHRoaXMuRElBR1JBTUFfRElGRVJFTkNJQV9TVFJJTkcgfSxcblx0XHR7IGNvZGlnbzogdGhpcy5ESUFHUkFNQV9CQVJSQV9IT1JJWk9OVEFMLCBub21icmU6IHRoaXMuRElBR1JBTUFfQkFSUkFfSE9SSVpPTlRBTF9TVFJJTkcgfSxcblx0XHR7IGNvZGlnbzogdGhpcy5ESUFHUkFNQV9CQVJSQV9FU0NBTEFfSE9SSVpPTlRBTCwgbm9tYnJlOiB0aGlzLkRJQUdSQU1BX0JBUlJBX0VTQ0FMQV9TVFJJTkcgfSxcblx0XHR7IGNvZGlnbzogdGhpcy5ESUFHUkFNQV9CQVJSQV9FU0NBTEFfVkVSVElDQUwsIG5vbWJyZTogdGhpcy5ESUFHUkFNQV9CQVJSQV9FU0NBTEFfVkVSVElDQUxfU1RSSU5HIH0sXG5cdF1cblxuXHRTRVJJRSA9ICdTJztcblx0Q0FURUdPUklBID0gJ0MnO1xuXHRWQUxPUiA9ICdWJztcblx0SU1BR0VOID0gJ0knO1xuXHRTRVJJRV9TVFJJTkcgPSAnU2VyaWUnO1xuXHRDQVRFR09SSUFfU1RSSU5HID0gJ0NhdGVnb3JpYSc7XG5cdFZBTE9SX1NUUklORyA9ICdWYWxvcic7XG5cdElNQUdFTl9ERVNDID0gJ0ltYWdlbic7XG5cblxuXHRMSVNUQV9SRUNVUlNPX0dSQUZJQ0EgPSBbXG5cdFx0eyBjb2RpZ286IHRoaXMuU0VSSUUsIG5vbWJyZTogdGhpcy5TRVJJRV9TVFJJTkcgfSxcblx0XHR7IGNvZGlnbzogdGhpcy5DQVRFR09SSUEsIG5vbWJyZTogdGhpcy5DQVRFR09SSUFfU1RSSU5HIH0sXG5cdFx0eyBjb2RpZ286IHRoaXMuVkFMT1IsIG5vbWJyZTogdGhpcy5WQUxPUl9TVFJJTkcgfSxcblx0XHR7IGNvZGlnbzogdGhpcy5JTUFHRU4sIG5vbWJyZTogdGhpcy5JTUFHRU5fREVTQyB9LFxuXHRcdHsgY29kaWdvOiAnRycsIG5vbWJyZTogJ0dydXBvJyB9LFxuXHRdXG5cblx0LyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblx0ICogICBGb3JtYXRvcyBkZSBnZW5lcmFjaW9uIGRlIHJlcG9ydGVzIFxuXHQgKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXHRHRU5FUkFDSU9OX0pBU1BFUkRJTkFNSUNPID0gJ0QnO1xuXHRERVNDX0dFTkVSQUNJT05fSkFTUEVSRElOQU1JQ08gPSAnSmFzcGVyIGRpbmFtaWNvJztcblxuXHRHRU5FUkFDSU9OX0pBU1BFUkZJSk8gPSAnRic7XG5cdERFU0NfR0VORVJBQ0lPTl9KQVNQRVJGSUpPID0gJ0phc3BlciBmaWpvJztcblxuXHRHRU5FUkFDSU9OX0VYQ0VMID0gJ0UnO1xuXHRERVNDX0dFTkVSQUNJT05fRVhDRUwgPSAnRXhjZWwnO1xuXG5cdEdFTkVSQUNJT05fWE1MID0gJ1gnO1xuXHRERVNDX0dFTkVSQUNJT05fWE1MID0gJ0FyY2hpdm8geG1sJztcblxuXHRHRU5FUkFDSU9OX1BMQU5USUxMQSA9ICdXJztcblx0REVTQ19HRU5FUkFDSU9OX1BMQU5USUxMQSA9ICdQbGFudGlsbGEnO1xuXG5cdEdFTkVSQUNJT05fQVJDSElWT1BMQU5PID0gJ1QnO1xuXHRERVNDX0dFTkVSQUNJT05fQVJDSElWT1BMQU5PID0gJ0FyY2hpdm8gUGxhbm8nO1xuXG5cdEdFTkVSQUNJT05fVEFCTEEgPSAnQSc7XG5cdERFU0NfR0VORVJBQ0lPTl9UQUJMQSA9ICdUYWJsYSc7XG5cblx0R0VORVJBQ0lPTl9DT0xVTU5BUklPID0gJ0MnO1xuXHRERVNDX0dFTkVSQUNJT05fQ09MVU1OQVJJTyA9ICdDb2x1bW5hcmlvJztcblxuXHQvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXHQgKiAgT3BlcmFjaW9uZXMgc29icmUgcmVwb3J0ZXMgZ2VuZXJhZG9zIFxuXHQgKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXG5cdE9QRVJBQ0lPTl9ERVNDQVJHQVIgPSAnRCc7XG5cdERFU0NfT1BFUkFDSU9OX0RFU0NBUkdBUiA9ICdEZXNjYXJnYXInO1xuXG5cdE9QRVJBQ0lPTl9FTlZJQVJDT1JSRU8gPSAnRSc7XG5cdERFU0NfT1BFUkFDSU9OX0VOVklBUkNPUlJFTyA9ICdFbnZpYXIgY29ycmVvJztcblxuXHRPUEVSQUNJT05fRU5WSU9NQVNJVk8gPSAnTSc7XG5cdERFU0NfT1BFUkFDSU9OX0VOVklPTUFTSVZPID0gJ0VudmlvIG1hc2l2byc7XG5cblx0T1BFUkFDSU9OX0NPUlJFT1BVQkxJQ0FSID0gJ01QJztcblx0REVTQ19PUEVSQUNJT05fQ09SUkVPUFVCTElDQVIgPSAnRW52aWFyIHkgUHVibGljYXIgTWFzaXZvJztcblxuXHRPUEVSQUNJT05fUFVCTElDQVIgPSAnUCc7XG5cdERFU0NfT1BFUkFDSU9OX1BVQkxJQ0FSID0gJ1B1YmxpY2FyJztcblxuXHRPUEVSQUNJT05fUFJPQ0VTT19FWFRFUk5PID0gJ1gnO1xuXHRERVNDX09QRVJBQ0lPTl9QUk9DRVNPX0VYVEVSTk8gPSAnUHJvY2VzbyBFeHRlcm5vJztcblxuXHRQQVJBTUVUUk9fRU5UUkFEQV9DT0RFTVBSRVNBID0gJ2NvZGVtcHJlc2EnO1xuXHRQQVJBTUVUUk9fRU5UUkFEQV9DRURVTEEgPSAnY2VkdWxhJztcblx0UEFSQU1FVFJPX0VOVFJBREFfQ09OVFJBVE8gPSAnY29udHJhdG8nO1xuXG5cdFBBUkFNRVRST19FTlRSQURBX0xPR0lOID0gJ2xvZ2luJztcblx0UEFSQU1FVFJPX0VOVFJBREFfUk9MID0gJ3JvbCc7XG5cblx0UEFSQU1FVFJPX05VTUVST19MSVFVSURBQ0lPTl9QRVJJT0RJQ0EgPSAnbnVtZXJvJztcblxuXHRPUEVSQUNJT05fU0VHVU5ET1BMQU5PID0gJ1MnO1xuXHRERVNDX09QRVJBQ0lPTl9TRUdVTkRPUExBTk8gPSAnU2VndW5kbyBQbGFubyc7XG5cblx0TUFQQV9USVBPX0FSQ0hJVk9TID0gW1xuXHRcdHsgY29kaWdvOiAnaHRtbCcsIG5vbWJyZTogJ2h0bWwnIH0sXG5cdFx0eyBjb2RpZ286ICd4bWwnLCBub21icmU6ICd4bWwnIH0sXG5cdFx0eyBjb2RpZ286ICd4bHMnLCBub21icmU6ICd4bHMnIH0sXG5cdFx0eyBjb2RpZ286ICdwZGYnLCBub21icmU6ICdwZGYnIH0sXG5cdFx0eyBjb2RpZ286ICdjc3YnLCBub21icmU6ICdjc3YnIH0sXG5cdFx0eyBjb2RpZ286ICd0eHQnLCBub21icmU6ICd0eHQnIH0sXG5cdF1cblxuXHRNT0RPX1BBUkFNRVRSTyA9ICdQJztcblx0TU9ET19EQVRPUyA9ICdEJztcblxuXHRERVNfTU9ET19QQVJBTUVUUk8gPSAnUGFyYW1ldHJvJztcblx0REVTX01PRE9fREFUT1MgPSAnRGF0b3MnO1xuXG5cdE1PRE9TID0gW1xuXHRcdHsgY29kaWdvOiB0aGlzLk1PRE9fUEFSQU1FVFJPLCBub21icmU6IHRoaXMuREVTX01PRE9fUEFSQU1FVFJPIH0sXG5cdFx0eyBjb2RpZ286IHRoaXMuTU9ET19EQVRPUywgbm9tYnJlOiB0aGlzLkRFU19NT0RPX0RBVE9TIH0sXG5cdF1cblxuXHRJWlFVSUVSREEgPSAnSSc7XG5cdERFUkVDSEEgPSAnRCc7XG5cdENFTlRSTyA9ICdDJztcblx0SlVTVElGSUNBRE8gPSAnSic7XG5cblx0SVpRVUlFUkRBX0RFU0MgPSAnSXpxdWllcmRhJztcblx0REVSRUNIQV9ERVNDID0gJ0RlcmVjaGEnO1xuXHRDRU5UUk9fREVTQyA9ICdDZW50cm8nO1xuXHRKVVNUSUZJQ0FET19ERVNDID0gJ0p1c3RpZmljYWRvJztcblxuXHRMSVNUQV9BTElORUFDSU9OID0gW1xuXHRcdHsgY29kaWdvOiB0aGlzLklaUVVJRVJEQSwgbm9tYnJlOiB0aGlzLklaUVVJRVJEQV9ERVNDIH0sXG5cdFx0eyBjb2RpZ286IHRoaXMuREVSRUNIQSwgbm9tYnJlOiB0aGlzLkRFUkVDSEFfREVTQyB9LFxuXHRcdHsgY29kaWdvOiB0aGlzLkNFTlRSTywgbm9tYnJlOiB0aGlzLkNFTlRST19ERVNDIH0sXG5cdFx0eyBjb2RpZ286IHRoaXMuSlVTVElGSUNBRE8sIG5vbWJyZTogdGhpcy5KVVNUSUZJQ0FET19ERVNDIH1cblx0XVxuXG5cdC8vVGlwbyBNYXJjYWRvcmVzIFRleHRvXG5cdE1BUkNBRE9SVEVYVE9GSUpPID0gJ0YnO1xuXHRNQVJDQURPUlRFWFRPRElOQU1JQ08gPSAnRCc7XG5cblx0TUFSQ0FET1JURVhUT0ZJSk9fREVTQyA9ICdGaWpvJztcblx0TUFSQ0FET1JURVhUT0RJTkFNSUNPX0RFU0MgPSAnQ29sdW1uYSc7XG5cblx0UkVQT1JURUFSQ0hJVk9QTEFOTyA9ICdUJztcblx0VElQT01BUkNBRE9SRVNURVhUTyA9IFtcblx0XHR7IGNvZGlnbzogdGhpcy5NQVJDQURPUlRFWFRPRklKTywgbm9tYnJlOiB0aGlzLk1BUkNBRE9SVEVYVE9GSUpPX0RFU0MgfSxcblx0XHR7IGNvZGlnbzogdGhpcy5NQVJDQURPUlRFWFRPRElOQU1JQ08sIG5vbWJyZTogdGhpcy5NQVJDQURPUlRFWFRPRElOQU1JQ09fREVTQyB9XG5cdF1cblxuXHR0cmFuc2Zvcm0odmFsdWU6IGFueSwgLi4uYXJnczogYW55KTogYW55IHtcblx0XHRsZXQgcmVzdWx0ID0gdmFsdWU7XG5cdFx0aWYgKGFyZ3NbMF0gPT0gJ2xpc3RhVGlwbycpIHsgdGhpcy5MSVNUQV9USVBPLmZvckVhY2goZGF0YSA9PiB7IGlmIChkYXRhLmNvZGlnbyA9PT0gdmFsdWUpIHsgcmVzdWx0ID0gZGF0YS5ub21icmUgfSB9KTsgfVxuXHRcdGlmIChhcmdzWzBdID09ICdsaXN0YU1vbWVudG8nKSB7IHRoaXMuTElTVEFfTU9NRU5UTy5mb3JFYWNoKGRhdGEgPT4geyBpZiAoZGF0YS5jb2RpZ28gPT09IHZhbHVlKSB7IHJlc3VsdCA9IGRhdGEubm9tYnJlIH0gfSk7IH1cblx0XHRpZiAoYXJnc1swXSA9PSAnbGlzdGFUaXBvRGF0bycpIHsgdGhpcy5USVBPU19EQVRPLmZvckVhY2goZGF0YSA9PiB7IGlmIChkYXRhLmNvZGlnbyA9PT0gdmFsdWUpIHsgcmVzdWx0ID0gZGF0YS5ub21icmUgfSB9KTsgfVxuXHRcdGlmIChhcmdzWzBdID09ICdsaXN0YVRpcG9EYXRvQ29sdW1uYScpIHsgdGhpcy5USVBPU19EQVRPX0NPTFVNTkEuZm9yRWFjaChkYXRhID0+IHsgaWYgKGRhdGEuY29kaWdvID09PSB2YWx1ZSkgeyByZXN1bHQgPSBkYXRhLm5vbWJyZSB9IH0pOyB9XG5cdFx0aWYgKGFyZ3NbMF0gPT0gJ2xpc3RhVGlwb0RhdG9NYXJjYWRvcmVzJykgeyB0aGlzLkxJU1RBX01BUkNBRE9SRVMuZm9yRWFjaChkYXRhID0+IHsgaWYgKGRhdGEuY29kaWdvID09PSB2YWx1ZSkgeyByZXN1bHQgPSBkYXRhLm5vbWJyZSB9IH0pOyB9XG5cdFx0aWYgKGFyZ3NbMF0gPT0gJ2xpc3RhVGlwb0dyYWZpY28nKSB7IHRoaXMuTElTVEFfVElQT19HUkFGSUNPLmZvckVhY2goZGF0YSA9PiB7IGlmIChkYXRhLmNvZGlnbyA9PT0gdmFsdWUpIHsgcmVzdWx0ID0gZGF0YS5ub21icmUgfSB9KTsgfVxuXHRcdGlmIChhcmdzWzBdID09ICdsaXN0YVRpcG9HcmFmaWNvSkZDJykgeyB0aGlzLkxJU1RBX1RJUE9fR1JBRklDT19KRkMuZm9yRWFjaChkYXRhID0+IHsgaWYgKGRhdGEuY29kaWdvID09PSB2YWx1ZSkgeyByZXN1bHQgPSBkYXRhLm5vbWJyZSB9IH0pOyB9XG5cdFx0aWYgKGFyZ3NbMF0gPT0gJ2xpc3RhUmVjdXJzb0dyYWZpY2EnKSB7IHRoaXMuTElTVEFfUkVDVVJTT19HUkFGSUNBLmZvckVhY2goZGF0YSA9PiB7IGlmIChkYXRhLmNvZGlnbyA9PT0gdmFsdWUpIHsgcmVzdWx0ID0gZGF0YS5ub21icmUgfSB9KTsgfVxuXHRcdGlmIChhcmdzWzBdID09ICdsaXN0YUFsaW5lYWNpb24nKSB7IHRoaXMuTElTVEFfQUxJTkVBQ0lPTi5mb3JFYWNoKGRhdGEgPT4geyBpZiAoZGF0YS5jb2RpZ28gPT09IHZhbHVlKSB7IHJlc3VsdCA9IGRhdGEubm9tYnJlIH0gfSk7IH1cblx0XHRpZiAoYXJnc1swXSA9PSAnbGlzdGFUaXBvTWFyY2Fkb3Jlc1RleHRvJykgeyB0aGlzLlRJUE9NQVJDQURPUkVTVEVYVE8uZm9yRWFjaChkYXRhID0+IHsgaWYgKGRhdGEuY29kaWdvID09PSB2YWx1ZSkgeyByZXN1bHQgPSBkYXRhLm5vbWJyZSB9IH0pOyB9XG5cblx0XHRyZXR1cm4gcmVzdWx0O1xuXHR9XG5cbn1cbiJdfQ==
301
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0ZS1mdWVudGUucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvd2ViY29tbW9uL3BpcGVzL3JlcG9ydGUtZnVlbnRlLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDOztBQVVoRSxNQUFNLE9BQU8saUJBQWlCO0lBRTdCLEdBQUcsR0FBRyxHQUFHLENBQUM7SUFDVixNQUFNLEdBQUcsR0FBRyxDQUFDO0lBQ2IsSUFBSSxHQUFHLEdBQUcsQ0FBQztJQUVYLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDakIsV0FBVyxHQUFHLFFBQVEsQ0FBQztJQUN2QixTQUFTLEdBQUcsTUFBTSxDQUFDO0lBRW5CLFVBQVUsR0FBRztRQUNaLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUU7UUFDM0MsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRTtRQUNqRCxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFO0tBQzdDLENBQUE7SUFFRCxzQkFBc0IsR0FBRztRQUN4QixFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFO0tBQ2pELENBQUE7SUFFRCxzQkFBc0IsR0FBRyxHQUFHLENBQUM7SUFDN0IsYUFBYSxHQUFHLEdBQUcsQ0FBQztJQUNwQixnQkFBZ0IsR0FBRyxHQUFHLENBQUM7SUFFdkIsYUFBYSxHQUFHO1FBQ2YsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLHNCQUFzQixFQUFFLE1BQU0sRUFBRSxzQ0FBc0MsRUFBRTtRQUN2RixFQUFF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QU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFBO1lBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQUMsQ0FBQztRQUVqSixPQUFPLE1BQU0sQ0FBQztJQUNmLENBQUM7dUdBclNXLGlCQUFpQjtxR0FBakIsaUJBQWlCOzJHQUFqQixpQkFBaUIsY0FGakIsTUFBTTs7MkZBRU4saUJBQWlCO2tCQVI3QixJQUFJO21CQUFDO29CQUNMLFVBQVUsRUFBRSxJQUFJO29CQUNoQixJQUFJLEVBQUUsbUJBQW1CO2lCQUN6Qjs7a0JBRUEsVUFBVTttQkFBQztvQkFDWCxVQUFVLEVBQUUsTUFBTTtpQkFDbEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBQaXBlKHtcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0bmFtZTogJ3JlcG9ydGVGdWVudGVQaXBlJ1xufSlcblxuQEluamVjdGFibGUoe1xuXHRwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgUmVwb3J0ZUZ1ZW50ZVBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcblxuXHRTUUwgPSAnUyc7XG5cdEZVRU5URSA9ICdGJztcblx0RklKTyA9ICdJJztcblxuXHRTUUxfREVTQyA9ICdTUUwnO1xuXHRGVUVOVEVfREVTQyA9ICdGdWVudGUnO1xuXHRGSUpPX0RFU0MgPSAnRmlqbyc7XG5cblx0TElTVEFfVElQTyA9IFtcblx0XHR7IGNvZGlnbzogdGhpcy5TUUwsIG5vbWJyZTogdGhpcy5TUUxfREVTQyB9LFxuXHRcdHsgY29kaWdvOiB0aGlzLkZVRU5URSwgbm9tYnJlOiB0aGlzLkZVRU5URV9ERVNDIH0sXG5cdFx0eyBjb2RpZ286IHRoaXMuRklKTywgbm9tYnJlOiB0aGlzLkZJSk9fREVTQyB9XG5cdF1cblxuXHRMSVNUQV9USVBPX1NJTl9QRVJNSVNPID0gW1xuXHRcdHsgY29kaWdvOiB0aGlzLkZVRU5URSwgbm9tYnJlOiB0aGlzLkZVRU5URV9ERVNDIH0sXG5cdF1cblxuXHRNT01FTlRPU19TRUdVTkRPX1BMQU5PID0gJ1MnO1xuXHRNT01FTlRPU19ISUxPID0gJ0gnO1xuXHRNT01FTlRPU19TSU5ISUxPID0gJ0QnO1xuXG5cdExJU1RBX01PTUVOVE8gPSBbXG5cdFx0eyBjb2RpZ286IHRoaXMuTU9NRU5UT1NfU0VHVU5ET19QTEFOTywgbm9tYnJlOiAnU2UgcGVybWl0ZSBlamVjdXRhciBlbiBzZWd1bmRvIHBsYW5vJyB9LFxuXHRcdHsgY29kaWdvOiB0aGlzLk1PTUVOVE9TX0hJTE8sIG5vbWJyZTogJ0VqZWN1dGFyIHNpbiBsaW1pdGUgZGUgdGllbXBvJyB9LFxuXHRcdHsgY29kaWdvOiB0aGlzLk1PTUVOVE9TX1NJTkhJTE8sIG5vbWJyZTogJ0VqZWN1dGFyIGxpbWl0ZSBkZSB0aWVtcG8gZGUgbGEgc2VzaW9uJyB9XG5cdF1cblxuXHRUSVBPX05VTUVSTyA9ICdOJztcblx0VElQT19CSUdERUNJTUFMID0gJ0InO1xuXHRUSVBPX0ZFQ0hBID0gJ0YnO1xuXHRUSVBPX1RFWFRPID0gJ1QnO1xuXHRUSVBPX1RFWFRPX1NFUklFID0gJ0UnO1xuXHRUSVBPX05VTUVST19TRVJJRSA9ICdVJztcblxuXHRUSVBPU19EQVRPID0gW1xuXHRcdHsgY29kaWdvOiB0aGlzLlRJUE9fRkVDSEEsIG5vbWJyZTogJ0ZlY2hhJyB9LFxuXHRcdHsgY29kaWdvOiB0aGlzLlRJUE9fTlVNRVJPLCBub21icmU6ICdOdW1lcm8gRW50ZXJvJyB9LFxuXHRcdHsgY29kaWdvOiB0aGlzLlRJUE9fQklHREVDSU1BTCwgbm9tYnJlOiAnTnVtZXJvIERlY2ltYWwnIH0sXG5cdFx0eyBjb2RpZ286IHRoaXMuVElQT19URVhUTywgbm9tYnJlOiAnVGV4dG8nIH0sXG5cdFx0eyBjb2RpZ286IHRoaXMuVElQT19URVhUT19TRVJJRSwgbm9tYnJlOiAnU2VyaWUgVGV4dG8nIH0sXG5cdFx0eyBjb2RpZ286IHRoaXMuVElQT19OVU1FUk9fU0VSSUUsIG5vbWJyZTogJ1NlcmllIE51bWVybycgfSxcblx0XVxuXG5cdFRJUE9fRElSRUNUTyA9ICdEJztcblx0VElQT19MSVNUQSA9ICdMJztcblx0VElQT1NfRU5UUkFEQSA9IFtcblx0XHR7IGNvZGlnbzogdGhpcy5USVBPX0RJUkVDVE8sIG5vbWJyZTogJ0RpcmVjdG8nIH0sXG5cdFx0eyBjb2RpZ286IHRoaXMuVElQT19MSVNUQSwgbm9tYnJlOiAnTGlzdGEnIH0sXG5cdF1cblxuXHRUSVBPU19EQVRPX0NPTFVNTkEgPSBbXG5cdFx0eyBjb2RpZ286IHRoaXMuVElQT19GRUNIQSwgbm9tYnJlOiAnRmVjaGEnIH0sXG5cdFx0eyBjb2RpZ286IHRoaXMuVElQT19OVU1FUk8sIG5vbWJyZTogJ051bWVybycgfSxcblx0XHR7IGNvZGlnbzogdGhpcy5USVBPX1RFWFRPLCBub21icmU6ICdUZXh0bycgfSxcblx0XVxuXG5cdE1BUkNBRE9SID0gJ01BJztcblx0TUFSQ0FET1JSRUdJU1RSTyA9ICdNUic7XG5cdE1BUkNBRE9SVEFCTEEgPSAnVEInO1xuXHRNQVJDQURPUklNQUdFTiA9ICdJTSc7XG5cdE1BUkNBRE9SSU1BR0VORklKQSA9ICdJRic7XG5cdE1BUkNBRE9SVEVYVE9QTEFOTyA9ICdUUCc7XG5cdE1BUkNBRE9SUVIgPSAnUVInO1xuXHRNQVJDQURPUkJBUkNPREUgPSAnQkMnO1xuXHRNQVJDQURPUkJBUkNPREVHUzFfMTI4ID0gJ0cxJztcblxuXHRERVNNQVJDQURPUiA9ICdNYXJjYWRvcic7XG5cdERFU01BUkNBRE9SUkVHSVNUUk8gPSAnTWFyY2Fkb3IgUmVnaXN0cm8nO1xuXHRERVNNQVJDQURPUlRBQkxBID0gJ1RhYmxhJztcblx0REVTTUFSQ0FET1JJTUFHRU4gPSAnSW1hZ2VuJztcblx0REVTTUFSQ0FET1JJTUFHRU5GSUpBID0gJ0ltYWdlbiBGaWphJztcblx0REVTTUFSQ0FET1JRUiA9ICdJbWFnZW4gUVInO1xuXHRERVNNQVJDQURPUkJBUkNPREUgPSAnSW1hZ2VuIENvZGlnbyBCYXJyYSAxMjgnO1xuXHRERVNNQVJDQURPUkJBUkNPREVHUzFfMTI4ID0gJ0ltYWdlbiBDb2RpZ28gQmFycmEgR1MxIC0gMTI4JztcblxuXHRMSVNUQV9NQVJDQURPUkVTID0gW1xuXHRcdHsgY29kaWdvOiB0aGlzLk1BUkNBRE9SLCBub21icmU6IHRoaXMuREVTTUFSQ0FET1IgfSxcblx0XHR7IGNvZGlnbzogdGhpcy5NQVJDQURPUlJFR0lTVFJPLCBub21icmU6IHRoaXMuREVTTUFSQ0FET1JSRUdJU1RSTyB9LFxuXHRcdHsgY29kaWdvOiB0aGlzLk1BUkNBRE9SVEFCTEEsIG5vbWJyZTogdGhpcy5ERVNNQVJDQURPUlRBQkxBIH0sXG5cdFx0eyBjb2RpZ286IHRoaXMuTUFSQ0FET1JJTUFHRU4sIG5vbWJyZTogdGhpcy5ERVNNQVJDQURPUklNQUdFTiB9LFxuXHRcdHsgY29kaWdvOiB0aGlzLk1BUkNBRE9SSU1BR0VORklKQSwgbm9tYnJlOiB0aGlzLkRFU01BUkNBRE9SSU1BR0VORklKQSB9LFxuXHRcdHsgY29kaWdvOiB0aGlzLk1BUkNBRE9SUVIsIG5vbWJyZTogdGhpcy5ERVNNQVJDQURPUlFSIH0sXG5cdFx0eyBjb2RpZ286IHRoaXMuTUFSQ0FET1JCQVJDT0RFLCBub21icmU6IHRoaXMuREVTTUFSQ0FET1JCQVJDT0RFIH0sXG5cdFx0eyBjb2RpZ286IHRoaXMuTUFSQ0FET1JCQVJDT0RFR1MxXzEyOCwgbm9tYnJlOiB0aGlzLkRFU01BUkNBRE9SQkFSQ09ERUdTMV8xMjggfSxcblx0XVxuXG5cdExJU1RBX01BUkNBRE9SRVNfWE1MID0gW1xuXHRcdHsgY29kaWdvOiB0aGlzLk1BUkNBRE9SLCBub21icmU6IHRoaXMuREVTTUFSQ0FET1IgfSxcblx0XHR7IGNvZGlnbzogdGhpcy5NQVJDQURPUlJFR0lTVFJPLCBub21icmU6IHRoaXMuREVTTUFSQ0FET1JSRUdJU1RSTyB9LFxuXHRcdHsgY29kaWdvOiB0aGlzLk1BUkNBRE9SVEFCTEEsIG5vbWJyZTogdGhpcy5ERVNNQVJDQURPUlRBQkxBIH0sXG5cdF1cblxuXHRESUFHUkFNQV9CQVJSQVMgPSAnQic7XG5cdERJQUdSQU1BX0JBUlJBU19IT1IgPSAnSCc7XG5cdERJQUdSQU1BX1RPUlRBID0gJ1QnO1xuXHRESUFHUkFNQV9BUkVBID0gJ0EnO1xuXHRESUFHUkFNQV9SQURBUiA9ICdSJztcblx0RElBR1JBTUFfUE9MQVIgPSAnUCc7XG5cdERJQUdSQU1BX0RPTkEgPSAnRCc7XG5cdERJQUdSQU1BX0JBUlJBU19TVFJJTkcgPSAnRGlhZ3JhbWEgZGUgYmFycmFzIFZlcnRpZmljYWwnO1xuXHRESUFHUkFNQV9CQVJSQVNfSE9SX1NUUklORyA9ICdEaWFncmFtYSBkZSBiYXJyYXMgSG9yaXpvbnRhbCc7XG5cdERJQUdSQU1BX1RPUlRBX1NUUklORyA9ICdEaWFncmFtYSBkZSBUb3J0YSc7XG5cdERJQUdSQU1BX0FSRUFfU1RSSU5HID0gJ0RpYWdyYW1hIGRlIEFyZWEnO1xuXHRESUFHUkFNQV9SQURBUl9TVFJJTkcgPSAnRGlhZ3JhbWEgZGUgUmFkYXInO1xuXHRESUFHUkFNQV9QT0xBUl9TVFJJTkcgPSAnRGlhZ3JhbWEgZGUgUG9sYXInO1xuXHRESUFHUkFNQV9ET05BX1NUUklORyA9ICdEaWFncmFtYSBkZSBEb25hJztcblxuXHRMSVNUQV9USVBPX0dSQUZJQ08gPSBbXG5cdFx0eyBjb2RpZ286IHRoaXMuRElBR1JBTUFfQkFSUkFTLCBub21icmU6IHRoaXMuRElBR1JBTUFfQkFSUkFTX1NUUklORyB9LFxuXHRcdHsgY29kaWdvOiB0aGlzLkRJQUdSQU1BX0JBUlJBU19IT1IsIG5vbWJyZTogdGhpcy5ESUFHUkFNQV9CQVJSQVNfSE9SX1NUUklORyB9LFxuXHRcdHsgY29kaWdvOiB0aGlzLkRJQUdSQU1BX1RPUlRBLCBub21icmU6IHRoaXMuRElBR1JBTUFfVE9SVEFfU1RSSU5HIH0sXG5cdFx0eyBjb2RpZ286IHRoaXMuRElBR1JBTUFfQVJFQSwgbm9tYnJlOiB0aGlzLkRJQUdSQU1BX0FSRUFfU1RSSU5HIH0sXG5cdFx0eyBjb2RpZ286IHRoaXMuRElBR1JBTUFfUE9MQVIsIG5vbWJyZTogdGhpcy5ESUFHUkFNQV9QT0xBUl9TVFJJTkcgfSxcblx0XHR7IGNvZGlnbzogdGhpcy5ESUFHUkFNQV9ET05BLCBub21icmU6IHRoaXMuRElBR1JBTUFfRE9OQV9TVFJJTkcgfSxcblx0XHR7IGNvZGlnbzogdGhpcy5ESUFHUkFNQV9SQURBUiwgbm9tYnJlOiB0aGlzLkRJQUdSQU1BX1JBREFSX1NUUklORyB9LFxuXHRdXG5cblx0RElBR1JBTUFfTElORUEgPSAnTCc7XG5cdERJQUdSQU1BX0hJU1RPR1JBTUEgPSAnSCc7XG5cdERJQUdSQU1BX0RJRkVSRU5DSUEgPSAnRCc7XG5cdERJQUdSQU1BX0JBUlJBX0hPUklaT05UQUwgPSAnWic7XG5cdERJQUdSQU1BX0JBUlJBX0VTQ0FMQV9IT1JJWk9OVEFMID0gJ0UnO1xuXHRESUFHUkFNQV9CQVJSQV9FU0NBTEFfVkVSVElDQUwgPSAnVic7XG5cdERJQUdSQU1BX0xJTkVBX1NUUklORyA9ICdEaWFncmFtYSBkZSBsaW5lYSc7XG5cdERJQUdSQU1BX0hJU1RPR1JBTUFfU1RSSU5HID0gJ0RpYWdyYW1hIGRlIEhpc3RvZ3JhbWEnO1xuXHRESUFHUkFNQV9ESUZFUkVOQ0lBX1NUUklORyA9ICdEaWFncmFtYSBkZSBEaWZlcmVuY2lhJztcblx0RElBR1JBTUFfQkFSUkFfSE9SSVpPTlRBTF9TVFJJTkcgPSAnRGlhZ3JhbWEgZGUgQmFycmFzIEhvcml6b250YWwnO1xuXHRESUFHUkFNQV9CQVJSQV9FU0NBTEFfU1RSSU5HID0gJ0RpYWdyYW1hIGhvcml6b250YWwgZGUgQmFycmFzIGNvbiBlc2NhbGEnO1xuXHRESUFHUkFNQV9CQVJSQV9FU0NBTEFfVkVSVElDQUxfU1RSSU5HID0gJ0RpYWdyYW1hIHZlcnRpY2FsIGRlIEJhcnJhcyBjb24gZXNjYWxhJztcblxuXHRMSVNUQV9USVBPX0dSQUZJQ09fSkZDID0gW1xuXHRcdHsgY29kaWdvOiB0aGlzLkRJQUdSQU1BX0JBUlJBUywgbm9tYnJlOiB0aGlzLkRJQUdSQU1BX0JBUlJBU19TVFJJTkcgfSxcblx0XHR7IGNvZGlnbzogdGhpcy5ESUFHUkFNQV9UT1JUQSwgbm9tYnJlOiB0aGlzLkRJQUdSQU1BX1RPUlRBX1NUUklORyB9LFxuXHRcdHsgY29kaWdvOiB0aGlzLkRJQUdSQU1BX0FSRUEsIG5vbWJyZTogdGhpcy5ESUFHUkFNQV9BUkVBX1NUUklORyB9LFxuXHRcdHsgY29kaWdvOiB0aGlzLkRJQUdSQU1BX0xJTkVBLCBub21icmU6IHRoaXMuRElBR1JBTUFfTElORUFfU1RSSU5HIH0sXG5cdFx0Ly97Y29kaWdvOiB0aGlzLkRJQUdSQU1BX0hJU1RPR1JBTUEsIG5vbWJyZTogdGhpcy5ESUFHUkFNQV9ISVNUT0dSQU1BX1NUUklOR30sIC8vVE9ETyBhanVzdGFyIGVuIEVqZWN1Y2lvbiBSZXBvcnRlXG5cdFx0eyBjb2RpZ286IHRoaXMuRElBR1JBTUFfRElGRVJFTkNJQSwgbm9tYnJlOiB0aGlzLkRJQUdSQU1BX0RJRkVSRU5DSUFfU1RSSU5HIH0sXG5cdFx0eyBjb2RpZ286IHRoaXMuRElBR1JBTUFfQkFSUkFfSE9SSVpPTlRBTCwgbm9tYnJlOiB0aGlzLkRJQUdSQU1BX0JBUlJBX0hPUklaT05UQUxfU1RSSU5HIH0sXG5cdFx0eyBjb2RpZ286IHRoaXMuRElBR1JBTUFfQkFSUkFfRVNDQUxBX0hPUklaT05UQUwsIG5vbWJyZTogdGhpcy5ESUFHUkFNQV9CQVJSQV9FU0NBTEFfU1RSSU5HIH0sXG5cdFx0eyBjb2RpZ286IHRoaXMuRElBR1JBTUFfQkFSUkFfRVNDQUxBX1ZFUlRJQ0FMLCBub21icmU6IHRoaXMuRElBR1JBTUFfQkFSUkFfRVNDQUxBX1ZFUlRJQ0FMX1NUUklORyB9LFxuXHRdXG5cblx0U0VSSUUgPSAnUyc7XG5cdENBVEVHT1JJQSA9ICdDJztcblx0VkFMT1IgPSAnVic7XG5cdElNQUdFTiA9ICdJJztcblx0U0VSSUVfU1RSSU5HID0gJ1NlcmllJztcblx0Q0FURUdPUklBX1NUUklORyA9ICdDYXRlZ29yaWEnO1xuXHRWQUxPUl9TVFJJTkcgPSAnVmFsb3InO1xuXHRJTUFHRU5fREVTQyA9ICdJbWFnZW4nO1xuXG5cblx0TElTVEFfUkVDVVJTT19HUkFGSUNBID0gW1xuXHRcdHsgY29kaWdvOiB0aGlzLlNFUklFLCBub21icmU6IHRoaXMuU0VSSUVfU1RSSU5HIH0sXG5cdFx0eyBjb2RpZ286IHRoaXMuQ0FURUdPUklBLCBub21icmU6IHRoaXMuQ0FURUdPUklBX1NUUklORyB9LFxuXHRcdHsgY29kaWdvOiB0aGlzLlZBTE9SLCBub21icmU6IHRoaXMuVkFMT1JfU1RSSU5HIH0sXG5cdFx0eyBjb2RpZ286IHRoaXMuSU1BR0VOLCBub21icmU6IHRoaXMuSU1BR0VOX0RFU0MgfSxcblx0XHR7IGNvZGlnbzogJ0cnLCBub21icmU6ICdHcnVwbycgfSxcblx0XVxuXG5cdFJFQ1VSU09fR1JBRklDQSA9IFtcblx0XHR7IGNvZGlnbzogdGhpcy5TRVJJRSwgbm9tYnJlOiB0aGlzLlNFUklFX1NUUklORyB9LFxuXHRcdHsgY29kaWdvOiB0aGlzLkNBVEVHT1JJQSwgbm9tYnJlOiB0aGlzLkNBVEVHT1JJQV9TVFJJTkcgfSxcblx0XHR7IGNvZGlnbzogdGhpcy5WQUxPUiwgbm9tYnJlOiB0aGlzLlZBTE9SX1NUUklORyB9LFxuXHRdXG5cblx0LyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblx0ICogICBGb3JtYXRvcyBkZSBnZW5lcmFjaW9uIGRlIHJlcG9ydGVzIFxuXHQgKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXHRHRU5FUkFDSU9OX0pBU1BFUkRJTkFNSUNPID0gJ0QnO1xuXHRERVNDX0dFTkVSQUNJT05fSkFTUEVSRElOQU1JQ08gPSAnSmFzcGVyIGRpbmFtaWNvJztcblxuXHRHRU5FUkFDSU9OX0pBU1BFUkZJSk8gPSAnRic7XG5cdERFU0NfR0VORVJBQ0lPTl9KQVNQRVJGSUpPID0gJ0phc3BlciBmaWpvJztcblxuXHRHRU5FUkFDSU9OX0VYQ0VMID0gJ0UnO1xuXHRERVNDX0dFTkVSQUNJT05fRVhDRUwgPSAnRXhjZWwnO1xuXG5cdEdFTkVSQUNJT05fWE1MID0gJ1gnO1xuXHRERVNDX0dFTkVSQUNJT05fWE1MID0gJ0FyY2hpdm8geG1sJztcblxuXHRHRU5FUkFDSU9OX1BMQU5USUxMQSA9ICdXJztcblx0REVTQ19HRU5FUkFDSU9OX1BMQU5USUxMQSA9ICdQbGFudGlsbGEnO1xuXG5cdEdFTkVSQUNJT05fQVJDSElWT1BMQU5PID0gJ1QnO1xuXHRERVNDX0dFTkVSQUNJT05fQVJDSElWT1BMQU5PID0gJ0FyY2hpdm8gUGxhbm8nO1xuXG5cdEdFTkVSQUNJT05fVEFCTEEgPSAnQSc7XG5cdERFU0NfR0VORVJBQ0lPTl9UQUJMQSA9ICdUYWJsYSc7XG5cblx0R0VORVJBQ0lPTl9DT0xVTU5BUklPID0gJ0MnO1xuXHRERVNDX0dFTkVSQUNJT05fQ09MVU1OQVJJTyA9ICdDb2x1bW5hcmlvJztcblxuXHQvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXHQgKiAgT3BlcmFjaW9uZXMgc29icmUgcmVwb3J0ZXMgZ2VuZXJhZG9zIFxuXHQgKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXG5cdE9QRVJBQ0lPTl9ERVNDQVJHQVIgPSAnRCc7XG5cdERFU0NfT1BFUkFDSU9OX0RFU0NBUkdBUiA9ICdEZXNjYXJnYXInO1xuXG5cdE9QRVJBQ0lPTl9FTlZJQVJDT1JSRU8gPSAnRSc7XG5cdERFU0NfT1BFUkFDSU9OX0VOVklBUkNPUlJFTyA9ICdFbnZpYXIgY29ycmVvJztcblxuXHRPUEVSQUNJT05fRU5WSU9NQVNJVk8gPSAnTSc7XG5cdERFU0NfT1BFUkFDSU9OX0VOVklPTUFTSVZPID0gJ0VudmlvIG1hc2l2byc7XG5cblx0T1BFUkFDSU9OX0NPUlJFT1BVQkxJQ0FSID0gJ01QJztcblx0REVTQ19PUEVSQUNJT05fQ09SUkVPUFVCTElDQVIgPSAnRW52aWFyIHkgUHVibGljYXIgTWFzaXZvJztcblxuXHRPUEVSQUNJT05fUFVCTElDQVIgPSAnUCc7XG5cdERFU0NfT1BFUkFDSU9OX1BVQkxJQ0FSID0gJ1B1YmxpY2FyJztcblxuXHRPUEVSQUNJT05fUFJPQ0VTT19FWFRFUk5PID0gJ1gnO1xuXHRERVNDX09QRVJBQ0lPTl9QUk9DRVNPX0VYVEVSTk8gPSAnUHJvY2VzbyBFeHRlcm5vJztcblxuXHRQQVJBTUVUUk9fRU5UUkFEQV9DT0RFTVBSRVNBID0gJ2NvZGVtcHJlc2EnO1xuXHRQQVJBTUVUUk9fRU5UUkFEQV9DRURVTEEgPSAnY2VkdWxhJztcblx0UEFSQU1FVFJPX0VOVFJBREFfQ09OVFJBVE8gPSAnY29udHJhdG8nO1xuXG5cdFBBUkFNRVRST19FTlRSQURBX0xPR0lOID0gJ2xvZ2luJztcblx0UEFSQU1FVFJPX0VOVFJBREFfUk9MID0gJ3JvbCc7XG5cblx0UEFSQU1FVFJPX05VTUVST19MSVFVSURBQ0lPTl9QRVJJT0RJQ0EgPSAnbnVtZXJvJztcblxuXHRPUEVSQUNJT05fU0VHVU5ET1BMQU5PID0gJ1MnO1xuXHRERVNDX09QRVJBQ0lPTl9TRUdVTkRPUExBTk8gPSAnU2VndW5kbyBQbGFubyc7XG5cblx0TUFQQV9USVBPX0FSQ0hJVk9TID0gW1xuXHRcdHsgY29kaWdvOiAnaHRtbCcsIG5vbWJyZTogJ2h0bWwnIH0sXG5cdFx0eyBjb2RpZ286ICd4bWwnLCBub21icmU6ICd4bWwnIH0sXG5cdFx0eyBjb2RpZ286ICd4bHMnLCBub21icmU6ICd4bHMnIH0sXG5cdFx0eyBjb2RpZ286ICdwZGYnLCBub21icmU6ICdwZGYnIH0sXG5cdFx0eyBjb2RpZ286ICdjc3YnLCBub21icmU6ICdjc3YnIH0sXG5cdFx0eyBjb2RpZ286ICd0eHQnLCBub21icmU6ICd0eHQnIH0sXG5cdF1cblxuXHRNT0RPX1BBUkFNRVRSTyA9ICdQJztcblx0TU9ET19EQVRPUyA9ICdEJztcblxuXHRERVNfTU9ET19QQVJBTUVUUk8gPSAnUGFyYW1ldHJvJztcblx0REVTX01PRE9fREFUT1MgPSAnRGF0b3MnO1xuXG5cdE1PRE9TID0gW1xuXHRcdHsgY29kaWdvOiB0aGlzLk1PRE9fUEFSQU1FVFJPLCBub21icmU6IHRoaXMuREVTX01PRE9fUEFSQU1FVFJPIH0sXG5cdFx0eyBjb2RpZ286IHRoaXMuTU9ET19EQVRPUywgbm9tYnJlOiB0aGlzLkRFU19NT0RPX0RBVE9TIH0sXG5cdF1cblxuXHRJWlFVSUVSREEgPSAnSSc7XG5cdERFUkVDSEEgPSAnRCc7XG5cdENFTlRSTyA9ICdDJztcblx0SlVTVElGSUNBRE8gPSAnSic7XG5cblx0SVpRVUlFUkRBX0RFU0MgPSAnSXpxdWllcmRhJztcblx0REVSRUNIQV9ERVNDID0gJ0RlcmVjaGEnO1xuXHRDRU5UUk9fREVTQyA9ICdDZW50cm8nO1xuXHRKVVNUSUZJQ0FET19ERVNDID0gJ0p1c3RpZmljYWRvJztcblxuXHRMSVNUQV9BTElORUFDSU9OID0gW1xuXHRcdHsgY29kaWdvOiB0aGlzLklaUVVJRVJEQSwgbm9tYnJlOiB0aGlzLklaUVVJRVJEQV9ERVNDIH0sXG5cdFx0eyBjb2RpZ286IHRoaXMuREVSRUNIQSwgbm9tYnJlOiB0aGlzLkRFUkVDSEFfREVTQyB9LFxuXHRcdHsgY29kaWdvOiB0aGlzLkNFTlRSTywgbm9tYnJlOiB0aGlzLkNFTlRST19ERVNDIH0sXG5cdFx0eyBjb2RpZ286IHRoaXMuSlVTVElGSUNBRE8sIG5vbWJyZTogdGhpcy5KVVNUSUZJQ0FET19ERVNDIH1cblx0XVxuXG5cdC8vVGlwbyBNYXJjYWRvcmVzIFRleHRvXG5cdE1BUkNBRE9SVEVYVE9GSUpPID0gJ0YnO1xuXHRNQVJDQURPUlRFWFRPRElOQU1JQ08gPSAnRCc7XG5cblx0TUFSQ0FET1JURVhUT0ZJSk9fREVTQyA9ICdGaWpvJztcblx0TUFSQ0FET1JURVhUT0RJTkFNSUNPX0RFU0MgPSAnQ29sdW1uYSc7XG5cblx0UkVQT1JURUFSQ0hJVk9QTEFOTyA9ICdUJztcblx0VElQT01BUkNBRE9SRVNURVhUTyA9IFtcblx0XHR7IGNvZGlnbzogdGhpcy5NQVJDQURPUlRFWFRPRklKTywgbm9tYnJlOiB0aGlzLk1BUkNBRE9SVEVYVE9GSUpPX0RFU0MgfSxcblx0XHR7IGNvZGlnbzogdGhpcy5NQVJDQURPUlRFWFRPRElOQU1JQ08sIG5vbWJyZTogdGhpcy5NQVJDQURPUlRFWFRPRElOQU1JQ09fREVTQyB9XG5cdF1cblxuXHR0cmFuc2Zvcm0odmFsdWU6IGFueSwgLi4uYXJnczogYW55KTogYW55IHtcblx0XHRsZXQgcmVzdWx0ID0gdmFsdWU7XG5cdFx0aWYgKGFyZ3NbMF0gPT0gJ2xpc3RhVGlwbycpIHsgdGhpcy5MSVNUQV9USVBPLmZvckVhY2goZGF0YSA9PiB7IGlmIChkYXRhLmNvZGlnbyA9PT0gdmFsdWUpIHsgcmVzdWx0ID0gZGF0YS5ub21icmUgfSB9KTsgfVxuXHRcdGlmIChhcmdzWzBdID09ICdsaXN0YU1vbWVudG8nKSB7IHRoaXMuTElTVEFfTU9NRU5UTy5mb3JFYWNoKGRhdGEgPT4geyBpZiAoZGF0YS5jb2RpZ28gPT09IHZhbHVlKSB7IHJlc3VsdCA9IGRhdGEubm9tYnJlIH0gfSk7IH1cblx0XHRpZiAoYXJnc1swXSA9PSAnbGlzdGFUaXBvRGF0bycpIHsgdGhpcy5USVBPU19EQVRPLmZvckVhY2goZGF0YSA9PiB7IGlmIChkYXRhLmNvZGlnbyA9PT0gdmFsdWUpIHsgcmVzdWx0ID0gZGF0YS5ub21icmUgfSB9KTsgfVxuXHRcdGlmIChhcmdzWzBdID09ICdsaXN0YVRpcG9EYXRvQ29sdW1uYScpIHsgdGhpcy5USVBPU19EQVRPX0NPTFVNTkEuZm9yRWFjaChkYXRhID0+IHsgaWYgKGRhdGEuY29kaWdvID09PSB2YWx1ZSkgeyByZXN1bHQgPSBkYXRhLm5vbWJyZSB9IH0pOyB9XG5cdFx0aWYgKGFyZ3NbMF0gPT0gJ2xpc3RhVGlwb0RhdG9NYXJjYWRvcmVzJykgeyB0aGlzLkxJU1RBX01BUkNBRE9SRVMuZm9yRWFjaChkYXRhID0+IHsgaWYgKGRhdGEuY29kaWdvID09PSB2YWx1ZSkgeyByZXN1bHQgPSBkYXRhLm5vbWJyZSB9IH0pOyB9XG5cdFx0aWYgKGFyZ3NbMF0gPT0gJ2xpc3RhVGlwb0dyYWZpY28nKSB7IHRoaXMuTElTVEFfVElQT19HUkFGSUNPLmZvckVhY2goZGF0YSA9PiB7IGlmIChkYXRhLmNvZGlnbyA9PT0gdmFsdWUpIHsgcmVzdWx0ID0gZGF0YS5ub21icmUgfSB9KTsgfVxuXHRcdGlmIChhcmdzWzBdID09ICdsaXN0YVRpcG9HcmFmaWNvSkZDJykgeyB0aGlzLkxJU1RBX1RJUE9fR1JBRklDT19KRkMuZm9yRWFjaChkYXRhID0+IHsgaWYgKGRhdGEuY29kaWdvID09PSB2YWx1ZSkgeyByZXN1bHQgPSBkYXRhLm5vbWJyZSB9IH0pOyB9XG5cdFx0aWYgKGFyZ3NbMF0gPT0gJ2xpc3RhUmVjdXJzb0dyYWZpY2EnKSB7IHRoaXMuTElTVEFfUkVDVVJTT19HUkFGSUNBLmZvckVhY2goZGF0YSA9PiB7IGlmIChkYXRhLmNvZGlnbyA9PT0gdmFsdWUpIHsgcmVzdWx0ID0gZGF0YS5ub21icmUgfSB9KTsgfVxuXHRcdGlmIChhcmdzWzBdID09ICdsaXN0YUFsaW5lYWNpb24nKSB7IHRoaXMuTElTVEFfQUxJTkVBQ0lPTi5mb3JFYWNoKGRhdGEgPT4geyBpZiAoZGF0YS5jb2RpZ28gPT09IHZhbHVlKSB7IHJlc3VsdCA9IGRhdGEubm9tYnJlIH0gfSk7IH1cblx0XHRpZiAoYXJnc1swXSA9PSAnbGlzdGFUaXBvTWFyY2Fkb3Jlc1RleHRvJykgeyB0aGlzLlRJUE9NQVJDQURPUkVTVEVYVE8uZm9yRWFjaChkYXRhID0+IHsgaWYgKGRhdGEuY29kaWdvID09PSB2YWx1ZSkgeyByZXN1bHQgPSBkYXRhLm5vbWJyZSB9IH0pOyB9XG5cblx0XHRyZXR1cm4gcmVzdWx0O1xuXHR9XG5cbn1cbiJdfQ==
@@ -0,0 +1,253 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { catchError, throwError } from 'rxjs';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/common/http";
5
+ import * as i2 from "../../core/servicios/error-interceptor.service";
6
+ import * as i3 from "../../core/servicios/utils.service";
7
+ import * as i4 from "../pipes/dashboard.pipe";
8
+ export class DashboardService {
9
+ httpClient;
10
+ errorInterceptor;
11
+ utilsService;
12
+ dashboardPipe;
13
+ listProcedure(objetoFiltro) {
14
+ throw new Error('Method not implemented.');
15
+ }
16
+ constructor(httpClient, errorInterceptor, utilsService, dashboardPipe) {
17
+ this.httpClient = httpClient;
18
+ this.errorInterceptor = errorInterceptor;
19
+ this.utilsService = utilsService;
20
+ this.dashboardPipe = dashboardPipe;
21
+ this.handleError = this.handleError.bind(this);
22
+ }
23
+ handleError(error) {
24
+ if (error.status === 500) {
25
+ //Llamado a interceptor
26
+ this.errorInterceptor.showError(JSON.stringify(error.error));
27
+ // A client-side or network error occurred. Handle it accordingly.
28
+ console.error('An error occurred:', error.error);
29
+ }
30
+ else {
31
+ // The backend returned an unsuccessful response code.
32
+ // The response body may contain clues as to what went wrong.
33
+ console.error(`Backend returned code ${error.status}, body was: `, error.error);
34
+ }
35
+ // Return an observable with a user-facing error message.
36
+ return throwError(() => new Error('Something bad happened; please try again later.'));
37
+ }
38
+ consultarDashboard() {
39
+ return this.httpClient.get(`${this.utilsService.obtenerUrlApi()}/requieretoken/dashboard/consultarDashboard`).pipe(catchError(this.handleError));
40
+ }
41
+ cargarGrafica(columna) {
42
+ console.log('cargar grafica');
43
+ console.log(columna);
44
+ switch (columna.accion) {
45
+ case this.dashboardPipe.DIAGRAMA_BARRAS:
46
+ columna = this.cargarDiagramaBarras(columna);
47
+ break;
48
+ case this.dashboardPipe.DIAGRAMA_BARRAS_HOR:
49
+ columna = this.cargarDiagramaBarrasHorizontal(columna);
50
+ break;
51
+ case this.dashboardPipe.DIAGRAMA_TORTA:
52
+ columna = this.cargarDiagramaBarrasTorta(columna);
53
+ break;
54
+ case this.dashboardPipe.DIAGRAMA_AREA:
55
+ columna = this.cargarDiagramaArea(columna);
56
+ break;
57
+ case this.dashboardPipe.DIAGRAMA_POLAR:
58
+ columna = this.cargarDiagramaPolar(columna);
59
+ break;
60
+ case this.dashboardPipe.DIAGRAMA_DONA:
61
+ columna = this.cargarDiagramaDona(columna);
62
+ break;
63
+ case this.dashboardPipe.DIAGRAMA_RADAR:
64
+ columna = this.cargarDiagramaRadar(columna);
65
+ break;
66
+ default:
67
+ break;
68
+ }
69
+ return columna;
70
+ }
71
+ cargarDiagramaBarras(columna) {
72
+ columna.datosGrafica.total = columna.datosGrafica.datasets[0].data.reduce((acumulador, valorActual) => acumulador + valorActual, 0);
73
+ columna.datosGrafica.data = {
74
+ labels: columna.datosGrafica.labels,
75
+ datasets: columna.datosGrafica.datasets
76
+ };
77
+ columna.datosGrafica.options = {
78
+ maintainAspectRatio: false,
79
+ aspectRatio: 0.8,
80
+ plugins: {
81
+ title: {
82
+ display: true,
83
+ text: columna.datosGrafica.title
84
+ },
85
+ legend: {
86
+ labels: {
87
+ color: "#2980B9",
88
+ }
89
+ }
90
+ },
91
+ };
92
+ return columna;
93
+ }
94
+ cargarDiagramaBarrasHorizontal(columna) {
95
+ columna.datosGrafica.total = columna.datosGrafica.datasets[0].data.reduce((acumulador, valorActual) => acumulador + valorActual, 0);
96
+ console.log(columna);
97
+ columna.datosGrafica.data = {
98
+ labels: columna.datosGrafica.labels,
99
+ datasets: columna.datosGrafica.datasets
100
+ };
101
+ columna.datosGrafica.options = {
102
+ indexAxis: 'y',
103
+ maintainAspectRatio: false,
104
+ aspectRatio: 0.8,
105
+ plugins: {
106
+ title: {
107
+ display: true,
108
+ text: columna.datosGrafica.title
109
+ },
110
+ legend: {
111
+ labels: {
112
+ color: "#2980B9",
113
+ }
114
+ }
115
+ },
116
+ };
117
+ return columna;
118
+ }
119
+ cargarDiagramaBarrasTorta(columna) {
120
+ columna.datosGrafica.total = columna.datosGrafica.data.reduce((acumulador, valorActual) => acumulador + valorActual, 0);
121
+ columna.datosGrafica.data = {
122
+ labels: columna.datosGrafica.labels,
123
+ datasets: [
124
+ {
125
+ data: columna.datosGrafica.data,
126
+ backgroundColor: columna.datosGrafica.backgroundColor
127
+ }
128
+ ]
129
+ };
130
+ columna.datosGrafica.options = {
131
+ plugins: {
132
+ title: {
133
+ display: true,
134
+ text: columna.datosGrafica.title
135
+ },
136
+ legend: {
137
+ labels: {
138
+ usePointStyle: true,
139
+ color: "#2980B9",
140
+ }
141
+ }
142
+ }
143
+ };
144
+ return columna;
145
+ }
146
+ cargarDiagramaArea(columna) {
147
+ columna.datosGrafica.total = columna.datosGrafica.datasets[0].data.reduce((acumulador, valorActual) => acumulador + valorActual, 0);
148
+ columna.datosGrafica.data = {
149
+ labels: columna.datosGrafica.labels,
150
+ datasets: columna.datosGrafica.datasets
151
+ };
152
+ columna.datosGrafica.options = {
153
+ stacked: false,
154
+ maintainAspectRatio: false,
155
+ aspectRatio: 0.6,
156
+ plugins: {
157
+ title: {
158
+ display: true,
159
+ text: columna.datosGrafica.title
160
+ },
161
+ legend: {
162
+ labels: {
163
+ color: "#2980B9",
164
+ }
165
+ }
166
+ },
167
+ };
168
+ return columna;
169
+ }
170
+ cargarDiagramaPolar(columna) {
171
+ columna.datosGrafica.total = columna.datosGrafica.data.reduce((acumulador, valorActual) => acumulador + valorActual, 0);
172
+ columna.datosGrafica.data = {
173
+ labels: columna.datosGrafica.labels,
174
+ datasets: [
175
+ {
176
+ data: columna.datosGrafica.data,
177
+ backgroundColor: columna.datosGrafica.backgroundColor
178
+ }
179
+ ]
180
+ };
181
+ columna.datosGrafica.options = {
182
+ plugins: {
183
+ title: {
184
+ display: true,
185
+ text: columna.datosGrafica.title
186
+ },
187
+ legend: {
188
+ labels: {
189
+ color: "#2980B9",
190
+ }
191
+ }
192
+ },
193
+ };
194
+ return columna;
195
+ }
196
+ cargarDiagramaDona(columna) {
197
+ columna.datosGrafica.total = columna.datosGrafica.data.reduce((acumulador, valorActual) => acumulador + valorActual, 0);
198
+ columna.datosGrafica.data = {
199
+ labels: columna.datosGrafica.labels,
200
+ datasets: [
201
+ {
202
+ data: columna.datosGrafica.data,
203
+ backgroundColor: columna.datosGrafica.backgroundColor
204
+ }
205
+ ]
206
+ };
207
+ columna.datosGrafica.options = {
208
+ cutout: '60%',
209
+ plugins: {
210
+ title: {
211
+ display: true,
212
+ text: columna.datosGrafica.title
213
+ },
214
+ legend: {
215
+ labels: {
216
+ color: "#2980B9",
217
+ }
218
+ }
219
+ },
220
+ };
221
+ return columna;
222
+ }
223
+ cargarDiagramaRadar(columna) {
224
+ columna.datosGrafica.total = columna.datosGrafica.datasets[0].data.reduce((acumulador, valorActual) => acumulador + valorActual, 0);
225
+ columna.datosGrafica.data = {
226
+ labels: columna.datosGrafica.labels,
227
+ datasets: columna.datosGrafica.datasets
228
+ };
229
+ columna.datosGrafica.options = {
230
+ plugins: {
231
+ title: {
232
+ display: true,
233
+ text: columna.datosGrafica.title
234
+ },
235
+ legend: {
236
+ labels: {
237
+ color: "#2980B9",
238
+ }
239
+ }
240
+ },
241
+ };
242
+ return columna;
243
+ }
244
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: DashboardService, deps: [{ token: i1.HttpClient }, { token: i2.ErrorIntecertorService }, { token: i3.UtilsService }, { token: i4.DashboardPipe }], target: i0.ɵɵFactoryTarget.Injectable });
245
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: DashboardService, providedIn: 'root' });
246
+ }
247
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: DashboardService, decorators: [{
248
+ type: Injectable,
249
+ args: [{
250
+ providedIn: 'root'
251
+ }]
252
+ }], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2.ErrorIntecertorService }, { type: i3.UtilsService }, { type: i4.DashboardPipe }] });
253
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaGJvYXJkLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3dlYmNvbW1vbi9zZXJ2aWNlcy9kYXNoYm9hcmQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBYyxVQUFVLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7QUFTMUQsTUFBTSxPQUFPLGdCQUFnQjtJQU9QO0lBQWlDO0lBQW1EO0lBQW9DO0lBSjVJLGFBQWEsQ0FBQyxZQUEwQjtRQUN0QyxNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELFlBQW9CLFVBQXNCLEVBQVcsZ0JBQXlDLEVBQVUsWUFBMEIsRUFBVSxhQUE0QjtRQUFwSixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQVcscUJBQWdCLEdBQWhCLGdCQUFnQixDQUF5QjtRQUFVLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQVUsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDdEssSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRU8sV0FBVyxDQUFDLEtBQXdCO1FBQzFDLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQztZQUN6Qix1QkFBdUI7WUFDdkIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQzdELGtFQUFrRTtZQUNsRSxPQUFPLENBQUMsS0FBSyxDQUFDLG9CQUFvQixFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNuRCxDQUFDO2FBQU0sQ0FBQztZQUNOLHNEQUFzRDtZ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LENBQUMsUUFBUTtTQUN4QyxDQUFDO1FBQ0YsT0FBTyxDQUFDLFlBQVksQ0FBQyxPQUFPLEdBQUc7WUFDN0IsT0FBTyxFQUFFO2dCQUNQLEtBQUssRUFBRTtvQkFDTCxPQUFPLEVBQUUsSUFBSTtvQkFDYixJQUFJLEVBQUUsT0FBTyxDQUFDLFlBQVksQ0FBQyxLQUFLO2lCQUNqQztnQkFDRCxNQUFNLEVBQUU7b0JBQ0osTUFBTSxFQUFFO3dCQUNKLEtBQUssRUFBRSxTQUFTO3FCQUNuQjtpQkFDSjthQUNGO1NBQ0YsQ0FBQztRQUNGLE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7dUdBcFBVLGdCQUFnQjsyR0FBaEIsZ0JBQWdCLGNBRmYsTUFBTTs7MkZBRVAsZ0JBQWdCO2tCQUg1QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBSZXF1ZXN0LCBIdHRwRXZlbnQsSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBjYXRjaEVycm9yLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBFcnJvckludGVjZXJ0b3JTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS9zZXJ2aWNpb3MvZXJyb3ItaW50ZXJjZXB0b3Iuc2VydmljZSc7XG5pbXBvcnQgeyBVdGlsc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL3NlcnZpY2lvcy91dGlscy5zZXJ2aWNlJztcbmltcG9ydCB7IEdlbmVyYWxNb2RlbCB9IGZyb20gJy4uLy4uL3NlZ3VyaWRhZC9tb2RlbG9zL0dlbmVyYWxNb2RlbCc7XG5pbXBvcnQgeyBEYXNoYm9hcmRQaXBlIH0gZnJvbSAnLi4vcGlwZXMvZGFzaGJvYXJkLnBpcGUnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBEYXNoYm9hcmRTZXJ2aWNlIHtcblxuXG4gIGxpc3RQcm9jZWR1cmUob2JqZXRvRmlsdHJvOiBHZW5lcmFsTW9kZWwpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01ldGhvZCBub3QgaW1wbGVtZW50ZWQuJyk7XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHBDbGllbnQ6IEh0dHBDbGllbnQgLCBwcml2YXRlIGVycm9ySW50ZXJjZXB0b3IgOiBFcnJvckludGVjZXJ0b3JTZXJ2aWNlLCBwcml2YXRlIHV0aWxzU2VydmljZTogVXRpbHNTZXJ2aWNlLCBwcml2YXRlIGRhc2hib2FyZFBpcGU6IERhc2hib2FyZFBpcGUpIHtcbiAgICB0aGlzLmhhbmRsZUVycm9yID0gdGhpcy5oYW5kbGVFcnJvci5iaW5kKHRoaXMpO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVFcnJvcihlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpIHtcbiAgICBpZiAoZXJyb3Iuc3RhdHVzID09PSA1MDApIHtcbiAgICAgIC8vTGxhbWFkbyBhIGludGVyY2VwdG9yXG4gICAgICB0aGlzLmVycm9ySW50ZXJjZXB0b3Iuc2hvd0Vycm9yKEpTT04uc3RyaW5naWZ5KGVycm9yLmVycm9yKSk7XG4gICAgICAvLyBBIGNsaWVudC1zaWRlIG9yIG5ldHdvcmsgZXJyb3Igb2NjdXJyZWQuIEhhbmRsZSBpdCBhY2NvcmRpbmdseS5cbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0FuIGVycm9yIG9jY3VycmVkOicsIGVycm9yLmVycm9yKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gVGhlIGJhY2tlbmQgcmV0dXJuZWQgYW4gdW5zdWNjZXNzZnVsIHJlc3BvbnNlIGNvZGUuXG4gICAgICAvLyBUaGUgcmVzcG9uc2UgYm9keSBtYXkgY29udGFpbiBjbHVlcyBhcyB0byB3aGF0IHdlbnQgd3JvbmcuXG4gICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICBgQmFja2VuZCByZXR1cm5lZCBjb2RlICR7ZXJyb3Iuc3RhdHVzfSwgYm9keSB3YXM6IGAsIGVycm9yLmVycm9yKTtcbiAgICB9XG4gICAgLy8gUmV0dXJuIGFuIG9ic2VydmFibGUgd2l0aCBhIHVzZXItZmFjaW5nIGVycm9yIG1lc3NhZ2UuXG4gICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gbmV3IEVycm9yKCdTb21ldGhpbmcgYmFkIGhhcHBlbmVkOyBwbGVhc2UgdHJ5IGFnYWluIGxhdGVyLicpKTtcbiAgfVxuXG5cbiAgY29uc3VsdGFyRGFzaGJvYXJkKCk6IE9ic2VydmFibGU8YW55PntcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldChgJHt0aGlzLnV0aWxzU2VydmljZS5vYnRlbmVyVXJsQXBpKCl9L3JlcXVpZXJldG9rZW4vZGFzaGJvYXJkL2NvbnN1bHRhckRhc2hib2FyZGApLnBpcGUoXG4gICAgICBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpXG4gICAgKTtcbiAgfVxuXG4gIGNhcmdhckdyYWZpY2EoY29sdW1uYSkge1xuICAgIGNvbnNvbGUubG9nKCdjYXJnYXIgZ3JhZmljYScpXG4gICAgY29uc29sZS5sb2coY29sdW1uYSlcbiAgICBzd2l0Y2ggKGNvbHVtbmEuYWNjaW9uKSB7XG4gICAgICBjYXNlIHRoaXMuZGFzaGJvYXJkUGlwZS5ESUFHUkFNQV9CQVJSQVM6XG4gICAgICAgIGNvbHVtbmEgPSB0aGlzLmNhcmdhckRpYWdyYW1hQmFycmFzKGNvbHVtbmEpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgdGhpcy5kYXNoYm9hcmRQaXBlLkRJQUdSQU1BX0JBUlJBU19IT1I6XG4gICAgICAgIGNvbHVtbmEgPSB0aGlzLmNhcmdhckRpYWdyYW1hQmFycmFzSG9yaXpvbnRhbChjb2x1bW5hKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIHRoaXMuZGFzaGJvYXJkUGlwZS5ESUFHUkFNQV9UT1JUQTpcbiAgICAgICAgY29sdW1uYSA9IHRoaXMuY2FyZ2FyRGlhZ3JhbWFCYXJyYXNUb3J0YShjb2x1bW5hKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIHRoaXMuZGFzaGJvYXJkUGlwZS5ESUFHUkFNQV9BUkVBOlxuICAgICAgICBjb2x1bW5hID0gdGhpcy5jYXJnYXJEaWFncmFtYUFyZWEoY29sdW1uYSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSB0aGlzLmRhc2hib2FyZFBpcGUuRElBR1JBTUFfUE9MQVI6XG4gICAgICAgIGNvbHVtbmEgPSB0aGlzLmNhcmdhckRpYWdyYW1hUG9sYXIoY29sdW1uYSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSB0aGlzLmRhc2hib2FyZFBpcGUuRElBR1JBTUFfRE9OQTpcbiAgICAgICAgY29sdW1uYSA9IHRoaXMuY2FyZ2FyRGlhZ3JhbWFEb25hKGNvbHVtbmEpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgdGhpcy5kYXNoYm9hcmRQaXBlLkRJQUdSQU1BX1JBREFSOlxuICAgICAgICBjb2x1bW5hID0gdGhpcy5jYXJnYXJEaWFncmFtYVJhZGFyKGNvbHVtbmEpO1xuICAgICAgICBicmVhaztcbiAgICBkZWZhdWx0OlxuICAgICAgYnJlYWs7XG4gIH1cbiAgcmV0dXJuIGNvbHVtbmE7XG4gIH1cblxuICBjYXJnYXJEaWFncmFtYUJhcnJhcyhjb2x1bW5hKSB7XG4gICAgY29sdW1uYS5kYXRvc0dyYWZpY2EudG90YWwgPSBjb2x1bW5hLmRhdG9zR3JhZmljYS5kYXRhc2V0c1swXS5kYXRhLnJlZHVjZSgoYWN1bXVsYWRvciwgdmFsb3JBY3R1YWwpID0+IGFjdW11bGFkb3IgKyB2YWxvckFjdHVhbCwgMCk7XG4gICAgY29sdW1uYS5kYXRvc0dyYWZpY2EuZGF0YSA9IHtcbiAgICAgIGxhYmVsczogY29sdW1uYS5kYXRvc0dyYWZpY2EubGFiZWxzLFxuICAgICAgZGF0YXNldHM6IGNvbHVtbmEuZGF0b3NHcmFmaWNhLmRhdGFzZXRzXG4gICAgfTtcbiAgICBjb2x1bW5hLmRhdG9zR3JhZmljYS5vcHRpb25zID0ge1xuICAgICAgbWFpbnRhaW5Bc3BlY3RSYXRpbzogZmFsc2UsXG4gICAgICBhc3BlY3RSYXRpbzogMC44LFxuICAgICAgcGx1Z2luczoge1xuICAgICAgICB0aXRsZToge1xuICAgICAgICAgIGRpc3BsYXk6IHRydWUsXG4gICAgICAgICAgdGV4dDogY29sdW1uYS5kYXRvc0dyYWZpY2EudGl0bGVcbiAgICAgICAgfSxcbiAgICAgICAgbGVnZW5kOiB7XG4gICAgICAgICAgICBsYWJlbHM6IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogXCIjMjk4MEI5XCIsXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfTtcbiAgICByZXR1cm4gY29sdW1uYTtcbiAgfVxuXG4gIGNhcmdhckRpYWdyYW1hQmFycmFzSG9yaXpvbnRhbChjb2x1bW5hKSB7XG4gICAgY29sdW1uYS5kYXRvc0dyYWZpY2EudG90YWwgPSBjb2x1bW5hLmRhdG9zR3JhZmljYS5kYXRhc2V0c1swXS5kYXRhLnJlZHVjZSgoYWN1bXVsYWRvciwgdmFsb3JBY3R1YWwpID0+IGFjdW11bGFkb3IgKyB2YWxvckFjdHVhbCwgMCk7XG4gICAgY29uc29sZS5sb2coY29sdW1uYSlcblxuICAgIGNvbHVtbmEuZGF0b3NHcmFmaWNhLmRhdGEgPSB7XG4gICAgICBsYWJlbHM6IGNvbHVtbmEuZGF0b3NHcmFmaWNhLmxhYmVscyxcbiAgICAgIGRhdGFzZXRzOiBjb2x1bW5hLmRhdG9zR3JhZmljYS5kYXRhc2V0c1xuICAgIH07XG4gICAgY29sdW1uYS5kYXRvc0dyYWZpY2Eub3B0aW9ucyA9IHtcbiAgICAgIGluZGV4QXhpczogJ3knLFxuICAgICAgbWFpbnRhaW5Bc3BlY3RSYXRpbzogZmFsc2UsXG4gICAgICBhc3BlY3RSYXRpbzogMC44LFxuICAgICAgcGx1Z2luczoge1xuICAgICAgICB0aXRsZToge1xuICAgICAgICAgIGRpc3BsYXk6IHRydWUsXG4gICAgICAgICAgdGV4dDogY29sdW1uYS5kYXRvc0dyYWZpY2EudGl0bGVcbiAgICAgICAgfSxcbiAgICAgICAgbGVnZW5kOiB7XG4gICAgICAgICAgICBsYWJlbHM6IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogXCIjMjk4MEI5XCIsXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfTtcbiAgICByZXR1cm4gY29sdW1uYTtcbiAgfVxuXG4gIGNhcmdhckRpYWdyYW1hQmFycmFzVG9ydGEoY29sdW1uYSkge1xuICAgIGNvbHVtbmEuZGF0b3NHcmFmaWNhLnRvdGFsID0gY29sdW1uYS5kYXRvc0dyYWZpY2EuZGF0YS5yZWR1Y2UoKGFjdW11bGFkb3IsIHZhbG9yQWN0dWFsKSA9PiBhY3VtdWxhZG9yICsgdmFsb3JBY3R1YWwsIDApO1xuICAgIGNvbHVtbmEuZGF0b3NHcmFmaWNhLmRhdGEgPSB7XG4gICAgICBsYWJlbHM6IGNvbHVtbmEuZGF0b3NHcmFmaWNhLmxhYmVscyxcbiAgICAgIGRhdGFzZXRzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBkYXRhOiBjb2x1bW5hLmRhdG9zR3JhZmljYS5kYXRhLFxuICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogY29sdW1uYS5kYXRvc0dyYWZpY2EuYmFja2dyb3VuZENvbG9yXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9O1xuICAgIGNvbHVtbmEuZGF0b3NHcmFmaWNhLm9wdGlvbnMgPSB7XG4gICAgICBwbHVnaW5zOiB7XG4gICAgICAgIHRpdGxlOiB7XG4gICAgICAgICAgZGlzcGxheTogdHJ1ZSxcbiAgICAgICAgICB0ZXh0OiBjb2x1bW5hLmRhdG9zR3JhZmljYS50aXRsZVxuICAgICAgICB9LFxuICAgICAgICBsZWdlbmQ6IHtcbiAgICAgICAgICAgIGxhYmVsczoge1xuICAgICAgICAgICAgICAgIHVzZVBvaW50U3R5bGU6IHRydWUsXG4gICAgICAgICAgICAgICAgY29sb3I6IFwiIzI5ODBCOVwiLFxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIH07XG4gICAgcmV0dXJuIGNvbHVtbmE7XG4gIH1cbiAgXG4gIGNhcmdhckRpYWdyYW1hQXJlYShjb2x1bW5hKSB7XG4gICAgY29sdW1uYS5kYXRvc0dyYWZpY2EudG90YWwgPSBjb2x1bW5hLmRhdG9zR3JhZmljYS5kYXRhc2V0c1swXS5kYXRhLnJlZHVjZSgoYWN1bXVsYWRvciwgdmFsb3JBY3R1YWwpID0+IGFjdW11bGFkb3IgKyB2YWxvckFjdHVhbCwgMCk7XG4gICAgY29sdW1uYS5kYXRvc0dyYWZpY2EuZGF0YSA9IHtcbiAgICAgIGxhYmVsczogY29sdW1uYS5kYXRvc0dyYWZpY2EubGFiZWxzLFxuICAgICAgZGF0YXNldHM6IGNvbHVtbmEuZGF0b3NHcmFmaWNhLmRhdGFzZXRzXG4gICAgfTtcbiAgICBjb2x1bW5hLmRhdG9zR3JhZmljYS5vcHRpb25zID0ge1xuICAgICAgc3RhY2tlZDogZmFsc2UsXG4gICAgICBtYWludGFpbkFzcGVjdFJhdGlvOiBmYWxzZSxcbiAgICAgIGFzcGVjdFJhdGlvOiAwLjYsXG4gICAgICBwbHVnaW5zOiB7XG4gICAgICAgIHRpdGxlOiB7XG4gICAgICAgICAgZGlzcGxheTogdHJ1ZSxcbiAgICAgICAgICB0ZXh0OiBjb2x1bW5hLmRhdG9zR3JhZmljYS50aXRsZVxuICAgICAgICB9LFxuICAgICAgICBsZWdlbmQ6IHtcbiAgICAgICAgICAgIGxhYmVsczoge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBcIiMyOTgwQjlcIixcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICB9O1xuICAgIHJldHVybiBjb2x1bW5hO1xuICB9XG5cbiAgY2FyZ2FyRGlhZ3JhbWFQb2xhcihjb2x1bW5hKSB7XG4gICAgY29sdW1uYS5kYXRvc0dyYWZpY2EudG90YWwgPSBjb2x1bW5hLmRhdG9zR3JhZmljYS5kYXRhLnJlZHVjZSgoYWN1bXVsYWRvciwgdmFsb3JBY3R1YWwpID0+IGFjdW11bGFkb3IgKyB2YWxvckFjdHVhbCwgMCk7XG4gICAgY29sdW1uYS5kYXRvc0dyYWZpY2EuZGF0YSA9IHtcbiAgICAgIGxhYmVsczogY29sdW1uYS5kYXRvc0dyYWZpY2EubGFiZWxzLFxuICAgICAgZGF0YXNldHM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGRhdGE6IGNvbHVtbmEuZGF0b3NHcmFmaWNhLmRhdGEsXG4gICAgICAgICAgYmFja2dyb3VuZENvbG9yOiBjb2x1bW5hLmRhdG9zR3JhZmljYS5iYWNrZ3JvdW5kQ29sb3JcbiAgICAgICAgfVxuICAgICAgXVxuICAgIH07XG4gICAgY29sdW1uYS5kYXRvc0dyYWZpY2Eub3B0aW9ucyA9IHtcbiAgICAgIHBsdWdpbnM6IHtcbiAgICAgICAgdGl0bGU6IHtcbiAgICAgICAgICBkaXNwbGF5OiB0cnVlLFxuICAgICAgICAgIHRleHQ6IGNvbHVtbmEuZGF0b3NHcmFmaWNhLnRpdGxlXG4gICAgICAgIH0sXG4gICAgICAgIGxlZ2VuZDoge1xuICAgICAgICAgICAgbGFiZWxzOiB7XG4gICAgICAgICAgICAgICAgY29sb3I6IFwiIzI5ODBCOVwiLFxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgIH07XG4gICAgcmV0dXJuIGNvbHVtbmE7XG4gIH1cblxuICBjYXJnYXJEaWFncmFtYURvbmEoY29sdW1uYSkge1xuICAgIGNvbHVtbmEuZGF0b3NHcmFmaWNhLnRvdGFsID0gY29sdW1uYS5kYXRvc0dyYWZpY2EuZGF0YS5yZWR1Y2UoKGFjdW11bGFkb3IsIHZhbG9yQWN0dWFsKSA9PiBhY3VtdWxhZG9yICsgdmFsb3JBY3R1YWwsIDApO1xuICAgIGNvbHVtbmEuZGF0b3NHcmFmaWNhLmRhdGEgPSB7XG4gICAgICBsYWJlbHM6IGNvbHVtbmEuZGF0b3NHcmFmaWNhLmxhYmVscyxcbiAgICAgIGRhdGFzZXRzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBkYXRhOiBjb2x1bW5hLmRhdG9zR3JhZmljYS5kYXRhLFxuICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogY29sdW1uYS5kYXRvc0dyYWZpY2EuYmFja2dyb3VuZENvbG9yXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9O1xuICAgIGNvbHVtbmEuZGF0b3NHcmFmaWNhLm9wdGlvbnMgPSB7XG4gICAgICBjdXRvdXQ6ICc2MCUnLFxuICAgICAgcGx1Z2luczoge1xuICAgICAgICB0aXRsZToge1xuICAgICAgICAgIGRpc3BsYXk6IHRydWUsXG4gICAgICAgICAgdGV4dDogY29sdW1uYS5kYXRvc0dyYWZpY2EudGl0bGVcbiAgICAgICAgfSxcbiAgICAgICAgbGVnZW5kOiB7XG4gICAgICAgICAgICBsYWJlbHM6IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogXCIjMjk4MEI5XCIsXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfTtcbiAgICByZXR1cm4gY29sdW1uYTtcbiAgfVxuXG4gIGNhcmdhckRpYWdyYW1hUmFkYXIoY29sdW1uYSkge1xuICAgIGNvbHVtbmEuZGF0b3NHcmFmaWNhLnRvdGFsID0gY29sdW1uYS5kYXRvc0dyYWZpY2EuZGF0YXNldHNbMF0uZGF0YS5yZWR1Y2UoKGFjdW11bGFkb3IsIHZhbG9yQWN0dWFsKSA9PiBhY3VtdWxhZG9yICsgdmFsb3JBY3R1YWwsIDApO1xuICAgIGNvbHVtbmEuZGF0b3NHcmFmaWNhLmRhdGEgPSB7XG4gICAgICBsYWJlbHM6IGNvbHVtbmEuZGF0b3NHcmFmaWNhLmxhYmVscyxcbiAgICAgIGRhdGFzZXRzOiBjb2x1bW5hLmRhdG9zR3JhZmljYS5kYXRhc2V0c1xuICAgIH07XG4gICAgY29sdW1uYS5kYXRvc0dyYWZpY2Eub3B0aW9ucyA9IHtcbiAgICAgIHBsdWdpbnM6IHtcbiAgICAgICAgdGl0bGU6IHtcbiAgICAgICAgICBkaXNwbGF5OiB0cnVlLFxuICAgICAgICAgIHRleHQ6IGNvbHVtbmEuZGF0b3NHcmFmaWNhLnRpdGxlXG4gICAgICAgIH0sXG4gICAgICAgIGxlZ2VuZDoge1xuICAgICAgICAgICAgbGFiZWxzOiB7XG4gICAgICAgICAgICAgICAgY29sb3I6IFwiIzI5ODBCOVwiLFxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgIH07XG4gICAgcmV0dXJuIGNvbHVtbmE7XG4gIH1cblxufSJdfQ==