@manticore-labs/nest 0.0.96 → 0.0.97

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/.idea/workspace.xml +159 -128
  2. package/build/main/lib/auth0/auth0.service.js +2 -2
  3. package/build/main/lib/funciones-util/buscar-registro.d.ts +2 -1
  4. package/build/main/lib/funciones-util/buscar-registro.js +9 -3
  5. package/build/main/lib/funciones-util/buscar-un-registro-por-id.d.ts +2 -1
  6. package/build/main/lib/funciones-util/buscar-un-registro-por-id.js +6 -3
  7. package/build/main/lib/funciones-util/buscar-where-or.d.ts +2 -1
  8. package/build/main/lib/funciones-util/buscar-where-or.js +6 -3
  9. package/build/main/lib/funciones-util/contar-registros.d.ts +2 -1
  10. package/build/main/lib/funciones-util/contar-registros.js +9 -3
  11. package/build/main/lib/funciones-util/crear-un-registro.js +2 -2
  12. package/build/main/lib/funciones-util/editar-un-registro.js +2 -2
  13. package/build/main/lib/funciones-util/eliminar-uno.js +4 -3
  14. package/build/main/lib/interfaces-util/funciones-middleware.d.ts +31 -6
  15. package/build/main/lib/principal.controller.d.ts +4 -2
  16. package/build/main/lib/principal.controller.js +48 -13
  17. package/build/main/lib/principal.gateway.d.ts +11 -9
  18. package/build/main/lib/principal.gateway.js +79 -27
  19. package/build/main/lib/principal.resolver.d.ts +9 -7
  20. package/build/main/lib/principal.resolver.js +50 -15
  21. package/build/module/lib/auth0/auth0.service.js +2 -2
  22. package/build/module/lib/funciones-util/buscar-registro.d.ts +2 -1
  23. package/build/module/lib/funciones-util/buscar-registro.js +9 -3
  24. package/build/module/lib/funciones-util/buscar-un-registro-por-id.d.ts +2 -1
  25. package/build/module/lib/funciones-util/buscar-un-registro-por-id.js +6 -3
  26. package/build/module/lib/funciones-util/buscar-where-or.d.ts +2 -1
  27. package/build/module/lib/funciones-util/buscar-where-or.js +6 -3
  28. package/build/module/lib/funciones-util/contar-registros.d.ts +2 -1
  29. package/build/module/lib/funciones-util/contar-registros.js +9 -3
  30. package/build/module/lib/funciones-util/crear-un-registro.js +2 -2
  31. package/build/module/lib/funciones-util/editar-un-registro.js +2 -2
  32. package/build/module/lib/funciones-util/eliminar-uno.js +4 -3
  33. package/build/module/lib/interfaces-util/funciones-middleware.d.ts +31 -6
  34. package/build/module/lib/principal.controller.d.ts +4 -2
  35. package/build/module/lib/principal.controller.js +48 -13
  36. package/build/module/lib/principal.gateway.d.ts +11 -9
  37. package/build/module/lib/principal.gateway.js +79 -27
  38. package/build/module/lib/principal.resolver.d.ts +9 -7
  39. package/build/module/lib/principal.resolver.js +50 -15
  40. package/package.json +1 -1
@@ -17,6 +17,7 @@ import { eliminarUno } from './funciones-util/eliminar-uno';
17
17
  import { editarUnRegistro } from './funciones-util/editar-un-registro';
18
18
  import { contarRegistros } from './funciones-util/contar-registros';
19
19
  import { buscarWhereOr } from './funciones-util/buscar-where-or';
20
+ import { PrincipalFindWhereOrOptions } from './principal.find-many-where-or';
20
21
  const io = require('socket.io-client');
