coreum-js 2.5.11 → 2.5.13

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 (81) hide show
  1. package/dist/main/cosmos/authz/v1beta1/authz.d.ts +167 -0
  2. package/dist/main/cosmos/authz/v1beta1/authz.js +320 -0
  3. package/dist/main/cosmos/authz/v1beta1/event.d.ts +80 -0
  4. package/dist/main/cosmos/authz/v1beta1/event.js +163 -0
  5. package/dist/main/cosmos/authz/v1beta1/genesis.d.ts +121 -0
  6. package/dist/main/cosmos/authz/v1beta1/genesis.js +69 -0
  7. package/dist/main/cosmos/authz/v1beta1/pagination.d.ts +128 -0
  8. package/dist/main/cosmos/authz/v1beta1/pagination.js +228 -0
  9. package/dist/main/cosmos/authz/v1beta1/query.d.ts +616 -0
  10. package/dist/main/cosmos/authz/v1beta1/query.js +513 -0
  11. package/dist/main/cosmos/authz/v1beta1/tx.d.ts +264 -0
  12. package/dist/main/cosmos/authz/v1beta1/tx.js +436 -0
  13. package/dist/main/cosmos/index.d.ts +307 -0
  14. package/dist/main/cosmos/index.js +72 -2
  15. package/dist/main/cosmos/staking/v1beta1/authz.d.ts +145 -0
  16. package/dist/main/cosmos/staking/v1beta1/authz.js +225 -0
  17. package/dist/main/cosmos/staking/v1beta1/genesis.d.ts +899 -0
  18. package/dist/main/cosmos/staking/v1beta1/genesis.js +306 -0
  19. package/dist/main/cosmos/staking/v1beta1/pagination.d.ts +128 -0
  20. package/dist/main/cosmos/staking/v1beta1/pagination.js +228 -0
  21. package/dist/main/cosmos/staking/v1beta1/query.d.ts +4165 -0
  22. package/dist/main/cosmos/staking/v1beta1/query.js +2020 -0
  23. package/dist/main/cosmos/staking/v1beta1/staking.d.ts +2059 -0
  24. package/dist/main/cosmos/staking/v1beta1/staking.js +2128 -0
  25. package/dist/main/cosmos/staking/v1beta1/tx.d.ts +748 -0
  26. package/dist/main/cosmos/staking/v1beta1/tx.js +1142 -0
  27. package/dist/main/tendermint/abci/types.d.ts +7075 -0
  28. package/dist/main/tendermint/abci/types.js +4934 -0
  29. package/dist/main/tendermint/crypto/keys.d.ts +38 -0
  30. package/dist/main/tendermint/crypto/keys.js +118 -0
  31. package/dist/main/tendermint/crypto/proof.d.ts +226 -0
  32. package/dist/main/tendermint/crypto/proof.js +427 -0
  33. package/dist/main/tendermint/types/params.d.ts +313 -0
  34. package/dist/main/tendermint/types/params.js +488 -0
  35. package/dist/main/tendermint/types/types.d.ts +1970 -0
  36. package/dist/main/tendermint/types/types.js +1602 -0
  37. package/dist/main/tendermint/types/validator.d.ts +277 -0
  38. package/dist/main/tendermint/types/validator.js +303 -0
  39. package/dist/main/tendermint/version/types.d.ts +71 -0
  40. package/dist/main/tendermint/version/types.js +162 -0
  41. package/dist/module/cosmos/authz/v1beta1/authz.d.ts +167 -0
  42. package/dist/module/cosmos/authz/v1beta1/authz.js +310 -0
  43. package/dist/module/cosmos/authz/v1beta1/event.d.ts +80 -0
  44. package/dist/module/cosmos/authz/v1beta1/event.js +155 -0
  45. package/dist/module/cosmos/authz/v1beta1/genesis.d.ts +121 -0
  46. package/dist/module/cosmos/authz/v1beta1/genesis.js +62 -0
  47. package/dist/module/cosmos/authz/v1beta1/pagination.d.ts +128 -0
  48. package/dist/module/cosmos/authz/v1beta1/pagination.js +220 -0
  49. package/dist/module/cosmos/authz/v1beta1/query.d.ts +616 -0
  50. package/dist/module/cosmos/authz/v1beta1/query.js +502 -0
  51. package/dist/module/cosmos/authz/v1beta1/tx.d.ts +264 -0
  52. package/dist/module/cosmos/authz/v1beta1/tx.js +427 -0
  53. package/dist/module/cosmos/index.d.ts +307 -0
  54. package/dist/module/cosmos/index.js +71 -1
  55. package/dist/module/cosmos/staking/v1beta1/authz.d.ts +145 -0
  56. package/dist/module/cosmos/staking/v1beta1/authz.js +215 -0
  57. package/dist/module/cosmos/staking/v1beta1/genesis.d.ts +899 -0
  58. package/dist/module/cosmos/staking/v1beta1/genesis.js +298 -0
  59. package/dist/module/cosmos/staking/v1beta1/pagination.d.ts +128 -0
  60. package/dist/module/cosmos/staking/v1beta1/pagination.js +220 -0
  61. package/dist/module/cosmos/staking/v1beta1/query.d.ts +4165 -0
  62. package/dist/module/cosmos/staking/v1beta1/query.js +1996 -0
  63. package/dist/module/cosmos/staking/v1beta1/staking.d.ts +2059 -0
  64. package/dist/module/cosmos/staking/v1beta1/staking.js +2098 -0
  65. package/dist/module/cosmos/staking/v1beta1/tx.d.ts +748 -0
  66. package/dist/module/cosmos/staking/v1beta1/tx.js +1128 -0
  67. package/dist/module/tendermint/abci/types.d.ts +7075 -0
  68. package/dist/module/tendermint/abci/types.js +4878 -0
  69. package/dist/module/tendermint/crypto/keys.d.ts +38 -0
  70. package/dist/module/tendermint/crypto/keys.js +111 -0
  71. package/dist/module/tendermint/crypto/proof.d.ts +226 -0
  72. package/dist/module/tendermint/crypto/proof.js +416 -0
  73. package/dist/module/tendermint/types/params.d.ts +313 -0
  74. package/dist/module/tendermint/types/params.js +477 -0
  75. package/dist/module/tendermint/types/types.d.ts +1970 -0
  76. package/dist/module/tendermint/types/types.js +1581 -0
  77. package/dist/module/tendermint/types/validator.d.ts +277 -0
  78. package/dist/module/tendermint/types/validator.js +294 -0
  79. package/dist/module/tendermint/version/types.d.ts +71 -0
  80. package/dist/module/tendermint/version/types.js +154 -0
  81. package/package.json +2 -2
