coreum-js 2.5.10 → 2.5.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. package/dist/main/cosmos/auth/v1beta1/auth.d.ts +229 -0
  2. package/dist/main/cosmos/auth/v1beta1/auth.js +438 -0
  3. package/dist/main/cosmos/index.d.ts +348 -0
  4. package/dist/main/cosmos/index.js +72 -2
  5. package/dist/main/cosmos/staking/v1beta1/authz.d.ts +145 -0
  6. package/dist/main/cosmos/staking/v1beta1/authz.js +225 -0
  7. package/dist/main/cosmos/staking/v1beta1/genesis.d.ts +899 -0
  8. package/dist/main/cosmos/staking/v1beta1/genesis.js +306 -0
  9. package/dist/main/cosmos/staking/v1beta1/pagination.d.ts +128 -0
  10. package/dist/main/cosmos/staking/v1beta1/pagination.js +228 -0
  11. package/dist/main/cosmos/staking/v1beta1/query.d.ts +4165 -0
  12. package/dist/main/cosmos/staking/v1beta1/query.js +2020 -0
  13. package/dist/main/cosmos/staking/v1beta1/staking.d.ts +2059 -0
  14. package/dist/main/cosmos/staking/v1beta1/staking.js +2128 -0
  15. package/dist/main/cosmos/staking/v1beta1/tx.d.ts +748 -0
  16. package/dist/main/cosmos/staking/v1beta1/tx.js +1142 -0
  17. package/dist/main/cosmos/vesting/v1beta1/tx.d.ts +350 -0
  18. package/dist/main/cosmos/vesting/v1beta1/tx.js +455 -0
  19. package/dist/main/cosmos/vesting/v1beta1/vesting.d.ts +1305 -0
  20. package/dist/main/cosmos/vesting/v1beta1/vesting.js +499 -0
  21. package/dist/main/tendermint/abci/types.d.ts +7075 -0
  22. package/dist/main/tendermint/abci/types.js +4934 -0
  23. package/dist/main/tendermint/crypto/keys.d.ts +38 -0
  24. package/dist/main/tendermint/crypto/keys.js +118 -0
  25. package/dist/main/tendermint/crypto/proof.d.ts +226 -0
  26. package/dist/main/tendermint/crypto/proof.js +427 -0
  27. package/dist/main/tendermint/types/params.d.ts +313 -0
  28. package/dist/main/tendermint/types/params.js +488 -0
  29. package/dist/main/tendermint/types/types.d.ts +1970 -0
  30. package/dist/main/tendermint/types/types.js +1602 -0
  31. package/dist/main/tendermint/types/validator.d.ts +277 -0
  32. package/dist/main/tendermint/types/validator.js +303 -0
  33. package/dist/main/tendermint/version/types.d.ts +71 -0
  34. package/dist/main/tendermint/version/types.js +162 -0
  35. package/dist/module/cosmos/auth/v1beta1/auth.d.ts +229 -0
  36. package/dist/module/cosmos/auth/v1beta1/auth.js +428 -0
  37. package/dist/module/cosmos/index.d.ts +348 -0
  38. package/dist/module/cosmos/index.js +71 -1
  39. package/dist/module/cosmos/staking/v1beta1/authz.d.ts +145 -0
  40. package/dist/module/cosmos/staking/v1beta1/authz.js +215 -0
  41. package/dist/module/cosmos/staking/v1beta1/genesis.d.ts +899 -0
  42. package/dist/module/cosmos/staking/v1beta1/genesis.js +298 -0
  43. package/dist/module/cosmos/staking/v1beta1/pagination.d.ts +128 -0
  44. package/dist/module/cosmos/staking/v1beta1/pagination.js +220 -0
  45. package/dist/module/cosmos/staking/v1beta1/query.d.ts +4165 -0
  46. package/dist/module/cosmos/staking/v1beta1/query.js +1996 -0
  47. package/dist/module/cosmos/staking/v1beta1/staking.d.ts +2059 -0
  48. package/dist/module/cosmos/staking/v1beta1/staking.js +2098 -0
  49. package/dist/module/cosmos/staking/v1beta1/tx.d.ts +748 -0
  50. package/dist/module/cosmos/staking/v1beta1/tx.js +1128 -0
  51. package/dist/module/cosmos/vesting/v1beta1/tx.d.ts +350 -0
  52. package/dist/module/cosmos/vesting/v1beta1/tx.js +447 -0
  53. package/dist/module/cosmos/vesting/v1beta1/vesting.d.ts +1305 -0
  54. package/dist/module/cosmos/vesting/v1beta1/vesting.js +489 -0
  55. package/dist/module/tendermint/abci/types.d.ts +7075 -0
  56. package/dist/module/tendermint/abci/types.js +4878 -0
  57. package/dist/module/tendermint/crypto/keys.d.ts +38 -0
  58. package/dist/module/tendermint/crypto/keys.js +111 -0
  59. package/dist/module/tendermint/crypto/proof.d.ts +226 -0
  60. package/dist/module/tendermint/crypto/proof.js +416 -0
  61. package/dist/module/tendermint/types/params.d.ts +313 -0
  62. package/dist/module/tendermint/types/params.js +477 -0
  63. package/dist/module/tendermint/types/types.d.ts +1970 -0
  64. package/dist/module/tendermint/types/types.js +1581 -0
  65. package/dist/module/tendermint/types/validator.d.ts +277 -0
  66. package/dist/module/tendermint/types/validator.js +294 -0
  67. package/dist/module/tendermint/version/types.d.ts +71 -0
  68. package/dist/module/tendermint/version/types.js +154 -0
  69. package/package.json +2 -2