21
22
  export class PrincipalGateway {
22
23
  constructor(_ip, _namespace, _secreto, _funciones, _configuracionBroadcast, _funcionesSeguridad, _servicio, _dto, _skip = 0, _take = 30, _mensajes = {
@@ -24,7 +25,7 @@ export class PrincipalGateway {
24
25
  crearUno: 'Registro inválido',
25
26
  actualizarUno: 'Error al actualizar',
26
27
  eliminarUno: 'Error al eliminar'
27
- }, contexto, _funcionesMiddleware = {}) {
28
+ }, contexto, _funcionesMiddleware = {}, activarPoliticasDeSeguridad = true, activarTriggersDeControlador = true) {
28
29
  this._ip = _ip;
29
30
  this._namespace = _namespace;
30
31
  this._secreto = _secreto;
@@ -38,6 +39,8 @@ export class PrincipalGateway {
38
39
  this._mensajes = _mensajes;
39
40
  this.contexto = contexto;
40
41
  this._funcionesMiddleware = _funcionesMiddleware;
42
+ this.activarPoliticasDeSeguridad = activarPoliticasDeSeguridad;
43
+ this.activarTriggersDeControlador = activarTriggersDeControlador;
41
44
  }
42
45
  afterInit(server) {
43
46
  console.log('Init ' + this._namespace);
@@ -106,20 +109,26 @@ export class PrincipalGateway {
106
109
  const objetoPoliticasDeSeguridad = {
107
110
  funciones: this._funcionesSeguridad.findAll ? this._funcionesSeguridad.findAll : []
108
111
  };
112
+ if (!this.activarPoliticasDeSeguridad) {
113
+ objetoPoliticasDeSeguridad.funciones = [];
114
+ }
109
115
  const puedeRealizarAccion$ = aplicarPoliticasDeSeguridad(tipoPoliticaSeguridad, objetoPoliticasDeSeguridad, this.contexto);
110
116
  return puedeRealizarAccion$
111
117
  .pipe(mergeMap((puedeRealizarAccion) => {
112
118
  if (puedeRealizarAccion) {
113
- return from(buscarVariosRegistros(datos.criterioBusqueda, PrincipalFindManyOptions, this._skip, this._take, this._servicio));
119
+ return from(buscarVariosRegistros(datos.criterioBusqueda, PrincipalFindManyOptions, this._skip, this._take, this._servicio, tipoPoliticaSeguridad, this._funcionesMiddleware.findAllBefore, this));
114
120
  }
115
121
  else {
116
122
  return of({ error: 403, mensaje: 'No tiene permisos' });
117
123
  }
118
- }), map((respuesta) => {
124
+ }), map(async (respuesta) => {
119
125
  if (respuesta.error) {
120
126
  return respuesta;
121
127
  }
122
128
  else {
129
+ if (this._funcionesMiddleware.findAllAfter && this.activarTriggersDeControlador) {
130
+ respuesta = await this._funcionesMiddleware.findAllAfter(respuesta, tipoPoliticaSeguridad, this);
131
+ }
123
132
  return { data: respuesta };
124
133
  }
125
134
  }));
@@ -134,20 +143,26 @@ export class PrincipalGateway {
134
143
  const objetoPoliticasDeSeguridad = {
135
144
  funciones: this._funcionesSeguridad.findWhereOr ? this._funcionesSeguridad.findWhereOr : []
136
145
  };
146
+ if (!this.activarPoliticasDeSeguridad) {
147
+ objetoPoliticasDeSeguridad.funciones = [];
148
+ }
137
149
  const puedeRealizarAccion$ = aplicarPoliticasDeSeguridad(tipoPoliticaSeguridad, objetoPoliticasDeSeguridad, this.contexto);
138
150
  return puedeRealizarAccion$
139
151
  .pipe(mergeMap((puedeRealizarAccion) => {
140
152
  if (puedeRealizarAccion) {
141
- return from(buscarWhereOr(datos.criterioBusqueda, PrincipalFindManyOptions, this._skip, this._take, this._servicio));
153
+ return from(buscarWhereOr(datos.criterioBusqueda, PrincipalFindWhereOrOptions, this._skip, this._take, this._servicio, tipoPoliticaSeguridad, this._funcionesMiddleware.findWhereOrBefore, this));
142
154
  }
143
155
  else {
144
156
  return of({ error: 403, mensaje: 'No tiene permisos' });
145
157
  }
146
- }), map((respuesta) => {
158
+ }), map(async (respuesta) => {
147
159
  if (respuesta.error) {
148
160
  return respuesta;
149
161
  }
150
162
  else {
163
+ if (this._funcionesMiddleware.findWhereOrAfter && this.activarTriggersDeControlador) {
164
+ respuesta = await this._funcionesMiddleware.findWhereOrAfter(respuesta, tipoPoliticaSeguridad, this);
165
+ }
151
166
  return { data: respuesta };
152
167
  }
153
168
  }));
@@ -162,20 +177,26 @@ export class PrincipalGateway {
162
177
  const objetoPoliticasDeSeguridad = {
163
178
  funciones: this._funcionesSeguridad.count ? this._funcionesSeguridad.count : []
164
179
  };
180
+ if (!this.activarPoliticasDeSeguridad) {
181
+ objetoPoliticasDeSeguridad.funciones = [];
182
+ }
165
183
  const puedeRealizarAccion$ = aplicarPoliticasDeSeguridad(tipoPoliticaSeguridad, objetoPoliticasDeSeguridad, this.contexto);
166
184
  return puedeRealizarAccion$
167
185
  .pipe(mergeMap((puedeRealizarAccion) => {
168
186
  if (puedeRealizarAccion) {
169
- return from(contarRegistros(datos.criterioBusqueda, PrincipalFindManyOptions, this._skip, this._take, this._servicio));
187
+ return from(contarRegistros(datos.criterioBusqueda, PrincipalFindManyOptions, this._skip, this._take, this._servicio, tipoPoliticaSeguridad, this._funcionesMiddleware.countBefore, this));
170
188
  }
171
189
  else {
172
190
  return of({ error: 403, mensaje: 'No tiene permisos' });
173
191
  }
174
- }), map((respuesta) => {
192
+ }), map(async (respuesta) => {
175
193
  if (respuesta.error) {
176
194
  return respuesta;
177
195
  }
178
196
  else {
197
+ if (this._funcionesMiddleware.countAfter && this.activarTriggersDeControlador) {
198
+ respuesta = await this._funcionesMiddleware.countAfter(respuesta, tipoPoliticaSeguridad, this);
199
+ }
179
200
  return { data: respuesta };
180
201
  }
181
202
  }));
@@ -183,12 +204,16 @@ export class PrincipalGateway {
183
204
  requestFindOne(socketCliente, datos) {
184
205
  try {
185
206
  if (!datos.id || typeof datos.id !== 'string' || Number(datos.id).toString() === 'NaN') {
186
- return of({ error: 400, mensaje: this._mensajes.encontrarUno });
207
+ return of(new Promise((res) => {
208
+ res({ error: 400, mensaje: this._mensajes.encontrarUno });
209
+ }));
187
210
  }
188
211
  }
189
212
  catch (e) {
190
213
  console.error(e);
191
- return of({ error: 400, mensaje: this._mensajes.encontrarUno });
214
+ return of(new Promise((res) => {
215
+ res({ error: 400, mensaje: this._mensajes.encontrarUno });
216
+ }));
192
217
  }
193
218
  const tipoPoliticaSeguridad = {
194
219
  socketio: {
@@ -199,27 +224,35 @@ export class PrincipalGateway {
199
224
  const objetoPoliticasDeSeguridad = {
200
225
  funciones: this._funcionesSeguridad.findOne ? this._funcionesSeguridad.findOne : []
201
226
  };
227
+ if (!this.activarPoliticasDeSeguridad) {
228
+ objetoPoliticasDeSeguridad.funciones = [];
229
+ }
202
230
  const puedeRealizarAccion$ = aplicarPoliticasDeSeguridad(tipoPoliticaSeguridad, objetoPoliticasDeSeguridad, this.contexto);
203
231
  return puedeRealizarAccion$
204
232
  .pipe(mergeMap((puedeRealizarAccion) => {
205
233
  if (puedeRealizarAccion) {
206
- return from(buscarRegistroPorId(PrincipalId, datos.id, this._servicio, this._mensajes.encontrarUno, true));
234
+ return from(buscarRegistroPorId(PrincipalId, datos.id, this._servicio, this._mensajes.encontrarUno, true, tipoPoliticaSeguridad, this._funcionesMiddleware.findOneBefore, this));
207
235
  }
208
236
  else {
209
237
  return of({ error: 403, mensaje: 'No tiene permisos' });
210
238
  }
211
- }), map((respuesta) => {
239
+ }), map(async (respuesta) => {
212
240
  if (respuesta.error) {
213
241
  return respuesta;
214
242
  }
215
243
  else {
244
+ if (this._funcionesMiddleware.findOneAfter && this.activarTriggersDeControlador) {
245
+ respuesta = await this._funcionesMiddleware.findOneAfter(respuesta, tipoPoliticaSeguridad, this);
246
+ }
216
247
  return { data: respuesta };
217
248
  }
218
249
  }));
219
250
  }
220
251
  requestCreateOne(socketCliente, datos) {
221
252
  if (!datos.nuevoRegistro || typeof datos.nuevoRegistro !== 'object') {
222
- return of({ error: 400, mensaje: this._mensajes.crearUno });
253
+ return of(new Promise((res) => {
254
+ res({ error: 400, mensaje: this._mensajes.crearUno });
255
+ }));
223
256
  }
224
257
  const tipoPoliticaSeguridad = {
225
258
  socketio: {
@@ -230,6 +263,9 @@ export class PrincipalGateway {
230
263
  const objetoPoliticasDeSeguridad = {
231
264
  funciones: this._funcionesSeguridad.createOne ? this._funcionesSeguridad.createOne : []
232
265
  };
266
+ if (!this.activarPoliticasDeSeguridad) {
267
+ objetoPoliticasDeSeguridad.funciones = [];
268
+ }
233
269
  const puedeRealizarAccion$ = aplicarPoliticasDeSeguridad(tipoPoliticaSeguridad, objetoPoliticasDeSeguridad, this.contexto);
234
270
  return puedeRealizarAccion$
235
271
  .pipe(mergeMap((puedeRealizarAccion) => {
@@ -239,13 +275,13 @@ export class PrincipalGateway {
239
275
  else {
240
276
  return of({ error: 403, mensaje: 'No tiene permisos' });
241
277
  }
242
- }), map((respuesta) => {
278
+ }), map(async (respuesta) => {
243
279
  if (respuesta.error) {
244
280
  return respuesta;
245
281
  }
246
282
  else {
247
- if (this._funcionesMiddleware.createAfter) {
248
- respuesta = this._funcionesMiddleware.createAfter(respuesta, tipoPoliticaSeguridad, this);
283
+ if (this._funcionesMiddleware.createAfter && this.activarTriggersDeControlador) {
284
+ respuesta = await this._funcionesMiddleware.createAfter(respuesta, tipoPoliticaSeguridad, this);
249
285
  }
250
286
  const tieneConfiguracionDeBroadcast = this._configuracionBroadcast.createOne;
251
287
  if (tieneConfiguracionDeBroadcast) {
@@ -269,12 +305,16 @@ export class PrincipalGateway {
269
305
  requestDeleteOne(socketCliente, datos) {
270
306
  try {
271
307
  if (!datos.id || typeof datos.id !== 'string' || Number(datos.id).toString() === 'NaN') {
272
- return of({ error: 400, mensaje: this._mensajes.encontrarUno });
308
+ return of(new Promise((res) => {
309
+ res({ error: 400, mensaje: this._mensajes.eliminarUno });
310
+ }));
273
311
  }
274
312
  }
275
313
  catch (e) {
276
314
  console.error(e);
277
- return of({ error: 400, mensaje: this._mensajes.encontrarUno });
315
+ return of(new Promise((res) => {
316
+ res({ error: 400, mensaje: this._mensajes.eliminarUno });
317
+ }));
278
318
  }
279
319
  const tipoPoliticaSeguridad = {
280
320
  socketio: {
@@ -285,6 +325,9 @@ export class PrincipalGateway {
285
325
  const objetoPoliticasDeSeguridad = {
286
326
  funciones: this._funcionesSeguridad.deleteOne ? this._funcionesSeguridad.deleteOne : []
287
327
  };
328
+ if (!this.activarPoliticasDeSeguridad) {
329
+ objetoPoliticasDeSeguridad.funciones = [];
330
+ }
288
331
  const puedeRealizarAccion$ = aplicarPoliticasDeSeguridad(tipoPoliticaSeguridad, objetoPoliticasDeSeguridad, this.contexto);
289
332
  return puedeRealizarAccion$
290
333
  .pipe(mergeMap((puedeRealizarAccion) => {
@@ -294,13 +337,13 @@ export class PrincipalGateway {
294
337
  else {
295
338
  return of({ error: 403, mensaje: 'No tiene permisos' });
296
339
  }
297
- }), map((respuesta) => {
340
+ }), map(async (respuesta) => {
298
341
  if (respuesta.error) {
299
342
  return respuesta;
300
343
  }
301
344
  else {
302
- if (this._funcionesMiddleware.deleteAfter) {
303
- respuesta = this._funcionesMiddleware.deleteAfter(respuesta, tipoPoliticaSeguridad, this, datos.id);
345
+ if (this._funcionesMiddleware.deleteAfter && this.activarTriggersDeControlador) {
346
+ respuesta = await this._funcionesMiddleware.deleteAfter(respuesta, tipoPoliticaSeguridad, this, datos.id);
304
347
  }
305
348
  const tieneConfiguracionDeBroadcast = this._configuracionBroadcast.deleteOne;
306
349
  if (tieneConfiguracionDeBroadcast) {
@@ -323,16 +366,22 @@ export class PrincipalGateway {
323
366
  }
324
367
  requestUpdateOne(socketCliente, datos) {
325
368
  if (!datos.registroaActualizar || typeof datos.registroaActualizar !== 'object') {
326
- return of({ error: 400, mensaje: this._mensajes.crearUno });
369
+ return of(new Promise((res) => {
370
+ res({ error: 400, mensaje: this._mensajes.actualizarUno });
371
+ }));
327
372
  }
328
373
  try {
329
374
  if (!datos.id || typeof datos.id !== 'string' || Number(datos.id).toString() === 'NaN') {
330
- return of({ error: 400, mensaje: this._mensajes.encontrarUno });
375
+ return of(new Promise((res) => {
376
+ res({ error: 400, mensaje: this._mensajes.actualizarUno });
377
+ }));
331
378
  }
332
379
  }
333
380
  catch (e) {
334
381
  console.error(e);
335
- return of({ error: 400, mensaje: this._mensajes.encontrarUno });
382
+ return of(new Promise((res) => {
383
+ res({ error: 400, mensaje: this._mensajes.actualizarUno });
384
+ }));
336
385
  }
337
386
  const tipoPoliticaSeguridad = {
338
387
  socketio: {
@@ -343,6 +392,9 @@ export class PrincipalGateway {
343
392
  const objetoPoliticasDeSeguridad = {
344
393
  funciones: this._funcionesSeguridad.updateOne ? this._funcionesSeguridad.updateOne : []
345
394
  };
395
+ if (!this.activarPoliticasDeSeguridad) {
396
+ objetoPoliticasDeSeguridad.funciones = [];
397
+ }
346
398
  const puedeRealizarAccion$ = aplicarPoliticasDeSeguridad(tipoPoliticaSeguridad, objetoPoliticasDeSeguridad, this.contexto);
347
399
  return puedeRealizarAccion$
348
400
  .pipe(mergeMap((puedeRealizarAccion) => {
@@ -352,13 +404,13 @@ export class PrincipalGateway {
352
404
  else {
353
405
  return of({ error: 403, mensaje: 'No tiene permisos' });
354
406
  }
355
- }), map((respuesta) => {
407
+ }), map(async (respuesta) => {
356
408
  if (respuesta.error) {
357
409
  return respuesta;
358
410
  }
359
411
  else {
360
- if (this._funcionesMiddleware.updateAfter) {
361
- respuesta = this._funcionesMiddleware.updateAfter(respuesta, tipoPoliticaSeguridad, this, datos.id);
412
+ if (this._funcionesMiddleware.updateAfter && this.activarTriggersDeControlador) {
413
+ respuesta = await this._funcionesMiddleware.updateAfter(respuesta, tipoPoliticaSeguridad, this, datos.id);
362
414
  }
363
415
  const tieneConfiguracionDeBroadcast = this._configuracionBroadcast.updateOne;
364
416
  if (tieneConfiguracionDeBroadcast) {
@@ -404,4 +456,4 @@ __decorate([
404
456
  __decorate([
405
457
  SubscribeMessage('requestUpdateOne')
406
458
  ], PrincipalGateway.prototype, "requestUpdateOne", null);
407
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpbmNpcGFsLmdhdGV3YXkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3ByaW5jaXBhbC5nYXRld2F5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBSXRELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBR3pGLE9BQU8sRUFBYyxFQUFFLEVBQUUsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDekUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDekUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDakYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUdyRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUdqRSxNQUFNLEVBQUUsR0FBRyxPQUFPLENBQUMsa0JBQWtCLENBQUMsQ0FBQztBQUd2QyxNQUFNO0lBS0osWUFBNkIsR0FBVyxFQUNYLFVBQWtCLEVBQ2xCLFFBQWdCLEVBQ2hCLFVBQTRCLEVBQzVCLHVCQUFzRCxFQUN0RCxtQkFBdUMsRUFDdkMsU0FBUyxFQUNULElBQWtCLEVBQ2xCLFFBQVEsQ0FB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
459
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpbmNpcGFsLmdhdGV3YXkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3ByaW5jaXBhbC5nYXRld2F5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBSXRELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBR3pGLE9BQU8sRUFBYyxFQUFFLEVBQUUsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDekUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDekUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDakYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUdyRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUVqRSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUU3RSxNQUFNLEVBQUUsR0FBRyxPQUFPLENBQUMsa0JBQWtCLENBQUMsQ0FBQztBQUd2QyxNQUFNO0lBS0osWUFBNkIsR0FBVyxFQUNYLFVBQWtCLEVBQ2xCLFFBQWdCLEVBQ2hCLFVBQTRCLEVBQzVCLHVCQUFzRCxFQUN0RCxtQkFBdUMsRUFDdkMsU0FBUyxFQUNULElBQWtCLEVBQ2xCLFFBQVEsQ0FBQyxFQUNULFFBQVEsRUFBRSxFQUNWLFlBQWdDO1FBQy9DLFlBQVksRUFBRSxlQUFlO1FBQzdCLFFBQVEsRUFBRSxtQkFBbUI7UUFDN0IsYUFBYSxFQUFFLHFCQUFxQjtRQUNwQyxXQUFXLEVBQUUsbUJBQW1CO0tBQ2pDLEVBQ1MsUUFBYSxFQUNOLHVCQUdMLEVBQUUsRUFDTiw4QkFBOEIsSUFBSSxFQUNsQywrQkFBK0IsSUFBSTtRQXRCMUIsUUFBRyxHQUFILEdBQUcsQ0FBUTtRQUNYLGVBQVUsR0FBVixVQUFVLENBQVE7UUFDbEIsYUFBUSxHQUFSLFFBQVEsQ0FBUTtRQUNoQixlQUFVLEdBQVYsVUFBVSxDQUFrQjtRQUM1Qiw0QkFBdUIsR0FBdkIsdUJBQXVCLENBQStCO1FBQ3RELHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBb0I7UUFDdkMsY0FBUyxHQUFULFNBQVMsQ0FBQTtRQUNULFNBQUksR0FBSixJQUFJLENBQWM7UUFDbEIsVUFBSyxHQUFMLEtBQUssQ0FBSTtRQUNULFVBQUssR0FBTCxLQUFLLENBQUs7UUFDVixjQUFTLEdBQVQsU0FBUyxDQUt6QjtRQUNTLGFBQVEsR0FBUixRQUFRLENBQUs7UUFDTix5QkFBb0IsR0FBcEIsb0JBQW9CLENBR3ZCO1FBQ04sZ0NBQTJCLEdBQTNCLDJCQUEyQixDQUFPO1FBQ2xDLGlDQUE0QixHQUE1Qiw0QkFBNEIsQ0FBTztJQUN2RCxDQUFDO0lBRUQsU0FBUyxDQUFDLE1BQVc7UUFDbkIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3ZDLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLEVBQUU7WUFDN0IsT0FBTyxDQUFDLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1lBQ3hDLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQ25DO1FBQ0QsSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDN0MsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsU0FBUyxFQUFFLEdBQUcsRUFBRTtZQUM3QixJQUFJLENBQUMsTUFBTTtpQkFDUixJQUFJLENBQUMsNkJBQTZCLEVBQ2pDLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFDMUIsQ0FBQyxTQUFTLEVBQUUsRUFBRTtnQkFDWixPQUFPLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3pCLENBQUMsQ0FDRixDQUFDO1FBQ04sQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUM1QixPQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQztRQUMxQixDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLFlBQVksRUFBRSxDQUFDLG1CQUFtQixFQUFFLEVBQUU7WUFDbkQsT0FBTyxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsbUJBQW1CLENBQUMsQ0FBQztRQUNwRCxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLFlBQVksRUFBRSxDQUFDLGNBQWMsRUFBRSxFQUFFO1lBQzlDLE9BQU8sQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBQy9DLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsWUFBWSxFQUFFLENBQUMsaUJBQWlCLEVBQUUsRUFBRTtZQUNqRCxPQUFPLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1FBQ2xELENBQUMsQ0FBQyxDQUFDO0lBRUwsQ0FBQztJQUVELGdCQUFnQixDQUFDLE1BQVcsRUFBRSxHQUFHLElBQVc7UUFDMUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxHQUFHLHlCQUF5QixFQUFFLE1BQU0sQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDM0UsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixFQUFFO1lBQ3BDLE9BQU8sQ0FBQyxHQUFHLENBQUMscUNBQXFDLENBQUMsQ0FBQztZQUNuRCxJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDO1NBQ25EO0lBQ0gsQ0FBQztJQUVELGdCQUFnQixDQUFDLE1BQVc7UUFDMUIsT0FBTyxDQUFDLElBQUksQ0FBQyxtQ0FBbUMsRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDN0QsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixFQUFFO1lBQ3BDLE9BQU8sQ0FBQyxHQUFHLENBQUMscUNBQXFDLENBQUMsQ0FBQztZQUNuRCxJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQzFDO0lBQ0gsQ0FBQztJQUlELDJCQUEyQixDQUFDLGFBQWEsRUFBRSxLQUFLO1FBQzlDLE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUM7UUFDOUIsSUFBSSxPQUFPLEVBQUU7WUFDWCxJQUFJLE9BQU8sS0FBSyxJQUFJLENBQUMsUUFBUSxFQUFFO2dCQUM3QixJQUFJLENBQUMsUUFBUSxHQUFHLGFBQWEsQ0FBQyxFQUFFLENBQUM7Z0JBQ2pDLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUM7YUFDMUI7aUJBQU07Z0JBQ0wsT0FBTyxDQUFDLEtBQUssQ0FBQywyQkFBMkIsRUFBRSxhQUFhLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQzdELE9BQU8sRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxDQUFDO2FBQ3JEO1NBQ0Y7YUFBTTtZQUNMLE9BQU8sQ0FBQyxLQUFLLENBQUMsa0JBQWtCLEVBQUUsYUFBYSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ3BELE9BQU8sRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxDQUFDO1NBQ3JEO0lBQ0gsQ0FBQztJQUdELGNBQWMsQ0FBQyxhQUFhLEVBQUUsS0FBSztRQUVqQyxNQUFNLHFCQUFxQixHQUF5QjtZQUNsRCxRQUFRLEVBQUU7Z0JBQ1IsS0FBSztnQkFDTCxhQUFhO2FBQ2Q7U0FDRixDQUFDO1FBQ0YsTUFBTSwwQkFBMEIsR0FBOEI7WUFDNUQsU0FBUyxFQUFFLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUU7U0FDcEYsQ0FBQztRQUNGLElBQUksQ0FBQyxJQUFJLENBQUMsMkJBQTJCLEVBQUU7WUFDckMsMEJBQTBCLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztTQUMzQztRQUVELE1BQU0sb0JBQW9CLEdBQUcsMkJBQTJCLENBQUMscUJBQXFCLEVBQUUsMEJBQTBCLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRTNILE9BQU8sb0JBQW9CO2FBQ3hCLElBQUksQ0FDSCxRQUFRLENBQ04sQ0FBQyxtQkFBbUIsRUFBRSxFQUFFO1lBQ3RCLElBQUksbUJBQW1CLEVBQUU7Z0JBQ3ZCLE9BQU8sSUFBSSxDQUFDLHFCQUFxQixDQUMvQixLQUFLLENBQUMsZ0JBQWdCLEVBQ3RCLHdCQUF3QixFQUN4QixJQUFJLENBQUMsS0FBSyxFQUNWLElBQUksQ0FBQyxLQUFLLEVBQ1YsSUFBSSxDQUFDLFNBQVMsRUFDZCxxQkFBcUIsRUFDckIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLGFBQWEsRUFDdkMsSUFBSSxDQUNILENBQ0YsQ0FBQzthQUNIO2lCQUFNO2dCQUNMLE9BQU8sRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsQ0FBQyxDQUFDO2FBQ3pEO1FBQ0gsQ0FBQyxDQUNGLEVBQ0QsR0FBRyxDQUNELEtBQUssRUFBRSxTQUFjLEVBQUUsRUFBRTtZQUN2QixJQUFJLFNBQVMsQ0FBQyxLQUFLLEVBQUU7Z0JBQ25CLE9BQU8sU0FBUyxDQUFDO2FBQ2xCO2lCQUFNO2dCQUNMLElBQUksSUFBSSxDQUFDLG9CQUFvQixDQUFDLFlBQVksSUFBSSxJQUFJLENBQUMsNEJBQTRCLEVBQUU7b0JBQy9FLFNBQVMsR0FBRyxNQUFNLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxZQUFZLENBQ3RELFNBQVMsRUFDVCxxQkFBcUIsRUFDckIsSUFBSSxDQUNMLENBQUM7aUJBQ0g7Z0JBQ0QsT0FBTyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsQ0FBQzthQUM1QjtRQUNILENBQUMsQ0FDRixDQUNGLENBQUM7SUFDTixDQUFDO0lBSUQsa0JBQWtCLENBQUMsYUFBYSxFQUFFLEtBQUs7UUFFckMsTUFBTSxxQkFBcUIsR0FBeUI7WUFDbEQsUUFBUSxFQUFFO2dCQUNSLEtBQUs7Z0JBQ0wsYUFBYTthQUNkO1NBQ0YsQ0FBQztRQUNGLE1BQU0sMEJBQTBCLEdBQThCO1lBQzVELFNBQVMsRUFBRSxJQUFJLENBQUMsbUJBQW1CLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUFFO1NBQzVGLENBQUM7UUFFRixJQUFJLENBQUMsSUFBSSxDQUFDLDJCQUEyQixFQUFFO1lBQ3JDLDBCQUEwQixDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7U0FDM0M7UUFFRCxNQUFNLG9CQUFvQixHQUFHLDJCQUEyQixDQUFDLHFCQUFxQixFQUFFLDBCQUEwQixFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUUzSCxPQUFPLG9CQUFvQjthQUN4QixJQUFJLENBQ0gsUUFBUSxDQUNOLENBQUMsbUJBQW1CLEVBQUUsRUFBRTtZQUN0QixJQUFJLG1CQUFtQixFQUFFO2dCQUN2QixPQUFPLElBQUksQ0FDVCxhQUFhLENBQ1gsS0FBSyxDQUFDLGdCQUFnQixFQUN0QiwyQkFBMkIsRUFDM0IsSUFBSSxDQUFDLEtBQUssRUFDVixJQUFJLENBQUMsS0FBSyxFQUNWLElBQUksQ0FBQyxTQUFTLEVBQ2QscUJBQXFCLEVBQ3JCLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxpQkFBaUIsRUFDM0MsSUFBSSxDQUNMLENBQ0YsQ0FBQzthQUNIO2lCQUFNO2dCQUNMLE9BQU8sRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsQ0FBQyxDQUFDO2FBQ3pEO1FBQ0gsQ0FBQyxDQUNGLEVBQ0QsR0FBRyxDQUNELEtBQUssRUFBRSxTQUFjLEVBQUUsRUFBRTtZQUN2QixJQUFJLFNBQVMsQ0FBQyxLQUFLLEVBQUU7Z0JBQ25CLE9BQU8sU0FBUyxDQUFDO2FBQ2xCO2lCQUFNO2dCQUNMLElBQUksSUFBSSxDQUFDLG9CQUFvQixDQUFDLGdCQUFnQixJQUFJLElBQUksQ0FBQyw0QkFBNEIsRUFBRTtvQkFDbkYsU0FBUyxHQUFHLE1BQU0sSUFBSSxDQUFDLG9CQUFvQixDQUFDLGdCQUFnQixDQUMxRCxTQUFTLEVBQ1QscUJBQXFCLEVBQ3JCLElBQUksQ0FDTCxDQUFDO2lCQUNIO2dCQUNELE9BQU8sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLENBQUM7YUFDNUI7UUFDSCxDQUFDLENBQ0YsQ0FDRixDQUFDO0lBQ04sQ0FBQztJQUlELEtBQUssQ0FBQyxhQUFhLEVBQUUsS0FBSztRQUV4QixNQUFNLHFCQUFxQixHQUF5QjtZQUNsRCxRQUFRLEVBQUU7Z0JBQ1IsS0FBSztnQkFDTCxhQUFhO2FBQ2Q7U0FDRixDQUFDO1FBQ0YsTUFBTSwwQkFBMEIsR0FBOEI7WUFDNUQsU0FBUyxFQUFFLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUU7U0FDaEYsQ0FBQztRQUVGLElBQUksQ0FBQyxJQUFJLENBQUMsMkJBQTJCLEVBQUU7WUFDckMsMEJBQTBCLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztTQUMzQztRQUVELE1BQU0sb0JBQW9CLEdBQUcsMkJBQTJCLENBQUMscUJBQXFCLEVBQUUsMEJBQTBCLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRTNILE9BQU8sb0JBQW9CO2FBQ3hCLElBQUksQ0FDSCxRQUFRLENBQ04sQ0FBQyxtQkFBbUIsRUFBRSxFQUFFO1lBQ3RCLElBQUksbUJBQW1CLEVBQUU7Z0JBQ3ZCLE9BQU8sSUFBSSxDQUNULGVBQWUsQ0FDYixLQUFLLENBQUMsZ0JBQWdCLEVBQ3RCLHdCQUF3QixFQUN4QixJQUFJLENBQUMsS0FBSyxFQUNWLElBQUksQ0FBQyxLQUFLLEVBQ1YsSUFBSSxDQUFDLFNBQVMsRUFDZCxxQkFBcUIsRUFDckIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFdBQVcsRUFDckMsSUFBSSxDQUNMLENBQ0YsQ0FBQzthQUNIO2lCQUFNO2dCQUNMLE9BQU8sRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsQ0FBQyxDQUFDO2FBQ3pEO1FBQ0gsQ0FBQyxDQUNGLEVBQ0QsR0FBRyxDQUNELEtBQUssRUFBRSxTQUFjLEVBQUUsRUFBRTtZQUN2QixJQUFJLFNBQVMsQ0FBQyxLQUFLLEVBQUU7Z0JBQ25CLE9BQU8sU0FBUyxDQUFDO2FBQ2xCO2lCQUFNO2dCQUNMLElBQUksSUFBSSxDQUFDLG9CQUFvQixDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsNEJBQTRCLEVBQUU7b0JBQzdFLFNBQVMsR0FBRyxNQUFNLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxVQUFVLENBQ3BELFNBQVMsRUFDVCxxQkFBcUIsRUFDckIsSUFBSSxDQUNMLENBQUM7aUJBQ0g7Z0JBQ0QsT0FBTyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsQ0FBQzthQUM1QjtRQUNILENBQUMsQ0FDRixDQUNGLENBQUM7SUFDTixDQUFDO0lBR0QsY0FBYyxDQUFDLGFBQWEsRUFBRSxLQUFLO1FBRWpDLElBQUk7WUFDRixJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsSUFBSSxPQUFPLEtBQUssQ0FBQyxFQUFFLEtBQUssUUFBUSxJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFLEtBQUssS0FBSyxFQUFFO2dCQUN0RixPQUFPLEVBQUUsQ0FDUCxJQUFJLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO29CQUNsQixHQUFHLENBQUMsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUM7Z0JBQzVELENBQUMsQ0FBQyxDQUNILENBQUM7YUFDSDtTQUNGO1FBQUMsT0FBTyxDQUFDLEVBQUU7WUFDVixPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2pCLE9BQU8sRUFBRSxDQUNQLElBQUksT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7Z0JBQ2xCLEdBQUcsQ0FBQyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQztZQUM1RCxDQUFDLENBQUMsQ0FDSCxDQUFDO1NBQ0g7UUFFRCxNQUFNLHFCQUFxQixHQUF5QjtZQUNsRCxRQUFRLEVBQUU7Z0JBQ1IsS0FBSztnQkFDTCxhQUFhO2FBQ2Q7U0FDRixDQUFDO1FBQ0YsTUFBTSwwQkFBMEIsR0FBOEI7WUFDNUQsU0FBUyxFQUFFLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUU7U0FDcEYsQ0FBQztRQUVGLElBQUksQ0FBQyxJQUFJLENBQUMsMkJBQTJCLEVBQUU7WUFDckMsMEJBQTBCLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztTQUMzQztRQUVELE1BQU0sb0JBQW9CLEdBQUcsMkJBQTJCLENBQUMscUJBQXFCLEVBQUUsMEJBQTBCLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRTNILE9BQU8sb0JBQW9CO2FBQ3hCLElBQUksQ0FDSCxRQUFRLENBQ04sQ0FBQyxtQkFBbUIsRUFBRSxFQUFFO1lBQ3RCLElBQUksbUJBQW1CLEVBQUU7Z0JBQ3ZCLE9BQU8sSUFBSSxDQUNULG1CQUFtQixDQUNqQixXQUFXLEVBQ1gsS0FBSyxDQUFDLEVBQUUsRUFDUixJQUFJLENBQUMsU0FBUyxFQUNkLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxFQUMzQixJQUFJLEVBQ0oscUJBQXFCLEVBQ3JCLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxhQUFhLEVBQ3ZDLElBQUksQ0FDTCxDQUNGLENBQUM7YUFDSDtpQkFBTTtnQkFDTCxPQUFPLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLENBQUMsQ0FBQzthQUN6RDtRQUNILENBQUMsQ0FDRixFQUNELEdBQUcsQ0FDRCxLQUFLLEVBQUUsU0FBYyxFQUFFLEVBQUU7WUFDdkIsSUFBSSxTQUFTLENBQUMsS0FBSyxFQUFFO2dCQUNuQixPQUFPLFNBQVMsQ0FBQzthQUNsQjtpQkFBTTtnQkFDTCxJQUFJLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLDRCQUE0QixFQUFFO29CQUMvRSxTQUFTLEdBQUcsTUFBTSxJQUFJLENBQUMsb0JBQW9CLENBQUMsWUFBWSxDQUN0RCxTQUFTLEVBQ1QscUJBQXFCLEVBQ3JCLElBQUksQ0FDTCxDQUFDO2lCQUNIO2dCQUNELE9BQU8sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLENBQUM7YUFDNUI7UUFDSCxDQUFDLENBQ0YsQ0FDRixDQUFDO0lBQ04sQ0FBQztJQUdELGdCQUFnQixDQUFDLGFBQWEsRUFBRSxLQUFLO1FBQ25DLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxJQUFJLE9BQU8sS0FBSyxDQUFDLGFBQWEsS0FBSyxRQUFRLEVBQUU7WUFDbkUsT0FBTyxFQUFFLENBQ1AsSUFBSSxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtnQkFDbEIsR0FBRyxDQUFDLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1lBQ3hELENBQUMsQ0FBQyxDQUNILENBQUM7U0FDSDtRQUVELE1BQU0scUJBQXFCLEdBQXlCO1lBQ2xELFFBQVEsRUFBRTtnQkFDUixLQUFLO2dCQUNMLGFBQWE7YUFDZDtTQUNGLENBQUM7UUFDRixNQUFNLDBCQUEwQixHQUE4QjtZQUM1RCxTQUFTLEVBQUUsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtTQUN4RixDQUFDO1FBRUYsSUFBSSxDQUFDLElBQUksQ0FBQywyQkFBMkIsRUFBRTtZQUNyQywwQkFBMEIsQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO1NBQzNDO1FBRUQsTUFBTSxvQkFBb0IsR0FBRywyQkFBMkIsQ0FBQyxxQkFBcUIsRUFBRSwwQkFBMEIsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFM0gsT0FBTyxvQkFBb0I7YUFDeEIsSUFBSSxDQUNILFFBQVEsQ0FDTixDQUFDLG1CQUFtQixFQUFFLEVBQUU7WUFDdEIsSUFBSSxtQkFBbUIsRUFBRTtnQkFFdkIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUN6QixLQUFLLENBQUMsYUFBYSxFQUNuQixJQUFJLENBQUMsU0FBUyxFQUNkLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUNuQixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFDdkIscUJBQXFCLEVBQ3JCLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxZQUFZLEVBQ3RDLElBQUksRUFDSixJQUFJLENBQUMsQ0FBQyxDQUFDO2FBQ1Y7aUJBQU07Z0JBQ0wsT0FBTyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxDQUFDLENBQUM7YUFDekQ7UUFDSCxDQUFDLENBQ0YsRUFDRCxHQUFHLENBQ0QsS0FBSyxFQUFFLFNBQWMsRUFBRSxFQUFFO1lBQ3ZCLElBQUksU0FBUyxDQUFDLEtBQUssRUFBRTtnQkFDbkIsT0FBTyxTQUFTLENBQUM7YUFDbEI7aUJBQU07Z0JBQ0wsSUFBSSxJQUFJLENBQUMsb0JBQW9CLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyw0QkFBNEIsRUFBRTtvQkFDOUUsU0FBUyxHQUFHLE1BQU0sSUFBSSxDQUFDLG9CQUFvQixDQUFDLFdBQVcsQ0FDckQsU0FBUyxFQUNULHFCQUFxQixFQUNyQixJQUFJLENBQ0wsQ0FBQztpQkFDSDtnQkFDRCxNQUFNLDZCQUE2QixHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxTQUFTLENBQUM7Z0JBQzdFLElBQUksNkJBQTZCLEVBQUU7b0JBQ2pDLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDO29CQUN4RSxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDO29CQUU1RSxJQUFJLGNBQWMsSUFBSSxDQUFDLGdCQUFnQixFQUFFO3dCQUN2QyxPQUFPLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLENBQUM7d0JBQ3JDLGFBQWE7NkJBQ1YsU0FBUzs2QkFDVCxJQUFJLENBQUMsWUFBWSxFQUFFLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUM7cUJBQzVDO29CQUNELElBQUksZ0JBQWdCLEVBQUU7d0JBQ3BCLE9BQU8sQ0FBQyxJQUFJLENBQUMseUJBQXlCLENBQUMsQ0FBQzt3QkFDeEMsZ0JBQWdCLENBQUMsYUFBYSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7cUJBQ3ZEO2lCQUNGO2dCQUNELE9BQU8sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLENBQUM7YUFDNUI7UUFDSCxDQUFDLENBQ0YsQ0FDRixDQUFDO0lBQ04sQ0FBQztJQUlELGdCQUFnQixDQUFDLGFBQWEsRUFBRSxLQUFLO1FBQ25DLElBQUk7WUFDRixJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsSUFBSSxPQUFPLEtBQUssQ0FBQyxFQUFFLEtBQUssUUFBUSxJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFLEtBQUssS0FBSyxFQUFFO2dCQUN0RixPQUFPLEVBQUUsQ0FDUCxJQUFJLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO29CQUNsQixHQUFHLENBQUMsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7Z0JBQzNELENBQUMsQ0FBQyxDQUNILENBQUM7YUFDSDtTQUNGO1FBQUMsT0FBTyxDQUFDLEVBQUU7WUFDVixPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2pCLE9BQU8sRUFBRSxDQUNQLElBQUksT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7Z0JBQ2xCLEdBQUcsQ0FBQyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztZQUMzRCxDQUFDLENBQUMsQ0FDSCxDQUFDO1NBQ0g7UUFFRCxNQUFNLHFCQUFxQixHQUF5QjtZQUNsRCxRQUFRLEVBQUU7Z0JBQ1IsS0FBSztnQkFDTCxhQUFhO2FBQ2Q7U0FDRixDQUFDO1FBQ0YsTUFBTSwwQkFBMEIsR0FBOEI7WUFDNUQsU0FBUyxFQUFFLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUU7U0FDeEYsQ0FBQztRQUVGLElBQUksQ0FBQyxJQUFJLENBQUMsMkJBQTJCLEVBQUU7WUFDckMsMEJBQTBCLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztTQUMzQztRQUVELE1BQU0sb0JBQW9CLEdBQUcsMkJBQTJCLENBQUMscUJBQXFCLEVBQUUsMEJBQTBCLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRTNILE9BQU8sb0JBQW9CO2FBQ3hCLElBQUksQ0FDSCxRQUFRLENBQ04sQ0FBQyxtQkFBbUIsRUFBRSxFQUFFO1lBQ3RCLElBQUksbUJBQW1CLEVBQUU7Z0JBQ3ZCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FDckIsS0FBSyxDQUFDLEVBQUUsRUFDUixXQUFXLEVBQ1gsSUFBSSxDQUFDLFNBQVMsRUFDZCxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFDMUIscUJBQXFCLEVBQ3JCLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxZQUFZLEVBQ3RDLElBQUksRUFDSixJQUFJLENBQ0gsQ0FDRixDQUFDO2FBQ0g7aUJBQU07Z0JBQ0wsT0FBTyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxDQUFDLENBQUM7YUFDekQ7UUFDSCxDQUFDLENBQ0YsRUFDRCxHQUFHLENBQ0QsS0FBSyxFQUFFLFNBQWMsRUFBRSxFQUFFO1lBQ3ZCLElBQUksU0FBUyxDQUFDLEtBQUssRUFBRTtnQkFDbkIsT0FBTyxTQUFTLENBQUM7YUFDbEI7aUJBQU07Z0JBQ0wsSUFBSSxJQUFJLENBQUMsb0JBQW9CLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyw0QkFBNEIsRUFBRTtvQkFDOUUsU0FBUyxHQUFHLE1BQU0sSUFBSSxDQUFDLG9CQUFvQixDQUFDLFdBQVcsQ0FDckQsU0FBUyxFQUNULHFCQUFxQixFQUNyQixJQUFJLEVBQ0osS0FBSyxDQUFDLEVBQUUsQ0FDVCxDQUFDO2lCQUNIO2dCQUNELE1BQU0sNkJBQTZCLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixDQUFDLFNBQVMsQ0FBQztnQkFDN0UsSUFBSSw2QkFBNkIsRUFBRTtvQkFDakMsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUM7b0JBQ3hFLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUM7b0JBRTVFLElBQUksY0FBYyxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7d0JBQ3ZDLE9BQU8sQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsQ0FBQzt3QkFDckMsYUFBYTs2QkFDVixTQUFTOzZCQUNULElBQUksQ0FBQyxZQUFZLEVBQUUsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztxQkFDNUM7b0JBQ0QsSUFBSSxnQkFBZ0IsRUFBRTt3QkFDcEIsT0FBTyxDQUFDLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO3dCQUN4QyxnQkFBZ0IsQ0FBQyxhQUFhLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztxQkFDdkQ7aUJBQ0Y7Z0JBQ0QsT0FBTyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsQ0FBQzthQUM1QjtRQUNILENBQUMsQ0FDRixDQUNGLENBQUM7SUFDTixDQUFDO0lBSUQsZ0JBQWdCLENBQUMsYUFBYSxFQUFFLEtBQUs7UUFFbkMsSUFBSSxDQUFDLEtBQUssQ0FBQyxtQkFBbUIsSUFBSSxPQUFPLEtBQUssQ0FBQyxtQkFBbUIsS0FBSyxRQUFRLEVBQUU7WUFDL0UsT0FBTyxFQUFFLENBQ1AsSUFBSSxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtnQkFDbEIsR0FBRyxDQUFDLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO1lBQzdELENBQUMsQ0FBQyxDQUNILENBQUM7U0FDSDtRQUVELElBQUk7WUFDRixJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsSUFBSSxPQUFPLEtBQUssQ0FBQyxFQUFFLEtBQUssUUFBUSxJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFLEtBQUssS0FBSyxFQUFFO2dCQUN0RixPQUFPLEVBQUUsQ0FDUCxJQUFJLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO29CQUNsQixHQUFHLENBQUMsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUM7Z0JBQzdELENBQUMsQ0FBQyxDQUNILENBQUM7YUFDSDtTQUNGO1FBQUMsT0FBTyxDQUFDLEVBQUU7WUFDVixPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2pCLE9BQU8sRUFBRSxDQUNQLElBQUksT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7Z0JBQ2xCLEdBQUcsQ0FBQyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQztZQUM3RCxDQUFDLENBQUMsQ0FDSCxDQUFDO1NBQ0g7UUFFRCxNQUFNLHFCQUFxQixHQUF5QjtZQUNsRCxRQUFRLEVBQUU7Z0JBQ1IsS0FBSztnQkFDTCxhQUFhO2FBQ2Q7U0FDRixDQUFDO1FBQ0YsTUFBTSwwQkFBMEIsR0FBOEI7WUFDNUQsU0FBUyxFQUFFLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUU7U0FDeEYsQ0FBQztRQUVGLElBQUksQ0FBQyxJQUFJLENBQUMsMkJBQTJCLEVBQUU7WUFDckMsMEJBQTBCLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztTQUMzQztRQUVELE1BQU0sb0JBQW9CLEdBQUcsMkJBQTJCLENBQUMscUJBQXFCLEVBQUUsMEJBQTBCLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRTNILE9BQU8sb0JBQW9CO2FBQ3hCLElBQUksQ0FDSCxRQUFRLENBQ04sQ0FBQyxtQkFBbUIsRUFBRSxFQUFFO1lBQ3RCLElBQUksbUJBQW1CLEVBQUU7Z0JBQ3ZCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUMxQixLQUFLLENBQUMsRUFBRSxFQUNSLEtBQUssQ0FBQyxtQkFBbUIsRUFDekIsSUFBSSxDQUFDLFNBQVMsRUFDZCxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFDbkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLEVBQzVCLHFCQUFxQixFQUNyQixJQUFJLENBQUMsb0JBQW9CLENBQUMsWUFBWSxFQUN0QyxJQUFJLEVBQ0osSUFBSSxDQUNILENBQ0YsQ0FBQzthQUNIO2lCQUFNO2dCQUNMLE9BQU8sRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsQ0FBQyxDQUFDO2FBQ3pEO1FBQ0gsQ0FBQyxDQUNGLEVBQ0QsR0FBRyxDQUNELEtBQUssRUFBRSxTQUFjLEVBQUUsRUFBRTtZQUN2QixJQUFJLFNBQVMsQ0FBQyxLQUFLLEVBQUU7Z0JBQ25CLE9BQU8sU0FBUyxDQUFDO2FBQ2xCO2lCQUFNO2dCQUNMLElBQUksSUFBSSxDQUFDLG9CQUFvQixDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsNEJBQTRCLEVBQUU7b0JBQzlFLFNBQVMsR0FBRyxNQUFNLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxXQUFXLENBQ3JELFNBQVMsRUFDVCxxQkFBcUIsRUFDckIsSUFBSSxFQUNKLEtBQUssQ0FBQyxFQUFFLENBQ1QsQ0FBQztpQkFDSDtnQkFDRCxNQUFNLDZCQUE2QixHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxTQUFTLENBQUM7Z0JBQzdFLElBQUksNkJBQTZCLEVBQUU7b0JBQ2pDLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDO29CQUN4RSxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDO29CQUU1RSxJQUFJLGNBQWMsSUFBSSxDQUFDLGdCQUFnQixFQUFFO3dCQUN2QyxPQUFPLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLENBQUM7d0JBQ3JDLGFBQWE7NkJBQ1YsU0FBUzs2QkFDVCxJQUFJLENBQUMsWUFBWSxFQUFFLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUM7cUJBQzVDO29CQUNELElBQUksZ0JBQWdCLEVBQUU7d0JBQ3BCLE9BQU8sQ0FBQyxJQUFJLENBQUMseUJBQXlCLENBQUMsQ0FBQzt3QkFDeEMsZ0JBQWdCLENBQUMsYUFBYSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7cUJBQ3ZEO2lCQUNGO2dCQUNELE9BQU8sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLENBQUM7YUFDNUI7UUFDSCxDQUFDLENBQ0YsQ0FDRixDQUFDO0lBQ04sQ0FBQztDQUVGO0FBdGlCQztJQURDLGdCQUFnQixDQUFDLDZCQUE2QixDQUFDO21FQWUvQztBQUdEO0lBREMsZ0JBQWdCLENBQUMsZ0JBQWdCLENBQUM7c0RBd0RsQztBQUlEO0lBREMsZ0JBQWdCLENBQUMsb0JBQW9CLENBQUM7MERBMER0QztBQUlEO0lBREMsZ0JBQWdCLENBQUMsY0FBYyxDQUFDOzZDQTBEaEM7QUFHRDtJQURDLGdCQUFnQixDQUFDLGdCQUFnQixDQUFDO3NEQTJFbEM7QUFHRDtJQURDLGdCQUFnQixDQUFDLGtCQUFrQixDQUFDO3dEQStFcEM7QUFJRDtJQURDLGdCQUFnQixDQUFDLGtCQUFrQixDQUFDO3dEQTBGcEM7QUFJRDtJQURDLGdCQUFnQixDQUFDLGtCQUFrQixDQUFDO3dEQW9HcEMifQ==
@@ -3,7 +3,7 @@ import { DtoInterface } from './interfaces-util/dto';
3
3
  import { FuncionesSeguridad } from './interfaces-util/funciones-seguridad';
4
4
  import { Observable } from 'rxjs';
5
5
  import { FuncionesMiddleware } from './interfaces-util/funciones-middleware';
6
- export declare abstract class PrincipalResolver<CreateDto, UpdateDto> {
6
+ export declare abstract class PrincipalResolver<CreateDto = any, UpdateDto = any, Entity = any> {
7
7
  private readonly _funcionesSeguridad;
8
8
  private readonly _servicio;
9
9
  private readonly _dto;
@@ -12,12 +12,14 @@ export declare abstract class PrincipalResolver<CreateDto, UpdateDto> {
12
12
  private readonly _mensajes;
13
13
  protected contexto: any;
14
14
  private readonly _funcionesMiddleware;
15
- constructor(_funcionesSeguridad: FuncionesSeguridad, _servicio: any, _dto: DtoInterface, _skip: number, _take: number, _mensajes: MensajesController, contexto: any, _funcionesMiddleware?: FuncionesMiddleware<CreateDto, UpdateDto, PrincipalResolver<CreateDto, UpdateDto>>);
16
- findAll(criterioBusqueda: string, args: any, context: any, info: any, parent: any, root: any): Promise<Observable<any>>;
17
- findWhereOr(criterioBusqueda: string, args: any, context: any, info: any, parent: any, root: any): Promise<Observable<any>>;
18
- count(criterioBusqueda: string, args: any, context: any, info: any, parent: any, root: any): Promise<Observable<any>>;
19
- findOneById(id: any, args: any, context: any, info: any, parent: any, root: any): Promise<Observable<any>>;
20
- createOne(nuevoRegistro: any, args: any, context: any, info: any, parent: any, root: any): Promise<Observable<any>>;
15
+ private activarPoliticasDeSeguridad;
16
+ private activarTriggersDeControlador;
17
+ constructor(_funcionesSeguridad: FuncionesSeguridad, _servicio: any, _dto: DtoInterface, _skip: number, _take: number, _mensajes: MensajesController, contexto: any, _funcionesMiddleware?: FuncionesMiddleware<CreateDto, UpdateDto, PrincipalResolver<CreateDto, UpdateDto>, Entity>, activarPoliticasDeSeguridad?: boolean, activarTriggersDeControlador?: boolean);
18
+ findAll(criterioBusqueda: string, args: any, context: any, info: any, parent: any, root: any): Promise<Observable<Promise<any>>>;
19
+ findWhereOr(criterioBusqueda: string, args: any, context: any, info: any, parent: any, root: any): Promise<Observable<Promise<any>>>;
20
+ count(criterioBusqueda: string, args: any, context: any, info: any, parent: any, root: any): Promise<Observable<Promise<any>>>;
21
+ findOneById(id: any, args: any, context: any, info: any, parent: any, root: any): Promise<Observable<Promise<any>>>;
22
+ createOne(nuevoRegistro: any, args: any, context: any, info: any, parent: any, root: any): Promise<Observable<Promise<any>>>;
21
23
  deleteOne(id: any, args: any, context: any, info: any, parent: any, root: any): Promise<Observable<any>>;
22
24
  updateOne(id: any, registroAActualizar: any, args: any, context: any, info: any, parent: any, root: any): Promise<Observable<any>>;
23
25
  }