@@ -0,0 +1,1602 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.TxProof = exports.BlockMeta = exports.LightBlock = exports.SignedHeader = exports.Proposal = exports.CommitSig = exports.Commit = exports.Vote = exports.Data = exports.Header = exports.BlockID = exports.Part = exports.PartSetHeader = exports.signedMsgTypeToJSON = exports.signedMsgTypeFromJSON = exports.SignedMsgType = exports.blockIDFlagToJSON = exports.blockIDFlagFromJSON = exports.BlockIDFlag = exports.protobufPackage = void 0;
7
+ /* eslint-disable */
8
+ const long_1 = __importDefault(require("long"));
9
+ const minimal_1 = __importDefault(require("protobufjs/minimal"));
10
+ const timestamp_1 = require("../../google/protobuf/timestamp");
11
+ const proof_1 = require("../crypto/proof");
12
+ const types_1 = require("../version/types");
13
+ const validator_1 = require("./validator");
14
+ exports.protobufPackage = "tendermint.types";
15
+ /** BlockIdFlag indicates which BlcokID the signature is for */
16
+ var BlockIDFlag;
17
+ (function (BlockIDFlag) {
18
+ BlockIDFlag[BlockIDFlag["BLOCK_ID_FLAG_UNKNOWN"] = 0] = "BLOCK_ID_FLAG_UNKNOWN";
19
+ BlockIDFlag[BlockIDFlag["BLOCK_ID_FLAG_ABSENT"] = 1] = "BLOCK_ID_FLAG_ABSENT";
20
+ BlockIDFlag[BlockIDFlag["BLOCK_ID_FLAG_COMMIT"] = 2] = "BLOCK_ID_FLAG_COMMIT";
21
+ BlockIDFlag[BlockIDFlag["BLOCK_ID_FLAG_NIL"] = 3] = "BLOCK_ID_FLAG_NIL";
22
+ BlockIDFlag[BlockIDFlag["UNRECOGNIZED"] = -1] = "UNRECOGNIZED";
23
+ })(BlockIDFlag = exports.BlockIDFlag || (exports.BlockIDFlag = {}));
24
+ function blockIDFlagFromJSON(object) {
25
+ switch (object) {
26
+ case 0:
27
+ case "BLOCK_ID_FLAG_UNKNOWN":
28
+ return BlockIDFlag.BLOCK_ID_FLAG_UNKNOWN;
29
+ case 1:
30
+ case "BLOCK_ID_FLAG_ABSENT":
31
+ return BlockIDFlag.BLOCK_ID_FLAG_ABSENT;
32
+ case 2:
33
+ case "BLOCK_ID_FLAG_COMMIT":
34
+ return BlockIDFlag.BLOCK_ID_FLAG_COMMIT;
35
+ case 3:
36
+ case "BLOCK_ID_FLAG_NIL":
37
+ return BlockIDFlag.BLOCK_ID_FLAG_NIL;
38
+ case -1:
39
+ case "UNRECOGNIZED":
40
+ default:
41
+ return BlockIDFlag.UNRECOGNIZED;
42
+ }
43
+ }
44
+ exports.blockIDFlagFromJSON = blockIDFlagFromJSON;
45
+ function blockIDFlagToJSON(object) {
46
+ switch (object) {
47
+ case BlockIDFlag.BLOCK_ID_FLAG_UNKNOWN:
48
+ return "BLOCK_ID_FLAG_UNKNOWN";
49
+ case BlockIDFlag.BLOCK_ID_FLAG_ABSENT:
50
+ return "BLOCK_ID_FLAG_ABSENT";
51
+ case BlockIDFlag.BLOCK_ID_FLAG_COMMIT:
52
+ return "BLOCK_ID_FLAG_COMMIT";
53
+ case BlockIDFlag.BLOCK_ID_FLAG_NIL:
54
+ return "BLOCK_ID_FLAG_NIL";
55
+ case BlockIDFlag.UNRECOGNIZED:
56
+ default:
57
+ return "UNRECOGNIZED";
58
+ }
59
+ }
60
+ exports.blockIDFlagToJSON = blockIDFlagToJSON;
61
+ /** SignedMsgType is a type of signed message in the consensus. */
62
+ var SignedMsgType;
63
+ (function (SignedMsgType) {
64
+ SignedMsgType[SignedMsgType["SIGNED_MSG_TYPE_UNKNOWN"] = 0] = "SIGNED_MSG_TYPE_UNKNOWN";
65
+ /** SIGNED_MSG_TYPE_PREVOTE - Votes */
66
+ SignedMsgType[SignedMsgType["SIGNED_MSG_TYPE_PREVOTE"] = 1] = "SIGNED_MSG_TYPE_PREVOTE";
67
+ SignedMsgType[SignedMsgType["SIGNED_MSG_TYPE_PRECOMMIT"] = 2] = "SIGNED_MSG_TYPE_PRECOMMIT";
68
+ /** SIGNED_MSG_TYPE_PROPOSAL - Proposals */
69
+ SignedMsgType[SignedMsgType["SIGNED_MSG_TYPE_PROPOSAL"] = 32] = "SIGNED_MSG_TYPE_PROPOSAL";
70
+ SignedMsgType[SignedMsgType["UNRECOGNIZED"] = -1] = "UNRECOGNIZED";
71
+ })(SignedMsgType = exports.SignedMsgType || (exports.SignedMsgType = {}));
72
+ function signedMsgTypeFromJSON(object) {
73
+ switch (object) {
74
+ case 0:
75
+ case "SIGNED_MSG_TYPE_UNKNOWN":
76
+ return SignedMsgType.SIGNED_MSG_TYPE_UNKNOWN;
77
+ case 1:
78
+ case "SIGNED_MSG_TYPE_PREVOTE":
79
+ return SignedMsgType.SIGNED_MSG_TYPE_PREVOTE;
80
+ case 2:
81
+ case "SIGNED_MSG_TYPE_PRECOMMIT":
82
+ return SignedMsgType.SIGNED_MSG_TYPE_PRECOMMIT;
83
+ case 32:
84
+ case "SIGNED_MSG_TYPE_PROPOSAL":
85
+ return SignedMsgType.SIGNED_MSG_TYPE_PROPOSAL;
86
+ case -1:
87
+ case "UNRECOGNIZED":
88
+ default:
89
+ return SignedMsgType.UNRECOGNIZED;
90
+ }
91
+ }
92
+ exports.signedMsgTypeFromJSON = signedMsgTypeFromJSON;
93
+ function signedMsgTypeToJSON(object) {
94
+ switch (object) {
95
+ case SignedMsgType.SIGNED_MSG_TYPE_UNKNOWN:
96
+ return "SIGNED_MSG_TYPE_UNKNOWN";
97
+ case SignedMsgType.SIGNED_MSG_TYPE_PREVOTE:
98
+ return "SIGNED_MSG_TYPE_PREVOTE";
99
+ case SignedMsgType.SIGNED_MSG_TYPE_PRECOMMIT:
100
+ return "SIGNED_MSG_TYPE_PRECOMMIT";
101
+ case SignedMsgType.SIGNED_MSG_TYPE_PROPOSAL:
102
+ return "SIGNED_MSG_TYPE_PROPOSAL";
103
+ case SignedMsgType.UNRECOGNIZED:
104
+ default:
105
+ return "UNRECOGNIZED";
106
+ }
107
+ }
108
+ exports.signedMsgTypeToJSON = signedMsgTypeToJSON;
109
+ function createBasePartSetHeader() {
110
+ return { total: 0, hash: new Uint8Array() };
111
+ }
112
+ exports.PartSetHeader = {
113
+ encode(message, writer = minimal_1.default.Writer.create()) {
114
+ if (message.total !== 0) {
115
+ writer.uint32(8).uint32(message.total);
116
+ }
117
+ if (message.hash.length !== 0) {
118
+ writer.uint32(18).bytes(message.hash);
119
+ }
120
+ return writer;
121
+ },
122
+ decode(input, length) {
123
+ const reader = input instanceof minimal_1.default.Reader ? input : minimal_1.default.Reader.create(input);
124
+ let end = length === undefined ? reader.len : reader.pos + length;
125
+ const message = createBasePartSetHeader();
126
+ while (reader.pos < end) {
127
+ const tag = reader.uint32();
128
+ switch (tag >>> 3) {
129
+ case 1:
130
+ if (tag !== 8) {
131
+ break;
132
+ }
133
+ message.total = reader.uint32();
134
+ continue;
135
+ case 2:
136
+ if (tag !== 18) {
137
+ break;
138
+ }
139
+ message.hash = reader.bytes();
140
+ continue;
141
+ }
142
+ if ((tag & 7) === 4 || tag === 0) {
143
+ break;
144
+ }
145
+ reader.skipType(tag & 7);
146
+ }
147
+ return message;
148
+ },
149
+ fromJSON(object) {
150
+ return {
151
+ total: isSet(object.total) ? Number(object.total) : 0,
152
+ hash: isSet(object.hash)
153
+ ? bytesFromBase64(object.hash)
154
+ : new Uint8Array(),
155
+ };
156
+ },
157
+ toJSON(message) {
158
+ const obj = {};
159
+ message.total !== undefined && (obj.total = Math.round(message.total));
160
+ message.hash !== undefined &&
161
+ (obj.hash = base64FromBytes(message.hash !== undefined ? message.hash : new Uint8Array()));
162
+ return obj;
163
+ },
164
+ create(base) {
165
+ return exports.PartSetHeader.fromPartial(base !== null && base !== void 0 ? base : {});
166
+ },
167
+ fromPartial(object) {
168
+ var _a, _b;
169
+ const message = createBasePartSetHeader();
170
+ message.total = (_a = object.total) !== null && _a !== void 0 ? _a : 0;
171
+ message.hash = (_b = object.hash) !== null && _b !== void 0 ? _b : new Uint8Array();
172
+ return message;
173
+ },
174
+ };
175
+ function createBasePart() {
176
+ return { index: 0, bytes: new Uint8Array(), proof: undefined };
177
+ }
178
+ exports.Part = {
179
+ encode(message, writer = minimal_1.default.Writer.create()) {
180
+ if (message.index !== 0) {
181
+ writer.uint32(8).uint32(message.index);
182
+ }
183
+ if (message.bytes.length !== 0) {
184
+ writer.uint32(18).bytes(message.bytes);
185
+ }
186
+ if (message.proof !== undefined) {
187
+ proof_1.Proof.encode(message.proof, writer.uint32(26).fork()).ldelim();
188
+ }
189
+ return writer;
190
+ },
191
+ decode(input, length) {
192
+ const reader = input instanceof minimal_1.default.Reader ? input : minimal_1.default.Reader.create(input);
193
+ let end = length === undefined ? reader.len : reader.pos + length;
194
+ const message = createBasePart();
195
+ while (reader.pos < end) {
196
+ const tag = reader.uint32();
197
+ switch (tag >>> 3) {
198
+ case 1:
199
+ if (tag !== 8) {
200
+ break;
201
+ }
202
+ message.index = reader.uint32();
203
+ continue;
204
+ case 2:
205
+ if (tag !== 18) {
206
+ break;
207
+ }
208
+ message.bytes = reader.bytes();
209
+ continue;
210
+ case 3:
211
+ if (tag !== 26) {
212
+ break;
213
+ }
214
+ message.proof = proof_1.Proof.decode(reader, reader.uint32());
215
+ continue;
216
+ }
217
+ if ((tag & 7) === 4 || tag === 0) {
218
+ break;
219
+ }
220
+ reader.skipType(tag & 7);
221
+ }
222
+ return message;
223
+ },
224
+ fromJSON(object) {
225
+ return {
226
+ index: isSet(object.index) ? Number(object.index) : 0,
227
+ bytes: isSet(object.bytes)
228
+ ? bytesFromBase64(object.bytes)
229
+ : new Uint8Array(),
230
+ proof: isSet(object.proof) ? proof_1.Proof.fromJSON(object.proof) : undefined,
231
+ };
232
+ },
233
+ toJSON(message) {
234
+ const obj = {};
235
+ message.index !== undefined && (obj.index = Math.round(message.index));
236
+ message.bytes !== undefined &&
237
+ (obj.bytes = base64FromBytes(message.bytes !== undefined ? message.bytes : new Uint8Array()));
238
+ message.proof !== undefined &&
239
+ (obj.proof = message.proof ? proof_1.Proof.toJSON(message.proof) : undefined);
240
+ return obj;
241
+ },
242
+ create(base) {
243
+ return exports.Part.fromPartial(base !== null && base !== void 0 ? base : {});
244
+ },
245
+ fromPartial(object) {
246
+ var _a, _b;
247
+ const message = createBasePart();
248
+ message.index = (_a = object.index) !== null && _a !== void 0 ? _a : 0;
249
+ message.bytes = (_b = object.bytes) !== null && _b !== void 0 ? _b : new Uint8Array();
250
+ message.proof =
251
+ object.proof !== undefined && object.proof !== null
252
+ ? proof_1.Proof.fromPartial(object.proof)
253
+ : undefined;
254
+ return message;
255
+ },
256
+ };
257
+ function createBaseBlockID() {
258
+ return { hash: new Uint8Array(), partSetHeader: undefined };
259
+ }
260
+ exports.BlockID = {
261
+ encode(message, writer = minimal_1.default.Writer.create()) {
262
+ if (message.hash.length !== 0) {
263
+ writer.uint32(10).bytes(message.hash);
264
+ }
265
+ if (message.partSetHeader !== undefined) {
266
+ exports.PartSetHeader.encode(message.partSetHeader, writer.uint32(18).fork()).ldelim();
267
+ }
268
+ return writer;
269
+ },
270
+ decode(input, length) {
271
+ const reader = input instanceof minimal_1.default.Reader ? input : minimal_1.default.Reader.create(input);
272
+ let end = length === undefined ? reader.len : reader.pos + length;
273
+ const message = createBaseBlockID();
274
+ while (reader.pos < end) {
275
+ const tag = reader.uint32();
276
+ switch (tag >>> 3) {
277
+ case 1:
278
+ if (tag !== 10) {
279
+ break;
280
+ }
281
+ message.hash = reader.bytes();
282
+ continue;
283
+ case 2:
284
+ if (tag !== 18) {
285
+ break;
286
+ }
287
+ message.partSetHeader = exports.PartSetHeader.decode(reader, reader.uint32());
288
+ continue;
289
+ }
290
+ if ((tag & 7) === 4 || tag === 0) {
291
+ break;
292
+ }
293
+ reader.skipType(tag & 7);
294
+ }
295
+ return message;
296
+ },
297
+ fromJSON(object) {
298
+ return {
299
+ hash: isSet(object.hash)
300
+ ? bytesFromBase64(object.hash)
301
+ : new Uint8Array(),
302
+ partSetHeader: isSet(object.partSetHeader)
303
+ ? exports.PartSetHeader.fromJSON(object.partSetHeader)
304
+ : undefined,
305
+ };
306
+ },
307
+ toJSON(message) {
308
+ const obj = {};
309
+ message.hash !== undefined &&
310
+ (obj.hash = base64FromBytes(message.hash !== undefined ? message.hash : new Uint8Array()));
311
+ message.partSetHeader !== undefined &&
312
+ (obj.partSetHeader = message.partSetHeader
313
+ ? exports.PartSetHeader.toJSON(message.partSetHeader)
314
+ : undefined);
315
+ return obj;
316
+ },
317
+ create(base) {
318
+ return exports.BlockID.fromPartial(base !== null && base !== void 0 ? base : {});
319
+ },
320
+ fromPartial(object) {
321
+ var _a;
322
+ const message = createBaseBlockID();
323
+ message.hash = (_a = object.hash) !== null && _a !== void 0 ? _a : new Uint8Array();
324
+ message.partSetHeader =
325
+ object.partSetHeader !== undefined && object.partSetHeader !== null
326
+ ? exports.PartSetHeader.fromPartial(object.partSetHeader)
327
+ : undefined;
328
+ return message;
329
+ },
330
+ };
331
+ function createBaseHeader() {
332
+ return {
333
+ version: undefined,
334
+ chainId: "",
335
+ height: 0,
336
+ time: undefined,
337
+ lastBlockId: undefined,
338
+ lastCommitHash: new Uint8Array(),
339
+ dataHash: new Uint8Array(),
340
+ validatorsHash: new Uint8Array(),
341
+ nextValidatorsHash: new Uint8Array(),
342
+ consensusHash: new Uint8Array(),
343
+ appHash: new Uint8Array(),
344
+ lastResultsHash: new Uint8Array(),
345
+ evidenceHash: new Uint8Array(),
346
+ proposerAddress: new Uint8Array(),
347
+ };
348
+ }
349
+ exports.Header = {
350
+ encode(message, writer = minimal_1.default.Writer.create()) {
351
+ if (message.version !== undefined) {
352
+ types_1.Consensus.encode(message.version, writer.uint32(10).fork()).ldelim();
353
+ }
354
+ if (message.chainId !== "") {
355
+ writer.uint32(18).string(message.chainId);
356
+ }
357
+ if (message.height !== 0) {
358
+ writer.uint32(24).int64(message.height);
359
+ }
360
+ if (message.time !== undefined) {
361
+ timestamp_1.Timestamp.encode(toTimestamp(message.time), writer.uint32(34).fork()).ldelim();
362
+ }
363
+ if (message.lastBlockId !== undefined) {
364
+ exports.BlockID.encode(message.lastBlockId, writer.uint32(42).fork()).ldelim();
365
+ }
366
+ if (message.lastCommitHash.length !== 0) {
367
+ writer.uint32(50).bytes(message.lastCommitHash);
368
+ }
369
+ if (message.dataHash.length !== 0) {
370
+ writer.uint32(58).bytes(message.dataHash);
371
+ }
372
+ if (message.validatorsHash.length !== 0) {
373
+ writer.uint32(66).bytes(message.validatorsHash);
374
+ }
375
+ if (message.nextValidatorsHash.length !== 0) {
376
+ writer.uint32(74).bytes(message.nextValidatorsHash);
377
+ }
378
+ if (message.consensusHash.length !== 0) {
379
+ writer.uint32(82).bytes(message.consensusHash);
380
+ }
381
+ if (message.appHash.length !== 0) {
382
+ writer.uint32(90).bytes(message.appHash);
383
+ }
384
+ if (message.lastResultsHash.length !== 0) {
385
+ writer.uint32(98).bytes(message.lastResultsHash);
386
+ }
387
+ if (message.evidenceHash.length !== 0) {
388
+ writer.uint32(106).bytes(message.evidenceHash);
389
+ }
390
+ if (message.proposerAddress.length !== 0) {
391
+ writer.uint32(114).bytes(message.proposerAddress);
392
+ }
393
+ return writer;
394
+ },
395
+ decode(input, length) {
396
+ const reader = input instanceof minimal_1.default.Reader ? input : minimal_1.default.Reader.create(input);
397
+ let end = length === undefined ? reader.len : reader.pos + length;
398
+ const message = createBaseHeader();
399
+ while (reader.pos < end) {
400
+ const tag = reader.uint32();
401
+ switch (tag >>> 3) {
402
+ case 1:
403
+ if (tag !== 10) {
404
+ break;
405
+ }
406
+ message.version = types_1.Consensus.decode(reader, reader.uint32());
407
+ continue;
408
+ case 2:
409
+ if (tag !== 18) {
410
+ break;
411
+ }
412
+ message.chainId = reader.string();
413
+ continue;
414
+ case 3:
415
+ if (tag !== 24) {
416
+ break;
417
+ }
418
+ message.height = longToNumber(reader.int64());
419
+ continue;
420
+ case 4:
421
+ if (tag !== 34) {
422
+ break;
423
+ }
424
+ message.time = fromTimestamp(timestamp_1.Timestamp.decode(reader, reader.uint32()));
425
+ continue;
426
+ case 5:
427
+ if (tag !== 42) {
428
+ break;
429
+ }
430
+ message.lastBlockId = exports.BlockID.decode(reader, reader.uint32());
431
+ continue;
432
+ case 6:
433
+ if (tag !== 50) {
434
+ break;
435
+ }
436
+ message.lastCommitHash = reader.bytes();
437
+ continue;
438
+ case 7:
439
+ if (tag !== 58) {
440
+ break;
441
+ }
442
+ message.dataHash = reader.bytes();
443
+ continue;
444
+ case 8:
445
+ if (tag !== 66) {
446
+ break;
447
+ }
448
+ message.validatorsHash = reader.bytes();
449
+ continue;
450
+ case 9:
451
+ if (tag !== 74) {
452
+ break;
453
+ }
454
+ message.nextValidatorsHash = reader.bytes();
455
+ continue;
456
+ case 10:
457
+ if (tag !== 82) {
458
+ break;
459
+ }
460
+ message.consensusHash = reader.bytes();
461
+ continue;
462
+ case 11:
463
+ if (tag !== 90) {
464
+ break;
465
+ }
466
+ message.appHash = reader.bytes();
467
+ continue;
468
+ case 12:
469
+ if (tag !== 98) {
470
+ break;
471
+ }
472
+ message.lastResultsHash = reader.bytes();
473
+ continue;
474
+ case 13:
475
+ if (tag !== 106) {
476
+ break;
477
+ }
478
+ message.evidenceHash = reader.bytes();
479
+ continue;
480
+ case 14:
481
+ if (tag !== 114) {
482
+ break;
483
+ }
484
+ message.proposerAddress = reader.bytes();
485
+ continue;
486
+ }
487
+ if ((tag & 7) === 4 || tag === 0) {
488
+ break;
489
+ }
490
+ reader.skipType(tag & 7);
491
+ }
492
+ return message;
493
+ },
494
+ fromJSON(object) {
495
+ return {
496
+ version: isSet(object.version)
497
+ ? types_1.Consensus.fromJSON(object.version)
498
+ : undefined,
499
+ chainId: isSet(object.chainId) ? String(object.chainId) : "",
500
+ height: isSet(object.height) ? Number(object.height) : 0,
501
+ time: isSet(object.time) ? fromJsonTimestamp(object.time) : undefined,
502
+ lastBlockId: isSet(object.lastBlockId)
503
+ ? exports.BlockID.fromJSON(object.lastBlockId)
504
+ : undefined,
505
+ lastCommitHash: isSet(object.lastCommitHash)
506
+ ? bytesFromBase64(object.lastCommitHash)
507
+ : new Uint8Array(),
508
+ dataHash: isSet(object.dataHash)
509
+ ? bytesFromBase64(object.dataHash)
510
+ : new Uint8Array(),
511
+ validatorsHash: isSet(object.validatorsHash)
512
+ ? bytesFromBase64(object.validatorsHash)
513
+ : new Uint8Array(),
514
+ nextValidatorsHash: isSet(object.nextValidatorsHash)
515
+ ? bytesFromBase64(object.nextValidatorsHash)
516
+ : new Uint8Array(),
517
+ consensusHash: isSet(object.consensusHash)
518
+ ? bytesFromBase64(object.consensusHash)
519
+ : new Uint8Array(),
520
+ appHash: isSet(object.appHash)
521
+ ? bytesFromBase64(object.appHash)
522
+ : new Uint8Array(),
523
+ lastResultsHash: isSet(object.lastResultsHash)
524
+ ? bytesFromBase64(object.lastResultsHash)
525
+ : new Uint8Array(),
526
+ evidenceHash: isSet(object.evidenceHash)
527
+ ? bytesFromBase64(object.evidenceHash)
528
+ : new Uint8Array(),
529
+ proposerAddress: isSet(object.proposerAddress)
530
+ ? bytesFromBase64(object.proposerAddress)
531
+ : new Uint8Array(),
532
+ };
533
+ },
534
+ toJSON(message) {
535
+ const obj = {};
536
+ message.version !== undefined &&
537
+ (obj.version = message.version
538
+ ? types_1.Consensus.toJSON(message.version)
539
+ : undefined);
540
+ message.chainId !== undefined && (obj.chainId = message.chainId);
541
+ message.height !== undefined && (obj.height = Math.round(message.height));
542
+ message.time !== undefined && (obj.time = message.time.toISOString());
543
+ message.lastBlockId !== undefined &&
544
+ (obj.lastBlockId = message.lastBlockId
545
+ ? exports.BlockID.toJSON(message.lastBlockId)
546
+ : undefined);
547
+ message.lastCommitHash !== undefined &&
548
+ (obj.lastCommitHash = base64FromBytes(message.lastCommitHash !== undefined
549
+ ? message.lastCommitHash
550
+ : new Uint8Array()));
551
+ message.dataHash !== undefined &&
552
+ (obj.dataHash = base64FromBytes(message.dataHash !== undefined ? message.dataHash : new Uint8Array()));
553
+ message.validatorsHash !== undefined &&
554
+ (obj.validatorsHash = base64FromBytes(message.validatorsHash !== undefined
555
+ ? message.validatorsHash
556
+ : new Uint8Array()));
557
+ message.nextValidatorsHash !== undefined &&
558
+ (obj.nextValidatorsHash = base64FromBytes(message.nextValidatorsHash !== undefined
559
+ ? message.nextValidatorsHash
560
+ : new Uint8Array()));
561
+ message.consensusHash !== undefined &&
562
+ (obj.consensusHash = base64FromBytes(message.consensusHash !== undefined
563
+ ? message.consensusHash
564
+ : new Uint8Array()));
565
+ message.appHash !== undefined &&
566
+ (obj.appHash = base64FromBytes(message.appHash !== undefined ? message.appHash : new Uint8Array()));
567
+ message.lastResultsHash !== undefined &&
568
+ (obj.lastResultsHash = base64FromBytes(message.lastResultsHash !== undefined
569
+ ? message.lastResultsHash
570
+ : new Uint8Array()));
571
+ message.evidenceHash !== undefined &&
572
+ (obj.evidenceHash = base64FromBytes(message.evidenceHash !== undefined
573
+ ? message.evidenceHash
574
+ : new Uint8Array()));
575
+ message.proposerAddress !== undefined &&
576
+ (obj.proposerAddress = base64FromBytes(message.proposerAddress !== undefined
577
+ ? message.proposerAddress
578
+ : new Uint8Array()));
579
+ return obj;
580
+ },
581
+ create(base) {
582
+ return exports.Header.fromPartial(base !== null && base !== void 0 ? base : {});
583
+ },
584
+ fromPartial(object) {
585
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
586
+ const message = createBaseHeader();
587
+ message.version =
588
+ object.version !== undefined && object.version !== null
589
+ ? types_1.Consensus.fromPartial(object.version)
590
+ : undefined;
591
+ message.chainId = (_a = object.chainId) !== null && _a !== void 0 ? _a : "";
592
+ message.height = (_b = object.height) !== null && _b !== void 0 ? _b : 0;
593
+ message.time = (_c = object.time) !== null && _c !== void 0 ? _c : undefined;
594
+ message.lastBlockId =
595
+ object.lastBlockId !== undefined && object.lastBlockId !== null
596
+ ? exports.BlockID.fromPartial(object.lastBlockId)
597
+ : undefined;
598
+ message.lastCommitHash = (_d = object.lastCommitHash) !== null && _d !== void 0 ? _d : new Uint8Array();
599
+ message.dataHash = (_e = object.dataHash) !== null && _e !== void 0 ? _e : new Uint8Array();
600
+ message.validatorsHash = (_f = object.validatorsHash) !== null && _f !== void 0 ? _f : new Uint8Array();
601
+ message.nextValidatorsHash = (_g = object.nextValidatorsHash) !== null && _g !== void 0 ? _g : new Uint8Array();
602
+ message.consensusHash = (_h = object.consensusHash) !== null && _h !== void 0 ? _h : new Uint8Array();
603
+ message.appHash = (_j = object.appHash) !== null && _j !== void 0 ? _j : new Uint8Array();
604
+ message.lastResultsHash = (_k = object.lastResultsHash) !== null && _k !== void 0 ? _k : new Uint8Array();
605
+ message.evidenceHash = (_l = object.evidenceHash) !== null && _l !== void 0 ? _l : new Uint8Array();
606
+ message.proposerAddress = (_m = object.proposerAddress) !== null && _m !== void 0 ? _m : new Uint8Array();
607
+ return message;
608
+ },
609
+ };
610
+ function createBaseData() {
611
+ return { txs: [] };
612
+ }
613
+ exports.Data = {
614
+ encode(message, writer = minimal_1.default.Writer.create()) {
615
+ for (const v of message.txs) {
616
+ writer.uint32(10).bytes(v);
617
+ }
618
+ return writer;
619
+ },
620
+ decode(input, length) {
621
+ const reader = input instanceof minimal_1.default.Reader ? input : minimal_1.default.Reader.create(input);
622
+ let end = length === undefined ? reader.len : reader.pos + length;
623
+ const message = createBaseData();
624
+ while (reader.pos < end) {
625
+ const tag = reader.uint32();
626
+ switch (tag >>> 3) {
627
+ case 1:
628
+ if (tag !== 10) {
629
+ break;
630
+ }
631
+ message.txs.push(reader.bytes());
632
+ continue;
633
+ }
634
+ if ((tag & 7) === 4 || tag === 0) {
635
+ break;
636
+ }
637
+ reader.skipType(tag & 7);
638
+ }
639
+ return message;
640
+ },
641
+ fromJSON(object) {
642
+ return {
643
+ txs: Array.isArray(object === null || object === void 0 ? void 0 : object.txs)
644
+ ? object.txs.map((e) => bytesFromBase64(e))
645
+ : [],
646
+ };
647
+ },
648
+ toJSON(message) {
649
+ const obj = {};
650
+ if (message.txs) {
651
+ obj.txs = message.txs.map((e) => base64FromBytes(e !== undefined ? e : new Uint8Array()));
652
+ }
653
+ else {
654
+ obj.txs = [];
655
+ }
656
+ return obj;
657
+ },
658
+ create(base) {
659
+ return exports.Data.fromPartial(base !== null && base !== void 0 ? base : {});
660
+ },
661
+ fromPartial(object) {
662
+ var _a;
663
+ const message = createBaseData();
664
+ message.txs = ((_a = object.txs) === null || _a === void 0 ? void 0 : _a.map((e) => e)) || [];
665
+ return message;
666
+ },
667
+ };
668
+ function createBaseVote() {
669
+ return {
670
+ type: 0,
671
+ height: 0,
672
+ round: 0,
673
+ blockId: undefined,
674
+ timestamp: undefined,
675
+ validatorAddress: new Uint8Array(),
676
+ validatorIndex: 0,
677
+ signature: new Uint8Array(),
678
+ };
679
+ }
680
+ exports.Vote = {
681
+ encode(message, writer = minimal_1.default.Writer.create()) {
682
+ if (message.type !== 0) {
683
+ writer.uint32(8).int32(message.type);
684
+ }
685
+ if (message.height !== 0) {
686
+ writer.uint32(16).int64(message.height);
687
+ }
688
+ if (message.round !== 0) {
689
+ writer.uint32(24).int32(message.round);
690
+ }
691
+ if (message.blockId !== undefined) {
692
+ exports.BlockID.encode(message.blockId, writer.uint32(34).fork()).ldelim();
693
+ }
694
+ if (message.timestamp !== undefined) {
695
+ timestamp_1.Timestamp.encode(toTimestamp(message.timestamp), writer.uint32(42).fork()).ldelim();
696
+ }
697
+ if (message.validatorAddress.length !== 0) {
698
+ writer.uint32(50).bytes(message.validatorAddress);
699
+ }
700
+ if (message.validatorIndex !== 0) {
701
+ writer.uint32(56).int32(message.validatorIndex);
702
+ }
703
+ if (message.signature.length !== 0) {
704
+ writer.uint32(66).bytes(message.signature);
705
+ }
706
+ return writer;
707
+ },
708
+ decode(input, length) {
709
+ const reader = input instanceof minimal_1.default.Reader ? input : minimal_1.default.Reader.create(input);
710
+ let end = length === undefined ? reader.len : reader.pos + length;
711
+ const message = createBaseVote();
712
+ while (reader.pos < end) {
713
+ const tag = reader.uint32();
714
+ switch (tag >>> 3) {
715
+ case 1:
716
+ if (tag !== 8) {
717
+ break;
718
+ }
719
+ message.type = reader.int32();
720
+ continue;
721
+ case 2:
722
+ if (tag !== 16) {
723
+ break;
724
+ }
725
+ message.height = longToNumber(reader.int64());
726
+ continue;
727
+ case 3:
728
+ if (tag !== 24) {
729
+ break;
730
+ }
731
+ message.round = reader.int32();
732
+ continue;
733
+ case 4:
734
+ if (tag !== 34) {
735
+ break;
736
+ }
737
+ message.blockId = exports.BlockID.decode(reader, reader.uint32());
738
+ continue;
739
+ case 5:
740
+ if (tag !== 42) {
741
+ break;
742
+ }
743
+ message.timestamp = fromTimestamp(timestamp_1.Timestamp.decode(reader, reader.uint32()));
744
+ continue;
745
+ case 6:
746
+ if (tag !== 50) {
747
+ break;
748
+ }
749
+ message.validatorAddress = reader.bytes();
750
+ continue;
751
+ case 7:
752
+ if (tag !== 56) {
753
+ break;
754
+ }
755
+ message.validatorIndex = reader.int32();
756
+ continue;
757
+ case 8:
758
+ if (tag !== 66) {
759
+ break;
760
+ }
761
+ message.signature = reader.bytes();
762
+ continue;
763
+ }
764
+ if ((tag & 7) === 4 || tag === 0) {
765
+ break;
766
+ }
767
+ reader.skipType(tag & 7);
768
+ }
769
+ return message;
770
+ },
771
+ fromJSON(object) {
772
+ return {
773
+ type: isSet(object.type) ? signedMsgTypeFromJSON(object.type) : 0,
774
+ height: isSet(object.height) ? Number(object.height) : 0,
775
+ round: isSet(object.round) ? Number(object.round) : 0,
776
+ blockId: isSet(object.blockId)
777
+ ? exports.BlockID.fromJSON(object.blockId)
778
+ : undefined,
779
+ timestamp: isSet(object.timestamp)
780
+ ? fromJsonTimestamp(object.timestamp)
781
+ : undefined,
782
+ validatorAddress: isSet(object.validatorAddress)
783
+ ? bytesFromBase64(object.validatorAddress)
784
+ : new Uint8Array(),
785
+ validatorIndex: isSet(object.validatorIndex)
786
+ ? Number(object.validatorIndex)
787
+ : 0,
788
+ signature: isSet(object.signature)
789
+ ? bytesFromBase64(object.signature)
790
+ : new Uint8Array(),
791
+ };
792
+ },
793
+ toJSON(message) {
794
+ const obj = {};
795
+ message.type !== undefined &&
796
+ (obj.type = signedMsgTypeToJSON(message.type));
797
+ message.height !== undefined && (obj.height = Math.round(message.height));
798
+ message.round !== undefined && (obj.round = Math.round(message.round));
799
+ message.blockId !== undefined &&
800
+ (obj.blockId = message.blockId
801
+ ? exports.BlockID.toJSON(message.blockId)
802
+ : undefined);
803
+ message.timestamp !== undefined &&
804
+ (obj.timestamp = message.timestamp.toISOString());
805
+ message.validatorAddress !== undefined &&
806
+ (obj.validatorAddress = base64FromBytes(message.validatorAddress !== undefined
807
+ ? message.validatorAddress
808
+ : new Uint8Array()));
809
+ message.validatorIndex !== undefined &&
810
+ (obj.validatorIndex = Math.round(message.validatorIndex));
811
+ message.signature !== undefined &&
812
+ (obj.signature = base64FromBytes(message.signature !== undefined ? message.signature : new Uint8Array()));
813
+ return obj;
814
+ },
815
+ create(base) {
816
+ return exports.Vote.fromPartial(base !== null && base !== void 0 ? base : {});
817
+ },
818
+ fromPartial(object) {
819
+ var _a, _b, _c, _d, _e, _f, _g;
820
+ const message = createBaseVote();
821
+ message.type = (_a = object.type) !== null && _a !== void 0 ? _a : 0;
822
+ message.height = (_b = object.height) !== null && _b !== void 0 ? _b : 0;
823
+ message.round = (_c = object.round) !== null && _c !== void 0 ? _c : 0;
824
+ message.blockId =
825
+ object.blockId !== undefined && object.blockId !== null
826
+ ? exports.BlockID.fromPartial(object.blockId)
827
+ : undefined;
828
+ message.timestamp = (_d = object.timestamp) !== null && _d !== void 0 ? _d : undefined;
829
+ message.validatorAddress = (_e = object.validatorAddress) !== null && _e !== void 0 ? _e : new Uint8Array();
830
+ message.validatorIndex = (_f = object.validatorIndex) !== null && _f !== void 0 ? _f : 0;
831
+ message.signature = (_g = object.signature) !== null && _g !== void 0 ? _g : new Uint8Array();
832
+ return message;
833
+ },
834
+ };
835
+ function createBaseCommit() {
836
+ return { height: 0, round: 0, blockId: undefined, signatures: [] };
837
+ }
838
+ exports.Commit = {
839
+ encode(message, writer = minimal_1.default.Writer.create()) {
840
+ if (message.height !== 0) {
841
+ writer.uint32(8).int64(message.height);
842
+ }
843
+ if (message.round !== 0) {
844
+ writer.uint32(16).int32(message.round);
845
+ }
846
+ if (message.blockId !== undefined) {
847
+ exports.BlockID.encode(message.blockId, writer.uint32(26).fork()).ldelim();
848
+ }
849
+ for (const v of message.signatures) {
850
+ exports.CommitSig.encode(v, writer.uint32(34).fork()).ldelim();
851
+ }
852
+ return writer;
853
+ },
854
+ decode(input, length) {
855
+ const reader = input instanceof minimal_1.default.Reader ? input : minimal_1.default.Reader.create(input);
856
+ let end = length === undefined ? reader.len : reader.pos + length;
857
+ const message = createBaseCommit();
858
+ while (reader.pos < end) {
859
+ const tag = reader.uint32();
860
+ switch (tag >>> 3) {
861
+ case 1:
862
+ if (tag !== 8) {
863
+ break;
864
+ }
865
+ message.height = longToNumber(reader.int64());
866
+ continue;
867
+ case 2:
868
+ if (tag !== 16) {
869
+ break;
870
+ }
871
+ message.round = reader.int32();
872
+ continue;
873
+ case 3:
874
+ if (tag !== 26) {
875
+ break;
876
+ }
877
+ message.blockId = exports.BlockID.decode(reader, reader.uint32());
878
+ continue;
879
+ case 4:
880
+ if (tag !== 34) {
881
+ break;
882
+ }
883
+ message.signatures.push(exports.CommitSig.decode(reader, reader.uint32()));
884
+ continue;
885
+ }
886
+ if ((tag & 7) === 4 || tag === 0) {
887
+ break;
888
+ }
889
+ reader.skipType(tag & 7);
890
+ }
891
+ return message;
892
+ },
893
+ fromJSON(object) {
894
+ return {
895
+ height: isSet(object.height) ? Number(object.height) : 0,
896
+ round: isSet(object.round) ? Number(object.round) : 0,
897
+ blockId: isSet(object.blockId)
898
+ ? exports.BlockID.fromJSON(object.blockId)
899
+ : undefined,
900
+ signatures: Array.isArray(object === null || object === void 0 ? void 0 : object.signatures)
901
+ ? object.signatures.map((e) => exports.CommitSig.fromJSON(e))
902
+ : [],
903
+ };
904
+ },
905
+ toJSON(message) {
906
+ const obj = {};
907
+ message.height !== undefined && (obj.height = Math.round(message.height));
908
+ message.round !== undefined && (obj.round = Math.round(message.round));
909
+ message.blockId !== undefined &&
910
+ (obj.blockId = message.blockId
911
+ ? exports.BlockID.toJSON(message.blockId)
912
+ : undefined);
913
+ if (message.signatures) {
914
+ obj.signatures = message.signatures.map((e) => e ? exports.CommitSig.toJSON(e) : undefined);
915
+ }
916
+ else {
917
+ obj.signatures = [];
918
+ }
919
+ return obj;
920
+ },
921
+ create(base) {
922
+ return exports.Commit.fromPartial(base !== null && base !== void 0 ? base : {});
923
+ },
924
+ fromPartial(object) {
925
+ var _a, _b, _c;
926
+ const message = createBaseCommit();
927
+ message.height = (_a = object.height) !== null && _a !== void 0 ? _a : 0;
928
+ message.round = (_b = object.round) !== null && _b !== void 0 ? _b : 0;
929
+ message.blockId =
930
+ object.blockId !== undefined && object.blockId !== null
931
+ ? exports.BlockID.fromPartial(object.blockId)
932
+ : undefined;
933
+ message.signatures =
934
+ ((_c = object.signatures) === null || _c === void 0 ? void 0 : _c.map((e) => exports.CommitSig.fromPartial(e))) || [];
935
+ return message;
936
+ },
937
+ };
938
+ function createBaseCommitSig() {
939
+ return {
940
+ blockIdFlag: 0,
941
+ validatorAddress: new Uint8Array(),
942
+ timestamp: undefined,
943
+ signature: new Uint8Array(),
944
+ };
945
+ }
946
+ exports.CommitSig = {
947
+ encode(message, writer = minimal_1.default.Writer.create()) {
948
+ if (message.blockIdFlag !== 0) {
949
+ writer.uint32(8).int32(message.blockIdFlag);
950
+ }
951
+ if (message.validatorAddress.length !== 0) {
952
+ writer.uint32(18).bytes(message.validatorAddress);
953
+ }
954
+ if (message.timestamp !== undefined) {
955
+ timestamp_1.Timestamp.encode(toTimestamp(message.timestamp), writer.uint32(26).fork()).ldelim();
956
+ }
957
+ if (message.signature.length !== 0) {
958
+ writer.uint32(34).bytes(message.signature);
959
+ }
960
+ return writer;
961
+ },
962
+ decode(input, length) {
963
+ const reader = input instanceof minimal_1.default.Reader ? input : minimal_1.default.Reader.create(input);
964
+ let end = length === undefined ? reader.len : reader.pos + length;
965
+ const message = createBaseCommitSig();
966
+ while (reader.pos < end) {
967
+ const tag = reader.uint32();
968
+ switch (tag >>> 3) {
969
+ case 1:
970
+ if (tag !== 8) {
971
+ break;
972
+ }
973
+ message.blockIdFlag = reader.int32();
974
+ continue;
975
+ case 2:
976
+ if (tag !== 18) {
977
+ break;
978
+ }
979
+ message.validatorAddress = reader.bytes();
980
+ continue;
981
+ case 3:
982
+ if (tag !== 26) {
983
+ break;
984
+ }
985
+ message.timestamp = fromTimestamp(timestamp_1.Timestamp.decode(reader, reader.uint32()));
986
+ continue;
987
+ case 4:
988
+ if (tag !== 34) {
989
+ break;
990
+ }
991
+ message.signature = reader.bytes();
992
+ continue;
993
+ }
994
+ if ((tag & 7) === 4 || tag === 0) {
995
+ break;
996
+ }
997
+ reader.skipType(tag & 7);
998
+ }
999
+ return message;
1000
+ },
1001
+ fromJSON(object) {
1002
+ return {
1003
+ blockIdFlag: isSet(object.blockIdFlag)
1004
+ ? blockIDFlagFromJSON(object.blockIdFlag)
1005
+ : 0,
1006
+ validatorAddress: isSet(object.validatorAddress)
1007
+ ? bytesFromBase64(object.validatorAddress)
1008
+ : new Uint8Array(),
1009
+ timestamp: isSet(object.timestamp)
1010
+ ? fromJsonTimestamp(object.timestamp)
1011
+ : undefined,
1012
+ signature: isSet(object.signature)
1013
+ ? bytesFromBase64(object.signature)
1014
+ : new Uint8Array(),
1015
+ };
1016
+ },
1017
+ toJSON(message) {
1018
+ const obj = {};
1019
+ message.blockIdFlag !== undefined &&
1020
+ (obj.blockIdFlag = blockIDFlagToJSON(message.blockIdFlag));
1021
+ message.validatorAddress !== undefined &&
1022
+ (obj.validatorAddress = base64FromBytes(message.validatorAddress !== undefined
1023
+ ? message.validatorAddress
1024
+ : new Uint8Array()));
1025
+ message.timestamp !== undefined &&
1026
+ (obj.timestamp = message.timestamp.toISOString());
1027
+ message.signature !== undefined &&
1028
+ (obj.signature = base64FromBytes(message.signature !== undefined ? message.signature : new Uint8Array()));
1029
+ return obj;
1030
+ },
1031
+ create(base) {
1032
+ return exports.CommitSig.fromPartial(base !== null && base !== void 0 ? base : {});
1033
+ },
1034
+ fromPartial(object) {
1035
+ var _a, _b, _c, _d;
1036
+ const message = createBaseCommitSig();
1037
+ message.blockIdFlag = (_a = object.blockIdFlag) !== null && _a !== void 0 ? _a : 0;
1038
+ message.validatorAddress = (_b = object.validatorAddress) !== null && _b !== void 0 ? _b : new Uint8Array();
1039
+ message.timestamp = (_c = object.timestamp) !== null && _c !== void 0 ? _c : undefined;
1040
+ message.signature = (_d = object.signature) !== null && _d !== void 0 ? _d : new Uint8Array();
1041
+ return message;
1042
+ },
1043
+ };
1044
+ function createBaseProposal() {
1045
+ return {
1046
+ type: 0,
1047
+ height: 0,
1048
+ round: 0,
1049
+ polRound: 0,
1050
+ blockId: undefined,
1051
+ timestamp: undefined,
1052
+ signature: new Uint8Array(),
1053
+ };
1054
+ }
1055
+ exports.Proposal = {
1056
+ encode(message, writer = minimal_1.default.Writer.create()) {
1057
+ if (message.type !== 0) {
1058
+ writer.uint32(8).int32(message.type);
1059
+ }
1060
+ if (message.height !== 0) {
1061
+ writer.uint32(16).int64(message.height);
1062
+ }
1063
+ if (message.round !== 0) {
1064
+ writer.uint32(24).int32(message.round);
1065
+ }
1066
+ if (message.polRound !== 0) {
1067
+ writer.uint32(32).int32(message.polRound);
1068
+ }
1069
+ if (message.blockId !== undefined) {
1070
+ exports.BlockID.encode(message.blockId, writer.uint32(42).fork()).ldelim();
1071
+ }
1072
+ if (message.timestamp !== undefined) {
1073
+ timestamp_1.Timestamp.encode(toTimestamp(message.timestamp), writer.uint32(50).fork()).ldelim();
1074
+ }
1075
+ if (message.signature.length !== 0) {
1076
+ writer.uint32(58).bytes(message.signature);
1077
+ }
1078
+ return writer;
1079
+ },
1080
+ decode(input, length) {
1081
+ const reader = input instanceof minimal_1.default.Reader ? input : minimal_1.default.Reader.create(input);
1082
+ let end = length === undefined ? reader.len : reader.pos + length;
1083
+ const message = createBaseProposal();
1084
+ while (reader.pos < end) {
1085
+ const tag = reader.uint32();
1086
+ switch (tag >>> 3) {
1087
+ case 1:
1088
+ if (tag !== 8) {
1089
+ break;
1090
+ }
1091
+ message.type = reader.int32();
1092
+ continue;
1093
+ case 2:
1094
+ if (tag !== 16) {
1095
+ break;
1096
+ }
1097
+ message.height = longToNumber(reader.int64());
1098
+ continue;
1099
+ case 3:
1100
+ if (tag !== 24) {
1101
+ break;
1102
+ }
1103
+ message.round = reader.int32();
1104
+ continue;
1105
+ case 4:
1106
+ if (tag !== 32) {
1107
+ break;
1108
+ }
1109
+ message.polRound = reader.int32();
1110
+ continue;
1111
+ case 5:
1112
+ if (tag !== 42) {
1113
+ break;
1114
+ }
1115
+ message.blockId = exports.BlockID.decode(reader, reader.uint32());
1116
+ continue;
1117
+ case 6:
1118
+ if (tag !== 50) {
1119
+ break;
1120
+ }
1121
+ message.timestamp = fromTimestamp(timestamp_1.Timestamp.decode(reader, reader.uint32()));
1122
+ continue;
1123
+ case 7:
1124
+ if (tag !== 58) {
1125
+ break;
1126
+ }
1127
+ message.signature = reader.bytes();
1128
+ continue;
1129
+ }
1130
+ if ((tag & 7) === 4 || tag === 0) {
1131
+ break;
1132
+ }
1133
+ reader.skipType(tag & 7);
1134
+ }
1135
+ return message;
1136
+ },
1137
+ fromJSON(object) {
1138
+ return {
1139
+ type: isSet(object.type) ? signedMsgTypeFromJSON(object.type) : 0,
1140
+ height: isSet(object.height) ? Number(object.height) : 0,
1141
+ round: isSet(object.round) ? Number(object.round) : 0,
1142
+ polRound: isSet(object.polRound) ? Number(object.polRound) : 0,
1143
+ blockId: isSet(object.blockId)
1144
+ ? exports.BlockID.fromJSON(object.blockId)
1145
+ : undefined,
1146
+ timestamp: isSet(object.timestamp)
1147
+ ? fromJsonTimestamp(object.timestamp)
1148
+ : undefined,
1149
+ signature: isSet(object.signature)
1150
+ ? bytesFromBase64(object.signature)
1151
+ : new Uint8Array(),
1152
+ };
1153
+ },
1154
+ toJSON(message) {
1155
+ const obj = {};
1156
+ message.type !== undefined &&
1157
+ (obj.type = signedMsgTypeToJSON(message.type));
1158
+ message.height !== undefined && (obj.height = Math.round(message.height));
1159
+ message.round !== undefined && (obj.round = Math.round(message.round));
1160
+ message.polRound !== undefined &&
1161
+ (obj.polRound = Math.round(message.polRound));
1162
+ message.blockId !== undefined &&
1163
+ (obj.blockId = message.blockId
1164
+ ? exports.BlockID.toJSON(message.blockId)
1165
+ : undefined);
1166
+ message.timestamp !== undefined &&
1167
+ (obj.timestamp = message.timestamp.toISOString());
1168
+ message.signature !== undefined &&
1169
+ (obj.signature = base64FromBytes(message.signature !== undefined ? message.signature : new Uint8Array()));
1170
+ return obj;
1171
+ },
1172
+ create(base) {
1173
+ return exports.Proposal.fromPartial(base !== null && base !== void 0 ? base : {});
1174
+ },
1175
+ fromPartial(object) {
1176
+ var _a, _b, _c, _d, _e, _f;
1177
+ const message = createBaseProposal();
1178
+ message.type = (_a = object.type) !== null && _a !== void 0 ? _a : 0;
1179
+ message.height = (_b = object.height) !== null && _b !== void 0 ? _b : 0;
1180
+ message.round = (_c = object.round) !== null && _c !== void 0 ? _c : 0;
1181
+ message.polRound = (_d = object.polRound) !== null && _d !== void 0 ? _d : 0;
1182
+ message.blockId =
1183
+ object.blockId !== undefined && object.blockId !== null
1184
+ ? exports.BlockID.fromPartial(object.blockId)
1185
+ : undefined;
1186
+ message.timestamp = (_e = object.timestamp) !== null && _e !== void 0 ? _e : undefined;
1187
+ message.signature = (_f = object.signature) !== null && _f !== void 0 ? _f : new Uint8Array();
1188
+ return message;
1189
+ },
1190
+ };
1191
+ function createBaseSignedHeader() {
1192
+ return { header: undefined, commit: undefined };
1193
+ }
1194
+ exports.SignedHeader = {
1195
+ encode(message, writer = minimal_1.default.Writer.create()) {
1196
+ if (message.header !== undefined) {
1197
+ exports.Header.encode(message.header, writer.uint32(10).fork()).ldelim();
1198
+ }
1199
+ if (message.commit !== undefined) {
1200
+ exports.Commit.encode(message.commit, writer.uint32(18).fork()).ldelim();
1201
+ }
1202
+ return writer;
1203
+ },
1204
+ decode(input, length) {
1205
+ const reader = input instanceof minimal_1.default.Reader ? input : minimal_1.default.Reader.create(input);
1206
+ let end = length === undefined ? reader.len : reader.pos + length;
1207
+ const message = createBaseSignedHeader();
1208
+ while (reader.pos < end) {
1209
+ const tag = reader.uint32();
1210
+ switch (tag >>> 3) {
1211
+ case 1:
1212
+ if (tag !== 10) {
1213
+ break;
1214
+ }
1215
+ message.header = exports.Header.decode(reader, reader.uint32());
1216
+ continue;
1217
+ case 2:
1218
+ if (tag !== 18) {
1219
+ break;
1220
+ }
1221
+ message.commit = exports.Commit.decode(reader, reader.uint32());
1222
+ continue;
1223
+ }
1224
+ if ((tag & 7) === 4 || tag === 0) {
1225
+ break;
1226
+ }
1227
+ reader.skipType(tag & 7);
1228
+ }
1229
+ return message;
1230
+ },
1231
+ fromJSON(object) {
1232
+ return {
1233
+ header: isSet(object.header) ? exports.Header.fromJSON(object.header) : undefined,
1234
+ commit: isSet(object.commit) ? exports.Commit.fromJSON(object.commit) : undefined,
1235
+ };
1236
+ },
1237
+ toJSON(message) {
1238
+ const obj = {};
1239
+ message.header !== undefined &&
1240
+ (obj.header = message.header ? exports.Header.toJSON(message.header) : undefined);
1241
+ message.commit !== undefined &&
1242
+ (obj.commit = message.commit ? exports.Commit.toJSON(message.commit) : undefined);
1243
+ return obj;
1244
+ },
1245
+ create(base) {
1246
+ return exports.SignedHeader.fromPartial(base !== null && base !== void 0 ? base : {});
1247
+ },
1248
+ fromPartial(object) {
1249
+ const message = createBaseSignedHeader();
1250
+ message.header =
1251
+ object.header !== undefined && object.header !== null
1252
+ ? exports.Header.fromPartial(object.header)
1253
+ : undefined;
1254
+ message.commit =
1255
+ object.commit !== undefined && object.commit !== null
1256
+ ? exports.Commit.fromPartial(object.commit)
1257
+ : undefined;
1258
+ return message;
1259
+ },
1260
+ };
1261
+ function createBaseLightBlock() {
1262
+ return { signedHeader: undefined, validatorSet: undefined };
1263
+ }
1264
+ exports.LightBlock = {
1265
+ encode(message, writer = minimal_1.default.Writer.create()) {
1266
+ if (message.signedHeader !== undefined) {
1267
+ exports.SignedHeader.encode(message.signedHeader, writer.uint32(10).fork()).ldelim();
1268
+ }
1269
+ if (message.validatorSet !== undefined) {
1270
+ validator_1.ValidatorSet.encode(message.validatorSet, writer.uint32(18).fork()).ldelim();
1271
+ }
1272
+ return writer;
1273
+ },
1274
+ decode(input, length) {
1275
+ const reader = input instanceof minimal_1.default.Reader ? input : minimal_1.default.Reader.create(input);
1276
+ let end = length === undefined ? reader.len : reader.pos + length;
1277
+ const message = createBaseLightBlock();
1278
+ while (reader.pos < end) {
1279
+ const tag = reader.uint32();
1280
+ switch (tag >>> 3) {
1281
+ case 1:
1282
+ if (tag !== 10) {
1283
+ break;
1284
+ }
1285
+ message.signedHeader = exports.SignedHeader.decode(reader, reader.uint32());
1286
+ continue;
1287
+ case 2:
1288
+ if (tag !== 18) {
1289
+ break;
1290
+ }
1291
+ message.validatorSet = validator_1.ValidatorSet.decode(reader, reader.uint32());
1292
+ continue;
1293
+ }
1294
+ if ((tag & 7) === 4 || tag === 0) {
1295
+ break;
1296
+ }
1297
+ reader.skipType(tag & 7);
1298
+ }
1299
+ return message;
1300
+ },
1301
+ fromJSON(object) {
1302
+ return {
1303
+ signedHeader: isSet(object.signedHeader)
1304
+ ? exports.SignedHeader.fromJSON(object.signedHeader)
1305
+ : undefined,
1306
+ validatorSet: isSet(object.validatorSet)
1307
+ ? validator_1.ValidatorSet.fromJSON(object.validatorSet)
1308
+ : undefined,
1309
+ };
1310
+ },
1311
+ toJSON(message) {
1312
+ const obj = {};
1313
+ message.signedHeader !== undefined &&
1314
+ (obj.signedHeader = message.signedHeader
1315
+ ? exports.SignedHeader.toJSON(message.signedHeader)
1316
+ : undefined);
1317
+ message.validatorSet !== undefined &&
1318
+ (obj.validatorSet = message.validatorSet
1319
+ ? validator_1.ValidatorSet.toJSON(message.validatorSet)
1320
+ : undefined);
1321
+ return obj;
1322
+ },
1323
+ create(base) {
1324
+ return exports.LightBlock.fromPartial(base !== null && base !== void 0 ? base : {});
1325
+ },
1326
+ fromPartial(object) {
1327
+ const message = createBaseLightBlock();
1328
+ message.signedHeader =
1329
+ object.signedHeader !== undefined && object.signedHeader !== null
1330
+ ? exports.SignedHeader.fromPartial(object.signedHeader)
1331
+ : undefined;
1332
+ message.validatorSet =
1333
+ object.validatorSet !== undefined && object.validatorSet !== null
1334
+ ? validator_1.ValidatorSet.fromPartial(object.validatorSet)
1335
+ : undefined;
1336
+ return message;
1337
+ },
1338
+ };
1339
+ function createBaseBlockMeta() {
1340
+ return { blockId: undefined, blockSize: 0, header: undefined, numTxs: 0 };
1341
+ }
1342
+ exports.BlockMeta = {
1343
+ encode(message, writer = minimal_1.default.Writer.create()) {
1344
+ if (message.blockId !== undefined) {
1345
+ exports.BlockID.encode(message.blockId, writer.uint32(10).fork()).ldelim();
1346
+ }
1347
+ if (message.blockSize !== 0) {
1348
+ writer.uint32(16).int64(message.blockSize);
1349
+ }
1350
+ if (message.header !== undefined) {
1351
+ exports.Header.encode(message.header, writer.uint32(26).fork()).ldelim();
1352
+ }
1353
+ if (message.numTxs !== 0) {
1354
+ writer.uint32(32).int64(message.numTxs);
1355
+ }
1356
+ return writer;
1357
+ },
1358
+ decode(input, length) {
1359
+ const reader = input instanceof minimal_1.default.Reader ? input : minimal_1.default.Reader.create(input);
1360
+ let end = length === undefined ? reader.len : reader.pos + length;
1361
+ const message = createBaseBlockMeta();
1362
+ while (reader.pos < end) {
1363
+ const tag = reader.uint32();
1364
+ switch (tag >>> 3) {
1365
+ case 1:
1366
+ if (tag !== 10) {
1367
+ break;
1368
+ }
1369
+ message.blockId = exports.BlockID.decode(reader, reader.uint32());
1370
+ continue;
1371
+ case 2:
1372
+ if (tag !== 16) {
1373
+ break;
1374
+ }
1375
+ message.blockSize = longToNumber(reader.int64());
1376
+ continue;
1377
+ case 3:
1378
+ if (tag !== 26) {
1379
+ break;
1380
+ }
1381
+ message.header = exports.Header.decode(reader, reader.uint32());
1382
+ continue;
1383
+ case 4:
1384
+ if (tag !== 32) {
1385
+ break;
1386
+ }
1387
+ message.numTxs = longToNumber(reader.int64());
1388
+ continue;
1389
+ }
1390
+ if ((tag & 7) === 4 || tag === 0) {
1391
+ break;
1392
+ }
1393
+ reader.skipType(tag & 7);
1394
+ }
1395
+ return message;
1396
+ },
1397
+ fromJSON(object) {
1398
+ return {
1399
+ blockId: isSet(object.blockId)
1400
+ ? exports.BlockID.fromJSON(object.blockId)
1401
+ : undefined,
1402
+ blockSize: isSet(object.blockSize) ? Number(object.blockSize) : 0,
1403
+ header: isSet(object.header) ? exports.Header.fromJSON(object.header) : undefined,
1404
+ numTxs: isSet(object.numTxs) ? Number(object.numTxs) : 0,
1405
+ };
1406
+ },
1407
+ toJSON(message) {
1408
+ const obj = {};
1409
+ message.blockId !== undefined &&
1410
+ (obj.blockId = message.blockId
1411
+ ? exports.BlockID.toJSON(message.blockId)
1412
+ : undefined);
1413
+ message.blockSize !== undefined &&
1414
+ (obj.blockSize = Math.round(message.blockSize));
1415
+ message.header !== undefined &&
1416
+ (obj.header = message.header ? exports.Header.toJSON(message.header) : undefined);
1417
+ message.numTxs !== undefined && (obj.numTxs = Math.round(message.numTxs));
1418
+ return obj;
1419
+ },
1420
+ create(base) {
1421
+ return exports.BlockMeta.fromPartial(base !== null && base !== void 0 ? base : {});
1422
+ },
1423
+ fromPartial(object) {
1424
+ var _a, _b;
1425
+ const message = createBaseBlockMeta();
1426
+ message.blockId =
1427
+ object.blockId !== undefined && object.blockId !== null
1428
+ ? exports.BlockID.fromPartial(object.blockId)
1429
+ : undefined;
1430
+ message.blockSize = (_a = object.blockSize) !== null && _a !== void 0 ? _a : 0;
1431
+ message.header =
1432
+ object.header !== undefined && object.header !== null
1433
+ ? exports.Header.fromPartial(object.header)
1434
+ : undefined;
1435
+ message.numTxs = (_b = object.numTxs) !== null && _b !== void 0 ? _b : 0;
1436
+ return message;
1437
+ },
1438
+ };
1439
+ function createBaseTxProof() {
1440
+ return {
1441
+ rootHash: new Uint8Array(),
1442
+ data: new Uint8Array(),
1443
+ proof: undefined,
1444
+ };
1445
+ }
1446
+ exports.TxProof = {
1447
+ encode(message, writer = minimal_1.default.Writer.create()) {
1448
+ if (message.rootHash.length !== 0) {
1449
+ writer.uint32(10).bytes(message.rootHash);
1450
+ }
1451
+ if (message.data.length !== 0) {
1452
+ writer.uint32(18).bytes(message.data);
1453
+ }
1454
+ if (message.proof !== undefined) {
1455
+ proof_1.Proof.encode(message.proof, writer.uint32(26).fork()).ldelim();
1456
+ }
1457
+ return writer;
1458
+ },
1459
+ decode(input, length) {
1460
+ const reader = input instanceof minimal_1.default.Reader ? input : minimal_1.default.Reader.create(input);
1461
+ let end = length === undefined ? reader.len : reader.pos + length;
1462
+ const message = createBaseTxProof();
1463
+ while (reader.pos < end) {
1464
+ const tag = reader.uint32();
1465
+ switch (tag >>> 3) {
1466
+ case 1:
1467
+ if (tag !== 10) {
1468
+ break;
1469
+ }
1470
+ message.rootHash = reader.bytes();
1471
+ continue;
1472
+ case 2:
1473
+ if (tag !== 18) {
1474
+ break;
1475
+ }
1476
+ message.data = reader.bytes();
1477
+ continue;
1478
+ case 3:
1479
+ if (tag !== 26) {
1480
+ break;
1481
+ }
1482
+ message.proof = proof_1.Proof.decode(reader, reader.uint32());
1483
+ continue;
1484
+ }
1485
+ if ((tag & 7) === 4 || tag === 0) {
1486
+ break;
1487
+ }
1488
+ reader.skipType(tag & 7);
1489
+ }
1490
+ return message;
1491
+ },
1492
+ fromJSON(object) {
1493
+ return {
1494
+ rootHash: isSet(object.rootHash)
1495
+ ? bytesFromBase64(object.rootHash)
1496
+ : new Uint8Array(),
1497
+ data: isSet(object.data)
1498
+ ? bytesFromBase64(object.data)
1499
+ : new Uint8Array(),
1500
+ proof: isSet(object.proof) ? proof_1.Proof.fromJSON(object.proof) : undefined,
1501
+ };
1502
+ },
1503
+ toJSON(message) {
1504
+ const obj = {};
1505
+ message.rootHash !== undefined &&
1506
+ (obj.rootHash = base64FromBytes(message.rootHash !== undefined ? message.rootHash : new Uint8Array()));
1507
+ message.data !== undefined &&
1508
+ (obj.data = base64FromBytes(message.data !== undefined ? message.data : new Uint8Array()));
1509
+ message.proof !== undefined &&
1510
+ (obj.proof = message.proof ? proof_1.Proof.toJSON(message.proof) : undefined);
1511
+ return obj;
1512
+ },
1513
+ create(base) {
1514
+ return exports.TxProof.fromPartial(base !== null && base !== void 0 ? base : {});
1515
+ },
1516
+ fromPartial(object) {
1517
+ var _a, _b;
1518
+ const message = createBaseTxProof();
1519
+ message.rootHash = (_a = object.rootHash) !== null && _a !== void 0 ? _a : new Uint8Array();
1520
+ message.data = (_b = object.data) !== null && _b !== void 0 ? _b : new Uint8Array();
1521
+ message.proof =
1522
+ object.proof !== undefined && object.proof !== null
1523
+ ? proof_1.Proof.fromPartial(object.proof)
1524
+ : undefined;
1525
+ return message;
1526
+ },
1527
+ };
1528
+ var tsProtoGlobalThis = (() => {
1529
+ if (typeof globalThis !== "undefined") {
1530
+ return globalThis;
1531
+ }
1532
+ if (typeof self !== "undefined") {
1533
+ return self;
1534
+ }
1535
+ if (typeof window !== "undefined") {
1536
+ return window;
1537
+ }
1538
+ if (typeof global !== "undefined") {
1539
+ return global;
1540
+ }
1541
+ throw "Unable to locate global object";
1542
+ })();
1543
+ function bytesFromBase64(b64) {
1544
+ if (tsProtoGlobalThis.Buffer) {
1545
+ return Uint8Array.from(tsProtoGlobalThis.Buffer.from(b64, "base64"));
1546
+ }
1547
+ else {
1548
+ const bin = tsProtoGlobalThis.atob(b64);
1549
+ const arr = new Uint8Array(bin.length);
1550
+ for (let i = 0; i < bin.length; ++i) {
1551
+ arr[i] = bin.charCodeAt(i);
1552
+ }
1553
+ return arr;
1554
+ }
1555
+ }
1556
+ function base64FromBytes(arr) {
1557
+ if (tsProtoGlobalThis.Buffer) {
1558
+ return tsProtoGlobalThis.Buffer.from(arr).toString("base64");
1559
+ }
1560
+ else {
1561
+ const bin = [];
1562
+ arr.forEach((byte) => {
1563
+ bin.push(String.fromCharCode(byte));
1564
+ });
1565
+ return tsProtoGlobalThis.btoa(bin.join(""));
1566
+ }
1567
+ }
1568
+ function toTimestamp(date) {
1569
+ const seconds = date.getTime() / 1000;
1570
+ const nanos = (date.getTime() % 1000) * 1000000;
1571
+ return { seconds, nanos };
1572
+ }
1573
+ function fromTimestamp(t) {
1574
+ let millis = (t.seconds || 0) * 1000;
1575
+ millis += (t.nanos || 0) / 1000000;
1576
+ return new Date(millis);
1577
+ }
1578
+ function fromJsonTimestamp(o) {
1579
+ if (o instanceof Date) {
1580
+ return o;
1581
+ }
1582
+ else if (typeof o === "string") {
1583
+ return new Date(o);
1584
+ }
1585
+ else {
1586
+ return fromTimestamp(timestamp_1.Timestamp.fromJSON(o));
1587
+ }
1588
+ }
1589
+ function longToNumber(long) {
1590
+ if (long.gt(Number.MAX_SAFE_INTEGER)) {
1591
+ throw new tsProtoGlobalThis.Error("Value is larger than Number.MAX_SAFE_INTEGER");
1592
+ }
1593
+ return long.toNumber();
1594
+ }
1595
+ if (minimal_1.default.util.Long !== long_1.default) {
1596
+ minimal_1.default.util.Long = long_1.default;
1597
+ minimal_1.default.configure();
1598
+ }
1599
+ function isSet(value) {
1600
+ return value !== null && value !== undefined;
1601
+ }
1602
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdGVuZGVybWludC90eXBlcy90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxvQkFBb0I7QUFDcEIsZ0RBQXdCO0FBQ3hCLGlFQUFxQztBQUNyQywrREFBNEQ7QUFDNUQsMkNBQXdDO0FBQ3hDLDRDQUE2QztBQUM3QywyQ0FBMkM7QUFFOUIsUUFBQSxlQUFlLEdBQUcsa0JBQWtCLENBQUM7QUFFbEQsK0RBQStEO0FBQy9ELElBQVksV0FNWDtBQU5ELFdBQVksV0FBVztJQUNyQiwrRUFBeUIsQ0FBQTtJQUN6Qiw2RUFBd0IsQ0FBQTtJQUN4Qiw2RUFBd0IsQ0FBQTtJQUN4Qix1RUFBcUIsQ0FBQTtJQUNyQiw4REFBaUIsQ0FBQTtBQUNuQixDQUFDLEVBTlcsV0FBVyxHQUFYLG1CQUFXLEtBQVgsbUJBQVcsUUFNdEI7QUFFRCxTQUFnQixtQkFBbUIsQ0FBQyxNQUFXO0lBQzdDLFFBQVEsTUFBTSxFQUFFO1FBQ2QsS0FBSyxDQUFDLENBQUM7UUFDUCxLQUFLLHVCQUF1QjtZQUMxQixPQUFPLFdBQVcsQ0FBQyxxQkFBcUIsQ0FBQztRQUMzQyxLQUFLLENBQUMsQ0FBQztRQUNQLEtBQUssc0JBQXNCO1lBQ3pCLE9BQU8sV0FBVyxDQUFDLG9CQUFvQixDQUFDO1FBQzFDLEtBQUssQ0FBQyxDQUFDO1FBQ1AsS0FBSyxzQkFBc0I7WUFDekIsT0FBTyxXQUFXLENBQUMsb0JBQW9CLENBQUM7UUFDMUMsS0FBSyxDQUFDLENBQUM7UUFDUCxLQUFLLG1CQUFtQjtZQUN0QixPQUFPLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQztRQUN2QyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ1IsS0FBSyxjQUFjLENBQUM7UUFDcEI7WUFDRSxPQUFPLFdBQVcsQ0FBQyxZQUFZLENBQUM7S0FDbkM7QUFDSCxDQUFDO0FBbkJELGtEQW1CQztBQUVELFNBQWdCLGlCQUFpQixDQUFDLE1BQW1CO0lBQ25ELFFBQVEsTUFBTSxFQUFFO1FBQ2QsS0FBSyxXQUFXLENBQUMscUJBQXFCO1lBQ3BDLE9BQU8sdUJBQXVCLENBQUM7UUFDakMsS0FBSyxXQUFXLENBQUMsb0JBQW9CO1lBQ25DLE9BQU8sc0JBQXNCLENBQUM7UUFDaEMsS0FBSyxXQUFXLENBQUMsb0JBQW9CO1lBQ25DLE9BQU8sc0JBQXNCLENBQUM7UUFDaEMsS0FBSyxXQUFXLENBQUMsaUJBQWlCO1lBQ2hDLE9BQU8sbUJBQW1CLENBQUM7UUFDN0IsS0FBSyxXQUFXLENBQUMsWUFBWSxDQUFDO1FBQzlCO1lBQ0UsT0FBTyxjQUFjLENBQUM7S0FDekI7QUFDSCxDQUFDO0FBZEQsOENBY0M7QUFFRCxrRUFBa0U7QUFDbEUsSUFBWSxhQVFYO0FBUkQsV0FBWSxhQUFhO0lBQ3ZCLHVGQUEyQixDQUFBO0lBQzNCLHNDQUFzQztJQUN0Qyx1RkFBMkIsQ0FBQTtJQUMzQiwyRkFBNkIsQ0FBQTtJQUM3QiwyQ0FBMkM7SUFDM0MsMEZBQTZCLENBQUE7SUFDN0Isa0VBQWlCLENBQUE7QUFDbkIsQ0FBQyxFQVJXLGFBQWEsR0FBYixxQkFBYSxLQUFiLHFCQUFhLFFBUXhCO0FBRUQsU0FBZ0IscUJBQXFCLENBQUMsTUFBVztJQUMvQyxRQUFRLE1BQU0sRUFBRTtRQUNkLEtBQUssQ0FBQyxDQUFDO1FBQ1AsS0FBSyx5QkFBeUI7WUFDNUIsT0FBTyxhQUFhLENBQUMsdUJBQXVCLENBQUM7UUFDL0MsS0FBSyxDQUFDLENBQUM7UUFDUCxLQUFLLHlCQUF5QjtZQUM1QixPQUFPLGFBQWEsQ0FBQyx1QkFBdUIsQ0FBQztRQUMvQyxLQUFLLENBQUMsQ0FBQztRQUNQLEtBQUssMkJBQTJCO1lBQzlCLE9BQU8sYUFBYSxDQUFDLHlCQUF5QixDQUFDO1FBQ2pELEtBQUssRUFBRSxDQUFDO1FBQ1IsS0FBSywwQkFBMEI7WUFDN0IsT0FBTyxhQUFhLENBQUMsd0JBQXdCLENBQUM7UUFDaEQsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNSLEtBQUssY0FBYyxDQUFDO1FBQ3BCO1lBQ0UsT0FBTyxhQUFhLENBQUMsWUFBWSxDQUFDO0tBQ3JDO0FBQ0gsQ0FBQztBQW5CRCxzREFtQkM7QUFFRCxTQUFnQixtQkFBbUIsQ0FBQyxNQUFxQjtJQUN2RCxRQUFRLE1BQU0sRUFBRTtRQUNkLEtBQUssYUFBYSxDQUFDLHVCQUF1QjtZQUN4QyxPQUFPLHlCQUF5QixDQUFDO1FBQ25DLEtBQUssYUFBYSxDQUFDLHVCQUF1QjtZQUN4QyxPQUFPLHlCQUF5QixDQUFDO1FBQ25DLEtBQUssYUFBYSxDQUFDLHlCQUF5QjtZQUMxQyxPQUFPLDJCQUEyQixDQUFDO1FBQ3JDLEtBQUssYUFBYSxDQUFDLHdCQUF3QjtZQUN6QyxPQUFPLDBCQUEwQixDQUFDO1FBQ3BDLEtBQUssYUFBYSxDQUFDLFlBQVksQ0FBQztRQUNoQztZQUNFLE9BQU8sY0FBYyxDQUFDO0tBQ3pCO0FBQ0gsQ0FBQztBQWRELGtEQWNDO0FBNkhELFNBQVMsdUJBQXVCO0lBQzlCLE9BQU8sRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLFVBQVUsRUFBRSxFQUFFLENBQUM7QUFDOUMsQ0FBQztBQUVZLFFBQUEsYUFBYSxHQUFHO0lBQzNCLE1BQU0sQ0FDSixPQUFzQixFQUN0QixTQUFxQixpQkFBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUU7UUFFeEMsSUFBSSxPQUFPLENBQUMsS0FBSyxLQUFLLENBQUMsRUFBRTtZQUN2QixNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDeEM7UUFDRCxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUM3QixNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDdkM7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQThCLEVBQUUsTUFBZTtRQUNwRCxNQUFNLE1BQU0sR0FDVixLQUFLLFlBQVksaUJBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsaUJBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pFLElBQUksR0FBRyxHQUFHLE1BQU0sS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDO1FBQ2xFLE1BQU0sT0FBTyxHQUFHLHVCQUF1QixFQUFFLENBQUM7UUFDMUMsT0FBTyxNQUFNLENBQUMsR0FBRyxHQUFHLEdBQUcsRUFBRTtZQUN2QixNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDNUIsUUFBUSxHQUFHLEtBQUssQ0FBQyxFQUFFO2dCQUNqQixLQUFLLENBQUM7b0JBQ0osSUFBSSxHQUFHLEtBQUssQ0FBQyxFQUFFO3dCQUNiLE1BQU07cUJBQ1A7b0JBRUQsT0FBTyxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7b0JBQ2hDLFNBQVM7Z0JBQ1gsS0FBSyxDQUFDO29CQUNKLElBQUksR0FBRyxLQUFLLEVBQUUsRUFBRTt3QkFDZCxNQUFNO3FCQUNQO29CQUVELE9BQU8sQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO29CQUM5QixTQUFTO2FBQ1o7WUFDRCxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxFQUFFO2dCQUNoQyxNQUFNO2FBQ1A7WUFDRCxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQztTQUMxQjtRQUNELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxRQUFRLENBQUMsTUFBVztRQUNsQixPQUFPO1lBQ0wsS0FBSyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDckQsSUFBSSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDO2dCQUN0QixDQUFDLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7Z0JBQzlCLENBQUMsQ0FBQyxJQUFJLFVBQVUsRUFBRTtTQUNyQixDQUFDO0lBQ0osQ0FBQztJQUVELE1BQU0sQ0FBQyxPQUFzQjtRQUMzQixNQUFNLEdBQUcsR0FBUSxFQUFFLENBQUM7UUFDcEIsT0FBTyxDQUFDLEtBQUssS0FBSyxTQUFTLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDdkUsT0FBTyxDQUFDLElBQUksS0FBSyxTQUFTO1lBQ3hCLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRyxlQUFlLENBQ3pCLE9BQU8sQ0FBQyxJQUFJLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLFVBQVUsRUFBRSxDQUM3RCxDQUFDLENBQUM7UUFDTCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFRCxNQUFNLENBQ0osSUFBUTtRQUVSLE9BQU8scUJBQWEsQ0FBQyxXQUFXLENBQUMsSUFBSSxhQUFKLElBQUksY0FBSixJQUFJLEdBQUksRUFBRSxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVELFdBQVcsQ0FDVCxNQUFTOztRQUVULE1BQU0sT0FBTyxHQUFHLHVCQUF1QixFQUFFLENBQUM7UUFDMUMsT0FBTyxDQUFDLEtBQUssR0FBRyxNQUFBLE1BQU0sQ0FBQyxLQUFLLG1DQUFJLENBQUMsQ0FBQztRQUNsQyxPQUFPLENBQUMsSUFBSSxHQUFHLE1BQUEsTUFBTSxDQUFDLElBQUksbUNBQUksSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUMvQyxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0NBQ0YsQ0FBQztBQUVGLFNBQVMsY0FBYztJQUNyQixPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxVQUFVLEVBQUUsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLENBQUM7QUFDakUsQ0FBQztBQUVZLFFBQUEsSUFBSSxHQUFHO0lBQ2xCLE1BQU0sQ0FBQyxPQUFhLEVBQUUsU0FBcUIsaUJBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO1FBQzVELElBQUksT0FBTyxDQUFDLEtBQUssS0FBSyxDQUFDLEVBQUU7WUFDdkIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3hDO1FBQ0QsSUFBSSxPQUFPLENBQUMsS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDOUIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3hDO1FBQ0QsSUFBSSxPQUFPLENBQUMsS0FBSyxLQUFLLFNBQVMsRUFBRTtZQUMvQixhQUFLLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQ2hFO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUE4QixFQUFFLE1BQWU7UUFDcEQsTUFBTSxNQUFNLEdBQ1YsS0FBSyxZQUFZLGlCQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLGlCQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNqRSxJQUFJLEdBQUcsR0FBRyxNQUFNLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQztRQUNsRSxNQUFNLE9BQU8sR0FBRyxjQUFjLEVBQUUsQ0FBQztRQUNqQyxPQUFPLE1BQU0sQ0FBQyxHQUFHLEdBQUcsR0FBRyxFQUFFO1lBQ3ZCLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUM1QixRQUFRLEdBQUcsS0FBSyxDQUFDLEVBQUU7Z0JBQ2pCLEtBQUssQ0FBQztvQkFDSixJQUFJLEdBQUcsS0FBSyxDQUFDLEVBQUU7d0JBQ2IsTUFBTTtxQkFDUDtvQkFFRCxPQUFPLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztvQkFDaEMsU0FBUztnQkFDWCxLQUFLLENBQUM7b0JBQ0osSUFBSSxHQUFHLEtBQUssRUFBRSxFQUFFO3dCQUNkLE1BQU07cUJBQ1A7b0JBRUQsT0FBTyxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7b0JBQy9CLFNBQVM7Z0JBQ1gsS0FBSyxDQUFDO29CQUNKLElBQUksR0FBRyxLQUFLLEVBQUUsRUFBRTt3QkFDZCxNQUFNO3FCQUNQO29CQUVELE9BQU8sQ0FBQyxLQUFLLEdBQUcsYUFBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7b0JBQ3RELFNBQVM7YUFDWjtZQUNELElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLEVBQUU7Z0JBQ2hDLE1BQU07YUFDUDtZQUNELE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDO1NBQzFCO1FBQ0QsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVELFFBQVEsQ0FBQyxNQUFXO1FBQ2xCLE9BQU87WUFDTCxLQUFLLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNyRCxLQUFLLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7Z0JBQ3hCLENBQUMsQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztnQkFDL0IsQ0FBQyxDQUFDLElBQUksVUFBVSxFQUFFO1lBQ3BCLEtBQUssRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFLLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUztTQUN0RSxDQUFDO0lBQ0osQ0FBQztJQUVELE1BQU0sQ0FBQyxPQUFhO1FBQ2xCLE1BQU0sR0FBRyxHQUFRLEVBQUUsQ0FBQztRQUNwQixPQUFPLENBQUMsS0FBSyxLQUFLLFNBQVMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUN2RSxPQUFPLENBQUMsS0FBSyxLQUFLLFNBQVM7WUFDekIsQ0FBQyxHQUFHLENBQUMsS0FBSyxHQUFHLGVBQWUsQ0FDMUIsT0FBTyxDQUFDLEtBQUssS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksVUFBVSxFQUFFLENBQy9ELENBQUMsQ0FBQztRQUNMLE9BQU8sQ0FBQyxLQUFLLEtBQUssU0FBUztZQUN6QixDQUFDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsYUFBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3hFLE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVELE1BQU0sQ0FBd0MsSUFBUTtRQUNwRCxPQUFPLFlBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxhQUFKLElBQUksY0FBSixJQUFJLEdBQUksRUFBRSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELFdBQVcsQ0FBd0MsTUFBUzs7UUFDMUQsTUFBTSxPQUFPLEdBQUcsY0FBYyxFQUFFLENBQUM7UUFDakMsT0FBTyxDQUFDLEtBQUssR0FBRyxNQUFBLE1BQU0sQ0FBQyxLQUFLLG1DQUFJLENBQUMsQ0FBQztRQUNsQyxPQUFPLENBQUMsS0FBSyxHQUFHLE1BQUEsTUFBTSxDQUFDLEtBQUssbUNBQUksSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUNqRCxPQUFPLENBQUMsS0FBSztZQUNYLE1BQU0sQ0FBQyxLQUFLLEtBQUssU0FBUyxJQUFJLE1BQU0sQ0FBQyxLQUFLLEtBQUssSUFBSTtnQkFDakQsQ0FBQyxDQUFDLGFBQUssQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztnQkFDakMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUNoQixPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0NBQ0YsQ0FBQztBQUVGLFNBQVMsaUJBQWlCO0lBQ3hCLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxVQUFVLEVBQUUsRUFBRSxhQUFhLEVBQUUsU0FBUyxFQUFFLENBQUM7QUFDOUQsQ0FBQztBQUVZLFFBQUEsT0FBTyxHQUFHO0lBQ3JCLE1BQU0sQ0FDSixPQUFnQixFQUNoQixTQUFxQixpQkFBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUU7UUFFeEMsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDN0IsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3ZDO1FBQ0QsSUFBSSxPQUFPLENBQUMsYUFBYSxLQUFLLFNBQVMsRUFBRTtZQUN2QyxxQkFBYSxDQUFDLE1BQU0sQ0FDbEIsT0FBTyxDQUFDLGFBQWEsRUFDckIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FDekIsQ0FBQyxNQUFNLEVBQUUsQ0FBQztTQUNaO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUE4QixFQUFFLE1BQWU7UUFDcEQsTUFBTSxNQUFNLEdBQ1YsS0FBSyxZQUFZLGlCQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLGlCQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNqRSxJQUFJLEdBQUcsR0FBRyxNQUFNLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQztRQUNsRSxNQUFNLE9BQU8sR0FBRyxpQkFBaUIsRUFBRSxDQUFDO1FBQ3BDLE9BQU8sTUFBTSxDQUFDLEdBQUcsR0FBRyxHQUFHLEVBQUU7WUFDdkIsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzVCLFFBQVEsR0FBRyxLQUFLLENBQUMsRUFBRTtnQkFDakIsS0FBSyxDQUFDO29CQUNKLElBQUksR0FBRyxLQUFLLEVBQUUsRUFBRTt3QkFDZCxNQUFNO3FCQUNQO29CQUVELE9BQU8sQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO29CQUM5QixTQUFTO2dCQUNYLEtBQUssQ0FBQztvQkFDSixJQUFJLEdBQUcsS0FBSyxFQUFFLEVBQUU7d0JBQ2QsTUFBTTtxQkFDUDtvQkFFRCxPQUFPLENBQUMsYUFBYSxHQUFHLHFCQUFhLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztvQkFDdEUsU0FBUzthQUNaO1lBQ0QsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsRUFBRTtnQkFDaEMsTUFBTTthQUNQO1lBQ0QsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDMUI7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQsUUFBUSxDQUFDLE1BQVc7UUFDbEIsT0FBTztZQUNMLElBQUksRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQztnQkFDdEIsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDO2dCQUM5QixDQUFDLENBQUMsSUFBSSxVQUFVLEVBQUU7WUFDcEIsYUFBYSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDO2dCQUN4QyxDQUFDLENBQUMscUJBQWEsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQztnQkFDOUMsQ0FBQyxDQUFDLFNBQVM7U0FDZCxDQUFDO0lBQ0osQ0FBQztJQUVELE1BQU0sQ0FBQyxPQUFnQjtRQUNyQixNQUFNLEdBQUcsR0FBUSxFQUFFLENBQUM7UUFDcEIsT0FBTyxDQUFDLElBQUksS0FBSyxTQUFTO1lBQ3hCLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRyxlQUFlLENBQ3pCLE9BQU8sQ0FBQyxJQUFJLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLFVBQVUsRUFBRSxDQUM3RCxDQUFDLENBQUM7UUFDTCxPQUFPLENBQUMsYUFBYSxLQUFLLFNBQVM7WUFDakMsQ0FBQyxHQUFHLENBQUMsYUFBYSxHQUFHLE9BQU8sQ0FBQyxhQUFhO2dCQUN4QyxDQUFDLENBQUMscUJBQWEsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQztnQkFDN0MsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2pCLE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVELE1BQU0sQ0FBMkMsSUFBUTtRQUN2RCxPQUFPLGVBQU8sQ0FBQyxXQUFXLENBQUMsSUFBSSxhQUFKLElBQUksY0FBSixJQUFJLEdBQUksRUFBRSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELFdBQVcsQ0FBMkMsTUFBUzs7UUFDN0QsTUFBTSxPQUFPLEdBQUcsaUJBQWlCLEVBQUUsQ0FBQztRQUNwQyxPQUFPLENBQUMsSUFBSSxHQUFHLE1BQUEsTUFBTSxDQUFDLElBQUksbUNBQUksSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUMvQyxPQUFPLENBQUMsYUFBYTtZQUNuQixNQUFNLENBQUMsYUFBYSxLQUFLLFNBQVMsSUFBSSxNQUFNLENBQUMsYUFBYSxLQUFLLElBQUk7Z0JBQ2pFLENBQUMsQ0FBQyxxQkFBYSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDO2dCQUNqRCxDQUFDLENBQUMsU0FBUyxDQUFDO1FBQ2hCLE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7Q0FDRixDQUFDO0FBRUYsU0FBUyxnQkFBZ0I7SUFDdkIsT0FBTztRQUNMLE9BQU8sRUFBRSxTQUFTO1FBQ2xCLE9BQU8sRUFBRSxFQUFFO1FBQ1gsTUFBTSxFQUFFLENBQUM7UUFDVCxJQUFJLEVBQUUsU0FBUztRQUNmLFdBQVcsRUFBRSxTQUFTO1FBQ3RCLGNBQWMsRUFBRSxJQUFJLFVBQVUsRUFBRTtRQUNoQyxRQUFRLEVBQUUsSUFBSSxVQUFVLEVBQUU7UUFDMUIsY0FBYyxFQUFFLElBQUksVUFBVSxFQUFFO1FBQ2hDLGtCQUFrQixFQUFFLElBQUksVUFBVSxFQUFFO1FBQ3BDLGFBQWEsRUFBRSxJQUFJLFVBQVUsRUFBRTtRQUMvQixPQUFPLEVBQUUsSUFBSSxVQUFVLEVBQUU7UUFDekIsZUFBZSxFQUFFLElBQUksVUFBVSxFQUFFO1FBQ2pDLFlBQVksRUFBRSxJQUFJLFVBQVUsRUFBRTtRQUM5QixlQUFlLEVBQUUsSUFBSSxVQUFVLEVBQUU7S0FDbEMsQ0FBQztBQUNKLENBQUM7QUFFWSxRQUFBLE1BQU0sR0FBRztJQUNwQixNQUFNLENBQ0osT0FBZSxFQUNmLFNBQXFCLGlCQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtRQUV4QyxJQUFJLE9BQU8sQ0FBQyxPQUFPLEtBQUssU0FBUyxFQUFFO1lBQ2pDLGlCQUFTLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQ3RFO1FBQ0QsSUFBSSxPQUFPLENBQUMsT0FBTyxLQUFLLEVBQUUsRUFBRTtZQUMxQixNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDM0M7UUFDRCxJQUFJLE9BQU8sQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ3hCLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUN6QztRQUNELElBQUksT0FBTyxDQUFDLElBQUksS0FBSyxTQUFTLEVBQUU7WUFDOUIscUJBQVMsQ0FBQyxNQUFNLENBQ2QsV0FBVyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFDekIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FDekIsQ0FBQyxNQUFNLEVBQUUsQ0FBQztTQUNaO1FBQ0QsSUFBSSxPQUFPLENBQUMsV0FBVyxLQUFLLFNBQVMsRUFBRTtZQUNyQyxlQUFPLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQ3hFO1FBQ0QsSUFBSSxPQUFPLENBQUMsY0FBYyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDdkMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1NBQ2pEO1FBQ0QsSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDakMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQzNDO1FBQ0QsSUFBSSxPQUFPLENBQUMsY0FBYyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDdkMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1NBQ2pEO1FBQ0QsSUFBSSxPQUFPLENBQUMsa0JBQWtCLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUMzQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsa0JBQWtCLENBQUMsQ0FBQztTQUNyRDtRQUNELElBQUksT0FBTyxDQUFDLGFBQWEsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ3RDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQztTQUNoRDtRQUNELElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ2hDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUMxQztRQUNELElBQUksT0FBTyxDQUFDLGVBQWUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ3hDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQztTQUNsRDtRQUNELElBQUksT0FBTyxDQUFDLFlBQVksQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ3JDLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQztTQUNoRDtRQUNELElBQUksT0FBTyxDQUFDLGVBQWUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ3hDLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQztTQUNuRDtRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBOEIsRUFBRSxNQUFlO1FBQ3BELE1BQU0sTUFBTSxHQUNWLEtBQUssWUFBWSxpQkFBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxpQkFBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakUsSUFBSSxHQUFHLEdBQUcsTUFBTSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUM7UUFDbEUsTUFBTSxPQUFPLEdBQUcsZ0JBQWdCLEVBQUUsQ0FBQztRQUNuQyxPQUFPLE1BQU0sQ0FBQyxHQUFHLEdBQUcsR0FBRyxFQUFFO1lBQ3ZCLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUM1QixRQUFRLEdBQUcsS0FBSyxDQUFDLEVBQUU7Z0JBQ2pCLEtBQUssQ0FBQztvQkFDSixJQUFJLEdBQUcsS0FBSyxFQUFFLEVBQUU7d0JBQ2QsTUFBTTtxQkFDUDtvQkFFRCxPQUFPLENBQUMsT0FBTyxHQUFHLGlCQUFTLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztvQkFDNUQsU0FBUztnQkFDWCxLQUFLLENBQUM7b0JBQ0osSUFBSSxHQUFHLEtBQUssRUFBRSxFQUFFO3dCQUNkLE1BQU07cUJBQ1A7b0JBRUQsT0FBTyxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7b0JBQ2xDLFNBQVM7Z0JBQ1gsS0FBSyxDQUFDO29CQUNKLElBQUksR0FBRyxLQUFLLEVBQUUsRUFBRTt3QkFDZCxNQUFNO3FCQUNQO29CQUVELE9BQU8sQ0FBQyxNQUFNLEdBQUcsWUFBWSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQVUsQ0FBQyxDQUFDO29CQUN0RCxTQUFTO2dCQUNYLEtBQUssQ0FBQztvQkFDSixJQUFJLEdBQUcsS0FBSyxFQUFFLEVBQUU7d0JBQ2QsTUFBTTtxQkFDUDtvQkFFRCxPQUFPLENBQUMsSUFBSSxHQUFHLGFBQWEsQ0FDMUIscUJBQVMsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUMxQyxDQUFDO29CQUNGLFNBQVM7Z0JBQ1gsS0FBSyxDQUFDO29CQUNKLElBQUksR0FBRyxLQUFLLEVBQUUsRUFBRTt3QkFDZCxNQUFNO3FCQUNQO29CQUVELE9BQU8sQ0FBQyxXQUFXLEdBQUcsZUFBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7b0JBQzlELFNBQVM7Z0JBQ1gsS0FBSyxDQUFDO29CQUNKLElBQUksR0FBRyxLQUFLLEVBQUUsRUFBRTt3QkFDZCxNQUFNO3FCQUNQO29CQUVELE9BQU8sQ0FBQyxjQUFjLEdBQUcsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO29CQUN4QyxTQUFTO2dCQUNYLEtBQUssQ0FBQztvQkFDSixJQUFJLEdBQUcsS0FBSyxFQUFFLEVBQUU7d0JBQ2QsTUFBTTtxQkFDUDtvQkFFRCxPQUFPLENBQUMsUUFBUSxHQUFHLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztvQkFDbEMsU0FBUztnQkFDWCxLQUFLLENBQUM7b0JBQ0osSUFBSSxHQUFHLEtBQUssRUFBRSxFQUFFO3dCQUNkLE1BQU07cUJBQ1A7b0JBRUQsT0FBTyxDQUFDLGNBQWMsR0FBRyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7b0JBQ3hDLFNBQVM7Z0JBQ1gsS0FBSyxDQUFDO29CQUNKLElBQUksR0FBRyxLQUFLLEVBQUUsRUFBRTt3QkFDZCxNQUFNO3FCQUNQO29CQUVELE9BQU8sQ0FBQyxrQkFBa0IsR0FBRyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7b0JBQzVDLFNBQVM7Z0JBQ1gsS0FBSyxFQUFFO29CQUNMLElBQUksR0FBRyxLQUFLLEVBQUUsRUFBRTt3QkFDZCxNQUFNO3FCQUNQO29CQUVELE9BQU8sQ0FBQyxhQUFhLEdBQUcsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO29CQUN2QyxTQUFTO2dCQUNYLEtBQUssRUFBRTtvQkFDTCxJQUFJLEdBQUcsS0FBSyxFQUFFLEVBQUU7d0JBQ2QsTUFBTTtxQkFDUDtvQkFFRCxPQUFPLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztvQkFDakMsU0FBUztnQkFDWCxLQUFLLEVBQUU7b0JBQ0wsSUFBSSxHQUFHLEtBQUssRUFBRSxFQUFFO3dCQUNkLE1BQU07cUJBQ1A7b0JBRUQsT0FBTyxDQUFDLGVBQWUsR0FBRyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7b0JBQ3pDLFNBQVM7Z0JBQ1gsS0FBSyxFQUFFO29CQUNMLElBQUksR0FBRyxLQUFLLEdBQUcsRUFBRTt3QkFDZixNQUFNO3FCQUNQO29CQUVELE9BQU8sQ0FBQyxZQUFZLEdBQUcsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO29CQUN0QyxTQUFTO2dCQUNYLEtBQUssRUFBRTtvQkFDTCxJQUFJLEdBQUcsS0FBSyxHQUFHLEVBQUU7d0JBQ2YsTUFBTTtxQkFDUDtvQkFFRCxPQUFPLENBQUMsZUFBZSxHQUFHLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztvQkFDekMsU0FBUzthQUNaO1lBQ0QsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsRUFBRTtnQkFDaEMsTUFBTTthQUNQO1lBQ0QsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDMUI7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQsUUFBUSxDQUFDLE1BQVc7UUFDbEIsT0FBTztZQUNMLE9BQU8sRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQztnQkFDNUIsQ0FBQyxDQUFDLGlCQUFTLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUM7Z0JBQ3BDLENBQUMsQ0FBQyxTQUFTO1lBQ2IsT0FBTyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDNUQsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDeEQsSUFBSSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUztZQUNyRSxXQUFXLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUM7Z0JBQ3BDLENBQUMsQ0FBQyxlQUFPLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUM7Z0JBQ3RDLENBQUMsQ0FBQyxTQUFTO1lBQ2IsY0FBYyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDO2dCQUMxQyxDQUFDLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUM7Z0JBQ3hDLENBQUMsQ0FBQyxJQUFJLFVBQVUsRUFBRTtZQUNwQixRQUFRLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUM7Z0JBQzlCLENBQUMsQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQztnQkFDbEMsQ0FBQyxDQUFDLElBQUksVUFBVSxFQUFFO1lBQ3BCLGNBQWMsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQztnQkFDMUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDO2dCQUN4QyxDQUFDLENBQUMsSUFBSSxVQUFVLEVBQUU7WUFDcEIsa0JBQWtCLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQztnQkFDbEQsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsa0JBQWtCLENBQUM7Z0JBQzVDLENBQUMsQ0FBQyxJQUFJLFVBQVUsRUFBRTtZQUNwQixhQUFhLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUM7Z0JBQ3hDLENBQUMsQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQztnQkFDdkMsQ0FBQyxDQUFDLElBQUksVUFBVSxFQUFFO1lBQ3BCLE9BQU8sRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQztnQkFDNUIsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDO2dCQUNqQyxDQUFDLENBQUMsSUFBSSxVQUFVLEVBQUU7WUFDcEIsZUFBZSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDO2dCQUM1QyxDQUFDLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUM7Z0JBQ3pDLENBQUMsQ0FBQyxJQUFJLFVBQVUsRUFBRTtZQUNwQixZQUFZLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUM7Z0JBQ3RDLENBQUMsQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQztnQkFDdEMsQ0FBQyxDQUFDLElBQUksVUFBVSxFQUFFO1lBQ3BCLGVBQWUsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQztnQkFDNUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDO2dCQUN6QyxDQUFDLENBQUMsSUFBSSxVQUFVLEVBQUU7U0FDckIsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLENBQUMsT0FBZTtRQUNwQixNQUFNLEdBQUcsR0FBUSxFQUFFLENBQUM7UUFDcEIsT0FBTyxDQUFDLE9BQU8sS0FBSyxTQUFTO1lBQzNCLENBQUMsR0FBRyxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTztnQkFDNUIsQ0FBQyxDQUFDLGlCQUFTLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUM7Z0JBQ25DLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNqQixPQUFPLENBQUMsT0FBTyxLQUFLLFNBQVMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2pFLE9BQU8sQ0FBQyxNQUFNLEtBQUssU0FBUyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQzFFLE9BQU8sQ0FBQyxJQUFJLEtBQUssU0FBUyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDdEUsT0FBTyxDQUFDLFdBQVcsS0FBSyxTQUFTO1lBQy9CLENBQUMsR0FBRyxDQUFDLFdBQVcsR0FBRyxPQUFPLENBQUMsV0FBVztnQkFDcEMsQ0FBQyxDQUFDLGVBQU8sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQztnQkFDckMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2pCLE9BQU8sQ0FBQyxjQUFjLEtBQUssU0FBUztZQUNsQyxDQUFDLEdBQUcsQ0FBQyxjQUFjLEdBQUcsZUFBZSxDQUNuQyxPQUFPLENBQUMsY0FBYyxLQUFLLFNBQVM7Z0JBQ2xDLENBQUMsQ0FBQyxPQUFPLENBQUMsY0FBYztnQkFDeEIsQ0FBQyxDQUFDLElBQUksVUFBVSxFQUFFLENBQ3JCLENBQUMsQ0FBQztRQUNMLE9BQU8sQ0FBQyxRQUFRLEtBQUssU0FBUztZQUM1QixDQUFDLEdBQUcsQ0FBQyxRQUFRLEdBQUcsZUFBZSxDQUM3QixPQUFPLENBQUMsUUFBUSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxVQUFVLEVBQUUsQ0FDckUsQ0FBQyxDQUFDO1FBQ0wsT0FBTyxDQUFDLGNBQWMsS0FBSyxTQUFTO1lBQ2xDLENBQUMsR0FBRyxDQUFDLGNBQWMsR0FBRyxlQUFlLENBQ25DLE9BQU8sQ0FBQyxjQUFjLEtBQUssU0FBUztnQkFDbEMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxjQUFjO2dCQUN4QixDQUFDLENBQUMsSUFBSSxVQUFVLEVBQUUsQ0FDckIsQ0FBQyxDQUFDO1FBQ0wsT0FBTyxDQUFDLGtCQUFrQixLQUFLLFNBQVM7WUFDdEMsQ0FBQyxHQUFHLENBQUMsa0JBQWtCLEdBQUcsZUFBZSxDQUN2QyxPQUFPLENBQUMsa0JBQWtCLEtBQUssU0FBUztnQkFDdEMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxrQkFBa0I7Z0JBQzVCLENBQUMsQ0FBQyxJQUFJLFVBQVUsRUFBRSxDQUNyQixDQUFDLENBQUM7UUFDTCxPQUFPLENBQUMsYUFBYSxLQUFLLFNBQVM7WUFDakMsQ0FBQyxHQUFHLENBQUMsYUFBYSxHQUFHLGVBQWUsQ0FDbEMsT0FBTyxDQUFDLGFBQWEsS0FBSyxTQUFTO2dCQUNqQyxDQUFDLENBQUMsT0FBTyxDQUFDLGFBQWE7Z0JBQ3ZCLENBQUMsQ0FBQyxJQUFJLFVBQVUsRUFBRSxDQUNyQixDQUFDLENBQUM7UUFDTCxPQUFPLENBQUMsT0FBTyxLQUFLLFNBQVM7WUFDM0IsQ0FBQyxHQUFHLENBQUMsT0FBTyxHQUFHLGVBQWUsQ0FDNUIsT0FBTyxDQUFDLE9BQU8sS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksVUFBVSxFQUFFLENBQ25FLENBQUMsQ0FBQztRQUNMLE9BQU8sQ0FBQyxlQUFlLEtBQUssU0FBUztZQUNuQyxDQUFDLEdBQUcsQ0FBQyxlQUFlLEdBQUcsZUFBZSxDQUNwQyxPQUFPLENBQUMsZUFBZSxLQUFLLFNBQVM7Z0JBQ25DLENBQUMsQ0FBQyxPQUFPLENBQUMsZUFBZTtnQkFDekIsQ0FBQyxDQUFDLElBQUksVUFBVSxFQUFFLENBQ3JCLENBQUMsQ0FBQztRQUNMLE9BQU8sQ0FBQyxZQUFZLEtBQUssU0FBUztZQUNoQyxDQUFDLEdBQUcsQ0FBQyxZQUFZLEdBQUcsZUFBZSxDQUNqQyxPQUFPLENBQUMsWUFBWSxLQUFLLFNBQVM7Z0JBQ2hDLENBQUMsQ0FBQyxPQUFPLENBQUMsWUFBWTtnQkFDdEIsQ0FBQyxDQUFDLElBQUksVUFBVSxFQUFFLENBQ3JCLENBQUMsQ0FBQztRQUNMLE9BQU8sQ0FBQyxlQUFlLEtBQUssU0FBUztZQUNuQyxDQUFDLEdBQUcsQ0FBQyxlQUFlLEdBQUcsZUFBZSxDQUNwQyxPQUFPLENBQUMsZUFBZSxLQUFLLFNBQVM7Z0JBQ25DLENBQUMsQ0FBQyxPQUFPLENBQUMsZUFBZTtnQkFDekIsQ0FBQyxDQUFDLElBQUksVUFBVSxFQUFFLENBQ3JCLENBQUMsQ0FBQztRQUNMLE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVELE1BQU0sQ0FBMEMsSUFBUTtRQUN0RCxPQUFPLGNBQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxhQUFKLElBQUksY0FBSixJQUFJLEdBQUksRUFBRSxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVELFdBQVcsQ0FBMEMsTUFBUzs7UUFDNUQsTUFBTSxPQUFPLEdBQUcsZ0JBQWdCLEVBQUUsQ0FBQztRQUNuQyxPQUFPLENBQUMsT0FBTztZQUNiLE1BQU0sQ0FBQyxPQUFPLEtBQUssU0FBUyxJQUFJLE1BQU0sQ0FBQyxPQUFPLEtBQUssSUFBSTtnQkFDckQsQ0FBQyxDQUFDLGlCQUFTLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUM7Z0JBQ3ZDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDaEIsT0FBTyxDQUFDLE9BQU8sR0FBRyxNQUFBLE1BQU0sQ0FBQyxPQUFPLG1DQUFJLEVBQUUsQ0FBQztRQUN2QyxPQUFPLENBQUMsTUFBTSxHQUFHLE1BQUEsTUFBTSxDQUFDLE1BQU0sbUNBQUksQ0FBQyxDQUFDO1FBQ3BDLE9BQU8sQ0FBQyxJQUFJLEdBQUcsTUFBQSxNQUFNLENBQUMsSUFBSSxtQ0FBSSxTQUFTLENBQUM7UUFDeEMsT0FBTyxDQUFDLFdBQVc7WUFDakIsTUFBTSxDQUFDLFdBQVcsS0FBSyxTQUFTLElBQUksTUFBTSxDQUFDLFdBQVcsS0FBSyxJQUFJO2dCQUM3RCxDQUFDLENBQUMsZUFBTyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDO2dCQUN6QyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBQ2hCLE9BQU8sQ0FBQyxjQUFjLEdBQUcsTUFBQSxNQUFNLENBQUMsY0FBYyxtQ0FBSSxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQ25FLE9BQU8sQ0FBQyxRQUFRLEdBQUcsTUFBQSxNQUFNLENBQUMsUUFBUSxtQ0FBSSxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQ3ZELE9BQU8sQ0FBQyxjQUFjLEdBQUcsTUFBQSxNQUFNLENBQUMsY0FBYyxtQ0FBSSxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQ25FLE9BQU8sQ0FBQyxrQkFBa0IsR0FBRyxNQUFBLE1BQU0sQ0FBQyxrQkFBa0IsbUNBQUksSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUMzRSxPQUFPLENBQUMsYUFBYSxHQUFHLE1BQUEsTUFBTSxDQUFDLGFBQWEsbUNBQUksSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUNqRSxPQUFPLENBQUMsT0FBTyxHQUFHLE1BQUEsTUFBTSxDQUFDLE9BQU8sbUNBQUksSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUNyRCxPQUFPLENBQUMsZUFBZSxHQUFHLE1BQUEsTUFBTSxDQUFDLGVBQWUsbUNBQUksSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUNyRSxPQUFPLENBQUMsWUFBWSxHQUFHLE1BQUEsTUFBTSxDQUFDLFlBQVksbUNBQUksSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUMvRCxPQUFPLENBQUMsZUFBZSxHQUFHLE1BQUEsTUFBTSxDQUFDLGVBQWUsbUNBQUksSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUNyRSxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0NBQ0YsQ0FBQztBQUVGLFNBQVMsY0FBYztJQUNyQixPQUFPLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxDQUFDO0FBQ3JCLENBQUM7QUFFWSxRQUFBLElBQUksR0FBRztJQUNsQixNQUFNLENBQUMsT0FBYSxFQUFFLFNBQXFCLGlCQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtRQUM1RCxLQUFLLE1BQU0sQ0FBQyxJQUFJLE9BQU8sQ0FBQyxHQUFHLEVBQUU7WUFDM0IsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBRSxDQUFDLENBQUM7U0FDN0I7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQThCLEVBQUUsTUFBZTtRQUNwRCxNQUFNLE1BQU0sR0FDVixLQUFLLFlBQVksaUJBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsaUJBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pFLElBQUksR0FBRyxHQUFHLE1BQU0sS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDO1FBQ2xFLE1BQU0sT0FBTyxHQUFHLGNBQWMsRUFBRSxDQUFDO1FBQ2pDLE9BQU8sTUFBTSxDQUFDLEdBQUcsR0FBRyxHQUFHLEVBQUU7WUFDdkIsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzVCLFFBQVEsR0FBRyxLQUFLLENBQUMsRUFBRTtnQkFDakIsS0FBSyxDQUFDO29CQUNKLElBQUksR0FBRyxLQUFLLEVBQUUsRUFBRTt3QkFDZCxNQUFNO3FCQUNQO29CQUVELE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO29CQUNqQyxTQUFTO2FBQ1o7WUFDRCxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxFQUFFO2dCQUNoQyxNQUFNO2FBQ1A7WUFDRCxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQztTQUMxQjtRQUNELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxRQUFRLENBQUMsTUFBVztRQUNsQixPQUFPO1lBQ0wsR0FBRyxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxhQUFOLE1BQU0sdUJBQU4sTUFBTSxDQUFFLEdBQUcsQ0FBQztnQkFDN0IsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBTSxFQUFFLEVBQUUsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ2hELENBQUMsQ0FBQyxFQUFFO1NBQ1AsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLENBQUMsT0FBYTtRQUNsQixNQUFNLEdBQUcsR0FBUSxFQUFFLENBQUM7UUFDcEIsSUFBSSxPQUFPLENBQUMsR0FBRyxFQUFFO1lBQ2YsR0FBRyxDQUFDLEdBQUcsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQzlCLGVBQWUsQ0FBQyxDQUFDLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksVUFBVSxFQUFFLENBQUMsQ0FDeEQsQ0FBQztTQUNIO2FBQU07WUFDTCxHQUFHLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQztTQUNkO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRUQsTUFBTSxDQUF3QyxJQUFRO1FBQ3BELE9BQU8sWUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLGFBQUosSUFBSSxjQUFKLElBQUksR0FBSSxFQUFFLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsV0FBVyxDQUF3QyxNQUFTOztRQUMxRCxNQUFNLE9BQU8sR0FBRyxjQUFjLEVBQUUsQ0FBQztRQUNqQyxPQUFPLENBQUMsR0FBRyxHQUFHLENBQUEsTUFBQSxNQUFNLENBQUMsR0FBRywwQ0FBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFJLEVBQUUsQ0FBQztRQUM5QyxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0NBQ0YsQ0FBQztBQUVGLFNBQVMsY0FBYztJQUNyQixPQUFPO1FBQ0wsSUFBSSxFQUFFLENBQUM7UUFDUCxNQUFNLEVBQUUsQ0FBQztRQUNULEtBQUssRUFBRSxDQUFDO1FBQ1IsT0FBTyxFQUFFLFNBQVM7UUFDbEIsU0FBUyxFQUFFLFNBQVM7UUFDcEIsZ0JBQWdCLEVBQUUsSUFBSSxVQUFVLEVBQUU7UUFDbEMsY0FBYyxFQUFFLENBQUM7UUFDakIsU0FBUyxFQUFFLElBQUksVUFBVSxFQUFFO0tBQzVCLENBQUM7QUFDSixDQUFDO0FBRVksUUFBQSxJQUFJLEdBQUc7SUFDbEIsTUFBTSxDQUFDLE9BQWEsRUFBRSxTQUFxQixpQkFBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUU7UUFDNUQsSUFBSSxPQUFPLENBQUMsSUFBSSxLQUFLLENBQUMsRUFBRTtZQUN0QixNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDdEM7UUFDRCxJQUFJLE9BQU8sQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ3hCLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUN6QztRQUNELElBQUksT0FBTyxDQUFDLEtBQUssS0FBSyxDQUFDLEVBQUU7WUFDdkIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3hDO1FBQ0QsSUFBSSxPQUFPLENBQUMsT0FBTyxLQUFLLFNBQVMsRUFBRTtZQUNqQyxlQUFPLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQ3BFO1FBQ0QsSUFBSSxPQUFPLENBQUMsU0FBUyxLQUFLLFNBQVMsRUFBRTtZQUNuQyxxQkFBUyxDQUFDLE1BQU0sQ0FDZCxXQUFXLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUM5QixNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUN6QixDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQ1o7UUFDRCxJQUFJLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ3pDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1NBQ25EO1FBQ0QsSUFBSSxPQUFPLENBQUMsY0FBYyxLQUFLLENBQUMsRUFBRTtZQUNoQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUM7U0FDakQ7UUFDRCxJQUFJLE9BQU8sQ0FBQyxTQUFTLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUNsQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDNUM7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQThCLEVBQUUsTUFBZTtRQUNwRCxNQUFNLE1BQU0sR0FDVixLQUFLLFlBQVksaUJBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsaUJBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pFLElBQUksR0FBRyxHQUFHLE1BQU0sS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDO1FBQ2xFLE1BQU0sT0FBTyxHQUFHLGNBQWMsRUFBRSxDQUFDO1FBQ2pDLE9BQU8sTUFBTSxDQUFDLEdBQUcsR0FBRyxHQUFHLEVBQUU7WUFDdkIsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzVCLFFBQVEsR0FBRyxLQUFLLENBQUMsRUFBRTtnQkFDakIsS0FBSyxDQUFDO29CQUNKLElBQUksR0FBRyxLQUFLLENBQUMsRUFBRTt3QkFDYixNQUFNO3FCQUNQO29CQUVELE9BQU8sQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLEtBQUssRUFBUyxDQUFDO29CQUNyQyxTQUFTO2dCQUNYLEtBQUssQ0FBQztvQkFDSixJQUFJLEdBQUcsS0FBSyxFQUFFLEVBQUU7d0JBQ2QsTUFBTTtxQkFDUDtvQkFFRCxPQUFPLENBQUMsTUFBTSxHQUFHLFlBQVksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFVLENBQUMsQ0FBQztvQkFDdEQsU0FBUztnQkFDWCxLQUFLLENBQUM7b0JBQ0osSUFBSSxHQUFHLEtBQUssRUFBRSxFQUFFO3dCQUNkLE1BQU07cUJBQ1A7b0JBRUQsT0FBTyxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7b0JBQy9CLFNBQVM7Z0JBQ1gsS0FBSyxDQUFDO29CQUNKLElBQUksR0FBRyxLQUFLLEVBQUUsRUFBRTt3QkFDZCxNQUFNO3FCQUNQO29CQUVELE9BQU8sQ0FBQyxPQUFPLEdBQUcsZUFBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7b0JBQzFELFNBQVM7Z0JBQ1gsS0FBSyxDQUFDO29CQUNKLElBQUksR0FBRyxLQUFLLEVBQUUsRUFBRTt3QkFDZCxNQUFNO3FCQUNQO29CQUVELE9BQU8sQ0FBQyxTQUFTLEdBQUcsYUFBYSxDQUMvQixxQkFBUyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQzFDLENBQUM7b0JBQ0YsU0FBUztnQkFDWCxLQUFLLENBQUM7b0JBQ0osSUFBSSxHQUFHLEtBQUssRUFBRSxFQUFFO3dCQUNkLE1BQU07cUJBQ1A7b0JBRUQsT0FBTyxDQUFDLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztvQkFDMUMsU0FBUztnQkFDWCxLQUFLLENBQUM7b0JBQ0osSUFBSSxHQUFHLEtBQUssRUFBRSxFQUFFO3dCQUNkLE1BQU07cUJBQ1A7b0JBRUQsT0FBTyxDQUFDLGNBQWMsR0FBRyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7b0JBQ3hDLFNBQVM7Z0JBQ1gsS0FBSyxDQUFDO29CQUNKLElBQUksR0FBRyxLQUFLLEVBQUUsRUFBRTt3QkFDZCxNQUFNO3FCQUNQO29CQUVELE9BQU8sQ0FBQyxTQUFTLEdBQUcsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO29CQUNuQyxTQUFTO2FBQ1o7WUFDRCxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxFQUFFO2dCQUNoQyxNQUFNO2FBQ1A7WUFDRCxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQztTQUMxQjtRQUNELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxRQUFRLENBQUMsTUFBVztRQUNsQixPQUFPO1lBQ0wsSUFBSSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLHFCQUFxQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNqRSxNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN4RCxLQUFLLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNyRCxPQUFPLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUM7Z0JBQzVCLENBQUMsQ0FBQyxlQUFPLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUM7Z0JBQ2xDLENBQUMsQ0FBQyxTQUFTO1lBQ2IsU0FBUyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDO2dCQUNoQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQztnQkFDckMsQ0FBQyxDQUFDLFNBQVM7WUFDYixnQkFBZ0IsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDO2dCQUM5QyxDQUFDLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQztnQkFDMUMsQ0FBQyxDQUFDLElBQUksVUFBVSxFQUFFO1lBQ3BCLGNBQWMsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQztnQkFDMUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDO2dCQUMvQixDQUFDLENBQUMsQ0FBQztZQUNMLFNBQVMsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQztnQkFDaEMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDO2dCQUNuQyxDQUFDLENBQUMsSUFBSSxVQUFVLEVBQUU7U0FDckIsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLENBQUMsT0FBYTtRQUNsQixNQUFNLEdBQUcsR0FBUSxFQUFFLENBQUM7UUFDcEIsT0FBTyxDQUFDLElBQUksS0FBSyxTQUFTO1lBQ3hCLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUNqRCxPQUFPLENBQUMsTUFBTSxLQUFLLFNBQVMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUMxRSxPQUFPLENBQUMsS0FBSyxLQUFLLFNBQVMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUN2RSxPQUFPLENBQUMsT0FBTyxLQUFLLFNBQVM7WUFDM0IsQ0FBQyxHQUFHLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPO2dCQUM1QixDQUFDLENBQUMsZUFBTyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDO2dCQUNqQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDakIsT0FBTyxDQUFDLFNBQVMsS0FBSyxTQUFTO1lBQzdCLENBQUMsR0FBRyxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDcEQsT0FBTyxDQUFDLGdCQUFnQixLQUFLLFNBQVM7WUFDcEMsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLEdBQUcsZUFBZSxDQUNyQyxPQUFPLENBQUMsZ0JBQWdCLEtBQUssU0FBUztnQkFDcEMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0I7Z0JBQzFCLENBQUMsQ0FBQyxJQUFJLFVBQVUsRUFBRSxDQUNyQixDQUFDLENBQUM7UUFDTCxPQUFPLENBQUMsY0FBYyxLQUFLLFNBQVM7WUFDbEMsQ0FBQyxHQUFHLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7UUFDNUQsT0FBTyxDQUFDLFNBQVMsS0FBSyxTQUFTO1lBQzdCLENBQUMsR0FBRyxDQUFDLFNBQVMsR0FBRyxlQUFlLENBQzlCLE9BQU8sQ0FBQyxTQUFTLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLFVBQVUsRUFBRSxDQUN2RSxDQUFDLENBQUM7UUFDTCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFRCxNQUFNLENBQXdDLElBQVE7UUFDcEQsT0FBTyxZQUFJLENBQUMsV0FBVyxDQUFDLElBQUksYUFBSixJQUFJLGNBQUosSUFBSSxHQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxXQUFXLENBQXdDLE1BQVM7O1FBQzFELE1BQU0sT0FBTyxHQUFHLGNBQWMsRUFBRSxDQUFDO1FBQ2pDLE9BQU8sQ0FBQyxJQUFJLEdBQUcsTUFBQSxNQUFNLENBQUMsSUFBSSxtQ0FBSSxDQUFDLENBQUM7UUFDaEMsT0FBTyxDQUFDLE1BQU0sR0FBRyxNQUFBLE1BQU0sQ0FBQyxNQUFNLG1DQUFJLENBQUMsQ0FBQztRQUNwQyxPQUFPLENBQUMsS0FBSyxHQUFHLE1BQUEsTUFBTSxDQUFDLEtBQUssbUNBQUksQ0FBQyxDQUFDO1FBQ2xDLE9BQU8sQ0FBQyxPQUFPO1lBQ2IsTUFBTSxDQUFDLE9BQU8sS0FBSyxTQUFTLElBQUksTUFBTSxDQUFDLE9BQU8sS0FBSyxJQUFJO2dCQUNyRCxDQUFDLENBQUMsZUFBTyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDO2dCQUNyQyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBQ2hCLE9BQU8sQ0FBQyxTQUFTLEdBQUcsTUFBQSxNQUFNLENBQUMsU0FBUyxtQ0FBSSxTQUFTLENBQUM7UUFDbEQsT0FBTyxDQUFDLGdCQUFnQixHQUFHLE1BQUEsTUFBTSxDQUFDLGdCQUFnQixtQ0FBSSxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQ3ZFLE9BQU8sQ0FBQyxjQUFjLEdBQUcsTUFBQSxNQUFNLENBQUMsY0FBYyxtQ0FBSSxDQUFDLENBQUM7UUFDcEQsT0FBTyxDQUFDLFNBQVMsR0FBRyxNQUFBLE1BQU0sQ0FBQyxTQUFTLG1DQUFJLElBQUksVUFBVSxFQUFFLENBQUM7UUFDekQsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztDQUNGLENBQUM7QUFFRixTQUFTLGdCQUFnQjtJQUN2QixPQUFPLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFBRSxDQUFDO0FBQ3JFLENBQUM7QUFFWSxRQUFBLE1BQU0sR0FBRztJQUNwQixNQUFNLENBQ0osT0FBZSxFQUNmLFNBQXFCLGlCQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtRQUV4QyxJQUFJLE9BQU8sQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ3hCLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUN4QztRQUNELElBQUksT0FBTyxDQUFDLEtBQUssS0FBSyxDQUFDLEVBQUU7WUFDdkIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3hDO1FBQ0QsSUFBSSxPQUFPLENBQUMsT0FBTyxLQUFLLFNBQVMsRUFBRTtZQUNqQyxlQUFPLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQ3BFO1FBQ0QsS0FBSyxNQUFNLENBQUMsSUFBSSxPQUFPLENBQUMsVUFBVSxFQUFFO1lBQ2xDLGlCQUFTLENBQUMsTUFBTSxDQUFDLENBQUUsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7U0FDekQ7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQThCLEVBQUUsTUFBZTtRQUNwRCxNQUFNLE1BQU0sR0FDVixLQUFLLFlBQVksaUJBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsaUJBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pFLElBQUksR0FBRyxHQUFHLE1BQU0sS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDO1FBQ2xFLE1BQU0sT0FBTyxHQUFHLGdCQUFnQixFQUFFLENBQUM7UUFDbkMsT0FBTyxNQUFNLENBQUMsR0FBRyxHQUFHLEdBQUcsRUFBRTtZQUN2QixNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDNUIsUUFBUSxHQUFHLEtBQUssQ0FBQyxFQUFFO2dCQUNqQixLQUFLLENBQUM7b0JBQ0osSUFBSSxHQUFHLEtBQUssQ0FBQyxFQUFFO3dCQUNiLE1BQU07cUJBQ1A7b0JBRUQsT0FBTyxDQUFDLE1BQU0sR0FBRyxZQUFZLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBVSxDQUFDLENBQUM7b0JBQ3RELFNBQVM7Z0JBQ1gsS0FBSyxDQUFDO29CQUNKLElBQUksR0FBRyxLQUFLLEVBQUUsRUFBRTt3QkFDZCxNQUFNO3FCQUNQO29CQUVELE9BQU8sQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO29CQUMvQixTQUFTO2dCQUNYLEtBQUssQ0FBQztvQkFDSixJQUFJLEdBQUcsS0FBSyxFQUFFLEVBQUU7d0JBQ2QsTUFBTTtxQkFDUDtvQkFFRCxPQUFPLENBQUMsT0FBTyxHQUFHLGVBQU8sQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO29CQUMxRCxTQUFTO2dCQUNYLEtBQUssQ0FBQztvQkFDSixJQUFJLEdBQUcsS0FBSyxFQUFFLEVBQUU7d0JBQ2QsTUFBTTtxQkFDUDtvQkFFRCxPQUFPLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxpQkFBUyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQztvQkFDbkUsU0FBUzthQUNaO1lBQ0QsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsRUFBRTtnQkFDaEMsTUFBTTthQUNQO1lBQ0QsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDMUI7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQsUUFBUSxDQUFDLE1BQVc7UUFDbEIsT0FBTztZQUNMLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3hELEtBQUssRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3JELE9BQU8sRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQztnQkFDNUIsQ0FBQyxDQUFDLGVBQU8sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQztnQkFDbEMsQ0FBQyxDQUFDLFNBQVM7WUFDYixVQUFVLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLGFBQU4sTUFBTSx1QkFBTixNQUFNLENBQUUsVUFBVSxDQUFDO2dCQUMzQyxDQUFDLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFNLEVBQUUsRUFBRSxDQUFDLGlCQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUMxRCxDQUFDLENBQUMsRUFBRTtTQUNQLENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxDQUFDLE9BQWU7UUFDcEIsTUFBTSxHQUFHLEdBQVEsRUFBRSxDQUFDO1FBQ3BCLE9BQU8sQ0FBQyxNQUFNLEtBQUssU0FBUyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQzFFLE9BQU8sQ0FBQyxLQUFLLEtBQUssU0FBUyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3ZFLE9BQU8sQ0FBQyxPQUFPLEtBQUssU0FBUztZQUMzQixDQUFDLEdBQUcsQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDLE9BQU87Z0JBQzVCLENBQUMsQ0FBQyxlQUFPLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUM7Z0JBQ2pDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNqQixJQUFJLE9BQU8sQ0FBQyxVQUFVLEVBQUU7WUFDdEIsR0FBRyxDQUFDLFVBQVUsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQzVDLENBQUMsQ0FBQyxDQUFDLENBQUMsaUJBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FDcEMsQ0FBQztTQUNIO2FBQU07WUFDTCxHQUFHLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQztTQUNyQjtRQUNELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVELE1BQU0sQ0FBMEMsSUFBUTtRQUN0RCxPQUFPLGNBQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxhQUFKLElBQUksY0FBSixJQUFJLEdBQUksRUFBRSxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVELFdBQVcsQ0FBMEMsTUFBUzs7UUFDNUQsTUFBTSxPQUFPLEdBQUcsZ0JBQWdCLEVBQUUsQ0FBQztRQUNuQyxPQUFPLENBQUMsTUFBTSxHQUFHLE1BQUEsTUFBTSxDQUFDLE1BQU0sbUNBQUksQ0FBQyxDQUFDO1FBQ3BDLE9BQU8sQ0FBQyxLQUFLLEdBQUcsTUFBQSxNQUFNLENBQUMsS0FBSyxtQ0FBSSxDQUFDLENBQUM7UUFDbEMsT0FBTyxDQUFDLE9BQU87WUFDYixNQUFNLENBQUMsT0FBTyxLQUFLLFNBQVMsSUFBSSxNQUFNLENBQUMsT0FBTyxLQUFLLElBQUk7Z0JBQ3JELENBQUMsQ0FBQyxlQUFPLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUM7Z0JBQ3JDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDaEIsT0FBTyxDQUFDLFVBQVU7WUFDaEIsQ0FBQSxNQUFBLE1BQU0sQ0FBQyxVQUFVLDBDQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsaUJBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSSxFQUFFLENBQUM7UUFDaEUsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztDQUNGLENBQUM7QUFFRixTQUFTLG1CQUFtQjtJQUMxQixPQUFPO1FBQ0wsV0FBVyxFQUFFLENBQUM7UUFDZCxnQkFBZ0IsRUFBRSxJQUFJLFVBQVUsRUFBRTtRQUNsQyxTQUFTLEVBQUUsU0FBUztRQUNwQixTQUFTLEVBQUUsSUFBSSxVQUFVLEVBQUU7S0FDNUIsQ0FBQztBQUNKLENBQUM7QUFFWSxRQUFBLFNBQVMsR0FBRztJQUN2QixNQUFNLENBQ0osT0FBa0IsRUFDbEIsU0FBcUIsaUJBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO1FBRXhDLElBQUksT0FBTyxDQUFDLFdBQVcsS0FBSyxDQUFDLEVBQUU7WUFDN0IsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1NBQzdDO1FBQ0QsSUFBSSxPQUFPLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUN6QyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztTQUNuRDtRQUNELElBQUksT0FBTyxDQUFDLFNBQVMsS0FBSyxTQUFTLEVBQUU7WUFDbkMscUJBQVMsQ0FBQyxNQUFNLENBQ2QsV0FBVyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFDOUIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FDekIsQ0FBQyxNQUFNLEVBQUUsQ0FBQztTQUNaO1FBQ0QsSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDbEMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQzVDO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUE4QixFQUFFLE1BQWU7UUFDcEQsTUFBTSxNQUFNLEdBQ1YsS0FBSyxZQUFZLGlCQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLGlCQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNqRSxJQUFJLEdBQUcsR0FBRyxNQUFNLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQztRQUNsRSxNQUFNLE9BQU8sR0FBRyxtQkFBbUIsRUFBRSxDQUFDO1FBQ3RDLE9BQU8sTUFBTSxDQUFDLEdBQUcsR0FBRyxHQUFHLEVBQUU7WUFDdkIsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzVCLFFBQVEsR0FBRyxLQUFLLENBQUMsRUFBRTtnQkFDakIsS0FBSyxDQUFDO29CQUNKLElBQUksR0FBRyxLQUFLLENBQUMsRUFBRTt3QkFDYixNQUFNO3FCQUNQO29CQUVELE9BQU8sQ0FBQyxXQUFXLEdBQUcsTUFBTSxDQUFDLEtBQUssRUFBUyxDQUFDO29CQUM1QyxTQUFTO2dCQUNYLEtBQUssQ0FBQztvQkFDSixJQUFJLEdBQUcsS0FBSyxFQUFFLEVBQUU7d0JBQ2QsTUFBTTtxQkFDUDtvQkFFRCxPQUFPLENBQUMsZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO29CQUMxQyxTQUFTO2dCQUNYLEtBQUssQ0FBQztvQkFDSixJQUFJLEdBQUcsS0FBSyxFQUFFLEVBQUU7d0JBQ2QsTUFBTTtxQkFDUDtvQkFFRCxPQUFPLENBQUMsU0FBUyxHQUFHLGFBQWEsQ0FDL0IscUJBQVMsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUMxQyxDQUFDO29CQUNGLFNBQVM7Z0JBQ1gsS0FBSyxDQUFDO29CQUNKLElBQUksR0FBRyxLQUFLLEVBQUUsRUFBRTt3QkFDZCxNQUFNO3FCQUNQO29CQUVELE9BQU8sQ0FBQyxTQUFTLEdBQUcsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO29CQUNuQyxTQUFTO2FBQ1o7WUFDRCxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxFQUFFO2dCQUNoQyxNQUFNO2FBQ1A7WUFDRCxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQztTQUMxQjtRQUNELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxRQUFRLENBQUMsTUFBVztRQUNsQixPQUFPO1lBQ0wsV0FBVyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDO2dCQUNwQyxDQUFDLENBQUMsbUJBQW1CLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQztnQkFDekMsQ0FBQyxDQUFDLENBQUM7WUFDTCxnQkFBZ0IsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDO2dCQUM5QyxDQUFDLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQztnQkFDMUMsQ0FBQyxDQUFDLElBQUksVUFBVSxFQUFFO1lBQ3BCLFNBQVMsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQztnQkFDaEMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUM7Z0JBQ3JDLENBQUMsQ0FBQyxTQUFTO1lBQ2IsU0FBUyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDO2dCQUNoQyxDQUFDLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUM7Z0JBQ25DLENBQUMsQ0FBQyxJQUFJLFVBQVUsRUFBRTtTQUNyQixDQUFDO0lBQ0osQ0FBQztJQUVELE1BQU0sQ0FBQyxPQUFrQjtRQUN2QixNQUFNLEdBQUcsR0FBUSxFQUFFLENBQUM7UUFDcEIsT0FBTyxDQUFDLFdBQVcsS0FBSyxTQUFTO1lBQy9CLENBQUMsR0FBRyxDQUFDLFdBQVcsR0FBRyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztRQUM3RCxPQUFPLENBQUMsZ0JBQWdCLEtBQUssU0FBUztZQUNwQyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsR0FBRyxlQUFlLENBQ3JDLE9BQU8sQ0FBQyxnQkFBZ0IsS0FBSyxTQUFTO2dCQUNwQyxDQUFDLENBQUMsT0FBTyxDQUFDLGdCQUFnQjtnQkFDMUIsQ0FBQyxDQUFDLElBQUksVUFBVSxFQUFFLENBQ3JCLENBQUMsQ0FBQztRQUNMLE9BQU8sQ0FBQyxTQUFTLEtBQUssU0FBUztZQUM3QixDQUFDLEdBQUcsQ0FBQyxTQUFTLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQ3BELE9BQU8sQ0FBQyxTQUFTLEtBQUssU0FBUztZQUM3QixDQUFDLEdBQUcsQ0FBQyxTQUFTLEdBQUcsZUFBZSxDQUM5QixPQUFPLENBQUMsU0FBUyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxVQUFVLEVBQUUsQ0FDdkUsQ0FBQyxDQUFDO1FBQ0wsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRUQsTUFBTSxDQUE2QyxJQUFRO1FBQ3pELE9BQU8saUJBQVMsQ0FBQyxXQUFXLENBQUMsSUFBSSxhQUFKLElBQUksY0FBSixJQUFJLEdBQUksRUFBRSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVELFdBQVcsQ0FDVCxNQUFTOztRQUVULE1BQU0sT0FBTyxHQUFHLG1CQUFtQixFQUFFLENBQUM7UUFDdEMsT0FBTyxDQUFDLFdBQVcsR0FBRyxNQUFBLE1BQU0sQ0FBQyxXQUFXLG1DQUFJLENBQUMsQ0FBQztRQUM5QyxPQUFPLENBQUMsZ0JBQWdCLEdBQUcsTUFBQSxNQUFNLENBQUMsZ0JBQWdCLG1DQUFJLElBQUksVUFBVSxFQUFFLENBQUM7UUFDdkUsT0FBTyxDQUFDLFNBQVMsR0FBRyxNQUFBLE1BQU0sQ0FBQyxTQUFTLG1DQUFJLFNBQVMsQ0FBQztRQUNsRCxPQUFPLENBQUMsU0FBUyxHQUFHLE1BQUEsTUFBTSxDQUFDLFNBQVMsbUNBQUksSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUN6RCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0NBQ0YsQ0FBQztBQUVGLFNBQVMsa0JBQWtCO0lBQ3pCLE9BQU87UUFDTCxJQUFJLEVBQUUsQ0FBQztRQUNQLE1BQU0sRUFBRSxDQUFDO1FBQ1QsS0FBSyxFQUFFLENBQUM7UUFDUixRQUFRLEVBQUUsQ0FBQztRQUNYLE9BQU8sRUFBRSxTQUFTO1FBQ2xCLFNBQVMsRUFBRSxTQUFTO1FBQ3BCLFNBQVMsRUFBRSxJQUFJLFVBQVUsRUFBRTtLQUM1QixDQUFDO0FBQ0osQ0FBQztBQUVZLFFBQUEsUUFBUSxHQUFHO0lBQ3RCLE1BQU0sQ0FDSixPQUFpQixFQUNqQixTQUFxQixpQkFBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUU7UUFFeEMsSUFBSSxPQUFPLENBQUMsSUFBSSxLQUFLLENBQUMsRUFBRTtZQUN0QixNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDdEM7UUFDRCxJQUFJLE9BQU8sQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ3hCLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUN6QztRQUNELElBQUksT0FBTyxDQUFDLEtBQUssS0FBSyxDQUFDLEVBQUU7WUFDdkIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3hDO1FBQ0QsSUFBSSxPQUFPLENBQUMsUUFBUSxLQUFLLENBQUMsRUFBRTtZQUMxQixNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDM0M7UUFDRCxJQUFJLE9BQU8sQ0FBQyxPQUFPLEtBQUssU0FBUyxFQUFFO1lBQ2pDLGVBQU8sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7U0FDcEU7UUFDRCxJQUFJLE9BQU8sQ0FBQyxTQUFTLEtBQUssU0FBUyxFQUFFO1lBQ25DLHFCQUFTLENBQUMsTUFBTSxDQUNkLFdBQVcsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQzlCLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQ3pCLENBQUMsTUFBTSxFQUFFLENBQUM7U0FDWjtRQUNELElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ2xDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUM1QztRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBOEIsRUFBRSxNQUFlO1FBQ3BELE1BQU0sTUFBTSxHQUNWLEtBQUssWUFBWSxpQkFBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxpQkFBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakUsSUFBSSxHQUFHLEdBQUcsTUFBTSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUM7UUFDbEUsTUFBTSxPQUFPLEdBQUcsa0JBQWtCLEVBQUUsQ0FBQztRQUNyQyxPQUFPLE1BQU0sQ0FBQyxHQUFHLEdBQUcsR0FBRyxFQUFFO1lBQ3ZCLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUM1QixRQUFRLEdBQUcsS0FBSyxDQUFDLEVBQUU7Z0JBQ2pCLEtBQUssQ0FBQztvQkFDSixJQUFJLEdBQUcsS0FBSyxDQUFDLEVBQUU7d0JBQ2IsTUFBTTtxQkFDUDtvQkFFRCxPQUFPLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxLQUFLLEVBQVMsQ0FBQztvQkFDckMsU0FBUztnQkFDWCxLQUFLLENBQUM7b0JBQ0osSUFBSSxHQUFHLEtBQUssRUFBRSxFQUFFO3dCQUNkLE1BQU07cUJBQ1A7b0JBRUQsT0FBTyxDQUFDLE1BQU0sR0FBRyxZQUFZLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBVSxDQUFDLENBQUM7b0JBQ3RELFNBQVM7Z0JBQ1gsS0FBSyxDQUFDO29CQUNKLElBQUksR0FBRyxLQUFLLEVBQUUsRUFBRTt3QkFDZCxNQUFNO3FCQUNQO29CQUVELE9BQU8sQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO29CQUMvQixTQUFTO2dCQUNYLEtBQUssQ0FBQztvQkFDSixJQUFJLEdBQUcsS0FBSyxFQUFFLEVBQUU7d0JBQ2QsTUFBTTtxQkFDUDtvQkFFRCxPQUFPLENBQUMsUUFBUSxHQUFHLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztvQkFDbEMsU0FBUztnQkFDWCxLQUFLLENBQUM7b0JBQ0osSUFBSSxHQUFHLEtBQUssRUFBRSxFQUFFO3dCQUNkLE1BQU07cUJBQ1A7b0JBRUQsT0FBTyxDQUFDLE9BQU8sR0FBRyxlQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztvQkFDMUQsU0FBUztnQkFDWCxLQUFLLENBQUM7b0JBQ0osSUFBSSxHQUFHLEtBQUssRUFBRSxFQUFFO3dCQUNkLE1BQU07cUJBQ1A7b0JBRUQsT0FBTyxDQUFDLFNBQVMsR0FBRyxhQUFhLENBQy9CLHFCQUFTLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FDMUMsQ0FBQztvQkFDRixTQUFTO2dCQUNYLEtBQUssQ0FBQztvQkFDSixJQUFJLEdBQUcsS0FBSyxFQUFFLEVBQUU7d0JBQ2QsTUFBTTtxQkFDUDtvQkFFRCxPQUFPLENBQUMsU0FBUyxHQUFHLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztvQkFDbkMsU0FBUzthQUNaO1lBQ0QsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsRUFBRTtnQkFDaEMsTUFBTTthQUNQO1lBQ0QsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDMUI7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQsUUFBUSxDQUFDLE1BQVc7UUFDbEIsT0FBTztZQUNMLElBQUksRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDakUsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDeEQsS0FBSyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDckQsUUFBUSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDOUQsT0FBTyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDO2dCQUM1QixDQUFDLENBQUMsZUFBTyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDO2dCQUNsQyxDQUFDLENBQUMsU0FBUztZQUNiLFNBQVMsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQztnQkFDaEMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUM7Z0JBQ3JDLENBQUMsQ0FBQyxTQUFTO1lBQ2IsU0FBUyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDO2dCQUNoQyxDQUFDLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUM7Z0JBQ25DLENBQUMsQ0FBQyxJQUFJLFVBQVUsRUFBRTtTQUNyQixDQUFDO0lBQ0osQ0FBQztJQUVELE1BQU0sQ0FBQyxPQUFpQjtRQUN0QixNQUFNLEdBQUcsR0FBUSxFQUFFLENBQUM7UUFDcEIsT0FBTyxDQUFDLElBQUksS0FBSyxTQUFTO1lBQ3hCLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUNqRCxPQUFPLENBQUMsTUFBTSxLQUFLLFNBQVMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUMxRSxPQUFPLENBQUMsS0FBSyxLQUFLLFNBQVMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUN2RSxPQUFPLENBQUMsUUFBUSxLQUFLLFNBQVM7WUFDNUIsQ0FBQyxHQUFHLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDaEQsT0FBTyxDQUFDLE9BQU8sS0FBSyxTQUFTO1lBQzNCLENBQUMsR0FBRyxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTztnQkFDNUIsQ0FBQyxDQUFDLGVBQU8sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQztnQkFDakMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2pCLE9BQU8sQ0FBQyxTQUFTLEtBQUssU0FBUztZQUM3QixDQUFDLEdBQUcsQ0FBQyxTQUFTLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQ3BELE9BQU8sQ0FBQyxTQUFTLEtBQUssU0FBUztZQUM3QixDQUFDLEdBQUcsQ0FBQyxTQUFTLEdBQUcsZUFBZSxDQUM5QixPQUFPLENBQUMsU0FBUyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxVQUFVLEVBQUUsQ0FDdkUsQ0FBQyxDQUFDO1FBQ0wsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRUQsTUFBTSxDQUE0QyxJQUFRO1FBQ3hELE9BQU8sZ0JBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxhQUFKLElBQUksY0FBSixJQUFJLEdBQUksRUFBRSxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVELFdBQVcsQ0FBNEMsTUFBUzs7UUFDOUQsTUFBTSxPQUFPLEdBQUcsa0JBQWtCLEVBQUUsQ0FBQztRQUNyQyxPQUFPLENBQUMsSUFBSSxHQUFHLE1BQUEsTUFBTSxDQUFDLElBQUksbUNBQUksQ0FBQyxDQUFDO1FBQ2hDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsTUFBQSxNQUFNLENBQUMsTUFBTSxtQ0FBSSxDQUFDLENBQUM7UUFDcEMsT0FBTyxDQUFDLEtBQUssR0FBRyxNQUFBLE1BQU0sQ0FBQyxLQUFLLG1DQUFJLENBQUMsQ0FBQztRQUNsQyxPQUFPLENBQUMsUUFBUSxHQUFHLE1BQUEsTUFBTSxDQUFDLFFBQVEsbUNBQUksQ0FBQyxDQUFDO1FBQ3hDLE9BQU8sQ0FBQyxPQUFPO1lBQ2IsTUFBTSxDQUFDLE9BQU8sS0FBSyxTQUFTLElBQUksTUFBTSxDQUFDLE9BQU8sS0FBSyxJQUFJO2dCQUNyRCxDQUFDLENBQUMsZUFBTyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDO2dCQUNyQyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBQ2hCLE9BQU8sQ0FBQyxTQUFTLEdBQUcsTUFBQSxNQUFNLENBQUMsU0FBUyxtQ0FBSSxTQUFTLENBQUM7UUFDbEQsT0FBTyxDQUFDLFNBQVMsR0FBRyxNQUFBLE1BQU0sQ0FBQyxTQUFTLG1DQUFJLElBQUksVUFBVSxFQUFFLENBQUM7UUFDekQsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztDQUNGLENBQUM7QUFFRixTQUFTLHNCQUFzQjtJQUM3QixPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLENBQUM7QUFDbEQsQ0FBQztBQUVZLFFBQUEsWUFBWSxHQUFHO0lBQzFCLE1BQU0sQ0FDSixPQUFxQixFQUNyQixTQUFxQixpQkFBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUU7UUFFeEMsSUFBSSxPQUFPLENBQUMsTUFBTSxLQUFLLFNBQVMsRUFBRTtZQUNoQyxjQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQ2xFO1FBQ0QsSUFBSSxPQUFPLENBQUMsTUFBTSxLQUFLLFNBQVMsRUFBRTtZQUNoQyxjQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQ2xFO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUE4QixFQUFFLE1BQWU7UUFDcEQsTUFBTSxNQUFNLEdBQ1YsS0FBSyxZQUFZLGlCQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLGlCQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNqRSxJQUFJLEdBQUcsR0FBRyxNQUFNLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQztRQUNsRSxNQUFNLE9BQU8sR0FBRyxzQkFBc0IsRUFBRSxDQUFDO1FBQ3pDLE9BQU8sTUFBTSxDQUFDLEdBQUcsR0FBRyxHQUFHLEVBQUU7WUFDdkIsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzVCLFFBQVEsR0FBRyxLQUFLLENBQUMsRUFBRTtnQkFDakIsS0FBSyxDQUFDO29CQUNKLElBQUksR0FBRyxLQUFLLEVBQUUsRUFBRTt3QkFDZCxNQUFNO3FCQUNQO29CQUVELE9BQU8sQ0FBQyxNQUFNLEdBQUcsY0FBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7b0JBQ3hELFNBQVM7Z0JBQ1gsS0FBSyxDQUFDO29CQUNKLElBQUksR0FBRyxLQUFLLEVBQUUsRUFBRTt3QkFDZCxNQUFNO3FCQUNQO29CQUVELE9BQU8sQ0FBQyxNQUFNLEdBQUcsY0FBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7b0JBQ3hELFNBQVM7YUFDWjtZQUNELElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLEVBQUU7Z0JBQ2hDLE1BQU07YUFDUDtZQUNELE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDO1NBQzFCO1FBQ0QsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVELFFBQVEsQ0FBQyxNQUFXO1FBQ2xCLE9BQU87WUFDTCxNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVM7WUFDekUsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTO1NBQzFFLENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxDQUFDLE9BQXFCO1FBQzFCLE1BQU0sR0FBRyxHQUFRLEVBQUUsQ0FBQztRQUNwQixPQUFPLENBQUMsTUFBTSxLQUFLLFNBQVM7WUFDMUIsQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLGNBQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM1RSxPQUFPLENBQUMsTUFBTSxLQUFLLFNBQVM7WUFDMUIsQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLGNBQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM1RSxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFRCxNQUFNLENBQ0osSUFBUTtRQUVSLE9BQU8sb0JBQVksQ0FBQyxXQUFXLENBQUMsSUFBSSxhQUFKLElBQUksY0FBSixJQUFJLEdBQUksRUFBRSxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVELFdBQVcsQ0FDVCxNQUFTO1FBRVQsTUFBTSxPQUFPLEdBQUcsc0JBQXNCLEVBQUUsQ0FBQztRQUN6QyxPQUFPLENBQUMsTUFBTTtZQUNaLE1BQU0sQ0FBQyxNQUFNLEtBQUssU0FBUyxJQUFJLE1BQU0sQ0FBQyxNQUFNLEtBQUssSUFBSTtnQkFDbkQsQ0FBQyxDQUFDLGNBQU0sQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztnQkFDbkMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUNoQixPQUFPLENBQUMsTUFBTTtZQUNaLE1BQU0sQ0FBQyxNQUFNLEtBQUssU0FBUyxJQUFJLE1BQU0sQ0FBQyxNQUFNLEtBQUssSUFBSTtnQkFDbkQsQ0FBQyxDQUFDLGNBQU0sQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztnQkFDbkMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUNoQixPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0NBQ0YsQ0FBQztBQUVGLFNBQVMsb0JBQW9CO0lBQzNCLE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsQ0FBQztBQUM5RCxDQUFDO0FBRVksUUFBQSxVQUFVLEdBQUc7SUFDeEIsTUFBTSxDQUNKLE9BQW1CLEVBQ25CLFNBQXFCLGlCQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtRQUV4QyxJQUFJLE9BQU8sQ0FBQyxZQUFZLEtBQUssU0FBUyxFQUFFO1lBQ3RDLG9CQUFZLENBQUMsTUFBTSxDQUNqQixPQUFPLENBQUMsWUFBWSxFQUNwQixNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUN6QixDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQ1o7UUFDRCxJQUFJLE9BQU8sQ0FBQyxZQUFZLEtBQUssU0FBUyxFQUFFO1lBQ3RDLHdCQUFZLENBQUMsTUFBTSxDQUNqQixPQUFPLENBQUMsWUFBWSxFQUNwQixNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUN6QixDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQ1o7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQThCLEVBQUUsTUFBZTtRQUNwRCxNQUFNLE1BQU0sR0FDVixLQUFLLFlBQVksaUJBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsaUJBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pFLElBQUksR0FBRyxHQUFHLE1BQU0sS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDO1FBQ2xFLE1BQU0sT0FBTyxHQUFHLG9CQUFvQixFQUFFLENBQUM7UUFDdkMsT0FBTyxNQUFNLENBQUMsR0FBRyxHQUFHLEdBQUcsRUFBRTtZQUN2QixNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDNUIsUUFBUSxHQUFHLEtBQUssQ0FBQyxFQUFFO2dCQUNqQixLQUFLLENBQUM7b0JBQ0osSUFBSSxHQUFHLEtBQUssRUFBRSxFQUFFO3dCQUNkLE1BQU07cUJBQ1A7b0JBRUQsT0FBTyxDQUFDLFlBQVksR0FBRyxvQkFBWSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7b0JBQ3BFLFNBQVM7Z0JBQ1gsS0FBSyxDQUFDO29CQUNKLElBQUksR0FBRyxLQUFLLEVBQUUsRUFBRTt3QkFDZCxNQUFNO3FCQUNQO29CQUVELE9BQU8sQ0FBQyxZQUFZLEdBQUcsd0JBQVksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO29CQUNwRSxTQUFTO2FBQ1o7WUFDRCxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxFQUFFO2dCQUNoQyxNQUFNO2FBQ1A7WUFDRCxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQztTQUMxQjtRQUNELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxRQUFRLENBQUMsTUFBVztRQUNsQixPQUFPO1lBQ0wsWUFBWSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDO2dCQUN0QyxDQUFDLENBQUMsb0JBQVksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQztnQkFDNUMsQ0FBQyxDQUFDLFNBQVM7WUFDYixZQUFZLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUM7Z0JBQ3RDLENBQUMsQ0FBQyx3QkFBWSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDO2dCQUM1QyxDQUFDLENBQUMsU0FBUztTQUNkLENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxDQUFDLE9BQW1CO1FBQ3hCLE1BQU0sR0FBRyxHQUFRLEVBQUUsQ0FBQztRQUNwQixPQUFPLENBQUMsWUFBWSxLQUFLLFNBQVM7WUFDaEMsQ0FBQyxHQUFHLENBQUMsWUFBWSxHQUFHLE9BQU8sQ0FBQyxZQUFZO2dCQUN0QyxDQUFDLENBQUMsb0JBQVksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQztnQkFDM0MsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2pCLE9BQU8sQ0FBQyxZQUFZLEtBQUssU0FBUztZQUNoQyxDQUFDLEdBQUcsQ0FBQyxZQUFZLEdBQUcsT0FBTyxDQUFDLFlBQVk7Z0JBQ3RDLENBQUMsQ0FBQyx3QkFBWSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDO2dCQUMzQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDakIsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRUQsTUFBTSxDQUE4QyxJQUFRO1FBQzFELE9BQU8sa0JBQVUsQ0FBQyxXQUFXLENBQUMsSUFBSSxhQUFKLElBQUksY0FBSixJQUFJLEdBQUksRUFBRSxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVELFdBQVcsQ0FDVCxNQUFTO1FBRVQsTUFBTSxPQUFPLEdBQUcsb0JBQW9CLEVBQUUsQ0FBQztRQUN2QyxPQUFPLENBQUMsWUFBWTtZQUNsQixNQUFNLENBQUMsWUFBWSxLQUFLLFNBQVMsSUFBSSxNQUFNLENBQUMsWUFBWSxLQUFLLElBQUk7Z0JBQy9ELENBQUMsQ0FBQyxvQkFBWSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDO2dCQUMvQyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBQ2hCLE9BQU8sQ0FBQyxZQUFZO1lBQ2xCLE1BQU0sQ0FBQyxZQUFZLEtBQUssU0FBUyxJQUFJLE1BQU0sQ0FBQyxZQUFZLEtBQUssSUFBSTtnQkFDL0QsQ0FBQyxDQUFDLHdCQUFZLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUM7Z0JBQy9DLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDaEIsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztDQUNGLENBQUM7QUFFRixTQUFTLG1CQUFtQjtJQUMxQixPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDO0FBQzVFLENBQUM7QUFFWSxRQUFBLFNBQVMsR0FBRztJQUN2QixNQUFNLENBQ0osT0FBa0IsRUFDbEIsU0FBcUIsaUJBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO1FBRXhDLElBQUksT0FBTyxDQUFDLE9BQU8sS0FBSyxTQUFTLEVBQUU7WUFDakMsZUFBTyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztTQUNwRTtRQUNELElBQUksT0FBTyxDQUFDLFNBQVMsS0FBSyxDQUFDLEVBQUU7WUFDM0IsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQzVDO1FBQ0QsSUFBSSxPQUFPLENBQUMsTUFBTSxLQUFLLFNBQVMsRUFBRTtZQUNoQyxjQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQ2xFO1FBQ0QsSUFBSSxPQUFPLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUN4QixNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDekM7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQThCLEVBQUUsTUFBZTtRQUNwRCxNQUFNLE1BQU0sR0FDVixLQUFLLFlBQVksaUJBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsaUJBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pFLElBQUksR0FBRyxHQUFHLE1BQU0sS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDO1FBQ2xFLE1BQU0sT0FBTyxHQUFHLG1CQUFtQixFQUFFLENBQUM7UUFDdEMsT0FBTyxNQUFNLENBQUMsR0FBRyxHQUFHLEdBQUcsRUFBRTtZQUN2QixNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDNUIsUUFBUSxHQUFHLEtBQUssQ0FBQyxFQUFFO2dCQUNqQixLQUFLLENBQUM7b0JBQ0osSUFBSSxHQUFHLEtBQUssRUFBRSxFQUFFO3dCQUNkLE1BQU07cUJBQ1A7b0JBRUQsT0FBTyxDQUFDLE9BQU8sR0FBRyxlQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztvQkFDMUQsU0FBUztnQkFDWCxLQUFLLENBQUM7b0JBQ0osSUFBSSxHQUFHLEtBQUssRUFBRSxFQUFFO3dCQUNkLE1BQU07cUJBQ1A7b0JBRUQsT0FBTyxDQUFDLFNBQVMsR0FBRyxZQUFZLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBVSxDQUFDLENBQUM7b0JBQ3pELFNBQVM7Z0JBQ1gsS0FBSyxDQUFDO29CQUNKLElBQUksR0FBRyxLQUFLLEVBQUUsRUFBRTt3QkFDZCxNQUFNO3FCQUNQO29CQUVELE9BQU8sQ0FBQyxNQUFNLEdBQUcsY0FBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7b0JBQ3hELFNBQVM7Z0JBQ1gsS0FBSyxDQUFDO29CQUNKLElBQUksR0FBRyxLQUFLLEVBQUUsRUFBRTt3QkFDZCxNQUFNO3FCQUNQO29CQUVELE9BQU8sQ0FBQyxNQUFNLEdBQUcsWUFBWSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQVUsQ0FBQyxDQUFDO29CQUN0RCxTQUFTO2FBQ1o7WUFDRCxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxFQUFFO2dCQUNoQyxNQUFNO2FBQ1A7WUFDRCxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQztTQUMxQjtRQUNELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxRQUFRLENBQUMsTUFBVztRQUNsQixPQUFPO1lBQ0wsT0FBTyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDO2dCQUM1QixDQUFDLENBQUMsZUFBTyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDO2dCQUNsQyxDQUFDLENBQUMsU0FBUztZQUNiLFNBQVMsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2pFLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUztZQUN6RSxNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUN6RCxDQUFDO0lBQ0osQ0FBQztJQUVELE1BQU0sQ0FBQyxPQUFrQjtRQUN2QixNQUFNLEdBQUcsR0FBUSxFQUFFLENBQUM7UUFDcEIsT0FBTyxDQUFDLE9BQU8sS0FBSyxTQUFTO1lBQzNCLENBQUMsR0FBRyxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTztnQkFDNUIsQ0FBQyxDQUFDLGVBQU8sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQztnQkFDakMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2pCLE9BQU8sQ0FBQyxTQUFTLEtBQUssU0FBUztZQUM3QixDQUFDLEdBQUcsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUNsRCxPQUFPLENBQUMsTUFBTSxLQUFLLFNBQVM7WUFDMUIsQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLGNBQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM1RSxPQUFPLENBQUMsTUFBTSxLQUFLLFNBQVMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUMxRSxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFRCxNQUFNLENBQTZDLElBQVE7UUFDekQsT0FBTyxpQkFBUyxDQUFDLFdBQVcsQ0FBQyxJQUFJLGFBQUosSUFBSSxjQUFKLElBQUksR0FBSSxFQUFFLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQsV0FBVyxDQUNULE1BQVM7O1FBRVQsTUFBTSxPQUFPLEdBQUcsbUJBQW1CLEVBQUUsQ0FBQztRQUN0QyxPQUFPLENBQUMsT0FBTztZQUNiLE1BQU0sQ0FBQyxPQUFPLEtBQUssU0FBUyxJQUFJLE1BQU0sQ0FBQyxPQUFPLEtBQUssSUFBSTtnQkFDckQsQ0FBQyxDQUFDLGVBQU8sQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQztnQkFDckMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUNoQixPQUFPLENBQUMsU0FBUyxHQUFHLE1BQUEsTUFBTSxDQUFDLFNBQVMsbUNBQUksQ0FBQyxDQUFDO1FBQzFDLE9BQU8sQ0FBQyxNQUFNO1lBQ1osTUFBTSxDQUFDLE1BQU0sS0FBSyxTQUFTLElBQUksTUFBTSxDQUFDLE1BQU0sS0FBSyxJQUFJO2dCQUNuRCxDQUFDLENBQUMsY0FBTSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDO2dCQUNuQyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBQ2hCLE9BQU8sQ0FBQyxNQUFNLEdBQUcsTUFBQSxNQUFNLENBQUMsTUFBTSxtQ0FBSSxDQUFDLENBQUM7UUFDcEMsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztDQUNGLENBQUM7QUFFRixTQUFTLGlCQUFpQjtJQUN4QixPQUFPO1FBQ0wsUUFBUSxFQUFFLElBQUksVUFBVSxFQUFFO1FBQzFCLElBQUksRUFBRSxJQUFJLFVBQVUsRUFBRTtRQUN0QixLQUFLLEVBQUUsU0FBUztLQUNqQixDQUFDO0FBQ0osQ0FBQztBQUVZLFFBQUEsT0FBTyxHQUFHO0lBQ3JCLE1BQU0sQ0FDSixPQUFnQixFQUNoQixTQUFxQixpQkFBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUU7UUFFeEMsSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDakMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQzNDO1FBQ0QsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDN0IsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3ZDO1FBQ0QsSUFBSSxPQUFPLENBQUMsS0FBSyxLQUFLLFNBQVMsRUFBRTtZQUMvQixhQUFLLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQ2hFO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUE4QixFQUFFLE1BQWU7UUFDcEQsTUFBTSxNQUFNLEdBQ1YsS0FBSyxZQUFZLGlCQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLGlCQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNqRSxJQUFJLEdBQUcsR0FBRyxNQUFNLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQztRQUNsRSxNQUFNLE9BQU8sR0FBRyxpQkFBaUIsRUFBRSxDQUFDO1FBQ3BDLE9BQU8sTUFBTSxDQUFDLEdBQUcsR0FBRyxHQUFHLEVBQUU7WUFDdkIsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzVCLFFBQVEsR0FBRyxLQUFLLENBQUMsRUFBRTtnQkFDakIsS0FBSyxDQUFDO29CQUNKLElBQUksR0FBRyxLQUFLLEVBQUUsRUFBRTt3QkFDZCxNQUFNO3FCQUNQO29CQUVELE9BQU8sQ0FBQyxRQUFRLEdBQUcsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO29CQUNsQyxTQUFTO2dCQUNYLEtBQUssQ0FBQztvQkFDSixJQUFJLEdBQUcsS0FBSyxFQUFFLEVBQUU7d0JBQ2QsTUFBTTtxQkFDUDtvQkFFRCxPQUFPLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztvQkFDOUIsU0FBUztnQkFDWCxLQUFLLENBQUM7b0JBQ0osSUFBSSxHQUFHLEtBQUssRUFBRSxFQUFFO3dCQUNkLE1BQU07cUJBQ1A7b0JBRUQsT0FBTyxDQUFDLEtBQUssR0FBRyxhQUFLLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztvQkFDdEQsU0FBUzthQUNaO1lBQ0QsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsRUFBRTtnQkFDaEMsTUFBTTthQUNQO1lBQ0QsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDMUI7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQsUUFBUSxDQUFDLE1BQVc7UUFDbEIsT0FBTztZQUNMLFFBQVEsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQztnQkFDOUIsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDO2dCQUNsQyxDQUFDLENBQUMsSUFBSSxVQUFVLEVBQUU7WUFDcEIsSUFBSSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDO2dCQUN0QixDQUFDLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7Z0JBQzlCLENBQUMsQ0FBQyxJQUFJLFVBQVUsRUFBRTtZQUNwQixLQUFLLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVM7U0FDdEUsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLENBQUMsT0FBZ0I7UUFDckIsTUFBTSxHQUFHLEdBQVEsRUFBRSxDQUFDO1FBQ3BCLE9BQU8sQ0FBQyxRQUFRLEtBQUssU0FBUztZQUM1QixDQUFDLEdBQUcsQ0FBQyxRQUFRLEdBQUcsZUFBZSxDQUM3QixPQUFPLENBQUMsUUFBUSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxVQUFVLEVBQUUsQ0FDckUsQ0FBQyxDQUFDO1FBQ0wsT0FBTyxDQUFDLElBQUksS0FBSyxTQUFTO1lBQ3hCLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRyxlQUFlLENBQ3pCLE9BQU8sQ0FBQyxJQUFJLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLFVBQVUsRUFBRSxDQUM3RCxDQUFDLENBQUM7UUFDTCxPQUFPLENBQUMsS0FBSyxLQUFLLFNBQVM7WUFDekIsQ0FBQyxHQUFHLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLGFBQUssQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN4RSxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFRCxNQUFNLENBQTJDLElBQVE7UUFDdkQsT0FBTyxlQUFPLENBQUMsV0FBVyxDQUFDLElBQUksYUFBSixJQUFJLGNBQUosSUFBSSxHQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxXQUFXLENBQTJDLE1BQVM7O1FBQzdELE1BQU0sT0FBTyxHQUFHLGlCQUFpQixFQUFFLENBQUM7UUFDcEMsT0FBTyxDQUFDLFFBQVEsR0FBRyxNQUFBLE1BQU0sQ0FBQyxRQUFRLG1DQUFJLElBQUksVUFBVSxFQUFFLENBQUM7UUFDdkQsT0FBTyxDQUFDLElBQUksR0FBRyxNQUFBLE1BQU0sQ0FBQyxJQUFJLG1DQUFJLElBQUksVUFBVSxFQUFFLENBQUM7UUFDL0MsT0FBTyxDQUFDLEtBQUs7WUFDWCxNQUFNLENBQUMsS0FBSyxLQUFLLFNBQVMsSUFBSSxNQUFNLENBQUMsS0FBSyxLQUFLLElBQUk7Z0JBQ2pELENBQUMsQ0FBQyxhQUFLLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7Z0JBQ2pDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDaEIsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztDQUNGLENBQUM7QUFLRixJQUFJLGlCQUFpQixHQUFRLENBQUMsR0FBRyxFQUFFO0lBQ2pDLElBQUksT0FBTyxVQUFVLEtBQUssV0FBVyxFQUFFO1FBQ3JDLE9BQU8sVUFBVSxDQUFDO0tBQ25CO0lBQ0QsSUFBSSxPQUFPLElBQUksS0FBSyxXQUFXLEVBQUU7UUFDL0IsT0FBTyxJQUFJLENBQUM7S0FDYjtJQUNELElBQUksT0FBTyxNQUFNLEtBQUssV0FBVyxFQUFFO1FBQ2pDLE9BQU8sTUFBTSxDQUFDO0tBQ2Y7SUFDRCxJQUFJLE9BQU8sTUFBTSxLQUFLLFdBQVcsRUFBRTtRQUNqQyxPQUFPLE1BQU0sQ0FBQztLQUNmO0lBQ0QsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN6QyxDQUFDLENBQUMsRUFBRSxDQUFDO0FBRUwsU0FBUyxlQUFlLENBQUMsR0FBVztJQUNsQyxJQUFJLGlCQUFpQixDQUFDLE1BQU0sRUFBRTtRQUM1QixPQUFPLFVBQVUsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQztLQUN0RTtTQUFNO1FBQ0wsTUFBTSxHQUFHLEdBQUcsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3hDLE1BQU0sR0FBRyxHQUFHLElBQUksVUFBVSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN2QyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsRUFBRTtZQUNuQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUM1QjtRQUNELE9BQU8sR0FBRyxDQUFDO0tBQ1o7QUFDSCxDQUFDO0FBRUQsU0FBUyxlQUFlLENBQUMsR0FBZTtJQUN0QyxJQUFJLGlCQUFpQixDQUFDLE1BQU0sRUFBRTtRQUM1QixPQUFPLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0tBQzlEO1NBQU07UUFDTCxNQUFNLEdBQUcsR0FBYSxFQUFFLENBQUM7UUFDekIsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ25CLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ3RDLENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0tBQzdDO0FBQ0gsQ0FBQztBQTRCRCxTQUFTLFdBQVcsQ0FBQyxJQUFVO0lBQzdCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsR0FBRyxJQUFLLENBQUM7SUFDdkMsTUFBTSxLQUFLLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEdBQUcsSUFBSyxDQUFDLEdBQUcsT0FBUyxDQUFDO0lBQ25ELE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUM7QUFDNUIsQ0FBQztBQUVELFNBQVMsYUFBYSxDQUFDLENBQVk7SUFDakMsSUFBSSxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUssQ0FBQztJQUN0QyxNQUFNLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQyxHQUFHLE9BQVMsQ0FBQztJQUNyQyxPQUFPLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQzFCLENBQUM7QUFFRCxTQUFTLGlCQUFpQixDQUFDLENBQU07SUFDL0IsSUFBSSxDQUFDLFlBQVksSUFBSSxFQUFFO1FBQ3JCLE9BQU8sQ0FBQyxDQUFDO0tBQ1Y7U0FBTSxJQUFJLE9BQU8sQ0FBQyxLQUFLLFFBQVEsRUFBRTtRQUNoQyxPQUFPLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQ3BCO1NBQU07UUFDTCxPQUFPLGFBQWEsQ0FBQyxxQkFBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQzdDO0FBQ0gsQ0FBQztBQUVELFNBQVMsWUFBWSxDQUFDLElBQVU7SUFDOUIsSUFBSSxJQUFJLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFO1FBQ3BDLE1BQU0sSUFBSSxpQkFBaUIsQ0FBQyxLQUFLLENBQy9CLDhDQUE4QyxDQUMvQyxDQUFDO0tBQ0g7SUFDRCxPQUFPLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztBQUN6QixDQUFDO0FBRUQsSUFBSSxpQkFBRyxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssY0FBSSxFQUFFO0lBQzFCLGlCQUFHLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxjQUFXLENBQUM7SUFDNUIsaUJBQUcsQ0FBQyxTQUFTLEVBQUUsQ0FBQztDQUNqQjtBQUVELFNBQVMsS0FBSyxDQUFDLEtBQVU7SUFDdkIsT0FBTyxLQUFLLEtBQUssSUFBSSxJQUFJLEtBQUssS0FBSyxTQUFTLENBQUM7QUFDL0MsQ0FBQyJ9