@@ -0,0 +1,1996 @@
1
+ /* eslint-disable */
2
+ import Long from "long";
3
+ import _m0 from "protobufjs/minimal";
4
+ import { PageRequest, PageResponse } from "./pagination";
5
+ import { DelegationResponse, HistoricalInfo, Params, Pool, RedelegationResponse, UnbondingDelegation, Validator, } from "./staking";
6
+ export const protobufPackage = "cosmos.staking.v1beta1";
7
+ function createBaseQueryValidatorsRequest() {
8
+ return { status: "", pagination: undefined };
9
+ }
10
+ export const QueryValidatorsRequest = {
11
+ encode(message, writer = _m0.Writer.create()) {
12
+ if (message.status !== "") {
13
+ writer.uint32(10).string(message.status);
14
+ }
15
+ if (message.pagination !== undefined) {
16
+ PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim();
17
+ }
18
+ return writer;
19
+ },
20
+ decode(input, length) {
21
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
22
+ let end = length === undefined ? reader.len : reader.pos + length;
23
+ const message = createBaseQueryValidatorsRequest();
24
+ while (reader.pos < end) {
25
+ const tag = reader.uint32();
26
+ switch (tag >>> 3) {
27
+ case 1:
28
+ if (tag !== 10) {
29
+ break;
30
+ }
31
+ message.status = reader.string();
32
+ continue;
33
+ case 2:
34
+ if (tag !== 18) {
35
+ break;
36
+ }
37
+ message.pagination = PageRequest.decode(reader, reader.uint32());
38
+ continue;
39
+ }
40
+ if ((tag & 7) === 4 || tag === 0) {
41
+ break;
42
+ }
43
+ reader.skipType(tag & 7);
44
+ }
45
+ return message;
46
+ },
47
+ fromJSON(object) {
48
+ return {
49
+ status: isSet(object.status) ? String(object.status) : "",
50
+ pagination: isSet(object.pagination)
51
+ ? PageRequest.fromJSON(object.pagination)
52
+ : undefined,
53
+ };
54
+ },
55
+ toJSON(message) {
56
+ const obj = {};
57
+ message.status !== undefined && (obj.status = message.status);
58
+ message.pagination !== undefined &&
59
+ (obj.pagination = message.pagination
60
+ ? PageRequest.toJSON(message.pagination)
61
+ : undefined);
62
+ return obj;
63
+ },
64
+ create(base) {
65
+ return QueryValidatorsRequest.fromPartial(base ?? {});
66
+ },
67
+ fromPartial(object) {
68
+ const message = createBaseQueryValidatorsRequest();
69
+ message.status = object.status ?? "";
70
+ message.pagination =
71
+ object.pagination !== undefined && object.pagination !== null
72
+ ? PageRequest.fromPartial(object.pagination)
73
+ : undefined;
74
+ return message;
75
+ },
76
+ };
77
+ function createBaseQueryValidatorsResponse() {
78
+ return { validators: [], pagination: undefined };
79
+ }
80
+ export const QueryValidatorsResponse = {
81
+ encode(message, writer = _m0.Writer.create()) {
82
+ for (const v of message.validators) {
83
+ Validator.encode(v, writer.uint32(10).fork()).ldelim();
84
+ }
85
+ if (message.pagination !== undefined) {
86
+ PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();
87
+ }
88
+ return writer;
89
+ },
90
+ decode(input, length) {
91
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
92
+ let end = length === undefined ? reader.len : reader.pos + length;
93
+ const message = createBaseQueryValidatorsResponse();
94
+ while (reader.pos < end) {
95
+ const tag = reader.uint32();
96
+ switch (tag >>> 3) {
97
+ case 1:
98
+ if (tag !== 10) {
99
+ break;
100
+ }
101
+ message.validators.push(Validator.decode(reader, reader.uint32()));
102
+ continue;
103
+ case 2:
104
+ if (tag !== 18) {
105
+ break;
106
+ }
107
+ message.pagination = PageResponse.decode(reader, reader.uint32());
108
+ continue;
109
+ }
110
+ if ((tag & 7) === 4 || tag === 0) {
111
+ break;
112
+ }
113
+ reader.skipType(tag & 7);
114
+ }
115
+ return message;
116
+ },
117
+ fromJSON(object) {
118
+ return {
119
+ validators: Array.isArray(object?.validators)
120
+ ? object.validators.map((e) => Validator.fromJSON(e))
121
+ : [],
122
+ pagination: isSet(object.pagination)
123
+ ? PageResponse.fromJSON(object.pagination)
124
+ : undefined,
125
+ };
126
+ },
127
+ toJSON(message) {
128
+ const obj = {};
129
+ if (message.validators) {
130
+ obj.validators = message.validators.map((e) => e ? Validator.toJSON(e) : undefined);
131
+ }
132
+ else {
133
+ obj.validators = [];
134
+ }
135
+ message.pagination !== undefined &&
136
+ (obj.pagination = message.pagination
137
+ ? PageResponse.toJSON(message.pagination)
138
+ : undefined);
139
+ return obj;
140
+ },
141
+ create(base) {
142
+ return QueryValidatorsResponse.fromPartial(base ?? {});
143
+ },
144
+ fromPartial(object) {
145
+ const message = createBaseQueryValidatorsResponse();
146
+ message.validators =
147
+ object.validators?.map((e) => Validator.fromPartial(e)) || [];
148
+ message.pagination =
149
+ object.pagination !== undefined && object.pagination !== null
150
+ ? PageResponse.fromPartial(object.pagination)
151
+ : undefined;
152
+ return message;
153
+ },
154
+ };
155
+ function createBaseQueryValidatorRequest() {
156
+ return { validatorAddr: "" };
157
+ }
158
+ export const QueryValidatorRequest = {
159
+ encode(message, writer = _m0.Writer.create()) {
160
+ if (message.validatorAddr !== "") {
161
+ writer.uint32(10).string(message.validatorAddr);
162
+ }
163
+ return writer;
164
+ },
165
+ decode(input, length) {
166
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
167
+ let end = length === undefined ? reader.len : reader.pos + length;
168
+ const message = createBaseQueryValidatorRequest();
169
+ while (reader.pos < end) {
170
+ const tag = reader.uint32();
171
+ switch (tag >>> 3) {
172
+ case 1:
173
+ if (tag !== 10) {
174
+ break;
175
+ }
176
+ message.validatorAddr = reader.string();
177
+ continue;
178
+ }
179
+ if ((tag & 7) === 4 || tag === 0) {
180
+ break;
181
+ }
182
+ reader.skipType(tag & 7);
183
+ }
184
+ return message;
185
+ },
186
+ fromJSON(object) {
187
+ return {
188
+ validatorAddr: isSet(object.validatorAddr)
189
+ ? String(object.validatorAddr)
190
+ : "",
191
+ };
192
+ },
193
+ toJSON(message) {
194
+ const obj = {};
195
+ message.validatorAddr !== undefined &&
196
+ (obj.validatorAddr = message.validatorAddr);
197
+ return obj;
198
+ },
199
+ create(base) {
200
+ return QueryValidatorRequest.fromPartial(base ?? {});
201
+ },
202
+ fromPartial(object) {
203
+ const message = createBaseQueryValidatorRequest();
204
+ message.validatorAddr = object.validatorAddr ?? "";
205
+ return message;
206
+ },
207
+ };
208
+ function createBaseQueryValidatorResponse() {
209
+ return { validator: undefined };
210
+ }
211
+ export const QueryValidatorResponse = {
212
+ encode(message, writer = _m0.Writer.create()) {
213
+ if (message.validator !== undefined) {
214
+ Validator.encode(message.validator, writer.uint32(10).fork()).ldelim();
215
+ }
216
+ return writer;
217
+ },
218
+ decode(input, length) {
219
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
220
+ let end = length === undefined ? reader.len : reader.pos + length;
221
+ const message = createBaseQueryValidatorResponse();
222
+ while (reader.pos < end) {
223
+ const tag = reader.uint32();
224
+ switch (tag >>> 3) {
225
+ case 1:
226
+ if (tag !== 10) {
227
+ break;
228
+ }
229
+ message.validator = Validator.decode(reader, reader.uint32());
230
+ continue;
231
+ }
232
+ if ((tag & 7) === 4 || tag === 0) {
233
+ break;
234
+ }
235
+ reader.skipType(tag & 7);
236
+ }
237
+ return message;
238
+ },
239
+ fromJSON(object) {
240
+ return {
241
+ validator: isSet(object.validator)
242
+ ? Validator.fromJSON(object.validator)
243
+ : undefined,
244
+ };
245
+ },
246
+ toJSON(message) {
247
+ const obj = {};
248
+ message.validator !== undefined &&
249
+ (obj.validator = message.validator
250
+ ? Validator.toJSON(message.validator)
251
+ : undefined);
252
+ return obj;
253
+ },
254
+ create(base) {
255
+ return QueryValidatorResponse.fromPartial(base ?? {});
256
+ },
257
+ fromPartial(object) {
258
+ const message = createBaseQueryValidatorResponse();
259
+ message.validator =
260
+ object.validator !== undefined && object.validator !== null
261
+ ? Validator.fromPartial(object.validator)
262
+ : undefined;
263
+ return message;
264
+ },
265
+ };
266
+ function createBaseQueryValidatorDelegationsRequest() {
267
+ return { validatorAddr: "", pagination: undefined };
268
+ }
269
+ export const QueryValidatorDelegationsRequest = {
270
+ encode(message, writer = _m0.Writer.create()) {
271
+ if (message.validatorAddr !== "") {
272
+ writer.uint32(10).string(message.validatorAddr);
273
+ }
274
+ if (message.pagination !== undefined) {
275
+ PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim();
276
+ }
277
+ return writer;
278
+ },
279
+ decode(input, length) {
280
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
281
+ let end = length === undefined ? reader.len : reader.pos + length;
282
+ const message = createBaseQueryValidatorDelegationsRequest();
283
+ while (reader.pos < end) {
284
+ const tag = reader.uint32();
285
+ switch (tag >>> 3) {
286
+ case 1:
287
+ if (tag !== 10) {
288
+ break;
289
+ }
290
+ message.validatorAddr = reader.string();
291
+ continue;
292
+ case 2:
293
+ if (tag !== 18) {
294
+ break;
295
+ }
296
+ message.pagination = PageRequest.decode(reader, reader.uint32());
297
+ continue;
298
+ }
299
+ if ((tag & 7) === 4 || tag === 0) {
300
+ break;
301
+ }
302
+ reader.skipType(tag & 7);
303
+ }
304
+ return message;
305
+ },
306
+ fromJSON(object) {
307
+ return {
308
+ validatorAddr: isSet(object.validatorAddr)
309
+ ? String(object.validatorAddr)
310
+ : "",
311
+ pagination: isSet(object.pagination)
312
+ ? PageRequest.fromJSON(object.pagination)
313
+ : undefined,
314
+ };
315
+ },
316
+ toJSON(message) {
317
+ const obj = {};
318
+ message.validatorAddr !== undefined &&
319
+ (obj.validatorAddr = message.validatorAddr);
320
+ message.pagination !== undefined &&
321
+ (obj.pagination = message.pagination
322
+ ? PageRequest.toJSON(message.pagination)
323
+ : undefined);
324
+ return obj;
325
+ },
326
+ create(base) {
327
+ return QueryValidatorDelegationsRequest.fromPartial(base ?? {});
328
+ },
329
+ fromPartial(object) {
330
+ const message = createBaseQueryValidatorDelegationsRequest();
331
+ message.validatorAddr = object.validatorAddr ?? "";
332
+ message.pagination =
333
+ object.pagination !== undefined && object.pagination !== null
334
+ ? PageRequest.fromPartial(object.pagination)
335
+ : undefined;
336
+ return message;
337
+ },
338
+ };
339
+ function createBaseQueryValidatorDelegationsResponse() {
340
+ return { delegationResponses: [], pagination: undefined };
341
+ }
342
+ export const QueryValidatorDelegationsResponse = {
343
+ encode(message, writer = _m0.Writer.create()) {
344
+ for (const v of message.delegationResponses) {
345
+ DelegationResponse.encode(v, writer.uint32(10).fork()).ldelim();
346
+ }
347
+ if (message.pagination !== undefined) {
348
+ PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();
349
+ }
350
+ return writer;
351
+ },
352
+ decode(input, length) {
353
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
354
+ let end = length === undefined ? reader.len : reader.pos + length;
355
+ const message = createBaseQueryValidatorDelegationsResponse();
356
+ while (reader.pos < end) {
357
+ const tag = reader.uint32();
358
+ switch (tag >>> 3) {
359
+ case 1:
360
+ if (tag !== 10) {
361
+ break;
362
+ }
363
+ message.delegationResponses.push(DelegationResponse.decode(reader, reader.uint32()));
364
+ continue;
365
+ case 2:
366
+ if (tag !== 18) {
367
+ break;
368
+ }
369
+ message.pagination = PageResponse.decode(reader, reader.uint32());
370
+ continue;
371
+ }
372
+ if ((tag & 7) === 4 || tag === 0) {
373
+ break;
374
+ }
375
+ reader.skipType(tag & 7);
376
+ }
377
+ return message;
378
+ },
379
+ fromJSON(object) {
380
+ return {
381
+ delegationResponses: Array.isArray(object?.delegationResponses)
382
+ ? object.delegationResponses.map((e) => DelegationResponse.fromJSON(e))
383
+ : [],
384
+ pagination: isSet(object.pagination)
385
+ ? PageResponse.fromJSON(object.pagination)
386
+ : undefined,
387
+ };
388
+ },
389
+ toJSON(message) {
390
+ const obj = {};
391
+ if (message.delegationResponses) {
392
+ obj.delegationResponses = message.delegationResponses.map((e) => e ? DelegationResponse.toJSON(e) : undefined);
393
+ }
394
+ else {
395
+ obj.delegationResponses = [];
396
+ }
397
+ message.pagination !== undefined &&
398
+ (obj.pagination = message.pagination
399
+ ? PageResponse.toJSON(message.pagination)
400
+ : undefined);
401
+ return obj;
402
+ },
403
+ create(base) {
404
+ return QueryValidatorDelegationsResponse.fromPartial(base ?? {});
405
+ },
406
+ fromPartial(object) {
407
+ const message = createBaseQueryValidatorDelegationsResponse();
408
+ message.delegationResponses =
409
+ object.delegationResponses?.map((e) => DelegationResponse.fromPartial(e)) || [];
410
+ message.pagination =
411
+ object.pagination !== undefined && object.pagination !== null
412
+ ? PageResponse.fromPartial(object.pagination)
413
+ : undefined;
414
+ return message;
415
+ },
416
+ };
417
+ function createBaseQueryValidatorUnbondingDelegationsRequest() {
418
+ return { validatorAddr: "", pagination: undefined };
419
+ }
420
+ export const QueryValidatorUnbondingDelegationsRequest = {
421
+ encode(message, writer = _m0.Writer.create()) {
422
+ if (message.validatorAddr !== "") {
423
+ writer.uint32(10).string(message.validatorAddr);
424
+ }
425
+ if (message.pagination !== undefined) {
426
+ PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim();
427
+ }
428
+ return writer;
429
+ },
430
+ decode(input, length) {
431
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
432
+ let end = length === undefined ? reader.len : reader.pos + length;
433
+ const message = createBaseQueryValidatorUnbondingDelegationsRequest();
434
+ while (reader.pos < end) {
435
+ const tag = reader.uint32();
436
+ switch (tag >>> 3) {
437
+ case 1:
438
+ if (tag !== 10) {
439
+ break;
440
+ }
441
+ message.validatorAddr = reader.string();
442
+ continue;
443
+ case 2:
444
+ if (tag !== 18) {
445
+ break;
446
+ }
447
+ message.pagination = PageRequest.decode(reader, reader.uint32());
448
+ continue;
449
+ }
450
+ if ((tag & 7) === 4 || tag === 0) {
451
+ break;
452
+ }
453
+ reader.skipType(tag & 7);
454
+ }
455
+ return message;
456
+ },
457
+ fromJSON(object) {
458
+ return {
459
+ validatorAddr: isSet(object.validatorAddr)
460
+ ? String(object.validatorAddr)
461
+ : "",
462
+ pagination: isSet(object.pagination)
463
+ ? PageRequest.fromJSON(object.pagination)
464
+ : undefined,
465
+ };
466
+ },
467
+ toJSON(message) {
468
+ const obj = {};
469
+ message.validatorAddr !== undefined &&
470
+ (obj.validatorAddr = message.validatorAddr);
471
+ message.pagination !== undefined &&
472
+ (obj.pagination = message.pagination
473
+ ? PageRequest.toJSON(message.pagination)
474
+ : undefined);
475
+ return obj;
476
+ },
477
+ create(base) {
478
+ return QueryValidatorUnbondingDelegationsRequest.fromPartial(base ?? {});
479
+ },
480
+ fromPartial(object) {
481
+ const message = createBaseQueryValidatorUnbondingDelegationsRequest();
482
+ message.validatorAddr = object.validatorAddr ?? "";
483
+ message.pagination =
484
+ object.pagination !== undefined && object.pagination !== null
485
+ ? PageRequest.fromPartial(object.pagination)
486
+ : undefined;
487
+ return message;
488
+ },
489
+ };
490
+ function createBaseQueryValidatorUnbondingDelegationsResponse() {
491
+ return { unbondingResponses: [], pagination: undefined };
492
+ }
493
+ export const QueryValidatorUnbondingDelegationsResponse = {
494
+ encode(message, writer = _m0.Writer.create()) {
495
+ for (const v of message.unbondingResponses) {
496
+ UnbondingDelegation.encode(v, writer.uint32(10).fork()).ldelim();
497
+ }
498
+ if (message.pagination !== undefined) {
499
+ PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();
500
+ }
501
+ return writer;
502
+ },
503
+ decode(input, length) {
504
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
505
+ let end = length === undefined ? reader.len : reader.pos + length;
506
+ const message = createBaseQueryValidatorUnbondingDelegationsResponse();
507
+ while (reader.pos < end) {
508
+ const tag = reader.uint32();
509
+ switch (tag >>> 3) {
510
+ case 1:
511
+ if (tag !== 10) {
512
+ break;
513
+ }
514
+ message.unbondingResponses.push(UnbondingDelegation.decode(reader, reader.uint32()));
515
+ continue;
516
+ case 2:
517
+ if (tag !== 18) {
518
+ break;
519
+ }
520
+ message.pagination = PageResponse.decode(reader, reader.uint32());
521
+ continue;
522
+ }
523
+ if ((tag & 7) === 4 || tag === 0) {
524
+ break;
525
+ }
526
+ reader.skipType(tag & 7);
527
+ }
528
+ return message;
529
+ },
530
+ fromJSON(object) {
531
+ return {
532
+ unbondingResponses: Array.isArray(object?.unbondingResponses)
533
+ ? object.unbondingResponses.map((e) => UnbondingDelegation.fromJSON(e))
534
+ : [],
535
+ pagination: isSet(object.pagination)
536
+ ? PageResponse.fromJSON(object.pagination)
537
+ : undefined,
538
+ };
539
+ },
540
+ toJSON(message) {
541
+ const obj = {};
542
+ if (message.unbondingResponses) {
543
+ obj.unbondingResponses = message.unbondingResponses.map((e) => e ? UnbondingDelegation.toJSON(e) : undefined);
544
+ }
545
+ else {
546
+ obj.unbondingResponses = [];
547
+ }
548
+ message.pagination !== undefined &&
549
+ (obj.pagination = message.pagination
550
+ ? PageResponse.toJSON(message.pagination)
551
+ : undefined);
552
+ return obj;
553
+ },
554
+ create(base) {
555
+ return QueryValidatorUnbondingDelegationsResponse.fromPartial(base ?? {});
556
+ },
557
+ fromPartial(object) {
558
+ const message = createBaseQueryValidatorUnbondingDelegationsResponse();
559
+ message.unbondingResponses =
560
+ object.unbondingResponses?.map((e) => UnbondingDelegation.fromPartial(e)) || [];
561
+ message.pagination =
562
+ object.pagination !== undefined && object.pagination !== null
563
+ ? PageResponse.fromPartial(object.pagination)
564
+ : undefined;
565
+ return message;
566
+ },
567
+ };
568
+ function createBaseQueryDelegationRequest() {
569
+ return { delegatorAddr: "", validatorAddr: "" };
570
+ }
571
+ export const QueryDelegationRequest = {
572
+ encode(message, writer = _m0.Writer.create()) {
573
+ if (message.delegatorAddr !== "") {
574
+ writer.uint32(10).string(message.delegatorAddr);
575
+ }
576
+ if (message.validatorAddr !== "") {
577
+ writer.uint32(18).string(message.validatorAddr);
578
+ }
579
+ return writer;
580
+ },
581
+ decode(input, length) {
582
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
583
+ let end = length === undefined ? reader.len : reader.pos + length;
584
+ const message = createBaseQueryDelegationRequest();
585
+ while (reader.pos < end) {
586
+ const tag = reader.uint32();
587
+ switch (tag >>> 3) {
588
+ case 1:
589
+ if (tag !== 10) {
590
+ break;
591
+ }
592
+ message.delegatorAddr = reader.string();
593
+ continue;
594
+ case 2:
595
+ if (tag !== 18) {
596
+ break;
597
+ }
598
+ message.validatorAddr = reader.string();
599
+ continue;
600
+ }
601
+ if ((tag & 7) === 4 || tag === 0) {
602
+ break;
603
+ }
604
+ reader.skipType(tag & 7);
605
+ }
606
+ return message;
607
+ },
608
+ fromJSON(object) {
609
+ return {
610
+ delegatorAddr: isSet(object.delegatorAddr)
611
+ ? String(object.delegatorAddr)
612
+ : "",
613
+ validatorAddr: isSet(object.validatorAddr)
614
+ ? String(object.validatorAddr)
615
+ : "",
616
+ };
617
+ },
618
+ toJSON(message) {
619
+ const obj = {};
620
+ message.delegatorAddr !== undefined &&
621
+ (obj.delegatorAddr = message.delegatorAddr);
622
+ message.validatorAddr !== undefined &&
623
+ (obj.validatorAddr = message.validatorAddr);
624
+ return obj;
625
+ },
626
+ create(base) {
627
+ return QueryDelegationRequest.fromPartial(base ?? {});
628
+ },
629
+ fromPartial(object) {
630
+ const message = createBaseQueryDelegationRequest();
631
+ message.delegatorAddr = object.delegatorAddr ?? "";
632
+ message.validatorAddr = object.validatorAddr ?? "";
633
+ return message;
634
+ },
635
+ };
636
+ function createBaseQueryDelegationResponse() {
637
+ return { delegationResponse: undefined };
638
+ }
639
+ export const QueryDelegationResponse = {
640
+ encode(message, writer = _m0.Writer.create()) {
641
+ if (message.delegationResponse !== undefined) {
642
+ DelegationResponse.encode(message.delegationResponse, writer.uint32(10).fork()).ldelim();
643
+ }
644
+ return writer;
645
+ },
646
+ decode(input, length) {
647
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
648
+ let end = length === undefined ? reader.len : reader.pos + length;
649
+ const message = createBaseQueryDelegationResponse();
650
+ while (reader.pos < end) {
651
+ const tag = reader.uint32();
652
+ switch (tag >>> 3) {
653
+ case 1:
654
+ if (tag !== 10) {
655
+ break;
656
+ }
657
+ message.delegationResponse = DelegationResponse.decode(reader, reader.uint32());
658
+ continue;
659
+ }
660
+ if ((tag & 7) === 4 || tag === 0) {
661
+ break;
662
+ }
663
+ reader.skipType(tag & 7);
664
+ }
665
+ return message;
666
+ },
667
+ fromJSON(object) {
668
+ return {
669
+ delegationResponse: isSet(object.delegationResponse)
670
+ ? DelegationResponse.fromJSON(object.delegationResponse)
671
+ : undefined,
672
+ };
673
+ },
674
+ toJSON(message) {
675
+ const obj = {};
676
+ message.delegationResponse !== undefined &&
677
+ (obj.delegationResponse = message.delegationResponse
678
+ ? DelegationResponse.toJSON(message.delegationResponse)
679
+ : undefined);
680
+ return obj;
681
+ },
682
+ create(base) {
683
+ return QueryDelegationResponse.fromPartial(base ?? {});
684
+ },
685
+ fromPartial(object) {
686
+ const message = createBaseQueryDelegationResponse();
687
+ message.delegationResponse =
688
+ object.delegationResponse !== undefined &&
689
+ object.delegationResponse !== null
690
+ ? DelegationResponse.fromPartial(object.delegationResponse)
691
+ : undefined;
692
+ return message;
693
+ },
694
+ };
695
+ function createBaseQueryUnbondingDelegationRequest() {
696
+ return { delegatorAddr: "", validatorAddr: "" };
697
+ }
698
+ export const QueryUnbondingDelegationRequest = {
699
+ encode(message, writer = _m0.Writer.create()) {
700
+ if (message.delegatorAddr !== "") {
701
+ writer.uint32(10).string(message.delegatorAddr);
702
+ }
703
+ if (message.validatorAddr !== "") {
704
+ writer.uint32(18).string(message.validatorAddr);
705
+ }
706
+ return writer;
707
+ },
708
+ decode(input, length) {
709
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
710
+ let end = length === undefined ? reader.len : reader.pos + length;
711
+ const message = createBaseQueryUnbondingDelegationRequest();
712
+ while (reader.pos < end) {
713
+ const tag = reader.uint32();
714
+ switch (tag >>> 3) {
715
+ case 1:
716
+ if (tag !== 10) {
717
+ break;
718
+ }
719
+ message.delegatorAddr = reader.string();
720
+ continue;
721
+ case 2:
722
+ if (tag !== 18) {
723
+ break;
724
+ }
725
+ message.validatorAddr = reader.string();
726
+ continue;
727
+ }
728
+ if ((tag & 7) === 4 || tag === 0) {
729
+ break;
730
+ }
731
+ reader.skipType(tag & 7);
732
+ }
733
+ return message;
734
+ },
735
+ fromJSON(object) {
736
+ return {
737
+ delegatorAddr: isSet(object.delegatorAddr)
738
+ ? String(object.delegatorAddr)
739
+ : "",
740
+ validatorAddr: isSet(object.validatorAddr)
741
+ ? String(object.validatorAddr)
742
+ : "",
743
+ };
744
+ },
745
+ toJSON(message) {
746
+ const obj = {};
747
+ message.delegatorAddr !== undefined &&
748
+ (obj.delegatorAddr = message.delegatorAddr);
749
+ message.validatorAddr !== undefined &&
750
+ (obj.validatorAddr = message.validatorAddr);
751
+ return obj;
752
+ },
753
+ create(base) {
754
+ return QueryUnbondingDelegationRequest.fromPartial(base ?? {});
755
+ },
756
+ fromPartial(object) {
757
+ const message = createBaseQueryUnbondingDelegationRequest();
758
+ message.delegatorAddr = object.delegatorAddr ?? "";
759
+ message.validatorAddr = object.validatorAddr ?? "";
760
+ return message;
761
+ },
762
+ };
763
+ function createBaseQueryUnbondingDelegationResponse() {
764
+ return { unbond: undefined };
765
+ }
766
+ export const QueryUnbondingDelegationResponse = {
767
+ encode(message, writer = _m0.Writer.create()) {
768
+ if (message.unbond !== undefined) {
769
+ UnbondingDelegation.encode(message.unbond, writer.uint32(10).fork()).ldelim();
770
+ }
771
+ return writer;
772
+ },
773
+ decode(input, length) {
774
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
775
+ let end = length === undefined ? reader.len : reader.pos + length;
776
+ const message = createBaseQueryUnbondingDelegationResponse();
777
+ while (reader.pos < end) {
778
+ const tag = reader.uint32();
779
+ switch (tag >>> 3) {
780
+ case 1:
781
+ if (tag !== 10) {
782
+ break;
783
+ }
784
+ message.unbond = UnbondingDelegation.decode(reader, reader.uint32());
785
+ continue;
786
+ }
787
+ if ((tag & 7) === 4 || tag === 0) {
788
+ break;
789
+ }
790
+ reader.skipType(tag & 7);
791
+ }
792
+ return message;
793
+ },
794
+ fromJSON(object) {
795
+ return {
796
+ unbond: isSet(object.unbond)
797
+ ? UnbondingDelegation.fromJSON(object.unbond)
798
+ : undefined,
799
+ };
800
+ },
801
+ toJSON(message) {
802
+ const obj = {};
803
+ message.unbond !== undefined &&
804
+ (obj.unbond = message.unbond
805
+ ? UnbondingDelegation.toJSON(message.unbond)
806
+ : undefined);
807
+ return obj;
808
+ },
809
+ create(base) {
810
+ return QueryUnbondingDelegationResponse.fromPartial(base ?? {});
811
+ },
812
+ fromPartial(object) {
813
+ const message = createBaseQueryUnbondingDelegationResponse();
814
+ message.unbond =
815
+ object.unbond !== undefined && object.unbond !== null
816
+ ? UnbondingDelegation.fromPartial(object.unbond)
817
+ : undefined;
818
+ return message;
819
+ },
820
+ };
821
+ function createBaseQueryDelegatorDelegationsRequest() {
822
+ return { delegatorAddr: "", pagination: undefined };
823
+ }
824
+ export const QueryDelegatorDelegationsRequest = {
825
+ encode(message, writer = _m0.Writer.create()) {
826
+ if (message.delegatorAddr !== "") {
827
+ writer.uint32(10).string(message.delegatorAddr);
828
+ }
829
+ if (message.pagination !== undefined) {
830
+ PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim();
831
+ }
832
+ return writer;
833
+ },
834
+ decode(input, length) {
835
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
836
+ let end = length === undefined ? reader.len : reader.pos + length;
837
+ const message = createBaseQueryDelegatorDelegationsRequest();
838
+ while (reader.pos < end) {
839
+ const tag = reader.uint32();
840
+ switch (tag >>> 3) {
841
+ case 1:
842
+ if (tag !== 10) {
843
+ break;
844
+ }
845
+ message.delegatorAddr = reader.string();
846
+ continue;
847
+ case 2:
848
+ if (tag !== 18) {
849
+ break;
850
+ }
851
+ message.pagination = PageRequest.decode(reader, reader.uint32());
852
+ continue;
853
+ }
854
+ if ((tag & 7) === 4 || tag === 0) {
855
+ break;
856
+ }
857
+ reader.skipType(tag & 7);
858
+ }
859
+ return message;
860
+ },
861
+ fromJSON(object) {
862
+ return {
863
+ delegatorAddr: isSet(object.delegatorAddr)
864
+ ? String(object.delegatorAddr)
865
+ : "",
866
+ pagination: isSet(object.pagination)
867
+ ? PageRequest.fromJSON(object.pagination)
868
+ : undefined,
869
+ };
870
+ },
871
+ toJSON(message) {
872
+ const obj = {};
873
+ message.delegatorAddr !== undefined &&
874
+ (obj.delegatorAddr = message.delegatorAddr);
875
+ message.pagination !== undefined &&
876
+ (obj.pagination = message.pagination
877
+ ? PageRequest.toJSON(message.pagination)
878
+ : undefined);
879
+ return obj;
880
+ },
881
+ create(base) {
882
+ return QueryDelegatorDelegationsRequest.fromPartial(base ?? {});
883
+ },
884
+ fromPartial(object) {
885
+ const message = createBaseQueryDelegatorDelegationsRequest();
886
+ message.delegatorAddr = object.delegatorAddr ?? "";
887
+ message.pagination =
888
+ object.pagination !== undefined && object.pagination !== null
889
+ ? PageRequest.fromPartial(object.pagination)
890
+ : undefined;
891
+ return message;
892
+ },
893
+ };
894
+ function createBaseQueryDelegatorDelegationsResponse() {
895
+ return { delegationResponses: [], pagination: undefined };
896
+ }
897
+ export const QueryDelegatorDelegationsResponse = {
898
+ encode(message, writer = _m0.Writer.create()) {
899
+ for (const v of message.delegationResponses) {
900
+ DelegationResponse.encode(v, writer.uint32(10).fork()).ldelim();
901
+ }
902
+ if (message.pagination !== undefined) {
903
+ PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();
904
+ }
905
+ return writer;
906
+ },
907
+ decode(input, length) {
908
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
909
+ let end = length === undefined ? reader.len : reader.pos + length;
910
+ const message = createBaseQueryDelegatorDelegationsResponse();
911
+ while (reader.pos < end) {
912
+ const tag = reader.uint32();
913
+ switch (tag >>> 3) {
914
+ case 1:
915
+ if (tag !== 10) {
916
+ break;
917
+ }
918
+ message.delegationResponses.push(DelegationResponse.decode(reader, reader.uint32()));
919
+ continue;
920
+ case 2:
921
+ if (tag !== 18) {
922
+ break;
923
+ }
924
+ message.pagination = PageResponse.decode(reader, reader.uint32());
925
+ continue;
926
+ }
927
+ if ((tag & 7) === 4 || tag === 0) {
928
+ break;
929
+ }
930
+ reader.skipType(tag & 7);
931
+ }
932
+ return message;
933
+ },
934
+ fromJSON(object) {
935
+ return {
936
+ delegationResponses: Array.isArray(object?.delegationResponses)
937
+ ? object.delegationResponses.map((e) => DelegationResponse.fromJSON(e))
938
+ : [],
939
+ pagination: isSet(object.pagination)
940
+ ? PageResponse.fromJSON(object.pagination)
941
+ : undefined,
942
+ };
943
+ },
944
+ toJSON(message) {
945
+ const obj = {};
946
+ if (message.delegationResponses) {
947
+ obj.delegationResponses = message.delegationResponses.map((e) => e ? DelegationResponse.toJSON(e) : undefined);
948
+ }
949
+ else {
950
+ obj.delegationResponses = [];
951
+ }
952
+ message.pagination !== undefined &&
953
+ (obj.pagination = message.pagination
954
+ ? PageResponse.toJSON(message.pagination)
955
+ : undefined);
956
+ return obj;
957
+ },
958
+ create(base) {
959
+ return QueryDelegatorDelegationsResponse.fromPartial(base ?? {});
960
+ },
961
+ fromPartial(object) {
962
+ const message = createBaseQueryDelegatorDelegationsResponse();
963
+ message.delegationResponses =
964
+ object.delegationResponses?.map((e) => DelegationResponse.fromPartial(e)) || [];
965
+ message.pagination =
966
+ object.pagination !== undefined && object.pagination !== null
967
+ ? PageResponse.fromPartial(object.pagination)
968
+ : undefined;
969
+ return message;
970
+ },
971
+ };
972
+ function createBaseQueryDelegatorUnbondingDelegationsRequest() {
973
+ return { delegatorAddr: "", pagination: undefined };
974
+ }
975
+ export const QueryDelegatorUnbondingDelegationsRequest = {
976
+ encode(message, writer = _m0.Writer.create()) {
977
+ if (message.delegatorAddr !== "") {
978
+ writer.uint32(10).string(message.delegatorAddr);
979
+ }
980
+ if (message.pagination !== undefined) {
981
+ PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim();
982
+ }
983
+ return writer;
984
+ },
985
+ decode(input, length) {
986
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
987
+ let end = length === undefined ? reader.len : reader.pos + length;
988
+ const message = createBaseQueryDelegatorUnbondingDelegationsRequest();
989
+ while (reader.pos < end) {
990
+ const tag = reader.uint32();
991
+ switch (tag >>> 3) {
992
+ case 1:
993
+ if (tag !== 10) {
994
+ break;
995
+ }
996
+ message.delegatorAddr = reader.string();
997
+ continue;
998
+ case 2:
999
+ if (tag !== 18) {
1000
+ break;
1001
+ }
1002
+ message.pagination = PageRequest.decode(reader, reader.uint32());
1003
+ continue;
1004
+ }
1005
+ if ((tag & 7) === 4 || tag === 0) {
1006
+ break;
1007
+ }
1008
+ reader.skipType(tag & 7);
1009
+ }
1010
+ return message;
1011
+ },
1012
+ fromJSON(object) {
1013
+ return {
1014
+ delegatorAddr: isSet(object.delegatorAddr)
1015
+ ? String(object.delegatorAddr)
1016
+ : "",
1017
+ pagination: isSet(object.pagination)
1018
+ ? PageRequest.fromJSON(object.pagination)
1019
+ : undefined,
1020
+ };
1021
+ },
1022
+ toJSON(message) {
1023
+ const obj = {};
1024
+ message.delegatorAddr !== undefined &&
1025
+ (obj.delegatorAddr = message.delegatorAddr);
1026
+ message.pagination !== undefined &&
1027
+ (obj.pagination = message.pagination
1028
+ ? PageRequest.toJSON(message.pagination)
1029
+ : undefined);
1030
+ return obj;
1031
+ },
1032
+ create(base) {
1033
+ return QueryDelegatorUnbondingDelegationsRequest.fromPartial(base ?? {});
1034
+ },
1035
+ fromPartial(object) {
1036
+ const message = createBaseQueryDelegatorUnbondingDelegationsRequest();
1037
+ message.delegatorAddr = object.delegatorAddr ?? "";
1038
+ message.pagination =
1039
+ object.pagination !== undefined && object.pagination !== null
1040
+ ? PageRequest.fromPartial(object.pagination)
1041
+ : undefined;
1042
+ return message;
1043
+ },
1044
+ };
1045
+ function createBaseQueryDelegatorUnbondingDelegationsResponse() {
1046
+ return { unbondingResponses: [], pagination: undefined };
1047
+ }
1048
+ export const QueryDelegatorUnbondingDelegationsResponse = {
1049
+ encode(message, writer = _m0.Writer.create()) {
1050
+ for (const v of message.unbondingResponses) {
1051
+ UnbondingDelegation.encode(v, writer.uint32(10).fork()).ldelim();
1052
+ }
1053
+ if (message.pagination !== undefined) {
1054
+ PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();
1055
+ }
1056
+ return writer;
1057
+ },
1058
+ decode(input, length) {
1059
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
1060
+ let end = length === undefined ? reader.len : reader.pos + length;
1061
+ const message = createBaseQueryDelegatorUnbondingDelegationsResponse();
1062
+ while (reader.pos < end) {
1063
+ const tag = reader.uint32();
1064
+ switch (tag >>> 3) {
1065
+ case 1:
1066
+ if (tag !== 10) {
1067
+ break;
1068
+ }
1069
+ message.unbondingResponses.push(UnbondingDelegation.decode(reader, reader.uint32()));
1070
+ continue;
1071
+ case 2:
1072
+ if (tag !== 18) {
1073
+ break;
1074
+ }
1075
+ message.pagination = PageResponse.decode(reader, reader.uint32());
1076
+ continue;
1077
+ }
1078
+ if ((tag & 7) === 4 || tag === 0) {
1079
+ break;
1080
+ }
1081
+ reader.skipType(tag & 7);
1082
+ }
1083
+ return message;
1084
+ },
1085
+ fromJSON(object) {
1086
+ return {
1087
+ unbondingResponses: Array.isArray(object?.unbondingResponses)
1088
+ ? object.unbondingResponses.map((e) => UnbondingDelegation.fromJSON(e))
1089
+ : [],
1090
+ pagination: isSet(object.pagination)
1091
+ ? PageResponse.fromJSON(object.pagination)
1092
+ : undefined,
1093
+ };
1094
+ },
1095
+ toJSON(message) {
1096
+ const obj = {};
1097
+ if (message.unbondingResponses) {
1098
+ obj.unbondingResponses = message.unbondingResponses.map((e) => e ? UnbondingDelegation.toJSON(e) : undefined);
1099
+ }
1100
+ else {
1101
+ obj.unbondingResponses = [];
1102
+ }
1103
+ message.pagination !== undefined &&
1104
+ (obj.pagination = message.pagination
1105
+ ? PageResponse.toJSON(message.pagination)
1106
+ : undefined);
1107
+ return obj;
1108
+ },
1109
+ create(base) {
1110
+ return QueryDelegatorUnbondingDelegationsResponse.fromPartial(base ?? {});
1111
+ },
1112
+ fromPartial(object) {
1113
+ const message = createBaseQueryDelegatorUnbondingDelegationsResponse();
1114
+ message.unbondingResponses =
1115
+ object.unbondingResponses?.map((e) => UnbondingDelegation.fromPartial(e)) || [];
1116
+ message.pagination =
1117
+ object.pagination !== undefined && object.pagination !== null
1118
+ ? PageResponse.fromPartial(object.pagination)
1119
+ : undefined;
1120
+ return message;
1121
+ },
1122
+ };
1123
+ function createBaseQueryRedelegationsRequest() {
1124
+ return {
1125
+ delegatorAddr: "",
1126
+ srcValidatorAddr: "",
1127
+ dstValidatorAddr: "",
1128
+ pagination: undefined,
1129
+ };
1130
+ }
1131
+ export const QueryRedelegationsRequest = {
1132
+ encode(message, writer = _m0.Writer.create()) {
1133
+ if (message.delegatorAddr !== "") {
1134
+ writer.uint32(10).string(message.delegatorAddr);
1135
+ }
1136
+ if (message.srcValidatorAddr !== "") {
1137
+ writer.uint32(18).string(message.srcValidatorAddr);
1138
+ }
1139
+ if (message.dstValidatorAddr !== "") {
1140
+ writer.uint32(26).string(message.dstValidatorAddr);
1141
+ }
1142
+ if (message.pagination !== undefined) {
1143
+ PageRequest.encode(message.pagination, writer.uint32(34).fork()).ldelim();
1144
+ }
1145
+ return writer;
1146
+ },
1147
+ decode(input, length) {
1148
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
1149
+ let end = length === undefined ? reader.len : reader.pos + length;
1150
+ const message = createBaseQueryRedelegationsRequest();
1151
+ while (reader.pos < end) {
1152
+ const tag = reader.uint32();
1153
+ switch (tag >>> 3) {
1154
+ case 1:
1155
+ if (tag !== 10) {
1156
+ break;
1157
+ }
1158
+ message.delegatorAddr = reader.string();
1159
+ continue;
1160
+ case 2:
1161
+ if (tag !== 18) {
1162
+ break;
1163
+ }
1164
+ message.srcValidatorAddr = reader.string();
1165
+ continue;
1166
+ case 3:
1167
+ if (tag !== 26) {
1168
+ break;
1169
+ }
1170
+ message.dstValidatorAddr = reader.string();
1171
+ continue;
1172
+ case 4:
1173
+ if (tag !== 34) {
1174
+ break;
1175
+ }
1176
+ message.pagination = PageRequest.decode(reader, reader.uint32());
1177
+ continue;
1178
+ }
1179
+ if ((tag & 7) === 4 || tag === 0) {
1180
+ break;
1181
+ }
1182
+ reader.skipType(tag & 7);
1183
+ }
1184
+ return message;
1185
+ },
1186
+ fromJSON(object) {
1187
+ return {
1188
+ delegatorAddr: isSet(object.delegatorAddr)
1189
+ ? String(object.delegatorAddr)
1190
+ : "",
1191
+ srcValidatorAddr: isSet(object.srcValidatorAddr)
1192
+ ? String(object.srcValidatorAddr)
1193
+ : "",
1194
+ dstValidatorAddr: isSet(object.dstValidatorAddr)
1195
+ ? String(object.dstValidatorAddr)
1196
+ : "",
1197
+ pagination: isSet(object.pagination)
1198
+ ? PageRequest.fromJSON(object.pagination)
1199
+ : undefined,
1200
+ };
1201
+ },
1202
+ toJSON(message) {
1203
+ const obj = {};
1204
+ message.delegatorAddr !== undefined &&
1205
+ (obj.delegatorAddr = message.delegatorAddr);
1206
+ message.srcValidatorAddr !== undefined &&
1207
+ (obj.srcValidatorAddr = message.srcValidatorAddr);
1208
+ message.dstValidatorAddr !== undefined &&
1209
+ (obj.dstValidatorAddr = message.dstValidatorAddr);
1210
+ message.pagination !== undefined &&
1211
+ (obj.pagination = message.pagination
1212
+ ? PageRequest.toJSON(message.pagination)
1213
+ : undefined);
1214
+ return obj;
1215
+ },
1216
+ create(base) {
1217
+ return QueryRedelegationsRequest.fromPartial(base ?? {});
1218
+ },
1219
+ fromPartial(object) {
1220
+ const message = createBaseQueryRedelegationsRequest();
1221
+ message.delegatorAddr = object.delegatorAddr ?? "";
1222
+ message.srcValidatorAddr = object.srcValidatorAddr ?? "";
1223
+ message.dstValidatorAddr = object.dstValidatorAddr ?? "";
1224
+ message.pagination =
1225
+ object.pagination !== undefined && object.pagination !== null
1226
+ ? PageRequest.fromPartial(object.pagination)
1227
+ : undefined;
1228
+ return message;
1229
+ },
1230
+ };
1231
+ function createBaseQueryRedelegationsResponse() {
1232
+ return { redelegationResponses: [], pagination: undefined };
1233
+ }
1234
+ export const QueryRedelegationsResponse = {
1235
+ encode(message, writer = _m0.Writer.create()) {
1236
+ for (const v of message.redelegationResponses) {
1237
+ RedelegationResponse.encode(v, writer.uint32(10).fork()).ldelim();
1238
+ }
1239
+ if (message.pagination !== undefined) {
1240
+ PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();
1241
+ }
1242
+ return writer;
1243
+ },
1244
+ decode(input, length) {
1245
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
1246
+ let end = length === undefined ? reader.len : reader.pos + length;
1247
+ const message = createBaseQueryRedelegationsResponse();
1248
+ while (reader.pos < end) {
1249
+ const tag = reader.uint32();
1250
+ switch (tag >>> 3) {
1251
+ case 1:
1252
+ if (tag !== 10) {
1253
+ break;
1254
+ }
1255
+ message.redelegationResponses.push(RedelegationResponse.decode(reader, reader.uint32()));
1256
+ continue;
1257
+ case 2:
1258
+ if (tag !== 18) {
1259
+ break;
1260
+ }
1261
+ message.pagination = PageResponse.decode(reader, reader.uint32());
1262
+ continue;
1263
+ }
1264
+ if ((tag & 7) === 4 || tag === 0) {
1265
+ break;
1266
+ }
1267
+ reader.skipType(tag & 7);
1268
+ }
1269
+ return message;
1270
+ },
1271
+ fromJSON(object) {
1272
+ return {
1273
+ redelegationResponses: Array.isArray(object?.redelegationResponses)
1274
+ ? object.redelegationResponses.map((e) => RedelegationResponse.fromJSON(e))
1275
+ : [],
1276
+ pagination: isSet(object.pagination)
1277
+ ? PageResponse.fromJSON(object.pagination)
1278
+ : undefined,
1279
+ };
1280
+ },
1281
+ toJSON(message) {
1282
+ const obj = {};
1283
+ if (message.redelegationResponses) {
1284
+ obj.redelegationResponses = message.redelegationResponses.map((e) => e ? RedelegationResponse.toJSON(e) : undefined);
1285
+ }
1286
+ else {
1287
+ obj.redelegationResponses = [];
1288
+ }
1289
+ message.pagination !== undefined &&
1290
+ (obj.pagination = message.pagination
1291
+ ? PageResponse.toJSON(message.pagination)
1292
+ : undefined);
1293
+ return obj;
1294
+ },
1295
+ create(base) {
1296
+ return QueryRedelegationsResponse.fromPartial(base ?? {});
1297
+ },
1298
+ fromPartial(object) {
1299
+ const message = createBaseQueryRedelegationsResponse();
1300
+ message.redelegationResponses =
1301
+ object.redelegationResponses?.map((e) => RedelegationResponse.fromPartial(e)) || [];
1302
+ message.pagination =
1303
+ object.pagination !== undefined && object.pagination !== null
1304
+ ? PageResponse.fromPartial(object.pagination)
1305
+ : undefined;
1306
+ return message;
1307
+ },
1308
+ };
1309
+ function createBaseQueryDelegatorValidatorsRequest() {
1310
+ return { delegatorAddr: "", pagination: undefined };
1311
+ }
1312
+ export const QueryDelegatorValidatorsRequest = {
1313
+ encode(message, writer = _m0.Writer.create()) {
1314
+ if (message.delegatorAddr !== "") {
1315
+ writer.uint32(10).string(message.delegatorAddr);
1316
+ }
1317
+ if (message.pagination !== undefined) {
1318
+ PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim();
1319
+ }
1320
+ return writer;
1321
+ },
1322
+ decode(input, length) {
1323
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
1324
+ let end = length === undefined ? reader.len : reader.pos + length;
1325
+ const message = createBaseQueryDelegatorValidatorsRequest();
1326
+ while (reader.pos < end) {
1327
+ const tag = reader.uint32();
1328
+ switch (tag >>> 3) {
1329
+ case 1:
1330
+ if (tag !== 10) {
1331
+ break;
1332
+ }
1333
+ message.delegatorAddr = reader.string();
1334
+ continue;
1335
+ case 2:
1336
+ if (tag !== 18) {
1337
+ break;
1338
+ }
1339
+ message.pagination = PageRequest.decode(reader, reader.uint32());
1340
+ continue;
1341
+ }
1342
+ if ((tag & 7) === 4 || tag === 0) {
1343
+ break;
1344
+ }
1345
+ reader.skipType(tag & 7);
1346
+ }
1347
+ return message;
1348
+ },
1349
+ fromJSON(object) {
1350
+ return {
1351
+ delegatorAddr: isSet(object.delegatorAddr)
1352
+ ? String(object.delegatorAddr)
1353
+ : "",
1354
+ pagination: isSet(object.pagination)
1355
+ ? PageRequest.fromJSON(object.pagination)
1356
+ : undefined,
1357
+ };
1358
+ },
1359
+ toJSON(message) {
1360
+ const obj = {};
1361
+ message.delegatorAddr !== undefined &&
1362
+ (obj.delegatorAddr = message.delegatorAddr);
1363
+ message.pagination !== undefined &&
1364
+ (obj.pagination = message.pagination
1365
+ ? PageRequest.toJSON(message.pagination)
1366
+ : undefined);
1367
+ return obj;
1368
+ },
1369
+ create(base) {
1370
+ return QueryDelegatorValidatorsRequest.fromPartial(base ?? {});
1371
+ },
1372
+ fromPartial(object) {
1373
+ const message = createBaseQueryDelegatorValidatorsRequest();
1374
+ message.delegatorAddr = object.delegatorAddr ?? "";
1375
+ message.pagination =
1376
+ object.pagination !== undefined && object.pagination !== null
1377
+ ? PageRequest.fromPartial(object.pagination)
1378
+ : undefined;
1379
+ return message;
1380
+ },
1381
+ };
1382
+ function createBaseQueryDelegatorValidatorsResponse() {
1383
+ return { validators: [], pagination: undefined };
1384
+ }
1385
+ export const QueryDelegatorValidatorsResponse = {
1386
+ encode(message, writer = _m0.Writer.create()) {
1387
+ for (const v of message.validators) {
1388
+ Validator.encode(v, writer.uint32(10).fork()).ldelim();
1389
+ }
1390
+ if (message.pagination !== undefined) {
1391
+ PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();
1392
+ }
1393
+ return writer;
1394
+ },
1395
+ decode(input, length) {
1396
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
1397
+ let end = length === undefined ? reader.len : reader.pos + length;
1398
+ const message = createBaseQueryDelegatorValidatorsResponse();
1399
+ while (reader.pos < end) {
1400
+ const tag = reader.uint32();
1401
+ switch (tag >>> 3) {
1402
+ case 1:
1403
+ if (tag !== 10) {
1404
+ break;
1405
+ }
1406
+ message.validators.push(Validator.decode(reader, reader.uint32()));
1407
+ continue;
1408
+ case 2:
1409
+ if (tag !== 18) {
1410
+ break;
1411
+ }
1412
+ message.pagination = PageResponse.decode(reader, reader.uint32());
1413
+ continue;
1414
+ }
1415
+ if ((tag & 7) === 4 || tag === 0) {
1416
+ break;
1417
+ }
1418
+ reader.skipType(tag & 7);
1419
+ }
1420
+ return message;
1421
+ },
1422
+ fromJSON(object) {
1423
+ return {
1424
+ validators: Array.isArray(object?.validators)
1425
+ ? object.validators.map((e) => Validator.fromJSON(e))
1426
+ : [],
1427
+ pagination: isSet(object.pagination)
1428
+ ? PageResponse.fromJSON(object.pagination)
1429
+ : undefined,
1430
+ };
1431
+ },
1432
+ toJSON(message) {
1433
+ const obj = {};
1434
+ if (message.validators) {
1435
+ obj.validators = message.validators.map((e) => e ? Validator.toJSON(e) : undefined);
1436
+ }
1437
+ else {
1438
+ obj.validators = [];
1439
+ }
1440
+ message.pagination !== undefined &&
1441
+ (obj.pagination = message.pagination
1442
+ ? PageResponse.toJSON(message.pagination)
1443
+ : undefined);
1444
+ return obj;
1445
+ },
1446
+ create(base) {
1447
+ return QueryDelegatorValidatorsResponse.fromPartial(base ?? {});
1448
+ },
1449
+ fromPartial(object) {
1450
+ const message = createBaseQueryDelegatorValidatorsResponse();
1451
+ message.validators =
1452
+ object.validators?.map((e) => Validator.fromPartial(e)) || [];
1453
+ message.pagination =
1454
+ object.pagination !== undefined && object.pagination !== null
1455
+ ? PageResponse.fromPartial(object.pagination)
1456
+ : undefined;
1457
+ return message;
1458
+ },
1459
+ };
1460
+ function createBaseQueryDelegatorValidatorRequest() {
1461
+ return { delegatorAddr: "", validatorAddr: "" };
1462
+ }
1463
+ export const QueryDelegatorValidatorRequest = {
1464
+ encode(message, writer = _m0.Writer.create()) {
1465
+ if (message.delegatorAddr !== "") {
1466
+ writer.uint32(10).string(message.delegatorAddr);
1467
+ }
1468
+ if (message.validatorAddr !== "") {
1469
+ writer.uint32(18).string(message.validatorAddr);
1470
+ }
1471
+ return writer;
1472
+ },
1473
+ decode(input, length) {
1474
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
1475
+ let end = length === undefined ? reader.len : reader.pos + length;
1476
+ const message = createBaseQueryDelegatorValidatorRequest();
1477
+ while (reader.pos < end) {
1478
+ const tag = reader.uint32();
1479
+ switch (tag >>> 3) {
1480
+ case 1:
1481
+ if (tag !== 10) {
1482
+ break;
1483
+ }
1484
+ message.delegatorAddr = reader.string();
1485
+ continue;
1486
+ case 2:
1487
+ if (tag !== 18) {
1488
+ break;
1489
+ }
1490
+ message.validatorAddr = reader.string();
1491
+ continue;
1492
+ }
1493
+ if ((tag & 7) === 4 || tag === 0) {
1494
+ break;
1495
+ }
1496
+ reader.skipType(tag & 7);
1497
+ }
1498
+ return message;
1499
+ },
1500
+ fromJSON(object) {
1501
+ return {
1502
+ delegatorAddr: isSet(object.delegatorAddr)
1503
+ ? String(object.delegatorAddr)
1504
+ : "",
1505
+ validatorAddr: isSet(object.validatorAddr)
1506
+ ? String(object.validatorAddr)
1507
+ : "",
1508
+ };
1509
+ },
1510
+ toJSON(message) {
1511
+ const obj = {};
1512
+ message.delegatorAddr !== undefined &&
1513
+ (obj.delegatorAddr = message.delegatorAddr);
1514
+ message.validatorAddr !== undefined &&
1515
+ (obj.validatorAddr = message.validatorAddr);
1516
+ return obj;
1517
+ },
1518
+ create(base) {
1519
+ return QueryDelegatorValidatorRequest.fromPartial(base ?? {});
1520
+ },
1521
+ fromPartial(object) {
1522
+ const message = createBaseQueryDelegatorValidatorRequest();
1523
+ message.delegatorAddr = object.delegatorAddr ?? "";
1524
+ message.validatorAddr = object.validatorAddr ?? "";
1525
+ return message;
1526
+ },
1527
+ };
1528
+ function createBaseQueryDelegatorValidatorResponse() {
1529
+ return { validator: undefined };
1530
+ }
1531
+ export const QueryDelegatorValidatorResponse = {
1532
+ encode(message, writer = _m0.Writer.create()) {
1533
+ if (message.validator !== undefined) {
1534
+ Validator.encode(message.validator, writer.uint32(10).fork()).ldelim();
1535
+ }
1536
+ return writer;
1537
+ },
1538
+ decode(input, length) {
1539
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
1540
+ let end = length === undefined ? reader.len : reader.pos + length;
1541
+ const message = createBaseQueryDelegatorValidatorResponse();
1542
+ while (reader.pos < end) {
1543
+ const tag = reader.uint32();
1544
+ switch (tag >>> 3) {
1545
+ case 1:
1546
+ if (tag !== 10) {
1547
+ break;
1548
+ }
1549
+ message.validator = Validator.decode(reader, reader.uint32());
1550
+ continue;
1551
+ }
1552
+ if ((tag & 7) === 4 || tag === 0) {
1553
+ break;
1554
+ }
1555
+ reader.skipType(tag & 7);
1556
+ }
1557
+ return message;
1558
+ },
1559
+ fromJSON(object) {
1560
+ return {
1561
+ validator: isSet(object.validator)
1562
+ ? Validator.fromJSON(object.validator)
1563
+ : undefined,
1564
+ };
1565
+ },
1566
+ toJSON(message) {
1567
+ const obj = {};
1568
+ message.validator !== undefined &&
1569
+ (obj.validator = message.validator
1570
+ ? Validator.toJSON(message.validator)
1571
+ : undefined);
1572
+ return obj;
1573
+ },
1574
+ create(base) {
1575
+ return QueryDelegatorValidatorResponse.fromPartial(base ?? {});
1576
+ },
1577
+ fromPartial(object) {
1578
+ const message = createBaseQueryDelegatorValidatorResponse();
1579
+ message.validator =
1580
+ object.validator !== undefined && object.validator !== null
1581
+ ? Validator.fromPartial(object.validator)
1582
+ : undefined;
1583
+ return message;
1584
+ },
1585
+ };
1586
+ function createBaseQueryHistoricalInfoRequest() {
1587
+ return { height: 0 };
1588
+ }
1589
+ export const QueryHistoricalInfoRequest = {
1590
+ encode(message, writer = _m0.Writer.create()) {
1591
+ if (message.height !== 0) {
1592
+ writer.uint32(8).int64(message.height);
1593
+ }
1594
+ return writer;
1595
+ },
1596
+ decode(input, length) {
1597
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
1598
+ let end = length === undefined ? reader.len : reader.pos + length;
1599
+ const message = createBaseQueryHistoricalInfoRequest();
1600
+ while (reader.pos < end) {
1601
+ const tag = reader.uint32();
1602
+ switch (tag >>> 3) {
1603
+ case 1:
1604
+ if (tag !== 8) {
1605
+ break;
1606
+ }
1607
+ message.height = longToNumber(reader.int64());
1608
+ continue;
1609
+ }
1610
+ if ((tag & 7) === 4 || tag === 0) {
1611
+ break;
1612
+ }
1613
+ reader.skipType(tag & 7);
1614
+ }
1615
+ return message;
1616
+ },
1617
+ fromJSON(object) {
1618
+ return { height: isSet(object.height) ? Number(object.height) : 0 };
1619
+ },
1620
+ toJSON(message) {
1621
+ const obj = {};
1622
+ message.height !== undefined && (obj.height = Math.round(message.height));
1623
+ return obj;
1624
+ },
1625
+ create(base) {
1626
+ return QueryHistoricalInfoRequest.fromPartial(base ?? {});
1627
+ },
1628
+ fromPartial(object) {
1629
+ const message = createBaseQueryHistoricalInfoRequest();
1630
+ message.height = object.height ?? 0;
1631
+ return message;
1632
+ },
1633
+ };
1634
+ function createBaseQueryHistoricalInfoResponse() {
1635
+ return { hist: undefined };
1636
+ }
1637
+ export const QueryHistoricalInfoResponse = {
1638
+ encode(message, writer = _m0.Writer.create()) {
1639
+ if (message.hist !== undefined) {
1640
+ HistoricalInfo.encode(message.hist, writer.uint32(10).fork()).ldelim();
1641
+ }
1642
+ return writer;
1643
+ },
1644
+ decode(input, length) {
1645
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
1646
+ let end = length === undefined ? reader.len : reader.pos + length;
1647
+ const message = createBaseQueryHistoricalInfoResponse();
1648
+ while (reader.pos < end) {
1649
+ const tag = reader.uint32();
1650
+ switch (tag >>> 3) {
1651
+ case 1:
1652
+ if (tag !== 10) {
1653
+ break;
1654
+ }
1655
+ message.hist = HistoricalInfo.decode(reader, reader.uint32());
1656
+ continue;
1657
+ }
1658
+ if ((tag & 7) === 4 || tag === 0) {
1659
+ break;
1660
+ }
1661
+ reader.skipType(tag & 7);
1662
+ }
1663
+ return message;
1664
+ },
1665
+ fromJSON(object) {
1666
+ return {
1667
+ hist: isSet(object.hist)
1668
+ ? HistoricalInfo.fromJSON(object.hist)
1669
+ : undefined,
1670
+ };
1671
+ },
1672
+ toJSON(message) {
1673
+ const obj = {};
1674
+ message.hist !== undefined &&
1675
+ (obj.hist = message.hist
1676
+ ? HistoricalInfo.toJSON(message.hist)
1677
+ : undefined);
1678
+ return obj;
1679
+ },
1680
+ create(base) {
1681
+ return QueryHistoricalInfoResponse.fromPartial(base ?? {});
1682
+ },
1683
+ fromPartial(object) {
1684
+ const message = createBaseQueryHistoricalInfoResponse();
1685
+ message.hist =
1686
+ object.hist !== undefined && object.hist !== null
1687
+ ? HistoricalInfo.fromPartial(object.hist)
1688
+ : undefined;
1689
+ return message;
1690
+ },
1691
+ };
1692
+ function createBaseQueryPoolRequest() {
1693
+ return {};
1694
+ }
1695
+ export const QueryPoolRequest = {
1696
+ encode(_, writer = _m0.Writer.create()) {
1697
+ return writer;
1698
+ },
1699
+ decode(input, length) {
1700
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
1701
+ let end = length === undefined ? reader.len : reader.pos + length;
1702
+ const message = createBaseQueryPoolRequest();
1703
+ while (reader.pos < end) {
1704
+ const tag = reader.uint32();
1705
+ switch (tag >>> 3) {
1706
+ }
1707
+ if ((tag & 7) === 4 || tag === 0) {
1708
+ break;
1709
+ }
1710
+ reader.skipType(tag & 7);
1711
+ }
1712
+ return message;
1713
+ },
1714
+ fromJSON(_) {
1715
+ return {};
1716
+ },
1717
+ toJSON(_) {
1718
+ const obj = {};
1719
+ return obj;
1720
+ },
1721
+ create(base) {
1722
+ return QueryPoolRequest.fromPartial(base ?? {});
1723
+ },
1724
+ fromPartial(_) {
1725
+ const message = createBaseQueryPoolRequest();
1726
+ return message;
1727
+ },
1728
+ };
1729
+ function createBaseQueryPoolResponse() {
1730
+ return { pool: undefined };
1731
+ }
1732
+ export const QueryPoolResponse = {
1733
+ encode(message, writer = _m0.Writer.create()) {
1734
+ if (message.pool !== undefined) {
1735
+ Pool.encode(message.pool, writer.uint32(10).fork()).ldelim();
1736
+ }
1737
+ return writer;
1738
+ },
1739
+ decode(input, length) {
1740
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
1741
+ let end = length === undefined ? reader.len : reader.pos + length;
1742
+ const message = createBaseQueryPoolResponse();
1743
+ while (reader.pos < end) {
1744
+ const tag = reader.uint32();
1745
+ switch (tag >>> 3) {
1746
+ case 1:
1747
+ if (tag !== 10) {
1748
+ break;
1749
+ }
1750
+ message.pool = Pool.decode(reader, reader.uint32());
1751
+ continue;
1752
+ }
1753
+ if ((tag & 7) === 4 || tag === 0) {
1754
+ break;
1755
+ }
1756
+ reader.skipType(tag & 7);
1757
+ }
1758
+ return message;
1759
+ },
1760
+ fromJSON(object) {
1761
+ return {
1762
+ pool: isSet(object.pool) ? Pool.fromJSON(object.pool) : undefined,
1763
+ };
1764
+ },
1765
+ toJSON(message) {
1766
+ const obj = {};
1767
+ message.pool !== undefined &&
1768
+ (obj.pool = message.pool ? Pool.toJSON(message.pool) : undefined);
1769
+ return obj;
1770
+ },
1771
+ create(base) {
1772
+ return QueryPoolResponse.fromPartial(base ?? {});
1773
+ },
1774
+ fromPartial(object) {
1775
+ const message = createBaseQueryPoolResponse();
1776
+ message.pool =
1777
+ object.pool !== undefined && object.pool !== null
1778
+ ? Pool.fromPartial(object.pool)
1779
+ : undefined;
1780
+ return message;
1781
+ },
1782
+ };
1783
+ function createBaseQueryParamsRequest() {
1784
+ return {};
1785
+ }
1786
+ export const QueryParamsRequest = {
1787
+ encode(_, writer = _m0.Writer.create()) {
1788
+ return writer;
1789
+ },
1790
+ decode(input, length) {
1791
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
1792
+ let end = length === undefined ? reader.len : reader.pos + length;
1793
+ const message = createBaseQueryParamsRequest();
1794
+ while (reader.pos < end) {
1795
+ const tag = reader.uint32();
1796
+ switch (tag >>> 3) {
1797
+ }
1798
+ if ((tag & 7) === 4 || tag === 0) {
1799
+ break;
1800
+ }
1801
+ reader.skipType(tag & 7);
1802
+ }
1803
+ return message;
1804
+ },
1805
+ fromJSON(_) {
1806
+ return {};
1807
+ },
1808
+ toJSON(_) {
1809
+ const obj = {};
1810
+ return obj;
1811
+ },
1812
+ create(base) {
1813
+ return QueryParamsRequest.fromPartial(base ?? {});
1814
+ },
1815
+ fromPartial(_) {
1816
+ const message = createBaseQueryParamsRequest();
1817
+ return message;
1818
+ },
1819
+ };
1820
+ function createBaseQueryParamsResponse() {
1821
+ return { params: undefined };
1822
+ }
1823
+ export const QueryParamsResponse = {
1824
+ encode(message, writer = _m0.Writer.create()) {
1825
+ if (message.params !== undefined) {
1826
+ Params.encode(message.params, writer.uint32(10).fork()).ldelim();
1827
+ }
1828
+ return writer;
1829
+ },
1830
+ decode(input, length) {
1831
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
1832
+ let end = length === undefined ? reader.len : reader.pos + length;
1833
+ const message = createBaseQueryParamsResponse();
1834
+ while (reader.pos < end) {
1835
+ const tag = reader.uint32();
1836
+ switch (tag >>> 3) {
1837
+ case 1:
1838
+ if (tag !== 10) {
1839
+ break;
1840
+ }
1841
+ message.params = Params.decode(reader, reader.uint32());
1842
+ continue;
1843
+ }
1844
+ if ((tag & 7) === 4 || tag === 0) {
1845
+ break;
1846
+ }
1847
+ reader.skipType(tag & 7);
1848
+ }
1849
+ return message;
1850
+ },
1851
+ fromJSON(object) {
1852
+ return {
1853
+ params: isSet(object.params) ? Params.fromJSON(object.params) : undefined,
1854
+ };
1855
+ },
1856
+ toJSON(message) {
1857
+ const obj = {};
1858
+ message.params !== undefined &&
1859
+ (obj.params = message.params ? Params.toJSON(message.params) : undefined);
1860
+ return obj;
1861
+ },
1862
+ create(base) {
1863
+ return QueryParamsResponse.fromPartial(base ?? {});
1864
+ },
1865
+ fromPartial(object) {
1866
+ const message = createBaseQueryParamsResponse();
1867
+ message.params =
1868
+ object.params !== undefined && object.params !== null
1869
+ ? Params.fromPartial(object.params)
1870
+ : undefined;
1871
+ return message;
1872
+ },
1873
+ };
1874
+ export class QueryClientImpl {
1875
+ rpc;
1876
+ service;
1877
+ constructor(rpc, opts) {
1878
+ this.service = opts?.service || "cosmos.staking.v1beta1.Query";
1879
+ this.rpc = rpc;
1880
+ this.Validators = this.Validators.bind(this);
1881
+ this.Validator = this.Validator.bind(this);
1882
+ this.ValidatorDelegations = this.ValidatorDelegations.bind(this);
1883
+ this.ValidatorUnbondingDelegations =
1884
+ this.ValidatorUnbondingDelegations.bind(this);
1885
+ this.Delegation = this.Delegation.bind(this);
1886
+ this.UnbondingDelegation = this.UnbondingDelegation.bind(this);
1887
+ this.DelegatorDelegations = this.DelegatorDelegations.bind(this);
1888
+ this.DelegatorUnbondingDelegations =
1889
+ this.DelegatorUnbondingDelegations.bind(this);
1890
+ this.Redelegations = this.Redelegations.bind(this);
1891
+ this.DelegatorValidators = this.DelegatorValidators.bind(this);
1892
+ this.DelegatorValidator = this.DelegatorValidator.bind(this);
1893
+ this.HistoricalInfo = this.HistoricalInfo.bind(this);
1894
+ this.Pool = this.Pool.bind(this);
1895
+ this.Params = this.Params.bind(this);
1896
+ }
1897
+ Validators(request) {
1898
+ const data = QueryValidatorsRequest.encode(request).finish();
1899
+ const promise = this.rpc.request(this.service, "Validators", data);
1900
+ return promise.then((data) => QueryValidatorsResponse.decode(_m0.Reader.create(data)));
1901
+ }
1902
+ Validator(request) {
1903
+ const data = QueryValidatorRequest.encode(request).finish();
1904
+ const promise = this.rpc.request(this.service, "Validator", data);
1905
+ return promise.then((data) => QueryValidatorResponse.decode(_m0.Reader.create(data)));
1906
+ }
1907
+ ValidatorDelegations(request) {
1908
+ const data = QueryValidatorDelegationsRequest.encode(request).finish();
1909
+ const promise = this.rpc.request(this.service, "ValidatorDelegations", data);
1910
+ return promise.then((data) => QueryValidatorDelegationsResponse.decode(_m0.Reader.create(data)));
1911
+ }
1912
+ ValidatorUnbondingDelegations(request) {
1913
+ const data = QueryValidatorUnbondingDelegationsRequest.encode(request).finish();
1914
+ const promise = this.rpc.request(this.service, "ValidatorUnbondingDelegations", data);
1915
+ return promise.then((data) => QueryValidatorUnbondingDelegationsResponse.decode(_m0.Reader.create(data)));
1916
+ }
1917
+ Delegation(request) {
1918
+ const data = QueryDelegationRequest.encode(request).finish();
1919
+ const promise = this.rpc.request(this.service, "Delegation", data);
1920
+ return promise.then((data) => QueryDelegationResponse.decode(_m0.Reader.create(data)));
1921
+ }
1922
+ UnbondingDelegation(request) {
1923
+ const data = QueryUnbondingDelegationRequest.encode(request).finish();
1924
+ const promise = this.rpc.request(this.service, "UnbondingDelegation", data);
1925
+ return promise.then((data) => QueryUnbondingDelegationResponse.decode(_m0.Reader.create(data)));
1926
+ }
1927
+ DelegatorDelegations(request) {
1928
+ const data = QueryDelegatorDelegationsRequest.encode(request).finish();
1929
+ const promise = this.rpc.request(this.service, "DelegatorDelegations", data);
1930
+ return promise.then((data) => QueryDelegatorDelegationsResponse.decode(_m0.Reader.create(data)));
1931
+ }
1932
+ DelegatorUnbondingDelegations(request) {
1933
+ const data = QueryDelegatorUnbondingDelegationsRequest.encode(request).finish();
1934
+ const promise = this.rpc.request(this.service, "DelegatorUnbondingDelegations", data);
1935
+ return promise.then((data) => QueryDelegatorUnbondingDelegationsResponse.decode(_m0.Reader.create(data)));
1936
+ }
1937
+ Redelegations(request) {
1938
+ const data = QueryRedelegationsRequest.encode(request).finish();
1939
+ const promise = this.rpc.request(this.service, "Redelegations", data);
1940
+ return promise.then((data) => QueryRedelegationsResponse.decode(_m0.Reader.create(data)));
1941
+ }
1942
+ DelegatorValidators(request) {
1943
+ const data = QueryDelegatorValidatorsRequest.encode(request).finish();
1944
+ const promise = this.rpc.request(this.service, "DelegatorValidators", data);
1945
+ return promise.then((data) => QueryDelegatorValidatorsResponse.decode(_m0.Reader.create(data)));
1946
+ }
1947
+ DelegatorValidator(request) {
1948
+ const data = QueryDelegatorValidatorRequest.encode(request).finish();
1949
+ const promise = this.rpc.request(this.service, "DelegatorValidator", data);
1950
+ return promise.then((data) => QueryDelegatorValidatorResponse.decode(_m0.Reader.create(data)));
1951
+ }
1952
+ HistoricalInfo(request) {
1953
+ const data = QueryHistoricalInfoRequest.encode(request).finish();
1954
+ const promise = this.rpc.request(this.service, "HistoricalInfo", data);
1955
+ return promise.then((data) => QueryHistoricalInfoResponse.decode(_m0.Reader.create(data)));
1956
+ }
1957
+ Pool(request) {
1958
+ const data = QueryPoolRequest.encode(request).finish();
1959
+ const promise = this.rpc.request(this.service, "Pool", data);
1960
+ return promise.then((data) => QueryPoolResponse.decode(_m0.Reader.create(data)));
1961
+ }
1962
+ Params(request) {
1963
+ const data = QueryParamsRequest.encode(request).finish();
1964
+ const promise = this.rpc.request(this.service, "Params", data);
1965
+ return promise.then((data) => QueryParamsResponse.decode(_m0.Reader.create(data)));
1966
+ }
1967
+ }
1968
+ var tsProtoGlobalThis = (() => {
1969
+ if (typeof globalThis !== "undefined") {
1970
+ return globalThis;
1971
+ }
1972
+ if (typeof self !== "undefined") {
1973
+ return self;
1974
+ }
1975
+ if (typeof window !== "undefined") {
1976
+ return window;
1977
+ }
1978
+ if (typeof global !== "undefined") {
1979
+ return global;
1980
+ }
1981
+ throw "Unable to locate global object";
1982
+ })();
1983
+ function longToNumber(long) {
1984
+ if (long.gt(Number.MAX_SAFE_INTEGER)) {
1985
+ throw new tsProtoGlobalThis.Error("Value is larger than Number.MAX_SAFE_INTEGER");
1986
+ }
1987
+ return long.toNumber();
1988
+ }
1989
+ if (_m0.util.Long !== Long) {
1990
+ _m0.util.Long = Long;
1991
+ _m0.configure();
1992
+ }
1993
+ function isSet(value) {
1994
+ return value !== null && value !== undefined;
1995
+ }
1996
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29zbW9zL3N0YWtpbmcvdjFiZXRhMS9xdWVyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxvQkFBb0I7QUFDcEIsT0FBTyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBQ3hCLE9BQU8sR0FBRyxNQUFNLG9CQUFvQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3pELE9BQU8sRUFDTCxrQkFBa0IsRUFDbEIsY0FBYyxFQUNkLE1BQU0sRUFDTixJQUFJLEVBQ0osb0JBQW9CLEVBQ3BCLG1CQUFtQixFQUNuQixTQUFTLEdBQ1YsTUFBTSxXQUFXLENBQUM7QUFFbkIsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLHdCQUF3QixDQUFDO0FBNFB4RCxTQUFTLGdDQUFnQztJQUN2QyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLENBQUM7QUFDL0MsQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHO0lBQ3BDLE1BQU0sQ0FDSixPQUErQixFQUMvQixTQUFxQixHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtRQUV4QyxJQUFJLE9BQU8sQ0FBQyxNQUFNLEtBQUssRUFBRSxFQUFFO1lBQ3pCLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUMxQztRQUNELElBQUksT0FBTyxDQUFDLFVBQVUsS0FBSyxTQUFTLEVBQUU7WUFDcEMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztTQUMzRTtRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxNQUFNLENBQ0osS0FBOEIsRUFDOUIsTUFBZTtRQUVmLE1BQU0sTUFBTSxHQUNWLEtBQUssWUFBWSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pFLElBQUksR0FBRyxHQUFHLE1BQU0sS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDO1FBQ2xFLE1BQU0sT0FBTyxHQUFHLGdDQUFnQyxFQUFFLENBQUM7UUFDbkQsT0FBTyxNQUFNLENBQUMsR0FBRyxHQUFHLEdBQUcsRUFBRTtZQUN2QixNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDNUIsUUFBUSxHQUFHLEtBQUssQ0FBQyxFQUFFO2dCQUNqQixLQUFLLENBQUM7b0JBQ0osSUFBSSxHQUFHLEtBQUssRUFBRSxFQUFFO3dCQUNkLE1BQU07cUJBQ1A7b0JBRUQsT0FBTyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7b0JBQ2pDLFNBQVM7Z0JBQ1gsS0FBSyxDQUFDO29CQUNKLElBQUksR0FBRyxLQUFLLEVBQUUsRUFBRTt3QkFDZCxNQUFNO3FCQUNQO29CQUVELE9BQU8sQ0FBQyxVQUFVLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7b0JBQ2pFLFNBQVM7YUFDWjtZQUNELElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLEVBQUU7Z0JBQ2hDLE1BQU07YUFDUDtZQUNELE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDO1NBQzFCO1FBQ0QsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVELFFBQVEsQ0FBQyxNQUFXO1FBQ2xCLE9BQU87WUFDTCxNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUN6RCxVQUFVLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUM7Z0JBQ2xDLENBQUMsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUM7Z0JBQ3pDLENBQUMsQ0FBQyxTQUFTO1NBQ2QsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLENBQUMsT0FBK0I7UUFDcEMsTUFBTSxHQUFHLEdBQVEsRUFBRSxDQUFDO1FBQ3BCLE9BQU8sQ0FBQyxNQUFNLEtBQUssU0FBUyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDOUQsT0FBTyxDQUFDLFVBQVUsS0FBSyxTQUFTO1lBQzlCLENBQUMsR0FBRyxDQUFDLFVBQVUsR0FBRyxPQUFPLENBQUMsVUFBVTtnQkFDbEMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQztnQkFDeEMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2pCLE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVELE1BQU0sQ0FDSixJQUFRO1FBRVIsT0FBTyxzQkFBc0IsQ0FBQyxXQUFXLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFRCxXQUFXLENBQ1QsTUFBUztRQUVULE1BQU0sT0FBTyxHQUFHLGdDQUFnQyxFQUFFLENBQUM7UUFDbkQsT0FBTyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQztRQUNyQyxPQUFPLENBQUMsVUFBVTtZQUNoQixNQUFNLENBQUMsVUFBVSxLQUFLLFNBQVMsSUFBSSxNQUFNLENBQUMsVUFBVSxLQUFLLElBQUk7Z0JBQzNELENBQUMsQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUM7Z0JBQzVDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDaEIsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztDQUNGLENBQUM7QUFFRixTQUFTLGlDQUFpQztJQUN4QyxPQUFPLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLENBQUM7QUFDbkQsQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHO0lBQ3JDLE1BQU0sQ0FDSixPQUFnQyxFQUNoQyxTQUFxQixHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtRQUV4QyxLQUFLLE1BQU0sQ0FBQyxJQUFJLE9BQU8sQ0FBQyxVQUFVLEVBQUU7WUFDbEMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFFLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQ3pEO1FBQ0QsSUFBSSxPQUFPLENBQUMsVUFBVSxLQUFLLFNBQVMsRUFBRTtZQUNwQyxZQUFZLENBQUMsTUFBTSxDQUNqQixPQUFPLENBQUMsVUFBVSxFQUNsQixNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUN6QixDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQ1o7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsTUFBTSxDQUNKLEtBQThCLEVBQzlCLE1BQWU7UUFFZixNQUFNLE1BQU0sR0FDVixLQUFLLFlBQVksR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNqRSxJQUFJLEdBQUcsR0FBRyxNQUFNLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQztRQUNsRSxNQUFNLE9BQU8sR0FBRyxpQ0FBaUMsRUFBRSxDQUFDO1FBQ3BELE9BQU8sTUFBTSxDQUFDLEdBQUcsR0FBRyxHQUFHLEVBQUU7WUFDdkIsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzVCLFFBQVEsR0FBRyxLQUFLLENBQUMsRUFBRTtnQkFDakIsS0FBSyxDQUFDO29CQUNKLElBQUksR0FBRyxLQUFLLEVBQUUsRUFBRTt3QkFDZCxNQUFNO3FCQUNQO29CQUVELE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7b0JBQ25FLFNBQVM7Z0JBQ1gsS0FBSyxDQUFDO29CQUNKLElBQUksR0FBRyxLQUFLLEVBQUUsRUFBRTt3QkFDZCxNQUFNO3FCQUNQO29CQUVELE9BQU8sQ0FBQyxVQUFVLEdBQUcsWUFBWSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7b0JBQ2xFLFNBQVM7YUFDWjtZQUNELElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLEVBQUU7Z0JBQ2hDLE1BQU07YUFDUDtZQUNELE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDO1NBQzFCO1FBQ0QsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVELFFBQVEsQ0FBQyxNQUFXO1FBQ2xCLE9BQU87WUFDTCxVQUFVLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsVUFBVSxDQUFDO2dCQUMzQyxDQUFDLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFNLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQzFELENBQUMsQ0FBQyxFQUFFO1lBQ04sVUFBVSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDO2dCQUNsQyxDQUFDLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDO2dCQUMxQyxDQUFDLENBQUMsU0FBUztTQUNkLENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxDQUFDLE9BQWdDO1FBQ3JDLE1BQU0sR0FBRyxHQUFRLEVBQUUsQ0FBQztRQUNwQixJQUFJLE9BQU8sQ0FBQyxVQUFVLEVBQUU7WUFDdEIsR0FBRyxDQUFDLFVBQVUsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQzVDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUNwQyxDQUFDO1NBQ0g7YUFBTTtZQUNMLEdBQUcsQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDO1NBQ3JCO1FBQ0QsT0FBTyxDQUFDLFVBQVUsS0FBSyxTQUFTO1lBQzlCLENBQUMsR0FBRyxDQUFDLFVBQVUsR0FBRyxPQUFPLENBQUMsVUFBVTtnQkFDbEMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQztnQkFDekMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2pCLE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVELE1BQU0sQ0FDSixJQUFRO1FBRVIsT0FBTyx1QkFBdUIsQ0FBQyxXQUFXLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFRCxXQUFXLENBQ1QsTUFBUztRQUVULE1BQU0sT0FBTyxHQUFHLGlDQUFpQyxFQUFFLENBQUM7UUFDcEQsT0FBTyxDQUFDLFVBQVU7WUFDaEIsTUFBTSxDQUFDLFVBQVUsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDaEUsT0FBTyxDQUFDLFVBQVU7WUFDaEIsTUFBTSxDQUFDLFVBQVUsS0FBSyxTQUFTLElBQUksTUFBTSxDQUFDLFVBQVUsS0FBSyxJQUFJO2dCQUMzRCxDQUFDLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDO2dCQUM3QyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBQ2hCLE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7Q0FDRixDQUFDO0FBRUYsU0FBUywrQkFBK0I7SUFDdEMsT0FBTyxFQUFFLGFBQWEsRUFBRSxFQUFFLEVBQUUsQ0FBQztBQUMvQixDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUc7SUFDbkMsTUFBTSxDQUNKLE9BQThCLEVBQzlCLFNBQXFCLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO1FBRXhDLElBQUksT0FBTyxDQUFDLGFBQWEsS0FBSyxFQUFFLEVBQUU7WUFDaEMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1NBQ2pEO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELE1BQU0sQ0FDSixLQUE4QixFQUM5QixNQUFlO1FBRWYsTUFBTSxNQUFNLEdBQ1YsS0FBSyxZQUFZLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakUsSUFBSSxHQUFHLEdBQUcsTUFBTSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUM7UUFDbEUsTUFBTSxPQUFPLEdBQUcsK0JBQStCLEVBQUUsQ0FBQztRQUNsRCxPQUFPLE1BQU0sQ0FBQyxHQUFHLEdBQUcsR0FBRyxFQUFFO1lBQ3ZCLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUM1QixRQUFRLEdBQUcsS0FBSyxDQUFDLEVBQUU7Z0JBQ2pCLEtBQUssQ0FBQztvQkFDSixJQUFJLEdBQUcsS0FBSyxFQUFFLEVBQUU7d0JBQ2QsTUFBTTtxQkFDUDtvQkFFRCxPQUFPLENBQUMsYUFBYSxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztvQkFDeEMsU0FBUzthQUNaO1lBQ0QsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsRUFBRTtnQkFDaEMsTUFBTTthQUNQO1lBQ0QsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDMUI7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQsUUFBUSxDQUFDLE1BQVc7UUFDbEIsT0FBTztZQUNMLGFBQWEsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQztnQkFDeEMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDO2dCQUM5QixDQUFDLENBQUMsRUFBRTtTQUNQLENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxDQUFDLE9BQThCO1FBQ25DLE1BQU0sR0FBRyxHQUFRLEVBQUUsQ0FBQztRQUNwQixPQUFPLENBQUMsYUFBYSxLQUFLLFNBQVM7WUFDakMsQ0FBQyxHQUFHLENBQUMsYUFBYSxHQUFHLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUM5QyxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFRCxNQUFNLENBQ0osSUFBUTtRQUVSLE9BQU8scUJBQXFCLENBQUMsV0FBVyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRUQsV0FBVyxDQUNULE1BQVM7UUFFVCxNQUFNLE9BQU8sR0FBRywrQkFBK0IsRUFBRSxDQUFDO1FBQ2xELE9BQU8sQ0FBQyxhQUFhLEdBQUcsTUFBTSxDQUFDLGFBQWEsSUFBSSxFQUFFLENBQUM7UUFDbkQsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztDQUNGLENBQUM7QUFFRixTQUFTLGdDQUFnQztJQUN2QyxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxDQUFDO0FBQ2xDLENBQUM7QUFFRCxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRztJQUNwQyxNQUFNLENBQ0osT0FBK0IsRUFDL0IsU0FBcUIsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUU7UUFFeEMsSUFBSSxPQUFPLENBQUMsU0FBUyxLQUFLLFNBQVMsRUFBRTtZQUNuQyxTQUFTLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQ3hFO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELE1BQU0sQ0FDSixLQUE4QixFQUM5QixNQUFlO1FBRWYsTUFBTSxNQUFNLEdBQ1YsS0FBSyxZQUFZLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakUsSUFBSSxHQUFHLEdBQUcsTUFBTSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUM7UUFDbEUsTUFBTSxPQUFPLEdBQUcsZ0NBQWdDLEVBQUUsQ0FBQztRQUNuRCxPQUFPLE1BQU0sQ0FBQyxHQUFHLEdBQUcsR0FBRyxFQUFFO1lBQ3ZCLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUM1QixRQUFRLEdBQUcsS0FBSyxDQUFDLEVBQUU7Z0JBQ2pCLEtBQUssQ0FBQztvQkFDSixJQUFJLEdBQUcsS0FBSyxFQUFFLEVBQUU7d0JBQ2QsTUFBTTtxQkFDUDtvQkFFRCxPQUFPLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO29CQUM5RCxTQUFTO2FBQ1o7WUFDRCxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxFQUFFO2dCQUNoQyxNQUFNO2FBQ1A7WUFDRCxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQztTQUMxQjtRQUNELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxRQUFRLENBQUMsTUFBVztRQUNsQixPQUFPO1lBQ0wsU0FBUyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDO2dCQUNoQyxDQUFDLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDO2dCQUN0QyxDQUFDLENBQUMsU0FBUztTQUNkLENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxDQUFDLE9BQStCO1FBQ3BDLE1BQU0sR0FBRyxHQUFRLEVBQUUsQ0FBQztRQUNwQixPQUFPLENBQUMsU0FBUyxLQUFLLFNBQVM7WUFDN0IsQ0FBQyxHQUFHLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQyxTQUFTO2dCQUNoQyxDQUFDLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDO2dCQUNyQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDakIsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRUQsTUFBTSxDQUNKLElBQVE7UUFFUixPQUFPLHNCQUFzQixDQUFDLFdBQVcsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVELFdBQVcsQ0FDVCxNQUFTO1FBRVQsTUFBTSxPQUFPLEdBQUcsZ0NBQWdDLEVBQUUsQ0FBQztRQUNuRCxPQUFPLENBQUMsU0FBUztZQUNmLE1BQU0sQ0FBQyxTQUFTLEtBQUssU0FBUyxJQUFJLE1BQU0sQ0FBQyxTQUFTLEtBQUssSUFBSTtnQkFDekQsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQztnQkFDekMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUNoQixPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0NBQ0YsQ0FBQztBQUVGLFNBQVMsMENBQTBDO0lBQ2pELE9BQU8sRUFBRSxhQUFhLEVBQUUsRUFBRSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsQ0FBQztBQUN0RCxDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0sZ0NBQWdDLEdBQUc7SUFDOUMsTUFBTSxDQUNKLE9BQXlDLEVBQ3pDLFNBQXFCLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO1FBRXhDLElBQUksT0FBTyxDQUFDLGFBQWEsS0FBSyxFQUFFLEVBQUU7WUFDaEMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1NBQ2pEO1FBQ0QsSUFBSSxPQUFPLENBQUMsVUFBVSxLQUFLLFNBQVMsRUFBRTtZQUNwQyxXQUFXLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQzNFO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELE1BQU0sQ0FDSixLQUE4QixFQUM5QixNQUFlO1FBRWYsTUFBTSxNQUFNLEdBQ1YsS0FBSyxZQUFZLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakUsSUFBSSxHQUFHLEdBQUcsTUFBTSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUM7UUFDbEUsTUFBTSxPQUFPLEdBQUcsMENBQTBDLEVBQUUsQ0FBQztRQUM3RCxPQUFPLE1BQU0sQ0FBQyxHQUFHLEdBQUcsR0FBRyxFQUFFO1lBQ3ZCLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUM1QixRQUFRLEdBQUcsS0FBSyxDQUFDLEVBQUU7Z0JBQ2pCLEtBQUssQ0FBQztvQkFDSixJQUFJLEdBQUcsS0FBSyxFQUFFLEVBQUU7d0JBQ2QsTUFBTTtxQkFDUDtvQkFFRCxPQUFPLENBQUMsYUFBYSxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztvQkFDeEMsU0FBUztnQkFDWCxLQUFLLENBQUM7b0JBQ0osSUFBSSxHQUFHLEtBQUssRUFBRSxFQUFFO3dCQUNkLE1BQU07cUJBQ1A7b0JBRUQsT0FBTyxDQUFDLFVBQVUsR0FBRyxXQUFXLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztvQkFDakUsU0FBUzthQUNaO1lBQ0QsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsRUFBRTtnQkFDaEMsTUFBTTthQUNQO1lBQ0QsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDMUI7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQsUUFBUSxDQUFDLE1BQVc7UUFDbEIsT0FBTztZQUNMLGFBQWEsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQztnQkFDeEMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDO2dCQUM5QixDQUFDLENBQUMsRUFBRTtZQUNOLFVBQVUsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQztnQkFDbEMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQztnQkFDekMsQ0FBQyxDQUFDLFNBQVM7U0FDZCxDQUFDO0lBQ0osQ0FBQztJQUVELE1BQU0sQ0FBQyxPQUF5QztRQUM5QyxNQUFNLEdBQUcsR0FBUSxFQUFFLENBQUM7UUFDcEIsT0FBTyxDQUFDLGFBQWEsS0FBSyxTQUFTO1lBQ2pDLENBQUMsR0FBRyxDQUFDLGFBQWEsR0FBRyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDOUMsT0FBTyxDQUFDLFVBQVUsS0FBSyxTQUFTO1lBQzlCLENBQUMsR0FBRyxDQUFDLFVBQVUsR0FBRyxPQUFPLENBQUMsVUFBVTtnQkFDbEMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQztnQkFDeEMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2pCLE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVELE1BQU0sQ0FDSixJQUFRO1FBRVIsT0FBTyxnQ0FBZ0MsQ0FBQyxXQUFXLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFRCxXQUFXLENBRVQsTUFBUztRQUNULE1BQU0sT0FBTyxHQUFHLDBDQUEwQyxFQUFFLENBQUM7UUFDN0QsT0FBTyxDQUFDLGFBQWEsR0FBRyxNQUFNLENBQUMsYUFBYSxJQUFJLEVBQUUsQ0FBQztRQUNuRCxPQUFPLENBQUMsVUFBVTtZQUNoQixNQUFNLENBQUMsVUFBVSxLQUFLLFNBQVMsSUFBSSxNQUFNLENBQUMsVUFBVSxLQUFLLElBQUk7Z0JBQzNELENBQUMsQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUM7Z0JBQzVDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDaEIsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztDQUNGLENBQUM7QUFFRixTQUFTLDJDQUEyQztJQUNsRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsRUFBRSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsQ0FBQztBQUM1RCxDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0saUNBQWlDLEdBQUc7SUFDL0MsTUFBTSxDQUNKLE9BQTBDLEVBQzFDLFNBQXFCLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO1FBRXhDLEtBQUssTUFBTSxDQUFDLElBQUksT0FBTyxDQUFDLG1CQUFtQixFQUFFO1lBQzNDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxDQUFFLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQ2xFO1FBQ0QsSUFBSSxPQUFPLENBQUMsVUFBVSxLQUFLLFNBQVMsRUFBRTtZQUNwQyxZQUFZLENBQUMsTUFBTSxDQUNqQixPQUFPLENBQUMsVUFBVSxFQUNsQixNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUN6QixDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQ1o7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsTUFBTSxDQUNKLEtBQThCLEVBQzlCLE1BQWU7UUFFZixNQUFNLE1BQU0sR0FDVixLQUFLLFlBQVksR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNqRSxJQUFJLEdBQUcsR0FBRyxNQUFNLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQztRQUNsRSxNQUFNLE9BQU8sR0FBRywyQ0FBMkMsRUFBRSxDQUFDO1FBQzlELE9BQU8sTUFBTSxDQUFDLEdBQUcsR0FBRyxHQUFHLEVBQUU7WUFDdkIsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzVCLFFBQVEsR0FBRyxLQUFLLENBQUMsRUFBRTtnQkFDakIsS0FBSyxDQUFDO29CQUNKLElBQUksR0FBRyxLQUFLLEVBQUUsRUFBRTt3QkFDZCxNQUFNO3FCQUNQO29CQUVELE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQzlCLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQ25ELENBQUM7b0JBQ0YsU0FBUztnQkFDWCxLQUFLLENBQUM7b0JBQ0osSUFBSSxHQUFHLEtBQUssRUFBRSxFQUFFO3dCQUNkLE1BQU07cUJBQ1A7b0JBRUQsT0FBTyxDQUFDLFVBQVUsR0FBRyxZQUFZLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztvQkFDbEUsU0FBUzthQUNaO1lBQ0QsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsRUFBRTtnQkFDaEMsTUFBTTthQUNQO1lBQ0QsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDMUI7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQsUUFBUSxDQUFDLE1BQVc7UUFDbEIsT0FBTztZQUNMLG1CQUFtQixFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLG1CQUFtQixDQUFDO2dCQUM3RCxDQUFDLENBQUMsTUFBTSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQU0sRUFBRSxFQUFFLENBQ3hDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FDL0I7Z0JBQ0gsQ0FBQyxDQUFDLEVBQUU7WUFDTixVQUFVLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUM7Z0JBQ2xDLENBQUMsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUM7Z0JBQzFDLENBQUMsQ0FBQyxTQUFTO1NBQ2QsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLENBQUMsT0FBMEM7UUFDL0MsTUFBTSxHQUFHLEdBQVEsRUFBRSxDQUFDO1FBQ3BCLElBQUksT0FBTyxDQUFDLG1CQUFtQixFQUFFO1lBQy9CLEdBQUcsQ0FBQyxtQkFBbUIsR0FBRyxPQUFPLENBQUMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FDOUQsQ0FBQyxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FDN0MsQ0FBQztTQUNIO2FBQU07WUFDTCxHQUFHLENBQUMsbUJBQW1CLEdBQUcsRUFBRSxDQUFDO1NBQzlCO1FBQ0QsT0FBTyxDQUFDLFVBQVUsS0FBSyxTQUFTO1lBQzlCLENBQUMsR0FBRyxDQUFDLFVBQVUsR0FBRyxPQUFPLENBQUMsVUFBVTtnQkFDbEMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQztnQkFDekMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2pCLE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVELE1BQU0sQ0FDSixJQUFRO1FBRVIsT0FBTyxpQ0FBaUMsQ0FBQyxXQUFXLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFFRCxXQUFXLENBRVQsTUFBUztRQUNULE1BQU0sT0FBTyxHQUFHLDJDQUEyQyxFQUFFLENBQUM7UUFDOUQsT0FBTyxDQUFDLG1CQUFtQjtZQUN6QixNQUFNLENBQUMsbUJBQW1CLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FDcEMsa0JBQWtCLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUNsQyxJQUFJLEVBQUUsQ0FBQztRQUNWLE9BQU8sQ0FBQyxVQUFVO1lBQ2hCLE1BQU0sQ0FBQyxVQUFVLEtBQUssU0FBUyxJQUFJLE1BQU0sQ0FBQyxVQUFVLEtBQUssSUFBSTtnQkFDM0QsQ0FBQyxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQztnQkFDN0MsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUNoQixPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0NBQ0YsQ0FBQztBQUVGLFNBQVMsbURBQW1EO0lBQzFELE9BQU8sRUFBRSxhQUFhLEVBQUUsRUFBRSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsQ0FBQztBQUN0RCxDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0seUNBQXlDLEdBQUc7SUFDdkQsTUFBTSxDQUNKLE9BQWtELEVBQ2xELFNBQXFCLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO1FBRXhDLElBQUksT0FBTyxDQUFDLGFBQWEsS0FBSyxFQUFFLEVBQUU7WUFDaEMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1NBQ2pEO1FBQ0QsSUFBSSxPQUFPLENBQUMsVUFBVSxLQUFLLFNBQVMsRUFBRTtZQUNwQyxXQUFXLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQzNFO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELE1BQU0sQ0FDSixLQUE4QixFQUM5QixNQUFlO1FBRWYsTUFBTSxNQUFNLEdBQ1YsS0FBSyxZQUFZLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakUsSUFBSSxHQUFHLEdBQUcsTUFBTSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUM7UUFDbEUsTUFBTSxPQUFPLEdBQUcsbURBQW1ELEVBQUUsQ0FBQztRQUN0RSxPQUFPLE1BQU0sQ0FBQyxHQUFHLEdBQUcsR0FBRyxFQUFFO1lBQ3ZCLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUM1QixRQUFRLEdBQUcsS0FBSyxDQUFDLEVBQUU7Z0JBQ2pCLEtBQUssQ0FBQztvQkFDSixJQUFJLEdBQUcsS0FBSyxFQUFFLEVBQUU7d0JBQ2QsTUFBTTtxQkFDUDtvQkFFRCxPQUFPLENBQUMsYUFBYSxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztvQkFDeEMsU0FBUztnQkFDWCxLQUFLLENBQUM7b0JBQ0osSUFBSSxHQUFHLEtBQUssRUFBRSxFQUFFO3dCQUNkLE1BQU07cUJBQ1A7b0JBRUQsT0FBTyxDQUFDLFVBQVUsR0FBRyxXQUFXLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztvQkFDakUsU0FBUzthQUNaO1lBQ0QsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsRUFBRTtnQkFDaEMsTUFBTTthQUNQO1lBQ0QsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDMUI7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQsUUFBUSxDQUFDLE1BQVc7UUFDbEIsT0FBTztZQUNMLGFBQWEsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQztnQkFDeEMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDO2dCQUM5QixDQUFDLENBQUMsRUFBRTtZQUNOLFVBQVUsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQztnQkFDbEMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQztnQkFDekMsQ0FBQyxDQUFDLFNBQVM7U0FDZCxDQUFDO0lBQ0osQ0FBQztJQUVELE1BQU0sQ0FBQyxPQUFrRDtRQUN2RCxNQUFNLEdBQUcsR0FBUSxFQUFFLENBQUM7UUFDcEIsT0FBTyxDQUFDLGFBQWEsS0FBSyxTQUFTO1lBQ2pDLENBQUMsR0FBRyxDQUFDLGFBQWEsR0FBRyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDOUMsT0FBTyxDQUFDLFVBQVUsS0FBSyxTQUFTO1lBQzlCLENBQUMsR0FBRyxDQUFDLFVBQVUsR0FBRyxPQUFPLENBQUMsVUFBVTtnQkFDbEMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQztnQkFDeEMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2pCLE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVELE1BQU0sQ0FFSixJQUFRO1FBQ1IsT0FBTyx5Q0FBeUMsQ0FBQyxXQUFXLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzNFLENBQUM7SUFFRCxXQUFXLENBRVQsTUFBUztRQUNULE1BQU0sT0FBTyxHQUFHLG1EQUFtRCxFQUFFLENBQUM7UUFDdEUsT0FBTyxDQUFDLGFBQWEsR0FBRyxNQUFNLENBQUMsYUFBYSxJQUFJLEVBQUUsQ0FBQztRQUNuRCxPQUFPLENBQUMsVUFBVTtZQUNoQixNQUFNLENBQUMsVUFBVSxLQUFLLFNBQVMsSUFBSSxNQUFNLENBQUMsVUFBVSxLQUFLLElBQUk7Z0JBQzNELENBQUMsQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUM7Z0JBQzVDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDaEIsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztDQUNGLENBQUM7QUFFRixTQUFTLG9EQUFvRDtJQUMzRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsRUFBRSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsQ0FBQztBQUMzRCxDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0sMENBQTBDLEdBQUc7SUFDeEQsTUFBTSxDQUNKLE9BQW1ELEVBQ25ELFNBQXFCLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO1FBRXhDLEtBQUssTUFBTSxDQUFDLElBQUksT0FBTyxDQUFDLGtCQUFrQixFQUFFO1lBQzFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxDQUFFLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQ25FO1FBQ0QsSUFBSSxPQUFPLENBQUMsVUFBVSxLQUFLLFNBQVMsRUFBRTtZQUNwQyxZQUFZLENBQUMsTUFBTSxDQUNqQixPQUFPLENBQUMsVUFBVSxFQUNsQixNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUN6QixDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQ1o7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsTUFBTSxDQUNKLEtBQThCLEVBQzlCLE1BQWU7UUFFZixNQUFNLE1BQU0sR0FDVixLQUFLLFlBQVksR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNqRSxJQUFJLEdBQUcsR0FBRyxNQUFNLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQztRQUNsRSxNQUFNLE9BQU8sR0FBRyxvREFBb0QsRUFBRSxDQUFDO1FBQ3ZFLE9BQU8sTUFBTSxDQUFDLEdBQUcsR0FBRyxHQUFHLEVBQUU7WUFDdkIsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzVCLFFBQVEsR0FBRyxLQUFLLENBQUMsRUFBRTtnQkFDakIsS0FBSyxDQUFDO29CQUNKLElBQUksR0FBRyxLQUFLLEVBQUUsRUFBRTt3QkFDZCxNQUFNO3FCQUNQO29CQUVELE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQzdCLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQ3BELENBQUM7b0JBQ0YsU0FBUztnQkFDWCxLQUFLLENBQUM7b0JBQ0osSUFBSSxHQUFHLEtBQUssRUFBRSxFQUFFO3dCQUNkLE1BQU07cUJBQ1A7b0JBRUQsT0FBTyxDQUFDLFVBQVUsR0FBRyxZQUFZLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztvQkFDbEUsU0FBUzthQUNaO1lBQ0QsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsRUFBRTtnQkFDaEMsTUFBTTthQUNQO1lBQ0QsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDMUI7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQsUUFBUSxDQUFDLE1BQVc7UUFDbEIsT0FBTztZQUNMLGtCQUFrQixFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLGtCQUFrQixDQUFDO2dCQUMzRCxDQUFDLENBQUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQU0sRUFBRSxFQUFFLENBQ3ZDLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FDaEM7Z0JBQ0gsQ0FBQyxDQUFDLEVBQUU7WUFDTixVQUFVLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUM7Z0JBQ2xDLENBQUMsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUM7Z0JBQzFDLENBQUMsQ0FBQyxTQUFTO1NBQ2QsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLENBQUMsT0FBbUQ7UUFDeEQsTUFBTSxHQUFHLEdBQVEsRUFBRSxDQUFDO1FBQ3BCLElBQUksT0FBTyxDQUFDLGtCQUFrQixFQUFFO1lBQzlCLEdBQUcsQ0FBQyxrQkFBa0IsR0FBRyxPQUFPLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FDNUQsQ0FBQyxDQUFDLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FDOUMsQ0FBQztTQUNIO2FBQU07WUFDTCxHQUFHLENBQUMsa0JBQWtCLEdBQUcsRUFBRSxDQUFDO1NBQzdCO1FBQ0QsT0FBTyxDQUFDLFVBQVUsS0FBSyxTQUFTO1lBQzlCLENBQUMsR0FBRyxDQUFDLFVBQVUsR0FBRyxPQUFPLENBQUMsVUFBVTtnQkFDbEMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQztnQkFDekMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2pCLE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVELE1BQU0sQ0FFSixJQUFRO1FBQ1IsT0FBTywwQ0FBMEMsQ0FBQyxXQUFXLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFFRCxXQUFXLENBRVQsTUFBUztRQUNULE1BQU0sT0FBTyxHQUFHLG9EQUFvRCxFQUFFLENBQUM7UUFDdkUsT0FBTyxDQUFDLGtCQUFrQjtZQUN4QixNQUFNLENBQUMsa0JBQWtCLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FDbkMsbUJBQW1CLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUNuQyxJQUFJLEVBQUUsQ0FBQztRQUNWLE9BQU8sQ0FBQyxVQUFVO1lBQ2hCLE1BQU0sQ0FBQyxVQUFVLEtBQUssU0FBUyxJQUFJLE1BQU0sQ0FBQyxVQUFVLEtBQUssSUFBSTtnQkFDM0QsQ0FBQyxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQztnQkFDN0MsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUNoQixPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0NBQ0YsQ0FBQztBQUVGLFNBQVMsZ0NBQWdDO0lBQ3ZDLE9BQU8sRUFBRSxhQUFhLEVBQUUsRUFBRSxFQUFFLGFBQWEsRUFBRSxFQUFFLEVBQUUsQ0FBQztBQUNsRCxDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUc7SUFDcEMsTUFBTSxDQUNKLE9BQStCLEVBQy9CLFNBQXFCLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO1FBRXhDLElBQUksT0FBTyxDQUFDLGFBQWEsS0FBSyxFQUFFLEVBQUU7WUFDaEMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1NBQ2pEO1FBQ0QsSUFBSSxPQUFPLENBQUMsYUFBYSxLQUFLLEVBQUUsRUFBRTtZQUNoQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUM7U0FDakQ7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsTUFBTSxDQUNKLEtBQThCLEVBQzlCLE1BQWU7UUFFZixNQUFNLE1BQU0sR0FDVixLQUFLLFlBQVksR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNqRSxJQUFJLEdBQUcsR0FBRyxNQUFNLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQztRQUNsRSxNQUFNLE9BQU8sR0FBRyxnQ0FBZ0MsRUFBRSxDQUFDO1FBQ25ELE9BQU8sTUFBTSxDQUFDLEdBQUcsR0FBRyxHQUFHLEVBQUU7WUFDdkIsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzVCLFFBQVEsR0FBRyxLQUFLLENBQUMsRUFBRTtnQkFDakIsS0FBSyxDQUFDO29CQUNKLElBQUksR0FBRyxLQUFLLEVBQUUsRUFBRTt3QkFDZCxNQUFNO3FCQUNQO29CQUVELE9BQU8sQ0FBQyxhQUFhLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO29CQUN4QyxTQUFTO2dCQUNYLEtBQUssQ0FBQztvQkFDSixJQUFJLEdBQUcsS0FBSyxFQUFFLEVBQUU7d0JBQ2QsTUFBTTtxQkFDUDtvQkFFRCxPQUFPLENBQUMsYUFBYSxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztvQkFDeEMsU0FBUzthQUNaO1lBQ0QsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsRUFBRTtnQkFDaEMsTUFBTTthQUNQO1lBQ0QsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDMUI7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQsUUFBUSxDQUFDLE1BQVc7UUFDbEIsT0FBTztZQUNMLGFBQWEsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQztnQkFDeEMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDO2dCQUM5QixDQUFDLENBQUMsRUFBRTtZQUNOLGFBQWEsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQztnQkFDeEMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDO2dCQUM5QixDQUFDLENBQUMsRUFBRTtTQUNQLENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxDQUFDLE9BQStCO1FBQ3BDLE1BQU0sR0FBRyxHQUFRLEVBQUUsQ0FBQztRQUNwQixPQUFPLENBQUMsYUFBYSxLQUFLLFNBQVM7WUFDakMsQ0FBQyxHQUFHLENBQUMsYUFBYSxHQUFHLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUM5QyxPQUFPLENBQUMsYUFBYSxLQUFLLFNBQVM7WUFDakMsQ0FBQyxHQUFHLENBQUMsYUFBYSxHQUFHLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUM5QyxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFRCxNQUFNLENBQ0osSUFBUTtRQUVSLE9BQU8sc0JBQXNCLENBQUMsV0FBVyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRUQsV0FBVyxDQUNULE1BQVM7UUFFVCxNQUFNLE9BQU8sR0FBRyxnQ0FBZ0MsRUFBRSxDQUFDO1FBQ25ELE9BQU8sQ0FBQyxhQUFhLEdBQUcsTUFBTSxDQUFDLGFBQWEsSUFBSSxFQUFFLENBQUM7UUFDbkQsT0FBTyxDQUFDLGFBQWEsR0FBRyxNQUFNLENBQUMsYUFBYSxJQUFJLEVBQUUsQ0FBQztRQUNuRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0NBQ0YsQ0FBQztBQUVGLFNBQVMsaUNBQWlDO0lBQ3hDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxTQUFTLEVBQUUsQ0FBQztBQUMzQyxDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUc7SUFDckMsTUFBTSxDQUNKLE9BQWdDLEVBQ2hDLFNBQXFCLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO1FBRXhDLElBQUksT0FBTyxDQUFDLGtCQUFrQixLQUFLLFNBQVMsRUFBRTtZQUM1QyxrQkFBa0IsQ0FBQyxNQUFNLENBQ3ZCLE9BQU8sQ0FBQyxrQkFBa0IsRUFDMUIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FDekIsQ0FBQyxNQUFNLEVBQUUsQ0FBQztTQUNaO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELE1BQU0sQ0FDSixLQUE4QixFQUM5QixNQUFlO1FBRWYsTUFBTSxNQUFNLEdBQ1YsS0FBSyxZQUFZLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakUsSUFBSSxHQUFHLEdBQUcsTUFBTSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUM7UUFDbEUsTUFBTSxPQUFPLEdBQUcsaUNBQWlDLEVBQUUsQ0FBQztRQUNwRCxPQUFPLE1BQU0sQ0FBQyxHQUFHLEdBQUcsR0FBRyxFQUFFO1lBQ3ZCLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUM1QixRQUFRLEdBQUcsS0FBSyxDQUFDLEVBQUU7Z0JBQ2pCLEtBQUssQ0FBQztvQkFDSixJQUFJLEdBQUcsS0FBSyxFQUFFLEVBQUU7d0JBQ2QsTUFBTTtxQkFDUDtvQkFFRCxPQUFPLENBQUMsa0JBQWtCLEdBQUcsa0JBQWtCLENBQUMsTUFBTSxDQUNwRCxNQUFNLEVBQ04sTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUNoQixDQUFDO29CQUNGLFNBQVM7YUFDWjtZQUNELElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLEVBQUU7Z0JBQ2hDLE1BQU07YUFDUDtZQUNELE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDO1NBQzFCO1FBQ0QsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVELFFBQVEsQ0FBQyxNQUFXO1FBQ2xCLE9BQU87WUFDTCxrQkFBa0IsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDO2dCQUNsRCxDQUFDLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQztnQkFDeEQsQ0FBQyxDQUFDLFNBQVM7U0FDZCxDQUFDO0lBQ0osQ0FBQztJQUVELE1BQU0sQ0FBQyxPQUFnQztRQUNyQyxNQUFNLEdBQUcsR0FBUSxFQUFFLENBQUM7UUFDcEIsT0FBTyxDQUFDLGtCQUFrQixLQUFLLFNBQVM7WUFDdEMsQ0FBQyxHQUFHLENBQUMsa0JBQWtCLEdBQUcsT0FBTyxDQUFDLGtCQUFrQjtnQkFDbEQsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsa0JBQWtCLENBQUM7Z0JBQ3ZELENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNqQixPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFRCxNQUFNLENBQ0osSUFBUTtRQUVSLE9BQU8sdUJBQXVCLENBQUMsV0FBVyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRUQsV0FBVyxDQUNULE1BQVM7UUFFVCxNQUFNLE9BQU8sR0FBRyxpQ0FBaUMsRUFBRSxDQUFDO1FBQ3BELE9BQU8sQ0FBQyxrQkFBa0I7WUFDeEIsTUFBTSxDQUFDLGtCQUFrQixLQUFLLFNBQVM7Z0JBQ3ZDLE1BQU0sQ0FBQyxrQkFBa0IsS0FBSyxJQUFJO2dCQUNoQyxDQUFDLENBQUMsa0JBQWtCLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQztnQkFDM0QsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUNoQixPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0NBQ0YsQ0FBQztBQUVGLFNBQVMseUNBQXlDO0lBQ2hELE9BQU8sRUFBRSxhQUFhLEVBQUUsRUFBRSxFQUFFLGFBQWEsRUFBRSxFQUFFLEVBQUUsQ0FBQztBQUNsRCxDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0sK0JBQStCLEdBQUc7SUFDN0MsTUFBTSxDQUNKLE9BQXdDLEVBQ3hDLFNBQXFCLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO1FBRXhDLElBQUksT0FBTyxDQUFDLGFBQWEsS0FBSyxFQUFFLEVBQUU7WUFDaEMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1NBQ2pEO1FBQ0QsSUFBSSxPQUFPLENBQUMsYUFBYSxLQUFLLEVBQUUsRUFBRTtZQUNoQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUM7U0FDakQ7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsTUFBTSxDQUNKLEtBQThCLEVBQzlCLE1BQWU7UUFFZixNQUFNLE1BQU0sR0FDVixLQUFLLFlBQVksR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNqRSxJQUFJLEdBQUcsR0FBRyxNQUFNLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQztRQUNsRSxNQUFNLE9BQU8sR0FBRyx5Q0FBeUMsRUFBRSxDQUFDO1FBQzVELE9BQU8sTUFBTSxDQUFDLEdBQUcsR0FBRyxHQUFHLEVBQUU7WUFDdkIsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzVCLFFBQVEsR0FBRyxLQUFLLENBQUMsRUFBRTtnQkFDakIsS0FBSyxDQUFDO29CQUNKLElBQUksR0FBRyxLQUFLLEVBQUUsRUFBRTt3QkFDZCxNQUFNO3FCQUNQO29CQUVELE9BQU8sQ0FBQyxhQUFhLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO29CQUN4QyxTQUFTO2dCQUNYLEtBQUssQ0FBQztvQkFDSixJQUFJLEdBQUcsS0FBSyxFQUFFLEVBQUU7d0JBQ2QsTUFBTTtxQkFDUDtvQkFFRCxPQUFPLENBQUMsYUFBYSxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztvQkFDeEMsU0FBUzthQUNaO1lBQ0QsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsRUFBRTtnQkFDaEMsTUFBTTthQUNQO1lBQ0QsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDMUI7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQsUUFBUSxDQUFDLE1BQVc7UUFDbEIsT0FBTztZQUNMLGFBQWEsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQztnQkFDeEMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDO2dCQUM5QixDQUFDLENBQUMsRUFBRTtZQUNOLGFBQWEsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQztnQkFDeEMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDO2dCQUM5QixDQUFDLENBQUMsRUFBRTtTQUNQLENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxDQUFDLE9BQXdDO1FBQzdDLE1BQU0sR0FBRyxHQUFRLEVBQUUsQ0FBQztRQUNwQixPQUFPLENBQUMsYUFBYSxLQUFLLFNBQVM7WUFDakMsQ0FBQyxHQUFHLENBQUMsYUFBYSxHQUFHLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUM5QyxPQUFPLENBQUMsYUFBYSxLQUFLLFNBQVM7WUFDakMsQ0FBQyxHQUFHLENBQUMsYUFBYSxHQUFHLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUM5QyxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFRCxNQUFNLENBQ0osSUFBUTtRQUVSLE9BQU8sK0JBQStCLENBQUMsV0FBVyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBRUQsV0FBVyxDQUNULE1BQVM7UUFFVCxNQUFNLE9BQU8sR0FBRyx5Q0FBeUMsRUFBRSxDQUFDO1FBQzVELE9BQU8sQ0FBQyxhQUFhLEdBQUcsTUFBTSxDQUFDLGFBQWEsSUFBSSxFQUFFLENBQUM7UUFDbkQsT0FBTyxDQUFDLGFBQWEsR0FBRyxNQUFNLENBQUMsYUFBYSxJQUFJLEVBQUUsQ0FBQztRQUNuRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0NBQ0YsQ0FBQztBQUVGLFNBQVMsMENBQTBDO0lBQ2pELE9BQU8sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLENBQUM7QUFDL0IsQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLGdDQUFnQyxHQUFHO0lBQzlDLE1BQU0sQ0FDSixPQUF5QyxFQUN6QyxTQUFxQixHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtRQUV4QyxJQUFJLE9BQU8sQ0FBQyxNQUFNLEtBQUssU0FBUyxFQUFFO1lBQ2hDLG1CQUFtQixDQUFDLE1BQU0sQ0FDeEIsT0FBTyxDQUFDLE1BQU0sRUFDZCxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUN6QixDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQ1o7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsTUFBTSxDQUNKLEtBQThCLEVBQzlCLE1BQWU7UUFFZixNQUFNLE1BQU0sR0FDVixLQUFLLFlBQVksR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNqRSxJQUFJLEdBQUcsR0FBRyxNQUFNLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQztRQUNsRSxNQUFNLE9BQU8sR0FBRywwQ0FBMEMsRUFBRSxDQUFDO1FBQzdELE9BQU8sTUFBTSxDQUFDLEdBQUcsR0FBRyxHQUFHLEVBQUU7WUFDdkIsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzVCLFFBQVEsR0FBRyxLQUFLLENBQUMsRUFBRTtnQkFDakIsS0FBSyxDQUFDO29CQUNKLElBQUksR0FBRyxLQUFLLEVBQUUsRUFBRTt3QkFDZCxNQUFNO3FCQUNQO29CQUVELE9BQU8sQ0FBQyxNQUFNLEdBQUcsbUJBQW1CLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztvQkFDckUsU0FBUzthQUNaO1lBQ0QsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsRUFBRTtnQkFDaEMsTUFBTTthQUNQO1lBQ0QsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDMUI7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQsUUFBUSxDQUFDLE1BQVc7UUFDbEIsT0FBTztZQUNMLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztnQkFDMUIsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDO2dCQUM3QyxDQUFDLENBQUMsU0FBUztTQUNkLENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxDQUFDLE9BQXlDO1FBQzlDLE1BQU0sR0FBRyxHQUFRLEVBQUUsQ0FBQztRQUNwQixPQUFPLENBQUMsTUFBTSxLQUFLLFNBQVM7WUFDMUIsQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNO2dCQUMxQixDQUFDLENBQUMsbUJBQW1CLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7Z0JBQzVDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNqQixPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFRCxNQUFNLENBQ0osSUFBUTtRQUVSLE9BQU8sZ0NBQWdDLENBQUMsV0FBVyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBRUQsV0FBVyxDQUVULE1BQVM7UUFDVCxNQUFNLE9BQU8sR0FBRywwQ0FBMEMsRUFBRSxDQUFDO1FBQzdELE9BQU8sQ0FBQyxNQUFNO1lBQ1osTUFBTSxDQUFDLE1BQU0sS0FBSyxTQUFTLElBQUksTUFBTSxDQUFDLE1BQU0sS0FBSyxJQUFJO2dCQUNuRCxDQUFDLENBQUMsbUJBQW1CLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUM7Z0JBQ2hELENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDaEIsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztDQUNGLENBQUM7QUFFRixTQUFTLDBDQUEwQztJQUNqRCxPQUFPLEVBQUUsYUFBYSxFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLENBQUM7QUFDdEQsQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLGdDQUFnQyxHQUFHO0lBQzlDLE1BQU0sQ0FDSixPQUF5QyxFQUN6QyxTQUFxQixHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtRQUV4QyxJQUFJLE9BQU8sQ0FBQyxhQUFhLEtBQUssRUFBRSxFQUFFO1lBQ2hDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQztTQUNqRDtRQUNELElBQUksT0FBTyxDQUFDLFVBQVUsS0FBSyxTQUFTLEVBQUU7WUFDcEMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztTQUMzRTtRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxNQUFNLENBQ0osS0FBOEIsRUFDOUIsTUFBZTtRQUVmLE1BQU0sTUFBTSxHQUNWLEtBQUssWUFBWSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pFLElBQUksR0FBRyxHQUFHLE1BQU0sS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDO1FBQ2xFLE1BQU0sT0FBTyxHQUFHLDBDQUEwQyxFQUFFLENBQUM7UUFDN0QsT0FBTyxNQUFNLENBQUMsR0FBRyxHQUFHLEdBQUcsRUFBRTtZQUN2QixNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDNUIsUUFBUSxHQUFHLEtBQUssQ0FBQyxFQUFFO2dCQUNqQixLQUFLLENBQUM7b0JBQ0osSUFBSSxHQUFHLEtBQUssRUFBRSxFQUFFO3dCQUNkLE1BQU07cUJBQ1A7b0JBRUQsT0FBTyxDQUFDLGFBQWEsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7b0JBQ3hDLFNBQVM7Z0JBQ1gsS0FBSyxDQUFDO29CQUNKLElBQUksR0FBRyxLQUFLLEVBQUUsRUFBRTt3QkFDZCxNQUFNO3FCQUNQO29CQUVELE9BQU8sQ0FBQyxVQUFVLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7b0JBQ2pFLFNBQVM7YUFDWjtZQUNELElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLEVBQUU7Z0JBQ2hDLE1BQU07YUFDUDtZQUNELE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDO1NBQzFCO1FBQ0QsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVELFFBQVEsQ0FBQyxNQUFXO1FBQ2xCLE9BQU87WUFDTCxhQUFhLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUM7Z0JBQ3hDLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQztnQkFDOUIsQ0FBQyxDQUFDLEVBQUU7WUFDTixVQUFVLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUM7Z0JBQ2xDLENBQUMsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUM7Z0JBQ3pDLENBQUMsQ0FBQyxTQUFTO1NBQ2QsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLENBQUMsT0FBeUM7UUFDOUMsTUFBTSxHQUFHLEdBQVEsRUFBRSxDQUFDO1FBQ3BCLE9BQU8sQ0FBQyxhQUFhLEtBQUssU0FBUztZQUNqQyxDQUFDLEdBQUcsQ0FBQyxhQUFhLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzlDLE9BQU8sQ0FBQyxVQUFVLEtBQUssU0FBUztZQUM5QixDQUFDLEdBQUcsQ0FBQyxVQUFVLEdBQUcsT0FBTyxDQUFDLFVBQVU7Z0JBQ2xDLENBQUMsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUM7Z0JBQ3hDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNqQixPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFRCxNQUFNLENBQ0osSUFBUTtRQUVSLE9BQU8sZ0NBQWdDLENBQUMsV0FBVyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBRUQsV0FBVyxDQUVULE1BQVM7UUFDVCxNQUFNLE9BQU8sR0FBRywwQ0FBMEMsRUFBRSxDQUFDO1FBQzdELE9BQU8sQ0FBQyxhQUFhLEdBQUcsTUFBTSxDQUFDLGFBQWEsSUFBSSxFQUFFLENBQUM7UUFDbkQsT0FBTyxDQUFDLFVBQVU7WUFDaEIsTUFBTSxDQUFDLFVBQVUsS0FBSyxTQUFTLElBQUksTUFBTSxDQUFDLFVBQVUsS0FBSyxJQUFJO2dCQUMzRCxDQUFDLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDO2dCQUM1QyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBQ2hCLE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7Q0FDRixDQUFDO0FBRUYsU0FBUywyQ0FBMkM7SUFDbEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLENBQUM7QUFDNUQsQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLGlDQUFpQyxHQUFHO0lBQy9DLE1BQU0sQ0FDSixPQUEwQyxFQUMxQyxTQUFxQixHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtRQUV4QyxLQUFLLE1BQU0sQ0FBQyxJQUFJLE9BQU8sQ0FBQyxtQkFBbUIsRUFBRTtZQUMzQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBRSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztTQUNsRTtRQUNELElBQUksT0FBTyxDQUFDLFVBQVUsS0FBSyxTQUFTLEVBQUU7WUFDcEMsWUFBWSxDQUFDLE1BQU0sQ0FDakIsT0FBTyxDQUFDLFVBQVUsRUFDbEIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FDekIsQ0FBQyxNQUFNLEVBQUUsQ0FBQztTQUNaO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELE1BQU0sQ0FDSixLQUE4QixFQUM5QixNQUFlO1FBRWYsTUFBTSxNQUFNLEdBQ1YsS0FBSyxZQUFZLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakUsSUFBSSxHQUFHLEdBQUcsTUFBTSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUM7UUFDbEUsTUFBTSxPQUFPLEdBQUcsMkNBQTJDLEVBQUUsQ0FBQztRQUM5RCxPQUFPLE1BQU0sQ0FBQyxHQUFHLEdBQUcsR0FBRyxFQUFFO1lBQ3ZCLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUM1QixRQUFRLEdBQUcsS0FBSyxDQUFDLEVBQUU7Z0JBQ2pCLEtBQUssQ0FBQztvQkFDSixJQUFJLEdBQUcsS0FBSyxFQUFFLEVBQUU7d0JBQ2QsTUFBTTtxQkFDUDtvQkFFRCxPQUFPLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUM5QixrQkFBa0IsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUNuRCxDQUFDO29CQUNGLFNBQVM7Z0JBQ1gsS0FBSyxDQUFDO29CQUNKLElBQUksR0FBRyxLQUFLLEVBQUUsRUFBRTt3QkFDZCxNQUFNO3FCQUNQO29CQUVELE9BQU8sQ0FBQyxVQUFVLEdBQUcsWUFBWSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7b0JBQ2xFLFNBQVM7YUFDWjtZQUNELElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLEVBQUU7Z0JBQ2hDLE1BQU07YUFDUDtZQUNELE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDO1NBQzFCO1FBQ0QsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVELFFBQVEsQ0FBQyxNQUFXO1FBQ2xCLE9BQU87WUFDTCxtQkFBbUIsRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxtQkFBbUIsQ0FBQztnQkFDN0QsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFNLEVBQUUsRUFBRSxDQUN4QyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQy9CO2dCQUNILENBQUMsQ0FBQyxFQUFFO1lBQ04sVUFBVSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDO2dCQUNsQyxDQUFDLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDO2dCQUMxQyxDQUFDLENBQUMsU0FBUztTQUNkLENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxDQUFDLE9BQTBDO1FBQy9DLE1BQU0sR0FBRyxHQUFRLEVBQUUsQ0FBQztRQUNwQixJQUFJLE9BQU8sQ0FBQyxtQkFBbUIsRUFBRTtZQUMvQixHQUFHLENBQUMsbUJBQW1CLEdBQUcsT0FBTyxDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQzlELENBQUMsQ0FBQyxDQUFDLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQzdDLENBQUM7U0FDSDthQUFNO1lBQ0wsR0FBRyxDQUFDLG1CQUFtQixHQUFHLEVBQUUsQ0FBQztTQUM5QjtRQUNELE9BQU8sQ0FBQyxVQUFVLEtBQUssU0FBUztZQUM5QixDQUFDLEdBQUcsQ0FBQyxVQUFVLEdBQUcsT0FBTyxDQUFDLFVBQVU7Z0JBQ2xDLENBQUMsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUM7Z0JBQ3pDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNqQixPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFRCxNQUFNLENBQ0osSUFBUTtRQUVSLE9BQU8saUNBQWlDLENBQUMsV0FBVyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBRUQsV0FBVyxDQUVULE1BQVM7UUFDVCxNQUFNLE9BQU8sR0FBRywyQ0FBMkMsRUFBRSxDQUFDO1FBQzlELE9BQU8sQ0FBQyxtQkFBbUI7WUFDekIsTUFBTSxDQUFDLG1CQUFtQixFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQ3BDLGtCQUFrQixDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FDbEMsSUFBSSxFQUFFLENBQUM7UUFDVixPQUFPLENBQUMsVUFBVTtZQUNoQixNQUFNLENBQUMsVUFBVSxLQUFLLFNBQVMsSUFBSSxNQUFNLENBQUMsVUFBVSxLQUFLLElBQUk7Z0JBQzNELENBQUMsQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUM7Z0JBQzdDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDaEIsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztDQUNGLENBQUM7QUFFRixTQUFTLG1EQUFtRDtJQUMxRCxPQUFPLEVBQUUsYUFBYSxFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLENBQUM7QUFDdEQsQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLHlDQUF5QyxHQUFHO0lBQ3ZELE1BQU0sQ0FDSixPQUFrRCxFQUNsRCxTQUFxQixHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtRQUV4QyxJQUFJLE9BQU8sQ0FBQyxhQUFhLEtBQUssRUFBRSxFQUFFO1lBQ2hDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQztTQUNqRDtRQUNELElBQUksT0FBTyxDQUFDLFVBQVUsS0FBSyxTQUFTLEVBQUU7WUFDcEMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztTQUMzRTtRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxNQUFNLENBQ0osS0FBOEIsRUFDOUIsTUFBZTtRQUVmLE1BQU0sTUFBTSxHQUNWLEtBQUssWUFBWSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pFLElBQUksR0FBRyxHQUFHLE1BQU0sS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDO1FBQ2xFLE1BQU0sT0FBTyxHQUFHLG1EQUFtRCxFQUFFLENBQUM7UUFDdEUsT0FBTyxNQUFNLENBQUMsR0FBRyxHQUFHLEdBQUcsRUFBRTtZQUN2QixNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDNUIsUUFBUSxHQUFHLEtBQUssQ0FBQyxFQUFFO2dCQUNqQixLQUFLLENBQUM7b0JBQ0osSUFBSSxHQUFHLEtBQUssRUFBRSxFQUFFO3dCQUNkLE1BQU07cUJBQ1A7b0JBRUQsT0FBTyxDQUFDLGFBQWEsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7b0JBQ3hDLFNBQVM7Z0JBQ1gsS0FBSyxDQUFDO29CQUNKLElBQUksR0FBRyxLQUFLLEVBQUUsRUFBRTt3QkFDZCxNQUFNO3FCQUNQO29CQUVELE9BQU8sQ0FBQyxVQUFVLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7b0JBQ2pFLFNBQVM7YUFDWjtZQUNELElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLEVBQUU7Z0JBQ2hDLE1BQU07YUFDUDtZQUNELE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDO1NBQzFCO1FBQ0QsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVELFFBQVEsQ0FBQyxNQUFXO1FBQ2xCLE9BQU87WUFDTCxhQUFhLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUM7Z0JBQ3hDLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQztnQkFDOUIsQ0FBQyxDQUFDLEVBQUU7WUFDTixVQUFVLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUM7Z0JBQ2xDLENBQUMsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUM7Z0JBQ3pDLENBQUMsQ0FBQyxTQUFTO1NBQ2QsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLENBQUMsT0FBa0Q7UUFDdkQsTUFBTSxHQUFHLEdBQVEsRUFBRSxDQUFDO1FBQ3BCLE9BQU8sQ0FBQyxhQUFhLEtBQUssU0FBUztZQUNqQyxDQUFDLEdBQUcsQ0FBQyxhQUFhLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzlDLE9BQU8sQ0FBQyxVQUFVLEtBQUssU0FBUztZQUM5QixDQUFDLEdBQUcsQ0FBQyxVQUFVLEdBQUcsT0FBTyxDQUFDLFVBQVU7Z0JBQ2xDLENBQUMsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUM7Z0JBQ3hDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNqQixPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFRCxNQUFNLENBRUosSUFBUTtRQUNSLE9BQU8seUNBQXlDLENBQUMsV0FBVyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQztJQUMzRSxDQUFDO0lBRUQsV0FBVyxDQUVULE1BQVM7UUFDVCxNQUFNLE9BQU8sR0FBRyxtREFBbUQsRUFBRSxDQUFDO1FBQ3RFLE9BQU8sQ0FBQyxhQUFhLEdBQUcsTUFBTSxDQUFDLGFBQWEsSUFBSSxFQUFFLENBQUM7UUFDbkQsT0FBTyxDQUFDLFVBQVU7WUFDaEIsTUFBTSxDQUFDLFVBQVUsS0FBSyxTQUFTLElBQUksTUFBTSxDQUFDLFVBQVUsS0FBSyxJQUFJO2dCQUMzRCxDQUFDLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDO2dCQUM1QyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBQ2hCLE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7Q0FDRixDQUFDO0FBRUYsU0FBUyxvREFBb0Q7SUFDM0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLENBQUM7QUFDM0QsQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLDBDQUEwQyxHQUFHO0lBQ3hELE1BQU0sQ0FDSixPQUFtRCxFQUNuRCxTQUFxQixHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtRQUV4QyxLQUFLLE1BQU0sQ0FBQyxJQUFJLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRTtZQUMxQyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsQ0FBRSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztTQUNuRTtRQUNELElBQUksT0FBTyxDQUFDLFVBQVUsS0FBSyxTQUFTLEVBQUU7WUFDcEMsWUFBWSxDQUFDLE1BQU0sQ0FDakIsT0FBTyxDQUFDLFVBQVUsRUFDbEIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FDekIsQ0FBQyxNQUFNLEVBQUUsQ0FBQztTQUNaO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELE1BQU0sQ0FDSixLQUE4QixFQUM5QixNQUFlO1FBRWYsTUFBTSxNQUFNLEdBQ1YsS0FBSyxZQUFZLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakUsSUFBSSxHQUFHLEdBQUcsTUFBTSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUM7UUFDbEUsTUFBTSxPQUFPLEdBQUcsb0RBQW9ELEVBQUUsQ0FBQztRQUN2RSxPQUFPLE1BQU0sQ0FBQyxHQUFHLEdBQUcsR0FBRyxFQUFFO1lBQ3ZCLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUM1QixRQUFRLEdBQUcsS0FBSyxDQUFDLEVBQUU7Z0JBQ2pCLEtBQUssQ0FBQztvQkFDSixJQUFJLEdBQUcsS0FBSyxFQUFFLEVBQUU7d0JBQ2QsTUFBTTtxQkFDUDtvQkFFRCxPQUFPLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUM3QixtQkFBbUIsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUNwRCxDQUFDO29CQUNGLFNBQVM7Z0JBQ1gsS0FBSyxDQUFDO29CQUNKLElBQUksR0FBRyxLQUFLLEVBQUUsRUFBRTt3QkFDZCxNQUFNO3FCQUNQO29CQUVELE9BQU8sQ0FBQyxVQUFVLEdBQUcsWUFBWSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7b0JBQ2xFLFNBQVM7YUFDWjtZQUNELElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLEVBQUU7Z0JBQ2hDLE1BQU07YUFDUDtZQUNELE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDO1NBQzFCO1FBQ0QsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVELFFBQVEsQ0FBQyxNQUFXO1FBQ2xCLE9BQU87WUFDTCxrQkFBa0IsRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxrQkFBa0IsQ0FBQztnQkFDM0QsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFNLEVBQUUsRUFBRSxDQUN2QyxtQkFBbUIsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQ2hDO2dCQUNILENBQUMsQ0FBQyxFQUFFO1lBQ04sVUFBVSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDO2dCQUNsQyxDQUFDLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDO2dCQUMxQyxDQUFDLENBQUMsU0FBUztTQUNkLENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxDQUFDLE9BQW1EO1FBQ3hELE1BQU0sR0FBRyxHQUFRLEVBQUUsQ0FBQztRQUNwQixJQUFJLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRTtZQUM5QixHQUFHLENBQUMsa0JBQWtCLEdBQUcsT0FBTyxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQzVELENBQUMsQ0FBQyxDQUFDLENBQUMsbUJBQW1CLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQzlDLENBQUM7U0FDSDthQUFNO1lBQ0wsR0FBRyxDQUFDLGtCQUFrQixHQUFHLEVBQUUsQ0FBQztTQUM3QjtRQUNELE9BQU8sQ0FBQyxVQUFVLEtBQUssU0FBUztZQUM5QixDQUFDLEdBQUcsQ0FBQyxVQUFVLEdBQUcsT0FBTyxDQUFDLFVBQVU7Z0JBQ2xDLENBQUMsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUM7Z0JBQ3pDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNqQixPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFRCxNQUFNLENBRUosSUFBUTtRQUNSLE9BQU8sMENBQTBDLENBQUMsV0FBVyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQztJQUM1RSxDQUFDO0lBRUQsV0FBVyxDQUVULE1BQVM7UUFDVCxNQUFNLE9BQU8sR0FBRyxvREFBb0QsRUFBRSxDQUFDO1FBQ3ZFLE9BQU8sQ0FBQyxrQkFBa0I7WUFDeEIsTUFBTSxDQUFDLGtCQUFrQixFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQ25DLG1CQUFtQixDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FDbkMsSUFBSSxFQUFFLENBQUM7UUFDVixPQUFPLENBQUMsVUFBVTtZQUNoQixNQUFNLENBQUMsVUFBVSxLQUFLLFNBQVMsSUFBSSxNQUFNLENBQUMsVUFBVSxLQUFLLElBQUk7Z0JBQzNELENBQUMsQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUM7Z0JBQzdDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDaEIsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztDQUNGLENBQUM7QUFFRixTQUFTLG1DQUFtQztJQUMxQyxPQUFPO1FBQ0wsYUFBYSxFQUFFLEVBQUU7UUFDakIsZ0JBQWdCLEVBQUUsRUFBRTtRQUNwQixnQkFBZ0IsRUFBRSxFQUFFO1FBQ3BCLFVBQVUsRUFBRSxTQUFTO0tBQ3RCLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUc7SUFDdkMsTUFBTSxDQUNKLE9BQWtDLEVBQ2xDLFNBQXFCLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO1FBRXhDLElBQUksT0FBTyxDQUFDLGFBQWEsS0FBSyxFQUFFLEVBQUU7WUFDaEMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1NBQ2pEO1FBQ0QsSUFBSSxPQUFPLENBQUMsZ0JBQWdCLEtBQUssRUFBRSxFQUFFO1lBQ25DLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1NBQ3BEO1FBQ0QsSUFBSSxPQUFPLENBQUMsZ0JBQWdCLEtBQUssRUFBRSxFQUFFO1lBQ25DLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1NBQ3BEO1FBQ0QsSUFBSSxPQUFPLENBQUMsVUFBVSxLQUFLLFNBQVMsRUFBRTtZQUNwQyxXQUFXLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQzNFO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELE1BQU0sQ0FDSixLQUE4QixFQUM5QixNQUFlO1FBRWYsTUFBTSxNQUFNLEdBQ1YsS0FBSyxZQUFZLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakUsSUFBSSxHQUFHLEdBQUcsTUFBTSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUM7UUFDbEUsTUFBTSxPQUFPLEdBQUcsbUNBQW1DLEVBQUUsQ0FBQztRQUN0RCxPQUFPLE1BQU0sQ0FBQyxHQUFHLEdBQUcsR0FBRyxFQUFFO1lBQ3ZCLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUM1QixRQUFRLEdBQUcsS0FBSyxDQUFDLEVBQUU7Z0JBQ2pCLEtBQUssQ0FBQztvQkFDSixJQUFJLEdBQUcsS0FBSyxFQUFFLEVBQUU7d0JBQ2QsTUFBTTtxQkFDUDtvQkFFRCxPQUFPLENBQUMsYUFBYSxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztvQkFDeEMsU0FBUztnQkFDWCxLQUFLLENBQUM7b0JBQ0osSUFBSSxHQUFHLEtBQUssRUFBRSxFQUFFO3dCQUNkLE1BQU07cUJBQ1A7b0JBRUQsT0FBTyxDQUFDLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztvQkFDM0MsU0FBUztnQkFDWCxLQUFLLENBQUM7b0JBQ0osSUFBSSxHQUFHLEtBQUssRUFBRSxFQUFFO3dCQUNkLE1BQU07cUJBQ1A7b0JBRUQsT0FBTyxDQUFDLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztvQkFDM0MsU0FBUztnQkFDWCxLQUFLLENBQUM7b0JBQ0osSUFBSSxHQUFHLEtBQUssRUFBRSxFQUFFO3dCQUNkLE1BQU07cUJBQ1A7b0JBRUQsT0FBTyxDQUFDLFVBQVUsR0FBRyxXQUFXLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztvQkFDakUsU0FBUzthQUNaO1lBQ0QsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsRUFBRTtnQkFDaEMsTUFBTTthQUNQO1lBQ0QsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDMUI7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQsUUFBUSxDQUFDLE1BQVc7UUFDbEIsT0FBTztZQUNMLGFBQWEsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQztnQkFDeEMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDO2dCQUM5QixDQUFDLENBQUMsRUFBRTtZQUNOLGdCQUFnQixFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUM7Z0JBQzlDLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDO2dCQUNqQyxDQUFDLENBQUMsRUFBRTtZQUNOLGdCQUFnQixFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUM7Z0JBQzlDLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDO2dCQUNqQyxDQUFDLENBQUMsRUFBRTtZQUNOLFVBQVUsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQztnQkFDbEMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQztnQkFDekMsQ0FBQyxDQUFDLFNBQVM7U0FDZCxDQUFDO0lBQ0osQ0FBQztJQUVELE1BQU0sQ0FBQyxPQUFrQztRQUN2QyxNQUFNLEdBQUcsR0FBUSxFQUFFLENBQUM7UUFDcEIsT0FBTyxDQUFDLGFBQWEsS0FBSyxTQUFTO1lBQ2pDLENBQUMsR0FBRyxDQUFDLGFBQWEsR0FBRyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDOUMsT0FBTyxDQUFDLGdCQUFnQixLQUFLLFNBQVM7WUFDcEMsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLEdBQUcsT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDcEQsT0FBTyxDQUFDLGdCQUFnQixLQUFLLFNBQVM7WUFDcEMsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLEdBQUcsT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDcEQsT0FBTyxDQUFDLFVBQVUsS0FBSyxTQUFTO1lBQzlCLENBQUMsR0FBRyxDQUFDLFVBQVUsR0FBRyxPQUFPLENBQUMsVUFBVTtnQkFDbEMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQztnQkFDeEMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2pCLE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVELE1BQU0sQ0FDSixJQUFRO1FBRVIsT0FBTyx5QkFBeUIsQ0FBQyxXQUFXLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFRCxXQUFXLENBQ1QsTUFBUztRQUVULE1BQU0sT0FBTyxHQUFHLG1DQUFtQyxFQUFFLENBQUM7UUFDdEQsT0FBTyxDQUFDLGFBQWEsR0FBRyxNQUFNLENBQUMsYUFBYSxJQUFJLEVBQUUsQ0FBQztRQUNuRCxPQUFPLENBQUMsZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixJQUFJLEVBQUUsQ0FBQztRQUN6RCxPQUFPLENBQUMsZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixJQUFJLEVBQUUsQ0FBQztRQUN6RCxPQUFPLENBQUMsVUFBVTtZQUNoQixNQUFNLENBQUMsVUFBVSxLQUFLLFNBQVMsSUFBSSxNQUFNLENBQUMsVUFBVSxLQUFLLElBQUk7Z0JBQzNELENBQUMsQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUM7Z0JBQzVDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDaEIsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztDQUNGLENBQUM7QUFFRixTQUFTLG9DQUFvQztJQUMzQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsRUFBRSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsQ0FBQztBQUM5RCxDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQUc7SUFDeEMsTUFBTSxDQUNKLE9BQW1DLEVBQ25DLFNBQXFCLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO1FBRXhDLEtBQUssTUFBTSxDQUFDLElBQUksT0FBTyxDQUFDLHFCQUFxQixFQUFFO1lBQzdDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxDQUFFLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQ3BFO1FBQ0QsSUFBSSxPQUFPLENBQUMsVUFBVSxLQUFLLFNBQVMsRUFBRTtZQUNwQyxZQUFZLENBQUMsTUFBTSxDQUNqQixPQUFPLENBQUMsVUFBVSxFQUNsQixNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUN6QixDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQ1o7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsTUFBTSxDQUNKLEtBQThCLEVBQzlCLE1BQWU7UUFFZixNQUFNLE1BQU0sR0FDVixLQUFLLFlBQVksR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNqRSxJQUFJLEdBQUcsR0FBRyxNQUFNLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQztRQUNsRSxNQUFNLE9BQU8sR0FBRyxvQ0FBb0MsRUFBRSxDQUFDO1FBQ3ZELE9BQU8sTUFBTSxDQUFDLEdBQUcsR0FBRyxHQUFHLEVBQUU7WUFDdkIsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzVCLFFBQVEsR0FBRyxLQUFLLENBQUMsRUFBRTtnQkFDakIsS0FBSyxDQUFDO29CQUNKLElBQUksR0FBRyxLQUFLLEVBQUUsRUFBRTt3QkFDZCxNQUFNO3FCQUNQO29CQUVELE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQ2hDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQ3JELENBQUM7b0JBQ0YsU0FBUztnQkFDWCxLQUFLLENBQUM7b0JBQ0osSUFBSSxHQUFHLEtBQUssRUFBRSxFQUFFO3dCQUNkLE1BQU07cUJBQ1A7b0JBRUQsT0FBTyxDQUFDLFVBQVUsR0FBRyxZQUFZLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztvQkFDbEUsU0FBUzthQUNaO1lBQ0QsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsRUFBRTtnQkFDaEMsTUFBTTthQUNQO1lBQ0QsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDMUI7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQsUUFBUSxDQUFDLE1BQVc7UUFDbEIsT0FBTztZQUNMLHFCQUFxQixFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLHFCQUFxQixDQUFDO2dCQUNqRSxDQUFDLENBQUMsTUFBTSxDQUFDLHFCQUFxQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQU0sRUFBRSxFQUFFLENBQzFDLG9CQUFvQixDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FDakM7Z0JBQ0gsQ0FBQyxDQUFDLEVBQUU7WUFDTixVQUFVLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUM7Z0JBQ2xDLENBQUMsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUM7Z0JBQzFDLENBQUMsQ0FBQyxTQUFTO1NBQ2QsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLENBQUMsT0FBbUM7UUFDeEMsTUFBTSxHQUFHLEdBQVEsRUFBRSxDQUFDO1FBQ3BCLElBQUksT0FBTyxDQUFDLHFCQUFxQixFQUFFO1lBQ2pDLEdBQUcsQ0FBQyxxQkFBcUIsR0FBRyxPQUFPLENBQUMscUJBQXFCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FDbEUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FDL0MsQ0FBQztTQUNIO2FBQU07WUFDTCxHQUFHLENBQUMscUJBQXFCLEdBQUcsRUFBRSxDQUFDO1NBQ2hDO1FBQ0QsT0FBTyxDQUFDLFVBQVUsS0FBSyxTQUFTO1lBQzlCLENBQUMsR0FBRyxDQUFDLFVBQVUsR0FBRyxPQUFPLENBQUMsVUFBVTtnQkFDbEMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQztnQkFDekMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2pCLE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVELE1BQU0sQ0FDSixJQUFRO1FBRVIsT0FBTywwQkFBMEIsQ0FBQyxXQUFXLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFRCxXQUFXLENBQ1QsTUFBUztRQUVULE1BQU0sT0FBTyxHQUFHLG9DQUFvQyxFQUFFLENBQUM7UUFDdkQsT0FBTyxDQUFDLHFCQUFxQjtZQUMzQixNQUFNLENBQUMscUJBQXFCLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FDdEMsb0JBQW9CLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUNwQyxJQUFJLEVBQUUsQ0FBQztRQUNWLE9BQU8sQ0FBQyxVQUFVO1lBQ2hCLE1BQU0sQ0FBQyxVQUFVLEtBQUssU0FBUyxJQUFJLE1BQU0sQ0FBQyxVQUFVLEtBQUssSUFBSTtnQkFDM0QsQ0FBQyxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQztnQkFDN0MsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUNoQixPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0NBQ0YsQ0FBQztBQUVGLFNBQVMseUNBQXlDO0lBQ2hELE9BQU8sRUFBRSxhQUFhLEVBQUUsRUFBRSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsQ0FBQztBQUN0RCxDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0sK0JBQStCLEdBQUc7SUFDN0MsTUFBTSxDQUNKLE9BQXdDLEVBQ3hDLFNBQXFCLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO1FBRXhDLElBQUksT0FBTyxDQUFDLGFBQWEsS0FBSyxFQUFFLEVBQUU7WUFDaEMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1NBQ2pEO1FBQ0QsSUFBSSxPQUFPLENBQUMsVUFBVSxLQUFLLFNBQVMsRUFBRTtZQUNwQyxXQUFXLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQzNFO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELE1BQU0sQ0FDSixLQUE4QixFQUM5QixNQUFlO1FBRWYsTUFBTSxNQUFNLEdBQ1YsS0FBSyxZQUFZLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakUsSUFBSSxHQUFHLEdBQUcsTUFBTSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUM7UUFDbEUsTUFBTSxPQUFPLEdBQUcseUNBQXlDLEVBQUUsQ0FBQztRQUM1RCxPQUFPLE1BQU0sQ0FBQyxHQUFHLEdBQUcsR0FBRyxFQUFFO1lBQ3ZCLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUM1QixRQUFRLEdBQUcsS0FBSyxDQUFDLEVBQUU7Z0JBQ2pCLEtBQUssQ0FBQztvQkFDSixJQUFJLEdBQUcsS0FBSyxFQUFFLEVBQUU7d0JBQ2QsTUFBTTtxQkFDUDtvQkFFRCxPQUFPLENBQUMsYUFBYSxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztvQkFDeEMsU0FBUztnQkFDWCxLQUFLLENBQUM7b0JBQ0osSUFBSSxHQUFHLEtBQUssRUFBRSxFQUFFO3dCQUNkLE1BQU07cUJBQ1A7b0JBRUQsT0FBTyxDQUFDLFVBQVUsR0FBRyxXQUFXLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztvQkFDakUsU0FBUzthQUNaO1lBQ0QsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsRUFBRTtnQkFDaEMsTUFBTTthQUNQO1lBQ0QsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDMUI7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQsUUFBUSxDQUFDLE1BQVc7UUFDbEIsT0FBTztZQUNMLGFBQWEsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQztnQkFDeEMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDO2dCQUM5QixDQUFDLENBQUMsRUFBRTtZQUNOLFVBQVUsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQztnQkFDbEMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQztnQkFDekMsQ0FBQyxDQUFDLFNBQVM7U0FDZCxDQUFDO0lBQ0osQ0FBQztJQUVELE1BQU0sQ0FBQyxPQUF3QztRQUM3QyxNQUFNLEdBQUcsR0FBUSxFQUFFLENBQUM7UUFDcEIsT0FBTyxDQUFDLGFBQWEsS0FBSyxTQUFTO1lBQ2pDLENBQUMsR0FBRyxDQUFDLGFBQWEsR0FBRyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDOUMsT0FBTyxDQUFDLFVBQVUsS0FBSyxTQUFTO1lBQzlCLENBQUMsR0FBRyxDQUFDLFVBQVUsR0FBRyxPQUFPLENBQUMsVUFBVTtnQkFDbEMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQztnQkFDeEMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2pCLE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVELE1BQU0sQ0FDSixJQUFRO1FBRVIsT0FBTywrQkFBK0IsQ0FBQyxXQUFXLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFRCxXQUFXLENBQ1QsTUFBUztRQUVULE1BQU0sT0FBTyxHQUFHLHlDQUF5QyxFQUFFLENBQUM7UUFDNUQsT0FBTyxDQUFDLGFBQWEsR0FBRyxNQUFNLENBQUMsYUFBYSxJQUFJLEVBQUUsQ0FBQztRQUNuRCxPQUFPLENBQUMsVUFBVTtZQUNoQixNQUFNLENBQUMsVUFBVSxLQUFLLFNBQVMsSUFBSSxNQUFNLENBQUMsVUFBVSxLQUFLLElBQUk7Z0JBQzNELENBQUMsQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUM7Z0JBQzVDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDaEIsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztDQUNGLENBQUM7QUFFRixTQUFTLDBDQUEwQztJQUNqRCxPQUFPLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLENBQUM7QUFDbkQsQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLGdDQUFnQyxHQUFHO0lBQzlDLE1BQU0sQ0FDSixPQUF5QyxFQUN6QyxTQUFxQixHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtRQUV4QyxLQUFLLE1BQU0sQ0FBQyxJQUFJLE9BQU8sQ0FBQyxVQUFVLEVBQUU7WUFDbEMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFFLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQ3pEO1FBQ0QsSUFBSSxPQUFPLENBQUMsVUFBVSxLQUFLLFNBQVMsRUFBRTtZQUNwQyxZQUFZLENBQUMsTUFBTSxDQUNqQixPQUFPLENBQUMsVUFBVSxFQUNsQixNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUN6QixDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQ1o7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsTUFBTSxDQUNKLEtBQThCLEVBQzlCLE1BQWU7UUFFZixNQUFNLE1BQU0sR0FDVixLQUFLLFlBQVksR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNqRSxJQUFJLEdBQUcsR0FBRyxNQUFNLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQztRQUNsRSxNQUFNLE9BQU8sR0FBRywwQ0FBMEMsRUFBRSxDQUFDO1FBQzdELE9BQU8sTUFBTSxDQUFDLEdBQUcsR0FBRyxHQUFHLEVBQUU7WUFDdkIsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzVCLFFBQVEsR0FBRyxLQUFLLENBQUMsRUFBRTtnQkFDakIsS0FBSyxDQUFDO29CQUNKLElBQUksR0FBRyxLQUFLLEVBQUUsRUFBRTt3QkFDZCxNQUFNO3FCQUNQO29CQUVELE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7b0JBQ25FLFNBQVM7Z0JBQ1gsS0FBSyxDQUFDO29CQUNKLElBQUksR0FBRyxLQUFLLEVBQUUsRUFBRTt3QkFDZCxNQUFNO3FCQUNQO29CQUVELE9BQU8sQ0FBQyxVQUFVLEdBQUcsWUFBWSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7b0JBQ2xFLFNBQVM7YUFDWjtZQUNELElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLEVBQUU7Z0JBQ2hDLE1BQU07YUFDUDtZQUNELE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDO1NBQzFCO1FBQ0QsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVELFFBQVEsQ0FBQyxNQUFXO1FBQ2xCLE9BQU87WUFDTCxVQUFVLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsVUFBVSxDQUFDO2dCQUMzQyxDQUFDLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFNLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQzFELENBQUMsQ0FBQyxFQUFFO1lBQ04sVUFBVSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDO2dCQUNsQyxDQUFDLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDO2dCQUMxQyxDQUFDLENBQUMsU0FBUztTQUNkLENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxDQUFDLE9BQXlDO1FBQzlDLE1BQU0sR0FBRyxHQUFRLEVBQUUsQ0FBQztRQUNwQixJQUFJLE9BQU8sQ0FBQyxVQUFVLEVBQUU7WUFDdEIsR0FBRyxDQUFDLFVBQVUsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQzVDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUNwQyxDQUFDO1NBQ0g7YUFBTTtZQUNMLEdBQUcsQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDO1NBQ3JCO1FBQ0QsT0FBTyxDQUFDLFVBQVUsS0FBSyxTQUFTO1lBQzlCLENBQUMsR0FBRyxDQUFDLFVBQVUsR0FBRyxPQUFPLENBQUMsVUFBVTtnQkFDbEMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQztnQkFDekMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2pCLE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVELE1BQU0sQ0FDSixJQUFRO1FBRVIsT0FBTyxnQ0FBZ0MsQ0FBQyxXQUFXLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFRCxXQUFXLENBRVQsTUFBUztRQUNULE1BQU0sT0FBTyxHQUFHLDBDQUEwQyxFQUFFLENBQUM7UUFDN0QsT0FBTyxDQUFDLFVBQVU7WUFDaEIsTUFBTSxDQUFDLFVBQVUsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDaEUsT0FBTyxDQUFDLFVBQVU7WUFDaEIsTUFBTSxDQUFDLFVBQVUsS0FBSyxTQUFTLElBQUksTUFBTSxDQUFDLFVBQVUsS0FBSyxJQUFJO2dCQUMzRCxDQUFDLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDO2dCQUM3QyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBQ2hCLE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7Q0FDRixDQUFDO0FBRUYsU0FBUyx3Q0FBd0M7SUFDL0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxFQUFFLEVBQUUsYUFBYSxFQUFFLEVBQUUsRUFBRSxDQUFDO0FBQ2xELENBQUM7QUFFRCxNQUFNLENBQUMsTUFBTSw4QkFBOEIsR0FBRztJQUM1QyxNQUFNLENBQ0osT0FBdUMsRUFDdkMsU0FBcUIsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUU7UUFFeEMsSUFBSSxPQUFPLENBQUMsYUFBYSxLQUFLLEVBQUUsRUFBRTtZQUNoQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUM7U0FDakQ7UUFDRCxJQUFJLE9BQU8sQ0FBQyxhQUFhLEtBQUssRUFBRSxFQUFFO1lBQ2hDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQztTQUNqRDtRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxNQUFNLENBQ0osS0FBOEIsRUFDOUIsTUFBZTtRQUVmLE1BQU0sTUFBTSxHQUNWLEtBQUssWUFBWSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pFLElBQUksR0FBRyxHQUFHLE1BQU0sS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDO1FBQ2xFLE1BQU0sT0FBTyxHQUFHLHdDQUF3QyxFQUFFLENBQUM7UUFDM0QsT0FBTyxNQUFNLENBQUMsR0FBRyxHQUFHLEdBQUcsRUFBRTtZQUN2QixNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDNUIsUUFBUSxHQUFHLEtBQUssQ0FBQyxFQUFFO2dCQUNqQixLQUFLLENBQUM7b0JBQ0osSUFBSSxHQUFHLEtBQUssRUFBRSxFQUFFO3dCQUNkLE1BQU07cUJBQ1A7b0JBRUQsT0FBTyxDQUFDLGFBQWEsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7b0JBQ3hDLFNBQVM7Z0JBQ1gsS0FBSyxDQUFDO29CQUNKLElBQUksR0FBRyxLQUFLLEVBQUUsRUFBRTt3QkFDZCxNQUFNO3FCQUNQO29CQUVELE9BQU8sQ0FBQyxhQUFhLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO29CQUN4QyxTQUFTO2FBQ1o7WUFDRCxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxFQUFFO2dCQUNoQyxNQUFNO2FBQ1A7WUFDRCxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQztTQUMxQjtRQUNELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxRQUFRLENBQUMsTUFBVztRQUNsQixPQUFPO1lBQ0wsYUFBYSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDO2dCQUN4QyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUM7Z0JBQzlCLENBQUMsQ0FBQyxFQUFFO1lBQ04sYUFBYSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDO2dCQUN4QyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUM7Z0JBQzlCLENBQUMsQ0FBQyxFQUFFO1NBQ1AsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLENBQUMsT0FBdUM7UUFDNUMsTUFBTSxHQUFHLEdBQVEsRUFBRSxDQUFDO1FBQ3BCLE9BQU8sQ0FBQyxhQUFhLEtBQUssU0FBUztZQUNqQyxDQUFDLEdBQUcsQ0FBQyxhQUFhLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzlDLE9BQU8sQ0FBQyxhQUFhLEtBQUssU0FBUztZQUNqQyxDQUFDLEdBQUcsQ0FBQyxhQUFhLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzlDLE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVELE1BQU0sQ0FDSixJQUFRO1FBRVIsT0FBTyw4QkFBOEIsQ0FBQyxXQUFXLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUFFRCxXQUFXLENBQ1QsTUFBUztRQUVULE1BQU0sT0FBTyxHQUFHLHdDQUF3QyxFQUFFLENBQUM7UUFDM0QsT0FBTyxDQUFDLGFBQWEsR0FBRyxNQUFNLENBQUMsYUFBYSxJQUFJLEVBQUUsQ0FBQztRQUNuRCxPQUFPLENBQUMsYUFBYSxHQUFHLE1BQU0sQ0FBQyxhQUFhLElBQUksRUFBRSxDQUFDO1FBQ25ELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7Q0FDRixDQUFDO0FBRUYsU0FBUyx5Q0FBeUM7SUFDaEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsQ0FBQztBQUNsQyxDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0sK0JBQStCLEdBQUc7SUFDN0MsTUFBTSxDQUNKLE9BQXdDLEVBQ3hDLFNBQXFCLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO1FBRXhDLElBQUksT0FBTyxDQUFDLFNBQVMsS0FBSyxTQUFTLEVBQUU7WUFDbkMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztTQUN4RTtRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxNQUFNLENBQ0osS0FBOEIsRUFDOUIsTUFBZTtRQUVmLE1BQU0sTUFBTSxHQUNWLEtBQUssWUFBWSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pFLElBQUksR0FBRyxHQUFHLE1BQU0sS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDO1FBQ2xFLE1BQU0sT0FBTyxHQUFHLHlDQUF5QyxFQUFFLENBQUM7UUFDNUQsT0FBTyxNQUFNLENBQUMsR0FBRyxHQUFHLEdBQUcsRUFBRTtZQUN2QixNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDNUIsUUFBUSxHQUFHLEtBQUssQ0FBQyxFQUFFO2dCQUNqQixLQUFLLENBQUM7b0JBQ0osSUFBSSxHQUFHLEtBQUssRUFBRSxFQUFFO3dCQUNkLE1BQU07cUJBQ1A7b0JBRUQsT0FBTyxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztvQkFDOUQsU0FBUzthQUNaO1lBQ0QsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsRUFBRTtnQkFDaEMsTUFBTTthQUNQO1lBQ0QsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDMUI7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQsUUFBUSxDQUFDLE1BQVc7UUFDbEIsT0FBTztZQUNMLFNBQVMsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQztnQkFDaEMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQztnQkFDdEMsQ0FBQyxDQUFDLFNBQVM7U0FDZCxDQUFDO0lBQ0osQ0FBQztJQUVELE1BQU0sQ0FBQyxPQUF3QztRQUM3QyxNQUFNLEdBQUcsR0FBUSxFQUFFLENBQUM7UUFDcEIsT0FBTyxDQUFDLFNBQVMsS0FBSyxTQUFTO1lBQzdCLENBQUMsR0FBRyxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUMsU0FBUztnQkFDaEMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQztnQkFDckMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2pCLE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVELE1BQU0sQ0FDSixJQUFRO1FBRVIsT0FBTywrQkFBK0IsQ0FBQyxXQUFXLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFRCxXQUFXLENBQ1QsTUFBUztRQUVULE1BQU0sT0FBTyxHQUFHLHlDQUF5QyxFQUFFLENBQUM7UUFDNUQsT0FBTyxDQUFDLFNBQVM7WUFDZixNQUFNLENBQUMsU0FBUyxLQUFLLFNBQVMsSUFBSSxNQUFNLENBQUMsU0FBUyxLQUFLLElBQUk7Z0JBQ3pELENBQUMsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUM7Z0JBQ3pDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDaEIsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztDQUNGLENBQUM7QUFFRixTQUFTLG9DQUFvQztJQUMzQyxPQUFPLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDO0FBQ3ZCLENBQUM7QUFFRCxNQUFNLENBQUMsTUFBTSwwQkFBMEIsR0FBRztJQUN4QyxNQUFNLENBQ0osT0FBbUMsRUFDbkMsU0FBcUIsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUU7UUFFeEMsSUFBSSxPQUFPLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUN4QixNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDeEM7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsTUFBTSxDQUNKLEtBQThCLEVBQzlCLE1BQWU7UUFFZixNQUFNLE1BQU0sR0FDVixLQUFLLFlBQVksR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNqRSxJQUFJLEdBQUcsR0FBRyxNQUFNLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQztRQUNsRSxNQUFNLE9BQU8sR0FBRyxvQ0FBb0MsRUFBRSxDQUFDO1FBQ3ZELE9BQU8sTUFBTSxDQUFDLEdBQUcsR0FBRyxHQUFHLEVBQUU7WUFDdkIsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzVCLFFBQVEsR0FBRyxLQUFLLENBQUMsRUFBRTtnQkFDakIsS0FBSyxDQUFDO29CQUNKLElBQUksR0FBRyxLQUFLLENBQUMsRUFBRTt3QkFDYixNQUFNO3FCQUNQO29CQUVELE9BQU8sQ0FBQyxNQUFNLEdBQUcsWUFBWSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQVUsQ0FBQyxDQUFDO29CQUN0RCxTQUFTO2FBQ1o7WUFDRCxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxFQUFFO2dCQUNoQyxNQUFNO2FBQ1A7WUFDRCxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQztTQUMxQjtRQUNELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxRQUFRLENBQUMsTUFBVztRQUNsQixPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ3RFLENBQUM7SUFFRCxNQUFNLENBQUMsT0FBbUM7UUFDeEMsTUFBTSxHQUFHLEdBQVEsRUFBRSxDQUFDO1FBQ3BCLE9BQU8sQ0FBQyxNQUFNLEtBQUssU0FBUyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQzFFLE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVELE1BQU0sQ0FDSixJQUFRO1FBRVIsT0FBTywwQkFBMEIsQ0FBQyxXQUFXLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFRCxXQUFXLENBQ1QsTUFBUztRQUVULE1BQU0sT0FBTyxHQUFHLG9DQUFvQyxFQUFFLENBQUM7UUFDdkQsT0FBTyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQztRQUNwQyxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0NBQ0YsQ0FBQztBQUVGLFNBQVMscUNBQXFDO0lBQzVDLE9BQU8sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLENBQUM7QUFDN0IsQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLDJCQUEyQixHQUFHO0lBQ3pDLE1BQU0sQ0FDSixPQUFvQyxFQUNwQyxTQUFxQixHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtRQUV4QyxJQUFJLE9BQU8sQ0FBQyxJQUFJLEtBQUssU0FBUyxFQUFFO1lBQzlCLGNBQWMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7U0FDeEU7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsTUFBTSxDQUNKLEtBQThCLEVBQzlCLE1BQWU7UUFFZixNQUFNLE1BQU0sR0FDVixLQUFLLFlBQVksR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNqRSxJQUFJLEdBQUcsR0FBRyxNQUFNLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQztRQUNsRSxNQUFNLE9BQU8sR0FBRyxxQ0FBcUMsRUFBRSxDQUFDO1FBQ3hELE9BQU8sTUFBTSxDQUFDLEdBQUcsR0FBRyxHQUFHLEVBQUU7WUFDdkIsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzVCLFFBQVEsR0FBRyxLQUFLLENBQUMsRUFBRTtnQkFDakIsS0FBSyxDQUFDO29CQUNKLElBQUksR0FBRyxLQUFLLEVBQUUsRUFBRTt3QkFDZCxNQUFNO3FCQUNQO29CQUVELE9BQU8sQ0FBQyxJQUFJLEdBQUcsY0FBYyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7b0JBQzlELFNBQVM7YUFDWjtZQUNELElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLEVBQUU7Z0JBQ2hDLE1BQU07YUFDUDtZQUNELE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDO1NBQzFCO1FBQ0QsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVELFFBQVEsQ0FBQyxNQUFXO1FBQ2xCLE9BQU87WUFDTCxJQUFJLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7Z0JBQ3RCLENBQUMsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7Z0JBQ3RDLENBQUMsQ0FBQyxTQUFTO1NBQ2QsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLENBQUMsT0FBb0M7UUFDekMsTUFBTSxHQUFHLEdBQVEsRUFBRSxDQUFDO1FBQ3BCLE9BQU8sQ0FBQyxJQUFJLEtBQUssU0FBUztZQUN4QixDQUFDLEdBQUcsQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUk7Z0JBQ3RCLENBQUMsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7Z0JBQ3JDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNqQixPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFRCxNQUFNLENBQ0osSUFBUTtRQUVSLE9BQU8sMkJBQTJCLENBQUMsV0FBVyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQsV0FBVyxDQUNULE1BQVM7UUFFVCxNQUFNLE9BQU8sR0FBRyxxQ0FBcUMsRUFBRSxDQUFDO1FBQ3hELE9BQU8sQ0FBQyxJQUFJO1lBQ1YsTUFBTSxDQUFDLElBQUksS0FBSyxTQUFTLElBQUksTUFBTSxDQUFDLElBQUksS0FBSyxJQUFJO2dCQUMvQyxDQUFDLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDO2dCQUN6QyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBQ2hCLE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7Q0FDRixDQUFDO0FBRUYsU0FBUywwQkFBMEI7SUFDakMsT0FBTyxFQUFFLENBQUM7QUFDWixDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUc7SUFDOUIsTUFBTSxDQUNKLENBQW1CLEVBQ25CLFNBQXFCLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO1FBRXhDLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBOEIsRUFBRSxNQUFlO1FBQ3BELE1BQU0sTUFBTSxHQUNWLEtBQUssWUFBWSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pFLElBQUksR0FBRyxHQUFHLE1BQU0sS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDO1FBQ2xFLE1BQU0sT0FBTyxHQUFHLDBCQUEwQixFQUFFLENBQUM7UUFDN0MsT0FBTyxNQUFNLENBQUMsR0FBRyxHQUFHLEdBQUcsRUFBRTtZQUN2QixNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDNUIsUUFBUSxHQUFHLEtBQUssQ0FBQyxFQUFFO2FBQ2xCO1lBQ0QsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsRUFBRTtnQkFDaEMsTUFBTTthQUNQO1lBQ0QsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDMUI7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQsUUFBUSxDQUFDLENBQU07UUFDYixPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRCxNQUFNLENBQUMsQ0FBbUI7UUFDeEIsTUFBTSxHQUFHLEdBQVEsRUFBRSxDQUFDO1FBQ3BCLE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVELE1BQU0sQ0FDSixJQUFRO1FBRVIsT0FBTyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRCxXQUFXLENBQ1QsQ0FBSTtRQUVKLE1BQU0sT0FBTyxHQUFHLDBCQUEwQixFQUFFLENBQUM7UUFDN0MsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztDQUNGLENBQUM7QUFFRixTQUFTLDJCQUEyQjtJQUNsQyxPQUFPLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxDQUFDO0FBQzdCLENBQUM7QUFFRCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRztJQUMvQixNQUFNLENBQ0osT0FBMEIsRUFDMUIsU0FBcUIsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUU7UUFFeEMsSUFBSSxPQUFPLENBQUMsSUFBSSxLQUFLLFNBQVMsRUFBRTtZQUM5QixJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQzlEO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUE4QixFQUFFLE1BQWU7UUFDcEQsTUFBTSxNQUFNLEdBQ1YsS0FBSyxZQUFZLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakUsSUFBSSxHQUFHLEdBQUcsTUFBTSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUM7UUFDbEUsTUFBTSxPQUFPLEdBQUcsMkJBQTJCLEVBQUUsQ0FBQztRQUM5QyxPQUFPLE1BQU0sQ0FBQyxHQUFHLEdBQUcsR0FBRyxFQUFFO1lBQ3ZCLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUM1QixRQUFRLEdBQUcsS0FBSyxDQUFDLEVBQUU7Z0JBQ2pCLEtBQUssQ0FBQztvQkFDSixJQUFJLEdBQUcsS0FBSyxFQUFFLEVBQUU7d0JBQ2QsTUFBTTtxQkFDUDtvQkFFRCxPQUFPLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO29CQUNwRCxTQUFTO2FBQ1o7WUFDRCxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxFQUFFO2dCQUNoQyxNQUFNO2FBQ1A7WUFDRCxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQztTQUMxQjtRQUNELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxRQUFRLENBQUMsTUFBVztRQUNsQixPQUFPO1lBQ0wsSUFBSSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTO1NBQ2xFLENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxDQUFDLE9BQTBCO1FBQy9CLE1BQU0sR0FBRyxHQUFRLEVBQUUsQ0FBQztRQUNwQixPQUFPLENBQUMsSUFBSSxLQUFLLFNBQVM7WUFDeEIsQ0FBQyxHQUFHLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNwRSxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFRCxNQUFNLENBQ0osSUFBUTtRQUVSLE9BQU8saUJBQWlCLENBQUMsV0FBVyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQsV0FBVyxDQUNULE1BQVM7UUFFVCxNQUFNLE9BQU8sR0FBRywyQkFBMkIsRUFBRSxDQUFDO1FBQzlDLE9BQU8sQ0FBQyxJQUFJO1lBQ1YsTUFBTSxDQUFDLElBQUksS0FBSyxTQUFTLElBQUksTUFBTSxDQUFDLElBQUksS0FBSyxJQUFJO2dCQUMvQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDO2dCQUMvQixDQUFDLENBQUMsU0FBUyxDQUFDO1FBQ2hCLE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7Q0FDRixDQUFDO0FBRUYsU0FBUyw0QkFBNEI7SUFDbkMsT0FBTyxFQUFFLENBQUM7QUFDWixDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUc7SUFDaEMsTUFBTSxDQUNKLENBQXFCLEVBQ3JCLFNBQXFCLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO1FBRXhDLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBOEIsRUFBRSxNQUFlO1FBQ3BELE1BQU0sTUFBTSxHQUNWLEtBQUssWUFBWSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pFLElBQUksR0FBRyxHQUFHLE1BQU0sS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDO1FBQ2xFLE1BQU0sT0FBTyxHQUFHLDRCQUE0QixFQUFFLENBQUM7UUFDL0MsT0FBTyxNQUFNLENBQUMsR0FBRyxHQUFHLEdBQUcsRUFBRTtZQUN2QixNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDNUIsUUFBUSxHQUFHLEtBQUssQ0FBQyxFQUFFO2FBQ2xCO1lBQ0QsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsRUFBRTtnQkFDaEMsTUFBTTthQUNQO1lBQ0QsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDMUI7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQsUUFBUSxDQUFDLENBQU07UUFDYixPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRCxNQUFNLENBQUMsQ0FBcUI7UUFDMUIsTUFBTSxHQUFHLEdBQVEsRUFBRSxDQUFDO1FBQ3BCLE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVELE1BQU0sQ0FDSixJQUFRO1FBRVIsT0FBTyxrQkFBa0IsQ0FBQyxXQUFXLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFRCxXQUFXLENBQ1QsQ0FBSTtRQUVKLE1BQU0sT0FBTyxHQUFHLDRCQUE0QixFQUFFLENBQUM7UUFDL0MsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztDQUNGLENBQUM7QUFFRixTQUFTLDZCQUE2QjtJQUNwQyxPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxDQUFDO0FBQy9CLENBQUM7QUFFRCxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRztJQUNqQyxNQUFNLENBQ0osT0FBNEIsRUFDNUIsU0FBcUIsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUU7UUFFeEMsSUFBSSxPQUFPLENBQUMsTUFBTSxLQUFLLFNBQVMsRUFBRTtZQUNoQyxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQ2xFO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUE4QixFQUFFLE1BQWU7UUFDcEQsTUFBTSxNQUFNLEdBQ1YsS0FBSyxZQUFZLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakUsSUFBSSxHQUFHLEdBQUcsTUFBTSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUM7UUFDbEUsTUFBTSxPQUFPLEdBQUcsNkJBQTZCLEVBQUUsQ0FBQztRQUNoRCxPQUFPLE1BQU0sQ0FBQyxHQUFHLEdBQUcsR0FBRyxFQUFFO1lBQ3ZCLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUM1QixRQUFRLEdBQUcsS0FBSyxDQUFDLEVBQUU7Z0JBQ2pCLEtBQUssQ0FBQztvQkFDSixJQUFJLEdBQUcsS0FBSyxFQUFFLEVBQUU7d0JBQ2QsTUFBTTtxQkFDUDtvQkFFRCxPQUFPLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO29CQUN4RCxTQUFTO2FBQ1o7WUFDRCxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxFQUFFO2dCQUNoQyxNQUFNO2FBQ1A7WUFDRCxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQztTQUMxQjtRQUNELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxRQUFRLENBQUMsTUFBVztRQUNsQixPQUFPO1lBQ0wsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTO1NBQzFFLENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxDQUFDLE9BQTRCO1FBQ2pDLE1BQU0sR0FBRyxHQUFRLEVBQUUsQ0FBQztRQUNwQixPQUFPLENBQUMsTUFBTSxLQUFLLFNBQVM7WUFDMUIsQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM1RSxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFRCxNQUFNLENBQ0osSUFBUTtRQUVSLE9BQU8sbUJBQW1CLENBQUMsV0FBVyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRUQsV0FBVyxDQUNULE1BQVM7UUFFVCxNQUFNLE9BQU8sR0FBRyw2QkFBNkIsRUFBRSxDQUFDO1FBQ2hELE9BQU8sQ0FBQyxNQUFNO1lBQ1osTUFBTSxDQUFDLE1BQU0sS0FBSyxTQUFTLElBQUksTUFBTSxDQUFDLE1BQU0sS0FBSyxJQUFJO2dCQUNuRCxDQUFDLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDO2dCQUNuQyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBQ2hCLE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7Q0FDRixDQUFDO0FBK0ZGLE1BQU0sT0FBTyxlQUFlO0lBQ1QsR0FBRyxDQUFNO0lBQ1QsT0FBTyxDQUFTO0lBQ2pDLFlBQVksR0FBUSxFQUFFLElBQTJCO1FBQy9DLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxFQUFFLE9BQU8sSUFBSSw4QkFBOEIsQ0FBQztRQUMvRCxJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztRQUNmLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDN0MsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMzQyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNqRSxJQUFJLENBQUMsNkJBQTZCO1lBQ2hDLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDaEQsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM3QyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMvRCxJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNqRSxJQUFJLENBQUMsNkJBQTZCO1lBQ2hDLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDaEQsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNuRCxJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMvRCxJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM3RCxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3JELElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBQ0QsVUFBVSxDQUNSLE9BQStCO1FBRS9CLE1BQU0sSUFBSSxHQUFHLHNCQUFzQixDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUM3RCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLFlBQVksRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNuRSxPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUMzQix1QkFBdUIsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FDeEQsQ0FBQztJQUNKLENBQUM7SUFFRCxTQUFTLENBQUMsT0FBOEI7UUFDdEMsTUFBTSxJQUFJLEdBQUcscUJBQXFCLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQzVELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsV0FBVyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ2xFLE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQzNCLHNCQUFzQixDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUN2RCxDQUFDO0lBQ0osQ0FBQztJQUVELG9CQUFvQixDQUNsQixPQUF5QztRQUV6QyxNQUFNLElBQUksR0FBRyxnQ0FBZ0MsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDdkUsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQzlCLElBQUksQ0FBQyxPQUFPLEVBQ1osc0JBQXNCLEVBQ3RCLElBQUksQ0FDTCxDQUFDO1FBQ0YsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FDM0IsaUNBQWlDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQ2xFLENBQUM7SUFDSixDQUFDO0lBRUQsNkJBQTZCLENBQzNCLE9BQWtEO1FBRWxELE1BQU0sSUFBSSxHQUNSLHlDQUF5QyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNyRSxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FDOUIsSUFBSSxDQUFDLE9BQU8sRUFDWiwrQkFBK0IsRUFDL0IsSUFBSSxDQUNMLENBQUM7UUFDRixPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUMzQiwwQ0FBMEMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FDM0UsQ0FBQztJQUNKLENBQUM7SUFFRCxVQUFVLENBQ1IsT0FBK0I7UUFFL0IsTUFBTSxJQUFJLEdBQUcsc0JBQXNCLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQzdELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsWUFBWSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ25FLE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQzNCLHVCQUF1QixDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUN4RCxDQUFDO0lBQ0osQ0FBQztJQUVELG1CQUFtQixDQUNqQixPQUF3QztRQUV4QyxNQUFNLElBQUksR0FBRywrQkFBK0IsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDdEUsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUM1RSxPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUMzQixnQ0FBZ0MsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FDakUsQ0FBQztJQUNKLENBQUM7SUFFRCxvQkFBb0IsQ0FDbEIsT0FBeUM7UUFFekMsTUFBTSxJQUFJLEdBQUcsZ0NBQWdDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3ZFLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUM5QixJQUFJLENBQUMsT0FBTyxFQUNaLHNCQUFzQixFQUN0QixJQUFJLENBQ0wsQ0FBQztRQUNGLE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQzNCLGlDQUFpQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUNsRSxDQUFDO0lBQ0osQ0FBQztJQUVELDZCQUE2QixDQUMzQixPQUFrRDtRQUVsRCxNQUFNLElBQUksR0FDUix5Q0FBeUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDckUsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQzlCLElBQUksQ0FBQyxPQUFPLEVBQ1osK0JBQStCLEVBQy9CLElBQUksQ0FDTCxDQUFDO1FBQ0YsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FDM0IsMENBQTBDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQzNFLENBQUM7SUFDSixDQUFDO0lBRUQsYUFBYSxDQUNYLE9BQWtDO1FBRWxDLE1BQU0sSUFBSSxHQUFHLHlCQUF5QixDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNoRSxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUN0RSxPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUMzQiwwQkFBMEIsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FDM0QsQ0FBQztJQUNKLENBQUM7SUFFRCxtQkFBbUIsQ0FDakIsT0FBd0M7UUFFeEMsTUFBTSxJQUFJLEdBQUcsK0JBQStCLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3RFLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDNUUsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FDM0IsZ0NBQWdDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQ2pFLENBQUM7SUFDSixDQUFDO0lBRUQsa0JBQWtCLENBQ2hCLE9BQXVDO1FBRXZDLE1BQU0sSUFBSSxHQUFHLDhCQUE4QixDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNyRSxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzNFLE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQzNCLCtCQUErQixDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUNoRSxDQUFDO0lBQ0osQ0FBQztJQUVELGNBQWMsQ0FDWixPQUFtQztRQUVuQyxNQUFNLElBQUksR0FBRywwQkFBMEIsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDakUsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUN2RSxPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUMzQiwyQkFBMkIsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FDNUQsQ0FBQztJQUNKLENBQUM7SUFFRCxJQUFJLENBQUMsT0FBeUI7UUFDNUIsTUFBTSxJQUFJLEdBQUcsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3ZELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzdELE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQzNCLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUNsRCxDQUFDO0lBQ0osQ0FBQztJQUVELE1BQU0sQ0FBQyxPQUEyQjtRQUNoQyxNQUFNLElBQUksR0FBRyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDekQsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDL0QsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FDM0IsbUJBQW1CLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQ3BELENBQUM7SUFDSixDQUFDO0NBQ0Y7QUFhRCxJQUFJLGlCQUFpQixHQUFRLENBQUMsR0FBRyxFQUFFO0lBQ2pDLElBQUksT0FBTyxVQUFVLEtBQUssV0FBVyxFQUFFO1FBQ3JDLE9BQU8sVUFBVSxDQUFDO0tBQ25CO0lBQ0QsSUFBSSxPQUFPLElBQUksS0FBSyxXQUFXLEVBQUU7UUFDL0IsT0FBTyxJQUFJLENBQUM7S0FDYjtJQUNELElBQUksT0FBTyxNQUFNLEtBQUssV0FBVyxFQUFFO1FBQ2pDLE9BQU8sTUFBTSxDQUFDO0tBQ2Y7SUFDRCxJQUFJLE9BQU8sTUFBTSxLQUFLLFdBQVcsRUFBRTtRQUNqQyxPQUFPLE1BQU0sQ0FBQztLQUNmO0lBQ0QsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN6QyxDQUFDLENBQUMsRUFBRSxDQUFDO0FBNEJMLFNBQVMsWUFBWSxDQUFDLElBQVU7SUFDOUIsSUFBSSxJQUFJLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFO1FBQ3BDLE1BQU0sSUFBSSxpQkFBaUIsQ0FBQyxLQUFLLENBQy9CLDhDQUE4QyxDQUMvQyxDQUFDO0tBQ0g7SUFDRCxPQUFPLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztBQUN6QixDQUFDO0FBRUQsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxJQUFJLEVBQUU7SUFDMUIsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBVyxDQUFDO0lBQzVCLEdBQUcsQ0FBQyxTQUFTLEVBQUUsQ0FBQztDQUNqQjtBQUVELFNBQVMsS0FBSyxDQUFDLEtBQVU7SUFDdkIsT0FBTyxLQUFLLEtBQUssSUFBSSxJQUFJLEtBQUssS0FBSyxTQUFTLENBQUM7QUFDL0MsQ0FBQyJ9