@grind-t/tinkoff-invest-api 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs ADDED
@@ -0,0 +1,3114 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/index.ts
21
+ var index_exports = {};
22
+ __export(index_exports, {
23
+ TInvestApi: () => TInvestApi,
24
+ T_INVEST_PROD_URL: () => T_INVEST_PROD_URL,
25
+ T_INVEST_SANDBOX_URL: () => T_INVEST_SANDBOX_URL
26
+ });
27
+ module.exports = __toCommonJS(index_exports);
28
+
29
+ // src/client/environments.ts
30
+ var T_INVEST_PROD_URL = "https://invest-public-api.tbank.ru:443";
31
+ var T_INVEST_SANDBOX_URL = "https://sandbox-invest-public-api.tbank.ru:443";
32
+
33
+ // src/client/index.ts
34
+ var import_connect = require("@connectrpc/connect");
35
+ var import_connect_node = require("@connectrpc/connect-node");
36
+
37
+ // node_modules/@bufbuild/protobuf/dist/esm/reflect/names.js
38
+ function protoCamelCase(snakeCase) {
39
+ let capNext = false;
40
+ const b = [];
41
+ for (let i = 0; i < snakeCase.length; i++) {
42
+ let c = snakeCase.charAt(i);
43
+ switch (c) {
44
+ case "_":
45
+ capNext = true;
46
+ break;
47
+ case "0":
48
+ case "1":
49
+ case "2":
50
+ case "3":
51
+ case "4":
52
+ case "5":
53
+ case "6":
54
+ case "7":
55
+ case "8":
56
+ case "9":
57
+ b.push(c);
58
+ capNext = false;
59
+ break;
60
+ default:
61
+ if (capNext) {
62
+ capNext = false;
63
+ c = c.toUpperCase();
64
+ }
65
+ b.push(c);
66
+ break;
67
+ }
68
+ }
69
+ return b.join("");
70
+ }
71
+ var reservedObjectProperties = /* @__PURE__ */ new Set([
72
+ // names reserved by JavaScript
73
+ "constructor",
74
+ "toString",
75
+ "toJSON",
76
+ "valueOf"
77
+ ]);
78
+ function safeObjectProperty(name) {
79
+ return reservedObjectProperties.has(name) ? name + "$" : name;
80
+ }
81
+
82
+ // node_modules/@bufbuild/protobuf/dist/esm/wire/varint.js
83
+ function varint64read() {
84
+ let lowBits = 0;
85
+ let highBits = 0;
86
+ for (let shift = 0; shift < 28; shift += 7) {
87
+ let b = this.buf[this.pos++];
88
+ lowBits |= (b & 127) << shift;
89
+ if ((b & 128) == 0) {
90
+ this.assertBounds();
91
+ return [lowBits, highBits];
92
+ }
93
+ }
94
+ let middleByte = this.buf[this.pos++];
95
+ lowBits |= (middleByte & 15) << 28;
96
+ highBits = (middleByte & 112) >> 4;
97
+ if ((middleByte & 128) == 0) {
98
+ this.assertBounds();
99
+ return [lowBits, highBits];
100
+ }
101
+ for (let shift = 3; shift <= 31; shift += 7) {
102
+ let b = this.buf[this.pos++];
103
+ highBits |= (b & 127) << shift;
104
+ if ((b & 128) == 0) {
105
+ this.assertBounds();
106
+ return [lowBits, highBits];
107
+ }
108
+ }
109
+ throw new Error("invalid varint");
110
+ }
111
+ var TWO_PWR_32_DBL = 4294967296;
112
+ function int64FromString(dec) {
113
+ const minus = dec[0] === "-";
114
+ if (minus) {
115
+ dec = dec.slice(1);
116
+ }
117
+ const base = 1e6;
118
+ let lowBits = 0;
119
+ let highBits = 0;
120
+ function add1e6digit(begin, end) {
121
+ const digit1e6 = Number(dec.slice(begin, end));
122
+ highBits *= base;
123
+ lowBits = lowBits * base + digit1e6;
124
+ if (lowBits >= TWO_PWR_32_DBL) {
125
+ highBits = highBits + (lowBits / TWO_PWR_32_DBL | 0);
126
+ lowBits = lowBits % TWO_PWR_32_DBL;
127
+ }
128
+ }
129
+ add1e6digit(-24, -18);
130
+ add1e6digit(-18, -12);
131
+ add1e6digit(-12, -6);
132
+ add1e6digit(-6);
133
+ return minus ? negate(lowBits, highBits) : newBits(lowBits, highBits);
134
+ }
135
+ function int64ToString(lo, hi) {
136
+ let bits = newBits(lo, hi);
137
+ const negative = bits.hi & 2147483648;
138
+ if (negative) {
139
+ bits = negate(bits.lo, bits.hi);
140
+ }
141
+ const result = uInt64ToString(bits.lo, bits.hi);
142
+ return negative ? "-" + result : result;
143
+ }
144
+ function uInt64ToString(lo, hi) {
145
+ ({ lo, hi } = toUnsigned(lo, hi));
146
+ if (hi <= 2097151) {
147
+ return String(TWO_PWR_32_DBL * hi + lo);
148
+ }
149
+ const low = lo & 16777215;
150
+ const mid = (lo >>> 24 | hi << 8) & 16777215;
151
+ const high = hi >> 16 & 65535;
152
+ let digitA = low + mid * 6777216 + high * 6710656;
153
+ let digitB = mid + high * 8147497;
154
+ let digitC = high * 2;
155
+ const base = 1e7;
156
+ if (digitA >= base) {
157
+ digitB += Math.floor(digitA / base);
158
+ digitA %= base;
159
+ }
160
+ if (digitB >= base) {
161
+ digitC += Math.floor(digitB / base);
162
+ digitB %= base;
163
+ }
164
+ return digitC.toString() + decimalFrom1e7WithLeadingZeros(digitB) + decimalFrom1e7WithLeadingZeros(digitA);
165
+ }
166
+ function toUnsigned(lo, hi) {
167
+ return { lo: lo >>> 0, hi: hi >>> 0 };
168
+ }
169
+ function newBits(lo, hi) {
170
+ return { lo: lo | 0, hi: hi | 0 };
171
+ }
172
+ function negate(lowBits, highBits) {
173
+ highBits = ~highBits;
174
+ if (lowBits) {
175
+ lowBits = ~lowBits + 1;
176
+ } else {
177
+ highBits += 1;
178
+ }
179
+ return newBits(lowBits, highBits);
180
+ }
181
+ var decimalFrom1e7WithLeadingZeros = (digit1e7) => {
182
+ const partial = String(digit1e7);
183
+ return "0000000".slice(partial.length) + partial;
184
+ };
185
+ function varint32write(value, bytes) {
186
+ if (value >= 0) {
187
+ while (value > 127) {
188
+ bytes.push(value & 127 | 128);
189
+ value = value >>> 7;
190
+ }
191
+ bytes.push(value);
192
+ } else {
193
+ for (let i = 0; i < 9; i++) {
194
+ bytes.push(value & 127 | 128);
195
+ value = value >> 7;
196
+ }
197
+ bytes.push(1);
198
+ }
199
+ }
200
+ function varint32read() {
201
+ let b = this.buf[this.pos++];
202
+ let result = b & 127;
203
+ if ((b & 128) == 0) {
204
+ this.assertBounds();
205
+ return result;
206
+ }
207
+ b = this.buf[this.pos++];
208
+ result |= (b & 127) << 7;
209
+ if ((b & 128) == 0) {
210
+ this.assertBounds();
211
+ return result;
212
+ }
213
+ b = this.buf[this.pos++];
214
+ result |= (b & 127) << 14;
215
+ if ((b & 128) == 0) {
216
+ this.assertBounds();
217
+ return result;
218
+ }
219
+ b = this.buf[this.pos++];
220
+ result |= (b & 127) << 21;
221
+ if ((b & 128) == 0) {
222
+ this.assertBounds();
223
+ return result;
224
+ }
225
+ b = this.buf[this.pos++];
226
+ result |= (b & 15) << 28;
227
+ for (let readBytes = 5; (b & 128) !== 0 && readBytes < 10; readBytes++)
228
+ b = this.buf[this.pos++];
229
+ if ((b & 128) != 0)
230
+ throw new Error("invalid varint");
231
+ this.assertBounds();
232
+ return result >>> 0;
233
+ }
234
+
235
+ // node_modules/@bufbuild/protobuf/dist/esm/proto-int64.js
236
+ var protoInt64 = /* @__PURE__ */ makeInt64Support();
237
+ function makeInt64Support() {
238
+ const dv = new DataView(new ArrayBuffer(8));
239
+ const ok = typeof BigInt === "function" && typeof dv.getBigInt64 === "function" && typeof dv.getBigUint64 === "function" && typeof dv.setBigInt64 === "function" && typeof dv.setBigUint64 === "function" && (!!globalThis.Deno || typeof process != "object" || typeof process.env != "object" || process.env.BUF_BIGINT_DISABLE !== "1");
240
+ if (ok) {
241
+ const MIN = BigInt("-9223372036854775808");
242
+ const MAX = BigInt("9223372036854775807");
243
+ const UMIN = BigInt("0");
244
+ const UMAX = BigInt("18446744073709551615");
245
+ return {
246
+ zero: BigInt(0),
247
+ supported: true,
248
+ parse(value) {
249
+ const bi = typeof value == "bigint" ? value : BigInt(value);
250
+ if (bi > MAX || bi < MIN) {
251
+ throw new Error(`invalid int64: ${value}`);
252
+ }
253
+ return bi;
254
+ },
255
+ uParse(value) {
256
+ const bi = typeof value == "bigint" ? value : BigInt(value);
257
+ if (bi > UMAX || bi < UMIN) {
258
+ throw new Error(`invalid uint64: ${value}`);
259
+ }
260
+ return bi;
261
+ },
262
+ enc(value) {
263
+ dv.setBigInt64(0, this.parse(value), true);
264
+ return {
265
+ lo: dv.getInt32(0, true),
266
+ hi: dv.getInt32(4, true)
267
+ };
268
+ },
269
+ uEnc(value) {
270
+ dv.setBigInt64(0, this.uParse(value), true);
271
+ return {
272
+ lo: dv.getInt32(0, true),
273
+ hi: dv.getInt32(4, true)
274
+ };
275
+ },
276
+ dec(lo, hi) {
277
+ dv.setInt32(0, lo, true);
278
+ dv.setInt32(4, hi, true);
279
+ return dv.getBigInt64(0, true);
280
+ },
281
+ uDec(lo, hi) {
282
+ dv.setInt32(0, lo, true);
283
+ dv.setInt32(4, hi, true);
284
+ return dv.getBigUint64(0, true);
285
+ }
286
+ };
287
+ }
288
+ return {
289
+ zero: "0",
290
+ supported: false,
291
+ parse(value) {
292
+ if (typeof value != "string") {
293
+ value = value.toString();
294
+ }
295
+ assertInt64String(value);
296
+ return value;
297
+ },
298
+ uParse(value) {
299
+ if (typeof value != "string") {
300
+ value = value.toString();
301
+ }
302
+ assertUInt64String(value);
303
+ return value;
304
+ },
305
+ enc(value) {
306
+ if (typeof value != "string") {
307
+ value = value.toString();
308
+ }
309
+ assertInt64String(value);
310
+ return int64FromString(value);
311
+ },
312
+ uEnc(value) {
313
+ if (typeof value != "string") {
314
+ value = value.toString();
315
+ }
316
+ assertUInt64String(value);
317
+ return int64FromString(value);
318
+ },
319
+ dec(lo, hi) {
320
+ return int64ToString(lo, hi);
321
+ },
322
+ uDec(lo, hi) {
323
+ return uInt64ToString(lo, hi);
324
+ }
325
+ };
326
+ }
327
+ function assertInt64String(value) {
328
+ if (!/^-?[0-9]+$/.test(value)) {
329
+ throw new Error("invalid int64: " + value);
330
+ }
331
+ }
332
+ function assertUInt64String(value) {
333
+ if (!/^[0-9]+$/.test(value)) {
334
+ throw new Error("invalid uint64: " + value);
335
+ }
336
+ }
337
+
338
+ // node_modules/@bufbuild/protobuf/dist/esm/descriptors.js
339
+ var ScalarType;
340
+ (function(ScalarType2) {
341
+ ScalarType2[ScalarType2["DOUBLE"] = 1] = "DOUBLE";
342
+ ScalarType2[ScalarType2["FLOAT"] = 2] = "FLOAT";
343
+ ScalarType2[ScalarType2["INT64"] = 3] = "INT64";
344
+ ScalarType2[ScalarType2["UINT64"] = 4] = "UINT64";
345
+ ScalarType2[ScalarType2["INT32"] = 5] = "INT32";
346
+ ScalarType2[ScalarType2["FIXED64"] = 6] = "FIXED64";
347
+ ScalarType2[ScalarType2["FIXED32"] = 7] = "FIXED32";
348
+ ScalarType2[ScalarType2["BOOL"] = 8] = "BOOL";
349
+ ScalarType2[ScalarType2["STRING"] = 9] = "STRING";
350
+ ScalarType2[ScalarType2["BYTES"] = 12] = "BYTES";
351
+ ScalarType2[ScalarType2["UINT32"] = 13] = "UINT32";
352
+ ScalarType2[ScalarType2["SFIXED32"] = 15] = "SFIXED32";
353
+ ScalarType2[ScalarType2["SFIXED64"] = 16] = "SFIXED64";
354
+ ScalarType2[ScalarType2["SINT32"] = 17] = "SINT32";
355
+ ScalarType2[ScalarType2["SINT64"] = 18] = "SINT64";
356
+ })(ScalarType || (ScalarType = {}));
357
+
358
+ // node_modules/@bufbuild/protobuf/dist/esm/reflect/scalar.js
359
+ function scalarZeroValue(type, longAsString) {
360
+ switch (type) {
361
+ case ScalarType.STRING:
362
+ return "";
363
+ case ScalarType.BOOL:
364
+ return false;
365
+ case ScalarType.DOUBLE:
366
+ case ScalarType.FLOAT:
367
+ return 0;
368
+ case ScalarType.INT64:
369
+ case ScalarType.UINT64:
370
+ case ScalarType.SFIXED64:
371
+ case ScalarType.FIXED64:
372
+ case ScalarType.SINT64:
373
+ return longAsString ? "0" : protoInt64.zero;
374
+ case ScalarType.BYTES:
375
+ return new Uint8Array(0);
376
+ default:
377
+ return 0;
378
+ }
379
+ }
380
+ function isScalarZeroValue(type, value) {
381
+ switch (type) {
382
+ case ScalarType.BOOL:
383
+ return value === false;
384
+ case ScalarType.STRING:
385
+ return value === "";
386
+ case ScalarType.BYTES:
387
+ return value instanceof Uint8Array && !value.byteLength;
388
+ default:
389
+ return value == 0;
390
+ }
391
+ }
392
+
393
+ // node_modules/@bufbuild/protobuf/dist/esm/reflect/unsafe.js
394
+ var IMPLICIT = 2;
395
+ var unsafeLocal = /* @__PURE__ */ Symbol.for("reflect unsafe local");
396
+ function unsafeOneofCase(target, oneof) {
397
+ const c = target[oneof.localName].case;
398
+ if (c === void 0) {
399
+ return c;
400
+ }
401
+ return oneof.fields.find((f) => f.localName === c);
402
+ }
403
+ function unsafeIsSet(target, field) {
404
+ const name = field.localName;
405
+ if (field.oneof) {
406
+ return target[field.oneof.localName].case === name;
407
+ }
408
+ if (field.presence != IMPLICIT) {
409
+ return target[name] !== void 0 && Object.prototype.hasOwnProperty.call(target, name);
410
+ }
411
+ switch (field.fieldKind) {
412
+ case "list":
413
+ return target[name].length > 0;
414
+ case "map":
415
+ return Object.keys(target[name]).length > 0;
416
+ case "scalar":
417
+ return !isScalarZeroValue(field.scalar, target[name]);
418
+ case "enum":
419
+ return target[name] !== field.enum.values[0].number;
420
+ }
421
+ throw new Error("message field with implicit presence");
422
+ }
423
+ function unsafeIsSetExplicit(target, localName) {
424
+ return Object.prototype.hasOwnProperty.call(target, localName) && target[localName] !== void 0;
425
+ }
426
+ function unsafeGet(target, field) {
427
+ if (field.oneof) {
428
+ const oneof = target[field.oneof.localName];
429
+ if (oneof.case === field.localName) {
430
+ return oneof.value;
431
+ }
432
+ return void 0;
433
+ }
434
+ return target[field.localName];
435
+ }
436
+ function unsafeSet(target, field, value) {
437
+ if (field.oneof) {
438
+ target[field.oneof.localName] = {
439
+ case: field.localName,
440
+ value
441
+ };
442
+ } else {
443
+ target[field.localName] = value;
444
+ }
445
+ }
446
+ function unsafeClear(target, field) {
447
+ const name = field.localName;
448
+ if (field.oneof) {
449
+ const oneofLocalName = field.oneof.localName;
450
+ if (target[oneofLocalName].case === name) {
451
+ target[oneofLocalName] = { case: void 0 };
452
+ }
453
+ } else if (field.presence != IMPLICIT) {
454
+ delete target[name];
455
+ } else {
456
+ switch (field.fieldKind) {
457
+ case "map":
458
+ target[name] = {};
459
+ break;
460
+ case "list":
461
+ target[name] = [];
462
+ break;
463
+ case "enum":
464
+ target[name] = field.enum.values[0].number;
465
+ break;
466
+ case "scalar":
467
+ target[name] = scalarZeroValue(field.scalar, field.longAsString);
468
+ break;
469
+ }
470
+ }
471
+ }
472
+
473
+ // node_modules/@bufbuild/protobuf/dist/esm/codegenv2/restore-json-names.js
474
+ function restoreJsonNames(message) {
475
+ for (const f of message.field) {
476
+ if (!unsafeIsSetExplicit(f, "jsonName")) {
477
+ f.jsonName = protoCamelCase(f.name);
478
+ }
479
+ }
480
+ message.nestedType.forEach(restoreJsonNames);
481
+ }
482
+
483
+ // node_modules/@bufbuild/protobuf/dist/esm/wire/text-format.js
484
+ function parseTextFormatEnumValue(descEnum, value) {
485
+ const enumValue = descEnum.values.find((v) => v.name === value);
486
+ if (!enumValue) {
487
+ throw new Error(`cannot parse ${descEnum} default value: ${value}`);
488
+ }
489
+ return enumValue.number;
490
+ }
491
+ function parseTextFormatScalarValue(type, value) {
492
+ switch (type) {
493
+ case ScalarType.STRING:
494
+ return value;
495
+ case ScalarType.BYTES: {
496
+ const u = unescapeBytesDefaultValue(value);
497
+ if (u === false) {
498
+ throw new Error(`cannot parse ${ScalarType[type]} default value: ${value}`);
499
+ }
500
+ return u;
501
+ }
502
+ case ScalarType.INT64:
503
+ case ScalarType.SFIXED64:
504
+ case ScalarType.SINT64:
505
+ return protoInt64.parse(value);
506
+ case ScalarType.UINT64:
507
+ case ScalarType.FIXED64:
508
+ return protoInt64.uParse(value);
509
+ case ScalarType.DOUBLE:
510
+ case ScalarType.FLOAT:
511
+ switch (value) {
512
+ case "inf":
513
+ return Number.POSITIVE_INFINITY;
514
+ case "-inf":
515
+ return Number.NEGATIVE_INFINITY;
516
+ case "nan":
517
+ return Number.NaN;
518
+ default:
519
+ return parseFloat(value);
520
+ }
521
+ case ScalarType.BOOL:
522
+ return value === "true";
523
+ case ScalarType.INT32:
524
+ case ScalarType.UINT32:
525
+ case ScalarType.SINT32:
526
+ case ScalarType.FIXED32:
527
+ case ScalarType.SFIXED32:
528
+ return parseInt(value, 10);
529
+ }
530
+ }
531
+ function unescapeBytesDefaultValue(str) {
532
+ const b = [];
533
+ const input = {
534
+ tail: str,
535
+ c: "",
536
+ next() {
537
+ if (this.tail.length == 0) {
538
+ return false;
539
+ }
540
+ this.c = this.tail[0];
541
+ this.tail = this.tail.substring(1);
542
+ return true;
543
+ },
544
+ take(n) {
545
+ if (this.tail.length >= n) {
546
+ const r = this.tail.substring(0, n);
547
+ this.tail = this.tail.substring(n);
548
+ return r;
549
+ }
550
+ return false;
551
+ }
552
+ };
553
+ while (input.next()) {
554
+ switch (input.c) {
555
+ case "\\":
556
+ if (input.next()) {
557
+ switch (input.c) {
558
+ case "\\":
559
+ b.push(input.c.charCodeAt(0));
560
+ break;
561
+ case "b":
562
+ b.push(8);
563
+ break;
564
+ case "f":
565
+ b.push(12);
566
+ break;
567
+ case "n":
568
+ b.push(10);
569
+ break;
570
+ case "r":
571
+ b.push(13);
572
+ break;
573
+ case "t":
574
+ b.push(9);
575
+ break;
576
+ case "v":
577
+ b.push(11);
578
+ break;
579
+ case "0":
580
+ case "1":
581
+ case "2":
582
+ case "3":
583
+ case "4":
584
+ case "5":
585
+ case "6":
586
+ case "7": {
587
+ const s = input.c;
588
+ const t = input.take(2);
589
+ if (t === false) {
590
+ return false;
591
+ }
592
+ const n = parseInt(s + t, 8);
593
+ if (Number.isNaN(n)) {
594
+ return false;
595
+ }
596
+ b.push(n);
597
+ break;
598
+ }
599
+ case "x": {
600
+ const s = input.c;
601
+ const t = input.take(2);
602
+ if (t === false) {
603
+ return false;
604
+ }
605
+ const n = parseInt(s + t, 16);
606
+ if (Number.isNaN(n)) {
607
+ return false;
608
+ }
609
+ b.push(n);
610
+ break;
611
+ }
612
+ case "u": {
613
+ const s = input.c;
614
+ const t = input.take(4);
615
+ if (t === false) {
616
+ return false;
617
+ }
618
+ const n = parseInt(s + t, 16);
619
+ if (Number.isNaN(n)) {
620
+ return false;
621
+ }
622
+ const chunk = new Uint8Array(4);
623
+ const view = new DataView(chunk.buffer);
624
+ view.setInt32(0, n, true);
625
+ b.push(chunk[0], chunk[1], chunk[2], chunk[3]);
626
+ break;
627
+ }
628
+ case "U": {
629
+ const s = input.c;
630
+ const t = input.take(8);
631
+ if (t === false) {
632
+ return false;
633
+ }
634
+ const tc = protoInt64.uEnc(s + t);
635
+ const chunk = new Uint8Array(8);
636
+ const view = new DataView(chunk.buffer);
637
+ view.setInt32(0, tc.lo, true);
638
+ view.setInt32(4, tc.hi, true);
639
+ b.push(chunk[0], chunk[1], chunk[2], chunk[3], chunk[4], chunk[5], chunk[6], chunk[7]);
640
+ break;
641
+ }
642
+ }
643
+ }
644
+ break;
645
+ default:
646
+ b.push(input.c.charCodeAt(0));
647
+ }
648
+ }
649
+ return new Uint8Array(b);
650
+ }
651
+
652
+ // node_modules/@bufbuild/protobuf/dist/esm/reflect/nested-types.js
653
+ function* nestedTypes(desc) {
654
+ switch (desc.kind) {
655
+ case "file":
656
+ for (const message of desc.messages) {
657
+ yield message;
658
+ yield* nestedTypes(message);
659
+ }
660
+ yield* desc.enums;
661
+ yield* desc.services;
662
+ yield* desc.extensions;
663
+ break;
664
+ case "message":
665
+ for (const message of desc.nestedMessages) {
666
+ yield message;
667
+ yield* nestedTypes(message);
668
+ }
669
+ yield* desc.nestedEnums;
670
+ yield* desc.nestedExtensions;
671
+ break;
672
+ }
673
+ }
674
+
675
+ // node_modules/@bufbuild/protobuf/dist/esm/registry.js
676
+ function createFileRegistry(...args) {
677
+ const registry = createBaseRegistry();
678
+ if (!args.length) {
679
+ return registry;
680
+ }
681
+ if ("$typeName" in args[0] && args[0].$typeName == "google.protobuf.FileDescriptorSet") {
682
+ for (const file of args[0].file) {
683
+ addFile(file, registry);
684
+ }
685
+ return registry;
686
+ }
687
+ if ("$typeName" in args[0]) {
688
+ let recurseDeps2 = function(file) {
689
+ const deps = [];
690
+ for (const protoFileName of file.dependency) {
691
+ if (registry.getFile(protoFileName) != void 0) {
692
+ continue;
693
+ }
694
+ if (seen.has(protoFileName)) {
695
+ continue;
696
+ }
697
+ const dep = resolve(protoFileName);
698
+ if (!dep) {
699
+ throw new Error(`Unable to resolve ${protoFileName}, imported by ${file.name}`);
700
+ }
701
+ if ("kind" in dep) {
702
+ registry.addFile(dep, false, true);
703
+ } else {
704
+ seen.add(dep.name);
705
+ deps.push(dep);
706
+ }
707
+ }
708
+ return deps.concat(...deps.map(recurseDeps2));
709
+ };
710
+ var recurseDeps = recurseDeps2;
711
+ const input = args[0];
712
+ const resolve = args[1];
713
+ const seen = /* @__PURE__ */ new Set();
714
+ for (const file of [input, ...recurseDeps2(input)].reverse()) {
715
+ addFile(file, registry);
716
+ }
717
+ } else {
718
+ for (const fileReg of args) {
719
+ for (const file of fileReg.files) {
720
+ registry.addFile(file);
721
+ }
722
+ }
723
+ }
724
+ return registry;
725
+ }
726
+ function createBaseRegistry() {
727
+ const types = /* @__PURE__ */ new Map();
728
+ const extendees = /* @__PURE__ */ new Map();
729
+ const files = /* @__PURE__ */ new Map();
730
+ return {
731
+ kind: "registry",
732
+ types,
733
+ extendees,
734
+ [Symbol.iterator]() {
735
+ return types.values();
736
+ },
737
+ get files() {
738
+ return files.values();
739
+ },
740
+ addFile(file, skipTypes, withDeps) {
741
+ files.set(file.proto.name, file);
742
+ if (!skipTypes) {
743
+ for (const type of nestedTypes(file)) {
744
+ this.add(type);
745
+ }
746
+ }
747
+ if (withDeps) {
748
+ for (const f of file.dependencies) {
749
+ this.addFile(f, skipTypes, withDeps);
750
+ }
751
+ }
752
+ },
753
+ add(desc) {
754
+ if (desc.kind == "extension") {
755
+ let numberToExt = extendees.get(desc.extendee.typeName);
756
+ if (!numberToExt) {
757
+ extendees.set(
758
+ desc.extendee.typeName,
759
+ // biome-ignore lint/suspicious/noAssignInExpressions: no
760
+ numberToExt = /* @__PURE__ */ new Map()
761
+ );
762
+ }
763
+ numberToExt.set(desc.number, desc);
764
+ }
765
+ types.set(desc.typeName, desc);
766
+ },
767
+ get(typeName) {
768
+ return types.get(typeName);
769
+ },
770
+ getFile(fileName) {
771
+ return files.get(fileName);
772
+ },
773
+ getMessage(typeName) {
774
+ const t = types.get(typeName);
775
+ return (t === null || t === void 0 ? void 0 : t.kind) == "message" ? t : void 0;
776
+ },
777
+ getEnum(typeName) {
778
+ const t = types.get(typeName);
779
+ return (t === null || t === void 0 ? void 0 : t.kind) == "enum" ? t : void 0;
780
+ },
781
+ getExtension(typeName) {
782
+ const t = types.get(typeName);
783
+ return (t === null || t === void 0 ? void 0 : t.kind) == "extension" ? t : void 0;
784
+ },
785
+ getExtensionFor(extendee, no) {
786
+ var _a;
787
+ return (_a = extendees.get(extendee.typeName)) === null || _a === void 0 ? void 0 : _a.get(no);
788
+ },
789
+ getService(typeName) {
790
+ const t = types.get(typeName);
791
+ return (t === null || t === void 0 ? void 0 : t.kind) == "service" ? t : void 0;
792
+ }
793
+ };
794
+ }
795
+ var EDITION_PROTO2 = 998;
796
+ var EDITION_PROTO3 = 999;
797
+ var TYPE_STRING = 9;
798
+ var TYPE_GROUP = 10;
799
+ var TYPE_MESSAGE = 11;
800
+ var TYPE_BYTES = 12;
801
+ var TYPE_ENUM = 14;
802
+ var LABEL_REPEATED = 3;
803
+ var LABEL_REQUIRED = 2;
804
+ var JS_STRING = 1;
805
+ var IDEMPOTENCY_UNKNOWN = 0;
806
+ var EXPLICIT = 1;
807
+ var IMPLICIT2 = 2;
808
+ var LEGACY_REQUIRED = 3;
809
+ var PACKED = 1;
810
+ var DELIMITED = 2;
811
+ var OPEN = 1;
812
+ var featureDefaults = {
813
+ // EDITION_PROTO2
814
+ 998: {
815
+ fieldPresence: 1,
816
+ // EXPLICIT,
817
+ enumType: 2,
818
+ // CLOSED,
819
+ repeatedFieldEncoding: 2,
820
+ // EXPANDED,
821
+ utf8Validation: 3,
822
+ // NONE,
823
+ messageEncoding: 1,
824
+ // LENGTH_PREFIXED,
825
+ jsonFormat: 2,
826
+ // LEGACY_BEST_EFFORT,
827
+ enforceNamingStyle: 2,
828
+ // STYLE_LEGACY,
829
+ defaultSymbolVisibility: 1
830
+ // EXPORT_ALL,
831
+ },
832
+ // EDITION_PROTO3
833
+ 999: {
834
+ fieldPresence: 2,
835
+ // IMPLICIT,
836
+ enumType: 1,
837
+ // OPEN,
838
+ repeatedFieldEncoding: 1,
839
+ // PACKED,
840
+ utf8Validation: 2,
841
+ // VERIFY,
842
+ messageEncoding: 1,
843
+ // LENGTH_PREFIXED,
844
+ jsonFormat: 1,
845
+ // ALLOW,
846
+ enforceNamingStyle: 2,
847
+ // STYLE_LEGACY,
848
+ defaultSymbolVisibility: 1
849
+ // EXPORT_ALL,
850
+ },
851
+ // EDITION_2023
852
+ 1e3: {
853
+ fieldPresence: 1,
854
+ // EXPLICIT,
855
+ enumType: 1,
856
+ // OPEN,
857
+ repeatedFieldEncoding: 1,
858
+ // PACKED,
859
+ utf8Validation: 2,
860
+ // VERIFY,
861
+ messageEncoding: 1,
862
+ // LENGTH_PREFIXED,
863
+ jsonFormat: 1,
864
+ // ALLOW,
865
+ enforceNamingStyle: 2,
866
+ // STYLE_LEGACY,
867
+ defaultSymbolVisibility: 1
868
+ // EXPORT_ALL,
869
+ },
870
+ // EDITION_2024
871
+ 1001: {
872
+ fieldPresence: 1,
873
+ // EXPLICIT,
874
+ enumType: 1,
875
+ // OPEN,
876
+ repeatedFieldEncoding: 1,
877
+ // PACKED,
878
+ utf8Validation: 2,
879
+ // VERIFY,
880
+ messageEncoding: 1,
881
+ // LENGTH_PREFIXED,
882
+ jsonFormat: 1,
883
+ // ALLOW,
884
+ enforceNamingStyle: 1,
885
+ // STYLE2024,
886
+ defaultSymbolVisibility: 2
887
+ // EXPORT_TOP_LEVEL,
888
+ }
889
+ };
890
+ function addFile(proto, reg) {
891
+ var _a, _b;
892
+ const file = {
893
+ kind: "file",
894
+ proto,
895
+ deprecated: (_b = (_a = proto.options) === null || _a === void 0 ? void 0 : _a.deprecated) !== null && _b !== void 0 ? _b : false,
896
+ edition: getFileEdition(proto),
897
+ name: proto.name.replace(/\.proto$/, ""),
898
+ dependencies: findFileDependencies(proto, reg),
899
+ enums: [],
900
+ messages: [],
901
+ extensions: [],
902
+ services: [],
903
+ toString() {
904
+ return `file ${proto.name}`;
905
+ }
906
+ };
907
+ const mapEntriesStore = /* @__PURE__ */ new Map();
908
+ const mapEntries = {
909
+ get(typeName) {
910
+ return mapEntriesStore.get(typeName);
911
+ },
912
+ add(desc) {
913
+ var _a2;
914
+ assert(((_a2 = desc.proto.options) === null || _a2 === void 0 ? void 0 : _a2.mapEntry) === true);
915
+ mapEntriesStore.set(desc.typeName, desc);
916
+ }
917
+ };
918
+ for (const enumProto of proto.enumType) {
919
+ addEnum(enumProto, file, void 0, reg);
920
+ }
921
+ for (const messageProto of proto.messageType) {
922
+ addMessage(messageProto, file, void 0, reg, mapEntries);
923
+ }
924
+ for (const serviceProto of proto.service) {
925
+ addService(serviceProto, file, reg);
926
+ }
927
+ addExtensions(file, reg);
928
+ for (const mapEntry of mapEntriesStore.values()) {
929
+ addFields(mapEntry, reg, mapEntries);
930
+ }
931
+ for (const message of file.messages) {
932
+ addFields(message, reg, mapEntries);
933
+ addExtensions(message, reg);
934
+ }
935
+ reg.addFile(file, true);
936
+ }
937
+ function addExtensions(desc, reg) {
938
+ switch (desc.kind) {
939
+ case "file":
940
+ for (const proto of desc.proto.extension) {
941
+ const ext = newField(proto, desc, reg);
942
+ desc.extensions.push(ext);
943
+ reg.add(ext);
944
+ }
945
+ break;
946
+ case "message":
947
+ for (const proto of desc.proto.extension) {
948
+ const ext = newField(proto, desc, reg);
949
+ desc.nestedExtensions.push(ext);
950
+ reg.add(ext);
951
+ }
952
+ for (const message of desc.nestedMessages) {
953
+ addExtensions(message, reg);
954
+ }
955
+ break;
956
+ }
957
+ }
958
+ function addFields(message, reg, mapEntries) {
959
+ const allOneofs = message.proto.oneofDecl.map((proto) => newOneof(proto, message));
960
+ const oneofsSeen = /* @__PURE__ */ new Set();
961
+ for (const proto of message.proto.field) {
962
+ const oneof = findOneof(proto, allOneofs);
963
+ const field = newField(proto, message, reg, oneof, mapEntries);
964
+ message.fields.push(field);
965
+ message.field[field.localName] = field;
966
+ if (oneof === void 0) {
967
+ message.members.push(field);
968
+ } else {
969
+ oneof.fields.push(field);
970
+ if (!oneofsSeen.has(oneof)) {
971
+ oneofsSeen.add(oneof);
972
+ message.members.push(oneof);
973
+ }
974
+ }
975
+ }
976
+ for (const oneof of allOneofs.filter((o) => oneofsSeen.has(o))) {
977
+ message.oneofs.push(oneof);
978
+ }
979
+ for (const child of message.nestedMessages) {
980
+ addFields(child, reg, mapEntries);
981
+ }
982
+ }
983
+ function addEnum(proto, file, parent, reg) {
984
+ var _a, _b, _c, _d, _e;
985
+ const sharedPrefix = findEnumSharedPrefix(proto.name, proto.value);
986
+ const desc = {
987
+ kind: "enum",
988
+ proto,
989
+ deprecated: (_b = (_a = proto.options) === null || _a === void 0 ? void 0 : _a.deprecated) !== null && _b !== void 0 ? _b : false,
990
+ file,
991
+ parent,
992
+ open: true,
993
+ name: proto.name,
994
+ typeName: makeTypeName(proto, parent, file),
995
+ value: {},
996
+ values: [],
997
+ sharedPrefix,
998
+ toString() {
999
+ return `enum ${this.typeName}`;
1000
+ }
1001
+ };
1002
+ desc.open = isEnumOpen(desc);
1003
+ reg.add(desc);
1004
+ for (const p of proto.value) {
1005
+ const name = p.name;
1006
+ desc.values.push(
1007
+ // biome-ignore lint/suspicious/noAssignInExpressions: no
1008
+ desc.value[p.number] = {
1009
+ kind: "enum_value",
1010
+ proto: p,
1011
+ deprecated: (_d = (_c = p.options) === null || _c === void 0 ? void 0 : _c.deprecated) !== null && _d !== void 0 ? _d : false,
1012
+ parent: desc,
1013
+ name,
1014
+ localName: safeObjectProperty(sharedPrefix == void 0 ? name : name.substring(sharedPrefix.length)),
1015
+ number: p.number,
1016
+ toString() {
1017
+ return `enum value ${desc.typeName}.${name}`;
1018
+ }
1019
+ }
1020
+ );
1021
+ }
1022
+ ((_e = parent === null || parent === void 0 ? void 0 : parent.nestedEnums) !== null && _e !== void 0 ? _e : file.enums).push(desc);
1023
+ }
1024
+ function addMessage(proto, file, parent, reg, mapEntries) {
1025
+ var _a, _b, _c, _d;
1026
+ const desc = {
1027
+ kind: "message",
1028
+ proto,
1029
+ deprecated: (_b = (_a = proto.options) === null || _a === void 0 ? void 0 : _a.deprecated) !== null && _b !== void 0 ? _b : false,
1030
+ file,
1031
+ parent,
1032
+ name: proto.name,
1033
+ typeName: makeTypeName(proto, parent, file),
1034
+ fields: [],
1035
+ field: {},
1036
+ oneofs: [],
1037
+ members: [],
1038
+ nestedEnums: [],
1039
+ nestedMessages: [],
1040
+ nestedExtensions: [],
1041
+ toString() {
1042
+ return `message ${this.typeName}`;
1043
+ }
1044
+ };
1045
+ if (((_c = proto.options) === null || _c === void 0 ? void 0 : _c.mapEntry) === true) {
1046
+ mapEntries.add(desc);
1047
+ } else {
1048
+ ((_d = parent === null || parent === void 0 ? void 0 : parent.nestedMessages) !== null && _d !== void 0 ? _d : file.messages).push(desc);
1049
+ reg.add(desc);
1050
+ }
1051
+ for (const enumProto of proto.enumType) {
1052
+ addEnum(enumProto, file, desc, reg);
1053
+ }
1054
+ for (const messageProto of proto.nestedType) {
1055
+ addMessage(messageProto, file, desc, reg, mapEntries);
1056
+ }
1057
+ }
1058
+ function addService(proto, file, reg) {
1059
+ var _a, _b;
1060
+ const desc = {
1061
+ kind: "service",
1062
+ proto,
1063
+ deprecated: (_b = (_a = proto.options) === null || _a === void 0 ? void 0 : _a.deprecated) !== null && _b !== void 0 ? _b : false,
1064
+ file,
1065
+ name: proto.name,
1066
+ typeName: makeTypeName(proto, void 0, file),
1067
+ methods: [],
1068
+ method: {},
1069
+ toString() {
1070
+ return `service ${this.typeName}`;
1071
+ }
1072
+ };
1073
+ file.services.push(desc);
1074
+ reg.add(desc);
1075
+ for (const methodProto of proto.method) {
1076
+ const method = newMethod(methodProto, desc, reg);
1077
+ desc.methods.push(method);
1078
+ desc.method[method.localName] = method;
1079
+ }
1080
+ }
1081
+ function newMethod(proto, parent, reg) {
1082
+ var _a, _b, _c, _d;
1083
+ let methodKind;
1084
+ if (proto.clientStreaming && proto.serverStreaming) {
1085
+ methodKind = "bidi_streaming";
1086
+ } else if (proto.clientStreaming) {
1087
+ methodKind = "client_streaming";
1088
+ } else if (proto.serverStreaming) {
1089
+ methodKind = "server_streaming";
1090
+ } else {
1091
+ methodKind = "unary";
1092
+ }
1093
+ const input = reg.getMessage(trimLeadingDot(proto.inputType));
1094
+ const output = reg.getMessage(trimLeadingDot(proto.outputType));
1095
+ assert(input, `invalid MethodDescriptorProto: input_type ${proto.inputType} not found`);
1096
+ assert(output, `invalid MethodDescriptorProto: output_type ${proto.inputType} not found`);
1097
+ const name = proto.name;
1098
+ return {
1099
+ kind: "rpc",
1100
+ proto,
1101
+ deprecated: (_b = (_a = proto.options) === null || _a === void 0 ? void 0 : _a.deprecated) !== null && _b !== void 0 ? _b : false,
1102
+ parent,
1103
+ name,
1104
+ localName: safeObjectProperty(name.length ? safeObjectProperty(name[0].toLowerCase() + name.substring(1)) : name),
1105
+ methodKind,
1106
+ input,
1107
+ output,
1108
+ idempotency: (_d = (_c = proto.options) === null || _c === void 0 ? void 0 : _c.idempotencyLevel) !== null && _d !== void 0 ? _d : IDEMPOTENCY_UNKNOWN,
1109
+ toString() {
1110
+ return `rpc ${parent.typeName}.${name}`;
1111
+ }
1112
+ };
1113
+ }
1114
+ function newOneof(proto, parent) {
1115
+ return {
1116
+ kind: "oneof",
1117
+ proto,
1118
+ deprecated: false,
1119
+ parent,
1120
+ fields: [],
1121
+ name: proto.name,
1122
+ localName: safeObjectProperty(protoCamelCase(proto.name)),
1123
+ toString() {
1124
+ return `oneof ${parent.typeName}.${this.name}`;
1125
+ }
1126
+ };
1127
+ }
1128
+ function newField(proto, parentOrFile, reg, oneof, mapEntries) {
1129
+ var _a, _b, _c;
1130
+ const isExtension = mapEntries === void 0;
1131
+ const field = {
1132
+ kind: "field",
1133
+ proto,
1134
+ deprecated: (_b = (_a = proto.options) === null || _a === void 0 ? void 0 : _a.deprecated) !== null && _b !== void 0 ? _b : false,
1135
+ name: proto.name,
1136
+ number: proto.number,
1137
+ scalar: void 0,
1138
+ message: void 0,
1139
+ enum: void 0,
1140
+ presence: getFieldPresence(proto, oneof, isExtension, parentOrFile),
1141
+ listKind: void 0,
1142
+ mapKind: void 0,
1143
+ mapKey: void 0,
1144
+ delimitedEncoding: void 0,
1145
+ packed: void 0,
1146
+ longAsString: false,
1147
+ getDefaultValue: void 0
1148
+ };
1149
+ if (isExtension) {
1150
+ const file = parentOrFile.kind == "file" ? parentOrFile : parentOrFile.file;
1151
+ const parent = parentOrFile.kind == "file" ? void 0 : parentOrFile;
1152
+ const typeName = makeTypeName(proto, parent, file);
1153
+ field.kind = "extension";
1154
+ field.file = file;
1155
+ field.parent = parent;
1156
+ field.oneof = void 0;
1157
+ field.typeName = typeName;
1158
+ field.jsonName = `[${typeName}]`;
1159
+ field.toString = () => `extension ${typeName}`;
1160
+ const extendee = reg.getMessage(trimLeadingDot(proto.extendee));
1161
+ assert(extendee, `invalid FieldDescriptorProto: extendee ${proto.extendee} not found`);
1162
+ field.extendee = extendee;
1163
+ } else {
1164
+ const parent = parentOrFile;
1165
+ assert(parent.kind == "message");
1166
+ field.parent = parent;
1167
+ field.oneof = oneof;
1168
+ field.localName = oneof ? protoCamelCase(proto.name) : safeObjectProperty(protoCamelCase(proto.name));
1169
+ field.jsonName = proto.jsonName;
1170
+ field.toString = () => `field ${parent.typeName}.${proto.name}`;
1171
+ }
1172
+ const label = proto.label;
1173
+ const type = proto.type;
1174
+ const jstype = (_c = proto.options) === null || _c === void 0 ? void 0 : _c.jstype;
1175
+ if (label === LABEL_REPEATED) {
1176
+ const mapEntry = type == TYPE_MESSAGE ? mapEntries === null || mapEntries === void 0 ? void 0 : mapEntries.get(trimLeadingDot(proto.typeName)) : void 0;
1177
+ if (mapEntry) {
1178
+ field.fieldKind = "map";
1179
+ const { key, value } = findMapEntryFields(mapEntry);
1180
+ field.mapKey = key.scalar;
1181
+ field.mapKind = value.fieldKind;
1182
+ field.message = value.message;
1183
+ field.delimitedEncoding = false;
1184
+ field.enum = value.enum;
1185
+ field.scalar = value.scalar;
1186
+ return field;
1187
+ }
1188
+ field.fieldKind = "list";
1189
+ switch (type) {
1190
+ case TYPE_MESSAGE:
1191
+ case TYPE_GROUP:
1192
+ field.listKind = "message";
1193
+ field.message = reg.getMessage(trimLeadingDot(proto.typeName));
1194
+ assert(field.message);
1195
+ field.delimitedEncoding = isDelimitedEncoding(proto, parentOrFile);
1196
+ break;
1197
+ case TYPE_ENUM:
1198
+ field.listKind = "enum";
1199
+ field.enum = reg.getEnum(trimLeadingDot(proto.typeName));
1200
+ assert(field.enum);
1201
+ break;
1202
+ default:
1203
+ field.listKind = "scalar";
1204
+ field.scalar = type;
1205
+ field.longAsString = jstype == JS_STRING;
1206
+ break;
1207
+ }
1208
+ field.packed = isPackedField(proto, parentOrFile);
1209
+ return field;
1210
+ }
1211
+ switch (type) {
1212
+ case TYPE_MESSAGE:
1213
+ case TYPE_GROUP:
1214
+ field.fieldKind = "message";
1215
+ field.message = reg.getMessage(trimLeadingDot(proto.typeName));
1216
+ assert(field.message, `invalid FieldDescriptorProto: type_name ${proto.typeName} not found`);
1217
+ field.delimitedEncoding = isDelimitedEncoding(proto, parentOrFile);
1218
+ field.getDefaultValue = () => void 0;
1219
+ break;
1220
+ case TYPE_ENUM: {
1221
+ const enumeration = reg.getEnum(trimLeadingDot(proto.typeName));
1222
+ assert(enumeration !== void 0, `invalid FieldDescriptorProto: type_name ${proto.typeName} not found`);
1223
+ field.fieldKind = "enum";
1224
+ field.enum = reg.getEnum(trimLeadingDot(proto.typeName));
1225
+ field.getDefaultValue = () => {
1226
+ return unsafeIsSetExplicit(proto, "defaultValue") ? parseTextFormatEnumValue(enumeration, proto.defaultValue) : void 0;
1227
+ };
1228
+ break;
1229
+ }
1230
+ default: {
1231
+ field.fieldKind = "scalar";
1232
+ field.scalar = type;
1233
+ field.longAsString = jstype == JS_STRING;
1234
+ field.getDefaultValue = () => {
1235
+ return unsafeIsSetExplicit(proto, "defaultValue") ? parseTextFormatScalarValue(type, proto.defaultValue) : void 0;
1236
+ };
1237
+ break;
1238
+ }
1239
+ }
1240
+ return field;
1241
+ }
1242
+ function getFileEdition(proto) {
1243
+ switch (proto.syntax) {
1244
+ case "":
1245
+ case "proto2":
1246
+ return EDITION_PROTO2;
1247
+ case "proto3":
1248
+ return EDITION_PROTO3;
1249
+ case "editions":
1250
+ if (proto.edition in featureDefaults) {
1251
+ return proto.edition;
1252
+ }
1253
+ throw new Error(`${proto.name}: unsupported edition`);
1254
+ default:
1255
+ throw new Error(`${proto.name}: unsupported syntax "${proto.syntax}"`);
1256
+ }
1257
+ }
1258
+ function findFileDependencies(proto, reg) {
1259
+ return proto.dependency.map((wantName) => {
1260
+ const dep = reg.getFile(wantName);
1261
+ if (!dep) {
1262
+ throw new Error(`Cannot find ${wantName}, imported by ${proto.name}`);
1263
+ }
1264
+ return dep;
1265
+ });
1266
+ }
1267
+ function findEnumSharedPrefix(enumName, values) {
1268
+ const prefix = camelToSnakeCase(enumName) + "_";
1269
+ for (const value of values) {
1270
+ if (!value.name.toLowerCase().startsWith(prefix)) {
1271
+ return void 0;
1272
+ }
1273
+ const shortName = value.name.substring(prefix.length);
1274
+ if (shortName.length == 0) {
1275
+ return void 0;
1276
+ }
1277
+ if (/^\d/.test(shortName)) {
1278
+ return void 0;
1279
+ }
1280
+ }
1281
+ return prefix;
1282
+ }
1283
+ function camelToSnakeCase(camel) {
1284
+ return (camel.substring(0, 1) + camel.substring(1).replace(/[A-Z]/g, (c) => "_" + c)).toLowerCase();
1285
+ }
1286
+ function makeTypeName(proto, parent, file) {
1287
+ let typeName;
1288
+ if (parent) {
1289
+ typeName = `${parent.typeName}.${proto.name}`;
1290
+ } else if (file.proto.package.length > 0) {
1291
+ typeName = `${file.proto.package}.${proto.name}`;
1292
+ } else {
1293
+ typeName = `${proto.name}`;
1294
+ }
1295
+ return typeName;
1296
+ }
1297
+ function trimLeadingDot(typeName) {
1298
+ return typeName.startsWith(".") ? typeName.substring(1) : typeName;
1299
+ }
1300
+ function findOneof(proto, allOneofs) {
1301
+ if (!unsafeIsSetExplicit(proto, "oneofIndex")) {
1302
+ return void 0;
1303
+ }
1304
+ if (proto.proto3Optional) {
1305
+ return void 0;
1306
+ }
1307
+ const oneof = allOneofs[proto.oneofIndex];
1308
+ assert(oneof, `invalid FieldDescriptorProto: oneof #${proto.oneofIndex} for field #${proto.number} not found`);
1309
+ return oneof;
1310
+ }
1311
+ function getFieldPresence(proto, oneof, isExtension, parent) {
1312
+ if (proto.label == LABEL_REQUIRED) {
1313
+ return LEGACY_REQUIRED;
1314
+ }
1315
+ if (proto.label == LABEL_REPEATED) {
1316
+ return IMPLICIT2;
1317
+ }
1318
+ if (!!oneof || proto.proto3Optional) {
1319
+ return EXPLICIT;
1320
+ }
1321
+ if (isExtension) {
1322
+ return EXPLICIT;
1323
+ }
1324
+ const resolved = resolveFeature("fieldPresence", { proto, parent });
1325
+ if (resolved == IMPLICIT2 && (proto.type == TYPE_MESSAGE || proto.type == TYPE_GROUP)) {
1326
+ return EXPLICIT;
1327
+ }
1328
+ return resolved;
1329
+ }
1330
+ function isPackedField(proto, parent) {
1331
+ if (proto.label != LABEL_REPEATED) {
1332
+ return false;
1333
+ }
1334
+ switch (proto.type) {
1335
+ case TYPE_STRING:
1336
+ case TYPE_BYTES:
1337
+ case TYPE_GROUP:
1338
+ case TYPE_MESSAGE:
1339
+ return false;
1340
+ }
1341
+ const o = proto.options;
1342
+ if (o && unsafeIsSetExplicit(o, "packed")) {
1343
+ return o.packed;
1344
+ }
1345
+ return PACKED == resolveFeature("repeatedFieldEncoding", {
1346
+ proto,
1347
+ parent
1348
+ });
1349
+ }
1350
+ function findMapEntryFields(mapEntry) {
1351
+ const key = mapEntry.fields.find((f) => f.number === 1);
1352
+ const value = mapEntry.fields.find((f) => f.number === 2);
1353
+ assert(key && key.fieldKind == "scalar" && key.scalar != ScalarType.BYTES && key.scalar != ScalarType.FLOAT && key.scalar != ScalarType.DOUBLE && value && value.fieldKind != "list" && value.fieldKind != "map");
1354
+ return { key, value };
1355
+ }
1356
+ function isEnumOpen(desc) {
1357
+ var _a;
1358
+ return OPEN == resolveFeature("enumType", {
1359
+ proto: desc.proto,
1360
+ parent: (_a = desc.parent) !== null && _a !== void 0 ? _a : desc.file
1361
+ });
1362
+ }
1363
+ function isDelimitedEncoding(proto, parent) {
1364
+ if (proto.type == TYPE_GROUP) {
1365
+ return true;
1366
+ }
1367
+ return DELIMITED == resolveFeature("messageEncoding", {
1368
+ proto,
1369
+ parent
1370
+ });
1371
+ }
1372
+ function resolveFeature(name, ref) {
1373
+ var _a, _b;
1374
+ const featureSet = (_a = ref.proto.options) === null || _a === void 0 ? void 0 : _a.features;
1375
+ if (featureSet) {
1376
+ const val = featureSet[name];
1377
+ if (val != 0) {
1378
+ return val;
1379
+ }
1380
+ }
1381
+ if ("kind" in ref) {
1382
+ if (ref.kind == "message") {
1383
+ return resolveFeature(name, (_b = ref.parent) !== null && _b !== void 0 ? _b : ref.file);
1384
+ }
1385
+ const editionDefaults = featureDefaults[ref.edition];
1386
+ if (!editionDefaults) {
1387
+ throw new Error(`feature default for edition ${ref.edition} not found`);
1388
+ }
1389
+ return editionDefaults[name];
1390
+ }
1391
+ return resolveFeature(name, ref.parent);
1392
+ }
1393
+ function assert(condition, msg) {
1394
+ if (!condition) {
1395
+ throw new Error(msg);
1396
+ }
1397
+ }
1398
+
1399
+ // node_modules/@bufbuild/protobuf/dist/esm/codegenv2/boot.js
1400
+ function boot(boot2) {
1401
+ const root = bootFileDescriptorProto(boot2);
1402
+ root.messageType.forEach(restoreJsonNames);
1403
+ const reg = createFileRegistry(root, () => void 0);
1404
+ return reg.getFile(root.name);
1405
+ }
1406
+ function bootFileDescriptorProto(init) {
1407
+ const proto = /* @__PURE__ */ Object.create({
1408
+ syntax: "",
1409
+ edition: 0
1410
+ });
1411
+ return Object.assign(proto, Object.assign(Object.assign({ $typeName: "google.protobuf.FileDescriptorProto", dependency: [], publicDependency: [], weakDependency: [], optionDependency: [], service: [], extension: [] }, init), { messageType: init.messageType.map(bootDescriptorProto), enumType: init.enumType.map(bootEnumDescriptorProto) }));
1412
+ }
1413
+ function bootDescriptorProto(init) {
1414
+ var _a, _b, _c, _d, _e, _f, _g, _h;
1415
+ const proto = /* @__PURE__ */ Object.create({
1416
+ visibility: 0
1417
+ });
1418
+ return Object.assign(proto, {
1419
+ $typeName: "google.protobuf.DescriptorProto",
1420
+ name: init.name,
1421
+ field: (_b = (_a = init.field) === null || _a === void 0 ? void 0 : _a.map(bootFieldDescriptorProto)) !== null && _b !== void 0 ? _b : [],
1422
+ extension: [],
1423
+ nestedType: (_d = (_c = init.nestedType) === null || _c === void 0 ? void 0 : _c.map(bootDescriptorProto)) !== null && _d !== void 0 ? _d : [],
1424
+ enumType: (_f = (_e = init.enumType) === null || _e === void 0 ? void 0 : _e.map(bootEnumDescriptorProto)) !== null && _f !== void 0 ? _f : [],
1425
+ extensionRange: (_h = (_g = init.extensionRange) === null || _g === void 0 ? void 0 : _g.map((e) => Object.assign({ $typeName: "google.protobuf.DescriptorProto.ExtensionRange" }, e))) !== null && _h !== void 0 ? _h : [],
1426
+ oneofDecl: [],
1427
+ reservedRange: [],
1428
+ reservedName: []
1429
+ });
1430
+ }
1431
+ function bootFieldDescriptorProto(init) {
1432
+ const proto = /* @__PURE__ */ Object.create({
1433
+ label: 1,
1434
+ typeName: "",
1435
+ extendee: "",
1436
+ defaultValue: "",
1437
+ oneofIndex: 0,
1438
+ jsonName: "",
1439
+ proto3Optional: false
1440
+ });
1441
+ return Object.assign(proto, Object.assign(Object.assign({ $typeName: "google.protobuf.FieldDescriptorProto" }, init), { options: init.options ? bootFieldOptions(init.options) : void 0 }));
1442
+ }
1443
+ function bootFieldOptions(init) {
1444
+ var _a, _b, _c;
1445
+ const proto = /* @__PURE__ */ Object.create({
1446
+ ctype: 0,
1447
+ packed: false,
1448
+ jstype: 0,
1449
+ lazy: false,
1450
+ unverifiedLazy: false,
1451
+ deprecated: false,
1452
+ weak: false,
1453
+ debugRedact: false,
1454
+ retention: 0
1455
+ });
1456
+ return Object.assign(proto, Object.assign(Object.assign({ $typeName: "google.protobuf.FieldOptions" }, init), { targets: (_a = init.targets) !== null && _a !== void 0 ? _a : [], editionDefaults: (_c = (_b = init.editionDefaults) === null || _b === void 0 ? void 0 : _b.map((e) => Object.assign({ $typeName: "google.protobuf.FieldOptions.EditionDefault" }, e))) !== null && _c !== void 0 ? _c : [], uninterpretedOption: [] }));
1457
+ }
1458
+ function bootEnumDescriptorProto(init) {
1459
+ const proto = /* @__PURE__ */ Object.create({
1460
+ visibility: 0
1461
+ });
1462
+ return Object.assign(proto, {
1463
+ $typeName: "google.protobuf.EnumDescriptorProto",
1464
+ name: init.name,
1465
+ reservedName: [],
1466
+ reservedRange: [],
1467
+ value: init.value.map((e) => Object.assign({ $typeName: "google.protobuf.EnumValueDescriptorProto" }, e))
1468
+ });
1469
+ }
1470
+
1471
+ // node_modules/@bufbuild/protobuf/dist/esm/wire/base64-encoding.js
1472
+ function base64Decode(base64Str) {
1473
+ const table = getDecodeTable();
1474
+ let es = base64Str.length * 3 / 4;
1475
+ if (base64Str[base64Str.length - 2] == "=")
1476
+ es -= 2;
1477
+ else if (base64Str[base64Str.length - 1] == "=")
1478
+ es -= 1;
1479
+ let bytes = new Uint8Array(es), bytePos = 0, groupPos = 0, b, p = 0;
1480
+ for (let i = 0; i < base64Str.length; i++) {
1481
+ b = table[base64Str.charCodeAt(i)];
1482
+ if (b === void 0) {
1483
+ switch (base64Str[i]) {
1484
+ // @ts-ignore TS7029: Fallthrough case in switch -- ignore instead of expect-error for compiler settings without noFallthroughCasesInSwitch: true
1485
+ case "=":
1486
+ groupPos = 0;
1487
+ // reset state when padding found
1488
+ case "\n":
1489
+ case "\r":
1490
+ case " ":
1491
+ case " ":
1492
+ continue;
1493
+ // skip white-space, and padding
1494
+ default:
1495
+ throw Error("invalid base64 string");
1496
+ }
1497
+ }
1498
+ switch (groupPos) {
1499
+ case 0:
1500
+ p = b;
1501
+ groupPos = 1;
1502
+ break;
1503
+ case 1:
1504
+ bytes[bytePos++] = p << 2 | (b & 48) >> 4;
1505
+ p = b;
1506
+ groupPos = 2;
1507
+ break;
1508
+ case 2:
1509
+ bytes[bytePos++] = (p & 15) << 4 | (b & 60) >> 2;
1510
+ p = b;
1511
+ groupPos = 3;
1512
+ break;
1513
+ case 3:
1514
+ bytes[bytePos++] = (p & 3) << 6 | b;
1515
+ groupPos = 0;
1516
+ break;
1517
+ }
1518
+ }
1519
+ if (groupPos == 1)
1520
+ throw Error("invalid base64 string");
1521
+ return bytes.subarray(0, bytePos);
1522
+ }
1523
+ var encodeTableStd;
1524
+ var encodeTableUrl;
1525
+ var decodeTable;
1526
+ function getEncodeTable(encoding) {
1527
+ if (!encodeTableStd) {
1528
+ encodeTableStd = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split("");
1529
+ encodeTableUrl = encodeTableStd.slice(0, -2).concat("-", "_");
1530
+ }
1531
+ return encoding == "url" ? (
1532
+ // biome-ignore lint/style/noNonNullAssertion: TS fails to narrow down
1533
+ encodeTableUrl
1534
+ ) : encodeTableStd;
1535
+ }
1536
+ function getDecodeTable() {
1537
+ if (!decodeTable) {
1538
+ decodeTable = [];
1539
+ const encodeTable = getEncodeTable("std");
1540
+ for (let i = 0; i < encodeTable.length; i++)
1541
+ decodeTable[encodeTable[i].charCodeAt(0)] = i;
1542
+ decodeTable["-".charCodeAt(0)] = encodeTable.indexOf("+");
1543
+ decodeTable["_".charCodeAt(0)] = encodeTable.indexOf("/");
1544
+ }
1545
+ return decodeTable;
1546
+ }
1547
+
1548
+ // node_modules/@bufbuild/protobuf/dist/esm/is-message.js
1549
+ function isMessage(arg, schema) {
1550
+ const isMessage2 = arg !== null && typeof arg == "object" && "$typeName" in arg && typeof arg.$typeName == "string";
1551
+ if (!isMessage2) {
1552
+ return false;
1553
+ }
1554
+ if (schema === void 0) {
1555
+ return true;
1556
+ }
1557
+ return schema.typeName === arg.$typeName;
1558
+ }
1559
+
1560
+ // node_modules/@bufbuild/protobuf/dist/esm/reflect/error.js
1561
+ var FieldError = class extends Error {
1562
+ constructor(fieldOrOneof, message, name = "FieldValueInvalidError") {
1563
+ super(message);
1564
+ this.name = name;
1565
+ this.field = () => fieldOrOneof;
1566
+ }
1567
+ };
1568
+
1569
+ // node_modules/@bufbuild/protobuf/dist/esm/reflect/guard.js
1570
+ function isObject(arg) {
1571
+ return arg !== null && typeof arg == "object" && !Array.isArray(arg);
1572
+ }
1573
+ function isReflectList(arg, field) {
1574
+ var _a, _b, _c, _d;
1575
+ if (isObject(arg) && unsafeLocal in arg && "add" in arg && "field" in arg && typeof arg.field == "function") {
1576
+ if (field !== void 0) {
1577
+ const a = field;
1578
+ const b = arg.field();
1579
+ return a.listKind == b.listKind && a.scalar === b.scalar && ((_a = a.message) === null || _a === void 0 ? void 0 : _a.typeName) === ((_b = b.message) === null || _b === void 0 ? void 0 : _b.typeName) && ((_c = a.enum) === null || _c === void 0 ? void 0 : _c.typeName) === ((_d = b.enum) === null || _d === void 0 ? void 0 : _d.typeName);
1580
+ }
1581
+ return true;
1582
+ }
1583
+ return false;
1584
+ }
1585
+ function isReflectMap(arg, field) {
1586
+ var _a, _b, _c, _d;
1587
+ if (isObject(arg) && unsafeLocal in arg && "has" in arg && "field" in arg && typeof arg.field == "function") {
1588
+ if (field !== void 0) {
1589
+ const a = field, b = arg.field();
1590
+ return a.mapKey === b.mapKey && a.mapKind == b.mapKind && a.scalar === b.scalar && ((_a = a.message) === null || _a === void 0 ? void 0 : _a.typeName) === ((_b = b.message) === null || _b === void 0 ? void 0 : _b.typeName) && ((_c = a.enum) === null || _c === void 0 ? void 0 : _c.typeName) === ((_d = b.enum) === null || _d === void 0 ? void 0 : _d.typeName);
1591
+ }
1592
+ return true;
1593
+ }
1594
+ return false;
1595
+ }
1596
+ function isReflectMessage(arg, messageDesc2) {
1597
+ return isObject(arg) && unsafeLocal in arg && "desc" in arg && isObject(arg.desc) && arg.desc.kind === "message" && (messageDesc2 === void 0 || arg.desc.typeName == messageDesc2.typeName);
1598
+ }
1599
+
1600
+ // node_modules/@bufbuild/protobuf/dist/esm/wire/text-encoding.js
1601
+ var symbol = /* @__PURE__ */ Symbol.for("@bufbuild/protobuf/text-encoding");
1602
+ function getTextEncoding() {
1603
+ if (globalThis[symbol] == void 0) {
1604
+ const te = new globalThis.TextEncoder();
1605
+ const td = new globalThis.TextDecoder();
1606
+ globalThis[symbol] = {
1607
+ encodeUtf8(text) {
1608
+ return te.encode(text);
1609
+ },
1610
+ decodeUtf8(bytes) {
1611
+ return td.decode(bytes);
1612
+ },
1613
+ checkUtf8(text) {
1614
+ try {
1615
+ encodeURIComponent(text);
1616
+ return true;
1617
+ } catch (_) {
1618
+ return false;
1619
+ }
1620
+ }
1621
+ };
1622
+ }
1623
+ return globalThis[symbol];
1624
+ }
1625
+
1626
+ // node_modules/@bufbuild/protobuf/dist/esm/wire/binary-encoding.js
1627
+ var WireType;
1628
+ (function(WireType2) {
1629
+ WireType2[WireType2["Varint"] = 0] = "Varint";
1630
+ WireType2[WireType2["Bit64"] = 1] = "Bit64";
1631
+ WireType2[WireType2["LengthDelimited"] = 2] = "LengthDelimited";
1632
+ WireType2[WireType2["StartGroup"] = 3] = "StartGroup";
1633
+ WireType2[WireType2["EndGroup"] = 4] = "EndGroup";
1634
+ WireType2[WireType2["Bit32"] = 5] = "Bit32";
1635
+ })(WireType || (WireType = {}));
1636
+ var FLOAT32_MAX = 34028234663852886e22;
1637
+ var FLOAT32_MIN = -34028234663852886e22;
1638
+ var UINT32_MAX = 4294967295;
1639
+ var INT32_MAX = 2147483647;
1640
+ var INT32_MIN = -2147483648;
1641
+ var BinaryReader = class {
1642
+ constructor(buf, decodeUtf8 = getTextEncoding().decodeUtf8) {
1643
+ this.decodeUtf8 = decodeUtf8;
1644
+ this.varint64 = varint64read;
1645
+ this.uint32 = varint32read;
1646
+ this.buf = buf;
1647
+ this.len = buf.length;
1648
+ this.pos = 0;
1649
+ this.view = new DataView(buf.buffer, buf.byteOffset, buf.byteLength);
1650
+ }
1651
+ /**
1652
+ * Reads a tag - field number and wire type.
1653
+ */
1654
+ tag() {
1655
+ let tag = this.uint32(), fieldNo = tag >>> 3, wireType = tag & 7;
1656
+ if (fieldNo <= 0 || wireType < 0 || wireType > 5)
1657
+ throw new Error("illegal tag: field no " + fieldNo + " wire type " + wireType);
1658
+ return [fieldNo, wireType];
1659
+ }
1660
+ /**
1661
+ * Skip one element and return the skipped data.
1662
+ *
1663
+ * When skipping StartGroup, provide the tags field number to check for
1664
+ * matching field number in the EndGroup tag.
1665
+ */
1666
+ skip(wireType, fieldNo) {
1667
+ let start = this.pos;
1668
+ switch (wireType) {
1669
+ case WireType.Varint:
1670
+ while (this.buf[this.pos++] & 128) {
1671
+ }
1672
+ break;
1673
+ // @ts-ignore TS7029: Fallthrough case in switch -- ignore instead of expect-error for compiler settings without noFallthroughCasesInSwitch: true
1674
+ case WireType.Bit64:
1675
+ this.pos += 4;
1676
+ case WireType.Bit32:
1677
+ this.pos += 4;
1678
+ break;
1679
+ case WireType.LengthDelimited:
1680
+ let len = this.uint32();
1681
+ this.pos += len;
1682
+ break;
1683
+ case WireType.StartGroup:
1684
+ for (; ; ) {
1685
+ const [fn, wt] = this.tag();
1686
+ if (wt === WireType.EndGroup) {
1687
+ if (fieldNo !== void 0 && fn !== fieldNo) {
1688
+ throw new Error("invalid end group tag");
1689
+ }
1690
+ break;
1691
+ }
1692
+ this.skip(wt, fn);
1693
+ }
1694
+ break;
1695
+ default:
1696
+ throw new Error("cant skip wire type " + wireType);
1697
+ }
1698
+ this.assertBounds();
1699
+ return this.buf.subarray(start, this.pos);
1700
+ }
1701
+ /**
1702
+ * Throws error if position in byte array is out of range.
1703
+ */
1704
+ assertBounds() {
1705
+ if (this.pos > this.len)
1706
+ throw new RangeError("premature EOF");
1707
+ }
1708
+ /**
1709
+ * Read a `int32` field, a signed 32 bit varint.
1710
+ */
1711
+ int32() {
1712
+ return this.uint32() | 0;
1713
+ }
1714
+ /**
1715
+ * Read a `sint32` field, a signed, zigzag-encoded 32-bit varint.
1716
+ */
1717
+ sint32() {
1718
+ let zze = this.uint32();
1719
+ return zze >>> 1 ^ -(zze & 1);
1720
+ }
1721
+ /**
1722
+ * Read a `int64` field, a signed 64-bit varint.
1723
+ */
1724
+ int64() {
1725
+ return protoInt64.dec(...this.varint64());
1726
+ }
1727
+ /**
1728
+ * Read a `uint64` field, an unsigned 64-bit varint.
1729
+ */
1730
+ uint64() {
1731
+ return protoInt64.uDec(...this.varint64());
1732
+ }
1733
+ /**
1734
+ * Read a `sint64` field, a signed, zig-zag-encoded 64-bit varint.
1735
+ */
1736
+ sint64() {
1737
+ let [lo, hi] = this.varint64();
1738
+ let s = -(lo & 1);
1739
+ lo = (lo >>> 1 | (hi & 1) << 31) ^ s;
1740
+ hi = hi >>> 1 ^ s;
1741
+ return protoInt64.dec(lo, hi);
1742
+ }
1743
+ /**
1744
+ * Read a `bool` field, a variant.
1745
+ */
1746
+ bool() {
1747
+ let [lo, hi] = this.varint64();
1748
+ return lo !== 0 || hi !== 0;
1749
+ }
1750
+ /**
1751
+ * Read a `fixed32` field, an unsigned, fixed-length 32-bit integer.
1752
+ */
1753
+ fixed32() {
1754
+ return this.view.getUint32((this.pos += 4) - 4, true);
1755
+ }
1756
+ /**
1757
+ * Read a `sfixed32` field, a signed, fixed-length 32-bit integer.
1758
+ */
1759
+ sfixed32() {
1760
+ return this.view.getInt32((this.pos += 4) - 4, true);
1761
+ }
1762
+ /**
1763
+ * Read a `fixed64` field, an unsigned, fixed-length 64 bit integer.
1764
+ */
1765
+ fixed64() {
1766
+ return protoInt64.uDec(this.sfixed32(), this.sfixed32());
1767
+ }
1768
+ /**
1769
+ * Read a `fixed64` field, a signed, fixed-length 64-bit integer.
1770
+ */
1771
+ sfixed64() {
1772
+ return protoInt64.dec(this.sfixed32(), this.sfixed32());
1773
+ }
1774
+ /**
1775
+ * Read a `float` field, 32-bit floating point number.
1776
+ */
1777
+ float() {
1778
+ return this.view.getFloat32((this.pos += 4) - 4, true);
1779
+ }
1780
+ /**
1781
+ * Read a `double` field, a 64-bit floating point number.
1782
+ */
1783
+ double() {
1784
+ return this.view.getFloat64((this.pos += 8) - 8, true);
1785
+ }
1786
+ /**
1787
+ * Read a `bytes` field, length-delimited arbitrary data.
1788
+ */
1789
+ bytes() {
1790
+ let len = this.uint32(), start = this.pos;
1791
+ this.pos += len;
1792
+ this.assertBounds();
1793
+ return this.buf.subarray(start, start + len);
1794
+ }
1795
+ /**
1796
+ * Read a `string` field, length-delimited data converted to UTF-8 text.
1797
+ */
1798
+ string() {
1799
+ return this.decodeUtf8(this.bytes());
1800
+ }
1801
+ };
1802
+
1803
+ // node_modules/@bufbuild/protobuf/dist/esm/reflect/reflect-check.js
1804
+ function checkField(field, value) {
1805
+ const check = field.fieldKind == "list" ? isReflectList(value, field) : field.fieldKind == "map" ? isReflectMap(value, field) : checkSingular(field, value);
1806
+ if (check === true) {
1807
+ return void 0;
1808
+ }
1809
+ let reason;
1810
+ switch (field.fieldKind) {
1811
+ case "list":
1812
+ reason = `expected ${formatReflectList(field)}, got ${formatVal(value)}`;
1813
+ break;
1814
+ case "map":
1815
+ reason = `expected ${formatReflectMap(field)}, got ${formatVal(value)}`;
1816
+ break;
1817
+ default: {
1818
+ reason = reasonSingular(field, value, check);
1819
+ }
1820
+ }
1821
+ return new FieldError(field, reason);
1822
+ }
1823
+ function checkListItem(field, index, value) {
1824
+ const check = checkSingular(field, value);
1825
+ if (check !== true) {
1826
+ return new FieldError(field, `list item #${index + 1}: ${reasonSingular(field, value, check)}`);
1827
+ }
1828
+ return void 0;
1829
+ }
1830
+ function checkMapEntry(field, key, value) {
1831
+ const checkKey = checkScalarValue(key, field.mapKey);
1832
+ if (checkKey !== true) {
1833
+ return new FieldError(field, `invalid map key: ${reasonSingular({ scalar: field.mapKey }, key, checkKey)}`);
1834
+ }
1835
+ const checkVal = checkSingular(field, value);
1836
+ if (checkVal !== true) {
1837
+ return new FieldError(field, `map entry ${formatVal(key)}: ${reasonSingular(field, value, checkVal)}`);
1838
+ }
1839
+ return void 0;
1840
+ }
1841
+ function checkSingular(field, value) {
1842
+ if (field.scalar !== void 0) {
1843
+ return checkScalarValue(value, field.scalar);
1844
+ }
1845
+ if (field.enum !== void 0) {
1846
+ if (field.enum.open) {
1847
+ return Number.isInteger(value);
1848
+ }
1849
+ return field.enum.values.some((v) => v.number === value);
1850
+ }
1851
+ return isReflectMessage(value, field.message);
1852
+ }
1853
+ function checkScalarValue(value, scalar) {
1854
+ switch (scalar) {
1855
+ case ScalarType.DOUBLE:
1856
+ return typeof value == "number";
1857
+ case ScalarType.FLOAT:
1858
+ if (typeof value != "number") {
1859
+ return false;
1860
+ }
1861
+ if (Number.isNaN(value) || !Number.isFinite(value)) {
1862
+ return true;
1863
+ }
1864
+ if (value > FLOAT32_MAX || value < FLOAT32_MIN) {
1865
+ return `${value.toFixed()} out of range`;
1866
+ }
1867
+ return true;
1868
+ case ScalarType.INT32:
1869
+ case ScalarType.SFIXED32:
1870
+ case ScalarType.SINT32:
1871
+ if (typeof value !== "number" || !Number.isInteger(value)) {
1872
+ return false;
1873
+ }
1874
+ if (value > INT32_MAX || value < INT32_MIN) {
1875
+ return `${value.toFixed()} out of range`;
1876
+ }
1877
+ return true;
1878
+ case ScalarType.FIXED32:
1879
+ case ScalarType.UINT32:
1880
+ if (typeof value !== "number" || !Number.isInteger(value)) {
1881
+ return false;
1882
+ }
1883
+ if (value > UINT32_MAX || value < 0) {
1884
+ return `${value.toFixed()} out of range`;
1885
+ }
1886
+ return true;
1887
+ case ScalarType.BOOL:
1888
+ return typeof value == "boolean";
1889
+ case ScalarType.STRING:
1890
+ if (typeof value != "string") {
1891
+ return false;
1892
+ }
1893
+ return getTextEncoding().checkUtf8(value) || "invalid UTF8";
1894
+ case ScalarType.BYTES:
1895
+ return value instanceof Uint8Array;
1896
+ case ScalarType.INT64:
1897
+ case ScalarType.SFIXED64:
1898
+ case ScalarType.SINT64:
1899
+ if (typeof value == "bigint" || typeof value == "number" || typeof value == "string" && value.length > 0) {
1900
+ try {
1901
+ protoInt64.parse(value);
1902
+ return true;
1903
+ } catch (_) {
1904
+ return `${value} out of range`;
1905
+ }
1906
+ }
1907
+ return false;
1908
+ case ScalarType.FIXED64:
1909
+ case ScalarType.UINT64:
1910
+ if (typeof value == "bigint" || typeof value == "number" || typeof value == "string" && value.length > 0) {
1911
+ try {
1912
+ protoInt64.uParse(value);
1913
+ return true;
1914
+ } catch (_) {
1915
+ return `${value} out of range`;
1916
+ }
1917
+ }
1918
+ return false;
1919
+ }
1920
+ }
1921
+ function reasonSingular(field, val, details) {
1922
+ details = typeof details == "string" ? `: ${details}` : `, got ${formatVal(val)}`;
1923
+ if (field.scalar !== void 0) {
1924
+ return `expected ${scalarTypeDescription(field.scalar)}` + details;
1925
+ }
1926
+ if (field.enum !== void 0) {
1927
+ return `expected ${field.enum.toString()}` + details;
1928
+ }
1929
+ return `expected ${formatReflectMessage(field.message)}` + details;
1930
+ }
1931
+ function formatVal(val) {
1932
+ switch (typeof val) {
1933
+ case "object":
1934
+ if (val === null) {
1935
+ return "null";
1936
+ }
1937
+ if (val instanceof Uint8Array) {
1938
+ return `Uint8Array(${val.length})`;
1939
+ }
1940
+ if (Array.isArray(val)) {
1941
+ return `Array(${val.length})`;
1942
+ }
1943
+ if (isReflectList(val)) {
1944
+ return formatReflectList(val.field());
1945
+ }
1946
+ if (isReflectMap(val)) {
1947
+ return formatReflectMap(val.field());
1948
+ }
1949
+ if (isReflectMessage(val)) {
1950
+ return formatReflectMessage(val.desc);
1951
+ }
1952
+ if (isMessage(val)) {
1953
+ return `message ${val.$typeName}`;
1954
+ }
1955
+ return "object";
1956
+ case "string":
1957
+ return val.length > 30 ? "string" : `"${val.split('"').join('\\"')}"`;
1958
+ case "boolean":
1959
+ return String(val);
1960
+ case "number":
1961
+ return String(val);
1962
+ case "bigint":
1963
+ return String(val) + "n";
1964
+ default:
1965
+ return typeof val;
1966
+ }
1967
+ }
1968
+ function formatReflectMessage(desc) {
1969
+ return `ReflectMessage (${desc.typeName})`;
1970
+ }
1971
+ function formatReflectList(field) {
1972
+ switch (field.listKind) {
1973
+ case "message":
1974
+ return `ReflectList (${field.message.toString()})`;
1975
+ case "enum":
1976
+ return `ReflectList (${field.enum.toString()})`;
1977
+ case "scalar":
1978
+ return `ReflectList (${ScalarType[field.scalar]})`;
1979
+ }
1980
+ }
1981
+ function formatReflectMap(field) {
1982
+ switch (field.mapKind) {
1983
+ case "message":
1984
+ return `ReflectMap (${ScalarType[field.mapKey]}, ${field.message.toString()})`;
1985
+ case "enum":
1986
+ return `ReflectMap (${ScalarType[field.mapKey]}, ${field.enum.toString()})`;
1987
+ case "scalar":
1988
+ return `ReflectMap (${ScalarType[field.mapKey]}, ${ScalarType[field.scalar]})`;
1989
+ }
1990
+ }
1991
+ function scalarTypeDescription(scalar) {
1992
+ switch (scalar) {
1993
+ case ScalarType.STRING:
1994
+ return "string";
1995
+ case ScalarType.BOOL:
1996
+ return "boolean";
1997
+ case ScalarType.INT64:
1998
+ case ScalarType.SINT64:
1999
+ case ScalarType.SFIXED64:
2000
+ return "bigint (int64)";
2001
+ case ScalarType.UINT64:
2002
+ case ScalarType.FIXED64:
2003
+ return "bigint (uint64)";
2004
+ case ScalarType.BYTES:
2005
+ return "Uint8Array";
2006
+ case ScalarType.DOUBLE:
2007
+ return "number (float64)";
2008
+ case ScalarType.FLOAT:
2009
+ return "number (float32)";
2010
+ case ScalarType.FIXED32:
2011
+ case ScalarType.UINT32:
2012
+ return "number (uint32)";
2013
+ case ScalarType.INT32:
2014
+ case ScalarType.SFIXED32:
2015
+ case ScalarType.SINT32:
2016
+ return "number (int32)";
2017
+ }
2018
+ }
2019
+
2020
+ // node_modules/@bufbuild/protobuf/dist/esm/wkt/wrappers.js
2021
+ function isWrapper(arg) {
2022
+ return isWrapperTypeName(arg.$typeName);
2023
+ }
2024
+ function isWrapperDesc(messageDesc2) {
2025
+ const f = messageDesc2.fields[0];
2026
+ return isWrapperTypeName(messageDesc2.typeName) && f !== void 0 && f.fieldKind == "scalar" && f.name == "value" && f.number == 1;
2027
+ }
2028
+ function isWrapperTypeName(name) {
2029
+ return name.startsWith("google.protobuf.") && [
2030
+ "DoubleValue",
2031
+ "FloatValue",
2032
+ "Int64Value",
2033
+ "UInt64Value",
2034
+ "Int32Value",
2035
+ "UInt32Value",
2036
+ "BoolValue",
2037
+ "StringValue",
2038
+ "BytesValue"
2039
+ ].includes(name.substring(16));
2040
+ }
2041
+
2042
+ // node_modules/@bufbuild/protobuf/dist/esm/create.js
2043
+ var EDITION_PROTO32 = 999;
2044
+ var EDITION_PROTO22 = 998;
2045
+ var IMPLICIT3 = 2;
2046
+ function create(schema, init) {
2047
+ if (isMessage(init, schema)) {
2048
+ return init;
2049
+ }
2050
+ const message = createZeroMessage(schema);
2051
+ if (init !== void 0) {
2052
+ initMessage(schema, message, init);
2053
+ }
2054
+ return message;
2055
+ }
2056
+ function initMessage(messageDesc2, message, init) {
2057
+ for (const member of messageDesc2.members) {
2058
+ let value = init[member.localName];
2059
+ if (value == null) {
2060
+ continue;
2061
+ }
2062
+ let field;
2063
+ if (member.kind == "oneof") {
2064
+ const oneofField = unsafeOneofCase(init, member);
2065
+ if (!oneofField) {
2066
+ continue;
2067
+ }
2068
+ field = oneofField;
2069
+ value = unsafeGet(init, oneofField);
2070
+ } else {
2071
+ field = member;
2072
+ }
2073
+ switch (field.fieldKind) {
2074
+ case "message":
2075
+ value = toMessage(field, value);
2076
+ break;
2077
+ case "scalar":
2078
+ value = initScalar(field, value);
2079
+ break;
2080
+ case "list":
2081
+ value = initList(field, value);
2082
+ break;
2083
+ case "map":
2084
+ value = initMap(field, value);
2085
+ break;
2086
+ }
2087
+ unsafeSet(message, field, value);
2088
+ }
2089
+ return message;
2090
+ }
2091
+ function initScalar(field, value) {
2092
+ if (field.scalar == ScalarType.BYTES) {
2093
+ return toU8Arr(value);
2094
+ }
2095
+ return value;
2096
+ }
2097
+ function initMap(field, value) {
2098
+ if (isObject(value)) {
2099
+ if (field.scalar == ScalarType.BYTES) {
2100
+ return convertObjectValues(value, toU8Arr);
2101
+ }
2102
+ if (field.mapKind == "message") {
2103
+ return convertObjectValues(value, (val) => toMessage(field, val));
2104
+ }
2105
+ }
2106
+ return value;
2107
+ }
2108
+ function initList(field, value) {
2109
+ if (Array.isArray(value)) {
2110
+ if (field.scalar == ScalarType.BYTES) {
2111
+ return value.map(toU8Arr);
2112
+ }
2113
+ if (field.listKind == "message") {
2114
+ return value.map((item) => toMessage(field, item));
2115
+ }
2116
+ }
2117
+ return value;
2118
+ }
2119
+ function toMessage(field, value) {
2120
+ if (field.fieldKind == "message" && !field.oneof && isWrapperDesc(field.message)) {
2121
+ return initScalar(field.message.fields[0], value);
2122
+ }
2123
+ if (isObject(value)) {
2124
+ if (field.message.typeName == "google.protobuf.Struct" && field.parent.typeName !== "google.protobuf.Value") {
2125
+ return value;
2126
+ }
2127
+ if (!isMessage(value, field.message)) {
2128
+ return create(field.message, value);
2129
+ }
2130
+ }
2131
+ return value;
2132
+ }
2133
+ function toU8Arr(value) {
2134
+ return Array.isArray(value) ? new Uint8Array(value) : value;
2135
+ }
2136
+ function convertObjectValues(obj, fn) {
2137
+ const ret = {};
2138
+ for (const entry of Object.entries(obj)) {
2139
+ ret[entry[0]] = fn(entry[1]);
2140
+ }
2141
+ return ret;
2142
+ }
2143
+ var tokenZeroMessageField = /* @__PURE__ */ Symbol();
2144
+ var messagePrototypes = /* @__PURE__ */ new WeakMap();
2145
+ function createZeroMessage(desc) {
2146
+ let msg;
2147
+ if (!needsPrototypeChain(desc)) {
2148
+ msg = {
2149
+ $typeName: desc.typeName
2150
+ };
2151
+ for (const member of desc.members) {
2152
+ if (member.kind == "oneof" || member.presence == IMPLICIT3) {
2153
+ msg[member.localName] = createZeroField(member);
2154
+ }
2155
+ }
2156
+ } else {
2157
+ const cached = messagePrototypes.get(desc);
2158
+ let prototype;
2159
+ let members;
2160
+ if (cached) {
2161
+ ({ prototype, members } = cached);
2162
+ } else {
2163
+ prototype = {};
2164
+ members = /* @__PURE__ */ new Set();
2165
+ for (const member of desc.members) {
2166
+ if (member.kind == "oneof") {
2167
+ continue;
2168
+ }
2169
+ if (member.fieldKind != "scalar" && member.fieldKind != "enum") {
2170
+ continue;
2171
+ }
2172
+ if (member.presence == IMPLICIT3) {
2173
+ continue;
2174
+ }
2175
+ members.add(member);
2176
+ prototype[member.localName] = createZeroField(member);
2177
+ }
2178
+ messagePrototypes.set(desc, { prototype, members });
2179
+ }
2180
+ msg = Object.create(prototype);
2181
+ msg.$typeName = desc.typeName;
2182
+ for (const member of desc.members) {
2183
+ if (members.has(member)) {
2184
+ continue;
2185
+ }
2186
+ if (member.kind == "field") {
2187
+ if (member.fieldKind == "message") {
2188
+ continue;
2189
+ }
2190
+ if (member.fieldKind == "scalar" || member.fieldKind == "enum") {
2191
+ if (member.presence != IMPLICIT3) {
2192
+ continue;
2193
+ }
2194
+ }
2195
+ }
2196
+ msg[member.localName] = createZeroField(member);
2197
+ }
2198
+ }
2199
+ return msg;
2200
+ }
2201
+ function needsPrototypeChain(desc) {
2202
+ switch (desc.file.edition) {
2203
+ case EDITION_PROTO32:
2204
+ return false;
2205
+ case EDITION_PROTO22:
2206
+ return true;
2207
+ default:
2208
+ return desc.fields.some((f) => f.presence != IMPLICIT3 && f.fieldKind != "message" && !f.oneof);
2209
+ }
2210
+ }
2211
+ function createZeroField(field) {
2212
+ if (field.kind == "oneof") {
2213
+ return { case: void 0 };
2214
+ }
2215
+ if (field.fieldKind == "list") {
2216
+ return [];
2217
+ }
2218
+ if (field.fieldKind == "map") {
2219
+ return {};
2220
+ }
2221
+ if (field.fieldKind == "message") {
2222
+ return tokenZeroMessageField;
2223
+ }
2224
+ const defaultValue = field.getDefaultValue();
2225
+ if (defaultValue !== void 0) {
2226
+ return field.fieldKind == "scalar" && field.longAsString ? defaultValue.toString() : defaultValue;
2227
+ }
2228
+ return field.fieldKind == "scalar" ? scalarZeroValue(field.scalar, field.longAsString) : field.enum.values[0].number;
2229
+ }
2230
+
2231
+ // node_modules/@bufbuild/protobuf/dist/esm/reflect/reflect.js
2232
+ function reflect(messageDesc2, message, check = true) {
2233
+ return new ReflectMessageImpl(messageDesc2, message, check);
2234
+ }
2235
+ var messageSortedFields = /* @__PURE__ */ new WeakMap();
2236
+ var ReflectMessageImpl = class {
2237
+ get sortedFields() {
2238
+ const cached = messageSortedFields.get(this.desc);
2239
+ if (cached) {
2240
+ return cached;
2241
+ }
2242
+ const sortedFields = this.desc.fields.concat().sort((a, b) => a.number - b.number);
2243
+ messageSortedFields.set(this.desc, sortedFields);
2244
+ return sortedFields;
2245
+ }
2246
+ constructor(messageDesc2, message, check = true) {
2247
+ this.lists = /* @__PURE__ */ new Map();
2248
+ this.maps = /* @__PURE__ */ new Map();
2249
+ this.check = check;
2250
+ this.desc = messageDesc2;
2251
+ this.message = this[unsafeLocal] = message !== null && message !== void 0 ? message : create(messageDesc2);
2252
+ this.fields = messageDesc2.fields;
2253
+ this.oneofs = messageDesc2.oneofs;
2254
+ this.members = messageDesc2.members;
2255
+ }
2256
+ findNumber(number) {
2257
+ if (!this._fieldsByNumber) {
2258
+ this._fieldsByNumber = new Map(this.desc.fields.map((f) => [f.number, f]));
2259
+ }
2260
+ return this._fieldsByNumber.get(number);
2261
+ }
2262
+ oneofCase(oneof) {
2263
+ assertOwn(this.message, oneof);
2264
+ return unsafeOneofCase(this.message, oneof);
2265
+ }
2266
+ isSet(field) {
2267
+ assertOwn(this.message, field);
2268
+ return unsafeIsSet(this.message, field);
2269
+ }
2270
+ clear(field) {
2271
+ assertOwn(this.message, field);
2272
+ unsafeClear(this.message, field);
2273
+ }
2274
+ get(field) {
2275
+ assertOwn(this.message, field);
2276
+ const value = unsafeGet(this.message, field);
2277
+ switch (field.fieldKind) {
2278
+ case "list":
2279
+ let list = this.lists.get(field);
2280
+ if (!list || list[unsafeLocal] !== value) {
2281
+ this.lists.set(
2282
+ field,
2283
+ // biome-ignore lint/suspicious/noAssignInExpressions: no
2284
+ list = new ReflectListImpl(field, value, this.check)
2285
+ );
2286
+ }
2287
+ return list;
2288
+ case "map":
2289
+ let map = this.maps.get(field);
2290
+ if (!map || map[unsafeLocal] !== value) {
2291
+ this.maps.set(
2292
+ field,
2293
+ // biome-ignore lint/suspicious/noAssignInExpressions: no
2294
+ map = new ReflectMapImpl(field, value, this.check)
2295
+ );
2296
+ }
2297
+ return map;
2298
+ case "message":
2299
+ return messageToReflect(field, value, this.check);
2300
+ case "scalar":
2301
+ return value === void 0 ? scalarZeroValue(field.scalar, false) : longToReflect(field, value);
2302
+ case "enum":
2303
+ return value !== null && value !== void 0 ? value : field.enum.values[0].number;
2304
+ }
2305
+ }
2306
+ set(field, value) {
2307
+ assertOwn(this.message, field);
2308
+ if (this.check) {
2309
+ const err = checkField(field, value);
2310
+ if (err) {
2311
+ throw err;
2312
+ }
2313
+ }
2314
+ let local;
2315
+ if (field.fieldKind == "message") {
2316
+ local = messageToLocal(field, value);
2317
+ } else if (isReflectMap(value) || isReflectList(value)) {
2318
+ local = value[unsafeLocal];
2319
+ } else {
2320
+ local = longToLocal(field, value);
2321
+ }
2322
+ unsafeSet(this.message, field, local);
2323
+ }
2324
+ getUnknown() {
2325
+ return this.message.$unknown;
2326
+ }
2327
+ setUnknown(value) {
2328
+ this.message.$unknown = value;
2329
+ }
2330
+ };
2331
+ function assertOwn(owner, member) {
2332
+ if (member.parent.typeName !== owner.$typeName) {
2333
+ throw new FieldError(member, `cannot use ${member.toString()} with message ${owner.$typeName}`, "ForeignFieldError");
2334
+ }
2335
+ }
2336
+ var ReflectListImpl = class {
2337
+ field() {
2338
+ return this._field;
2339
+ }
2340
+ get size() {
2341
+ return this._arr.length;
2342
+ }
2343
+ constructor(field, unsafeInput, check) {
2344
+ this._field = field;
2345
+ this._arr = this[unsafeLocal] = unsafeInput;
2346
+ this.check = check;
2347
+ }
2348
+ get(index) {
2349
+ const item = this._arr[index];
2350
+ return item === void 0 ? void 0 : listItemToReflect(this._field, item, this.check);
2351
+ }
2352
+ set(index, item) {
2353
+ if (index < 0 || index >= this._arr.length) {
2354
+ throw new FieldError(this._field, `list item #${index + 1}: out of range`);
2355
+ }
2356
+ if (this.check) {
2357
+ const err = checkListItem(this._field, index, item);
2358
+ if (err) {
2359
+ throw err;
2360
+ }
2361
+ }
2362
+ this._arr[index] = listItemToLocal(this._field, item);
2363
+ }
2364
+ add(item) {
2365
+ if (this.check) {
2366
+ const err = checkListItem(this._field, this._arr.length, item);
2367
+ if (err) {
2368
+ throw err;
2369
+ }
2370
+ }
2371
+ this._arr.push(listItemToLocal(this._field, item));
2372
+ return void 0;
2373
+ }
2374
+ clear() {
2375
+ this._arr.splice(0, this._arr.length);
2376
+ }
2377
+ [Symbol.iterator]() {
2378
+ return this.values();
2379
+ }
2380
+ keys() {
2381
+ return this._arr.keys();
2382
+ }
2383
+ *values() {
2384
+ for (const item of this._arr) {
2385
+ yield listItemToReflect(this._field, item, this.check);
2386
+ }
2387
+ }
2388
+ *entries() {
2389
+ for (let i = 0; i < this._arr.length; i++) {
2390
+ yield [i, listItemToReflect(this._field, this._arr[i], this.check)];
2391
+ }
2392
+ }
2393
+ };
2394
+ var ReflectMapImpl = class {
2395
+ constructor(field, unsafeInput, check = true) {
2396
+ this.obj = this[unsafeLocal] = unsafeInput !== null && unsafeInput !== void 0 ? unsafeInput : {};
2397
+ this.check = check;
2398
+ this._field = field;
2399
+ }
2400
+ field() {
2401
+ return this._field;
2402
+ }
2403
+ set(key, value) {
2404
+ if (this.check) {
2405
+ const err = checkMapEntry(this._field, key, value);
2406
+ if (err) {
2407
+ throw err;
2408
+ }
2409
+ }
2410
+ this.obj[mapKeyToLocal(key)] = mapValueToLocal(this._field, value);
2411
+ return this;
2412
+ }
2413
+ delete(key) {
2414
+ const k = mapKeyToLocal(key);
2415
+ const has = Object.prototype.hasOwnProperty.call(this.obj, k);
2416
+ if (has) {
2417
+ delete this.obj[k];
2418
+ }
2419
+ return has;
2420
+ }
2421
+ clear() {
2422
+ for (const key of Object.keys(this.obj)) {
2423
+ delete this.obj[key];
2424
+ }
2425
+ }
2426
+ get(key) {
2427
+ let val = this.obj[mapKeyToLocal(key)];
2428
+ if (val !== void 0) {
2429
+ val = mapValueToReflect(this._field, val, this.check);
2430
+ }
2431
+ return val;
2432
+ }
2433
+ has(key) {
2434
+ return Object.prototype.hasOwnProperty.call(this.obj, mapKeyToLocal(key));
2435
+ }
2436
+ *keys() {
2437
+ for (const objKey of Object.keys(this.obj)) {
2438
+ yield mapKeyToReflect(objKey, this._field.mapKey);
2439
+ }
2440
+ }
2441
+ *entries() {
2442
+ for (const objEntry of Object.entries(this.obj)) {
2443
+ yield [
2444
+ mapKeyToReflect(objEntry[0], this._field.mapKey),
2445
+ mapValueToReflect(this._field, objEntry[1], this.check)
2446
+ ];
2447
+ }
2448
+ }
2449
+ [Symbol.iterator]() {
2450
+ return this.entries();
2451
+ }
2452
+ get size() {
2453
+ return Object.keys(this.obj).length;
2454
+ }
2455
+ *values() {
2456
+ for (const val of Object.values(this.obj)) {
2457
+ yield mapValueToReflect(this._field, val, this.check);
2458
+ }
2459
+ }
2460
+ forEach(callbackfn, thisArg) {
2461
+ for (const mapEntry of this.entries()) {
2462
+ callbackfn.call(thisArg, mapEntry[1], mapEntry[0], this);
2463
+ }
2464
+ }
2465
+ };
2466
+ function messageToLocal(field, value) {
2467
+ if (!isReflectMessage(value)) {
2468
+ return value;
2469
+ }
2470
+ if (isWrapper(value.message) && !field.oneof && field.fieldKind == "message") {
2471
+ return value.message.value;
2472
+ }
2473
+ if (value.desc.typeName == "google.protobuf.Struct" && field.parent.typeName != "google.protobuf.Value") {
2474
+ return wktStructToLocal(value.message);
2475
+ }
2476
+ return value.message;
2477
+ }
2478
+ function messageToReflect(field, value, check) {
2479
+ if (value !== void 0) {
2480
+ if (isWrapperDesc(field.message) && !field.oneof && field.fieldKind == "message") {
2481
+ value = {
2482
+ $typeName: field.message.typeName,
2483
+ value: longToReflect(field.message.fields[0], value)
2484
+ };
2485
+ } else if (field.message.typeName == "google.protobuf.Struct" && field.parent.typeName != "google.protobuf.Value" && isObject(value)) {
2486
+ value = wktStructToReflect(value);
2487
+ }
2488
+ }
2489
+ return new ReflectMessageImpl(field.message, value, check);
2490
+ }
2491
+ function listItemToLocal(field, value) {
2492
+ if (field.listKind == "message") {
2493
+ return messageToLocal(field, value);
2494
+ }
2495
+ return longToLocal(field, value);
2496
+ }
2497
+ function listItemToReflect(field, value, check) {
2498
+ if (field.listKind == "message") {
2499
+ return messageToReflect(field, value, check);
2500
+ }
2501
+ return longToReflect(field, value);
2502
+ }
2503
+ function mapValueToLocal(field, value) {
2504
+ if (field.mapKind == "message") {
2505
+ return messageToLocal(field, value);
2506
+ }
2507
+ return longToLocal(field, value);
2508
+ }
2509
+ function mapValueToReflect(field, value, check) {
2510
+ if (field.mapKind == "message") {
2511
+ return messageToReflect(field, value, check);
2512
+ }
2513
+ return value;
2514
+ }
2515
+ function mapKeyToLocal(key) {
2516
+ return typeof key == "string" || typeof key == "number" ? key : String(key);
2517
+ }
2518
+ function mapKeyToReflect(key, type) {
2519
+ switch (type) {
2520
+ case ScalarType.STRING:
2521
+ return key;
2522
+ case ScalarType.INT32:
2523
+ case ScalarType.FIXED32:
2524
+ case ScalarType.UINT32:
2525
+ case ScalarType.SFIXED32:
2526
+ case ScalarType.SINT32: {
2527
+ const n = Number.parseInt(key);
2528
+ if (Number.isFinite(n)) {
2529
+ return n;
2530
+ }
2531
+ break;
2532
+ }
2533
+ case ScalarType.BOOL:
2534
+ switch (key) {
2535
+ case "true":
2536
+ return true;
2537
+ case "false":
2538
+ return false;
2539
+ }
2540
+ break;
2541
+ case ScalarType.UINT64:
2542
+ case ScalarType.FIXED64:
2543
+ try {
2544
+ return protoInt64.uParse(key);
2545
+ } catch (_a) {
2546
+ }
2547
+ break;
2548
+ default:
2549
+ try {
2550
+ return protoInt64.parse(key);
2551
+ } catch (_b) {
2552
+ }
2553
+ break;
2554
+ }
2555
+ return key;
2556
+ }
2557
+ function longToReflect(field, value) {
2558
+ switch (field.scalar) {
2559
+ case ScalarType.INT64:
2560
+ case ScalarType.SFIXED64:
2561
+ case ScalarType.SINT64:
2562
+ if ("longAsString" in field && field.longAsString && typeof value == "string") {
2563
+ value = protoInt64.parse(value);
2564
+ }
2565
+ break;
2566
+ case ScalarType.FIXED64:
2567
+ case ScalarType.UINT64:
2568
+ if ("longAsString" in field && field.longAsString && typeof value == "string") {
2569
+ value = protoInt64.uParse(value);
2570
+ }
2571
+ break;
2572
+ }
2573
+ return value;
2574
+ }
2575
+ function longToLocal(field, value) {
2576
+ switch (field.scalar) {
2577
+ case ScalarType.INT64:
2578
+ case ScalarType.SFIXED64:
2579
+ case ScalarType.SINT64:
2580
+ if ("longAsString" in field && field.longAsString) {
2581
+ value = String(value);
2582
+ } else if (typeof value == "string" || typeof value == "number") {
2583
+ value = protoInt64.parse(value);
2584
+ }
2585
+ break;
2586
+ case ScalarType.FIXED64:
2587
+ case ScalarType.UINT64:
2588
+ if ("longAsString" in field && field.longAsString) {
2589
+ value = String(value);
2590
+ } else if (typeof value == "string" || typeof value == "number") {
2591
+ value = protoInt64.uParse(value);
2592
+ }
2593
+ break;
2594
+ }
2595
+ return value;
2596
+ }
2597
+ function wktStructToReflect(json) {
2598
+ const struct = {
2599
+ $typeName: "google.protobuf.Struct",
2600
+ fields: {}
2601
+ };
2602
+ if (isObject(json)) {
2603
+ for (const [k, v] of Object.entries(json)) {
2604
+ struct.fields[k] = wktValueToReflect(v);
2605
+ }
2606
+ }
2607
+ return struct;
2608
+ }
2609
+ function wktStructToLocal(val) {
2610
+ const json = {};
2611
+ for (const [k, v] of Object.entries(val.fields)) {
2612
+ json[k] = wktValueToLocal(v);
2613
+ }
2614
+ return json;
2615
+ }
2616
+ function wktValueToLocal(val) {
2617
+ switch (val.kind.case) {
2618
+ case "structValue":
2619
+ return wktStructToLocal(val.kind.value);
2620
+ case "listValue":
2621
+ return val.kind.value.values.map(wktValueToLocal);
2622
+ case "nullValue":
2623
+ case void 0:
2624
+ return null;
2625
+ default:
2626
+ return val.kind.value;
2627
+ }
2628
+ }
2629
+ function wktValueToReflect(json) {
2630
+ const value = {
2631
+ $typeName: "google.protobuf.Value",
2632
+ kind: { case: void 0 }
2633
+ };
2634
+ switch (typeof json) {
2635
+ case "number":
2636
+ value.kind = { case: "numberValue", value: json };
2637
+ break;
2638
+ case "string":
2639
+ value.kind = { case: "stringValue", value: json };
2640
+ break;
2641
+ case "boolean":
2642
+ value.kind = { case: "boolValue", value: json };
2643
+ break;
2644
+ case "object":
2645
+ if (json === null) {
2646
+ const nullValue = 0;
2647
+ value.kind = { case: "nullValue", value: nullValue };
2648
+ } else if (Array.isArray(json)) {
2649
+ const listValue = {
2650
+ $typeName: "google.protobuf.ListValue",
2651
+ values: []
2652
+ };
2653
+ if (Array.isArray(json)) {
2654
+ for (const e of json) {
2655
+ listValue.values.push(wktValueToReflect(e));
2656
+ }
2657
+ }
2658
+ value.kind = {
2659
+ case: "listValue",
2660
+ value: listValue
2661
+ };
2662
+ } else {
2663
+ value.kind = {
2664
+ case: "structValue",
2665
+ value: wktStructToReflect(json)
2666
+ };
2667
+ }
2668
+ break;
2669
+ }
2670
+ return value;
2671
+ }
2672
+
2673
+ // node_modules/@bufbuild/protobuf/dist/esm/codegenv2/message.js
2674
+ function messageDesc(file, path, ...paths) {
2675
+ return paths.reduce((acc, cur) => acc.nestedMessages[cur], file.messages[path]);
2676
+ }
2677
+
2678
+ // node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/descriptor_pb.js
2679
+ var file_google_protobuf_descriptor = /* @__PURE__ */ boot({ "name": "google/protobuf/descriptor.proto", "package": "google.protobuf", "messageType": [{ "name": "FileDescriptorSet", "field": [{ "name": "file", "number": 1, "type": 11, "label": 3, "typeName": ".google.protobuf.FileDescriptorProto" }], "extensionRange": [{ "start": 536e6, "end": 536000001 }] }, { "name": "FileDescriptorProto", "field": [{ "name": "name", "number": 1, "type": 9, "label": 1 }, { "name": "package", "number": 2, "type": 9, "label": 1 }, { "name": "dependency", "number": 3, "type": 9, "label": 3 }, { "name": "public_dependency", "number": 10, "type": 5, "label": 3 }, { "name": "weak_dependency", "number": 11, "type": 5, "label": 3 }, { "name": "option_dependency", "number": 15, "type": 9, "label": 3 }, { "name": "message_type", "number": 4, "type": 11, "label": 3, "typeName": ".google.protobuf.DescriptorProto" }, { "name": "enum_type", "number": 5, "type": 11, "label": 3, "typeName": ".google.protobuf.EnumDescriptorProto" }, { "name": "service", "number": 6, "type": 11, "label": 3, "typeName": ".google.protobuf.ServiceDescriptorProto" }, { "name": "extension", "number": 7, "type": 11, "label": 3, "typeName": ".google.protobuf.FieldDescriptorProto" }, { "name": "options", "number": 8, "type": 11, "label": 1, "typeName": ".google.protobuf.FileOptions" }, { "name": "source_code_info", "number": 9, "type": 11, "label": 1, "typeName": ".google.protobuf.SourceCodeInfo" }, { "name": "syntax", "number": 12, "type": 9, "label": 1 }, { "name": "edition", "number": 14, "type": 14, "label": 1, "typeName": ".google.protobuf.Edition" }] }, { "name": "DescriptorProto", "field": [{ "name": "name", "number": 1, "type": 9, "label": 1 }, { "name": "field", "number": 2, "type": 11, "label": 3, "typeName": ".google.protobuf.FieldDescriptorProto" }, { "name": "extension", "number": 6, "type": 11, "label": 3, "typeName": ".google.protobuf.FieldDescriptorProto" }, { "name": "nested_type", "number": 3, "type": 11, "label": 3, "typeName": ".google.protobuf.DescriptorProto" }, { "name": "enum_type", "number": 4, "type": 11, "label": 3, "typeName": ".google.protobuf.EnumDescriptorProto" }, { "name": "extension_range", "number": 5, "type": 11, "label": 3, "typeName": ".google.protobuf.DescriptorProto.ExtensionRange" }, { "name": "oneof_decl", "number": 8, "type": 11, "label": 3, "typeName": ".google.protobuf.OneofDescriptorProto" }, { "name": "options", "number": 7, "type": 11, "label": 1, "typeName": ".google.protobuf.MessageOptions" }, { "name": "reserved_range", "number": 9, "type": 11, "label": 3, "typeName": ".google.protobuf.DescriptorProto.ReservedRange" }, { "name": "reserved_name", "number": 10, "type": 9, "label": 3 }, { "name": "visibility", "number": 11, "type": 14, "label": 1, "typeName": ".google.protobuf.SymbolVisibility" }], "nestedType": [{ "name": "ExtensionRange", "field": [{ "name": "start", "number": 1, "type": 5, "label": 1 }, { "name": "end", "number": 2, "type": 5, "label": 1 }, { "name": "options", "number": 3, "type": 11, "label": 1, "typeName": ".google.protobuf.ExtensionRangeOptions" }] }, { "name": "ReservedRange", "field": [{ "name": "start", "number": 1, "type": 5, "label": 1 }, { "name": "end", "number": 2, "type": 5, "label": 1 }] }] }, { "name": "ExtensionRangeOptions", "field": [{ "name": "uninterpreted_option", "number": 999, "type": 11, "label": 3, "typeName": ".google.protobuf.UninterpretedOption" }, { "name": "declaration", "number": 2, "type": 11, "label": 3, "typeName": ".google.protobuf.ExtensionRangeOptions.Declaration", "options": { "retention": 2 } }, { "name": "features", "number": 50, "type": 11, "label": 1, "typeName": ".google.protobuf.FeatureSet" }, { "name": "verification", "number": 3, "type": 14, "label": 1, "typeName": ".google.protobuf.ExtensionRangeOptions.VerificationState", "defaultValue": "UNVERIFIED", "options": { "retention": 2 } }], "nestedType": [{ "name": "Declaration", "field": [{ "name": "number", "number": 1, "type": 5, "label": 1 }, { "name": "full_name", "number": 2, "type": 9, "label": 1 }, { "name": "type", "number": 3, "type": 9, "label": 1 }, { "name": "reserved", "number": 5, "type": 8, "label": 1 }, { "name": "repeated", "number": 6, "type": 8, "label": 1 }] }], "enumType": [{ "name": "VerificationState", "value": [{ "name": "DECLARATION", "number": 0 }, { "name": "UNVERIFIED", "number": 1 }] }], "extensionRange": [{ "start": 1e3, "end": 536870912 }] }, { "name": "FieldDescriptorProto", "field": [{ "name": "name", "number": 1, "type": 9, "label": 1 }, { "name": "number", "number": 3, "type": 5, "label": 1 }, { "name": "label", "number": 4, "type": 14, "label": 1, "typeName": ".google.protobuf.FieldDescriptorProto.Label" }, { "name": "type", "number": 5, "type": 14, "label": 1, "typeName": ".google.protobuf.FieldDescriptorProto.Type" }, { "name": "type_name", "number": 6, "type": 9, "label": 1 }, { "name": "extendee", "number": 2, "type": 9, "label": 1 }, { "name": "default_value", "number": 7, "type": 9, "label": 1 }, { "name": "oneof_index", "number": 9, "type": 5, "label": 1 }, { "name": "json_name", "number": 10, "type": 9, "label": 1 }, { "name": "options", "number": 8, "type": 11, "label": 1, "typeName": ".google.protobuf.FieldOptions" }, { "name": "proto3_optional", "number": 17, "type": 8, "label": 1 }], "enumType": [{ "name": "Type", "value": [{ "name": "TYPE_DOUBLE", "number": 1 }, { "name": "TYPE_FLOAT", "number": 2 }, { "name": "TYPE_INT64", "number": 3 }, { "name": "TYPE_UINT64", "number": 4 }, { "name": "TYPE_INT32", "number": 5 }, { "name": "TYPE_FIXED64", "number": 6 }, { "name": "TYPE_FIXED32", "number": 7 }, { "name": "TYPE_BOOL", "number": 8 }, { "name": "TYPE_STRING", "number": 9 }, { "name": "TYPE_GROUP", "number": 10 }, { "name": "TYPE_MESSAGE", "number": 11 }, { "name": "TYPE_BYTES", "number": 12 }, { "name": "TYPE_UINT32", "number": 13 }, { "name": "TYPE_ENUM", "number": 14 }, { "name": "TYPE_SFIXED32", "number": 15 }, { "name": "TYPE_SFIXED64", "number": 16 }, { "name": "TYPE_SINT32", "number": 17 }, { "name": "TYPE_SINT64", "number": 18 }] }, { "name": "Label", "value": [{ "name": "LABEL_OPTIONAL", "number": 1 }, { "name": "LABEL_REPEATED", "number": 3 }, { "name": "LABEL_REQUIRED", "number": 2 }] }] }, { "name": "OneofDescriptorProto", "field": [{ "name": "name", "number": 1, "type": 9, "label": 1 }, { "name": "options", "number": 2, "type": 11, "label": 1, "typeName": ".google.protobuf.OneofOptions" }] }, { "name": "EnumDescriptorProto", "field": [{ "name": "name", "number": 1, "type": 9, "label": 1 }, { "name": "value", "number": 2, "type": 11, "label": 3, "typeName": ".google.protobuf.EnumValueDescriptorProto" }, { "name": "options", "number": 3, "type": 11, "label": 1, "typeName": ".google.protobuf.EnumOptions" }, { "name": "reserved_range", "number": 4, "type": 11, "label": 3, "typeName": ".google.protobuf.EnumDescriptorProto.EnumReservedRange" }, { "name": "reserved_name", "number": 5, "type": 9, "label": 3 }, { "name": "visibility", "number": 6, "type": 14, "label": 1, "typeName": ".google.protobuf.SymbolVisibility" }], "nestedType": [{ "name": "EnumReservedRange", "field": [{ "name": "start", "number": 1, "type": 5, "label": 1 }, { "name": "end", "number": 2, "type": 5, "label": 1 }] }] }, { "name": "EnumValueDescriptorProto", "field": [{ "name": "name", "number": 1, "type": 9, "label": 1 }, { "name": "number", "number": 2, "type": 5, "label": 1 }, { "name": "options", "number": 3, "type": 11, "label": 1, "typeName": ".google.protobuf.EnumValueOptions" }] }, { "name": "ServiceDescriptorProto", "field": [{ "name": "name", "number": 1, "type": 9, "label": 1 }, { "name": "method", "number": 2, "type": 11, "label": 3, "typeName": ".google.protobuf.MethodDescriptorProto" }, { "name": "options", "number": 3, "type": 11, "label": 1, "typeName": ".google.protobuf.ServiceOptions" }] }, { "name": "MethodDescriptorProto", "field": [{ "name": "name", "number": 1, "type": 9, "label": 1 }, { "name": "input_type", "number": 2, "type": 9, "label": 1 }, { "name": "output_type", "number": 3, "type": 9, "label": 1 }, { "name": "options", "number": 4, "type": 11, "label": 1, "typeName": ".google.protobuf.MethodOptions" }, { "name": "client_streaming", "number": 5, "type": 8, "label": 1, "defaultValue": "false" }, { "name": "server_streaming", "number": 6, "type": 8, "label": 1, "defaultValue": "false" }] }, { "name": "FileOptions", "field": [{ "name": "java_package", "number": 1, "type": 9, "label": 1 }, { "name": "java_outer_classname", "number": 8, "type": 9, "label": 1 }, { "name": "java_multiple_files", "number": 10, "type": 8, "label": 1, "defaultValue": "false" }, { "name": "java_generate_equals_and_hash", "number": 20, "type": 8, "label": 1, "options": { "deprecated": true } }, { "name": "java_string_check_utf8", "number": 27, "type": 8, "label": 1, "defaultValue": "false" }, { "name": "optimize_for", "number": 9, "type": 14, "label": 1, "typeName": ".google.protobuf.FileOptions.OptimizeMode", "defaultValue": "SPEED" }, { "name": "go_package", "number": 11, "type": 9, "label": 1 }, { "name": "cc_generic_services", "number": 16, "type": 8, "label": 1, "defaultValue": "false" }, { "name": "java_generic_services", "number": 17, "type": 8, "label": 1, "defaultValue": "false" }, { "name": "py_generic_services", "number": 18, "type": 8, "label": 1, "defaultValue": "false" }, { "name": "deprecated", "number": 23, "type": 8, "label": 1, "defaultValue": "false" }, { "name": "cc_enable_arenas", "number": 31, "type": 8, "label": 1, "defaultValue": "true" }, { "name": "objc_class_prefix", "number": 36, "type": 9, "label": 1 }, { "name": "csharp_namespace", "number": 37, "type": 9, "label": 1 }, { "name": "swift_prefix", "number": 39, "type": 9, "label": 1 }, { "name": "php_class_prefix", "number": 40, "type": 9, "label": 1 }, { "name": "php_namespace", "number": 41, "type": 9, "label": 1 }, { "name": "php_metadata_namespace", "number": 44, "type": 9, "label": 1 }, { "name": "ruby_package", "number": 45, "type": 9, "label": 1 }, { "name": "features", "number": 50, "type": 11, "label": 1, "typeName": ".google.protobuf.FeatureSet" }, { "name": "uninterpreted_option", "number": 999, "type": 11, "label": 3, "typeName": ".google.protobuf.UninterpretedOption" }], "enumType": [{ "name": "OptimizeMode", "value": [{ "name": "SPEED", "number": 1 }, { "name": "CODE_SIZE", "number": 2 }, { "name": "LITE_RUNTIME", "number": 3 }] }], "extensionRange": [{ "start": 1e3, "end": 536870912 }] }, { "name": "MessageOptions", "field": [{ "name": "message_set_wire_format", "number": 1, "type": 8, "label": 1, "defaultValue": "false" }, { "name": "no_standard_descriptor_accessor", "number": 2, "type": 8, "label": 1, "defaultValue": "false" }, { "name": "deprecated", "number": 3, "type": 8, "label": 1, "defaultValue": "false" }, { "name": "map_entry", "number": 7, "type": 8, "label": 1 }, { "name": "deprecated_legacy_json_field_conflicts", "number": 11, "type": 8, "label": 1, "options": { "deprecated": true } }, { "name": "features", "number": 12, "type": 11, "label": 1, "typeName": ".google.protobuf.FeatureSet" }, { "name": "uninterpreted_option", "number": 999, "type": 11, "label": 3, "typeName": ".google.protobuf.UninterpretedOption" }], "extensionRange": [{ "start": 1e3, "end": 536870912 }] }, { "name": "FieldOptions", "field": [{ "name": "ctype", "number": 1, "type": 14, "label": 1, "typeName": ".google.protobuf.FieldOptions.CType", "defaultValue": "STRING" }, { "name": "packed", "number": 2, "type": 8, "label": 1 }, { "name": "jstype", "number": 6, "type": 14, "label": 1, "typeName": ".google.protobuf.FieldOptions.JSType", "defaultValue": "JS_NORMAL" }, { "name": "lazy", "number": 5, "type": 8, "label": 1, "defaultValue": "false" }, { "name": "unverified_lazy", "number": 15, "type": 8, "label": 1, "defaultValue": "false" }, { "name": "deprecated", "number": 3, "type": 8, "label": 1, "defaultValue": "false" }, { "name": "weak", "number": 10, "type": 8, "label": 1, "defaultValue": "false", "options": { "deprecated": true } }, { "name": "debug_redact", "number": 16, "type": 8, "label": 1, "defaultValue": "false" }, { "name": "retention", "number": 17, "type": 14, "label": 1, "typeName": ".google.protobuf.FieldOptions.OptionRetention" }, { "name": "targets", "number": 19, "type": 14, "label": 3, "typeName": ".google.protobuf.FieldOptions.OptionTargetType" }, { "name": "edition_defaults", "number": 20, "type": 11, "label": 3, "typeName": ".google.protobuf.FieldOptions.EditionDefault" }, { "name": "features", "number": 21, "type": 11, "label": 1, "typeName": ".google.protobuf.FeatureSet" }, { "name": "feature_support", "number": 22, "type": 11, "label": 1, "typeName": ".google.protobuf.FieldOptions.FeatureSupport" }, { "name": "uninterpreted_option", "number": 999, "type": 11, "label": 3, "typeName": ".google.protobuf.UninterpretedOption" }], "nestedType": [{ "name": "EditionDefault", "field": [{ "name": "edition", "number": 3, "type": 14, "label": 1, "typeName": ".google.protobuf.Edition" }, { "name": "value", "number": 2, "type": 9, "label": 1 }] }, { "name": "FeatureSupport", "field": [{ "name": "edition_introduced", "number": 1, "type": 14, "label": 1, "typeName": ".google.protobuf.Edition" }, { "name": "edition_deprecated", "number": 2, "type": 14, "label": 1, "typeName": ".google.protobuf.Edition" }, { "name": "deprecation_warning", "number": 3, "type": 9, "label": 1 }, { "name": "edition_removed", "number": 4, "type": 14, "label": 1, "typeName": ".google.protobuf.Edition" }] }], "enumType": [{ "name": "CType", "value": [{ "name": "STRING", "number": 0 }, { "name": "CORD", "number": 1 }, { "name": "STRING_PIECE", "number": 2 }] }, { "name": "JSType", "value": [{ "name": "JS_NORMAL", "number": 0 }, { "name": "JS_STRING", "number": 1 }, { "name": "JS_NUMBER", "number": 2 }] }, { "name": "OptionRetention", "value": [{ "name": "RETENTION_UNKNOWN", "number": 0 }, { "name": "RETENTION_RUNTIME", "number": 1 }, { "name": "RETENTION_SOURCE", "number": 2 }] }, { "name": "OptionTargetType", "value": [{ "name": "TARGET_TYPE_UNKNOWN", "number": 0 }, { "name": "TARGET_TYPE_FILE", "number": 1 }, { "name": "TARGET_TYPE_EXTENSION_RANGE", "number": 2 }, { "name": "TARGET_TYPE_MESSAGE", "number": 3 }, { "name": "TARGET_TYPE_FIELD", "number": 4 }, { "name": "TARGET_TYPE_ONEOF", "number": 5 }, { "name": "TARGET_TYPE_ENUM", "number": 6 }, { "name": "TARGET_TYPE_ENUM_ENTRY", "number": 7 }, { "name": "TARGET_TYPE_SERVICE", "number": 8 }, { "name": "TARGET_TYPE_METHOD", "number": 9 }] }], "extensionRange": [{ "start": 1e3, "end": 536870912 }] }, { "name": "OneofOptions", "field": [{ "name": "features", "number": 1, "type": 11, "label": 1, "typeName": ".google.protobuf.FeatureSet" }, { "name": "uninterpreted_option", "number": 999, "type": 11, "label": 3, "typeName": ".google.protobuf.UninterpretedOption" }], "extensionRange": [{ "start": 1e3, "end": 536870912 }] }, { "name": "EnumOptions", "field": [{ "name": "allow_alias", "number": 2, "type": 8, "label": 1 }, { "name": "deprecated", "number": 3, "type": 8, "label": 1, "defaultValue": "false" }, { "name": "deprecated_legacy_json_field_conflicts", "number": 6, "type": 8, "label": 1, "options": { "deprecated": true } }, { "name": "features", "number": 7, "type": 11, "label": 1, "typeName": ".google.protobuf.FeatureSet" }, { "name": "uninterpreted_option", "number": 999, "type": 11, "label": 3, "typeName": ".google.protobuf.UninterpretedOption" }], "extensionRange": [{ "start": 1e3, "end": 536870912 }] }, { "name": "EnumValueOptions", "field": [{ "name": "deprecated", "number": 1, "type": 8, "label": 1, "defaultValue": "false" }, { "name": "features", "number": 2, "type": 11, "label": 1, "typeName": ".google.protobuf.FeatureSet" }, { "name": "debug_redact", "number": 3, "type": 8, "label": 1, "defaultValue": "false" }, { "name": "feature_support", "number": 4, "type": 11, "label": 1, "typeName": ".google.protobuf.FieldOptions.FeatureSupport" }, { "name": "uninterpreted_option", "number": 999, "type": 11, "label": 3, "typeName": ".google.protobuf.UninterpretedOption" }], "extensionRange": [{ "start": 1e3, "end": 536870912 }] }, { "name": "ServiceOptions", "field": [{ "name": "features", "number": 34, "type": 11, "label": 1, "typeName": ".google.protobuf.FeatureSet" }, { "name": "deprecated", "number": 33, "type": 8, "label": 1, "defaultValue": "false" }, { "name": "uninterpreted_option", "number": 999, "type": 11, "label": 3, "typeName": ".google.protobuf.UninterpretedOption" }], "extensionRange": [{ "start": 1e3, "end": 536870912 }] }, { "name": "MethodOptions", "field": [{ "name": "deprecated", "number": 33, "type": 8, "label": 1, "defaultValue": "false" }, { "name": "idempotency_level", "number": 34, "type": 14, "label": 1, "typeName": ".google.protobuf.MethodOptions.IdempotencyLevel", "defaultValue": "IDEMPOTENCY_UNKNOWN" }, { "name": "features", "number": 35, "type": 11, "label": 1, "typeName": ".google.protobuf.FeatureSet" }, { "name": "uninterpreted_option", "number": 999, "type": 11, "label": 3, "typeName": ".google.protobuf.UninterpretedOption" }], "enumType": [{ "name": "IdempotencyLevel", "value": [{ "name": "IDEMPOTENCY_UNKNOWN", "number": 0 }, { "name": "NO_SIDE_EFFECTS", "number": 1 }, { "name": "IDEMPOTENT", "number": 2 }] }], "extensionRange": [{ "start": 1e3, "end": 536870912 }] }, { "name": "UninterpretedOption", "field": [{ "name": "name", "number": 2, "type": 11, "label": 3, "typeName": ".google.protobuf.UninterpretedOption.NamePart" }, { "name": "identifier_value", "number": 3, "type": 9, "label": 1 }, { "name": "positive_int_value", "number": 4, "type": 4, "label": 1 }, { "name": "negative_int_value", "number": 5, "type": 3, "label": 1 }, { "name": "double_value", "number": 6, "type": 1, "label": 1 }, { "name": "string_value", "number": 7, "type": 12, "label": 1 }, { "name": "aggregate_value", "number": 8, "type": 9, "label": 1 }], "nestedType": [{ "name": "NamePart", "field": [{ "name": "name_part", "number": 1, "type": 9, "label": 2 }, { "name": "is_extension", "number": 2, "type": 8, "label": 2 }] }] }, { "name": "FeatureSet", "field": [{ "name": "field_presence", "number": 1, "type": 14, "label": 1, "typeName": ".google.protobuf.FeatureSet.FieldPresence", "options": { "retention": 1, "targets": [4, 1], "editionDefaults": [{ "value": "EXPLICIT", "edition": 900 }, { "value": "IMPLICIT", "edition": 999 }, { "value": "EXPLICIT", "edition": 1e3 }] } }, { "name": "enum_type", "number": 2, "type": 14, "label": 1, "typeName": ".google.protobuf.FeatureSet.EnumType", "options": { "retention": 1, "targets": [6, 1], "editionDefaults": [{ "value": "CLOSED", "edition": 900 }, { "value": "OPEN", "edition": 999 }] } }, { "name": "repeated_field_encoding", "number": 3, "type": 14, "label": 1, "typeName": ".google.protobuf.FeatureSet.RepeatedFieldEncoding", "options": { "retention": 1, "targets": [4, 1], "editionDefaults": [{ "value": "EXPANDED", "edition": 900 }, { "value": "PACKED", "edition": 999 }] } }, { "name": "utf8_validation", "number": 4, "type": 14, "label": 1, "typeName": ".google.protobuf.FeatureSet.Utf8Validation", "options": { "retention": 1, "targets": [4, 1], "editionDefaults": [{ "value": "NONE", "edition": 900 }, { "value": "VERIFY", "edition": 999 }] } }, { "name": "message_encoding", "number": 5, "type": 14, "label": 1, "typeName": ".google.protobuf.FeatureSet.MessageEncoding", "options": { "retention": 1, "targets": [4, 1], "editionDefaults": [{ "value": "LENGTH_PREFIXED", "edition": 900 }] } }, { "name": "json_format", "number": 6, "type": 14, "label": 1, "typeName": ".google.protobuf.FeatureSet.JsonFormat", "options": { "retention": 1, "targets": [3, 6, 1], "editionDefaults": [{ "value": "LEGACY_BEST_EFFORT", "edition": 900 }, { "value": "ALLOW", "edition": 999 }] } }, { "name": "enforce_naming_style", "number": 7, "type": 14, "label": 1, "typeName": ".google.protobuf.FeatureSet.EnforceNamingStyle", "options": { "retention": 2, "targets": [1, 2, 3, 4, 5, 6, 7, 8, 9], "editionDefaults": [{ "value": "STYLE_LEGACY", "edition": 900 }, { "value": "STYLE2024", "edition": 1001 }] } }, { "name": "default_symbol_visibility", "number": 8, "type": 14, "label": 1, "typeName": ".google.protobuf.FeatureSet.VisibilityFeature.DefaultSymbolVisibility", "options": { "retention": 2, "targets": [1], "editionDefaults": [{ "value": "EXPORT_ALL", "edition": 900 }, { "value": "EXPORT_TOP_LEVEL", "edition": 1001 }] } }], "nestedType": [{ "name": "VisibilityFeature", "enumType": [{ "name": "DefaultSymbolVisibility", "value": [{ "name": "DEFAULT_SYMBOL_VISIBILITY_UNKNOWN", "number": 0 }, { "name": "EXPORT_ALL", "number": 1 }, { "name": "EXPORT_TOP_LEVEL", "number": 2 }, { "name": "LOCAL_ALL", "number": 3 }, { "name": "STRICT", "number": 4 }] }] }], "enumType": [{ "name": "FieldPresence", "value": [{ "name": "FIELD_PRESENCE_UNKNOWN", "number": 0 }, { "name": "EXPLICIT", "number": 1 }, { "name": "IMPLICIT", "number": 2 }, { "name": "LEGACY_REQUIRED", "number": 3 }] }, { "name": "EnumType", "value": [{ "name": "ENUM_TYPE_UNKNOWN", "number": 0 }, { "name": "OPEN", "number": 1 }, { "name": "CLOSED", "number": 2 }] }, { "name": "RepeatedFieldEncoding", "value": [{ "name": "REPEATED_FIELD_ENCODING_UNKNOWN", "number": 0 }, { "name": "PACKED", "number": 1 }, { "name": "EXPANDED", "number": 2 }] }, { "name": "Utf8Validation", "value": [{ "name": "UTF8_VALIDATION_UNKNOWN", "number": 0 }, { "name": "VERIFY", "number": 2 }, { "name": "NONE", "number": 3 }] }, { "name": "MessageEncoding", "value": [{ "name": "MESSAGE_ENCODING_UNKNOWN", "number": 0 }, { "name": "LENGTH_PREFIXED", "number": 1 }, { "name": "DELIMITED", "number": 2 }] }, { "name": "JsonFormat", "value": [{ "name": "JSON_FORMAT_UNKNOWN", "number": 0 }, { "name": "ALLOW", "number": 1 }, { "name": "LEGACY_BEST_EFFORT", "number": 2 }] }, { "name": "EnforceNamingStyle", "value": [{ "name": "ENFORCE_NAMING_STYLE_UNKNOWN", "number": 0 }, { "name": "STYLE2024", "number": 1 }, { "name": "STYLE_LEGACY", "number": 2 }] }], "extensionRange": [{ "start": 1e3, "end": 9995 }, { "start": 9995, "end": 1e4 }, { "start": 1e4, "end": 10001 }] }, { "name": "FeatureSetDefaults", "field": [{ "name": "defaults", "number": 1, "type": 11, "label": 3, "typeName": ".google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault" }, { "name": "minimum_edition", "number": 4, "type": 14, "label": 1, "typeName": ".google.protobuf.Edition" }, { "name": "maximum_edition", "number": 5, "type": 14, "label": 1, "typeName": ".google.protobuf.Edition" }], "nestedType": [{ "name": "FeatureSetEditionDefault", "field": [{ "name": "edition", "number": 3, "type": 14, "label": 1, "typeName": ".google.protobuf.Edition" }, { "name": "overridable_features", "number": 4, "type": 11, "label": 1, "typeName": ".google.protobuf.FeatureSet" }, { "name": "fixed_features", "number": 5, "type": 11, "label": 1, "typeName": ".google.protobuf.FeatureSet" }] }] }, { "name": "SourceCodeInfo", "field": [{ "name": "location", "number": 1, "type": 11, "label": 3, "typeName": ".google.protobuf.SourceCodeInfo.Location" }], "nestedType": [{ "name": "Location", "field": [{ "name": "path", "number": 1, "type": 5, "label": 3, "options": { "packed": true } }, { "name": "span", "number": 2, "type": 5, "label": 3, "options": { "packed": true } }, { "name": "leading_comments", "number": 3, "type": 9, "label": 1 }, { "name": "trailing_comments", "number": 4, "type": 9, "label": 1 }, { "name": "leading_detached_comments", "number": 6, "type": 9, "label": 3 }] }], "extensionRange": [{ "start": 536e6, "end": 536000001 }] }, { "name": "GeneratedCodeInfo", "field": [{ "name": "annotation", "number": 1, "type": 11, "label": 3, "typeName": ".google.protobuf.GeneratedCodeInfo.Annotation" }], "nestedType": [{ "name": "Annotation", "field": [{ "name": "path", "number": 1, "type": 5, "label": 3, "options": { "packed": true } }, { "name": "source_file", "number": 2, "type": 9, "label": 1 }, { "name": "begin", "number": 3, "type": 5, "label": 1 }, { "name": "end", "number": 4, "type": 5, "label": 1 }, { "name": "semantic", "number": 5, "type": 14, "label": 1, "typeName": ".google.protobuf.GeneratedCodeInfo.Annotation.Semantic" }], "enumType": [{ "name": "Semantic", "value": [{ "name": "NONE", "number": 0 }, { "name": "SET", "number": 1 }, { "name": "ALIAS", "number": 2 }] }] }] }], "enumType": [{ "name": "Edition", "value": [{ "name": "EDITION_UNKNOWN", "number": 0 }, { "name": "EDITION_LEGACY", "number": 900 }, { "name": "EDITION_PROTO2", "number": 998 }, { "name": "EDITION_PROTO3", "number": 999 }, { "name": "EDITION_2023", "number": 1e3 }, { "name": "EDITION_2024", "number": 1001 }, { "name": "EDITION_UNSTABLE", "number": 9999 }, { "name": "EDITION_1_TEST_ONLY", "number": 1 }, { "name": "EDITION_2_TEST_ONLY", "number": 2 }, { "name": "EDITION_99997_TEST_ONLY", "number": 99997 }, { "name": "EDITION_99998_TEST_ONLY", "number": 99998 }, { "name": "EDITION_99999_TEST_ONLY", "number": 99999 }, { "name": "EDITION_MAX", "number": 2147483647 }] }, { "name": "SymbolVisibility", "value": [{ "name": "VISIBILITY_UNSET", "number": 0 }, { "name": "VISIBILITY_LOCAL", "number": 1 }, { "name": "VISIBILITY_EXPORT", "number": 2 }] }] });
2680
+ var FileDescriptorProtoSchema = /* @__PURE__ */ messageDesc(file_google_protobuf_descriptor, 1);
2681
+ var ExtensionRangeOptions_VerificationState;
2682
+ (function(ExtensionRangeOptions_VerificationState2) {
2683
+ ExtensionRangeOptions_VerificationState2[ExtensionRangeOptions_VerificationState2["DECLARATION"] = 0] = "DECLARATION";
2684
+ ExtensionRangeOptions_VerificationState2[ExtensionRangeOptions_VerificationState2["UNVERIFIED"] = 1] = "UNVERIFIED";
2685
+ })(ExtensionRangeOptions_VerificationState || (ExtensionRangeOptions_VerificationState = {}));
2686
+ var FieldDescriptorProto_Type;
2687
+ (function(FieldDescriptorProto_Type2) {
2688
+ FieldDescriptorProto_Type2[FieldDescriptorProto_Type2["DOUBLE"] = 1] = "DOUBLE";
2689
+ FieldDescriptorProto_Type2[FieldDescriptorProto_Type2["FLOAT"] = 2] = "FLOAT";
2690
+ FieldDescriptorProto_Type2[FieldDescriptorProto_Type2["INT64"] = 3] = "INT64";
2691
+ FieldDescriptorProto_Type2[FieldDescriptorProto_Type2["UINT64"] = 4] = "UINT64";
2692
+ FieldDescriptorProto_Type2[FieldDescriptorProto_Type2["INT32"] = 5] = "INT32";
2693
+ FieldDescriptorProto_Type2[FieldDescriptorProto_Type2["FIXED64"] = 6] = "FIXED64";
2694
+ FieldDescriptorProto_Type2[FieldDescriptorProto_Type2["FIXED32"] = 7] = "FIXED32";
2695
+ FieldDescriptorProto_Type2[FieldDescriptorProto_Type2["BOOL"] = 8] = "BOOL";
2696
+ FieldDescriptorProto_Type2[FieldDescriptorProto_Type2["STRING"] = 9] = "STRING";
2697
+ FieldDescriptorProto_Type2[FieldDescriptorProto_Type2["GROUP"] = 10] = "GROUP";
2698
+ FieldDescriptorProto_Type2[FieldDescriptorProto_Type2["MESSAGE"] = 11] = "MESSAGE";
2699
+ FieldDescriptorProto_Type2[FieldDescriptorProto_Type2["BYTES"] = 12] = "BYTES";
2700
+ FieldDescriptorProto_Type2[FieldDescriptorProto_Type2["UINT32"] = 13] = "UINT32";
2701
+ FieldDescriptorProto_Type2[FieldDescriptorProto_Type2["ENUM"] = 14] = "ENUM";
2702
+ FieldDescriptorProto_Type2[FieldDescriptorProto_Type2["SFIXED32"] = 15] = "SFIXED32";
2703
+ FieldDescriptorProto_Type2[FieldDescriptorProto_Type2["SFIXED64"] = 16] = "SFIXED64";
2704
+ FieldDescriptorProto_Type2[FieldDescriptorProto_Type2["SINT32"] = 17] = "SINT32";
2705
+ FieldDescriptorProto_Type2[FieldDescriptorProto_Type2["SINT64"] = 18] = "SINT64";
2706
+ })(FieldDescriptorProto_Type || (FieldDescriptorProto_Type = {}));
2707
+ var FieldDescriptorProto_Label;
2708
+ (function(FieldDescriptorProto_Label2) {
2709
+ FieldDescriptorProto_Label2[FieldDescriptorProto_Label2["OPTIONAL"] = 1] = "OPTIONAL";
2710
+ FieldDescriptorProto_Label2[FieldDescriptorProto_Label2["REPEATED"] = 3] = "REPEATED";
2711
+ FieldDescriptorProto_Label2[FieldDescriptorProto_Label2["REQUIRED"] = 2] = "REQUIRED";
2712
+ })(FieldDescriptorProto_Label || (FieldDescriptorProto_Label = {}));
2713
+ var FileOptions_OptimizeMode;
2714
+ (function(FileOptions_OptimizeMode2) {
2715
+ FileOptions_OptimizeMode2[FileOptions_OptimizeMode2["SPEED"] = 1] = "SPEED";
2716
+ FileOptions_OptimizeMode2[FileOptions_OptimizeMode2["CODE_SIZE"] = 2] = "CODE_SIZE";
2717
+ FileOptions_OptimizeMode2[FileOptions_OptimizeMode2["LITE_RUNTIME"] = 3] = "LITE_RUNTIME";
2718
+ })(FileOptions_OptimizeMode || (FileOptions_OptimizeMode = {}));
2719
+ var FieldOptions_CType;
2720
+ (function(FieldOptions_CType2) {
2721
+ FieldOptions_CType2[FieldOptions_CType2["STRING"] = 0] = "STRING";
2722
+ FieldOptions_CType2[FieldOptions_CType2["CORD"] = 1] = "CORD";
2723
+ FieldOptions_CType2[FieldOptions_CType2["STRING_PIECE"] = 2] = "STRING_PIECE";
2724
+ })(FieldOptions_CType || (FieldOptions_CType = {}));
2725
+ var FieldOptions_JSType;
2726
+ (function(FieldOptions_JSType2) {
2727
+ FieldOptions_JSType2[FieldOptions_JSType2["JS_NORMAL"] = 0] = "JS_NORMAL";
2728
+ FieldOptions_JSType2[FieldOptions_JSType2["JS_STRING"] = 1] = "JS_STRING";
2729
+ FieldOptions_JSType2[FieldOptions_JSType2["JS_NUMBER"] = 2] = "JS_NUMBER";
2730
+ })(FieldOptions_JSType || (FieldOptions_JSType = {}));
2731
+ var FieldOptions_OptionRetention;
2732
+ (function(FieldOptions_OptionRetention2) {
2733
+ FieldOptions_OptionRetention2[FieldOptions_OptionRetention2["RETENTION_UNKNOWN"] = 0] = "RETENTION_UNKNOWN";
2734
+ FieldOptions_OptionRetention2[FieldOptions_OptionRetention2["RETENTION_RUNTIME"] = 1] = "RETENTION_RUNTIME";
2735
+ FieldOptions_OptionRetention2[FieldOptions_OptionRetention2["RETENTION_SOURCE"] = 2] = "RETENTION_SOURCE";
2736
+ })(FieldOptions_OptionRetention || (FieldOptions_OptionRetention = {}));
2737
+ var FieldOptions_OptionTargetType;
2738
+ (function(FieldOptions_OptionTargetType2) {
2739
+ FieldOptions_OptionTargetType2[FieldOptions_OptionTargetType2["TARGET_TYPE_UNKNOWN"] = 0] = "TARGET_TYPE_UNKNOWN";
2740
+ FieldOptions_OptionTargetType2[FieldOptions_OptionTargetType2["TARGET_TYPE_FILE"] = 1] = "TARGET_TYPE_FILE";
2741
+ FieldOptions_OptionTargetType2[FieldOptions_OptionTargetType2["TARGET_TYPE_EXTENSION_RANGE"] = 2] = "TARGET_TYPE_EXTENSION_RANGE";
2742
+ FieldOptions_OptionTargetType2[FieldOptions_OptionTargetType2["TARGET_TYPE_MESSAGE"] = 3] = "TARGET_TYPE_MESSAGE";
2743
+ FieldOptions_OptionTargetType2[FieldOptions_OptionTargetType2["TARGET_TYPE_FIELD"] = 4] = "TARGET_TYPE_FIELD";
2744
+ FieldOptions_OptionTargetType2[FieldOptions_OptionTargetType2["TARGET_TYPE_ONEOF"] = 5] = "TARGET_TYPE_ONEOF";
2745
+ FieldOptions_OptionTargetType2[FieldOptions_OptionTargetType2["TARGET_TYPE_ENUM"] = 6] = "TARGET_TYPE_ENUM";
2746
+ FieldOptions_OptionTargetType2[FieldOptions_OptionTargetType2["TARGET_TYPE_ENUM_ENTRY"] = 7] = "TARGET_TYPE_ENUM_ENTRY";
2747
+ FieldOptions_OptionTargetType2[FieldOptions_OptionTargetType2["TARGET_TYPE_SERVICE"] = 8] = "TARGET_TYPE_SERVICE";
2748
+ FieldOptions_OptionTargetType2[FieldOptions_OptionTargetType2["TARGET_TYPE_METHOD"] = 9] = "TARGET_TYPE_METHOD";
2749
+ })(FieldOptions_OptionTargetType || (FieldOptions_OptionTargetType = {}));
2750
+ var MethodOptions_IdempotencyLevel;
2751
+ (function(MethodOptions_IdempotencyLevel2) {
2752
+ MethodOptions_IdempotencyLevel2[MethodOptions_IdempotencyLevel2["IDEMPOTENCY_UNKNOWN"] = 0] = "IDEMPOTENCY_UNKNOWN";
2753
+ MethodOptions_IdempotencyLevel2[MethodOptions_IdempotencyLevel2["NO_SIDE_EFFECTS"] = 1] = "NO_SIDE_EFFECTS";
2754
+ MethodOptions_IdempotencyLevel2[MethodOptions_IdempotencyLevel2["IDEMPOTENT"] = 2] = "IDEMPOTENT";
2755
+ })(MethodOptions_IdempotencyLevel || (MethodOptions_IdempotencyLevel = {}));
2756
+ var FeatureSet_VisibilityFeature_DefaultSymbolVisibility;
2757
+ (function(FeatureSet_VisibilityFeature_DefaultSymbolVisibility2) {
2758
+ FeatureSet_VisibilityFeature_DefaultSymbolVisibility2[FeatureSet_VisibilityFeature_DefaultSymbolVisibility2["DEFAULT_SYMBOL_VISIBILITY_UNKNOWN"] = 0] = "DEFAULT_SYMBOL_VISIBILITY_UNKNOWN";
2759
+ FeatureSet_VisibilityFeature_DefaultSymbolVisibility2[FeatureSet_VisibilityFeature_DefaultSymbolVisibility2["EXPORT_ALL"] = 1] = "EXPORT_ALL";
2760
+ FeatureSet_VisibilityFeature_DefaultSymbolVisibility2[FeatureSet_VisibilityFeature_DefaultSymbolVisibility2["EXPORT_TOP_LEVEL"] = 2] = "EXPORT_TOP_LEVEL";
2761
+ FeatureSet_VisibilityFeature_DefaultSymbolVisibility2[FeatureSet_VisibilityFeature_DefaultSymbolVisibility2["LOCAL_ALL"] = 3] = "LOCAL_ALL";
2762
+ FeatureSet_VisibilityFeature_DefaultSymbolVisibility2[FeatureSet_VisibilityFeature_DefaultSymbolVisibility2["STRICT"] = 4] = "STRICT";
2763
+ })(FeatureSet_VisibilityFeature_DefaultSymbolVisibility || (FeatureSet_VisibilityFeature_DefaultSymbolVisibility = {}));
2764
+ var FeatureSet_FieldPresence;
2765
+ (function(FeatureSet_FieldPresence2) {
2766
+ FeatureSet_FieldPresence2[FeatureSet_FieldPresence2["FIELD_PRESENCE_UNKNOWN"] = 0] = "FIELD_PRESENCE_UNKNOWN";
2767
+ FeatureSet_FieldPresence2[FeatureSet_FieldPresence2["EXPLICIT"] = 1] = "EXPLICIT";
2768
+ FeatureSet_FieldPresence2[FeatureSet_FieldPresence2["IMPLICIT"] = 2] = "IMPLICIT";
2769
+ FeatureSet_FieldPresence2[FeatureSet_FieldPresence2["LEGACY_REQUIRED"] = 3] = "LEGACY_REQUIRED";
2770
+ })(FeatureSet_FieldPresence || (FeatureSet_FieldPresence = {}));
2771
+ var FeatureSet_EnumType;
2772
+ (function(FeatureSet_EnumType2) {
2773
+ FeatureSet_EnumType2[FeatureSet_EnumType2["ENUM_TYPE_UNKNOWN"] = 0] = "ENUM_TYPE_UNKNOWN";
2774
+ FeatureSet_EnumType2[FeatureSet_EnumType2["OPEN"] = 1] = "OPEN";
2775
+ FeatureSet_EnumType2[FeatureSet_EnumType2["CLOSED"] = 2] = "CLOSED";
2776
+ })(FeatureSet_EnumType || (FeatureSet_EnumType = {}));
2777
+ var FeatureSet_RepeatedFieldEncoding;
2778
+ (function(FeatureSet_RepeatedFieldEncoding2) {
2779
+ FeatureSet_RepeatedFieldEncoding2[FeatureSet_RepeatedFieldEncoding2["REPEATED_FIELD_ENCODING_UNKNOWN"] = 0] = "REPEATED_FIELD_ENCODING_UNKNOWN";
2780
+ FeatureSet_RepeatedFieldEncoding2[FeatureSet_RepeatedFieldEncoding2["PACKED"] = 1] = "PACKED";
2781
+ FeatureSet_RepeatedFieldEncoding2[FeatureSet_RepeatedFieldEncoding2["EXPANDED"] = 2] = "EXPANDED";
2782
+ })(FeatureSet_RepeatedFieldEncoding || (FeatureSet_RepeatedFieldEncoding = {}));
2783
+ var FeatureSet_Utf8Validation;
2784
+ (function(FeatureSet_Utf8Validation2) {
2785
+ FeatureSet_Utf8Validation2[FeatureSet_Utf8Validation2["UTF8_VALIDATION_UNKNOWN"] = 0] = "UTF8_VALIDATION_UNKNOWN";
2786
+ FeatureSet_Utf8Validation2[FeatureSet_Utf8Validation2["VERIFY"] = 2] = "VERIFY";
2787
+ FeatureSet_Utf8Validation2[FeatureSet_Utf8Validation2["NONE"] = 3] = "NONE";
2788
+ })(FeatureSet_Utf8Validation || (FeatureSet_Utf8Validation = {}));
2789
+ var FeatureSet_MessageEncoding;
2790
+ (function(FeatureSet_MessageEncoding2) {
2791
+ FeatureSet_MessageEncoding2[FeatureSet_MessageEncoding2["MESSAGE_ENCODING_UNKNOWN"] = 0] = "MESSAGE_ENCODING_UNKNOWN";
2792
+ FeatureSet_MessageEncoding2[FeatureSet_MessageEncoding2["LENGTH_PREFIXED"] = 1] = "LENGTH_PREFIXED";
2793
+ FeatureSet_MessageEncoding2[FeatureSet_MessageEncoding2["DELIMITED"] = 2] = "DELIMITED";
2794
+ })(FeatureSet_MessageEncoding || (FeatureSet_MessageEncoding = {}));
2795
+ var FeatureSet_JsonFormat;
2796
+ (function(FeatureSet_JsonFormat2) {
2797
+ FeatureSet_JsonFormat2[FeatureSet_JsonFormat2["JSON_FORMAT_UNKNOWN"] = 0] = "JSON_FORMAT_UNKNOWN";
2798
+ FeatureSet_JsonFormat2[FeatureSet_JsonFormat2["ALLOW"] = 1] = "ALLOW";
2799
+ FeatureSet_JsonFormat2[FeatureSet_JsonFormat2["LEGACY_BEST_EFFORT"] = 2] = "LEGACY_BEST_EFFORT";
2800
+ })(FeatureSet_JsonFormat || (FeatureSet_JsonFormat = {}));
2801
+ var FeatureSet_EnforceNamingStyle;
2802
+ (function(FeatureSet_EnforceNamingStyle2) {
2803
+ FeatureSet_EnforceNamingStyle2[FeatureSet_EnforceNamingStyle2["ENFORCE_NAMING_STYLE_UNKNOWN"] = 0] = "ENFORCE_NAMING_STYLE_UNKNOWN";
2804
+ FeatureSet_EnforceNamingStyle2[FeatureSet_EnforceNamingStyle2["STYLE2024"] = 1] = "STYLE2024";
2805
+ FeatureSet_EnforceNamingStyle2[FeatureSet_EnforceNamingStyle2["STYLE_LEGACY"] = 2] = "STYLE_LEGACY";
2806
+ })(FeatureSet_EnforceNamingStyle || (FeatureSet_EnforceNamingStyle = {}));
2807
+ var GeneratedCodeInfo_Annotation_Semantic;
2808
+ (function(GeneratedCodeInfo_Annotation_Semantic2) {
2809
+ GeneratedCodeInfo_Annotation_Semantic2[GeneratedCodeInfo_Annotation_Semantic2["NONE"] = 0] = "NONE";
2810
+ GeneratedCodeInfo_Annotation_Semantic2[GeneratedCodeInfo_Annotation_Semantic2["SET"] = 1] = "SET";
2811
+ GeneratedCodeInfo_Annotation_Semantic2[GeneratedCodeInfo_Annotation_Semantic2["ALIAS"] = 2] = "ALIAS";
2812
+ })(GeneratedCodeInfo_Annotation_Semantic || (GeneratedCodeInfo_Annotation_Semantic = {}));
2813
+ var Edition;
2814
+ (function(Edition2) {
2815
+ Edition2[Edition2["EDITION_UNKNOWN"] = 0] = "EDITION_UNKNOWN";
2816
+ Edition2[Edition2["EDITION_LEGACY"] = 900] = "EDITION_LEGACY";
2817
+ Edition2[Edition2["EDITION_PROTO2"] = 998] = "EDITION_PROTO2";
2818
+ Edition2[Edition2["EDITION_PROTO3"] = 999] = "EDITION_PROTO3";
2819
+ Edition2[Edition2["EDITION_2023"] = 1e3] = "EDITION_2023";
2820
+ Edition2[Edition2["EDITION_2024"] = 1001] = "EDITION_2024";
2821
+ Edition2[Edition2["EDITION_UNSTABLE"] = 9999] = "EDITION_UNSTABLE";
2822
+ Edition2[Edition2["EDITION_1_TEST_ONLY"] = 1] = "EDITION_1_TEST_ONLY";
2823
+ Edition2[Edition2["EDITION_2_TEST_ONLY"] = 2] = "EDITION_2_TEST_ONLY";
2824
+ Edition2[Edition2["EDITION_99997_TEST_ONLY"] = 99997] = "EDITION_99997_TEST_ONLY";
2825
+ Edition2[Edition2["EDITION_99998_TEST_ONLY"] = 99998] = "EDITION_99998_TEST_ONLY";
2826
+ Edition2[Edition2["EDITION_99999_TEST_ONLY"] = 99999] = "EDITION_99999_TEST_ONLY";
2827
+ Edition2[Edition2["EDITION_MAX"] = 2147483647] = "EDITION_MAX";
2828
+ })(Edition || (Edition = {}));
2829
+ var SymbolVisibility;
2830
+ (function(SymbolVisibility2) {
2831
+ SymbolVisibility2[SymbolVisibility2["VISIBILITY_UNSET"] = 0] = "VISIBILITY_UNSET";
2832
+ SymbolVisibility2[SymbolVisibility2["VISIBILITY_LOCAL"] = 1] = "VISIBILITY_LOCAL";
2833
+ SymbolVisibility2[SymbolVisibility2["VISIBILITY_EXPORT"] = 2] = "VISIBILITY_EXPORT";
2834
+ })(SymbolVisibility || (SymbolVisibility = {}));
2835
+
2836
+ // node_modules/@bufbuild/protobuf/dist/esm/from-binary.js
2837
+ var readDefaults = {
2838
+ readUnknownFields: true
2839
+ };
2840
+ function makeReadOptions(options) {
2841
+ return options ? Object.assign(Object.assign({}, readDefaults), options) : readDefaults;
2842
+ }
2843
+ function fromBinary(schema, bytes, options) {
2844
+ const msg = reflect(schema, void 0, false);
2845
+ readMessage(msg, new BinaryReader(bytes), makeReadOptions(options), false, bytes.byteLength);
2846
+ return msg.message;
2847
+ }
2848
+ function readMessage(message, reader, options, delimited, lengthOrDelimitedFieldNo) {
2849
+ var _a;
2850
+ const end = delimited ? reader.len : reader.pos + lengthOrDelimitedFieldNo;
2851
+ let fieldNo;
2852
+ let wireType;
2853
+ const unknownFields = (_a = message.getUnknown()) !== null && _a !== void 0 ? _a : [];
2854
+ while (reader.pos < end) {
2855
+ [fieldNo, wireType] = reader.tag();
2856
+ if (delimited && wireType == WireType.EndGroup) {
2857
+ break;
2858
+ }
2859
+ const field = message.findNumber(fieldNo);
2860
+ if (!field) {
2861
+ const data = reader.skip(wireType, fieldNo);
2862
+ if (options.readUnknownFields) {
2863
+ unknownFields.push({ no: fieldNo, wireType, data });
2864
+ }
2865
+ continue;
2866
+ }
2867
+ readField(message, reader, field, wireType, options);
2868
+ }
2869
+ if (delimited) {
2870
+ if (wireType != WireType.EndGroup || fieldNo !== lengthOrDelimitedFieldNo) {
2871
+ throw new Error("invalid end group tag");
2872
+ }
2873
+ }
2874
+ if (unknownFields.length > 0) {
2875
+ message.setUnknown(unknownFields);
2876
+ }
2877
+ }
2878
+ function readField(message, reader, field, wireType, options) {
2879
+ var _a;
2880
+ switch (field.fieldKind) {
2881
+ case "scalar":
2882
+ message.set(field, readScalar(reader, field.scalar));
2883
+ break;
2884
+ case "enum":
2885
+ const val = readScalar(reader, ScalarType.INT32);
2886
+ if (field.enum.open) {
2887
+ message.set(field, val);
2888
+ } else {
2889
+ const ok = field.enum.values.some((v) => v.number === val);
2890
+ if (ok) {
2891
+ message.set(field, val);
2892
+ } else if (options.readUnknownFields) {
2893
+ const bytes = [];
2894
+ varint32write(val, bytes);
2895
+ const unknownFields = (_a = message.getUnknown()) !== null && _a !== void 0 ? _a : [];
2896
+ unknownFields.push({
2897
+ no: field.number,
2898
+ wireType,
2899
+ data: new Uint8Array(bytes)
2900
+ });
2901
+ message.setUnknown(unknownFields);
2902
+ }
2903
+ }
2904
+ break;
2905
+ case "message":
2906
+ message.set(field, readMessageField(reader, options, field, message.get(field)));
2907
+ break;
2908
+ case "list":
2909
+ readListField(reader, wireType, message.get(field), options);
2910
+ break;
2911
+ case "map":
2912
+ readMapEntry(reader, message.get(field), options);
2913
+ break;
2914
+ }
2915
+ }
2916
+ function readMapEntry(reader, map, options) {
2917
+ const field = map.field();
2918
+ let key;
2919
+ let val;
2920
+ const len = reader.uint32();
2921
+ const end = reader.pos + len;
2922
+ while (reader.pos < end) {
2923
+ const [fieldNo] = reader.tag();
2924
+ switch (fieldNo) {
2925
+ case 1:
2926
+ key = readScalar(reader, field.mapKey);
2927
+ break;
2928
+ case 2:
2929
+ switch (field.mapKind) {
2930
+ case "scalar":
2931
+ val = readScalar(reader, field.scalar);
2932
+ break;
2933
+ case "enum":
2934
+ val = reader.int32();
2935
+ break;
2936
+ case "message":
2937
+ val = readMessageField(reader, options, field);
2938
+ break;
2939
+ }
2940
+ break;
2941
+ }
2942
+ }
2943
+ if (key === void 0) {
2944
+ key = scalarZeroValue(field.mapKey, false);
2945
+ }
2946
+ if (val === void 0) {
2947
+ switch (field.mapKind) {
2948
+ case "scalar":
2949
+ val = scalarZeroValue(field.scalar, false);
2950
+ break;
2951
+ case "enum":
2952
+ val = field.enum.values[0].number;
2953
+ break;
2954
+ case "message":
2955
+ val = reflect(field.message, void 0, false);
2956
+ break;
2957
+ }
2958
+ }
2959
+ map.set(key, val);
2960
+ }
2961
+ function readListField(reader, wireType, list, options) {
2962
+ var _a;
2963
+ const field = list.field();
2964
+ if (field.listKind === "message") {
2965
+ list.add(readMessageField(reader, options, field));
2966
+ return;
2967
+ }
2968
+ const scalarType = (_a = field.scalar) !== null && _a !== void 0 ? _a : ScalarType.INT32;
2969
+ const packed = wireType == WireType.LengthDelimited && scalarType != ScalarType.STRING && scalarType != ScalarType.BYTES;
2970
+ if (!packed) {
2971
+ list.add(readScalar(reader, scalarType));
2972
+ return;
2973
+ }
2974
+ const e = reader.uint32() + reader.pos;
2975
+ while (reader.pos < e) {
2976
+ list.add(readScalar(reader, scalarType));
2977
+ }
2978
+ }
2979
+ function readMessageField(reader, options, field, mergeMessage) {
2980
+ const delimited = field.delimitedEncoding;
2981
+ const message = mergeMessage !== null && mergeMessage !== void 0 ? mergeMessage : reflect(field.message, void 0, false);
2982
+ readMessage(message, reader, options, delimited, delimited ? field.number : reader.uint32());
2983
+ return message;
2984
+ }
2985
+ function readScalar(reader, type) {
2986
+ switch (type) {
2987
+ case ScalarType.STRING:
2988
+ return reader.string();
2989
+ case ScalarType.BOOL:
2990
+ return reader.bool();
2991
+ case ScalarType.DOUBLE:
2992
+ return reader.double();
2993
+ case ScalarType.FLOAT:
2994
+ return reader.float();
2995
+ case ScalarType.INT32:
2996
+ return reader.int32();
2997
+ case ScalarType.INT64:
2998
+ return reader.int64();
2999
+ case ScalarType.UINT64:
3000
+ return reader.uint64();
3001
+ case ScalarType.FIXED64:
3002
+ return reader.fixed64();
3003
+ case ScalarType.BYTES:
3004
+ return reader.bytes();
3005
+ case ScalarType.FIXED32:
3006
+ return reader.fixed32();
3007
+ case ScalarType.SFIXED32:
3008
+ return reader.sfixed32();
3009
+ case ScalarType.SFIXED64:
3010
+ return reader.sfixed64();
3011
+ case ScalarType.SINT64:
3012
+ return reader.sint64();
3013
+ case ScalarType.UINT32:
3014
+ return reader.uint32();
3015
+ case ScalarType.SINT32:
3016
+ return reader.sint32();
3017
+ }
3018
+ }
3019
+
3020
+ // node_modules/@bufbuild/protobuf/dist/esm/codegenv2/file.js
3021
+ function fileDesc(b64, imports) {
3022
+ var _a;
3023
+ const root = fromBinary(FileDescriptorProtoSchema, base64Decode(b64));
3024
+ root.messageType.forEach(restoreJsonNames);
3025
+ root.dependency = (_a = imports === null || imports === void 0 ? void 0 : imports.map((f) => f.proto.name)) !== null && _a !== void 0 ? _a : [];
3026
+ const reg = createFileRegistry(root, (protoFileName) => imports === null || imports === void 0 ? void 0 : imports.find((f) => f.proto.name === protoFileName));
3027
+ return reg.getFile(root.name);
3028
+ }
3029
+
3030
+ // node_modules/@bufbuild/protobuf/dist/esm/codegenv2/service.js
3031
+ function serviceDesc(file, path, ...paths) {
3032
+ if (paths.length > 0) {
3033
+ throw new Error();
3034
+ }
3035
+ return file.services[path];
3036
+ }
3037
+
3038
+ // node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/timestamp_pb.js
3039
+ var file_google_protobuf_timestamp = /* @__PURE__ */ fileDesc("Ch9nb29nbGUvcHJvdG9idWYvdGltZXN0YW1wLnByb3RvEg9nb29nbGUucHJvdG9idWYiKwoJVGltZXN0YW1wEg8KB3NlY29uZHMYASABKAMSDQoFbmFub3MYAiABKAVChQEKE2NvbS5nb29nbGUucHJvdG9idWZCDlRpbWVzdGFtcFByb3RvUAFaMmdvb2dsZS5nb2xhbmcub3JnL3Byb3RvYnVmL3R5cGVzL2tub3duL3RpbWVzdGFtcHBi+AEBogIDR1BCqgIeR29vZ2xlLlByb3RvYnVmLldlbGxLbm93blR5cGVzYgZwcm90bzM");
3040
+
3041
+ // src/gen/common_pb.ts
3042
+ var file_common = /* @__PURE__ */ fileDesc("Cgxjb21tb24ucHJvdG8SJXRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEiOwoKTW9uZXlWYWx1ZRIQCghjdXJyZW5jeRgBIAEoCRINCgV1bml0cxgCIAEoAxIMCgRuYW5vGAMgASgFIigKCVF1b3RhdGlvbhINCgV1bml0cxgBIAEoAxIMCgRuYW5vGAIgASgFIkUKC1BpbmdSZXF1ZXN0Ei0KBHRpbWUYASABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSACIAQFCBwoFX3RpbWUiQQoRUGluZ0RlbGF5U2V0dGluZ3MSGgoNcGluZ19kZWxheV9tcxgPIAEoBUgAiAEBQhAKDl9waW5nX2RlbGF5X21zIpUBCgRQaW5nEigKBHRpbWUYASABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhEKCXN0cmVhbV9pZBgCIAEoCRI6ChFwaW5nX3JlcXVlc3RfdGltZRgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAIgBAUIUChJfcGluZ19yZXF1ZXN0X3RpbWUiKgoEUGFnZRINCgVsaW1pdBgBIAEoBRITCgtwYWdlX251bWJlchgCIAEoBSJHCgxQYWdlUmVzcG9uc2USDQoFbGltaXQYASABKAUSEwoLcGFnZV9udW1iZXIYAiABKAUSEwoLdG90YWxfY291bnQYAyABKAUiWAoQUmVzcG9uc2VNZXRhZGF0YRITCgt0cmFja2luZ19pZBgqIAEoCRIvCgtzZXJ2ZXJfdGltZRgrIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiSwoJQnJhbmREYXRhEhEKCWxvZ29fbmFtZRgBIAEoCRIXCg9sb2dvX2Jhc2VfY29sb3IYAiABKAkSEgoKdGV4dF9jb2xvchgDIAEoCSIsCgtFcnJvckRldGFpbBIMCgRjb2RlGAEgASgJEg8KB21lc3NhZ2UYAyABKAkq6wIKDkluc3RydW1lbnRUeXBlEh8KG0lOU1RSVU1FTlRfVFlQRV9VTlNQRUNJRklFRBAAEhgKFElOU1RSVU1FTlRfVFlQRV9CT05EEAESGQoVSU5TVFJVTUVOVF9UWVBFX1NIQVJFEAISHAoYSU5TVFJVTUVOVF9UWVBFX0NVUlJFTkNZEAMSFwoTSU5TVFJVTUVOVF9UWVBFX0VURhAEEhsKF0lOU1RSVU1FTlRfVFlQRV9GVVRVUkVTEAUSFgoSSU5TVFJVTUVOVF9UWVBFX1NQEAYSGgoWSU5TVFJVTUVOVF9UWVBFX09QVElPThAHEigKJElOU1RSVU1FTlRfVFlQRV9DTEVBUklOR19DRVJUSUZJQ0FURRAIEhkKFUlOU1RSVU1FTlRfVFlQRV9JTkRFWBAJEh0KGUlOU1RSVU1FTlRfVFlQRV9DT01NT0RJVFkQChIXChNJTlNUUlVNRU5UX1RZUEVfREZBEAsqbAoQSW5zdHJ1bWVudFN0YXR1cxIhCh1JTlNUUlVNRU5UX1NUQVRVU19VTlNQRUNJRklFRBAAEhoKFklOU1RSVU1FTlRfU1RBVFVTX0JBU0UQARIZChVJTlNUUlVNRU5UX1NUQVRVU19BTEwQAiqBBwoVU2VjdXJpdHlUcmFkaW5nU3RhdHVzEicKI1NFQ1VSSVRZX1RSQURJTkdfU1RBVFVTX1VOU1BFQ0lGSUVEEAASNQoxU0VDVVJJVFlfVFJBRElOR19TVEFUVVNfTk9UX0FWQUlMQUJMRV9GT1JfVFJBRElORxABEioKJlNFQ1VSSVRZX1RSQURJTkdfU1RBVFVTX09QRU5JTkdfUEVSSU9EEAISKgomU0VDVVJJVFlfVFJBRElOR19TVEFUVVNfQ0xPU0lOR19QRVJJT0QQAxIsCihTRUNVUklUWV9UUkFESU5HX1NUQVRVU19CUkVBS19JTl9UUkFESU5HEAQSKgomU0VDVVJJVFlfVFJBRElOR19TVEFUVVNfTk9STUFMX1RSQURJTkcQBRIrCidTRUNVUklUWV9UUkFESU5HX1NUQVRVU19DTE9TSU5HX0FVQ1RJT04QBhItCilTRUNVUklUWV9UUkFESU5HX1NUQVRVU19EQVJLX1BPT0xfQVVDVElPThAHEiwKKFNFQ1VSSVRZX1RSQURJTkdfU1RBVFVTX0RJU0NSRVRFX0FVQ1RJT04QCBIyCi5TRUNVUklUWV9UUkFESU5HX1NUQVRVU19PUEVOSU5HX0FVQ1RJT05fUEVSSU9EEAkSPAo4U0VDVVJJVFlfVFJBRElOR19TVEFUVVNfVFJBRElOR19BVF9DTE9TSU5HX0FVQ1RJT05fUFJJQ0UQChIsCihTRUNVUklUWV9UUkFESU5HX1NUQVRVU19TRVNTSU9OX0FTU0lHTkVEEAsSKQolU0VDVVJJVFlfVFJBRElOR19TVEFUVVNfU0VTU0lPTl9DTE9TRRAMEigKJFNFQ1VSSVRZX1RSQURJTkdfU1RBVFVTX1NFU1NJT05fT1BFThANEjEKLVNFQ1VSSVRZX1RSQURJTkdfU1RBVFVTX0RFQUxFUl9OT1JNQUxfVFJBRElORxAOEjMKL1NFQ1VSSVRZX1RSQURJTkdfU1RBVFVTX0RFQUxFUl9CUkVBS19JTl9UUkFESU5HEA8SPAo4U0VDVVJJVFlfVFJBRElOR19TVEFUVVNfREVBTEVSX05PVF9BVkFJTEFCTEVfRk9SX1RSQURJTkcQEBIxCi1TRUNVUklUWV9UUkFESU5HX1NUQVRVU19TVEFCSUxJWkFUSU9OX0FVQ1RJT04QESpWCglQcmljZVR5cGUSGgoWUFJJQ0VfVFlQRV9VTlNQRUNJRklFRBAAEhQKEFBSSUNFX1RZUEVfUE9JTlQQARIXChNQUklDRV9UWVBFX0NVUlJFTkNZEAIqjwEKGFJlc3VsdFN1YnNjcmlwdGlvblN0YXR1cxIqCiZSRVNVTFRfU1VCU0NSSVBUSU9OX1NUQVRVU19VTlNQRUNJRklFRBAAEiEKHVJFU1VMVF9TVUJTQ1JJUFRJT05fU1RBVFVTX09LEAESJAogUkVTVUxUX1NVQlNDUklQVElPTl9TVEFUVVNfRVJST1IQDSqNAQoMUmVhbEV4Y2hhbmdlEh0KGVJFQUxfRVhDSEFOR0VfVU5TUEVDSUZJRUQQABIWChJSRUFMX0VYQ0hBTkdFX01PRVgQARIVChFSRUFMX0VYQ0hBTkdFX1JUUxACEhUKEVJFQUxfRVhDSEFOR0VfT1RDEAMSGAoUUkVBTF9FWENIQU5HRV9ERUFMRVIQBEJhChxydS50aW5rb2ZmLnBpYXBpLmNvbnRyYWN0LnYxUAFaDC4vO2ludmVzdGFwaaICBVRJQVBJqgIUVGlua29mZi5JbnZlc3RBcGkuVjHKAhFUaW5rb2ZmXEludmVzdFxWMWIGcHJvdG8z", [file_google_protobuf_timestamp]);
3043
+
3044
+ // src/gen/google/api/field_behavior_pb.ts
3045
+ var file_google_api_field_behavior = /* @__PURE__ */ fileDesc("Ch9nb29nbGUvYXBpL2ZpZWxkX2JlaGF2aW9yLnByb3RvEgpnb29nbGUuYXBpKqYBCg1GaWVsZEJlaGF2aW9yEh4KGkZJRUxEX0JFSEFWSU9SX1VOU1BFQ0lGSUVEEAASDAoIT1BUSU9OQUwQARIMCghSRVFVSVJFRBACEg8KC09VVFBVVF9PTkxZEAMSDgoKSU5QVVRfT05MWRAEEg0KCUlNTVVUQUJMRRAFEhIKDlVOT1JERVJFRF9MSVNUEAYSFQoRTk9OX0VNUFRZX0RFRkFVTFQQBzpgCg5maWVsZF9iZWhhdmlvchIdLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE9wdGlvbnMYnAggAygOMhkuZ29vZ2xlLmFwaS5GaWVsZEJlaGF2aW9yUg1maWVsZEJlaGF2aW9yQnAKDmNvbS5nb29nbGUuYXBpQhJGaWVsZEJlaGF2aW9yUHJvdG9QAVpBZ29vZ2xlLmdvbGFuZy5vcmcvZ2VucHJvdG8vZ29vZ2xlYXBpcy9hcGkvYW5ub3RhdGlvbnM7YW5ub3RhdGlvbnOiAgRHQVBJYgZwcm90bzM", [file_google_protobuf_descriptor]);
3046
+
3047
+ // src/gen/instruments_pb.ts
3048
+ var file_instruments = /* @__PURE__ */ fileDesc("ChFpbnN0cnVtZW50cy5wcm90bxIldGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MSKpAQoXVHJhZGluZ1NjaGVkdWxlc1JlcXVlc3QSFQoIZXhjaGFuZ2UYASABKAlIAIgBARItCgRmcm9tGAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgBiAEBEisKAnRvGAMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgCiAEBQgsKCV9leGNoYW5nZUIHCgVfZnJvbUIFCgNfdG8iZQoYVHJhZGluZ1NjaGVkdWxlc1Jlc3BvbnNlEkkKCWV4Y2hhbmdlcxgBIAMoCzI2LnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuVHJhZGluZ1NjaGVkdWxlImQKD1RyYWRpbmdTY2hlZHVsZRIQCghleGNoYW5nZRgBIAEoCRI/CgRkYXlzGAIgAygLMjEudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5UcmFkaW5nRGF5IpcHCgpUcmFkaW5nRGF5EigKBGRhdGUYASABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhYKDmlzX3RyYWRpbmdfZGF5GAIgASgIEi4KCnN0YXJ0X3RpbWUYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEiwKCGVuZF90aW1lGAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBI+ChpvcGVuaW5nX2F1Y3Rpb25fc3RhcnRfdGltZRgHIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASPAoYY2xvc2luZ19hdWN0aW9uX2VuZF90aW1lGAggASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBJGCiJldmVuaW5nX29wZW5pbmdfYXVjdGlvbl9zdGFydF90aW1lGAkgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBI2ChJldmVuaW5nX3N0YXJ0X3RpbWUYCiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjQKEGV2ZW5pbmdfZW5kX3RpbWUYCyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjcKE2NsZWFyaW5nX3N0YXJ0X3RpbWUYDCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjUKEWNsZWFyaW5nX2VuZF90aW1lGA0gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBI4ChRwcmVtYXJrZXRfc3RhcnRfdGltZRgOIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASNgoScHJlbWFya2V0X2VuZF90aW1lGA8gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBI+ChpjbG9zaW5nX2F1Y3Rpb25fc3RhcnRfdGltZRgQIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASPAoYb3BlbmluZ19hdWN0aW9uX2VuZF90aW1lGBEgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBJJCglpbnRlcnZhbHMYEiADKAsyNi50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlRyYWRpbmdJbnRlcnZhbEoECAUQBkoECAYQByKdAQoRSW5zdHJ1bWVudFJlcXVlc3QSTgoHaWRfdHlwZRgBIAEoDjI3LnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuSW5zdHJ1bWVudElkVHlwZUIE4kEBAhIXCgpjbGFzc19jb2RlGAIgASgJSACIAQESEAoCaWQYAyABKAlCBOJBAQJCDQoLX2NsYXNzX2NvZGUi/AEKEkluc3RydW1lbnRzUmVxdWVzdBJXChFpbnN0cnVtZW50X3N0YXR1cxgBIAEoDjI3LnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuSW5zdHJ1bWVudFN0YXR1c0gAiAEBEl8KE2luc3RydW1lbnRfZXhjaGFuZ2UYAiABKA4yPS50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLkluc3RydW1lbnRFeGNoYW5nZVR5cGVIAYgBAUIUChJfaW5zdHJ1bWVudF9zdGF0dXNCFgoUX2luc3RydW1lbnRfZXhjaGFuZ2UixgEKFEZpbHRlck9wdGlvbnNSZXF1ZXN0EhwKD2Jhc2ljX2Fzc2V0X3VpZBgBIAEoCUgAiAEBEiUKGGJhc2ljX2Fzc2V0X3Bvc2l0aW9uX3VpZBgCIAEoCUgBiAEBEiAKE2Jhc2ljX2luc3RydW1lbnRfaWQYAyABKAlIAogBAUISChBfYmFzaWNfYXNzZXRfdWlkQhsKGV9iYXNpY19hc3NldF9wb3NpdGlvbl91aWRCFgoUX2Jhc2ljX2luc3RydW1lbnRfaWQiTwoMQm9uZFJlc3BvbnNlEj8KCmluc3RydW1lbnQYASABKAsyKy50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLkJvbmQiUQoNQm9uZHNSZXNwb25zZRJACgtpbnN0cnVtZW50cxgBIAMoCzIrLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuQm9uZCKyAQoVR2V0Qm9uZENvdXBvbnNSZXF1ZXN0EhAKBGZpZ2kYASABKAlCAhgBEi0KBGZyb20YAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSACIAQESKwoCdG8YAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAGIAQESGwoNaW5zdHJ1bWVudF9pZBgEIAEoCUIE4kEBAkIHCgVfZnJvbUIFCgNfdG8iVwoWR2V0Qm9uZENvdXBvbnNSZXNwb25zZRI9CgZldmVudHMYASADKAsyLS50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLkNvdXBvbiLvAgoUR2V0Qm9uZEV2ZW50c1JlcXVlc3QSLQoEZnJvbRgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAIgBARIrCgJ0bxgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAYgBARIbCg1pbnN0cnVtZW50X2lkGAQgASgJQgTiQQECElMKBHR5cGUYBSABKA4yRS50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLkdldEJvbmRFdmVudHNSZXF1ZXN0LkV2ZW50VHlwZSJ5CglFdmVudFR5cGUSGgoWRVZFTlRfVFlQRV9VTlNQRUNJRklFRBAAEhIKDkVWRU5UX1RZUEVfQ1BOEAESEwoPRVZFTlRfVFlQRV9DQUxMEAISEgoORVZFTlRfVFlQRV9NVFkQAxITCg9FVkVOVF9UWVBFX0NPTlYQBEIHCgVfZnJvbUIFCgNfdG8i8QgKFUdldEJvbmRFdmVudHNSZXNwb25zZRJWCgZldmVudHMYASADKAsyRi50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLkdldEJvbmRFdmVudHNSZXNwb25zZS5Cb25kRXZlbnQa/wcKCUJvbmRFdmVudBIVCg1pbnN0cnVtZW50X2lkGAIgASgJEhQKDGV2ZW50X251bWJlchgDIAEoBRIuCgpldmVudF9kYXRlGAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBJZCgpldmVudF90eXBlGAUgASgOMkUudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5HZXRCb25kRXZlbnRzUmVxdWVzdC5FdmVudFR5cGUSSQoPZXZlbnRfdG90YWxfdm9sGAYgASgLMjAudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5RdW90YXRpb24SLAoIZml4X2RhdGUYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi0KCXJhdGVfZGF0ZRgIIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASMAoMZGVmYXVsdF9kYXRlGAkgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIxCg1yZWFsX3BheV9kYXRlGAogASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIsCghwYXlfZGF0ZRgLIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASRwoMcGF5X29uZV9ib25kGAwgASgLMjEudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5Nb25leVZhbHVlEkkKDm1vbmV5X2Zsb3dfdmFsGA0gASgLMjEudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5Nb25leVZhbHVlEhEKCWV4ZWN1dGlvbhgOIAEoCRIWCg5vcGVyYXRpb25fdHlwZRgPIAEoCRI/CgV2YWx1ZRgQIAEoCzIwLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuUXVvdGF0aW9uEgwKBG5vdGUYESABKAkSHgoWY29udmVydF90b19maW5fdG9vbF9pZBgSIAEoCRI1ChFjb3Vwb25fc3RhcnRfZGF0ZRgTIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASMwoPY291cG9uX2VuZF9kYXRlGBQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIVCg1jb3Vwb25fcGVyaW9kGBUgASgFEk4KFGNvdXBvbl9pbnRlcmVzdF9yYXRlGBYgASgLMjAudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5RdW90YXRpb24ioAMKBkNvdXBvbhIMCgRmaWdpGAEgASgJEi8KC2NvdXBvbl9kYXRlGAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIVCg1jb3Vwb25fbnVtYmVyGAMgASgDEiwKCGZpeF9kYXRlGAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBJHCgxwYXlfb25lX2JvbmQYBSABKAsyMS50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLk1vbmV5VmFsdWUSRgoLY291cG9uX3R5cGUYBiABKA4yMS50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLkNvdXBvblR5cGUSNQoRY291cG9uX3N0YXJ0X2RhdGUYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjMKD2NvdXBvbl9lbmRfZGF0ZRgIIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASFQoNY291cG9uX3BlcmlvZBgJIAEoBSJXChBDdXJyZW5jeVJlc3BvbnNlEkMKCmluc3RydW1lbnQYASABKAsyLy50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLkN1cnJlbmN5IloKEkN1cnJlbmNpZXNSZXNwb25zZRJECgtpbnN0cnVtZW50cxgBIAMoCzIvLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuQ3VycmVuY3kiTQoLRXRmUmVzcG9uc2USPgoKaW5zdHJ1bWVudBgBIAEoCzIqLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuRXRmIk8KDEV0ZnNSZXNwb25zZRI/CgtpbnN0cnVtZW50cxgBIAMoCzIqLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuRXRmIlMKDkZ1dHVyZVJlc3BvbnNlEkEKCmluc3RydW1lbnQYASABKAsyLS50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLkZ1dHVyZSJVCg9GdXR1cmVzUmVzcG9uc2USQgoLaW5zdHJ1bWVudHMYASADKAsyLS50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLkZ1dHVyZSJTCg5PcHRpb25SZXNwb25zZRJBCgppbnN0cnVtZW50GAEgASgLMi0udGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5PcHRpb24iVQoPT3B0aW9uc1Jlc3BvbnNlEkIKC2luc3RydW1lbnRzGAEgAygLMi0udGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5PcHRpb24ioxEKBk9wdGlvbhILCgN1aWQYASABKAkSFAoMcG9zaXRpb25fdWlkGAIgASgJEg4KBnRpY2tlchgDIAEoCRISCgpjbGFzc19jb2RlGAQgASgJEiAKGGJhc2ljX2Fzc2V0X3Bvc2l0aW9uX3VpZBgFIAEoCRJUCg50cmFkaW5nX3N0YXR1cxgVIAEoDjI8LnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuU2VjdXJpdHlUcmFkaW5nU3RhdHVzEkoKDXJlYWxfZXhjaGFuZ2UYHyABKA4yMy50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlJlYWxFeGNoYW5nZRJJCglkaXJlY3Rpb24YKSABKA4yNi50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLk9wdGlvbkRpcmVjdGlvbhJOCgxwYXltZW50X3R5cGUYKiABKA4yOC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLk9wdGlvblBheW1lbnRUeXBlEkEKBXN0eWxlGCsgASgOMjIudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5PcHRpb25TdHlsZRJUCg9zZXR0bGVtZW50X3R5cGUYLCABKA4yOy50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLk9wdGlvblNldHRsZW1lbnRUeXBlEgwKBG5hbWUYZSABKAkSEAoIY3VycmVuY3kYbyABKAkSGwoTc2V0dGxlbWVudF9jdXJyZW5jeRhwIAEoCRITCgphc3NldF90eXBlGIMBIAEoCRIUCgtiYXNpY19hc3NldBiEASABKAkSEQoIZXhjaGFuZ2UYjQEgASgJEhgKD2NvdW50cnlfb2ZfcmlzaxiXASABKAkSHQoUY291bnRyeV9vZl9yaXNrX25hbWUYmAEgASgJEg8KBnNlY3RvchihASABKAkSQAoFYnJhbmQYogEgASgLMjAudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5CcmFuZERhdGESDAoDbG90GMkBIAEoBRJLChBiYXNpY19hc3NldF9zaXplGNMBIAEoCzIwLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuUXVvdGF0aW9uEkQKBWtsb25nGN0BIAEoCzIwLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuUXVvdGF0aW9uQgIYARJFCgZrc2hvcnQY3gEgASgLMjAudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5RdW90YXRpb25CAhgBEkAKBWRsb25nGN8BIAEoCzIwLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuUXVvdGF0aW9uEkEKBmRzaG9ydBjgASABKAsyMC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlF1b3RhdGlvbhJECglkbG9uZ19taW4Y4QEgASgLMjAudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5RdW90YXRpb24SRQoKZHNob3J0X21pbhjiASABKAsyMC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlF1b3RhdGlvbhJOChNtaW5fcHJpY2VfaW5jcmVtZW50GOcBIAEoCzIwLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuUXVvdGF0aW9uEkgKDHN0cmlrZV9wcmljZRjxASABKAsyMS50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLk1vbmV5VmFsdWUSRwoMZGxvbmdfY2xpZW50GKICIAEoCzIwLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuUXVvdGF0aW9uEkgKDWRzaG9ydF9jbGllbnQYowIgASgLMjAudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5RdW90YXRpb24SNAoPZXhwaXJhdGlvbl9kYXRlGK0CIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASNQoQZmlyc3RfdHJhZGVfZGF0ZRi3AiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjQKD2xhc3RfdHJhZGVfZGF0ZRi4AiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjsKFmZpcnN0XzFtaW5fY2FuZGxlX2RhdGUYwQIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBI7ChZmaXJzdF8xZGF5X2NhbmRsZV9kYXRlGMICIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASGwoSc2hvcnRfZW5hYmxlZF9mbGFnGJEDIAEoCBIVCgxmb3JfaWlzX2ZsYWcYkgMgASgIEhEKCG90Y19mbGFnGJMDIAEoCBIbChJidXlfYXZhaWxhYmxlX2ZsYWcYlAMgASgIEhwKE3NlbGxfYXZhaWxhYmxlX2ZsYWcYlQMgASgIEh8KFmZvcl9xdWFsX2ludmVzdG9yX2ZsYWcYlgMgASgIEhUKDHdlZWtlbmRfZmxhZxiXAyABKAgSGQoQYmxvY2tlZF90Y2FfZmxhZxiYAyABKAgSIQoYYXBpX3RyYWRlX2F2YWlsYWJsZV9mbGFnGJkDIAEoCBIXCg5yZXF1aXJlZF90ZXN0cxiaAyADKAkiUQoNU2hhcmVSZXNwb25zZRJACgppbnN0cnVtZW50GAEgASgLMiwudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5TaGFyZSJTCg5TaGFyZXNSZXNwb25zZRJBCgtpbnN0cnVtZW50cxgBIAMoCzIsLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuU2hhcmUiYwoWU3RydWN0dXJlZE5vdGVSZXNwb25zZRJJCgppbnN0cnVtZW50GAEgASgLMjUudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5TdHJ1Y3R1cmVkTm90ZSJlChdTdHJ1Y3R1cmVkTm90ZXNSZXNwb25zZRJKCgtpbnN0cnVtZW50cxgBIAMoCzI1LnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuU3RydWN0dXJlZE5vdGUiuhIKBEJvbmQSDAoEZmlnaRgBIAEoCRIOCgZ0aWNrZXIYAiABKAkSEgoKY2xhc3NfY29kZRgDIAEoCRIMCgRpc2luGAQgASgJEgsKA2xvdBgFIAEoBRIQCghjdXJyZW5jeRgGIAEoCRJDCgVrbG9uZxgHIAEoCzIwLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuUXVvdGF0aW9uQgIYARJECgZrc2hvcnQYCCABKAsyMC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlF1b3RhdGlvbkICGAESPwoFZGxvbmcYCSABKAsyMC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlF1b3RhdGlvbhJACgZkc2hvcnQYCiABKAsyMC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlF1b3RhdGlvbhJDCglkbG9uZ19taW4YCyABKAsyMC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlF1b3RhdGlvbhJECgpkc2hvcnRfbWluGAwgASgLMjAudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5RdW90YXRpb24SGgoSc2hvcnRfZW5hYmxlZF9mbGFnGA0gASgIEgwKBG5hbWUYDyABKAkSEAoIZXhjaGFuZ2UYECABKAkSIAoYY291cG9uX3F1YW50aXR5X3Blcl95ZWFyGBEgASgFEjEKDW1hdHVyaXR5X2RhdGUYEiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEkIKB25vbWluYWwYEyABKAsyMS50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLk1vbmV5VmFsdWUSSgoPaW5pdGlhbF9ub21pbmFsGBQgASgLMjEudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5Nb25leVZhbHVlEjIKDnN0YXRlX3JlZ19kYXRlGBUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIyCg5wbGFjZW1lbnRfZGF0ZRgWIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASSgoPcGxhY2VtZW50X3ByaWNlGBcgASgLMjEudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5Nb25leVZhbHVlEkQKCWFjaV92YWx1ZRgYIAEoCzIxLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuTW9uZXlWYWx1ZRIXCg9jb3VudHJ5X29mX3Jpc2sYGSABKAkSHAoUY291bnRyeV9vZl9yaXNrX25hbWUYGiABKAkSDgoGc2VjdG9yGBsgASgJEhIKCmlzc3VlX2tpbmQYHCABKAkSEgoKaXNzdWVfc2l6ZRgdIAEoAxIXCg9pc3N1ZV9zaXplX3BsYW4YHiABKAMSVAoOdHJhZGluZ19zdGF0dXMYHyABKA4yPC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlNlY3VyaXR5VHJhZGluZ1N0YXR1cxIQCghvdGNfZmxhZxggIAEoCBIaChJidXlfYXZhaWxhYmxlX2ZsYWcYISABKAgSGwoTc2VsbF9hdmFpbGFibGVfZmxhZxgiIAEoCBIcChRmbG9hdGluZ19jb3Vwb25fZmxhZxgjIAEoCBIWCg5wZXJwZXR1YWxfZmxhZxgkIAEoCBIZChFhbW9ydGl6YXRpb25fZmxhZxglIAEoCBJNChNtaW5fcHJpY2VfaW5jcmVtZW50GCYgASgLMjAudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5RdW90YXRpb24SIAoYYXBpX3RyYWRlX2F2YWlsYWJsZV9mbGFnGCcgASgIEgsKA3VpZBgoIAEoCRJKCg1yZWFsX2V4Y2hhbmdlGCkgASgOMjMudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5SZWFsRXhjaGFuZ2USFAoMcG9zaXRpb25fdWlkGCogASgJEhEKCWFzc2V0X3VpZBgrIAEoCRIWCg5yZXF1aXJlZF90ZXN0cxgsIAMoCRIUCgxmb3JfaWlzX2ZsYWcYMyABKAgSHgoWZm9yX3F1YWxfaW52ZXN0b3JfZmxhZxg0IAEoCBIUCgx3ZWVrZW5kX2ZsYWcYNSABKAgSGAoQYmxvY2tlZF90Y2FfZmxhZxg2IAEoCBIZChFzdWJvcmRpbmF0ZWRfZmxhZxg3IAEoCBIWCg5saXF1aWRpdHlfZmxhZxg4IAEoCBI6ChZmaXJzdF8xbWluX2NhbmRsZV9kYXRlGD0gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBI6ChZmaXJzdF8xZGF5X2NhbmRsZV9kYXRlGD4gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBJECgpyaXNrX2xldmVsGD8gASgOMjAudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5SaXNrTGV2ZWwSPwoFYnJhbmQYQCABKAsyMC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLkJyYW5kRGF0YRJCCglib25kX3R5cGUYQSABKA4yLy50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLkJvbmRUeXBlEi0KCWNhbGxfZGF0ZRhFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASRgoMZGxvbmdfY2xpZW50GFogASgLMjAudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5RdW90YXRpb24SRwoNZHNob3J0X2NsaWVudBhbIAEoCzIwLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuUXVvdGF0aW9uIrAMCghDdXJyZW5jeRIMCgRmaWdpGAEgASgJEg4KBnRpY2tlchgCIAEoCRISCgpjbGFzc19jb2RlGAMgASgJEgwKBGlzaW4YBCABKAkSCwoDbG90GAUgASgFEhAKCGN1cnJlbmN5GAYgASgJEkMKBWtsb25nGAcgASgLMjAudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5RdW90YXRpb25CAhgBEkQKBmtzaG9ydBgIIAEoCzIwLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuUXVvdGF0aW9uQgIYARI/CgVkbG9uZxgJIAEoCzIwLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuUXVvdGF0aW9uEkAKBmRzaG9ydBgKIAEoCzIwLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuUXVvdGF0aW9uEkMKCWRsb25nX21pbhgLIAEoCzIwLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuUXVvdGF0aW9uEkQKCmRzaG9ydF9taW4YDCABKAsyMC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlF1b3RhdGlvbhIaChJzaG9ydF9lbmFibGVkX2ZsYWcYDSABKAgSDAoEbmFtZRgPIAEoCRIQCghleGNoYW5nZRgQIAEoCRJCCgdub21pbmFsGBEgASgLMjEudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5Nb25leVZhbHVlEhcKD2NvdW50cnlfb2ZfcmlzaxgSIAEoCRIcChRjb3VudHJ5X29mX3Jpc2tfbmFtZRgTIAEoCRJUCg50cmFkaW5nX3N0YXR1cxgUIAEoDjI8LnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuU2VjdXJpdHlUcmFkaW5nU3RhdHVzEhAKCG90Y19mbGFnGBUgASgIEhoKEmJ1eV9hdmFpbGFibGVfZmxhZxgWIAEoCBIbChNzZWxsX2F2YWlsYWJsZV9mbGFnGBcgASgIEhkKEWlzb19jdXJyZW5jeV9uYW1lGBggASgJEk0KE21pbl9wcmljZV9pbmNyZW1lbnQYGSABKAsyMC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlF1b3RhdGlvbhIgChhhcGlfdHJhZGVfYXZhaWxhYmxlX2ZsYWcYGiABKAgSCwoDdWlkGBsgASgJEkoKDXJlYWxfZXhjaGFuZ2UYHCABKA4yMy50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlJlYWxFeGNoYW5nZRIUCgxwb3NpdGlvbl91aWQYHSABKAkSFgoOcmVxdWlyZWRfdGVzdHMYHiADKAkSEQoJYXNzZXRfdWlkGB8gASgJEhQKDGZvcl9paXNfZmxhZxgpIAEoCBIeChZmb3JfcXVhbF9pbnZlc3Rvcl9mbGFnGDQgASgIEhQKDHdlZWtlbmRfZmxhZxg1IAEoCBIYChBibG9ja2VkX3RjYV9mbGFnGDYgASgIEjoKFmZpcnN0XzFtaW5fY2FuZGxlX2RhdGUYOCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjoKFmZpcnN0XzFkYXlfY2FuZGxlX2RhdGUYOSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEj8KBWJyYW5kGDwgASgLMjAudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5CcmFuZERhdGESRgoMZGxvbmdfY2xpZW50GFogASgLMjAudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5RdW90YXRpb24SRwoNZHNob3J0X2NsaWVudBhbIAEoCzIwLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuUXVvdGF0aW9uIsMOCgNFdGYSDAoEZmlnaRgBIAEoCRIOCgZ0aWNrZXIYAiABKAkSEgoKY2xhc3NfY29kZRgDIAEoCRIMCgRpc2luGAQgASgJEgsKA2xvdBgFIAEoBRIQCghjdXJyZW5jeRgGIAEoCRJDCgVrbG9uZxgHIAEoCzIwLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuUXVvdGF0aW9uQgIYARJECgZrc2hvcnQYCCABKAsyMC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlF1b3RhdGlvbkICGAESPwoFZGxvbmcYCSABKAsyMC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlF1b3RhdGlvbhJACgZkc2hvcnQYCiABKAsyMC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlF1b3RhdGlvbhJDCglkbG9uZ19taW4YCyABKAsyMC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlF1b3RhdGlvbhJECgpkc2hvcnRfbWluGAwgASgLMjAudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5RdW90YXRpb24SGgoSc2hvcnRfZW5hYmxlZF9mbGFnGA0gASgIEgwKBG5hbWUYDyABKAkSEAoIZXhjaGFuZ2UYECABKAkSSgoQZml4ZWRfY29tbWlzc2lvbhgRIAEoCzIwLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuUXVvdGF0aW9uEhIKCmZvY3VzX3R5cGUYEiABKAkSMQoNcmVsZWFzZWRfZGF0ZRgTIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASRAoKbnVtX3NoYXJlcxgUIAEoCzIwLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuUXVvdGF0aW9uEhcKD2NvdW50cnlfb2ZfcmlzaxgVIAEoCRIcChRjb3VudHJ5X29mX3Jpc2tfbmFtZRgWIAEoCRIOCgZzZWN0b3IYFyABKAkSGAoQcmViYWxhbmNpbmdfZnJlcRgYIAEoCRJUCg50cmFkaW5nX3N0YXR1cxgZIAEoDjI8LnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuU2VjdXJpdHlUcmFkaW5nU3RhdHVzEhAKCG90Y19mbGFnGBogASgIEhoKEmJ1eV9hdmFpbGFibGVfZmxhZxgbIAEoCBIbChNzZWxsX2F2YWlsYWJsZV9mbGFnGBwgASgIEk0KE21pbl9wcmljZV9pbmNyZW1lbnQYHSABKAsyMC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlF1b3RhdGlvbhIgChhhcGlfdHJhZGVfYXZhaWxhYmxlX2ZsYWcYHiABKAgSCwoDdWlkGB8gASgJEkoKDXJlYWxfZXhjaGFuZ2UYICABKA4yMy50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlJlYWxFeGNoYW5nZRIUCgxwb3NpdGlvbl91aWQYISABKAkSEQoJYXNzZXRfdWlkGCIgASgJEloKE2luc3RydW1lbnRfZXhjaGFuZ2UYIyABKA4yPS50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLkluc3RydW1lbnRFeGNoYW5nZVR5cGUSFgoOcmVxdWlyZWRfdGVzdHMYJCADKAkSFAoMZm9yX2lpc19mbGFnGCkgASgIEh4KFmZvcl9xdWFsX2ludmVzdG9yX2ZsYWcYKiABKAgSFAoMd2Vla2VuZF9mbGFnGCsgASgIEhgKEGJsb2NrZWRfdGNhX2ZsYWcYLCABKAgSFgoObGlxdWlkaXR5X2ZsYWcYLSABKAgSOgoWZmlyc3RfMW1pbl9jYW5kbGVfZGF0ZRg4IAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASOgoWZmlyc3RfMWRheV9jYW5kbGVfZGF0ZRg5IAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASPwoFYnJhbmQYPCABKAsyMC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLkJyYW5kRGF0YRJGCgxkbG9uZ19jbGllbnQYWiABKAsyMC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlF1b3RhdGlvbhJHCg1kc2hvcnRfY2xpZW50GFsgASgLMjAudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5RdW90YXRpb24ihhAKBkZ1dHVyZRIMCgRmaWdpGAEgASgJEg4KBnRpY2tlchgCIAEoCRISCgpjbGFzc19jb2RlGAMgASgJEgsKA2xvdBgEIAEoBRIQCghjdXJyZW5jeRgFIAEoCRJDCgVrbG9uZxgGIAEoCzIwLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuUXVvdGF0aW9uQgIYARJECgZrc2hvcnQYByABKAsyMC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlF1b3RhdGlvbkICGAESPwoFZGxvbmcYCCABKAsyMC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlF1b3RhdGlvbhJACgZkc2hvcnQYCSABKAsyMC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlF1b3RhdGlvbhJDCglkbG9uZ19taW4YCiABKAsyMC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlF1b3RhdGlvbhJECgpkc2hvcnRfbWluGAsgASgLMjAudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5RdW90YXRpb24SGgoSc2hvcnRfZW5hYmxlZF9mbGFnGAwgASgIEgwKBG5hbWUYDSABKAkSEAoIZXhjaGFuZ2UYDiABKAkSNAoQZmlyc3RfdHJhZGVfZGF0ZRgPIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASMwoPbGFzdF90cmFkZV9kYXRlGBAgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIUCgxmdXR1cmVzX3R5cGUYESABKAkSEgoKYXNzZXRfdHlwZRgSIAEoCRITCgtiYXNpY19hc3NldBgTIAEoCRJKChBiYXNpY19hc3NldF9zaXplGBQgASgLMjAudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5RdW90YXRpb24SFwoPY291bnRyeV9vZl9yaXNrGBUgASgJEhwKFGNvdW50cnlfb2Zfcmlza19uYW1lGBYgASgJEg4KBnNlY3RvchgXIAEoCRIzCg9leHBpcmF0aW9uX2RhdGUYGCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wElQKDnRyYWRpbmdfc3RhdHVzGBkgASgOMjwudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5TZWN1cml0eVRyYWRpbmdTdGF0dXMSEAoIb3RjX2ZsYWcYGiABKAgSGgoSYnV5X2F2YWlsYWJsZV9mbGFnGBsgASgIEhsKE3NlbGxfYXZhaWxhYmxlX2ZsYWcYHCABKAgSTQoTbWluX3ByaWNlX2luY3JlbWVudBgdIAEoCzIwLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuUXVvdGF0aW9uEiAKGGFwaV90cmFkZV9hdmFpbGFibGVfZmxhZxgeIAEoCBILCgN1aWQYHyABKAkSSgoNcmVhbF9leGNoYW5nZRggIAEoDjIzLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuUmVhbEV4Y2hhbmdlEhQKDHBvc2l0aW9uX3VpZBghIAEoCRIgChhiYXNpY19hc3NldF9wb3NpdGlvbl91aWQYIiABKAkSFgoOcmVxdWlyZWRfdGVzdHMYIyADKAkSFAoMZm9yX2lpc19mbGFnGCkgASgIEh4KFmZvcl9xdWFsX2ludmVzdG9yX2ZsYWcYKiABKAgSFAoMd2Vla2VuZF9mbGFnGCsgASgIEhgKEGJsb2NrZWRfdGNhX2ZsYWcYLCABKAgSOgoWZmlyc3RfMW1pbl9jYW5kbGVfZGF0ZRg4IAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASOgoWZmlyc3RfMWRheV9jYW5kbGVfZGF0ZRg5IAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASUAoVaW5pdGlhbF9tYXJnaW5fb25fYnV5GD0gASgLMjEudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5Nb25leVZhbHVlElEKFmluaXRpYWxfbWFyZ2luX29uX3NlbGwYPiABKAsyMS50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLk1vbmV5VmFsdWUSVAoabWluX3ByaWNlX2luY3JlbWVudF9hbW91bnQYPyABKAsyMC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlF1b3RhdGlvbhI/CgVicmFuZBhAIAEoCzIwLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuQnJhbmREYXRhEkYKDGRsb25nX2NsaWVudBhaIAEoCzIwLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuUXVvdGF0aW9uEkcKDWRzaG9ydF9jbGllbnQYWyABKAsyMC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlF1b3RhdGlvbiLPDgoFU2hhcmUSDAoEZmlnaRgBIAEoCRIOCgZ0aWNrZXIYAiABKAkSEgoKY2xhc3NfY29kZRgDIAEoCRIMCgRpc2luGAQgASgJEgsKA2xvdBgFIAEoBRIQCghjdXJyZW5jeRgGIAEoCRJDCgVrbG9uZxgHIAEoCzIwLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuUXVvdGF0aW9uQgIYARJECgZrc2hvcnQYCCABKAsyMC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlF1b3RhdGlvbkICGAESPwoFZGxvbmcYCSABKAsyMC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlF1b3RhdGlvbhJACgZkc2hvcnQYCiABKAsyMC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlF1b3RhdGlvbhJDCglkbG9uZ19taW4YCyABKAsyMC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlF1b3RhdGlvbhJECgpkc2hvcnRfbWluGAwgASgLMjAudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5RdW90YXRpb24SGgoSc2hvcnRfZW5hYmxlZF9mbGFnGA0gASgIEgwKBG5hbWUYDyABKAkSEAoIZXhjaGFuZ2UYECABKAkSLAoIaXBvX2RhdGUYESABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhIKCmlzc3VlX3NpemUYEiABKAMSFwoPY291bnRyeV9vZl9yaXNrGBMgASgJEhwKFGNvdW50cnlfb2Zfcmlza19uYW1lGBQgASgJEg4KBnNlY3RvchgVIAEoCRIXCg9pc3N1ZV9zaXplX3BsYW4YFiABKAMSQgoHbm9taW5hbBgXIAEoCzIxLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuTW9uZXlWYWx1ZRJUCg50cmFkaW5nX3N0YXR1cxgZIAEoDjI8LnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuU2VjdXJpdHlUcmFkaW5nU3RhdHVzEhAKCG90Y19mbGFnGBogASgIEhoKEmJ1eV9hdmFpbGFibGVfZmxhZxgbIAEoCBIbChNzZWxsX2F2YWlsYWJsZV9mbGFnGBwgASgIEhYKDmRpdl95aWVsZF9mbGFnGB0gASgIEkQKCnNoYXJlX3R5cGUYHiABKA4yMC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlNoYXJlVHlwZRJNChNtaW5fcHJpY2VfaW5jcmVtZW50GB8gASgLMjAudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5RdW90YXRpb24SIAoYYXBpX3RyYWRlX2F2YWlsYWJsZV9mbGFnGCAgASgIEgsKA3VpZBghIAEoCRJKCg1yZWFsX2V4Y2hhbmdlGCIgASgOMjMudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5SZWFsRXhjaGFuZ2USFAoMcG9zaXRpb25fdWlkGCMgASgJEhEKCWFzc2V0X3VpZBgkIAEoCRJaChNpbnN0cnVtZW50X2V4Y2hhbmdlGCUgASgOMj0udGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5JbnN0cnVtZW50RXhjaGFuZ2VUeXBlEhYKDnJlcXVpcmVkX3Rlc3RzGCYgAygJEhQKDGZvcl9paXNfZmxhZxguIAEoCBIeChZmb3JfcXVhbF9pbnZlc3Rvcl9mbGFnGC8gASgIEhQKDHdlZWtlbmRfZmxhZxgwIAEoCBIYChBibG9ja2VkX3RjYV9mbGFnGDEgASgIEhYKDmxpcXVpZGl0eV9mbGFnGDIgASgIEjoKFmZpcnN0XzFtaW5fY2FuZGxlX2RhdGUYOCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjoKFmZpcnN0XzFkYXlfY2FuZGxlX2RhdGUYOSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEj8KBWJyYW5kGDwgASgLMjAudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5CcmFuZERhdGESRgoMZGxvbmdfY2xpZW50GFogASgLMjAudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5RdW90YXRpb24SRwoNZHNob3J0X2NsaWVudBhbIAEoCzIwLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuUXVvdGF0aW9uIoEXCg5TdHJ1Y3R1cmVkTm90ZRILCgN1aWQYASABKAkSDAoEZmlnaRgCIAEoCRIOCgZ0aWNrZXIYAyABKAkSEgoKY2xhc3NfY29kZRgEIAEoCRIMCgRpc2luGAUgASgJEgwKBG5hbWUYBiABKAkSEQoJYXNzZXRfdWlkGAcgASgJEhQKDHBvc2l0aW9uX3VpZBgIIAEoCRJNChNtaW5fcHJpY2VfaW5jcmVtZW50GAkgASgLMjAudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5RdW90YXRpb24SCwoDbG90GAogASgFEkIKB25vbWluYWwYCyABKAsyMS50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLk1vbmV5VmFsdWUSEAoIY3VycmVuY3kYDCABKAkSMQoNbWF0dXJpdHlfZGF0ZRgNIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASMgoOcGxhY2VtZW50X2RhdGUYDiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhIKCmlzc3VlX2tpbmQYDyABKAkSEgoKaXNzdWVfc2l6ZRgQIAEoBRIXCg9pc3N1ZV9zaXplX3BsYW4YESABKAUSRgoMZGxvbmdfY2xpZW50GBIgASgLMjAudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5RdW90YXRpb24SRwoNZHNob3J0X2NsaWVudBgTIAEoCzIwLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuUXVvdGF0aW9uEhoKEnNob3J0X2VuYWJsZWRfZmxhZxgUIAEoCBIQCghleGNoYW5nZRgVIAEoCRJUCg50cmFkaW5nX3N0YXR1cxgWIAEoDjI8LnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuU2VjdXJpdHlUcmFkaW5nU3RhdHVzEiAKGGFwaV90cmFkZV9hdmFpbGFibGVfZmxhZxgXIAEoCBIaChJidXlfYXZhaWxhYmxlX2ZsYWcYGCABKAgSGwoTc2VsbF9hdmFpbGFibGVfZmxhZxgZIAEoCBIiChpsaW1pdF9vcmRlcl9hdmFpbGFibGVfZmxhZxgaIAEoCBIjChttYXJrZXRfb3JkZXJfYXZhaWxhYmxlX2ZsYWcYGyABKAgSJgoeYmVzdHByaWNlX29yZGVyX2F2YWlsYWJsZV9mbGFnGBwgASgIEhQKDHdlZWtlbmRfZmxhZxgdIAEoCBIWCg5saXF1aWRpdHlfZmxhZxgeIAEoCBIUCgxmb3JfaWlzX2ZsYWcYHyABKAgSHgoWZm9yX3F1YWxfaW52ZXN0b3JfZmxhZxggIAEoCBIaChJwYXduc2hvcF9saXN0X2ZsYWcYISABKAgSSgoNcmVhbF9leGNoYW5nZRgiIAEoDjIzLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuUmVhbEV4Y2hhbmdlEjoKFmZpcnN0XzFtaW5fY2FuZGxlX2RhdGUYIyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjoKFmZpcnN0XzFkYXlfY2FuZGxlX2RhdGUYJCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhMKC2JvcnJvd19uYW1lGCUgASgJEgwKBHR5cGUYJiABKAkSXQoPbG9naWNfcG9ydGZvbGlvGCcgASgOMkQudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5TdHJ1Y3R1cmVkTm90ZS5Mb2dpY1BvcnRmb2xpbxJECgphc3NldF90eXBlGCggASgOMjAudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5Bc3NldFR5cGUSVgoMYmFzaWNfYXNzZXRzGCkgAygLMkAudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5TdHJ1Y3R1cmVkTm90ZS5CYXNpY0Fzc2V0EkgKDnNhZmV0eV9iYXJyaWVyGCogASgLMjAudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5RdW90YXRpb24SGgoSY291cG9uX3BlcmlvZF9iYXNlGCsgASgJEmkKFW9ic2VydmF0aW9uX3ByaW5jaXBsZRgsIAEoDjJKLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuU3RydWN0dXJlZE5vdGUuT2JzZXJ2YXRpb25QcmluY2lwbGUSHQoVb2JzZXJ2YXRpb25fZnJlcXVlbmN5GC0gASgJEj0KGWluaXRpYWxfcHJpY2VfZml4aW5nX2RhdGUYLiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEkoKBXlpZWxkGC8gAygLMjsudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5TdHJ1Y3R1cmVkTm90ZS5ZaWVsZBIaChJjb3Vwb25fc2F2aW5nX2ZsYWcYMCABKAgSDgoGc2VjdG9yGDEgASgJEhcKD2NvdW50cnlfb2ZfcmlzaxgyIAEoCRIcChRjb3VudHJ5X29mX3Jpc2tfbmFtZRgzIAEoCRIRCglsb2dvX25hbWUYNCABKAkSFgoOcmVxdWlyZWRfdGVzdHMYNSADKAkaogEKCkJhc2ljQXNzZXQSCwoDdWlkGAEgASgJEj4KBHR5cGUYAiABKA4yMC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLkFzc2V0VHlwZRJHCg1pbml0aWFsX3ByaWNlGAMgASgLMjAudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5RdW90YXRpb24alwEKBVlpZWxkEk0KBHR5cGUYASABKA4yPy50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlN0cnVjdHVyZWROb3RlLllpZWxkVHlwZRI/CgV2YWx1ZRgCIAEoCzIwLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuUXVvdGF0aW9uInIKDkxvZ2ljUG9ydGZvbGlvEh8KG0xPR0lDX1BPUlRGT0xJT19VTlNQRUNJRklFRBAAEh4KGkxPR0lDX1BPUlRGT0xJT19WT0xBVElMSVRZEAESHwobTE9HSUNfUE9SVEZPTElPX0NPUlJFTEFUSU9OEAIigwIKFE9ic2VydmF0aW9uUHJpbmNpcGxlEiUKIU9CU0VSVkFUSU9OX1BSSU5DSVBMRV9VTlNQRUNJRklFRBAAEisKJ09CU0VSVkFUSU9OX1BSSU5DSVBMRV9XT1JTVF9CQVNJQ19BU1NFVBABEioKJk9CU0VSVkFUSU9OX1BSSU5DSVBMRV9CRVNUX0JBU0lDX0FTU0VUEAISMQotT0JTRVJWQVRJT05fUFJJTkNJUExFX0FWRVJBR0VfT0ZfQkFTSUNfQVNTRVRTEAMSOAo0T0JTRVJWQVRJT05fUFJJTkNJUExFX1NJTkdMRV9CQVNJQ19BU1NFVF9QRVJGT1JNQU5DRRAEIokBCglZaWVsZFR5cGUSGgoWWUlFTERfVFlQRV9VTlNQRUNJRklFRBAAEh8KG1lJRUxEX1RZUEVfR1VBUkFOVEVEX0NPVVBPThABEiEKHVlJRUxEX1RZUEVfQ09ORElUSU9OQUxfQ09VUE9OEAISHAoYWUlFTERfVFlQRV9QQVJUSUNJUEFUSU9OEAMiqQEKGkdldEFjY3J1ZWRJbnRlcmVzdHNSZXF1ZXN0EhAKBGZpZ2kYASABKAlCAhgBEi4KBGZyb20YAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQgTiQQECEiwKAnRvGAMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIE4kEBAhIbCg1pbnN0cnVtZW50X2lkGAQgASgJQgTiQQECInAKG0dldEFjY3J1ZWRJbnRlcmVzdHNSZXNwb25zZRJRChFhY2NydWVkX2ludGVyZXN0cxgBIAMoCzI2LnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuQWNjcnVlZEludGVyZXN0IogCCg9BY2NydWVkSW50ZXJlc3QSKAoEZGF0ZRgBIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASPwoFdmFsdWUYAiABKAsyMC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlF1b3RhdGlvbhJHCg12YWx1ZV9wZXJjZW50GAMgASgLMjAudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5RdW90YXRpb24SQQoHbm9taW5hbBgEIAEoCzIwLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuUXVvdGF0aW9uIkgKF0dldEZ1dHVyZXNNYXJnaW5SZXF1ZXN0EhAKBGZpZ2kYASABKAlCAhgBEhsKDWluc3RydW1lbnRfaWQYBCABKAlCBOJBAQIi5AIKGEdldEZ1dHVyZXNNYXJnaW5SZXNwb25zZRJQChVpbml0aWFsX21hcmdpbl9vbl9idXkYASABKAsyMS50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLk1vbmV5VmFsdWUSUQoWaW5pdGlhbF9tYXJnaW5fb25fc2VsbBgCIAEoCzIxLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuTW9uZXlWYWx1ZRJNChNtaW5fcHJpY2VfaW5jcmVtZW50GAMgASgLMjAudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5RdW90YXRpb24SVAoabWluX3ByaWNlX2luY3JlbWVudF9hbW91bnQYBCABKAsyMC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlF1b3RhdGlvbiJbChJJbnN0cnVtZW50UmVzcG9uc2USRQoKaW5zdHJ1bWVudBgBIAEoCzIxLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuSW5zdHJ1bWVudCK+DAoKSW5zdHJ1bWVudBIMCgRmaWdpGAEgASgJEg4KBnRpY2tlchgCIAEoCRISCgpjbGFzc19jb2RlGAMgASgJEgwKBGlzaW4YBCABKAkSCwoDbG90GAUgASgFEhAKCGN1cnJlbmN5GAYgASgJEkMKBWtsb25nGAcgASgLMjAudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5RdW90YXRpb25CAhgBEkQKBmtzaG9ydBgIIAEoCzIwLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuUXVvdGF0aW9uQgIYARI/CgVkbG9uZxgJIAEoCzIwLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuUXVvdGF0aW9uEkAKBmRzaG9ydBgKIAEoCzIwLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuUXVvdGF0aW9uEkMKCWRsb25nX21pbhgLIAEoCzIwLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuUXVvdGF0aW9uEkQKCmRzaG9ydF9taW4YDCABKAsyMC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlF1b3RhdGlvbhIaChJzaG9ydF9lbmFibGVkX2ZsYWcYDSABKAgSDAoEbmFtZRgOIAEoCRIQCghleGNoYW5nZRgPIAEoCRIXCg9jb3VudHJ5X29mX3Jpc2sYECABKAkSHAoUY291bnRyeV9vZl9yaXNrX25hbWUYESABKAkSFwoPaW5zdHJ1bWVudF90eXBlGBIgASgJElQKDnRyYWRpbmdfc3RhdHVzGBMgASgOMjwudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5TZWN1cml0eVRyYWRpbmdTdGF0dXMSEAoIb3RjX2ZsYWcYFCABKAgSGgoSYnV5X2F2YWlsYWJsZV9mbGFnGBUgASgIEhsKE3NlbGxfYXZhaWxhYmxlX2ZsYWcYFiABKAgSTQoTbWluX3ByaWNlX2luY3JlbWVudBgXIAEoCzIwLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuUXVvdGF0aW9uEiAKGGFwaV90cmFkZV9hdmFpbGFibGVfZmxhZxgYIAEoCBILCgN1aWQYGSABKAkSSgoNcmVhbF9leGNoYW5nZRgaIAEoDjIzLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuUmVhbEV4Y2hhbmdlEhQKDHBvc2l0aW9uX3VpZBgbIAEoCRIRCglhc3NldF91aWQYHCABKAkSFgoOcmVxdWlyZWRfdGVzdHMYHSADKAkSFAoMZm9yX2lpc19mbGFnGCQgASgIEh4KFmZvcl9xdWFsX2ludmVzdG9yX2ZsYWcYJSABKAgSFAoMd2Vla2VuZF9mbGFnGCYgASgIEhgKEGJsb2NrZWRfdGNhX2ZsYWcYJyABKAgSTgoPaW5zdHJ1bWVudF9raW5kGCggASgOMjUudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5JbnN0cnVtZW50VHlwZRI6ChZmaXJzdF8xbWluX2NhbmRsZV9kYXRlGDggASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBI6ChZmaXJzdF8xZGF5X2NhbmRsZV9kYXRlGDkgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBI/CgVicmFuZBg8IAEoCzIwLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuQnJhbmREYXRhEkcKDGRsb25nX2NsaWVudBjqAyABKAsyMC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlF1b3RhdGlvbhJICg1kc2hvcnRfY2xpZW50GOsDIAEoCzIwLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuUXVvdGF0aW9uIrABChNHZXREaXZpZGVuZHNSZXF1ZXN0EhAKBGZpZ2kYASABKAlCAhgBEi0KBGZyb20YAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSACIAQESKwoCdG8YAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAGIAQESGwoNaW5zdHJ1bWVudF9pZBgEIAEoCUIE4kEBAkIHCgVfZnJvbUIFCgNfdG8iWgoUR2V0RGl2aWRlbmRzUmVzcG9uc2USQgoJZGl2aWRlbmRzGAEgAygLMi8udGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5EaXZpZGVuZCKGBAoIRGl2aWRlbmQSRwoMZGl2aWRlbmRfbmV0GAEgASgLMjEudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5Nb25leVZhbHVlEjAKDHBheW1lbnRfZGF0ZRgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASMQoNZGVjbGFyZWRfZGF0ZRgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASMQoNbGFzdF9idXlfZGF0ZRgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASFQoNZGl2aWRlbmRfdHlwZRgFIAEoCRIvCgtyZWNvcmRfZGF0ZRgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASEgoKcmVndWxhcml0eRgHIAEoCRJGCgtjbG9zZV9wcmljZRgIIAEoCzIxLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuTW9uZXlWYWx1ZRJFCgt5aWVsZF92YWx1ZRgJIAEoCzIwLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuUXVvdGF0aW9uEi4KCmNyZWF0ZWRfYXQYCiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIiAKDEFzc2V0UmVxdWVzdBIQCgJpZBgBIAEoCUIE4kEBAiJQCg1Bc3NldFJlc3BvbnNlEj8KBWFzc2V0GAEgASgLMjAudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5Bc3NldEZ1bGwi5wEKDUFzc2V0c1JlcXVlc3QSUwoPaW5zdHJ1bWVudF90eXBlGAEgASgOMjUudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5JbnN0cnVtZW50VHlwZUgAiAEBElcKEWluc3RydW1lbnRfc3RhdHVzGAIgASgOMjcudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5JbnN0cnVtZW50U3RhdHVzSAGIAQFCEgoQX2luc3RydW1lbnRfdHlwZUIUChJfaW5zdHJ1bWVudF9zdGF0dXMiTgoOQXNzZXRzUmVzcG9uc2USPAoGYXNzZXRzGAEgAygLMiwudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5Bc3NldCKYBQoJQXNzZXRGdWxsEgsKA3VpZBgBIAEoCRI+CgR0eXBlGAIgASgOMjAudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5Bc3NldFR5cGUSDAoEbmFtZRgDIAEoCRISCgpuYW1lX2JyaWVmGAQgASgJEhMKC2Rlc2NyaXB0aW9uGAUgASgJEi4KCmRlbGV0ZWRfYXQYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhYKDnJlcXVpcmVkX3Rlc3RzGAcgAygJEkgKCGN1cnJlbmN5GAggASgLMjQudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5Bc3NldEN1cnJlbmN5SAASSAoIc2VjdXJpdHkYCSABKAsyNC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLkFzc2V0U2VjdXJpdHlIABIUCgxnb3NfcmVnX2NvZGUYCiABKAkSCwoDY2ZpGAsgASgJEhAKCGNvZGVfbnNkGAwgASgJEg4KBnN0YXR1cxgNIAEoCRI7CgVicmFuZBgOIAEoCzIsLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuQnJhbmQSLgoKdXBkYXRlZF9hdBgPIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASDwoHYnJfY29kZRgQIAEoCRIUCgxicl9jb2RlX25hbWUYESABKAkSSwoLaW5zdHJ1bWVudHMYEiADKAsyNi50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLkFzc2V0SW5zdHJ1bWVudEIFCgNleHQirwEKBUFzc2V0EgsKA3VpZBgBIAEoCRI+CgR0eXBlGAIgASgOMjAudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5Bc3NldFR5cGUSDAoEbmFtZRgDIAEoCRJLCgtpbnN0cnVtZW50cxgEIAMoCzI2LnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuQXNzZXRJbnN0cnVtZW50IiYKDUFzc2V0Q3VycmVuY3kSFQoNYmFzZV9jdXJyZW5jeRgBIAEoCSL2AwoNQXNzZXRTZWN1cml0eRIMCgRpc2luGAEgASgJEgwKBHR5cGUYAiABKAkSTgoPaW5zdHJ1bWVudF9raW5kGAogASgOMjUudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5JbnN0cnVtZW50VHlwZRJCCgVzaGFyZRgDIAEoCzIxLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuQXNzZXRTaGFyZUgAEkAKBGJvbmQYBCABKAsyMC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLkFzc2V0Qm9uZEgAEksKAnNwGAUgASgLMj0udGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5Bc3NldFN0cnVjdHVyZWRQcm9kdWN0SAASPgoDZXRmGAYgASgLMi8udGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5Bc3NldEV0ZkgAEl8KFGNsZWFyaW5nX2NlcnRpZmljYXRlGAcgASgLMj8udGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5Bc3NldENsZWFyaW5nQ2VydGlmaWNhdGVIAEIFCgNleHQi1QUKCkFzc2V0U2hhcmUSPgoEdHlwZRgBIAEoDjIwLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuU2hhcmVUeXBlEkQKCmlzc3VlX3NpemUYAiABKAsyMC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlF1b3RhdGlvbhJBCgdub21pbmFsGAMgASgLMjAudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5RdW90YXRpb24SGAoQbm9taW5hbF9jdXJyZW5jeRgEIAEoCRIVCg1wcmltYXJ5X2luZGV4GAUgASgJEkcKDWRpdmlkZW5kX3JhdGUYBiABKAsyMC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlF1b3RhdGlvbhIcChRwcmVmZXJyZWRfc2hhcmVfdHlwZRgHIAEoCRIsCghpcG9fZGF0ZRgIIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASMQoNcmVnaXN0cnlfZGF0ZRgJIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASFgoOZGl2X3lpZWxkX2ZsYWcYCiABKAgSEgoKaXNzdWVfa2luZBgLIAEoCRIyCg5wbGFjZW1lbnRfZGF0ZRgMIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASEwoLcmVwcmVzX2lzaW4YDSABKAkSSQoPaXNzdWVfc2l6ZV9wbGFuGA4gASgLMjAudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5RdW90YXRpb24SRQoLdG90YWxfZmxvYXQYDyABKAsyMC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlF1b3RhdGlvbiLgBgoJQXNzZXRCb25kEkkKD2N1cnJlbnRfbm9taW5hbBgBIAEoCzIwLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuUXVvdGF0aW9uEhMKC2JvcnJvd19uYW1lGAIgASgJEkQKCmlzc3VlX3NpemUYAyABKAsyMC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlF1b3RhdGlvbhJBCgdub21pbmFsGAQgASgLMjAudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5RdW90YXRpb24SGAoQbm9taW5hbF9jdXJyZW5jeRgFIAEoCRISCgppc3N1ZV9raW5kGAYgASgJEhUKDWludGVyZXN0X2tpbmQYByABKAkSIAoYY291cG9uX3F1YW50aXR5X3Blcl95ZWFyGAggASgFEhwKFGluZGV4ZWRfbm9taW5hbF9mbGFnGAkgASgIEhkKEXN1Ym9yZGluYXRlZF9mbGFnGAogASgIEhcKD2NvbGxhdGVyYWxfZmxhZxgLIAEoCBIVCg10YXhfZnJlZV9mbGFnGAwgASgIEhkKEWFtb3J0aXphdGlvbl9mbGFnGA0gASgIEhwKFGZsb2F0aW5nX2NvdXBvbl9mbGFnGA4gASgIEhYKDnBlcnBldHVhbF9mbGFnGA8gASgIEjEKDW1hdHVyaXR5X2RhdGUYECABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhgKEHJldHVybl9jb25kaXRpb24YESABKAkSMgoOc3RhdGVfcmVnX2RhdGUYEiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjIKDnBsYWNlbWVudF9kYXRlGBMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBJJCg9wbGFjZW1lbnRfcHJpY2UYFCABKAsyMC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlF1b3RhdGlvbhJJCg9pc3N1ZV9zaXplX3BsYW4YFSABKAsyMC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlF1b3RhdGlvbiKgBQoWQXNzZXRTdHJ1Y3R1cmVkUHJvZHVjdBITCgtib3Jyb3dfbmFtZRgBIAEoCRJBCgdub21pbmFsGAIgASgLMjAudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5RdW90YXRpb24SGAoQbm9taW5hbF9jdXJyZW5jeRgDIAEoCRJKCgR0eXBlGAQgASgOMjwudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5TdHJ1Y3R1cmVkUHJvZHVjdFR5cGUSFwoPbG9naWNfcG9ydGZvbGlvGAUgASgJEkQKCmFzc2V0X3R5cGUYBiABKA4yMC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLkFzc2V0VHlwZRITCgtiYXNpY19hc3NldBgHIAEoCRJICg5zYWZldHlfYmFycmllchgIIAEoCzIwLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuUXVvdGF0aW9uEjEKDW1hdHVyaXR5X2RhdGUYCSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEkkKD2lzc3VlX3NpemVfcGxhbhgKIAEoCzIwLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuUXVvdGF0aW9uEkQKCmlzc3VlX3NpemUYCyABKAsyMC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlF1b3RhdGlvbhIyCg5wbGFjZW1lbnRfZGF0ZRgMIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASEgoKaXNzdWVfa2luZBgNIAEoCSLYCgoIQXNzZXRFdGYSRwoNdG90YWxfZXhwZW5zZRgBIAEoCzIwLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuUXVvdGF0aW9uEkUKC2h1cmRsZV9yYXRlGAIgASgLMjAudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5RdW90YXRpb24SSQoPcGVyZm9ybWFuY2VfZmVlGAMgASgLMjAudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5RdW90YXRpb24SSgoQZml4ZWRfY29tbWlzc2lvbhgEIAEoCzIwLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuUXVvdGF0aW9uEhQKDHBheW1lbnRfdHlwZRgFIAEoCRIWCg53YXRlcm1hcmtfZmxhZxgGIAEoCBJFCgtidXlfcHJlbWl1bRgHIAEoCzIwLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuUXVvdGF0aW9uEkcKDXNlbGxfZGlzY291bnQYCCABKAsyMC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlF1b3RhdGlvbhIYChByZWJhbGFuY2luZ19mbGFnGAkgASgIEhgKEHJlYmFsYW5jaW5nX2ZyZXEYCiABKAkSFwoPbWFuYWdlbWVudF90eXBlGAsgASgJEhUKDXByaW1hcnlfaW5kZXgYDCABKAkSEgoKZm9jdXNfdHlwZRgNIAEoCRIWCg5sZXZlcmFnZWRfZmxhZxgOIAEoCBJDCgludW1fc2hhcmUYDyABKAsyMC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlF1b3RhdGlvbhISCgp1Y2l0c19mbGFnGBAgASgIEjEKDXJlbGVhc2VkX2RhdGUYESABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhMKC2Rlc2NyaXB0aW9uGBIgASgJEiEKGXByaW1hcnlfaW5kZXhfZGVzY3JpcHRpb24YEyABKAkSHQoVcHJpbWFyeV9pbmRleF9jb21wYW55GBQgASgJEk8KFWluZGV4X3JlY292ZXJ5X3BlcmlvZBgVIAEoCzIwLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuUXVvdGF0aW9uEhEKCWluYXZfY29kZRgWIAEoCRIWCg5kaXZfeWllbGRfZmxhZxgXIAEoCBJMChJleHBlbnNlX2NvbW1pc3Npb24YGCABKAsyMC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlF1b3RhdGlvbhJWChxwcmltYXJ5X2luZGV4X3RyYWNraW5nX2Vycm9yGBkgASgLMjAudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5RdW90YXRpb24SGAoQcmViYWxhbmNpbmdfcGxhbhgaIAEoCRIQCgh0YXhfcmF0ZRgbIAEoCRI1ChFyZWJhbGFuY2luZ19kYXRlcxgcIAMoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASEgoKaXNzdWVfa2luZBgdIAEoCRJBCgdub21pbmFsGB4gASgLMjAudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5RdW90YXRpb24SGAoQbm9taW5hbF9jdXJyZW5jeRgfIAEoCSJ3ChhBc3NldENsZWFyaW5nQ2VydGlmaWNhdGUSQQoHbm9taW5hbBgBIAEoCzIwLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuUXVvdGF0aW9uEhgKEG5vbWluYWxfY3VycmVuY3kYAiABKAkinQEKBUJyYW5kEgsKA3VpZBgBIAEoCRIMCgRuYW1lGAIgASgJEhMKC2Rlc2NyaXB0aW9uGAMgASgJEgwKBGluZm8YBCABKAkSDwoHY29tcGFueRgFIAEoCRIOCgZzZWN0b3IYBiABKAkSFwoPY291bnRyeV9vZl9yaXNrGAcgASgJEhwKFGNvdW50cnlfb2Zfcmlza19uYW1lGAggASgJIpUCCg9Bc3NldEluc3RydW1lbnQSCwoDdWlkGAEgASgJEgwKBGZpZ2kYAiABKAkSFwoPaW5zdHJ1bWVudF90eXBlGAMgASgJEg4KBnRpY2tlchgEIAEoCRISCgpjbGFzc19jb2RlGAUgASgJEkQKBWxpbmtzGAYgAygLMjUudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5JbnN0cnVtZW50TGluaxJOCg9pbnN0cnVtZW50X2tpbmQYCiABKA4yNS50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLkluc3RydW1lbnRUeXBlEhQKDHBvc2l0aW9uX3VpZBgLIAEoCSI2Cg5JbnN0cnVtZW50TGluaxIMCgR0eXBlGAEgASgJEhYKDmluc3RydW1lbnRfdWlkGAIgASgJIjkKE0dldEZhdm9yaXRlc1JlcXVlc3QSFQoIZ3JvdXBfaWQYASABKAlIAIgBAUILCglfZ3JvdXBfaWQikwEKFEdldEZhdm9yaXRlc1Jlc3BvbnNlElcKFGZhdm9yaXRlX2luc3RydW1lbnRzGAEgAygLMjkudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5GYXZvcml0ZUluc3RydW1lbnQSFQoIZ3JvdXBfaWQYAiABKAlIAIgBAUILCglfZ3JvdXBfaWQijAIKEkZhdm9yaXRlSW5zdHJ1bWVudBIMCgRmaWdpGAEgASgJEg4KBnRpY2tlchgCIAEoCRISCgpjbGFzc19jb2RlGAMgASgJEgwKBGlzaW4YBCABKAkSFwoPaW5zdHJ1bWVudF90eXBlGAsgASgJEgwKBG5hbWUYDCABKAkSCwoDdWlkGA0gASgJEhAKCG90Y19mbGFnGBAgASgIEiAKGGFwaV90cmFkZV9hdmFpbGFibGVfZmxhZxgRIAEoCBJOCg9pbnN0cnVtZW50X2tpbmQYEiABKA4yNS50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLkluc3RydW1lbnRUeXBlIvcBChRFZGl0RmF2b3JpdGVzUmVxdWVzdBJgCgtpbnN0cnVtZW50cxgBIAMoCzJFLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuRWRpdEZhdm9yaXRlc1JlcXVlc3RJbnN0cnVtZW50QgTiQQECElkKC2FjdGlvbl90eXBlGAYgASgOMj4udGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5FZGl0RmF2b3JpdGVzQWN0aW9uVHlwZUIE4kEBAhIVCghncm91cF9pZBgHIAEoCUgAiAEBQgsKCV9ncm91cF9pZCJdCh5FZGl0RmF2b3JpdGVzUmVxdWVzdEluc3RydW1lbnQSFQoEZmlnaRgBIAEoCUICGAFIAIgBARIbCg1pbnN0cnVtZW50X2lkGAIgASgJQgTiQQECQgcKBV9maWdpIpQBChVFZGl0RmF2b3JpdGVzUmVzcG9uc2USVwoUZmF2b3JpdGVfaW5zdHJ1bWVudHMYASADKAsyOS50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLkZhdm9yaXRlSW5zdHJ1bWVudBIVCghncm91cF9pZBgCIAEoCUgAiAEBQgsKCV9ncm91cF9pZCJtChpDcmVhdGVGYXZvcml0ZUdyb3VwUmVxdWVzdBIYCgpncm91cF9uYW1lGAEgASgJQgTiQQECEhkKC2dyb3VwX2NvbG9yGAIgASgJQgTiQQECEhEKBG5vdGUYAyABKAlIAIgBAUIHCgVfbm90ZSJDChtDcmVhdGVGYXZvcml0ZUdyb3VwUmVzcG9uc2USEAoIZ3JvdXBfaWQYASABKAkSEgoKZ3JvdXBfbmFtZRgCIAEoCSI0ChpEZWxldGVGYXZvcml0ZUdyb3VwUmVxdWVzdBIWCghncm91cF9pZBgBIAEoCUIE4kEBAiIdChtEZWxldGVGYXZvcml0ZUdyb3VwUmVzcG9uc2UiTAoYR2V0RmF2b3JpdGVHcm91cHNSZXF1ZXN0EhUKDWluc3RydW1lbnRfaWQYASADKAkSGQoRZXhjbHVkZWRfZ3JvdXBfaWQYAiADKAkiogIKGUdldEZhdm9yaXRlR3JvdXBzUmVzcG9uc2USXgoGZ3JvdXBzGAEgAygLMk4udGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5HZXRGYXZvcml0ZUdyb3Vwc1Jlc3BvbnNlLkZhdm9yaXRlR3JvdXAapAEKDUZhdm9yaXRlR3JvdXASFgoIZ3JvdXBfaWQYASABKAlCBOJBAQISGAoKZ3JvdXBfbmFtZRgCIAEoCUIE4kEBAhITCgVjb2xvchgDIAEoCUIE4kEBAhISCgRzaXplGAQgASgFQgTiQQECEiAKE2NvbnRhaW5zX2luc3RydW1lbnQYBSABKAhIAIgBAUIWChRfY29udGFpbnNfaW5zdHJ1bWVudCIVChNHZXRDb3VudHJpZXNSZXF1ZXN0ImEKFEdldENvdW50cmllc1Jlc3BvbnNlEkkKCWNvdW50cmllcxgBIAMoCzI2LnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuQ291bnRyeVJlc3BvbnNlIhQKEkluZGljYXRpdmVzUmVxdWVzdCJlChNJbmRpY2F0aXZlc1Jlc3BvbnNlEk4KC2luc3RydW1lbnRzGAEgAygLMjkudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5JbmRpY2F0aXZlUmVzcG9uc2UikAIKEkluZGljYXRpdmVSZXNwb25zZRIMCgRmaWdpGAEgASgJEg4KBnRpY2tlchgCIAEoCRISCgpjbGFzc19jb2RlGAMgASgJEhAKCGN1cnJlbmN5GAQgASgJEk4KD2luc3RydW1lbnRfa2luZBgKIAEoDjI1LnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuSW5zdHJ1bWVudFR5cGUSDAoEbmFtZRgMIAEoCRIQCghleGNoYW5nZRgNIAEoCRILCgN1aWQYDiABKAkSGwoSYnV5X2F2YWlsYWJsZV9mbGFnGJQDIAEoCBIcChNzZWxsX2F2YWlsYWJsZV9mbGFnGJUDIAEoCCJZCg9Db3VudHJ5UmVzcG9uc2USEAoIYWxmYV90d28YASABKAkSEgoKYWxmYV90aHJlZRgCIAEoCRIMCgRuYW1lGAMgASgJEhIKCm5hbWVfYnJpZWYYBCABKAki2QEKFUZpbmRJbnN0cnVtZW50UmVxdWVzdBITCgVxdWVyeRgBIAEoCUIE4kEBAhJTCg9pbnN0cnVtZW50X2tpbmQYAiABKA4yNS50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLkluc3RydW1lbnRUeXBlSACIAQESJQoYYXBpX3RyYWRlX2F2YWlsYWJsZV9mbGFnGAMgASgISAGIAQFCEgoQX2luc3RydW1lbnRfa2luZEIbChlfYXBpX3RyYWRlX2F2YWlsYWJsZV9mbGFnImUKFkZpbmRJbnN0cnVtZW50UmVzcG9uc2USSwoLaW5zdHJ1bWVudHMYASADKAsyNi50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLkluc3RydW1lbnRTaG9ydCL4AwoPSW5zdHJ1bWVudFNob3J0EgwKBGlzaW4YASABKAkSDAoEZmlnaRgCIAEoCRIOCgZ0aWNrZXIYAyABKAkSEgoKY2xhc3NfY29kZRgEIAEoCRIXCg9pbnN0cnVtZW50X3R5cGUYBSABKAkSDAoEbmFtZRgGIAEoCRILCgN1aWQYByABKAkSFAoMcG9zaXRpb25fdWlkGAggASgJEk4KD2luc3RydW1lbnRfa2luZBgKIAEoDjI1LnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuSW5zdHJ1bWVudFR5cGUSIAoYYXBpX3RyYWRlX2F2YWlsYWJsZV9mbGFnGAsgASgIEhQKDGZvcl9paXNfZmxhZxgMIAEoCBI6ChZmaXJzdF8xbWluX2NhbmRsZV9kYXRlGBogASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBI6ChZmaXJzdF8xZGF5X2NhbmRsZV9kYXRlGBsgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIeChZmb3JfcXVhbF9pbnZlc3Rvcl9mbGFnGBwgASgIEhQKDHdlZWtlbmRfZmxhZxgdIAEoCBIYChBibG9ja2VkX3RjYV9mbGFnGB4gASgIEgsKA2xvdBgfIAEoBSJPChBHZXRCcmFuZHNSZXF1ZXN0EjsKBnBhZ2luZxgBIAEoCzIrLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuUGFnZSIjCg9HZXRCcmFuZFJlcXVlc3QSEAoCaWQYASABKAlCBOJBAQIilgEKEUdldEJyYW5kc1Jlc3BvbnNlEjwKBmJyYW5kcxgBIAMoCzIsLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuQnJhbmQSQwoGcGFnaW5nGAIgASgLMjMudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5QYWdlUmVzcG9uc2UiMwobR2V0QXNzZXRGdW5kYW1lbnRhbHNSZXF1ZXN0EhQKBmFzc2V0cxgBIAMoCUIE4kEBAiL9DgocR2V0QXNzZXRGdW5kYW1lbnRhbHNSZXNwb25zZRJrCgxmdW5kYW1lbnRhbHMYASADKAsyVS50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLkdldEFzc2V0RnVuZGFtZW50YWxzUmVzcG9uc2UuU3RhdGlzdGljUmVzcG9uc2Ua7w0KEVN0YXRpc3RpY1Jlc3BvbnNlEhEKCWFzc2V0X3VpZBgBIAEoCRIQCghjdXJyZW5jeRgCIAEoCRIdChVtYXJrZXRfY2FwaXRhbGl6YXRpb24YAyABKAESIAoYaGlnaF9wcmljZV9sYXN0XzUyX3dlZWtzGAQgASgBEh8KF2xvd19wcmljZV9sYXN0XzUyX3dlZWtzGAUgASgBEikKIWF2ZXJhZ2VfZGFpbHlfdm9sdW1lX2xhc3RfMTBfZGF5cxgGIAEoARIpCiFhdmVyYWdlX2RhaWx5X3ZvbHVtZV9sYXN0XzRfd2Vla3MYByABKAESDAoEYmV0YRgIIAEoARISCgpmcmVlX2Zsb2F0GAkgASgBEiUKHWZvcndhcmRfYW5udWFsX2RpdmlkZW5kX3lpZWxkGAogASgBEhoKEnNoYXJlc19vdXRzdGFuZGluZxgLIAEoARITCgtyZXZlbnVlX3R0bRgMIAEoARISCgplYml0ZGFfdHRtGA0gASgBEhYKDm5ldF9pbmNvbWVfdHRtGA4gASgBEg8KB2Vwc190dG0YDyABKAESFwoPZGlsdXRlZF9lcHNfdHRtGBAgASgBEhoKEmZyZWVfY2FzaF9mbG93X3R0bRgRIAEoARIsCiRmaXZlX3llYXJfYW5udWFsX3JldmVudWVfZ3Jvd3RoX3JhdGUYEiABKAESLQoldGhyZWVfeWVhcl9hbm51YWxfcmV2ZW51ZV9ncm93dGhfcmF0ZRgTIAEoARIUCgxwZV9yYXRpb190dG0YFCABKAESGgoScHJpY2VfdG9fc2FsZXNfdHRtGBUgASgBEhkKEXByaWNlX3RvX2Jvb2tfdHRtGBYgASgBEiMKG3ByaWNlX3RvX2ZyZWVfY2FzaF9mbG93X3R0bRgXIAEoARIiChp0b3RhbF9lbnRlcnByaXNlX3ZhbHVlX21ycRgYIAEoARIYChBldl90b19lYml0ZGFfbXJxGBkgASgBEhYKDm5ldF9tYXJnaW5fbXJxGBogASgBEh8KF25ldF9pbnRlcmVzdF9tYXJnaW5fbXJxGBsgASgBEgsKA3JvZRgcIAEoARILCgNyb2EYHSABKAESDAoEcm9pYxgeIAEoARIWCg50b3RhbF9kZWJ0X21ycRgfIAEoARIgChh0b3RhbF9kZWJ0X3RvX2VxdWl0eV9tcnEYICABKAESIAoYdG90YWxfZGVidF90b19lYml0ZGFfbXJxGCEgASgBEh8KF2ZyZWVfY2FzaF9mbG93X3RvX3ByaWNlGCIgASgBEhoKEm5ldF9kZWJ0X3RvX2ViaXRkYRgjIAEoARIZChFjdXJyZW50X3JhdGlvX21ycRgkIAEoARImCh5maXhlZF9jaGFyZ2VfY292ZXJhZ2VfcmF0aW9fZnkYJSABKAESIAoYZGl2aWRlbmRfeWllbGRfZGFpbHlfdHRtGCYgASgBEhkKEWRpdmlkZW5kX3JhdGVfdHRtGCcgASgBEhsKE2RpdmlkZW5kc19wZXJfc2hhcmUYKCABKAESKQohZml2ZV95ZWFyc19hdmVyYWdlX2RpdmlkZW5kX3lpZWxkGCkgASgBEi0KJWZpdmVfeWVhcl9hbm51YWxfZGl2aWRlbmRfZ3Jvd3RoX3JhdGUYKiABKAESIAoYZGl2aWRlbmRfcGF5b3V0X3JhdGlvX2Z5GCsgASgBEhQKDGJ1eV9iYWNrX3R0bRgsIAEoARIrCiNvbmVfeWVhcl9hbm51YWxfcmV2ZW51ZV9ncm93dGhfcmF0ZRgtIAEoARIfChdkb21pY2lsZV9pbmRpY2F0b3JfY29kZRguIAEoCRIhChlhZHJfdG9fY29tbW9uX3NoYXJlX3JhdGlvGC8gASgBEhsKE251bWJlcl9vZl9lbXBsb3llZXMYMCABKAESNAoQZXhfZGl2aWRlbmRfZGF0ZRgxIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASPAoYZmlzY2FsX3BlcmlvZF9zdGFydF9kYXRlGDIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBI6ChZmaXNjYWxfcGVyaW9kX2VuZF9kYXRlGDMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIhChlyZXZlbnVlX2NoYW5nZV9maXZlX3llYXJzGDUgASgBEh0KFWVwc19jaGFuZ2VfZml2ZV95ZWFycxg2IAEoARIgChhlYml0ZGFfY2hhbmdlX2ZpdmVfeWVhcnMYNyABKAESJAocdG90YWxfZGVidF9jaGFuZ2VfZml2ZV95ZWFycxg4IAEoARITCgtldl90b19zYWxlcxg5IAEoASKhAQoWR2V0QXNzZXRSZXBvcnRzUmVxdWVzdBIbCg1pbnN0cnVtZW50X2lkGAEgASgJQgTiQQECEi0KBGZyb20YAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSACIAQESKwoCdG8YAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAGIAQFCBwoFX2Zyb21CBQoDX3RvIqcEChdHZXRBc3NldFJlcG9ydHNSZXNwb25zZRJjCgZldmVudHMYASADKAsyUy50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLkdldEFzc2V0UmVwb3J0c1Jlc3BvbnNlLkdldEFzc2V0UmVwb3J0c0V2ZW50GqICChRHZXRBc3NldFJlcG9ydHNFdmVudBIVCg1pbnN0cnVtZW50X2lkGAEgASgJEi8KC3JlcG9ydF9kYXRlGAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBITCgtwZXJpb2RfeWVhchgDIAEoBRISCgpwZXJpb2RfbnVtGAQgASgFEmkKC3BlcmlvZF90eXBlGAUgASgOMlQudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5HZXRBc3NldFJlcG9ydHNSZXNwb25zZS5Bc3NldFJlcG9ydFBlcmlvZFR5cGUSLgoKY3JlYXRlZF9hdBgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAigQEKFUFzc2V0UmVwb3J0UGVyaW9kVHlwZRIbChdQRVJJT0RfVFlQRV9VTlNQRUNJRklFRBAAEhcKE1BFUklPRF9UWVBFX1FVQVJURVIQARIaChZQRVJJT0RfVFlQRV9TRU1JQU5OVUFMEAISFgoSUEVSSU9EX1RZUEVfQU5OVUFMEAMiawocR2V0Q29uc2Vuc3VzRm9yZWNhc3RzUmVxdWVzdBJACgZwYWdpbmcYASABKAsyKy50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlBhZ2VIAIgBAUIJCgdfcGFnaW5nIoYGCh1HZXRDb25zZW5zdXNGb3JlY2FzdHNSZXNwb25zZRJqCgVpdGVtcxgBIAMoCzJbLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuR2V0Q29uc2Vuc3VzRm9yZWNhc3RzUmVzcG9uc2UuQ29uc2Vuc3VzRm9yZWNhc3RzSXRlbRJBCgRwYWdlGAIgASgLMjMudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5QYWdlUmVzcG9uc2UatQQKFkNvbnNlbnN1c0ZvcmVjYXN0c0l0ZW0SCwoDdWlkGAEgASgJEhEKCWFzc2V0X3VpZBgCIAEoCRIuCgpjcmVhdGVkX2F0GAMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBJLChFiZXN0X3RhcmdldF9wcmljZRgEIAEoCzIwLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuUXVvdGF0aW9uEkkKD2Jlc3RfdGFyZ2V0X2xvdxgFIAEoCzIwLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuUXVvdGF0aW9uEkoKEGJlc3RfdGFyZ2V0X2hpZ2gYBiABKAsyMC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlF1b3RhdGlvbhIbChN0b3RhbF9idXlfcmVjb21tZW5kGAcgASgFEhwKFHRvdGFsX2hvbGRfcmVjb21tZW5kGAggASgFEhwKFHRvdGFsX3NlbGxfcmVjb21tZW5kGAkgASgFEhAKCGN1cnJlbmN5GAogASgJEkgKCWNvbnNlbnN1cxgLIAEoDjI1LnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuUmVjb21tZW5kYXRpb24SMgoOcHJvZ25vc2lzX2RhdGUYDCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIisKEkdldEZvcmVjYXN0UmVxdWVzdBIVCg1pbnN0cnVtZW50X2lkGAEgASgJIpcKChNHZXRGb3JlY2FzdFJlc3BvbnNlElYKB3RhcmdldHMYASADKAsyRS50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLkdldEZvcmVjYXN0UmVzcG9uc2UuVGFyZ2V0SXRlbRJbCgljb25zZW5zdXMYAiABKAsySC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLkdldEZvcmVjYXN0UmVzcG9uc2UuQ29uc2Vuc3VzSXRlbRqMBAoKVGFyZ2V0SXRlbRILCgN1aWQYASABKAkSDgoGdGlja2VyGAIgASgJEg8KB2NvbXBhbnkYAyABKAkSTQoOcmVjb21tZW5kYXRpb24YBCABKA4yNS50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlJlY29tbWVuZGF0aW9uEjcKE3JlY29tbWVuZGF0aW9uX2RhdGUYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhAKCGN1cnJlbmN5GAYgASgJEkcKDWN1cnJlbnRfcHJpY2UYByABKAsyMC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlF1b3RhdGlvbhJGCgx0YXJnZXRfcHJpY2UYCCABKAsyMC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlF1b3RhdGlvbhJGCgxwcmljZV9jaGFuZ2UYCSABKAsyMC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlF1b3RhdGlvbhJKChBwcmljZV9jaGFuZ2VfcmVsGAogASgLMjAudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5RdW90YXRpb24SEQoJc2hvd19uYW1lGAsgASgJGrsECg1Db25zZW5zdXNJdGVtEgsKA3VpZBgBIAEoCRIOCgZ0aWNrZXIYAiABKAkSTQoOcmVjb21tZW5kYXRpb24YAyABKA4yNS50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlJlY29tbWVuZGF0aW9uEhAKCGN1cnJlbmN5GAQgASgJEkcKDWN1cnJlbnRfcHJpY2UYBSABKAsyMC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlF1b3RhdGlvbhJDCgljb25zZW5zdXMYBiABKAsyMC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlF1b3RhdGlvbhJECgptaW5fdGFyZ2V0GAcgASgLMjAudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5RdW90YXRpb24SRAoKbWF4X3RhcmdldBgIIAEoCzIwLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuUXVvdGF0aW9uEkYKDHByaWNlX2NoYW5nZRgJIAEoCzIwLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuUXVvdGF0aW9uEkoKEHByaWNlX2NoYW5nZV9yZWwYCiABKAsyMC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlF1b3RhdGlvbiIpChBSaXNrUmF0ZXNSZXF1ZXN0EhUKDWluc3RydW1lbnRfaWQYASADKAkiywUKEVJpc2tSYXRlc1Jlc3BvbnNlEmYKFWluc3RydW1lbnRfcmlza19yYXRlcxgBIAMoCzJHLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuUmlza1JhdGVzUmVzcG9uc2UuUmlza1JhdGVSZXN1bHQa5wMKDlJpc2tSYXRlUmVzdWx0EhYKDmluc3RydW1lbnRfdWlkGAEgASgJEl8KD3Nob3J0X3Jpc2tfcmF0ZRgCIAEoCzJBLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuUmlza1JhdGVzUmVzcG9uc2UuUmlza1JhdGVIAIgBARJeCg5sb25nX3Jpc2tfcmF0ZRgDIAEoCzJBLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuUmlza1JhdGVzUmVzcG9uc2UuUmlza1JhdGVIAYgBARJbChBzaG9ydF9yaXNrX3JhdGVzGAUgAygLMkEudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5SaXNrUmF0ZXNSZXNwb25zZS5SaXNrUmF0ZRJaCg9sb25nX3Jpc2tfcmF0ZXMYBiADKAsyQS50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlJpc2tSYXRlc1Jlc3BvbnNlLlJpc2tSYXRlEhIKBWVycm9yGAkgASgJSAKIAQFCEgoQX3Nob3J0X3Jpc2tfcmF0ZUIRCg9fbG9uZ19yaXNrX3JhdGVCCAoGX2Vycm9yGmQKCFJpc2tSYXRlEhcKD3Jpc2tfbGV2ZWxfY29kZRgCIAEoCRI/CgV2YWx1ZRgFIAEoCzIwLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuUXVvdGF0aW9uIuABCg9UcmFkaW5nSW50ZXJ2YWwSDAoEdHlwZRgBIAEoCRJVCghpbnRlcnZhbBgCIAEoCzJDLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuVHJhZGluZ0ludGVydmFsLlRpbWVJbnRlcnZhbBpoCgxUaW1lSW50ZXJ2YWwSLAoIc3RhcnRfdHMYASABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEioKBmVuZF90cxgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiaAoWR2V0SW5zaWRlckRlYWxzUmVxdWVzdBIVCg1pbnN0cnVtZW50X2lkGAEgASgJEg0KBWxpbWl0GAIgASgFEhgKC25leHRfY3Vyc29yGAMgASgJSACIAQFCDgoMX25leHRfY3Vyc29yIpwGChdHZXRJbnNpZGVyRGVhbHNSZXNwb25zZRJhCg1pbnNpZGVyX2RlYWxzGAEgAygLMkoudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5HZXRJbnNpZGVyRGVhbHNSZXNwb25zZS5JbnNpZGVyRGVhbBIYCgtuZXh0X2N1cnNvchgCIAEoCUgAiAEBGtADCgtJbnNpZGVyRGVhbBIQCgh0cmFkZV9pZBgBIAEoAxJgCglkaXJlY3Rpb24YAiABKA4yTS50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLkdldEluc2lkZXJEZWFsc1Jlc3BvbnNlLlRyYWRlRGlyZWN0aW9uEhAKCGN1cnJlbmN5GAMgASgJEigKBGRhdGUYBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhAKCHF1YW50aXR5GAUgASgDEj8KBXByaWNlGAYgASgLMjAudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5RdW90YXRpb24SFgoOaW5zdHJ1bWVudF91aWQYByABKAkSDgoGdGlja2VyGAggASgJEhUKDWludmVzdG9yX25hbWUYCSABKAkSGQoRaW52ZXN0b3JfcG9zaXRpb24YCiABKAkSEgoKcGVyY2VudGFnZRgLIAEoAhIbChNpc19vcHRpb25fZXhlY3V0aW9uGAwgASgIEjMKD2Rpc2Nsb3N1cmVfZGF0ZRgNIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAioAEKDlRyYWRlRGlyZWN0aW9uEh8KG1RSQURFX0RJUkVDVElPTl9VTlNQRUNJRklFRBAAEhcKE1RSQURFX0RJUkVDVElPTl9CVVkQARIYChRUUkFERV9ESVJFQ1RJT05fU0VMTBACEhwKGFRSQURFX0RJUkVDVElPTl9JTkNSRUFTRRADEhwKGFRSQURFX0RJUkVDVElPTl9ERUNSRUFTRRAEQg4KDF9uZXh0X2N1cnNvciINCgtEZmFzUmVxdWVzdCL6CQoLRGZhUmVzcG9uc2USCwoDdWlkGAEgASgJEg4KBnRpY2tlchgCIAEoCRIMCgRuYW1lGAMgASgJEhQKDHBvc2l0aW9uX3VpZBgEIAEoCRJNChNtaW5fcHJpY2VfaW5jcmVtZW50GAUgASgLMjAudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5RdW90YXRpb24SCwoDbG90GAYgASgFEkIKB25vbWluYWwYByABKAsyMS50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLk1vbmV5VmFsdWUSEAoIY3VycmVuY3kYCCABKAkSMQoNbWF0dXJpdHlfZGF0ZRgJIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASGgoSc2hvcnRfZW5hYmxlZF9mbGFnGAogASgIEiAKGGFwaV90cmFkZV9hdmFpbGFibGVfZmxhZxgLIAEoCBIaChJidXlfYXZhaWxhYmxlX2ZsYWcYDCABKAgSGwoTc2VsbF9hdmFpbGFibGVfZmxhZxgNIAEoCBIiChpsaW1pdF9vcmRlcl9hdmFpbGFibGVfZmxhZxgOIAEoCBIjChttYXJrZXRfb3JkZXJfYXZhaWxhYmxlX2ZsYWcYDyABKAgSJgoeYmVzdHByaWNlX29yZGVyX2F2YWlsYWJsZV9mbGFnGBAgASgIEhQKDGZvcl9paXNfZmxhZxgRIAEoCBIeChZmb3JfcXVhbF9pbnZlc3Rvcl9mbGFnGBIgASgIEgwKBHR5cGUYEyABKAkSUwoMYmFzaWNfYXNzZXRzGBQgAygLMj0udGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5EZmFSZXNwb25zZS5CYXNpY0Fzc2V0ElgKDmZvcmVjYXN0X3lpZWxkGBUgASgLMkAudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5EZmFSZXNwb25zZS5Gb3JlY2FzdFlpZWxkEksKEXlpZWxkX3RvX21hdHVyaXR5GBYgASgLMjAudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5RdW90YXRpb24SRgoMY291cG9uX3ZhbHVlGBcgASgLMjAudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5RdW90YXRpb24SIAoYY291cG9uX3BheW1lbnRfZnJlcXVlbmN5GBggASgFEjcKE2NvdXBvbl9wYXltZW50X2RhdGUYGSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEkMKCWFjaV92YWx1ZRgaIAEoCzIwLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuUXVvdGF0aW9uGhkKCkJhc2ljQXNzZXQSCwoDdWlkGAEgASgJGpkBCg1Gb3JlY2FzdFlpZWxkEkMKCW1pbl92YWx1ZRgBIAEoCzIwLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuUXVvdGF0aW9uEkMKCW1heF92YWx1ZRgCIAEoCzIwLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuUXVvdGF0aW9uIlcKDERmYXNSZXNwb25zZRJHCgtpbnN0cnVtZW50cxgBIAMoCzIyLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuRGZhUmVzcG9uc2Uq1wEKCkNvdXBvblR5cGUSGwoXQ09VUE9OX1RZUEVfVU5TUEVDSUZJRUQQABIYChRDT1VQT05fVFlQRV9DT05TVEFOVBABEhgKFENPVVBPTl9UWVBFX0ZMT0FUSU5HEAISGAoUQ09VUE9OX1RZUEVfRElTQ09VTlQQAxIYChRDT1VQT05fVFlQRV9NT1JUR0FHRRAEEhMKD0NPVVBPTl9UWVBFX0ZJWBAFEhgKFENPVVBPTl9UWVBFX1ZBUklBQkxFEAYSFQoRQ09VUE9OX1RZUEVfT1RIRVIQBypoCg9PcHRpb25EaXJlY3Rpb24SIAocT1BUSU9OX0RJUkVDVElPTl9VTlNQRUNJRklFRBAAEhgKFE9QVElPTl9ESVJFQ1RJT05fUFVUEAESGQoVT1BUSU9OX0RJUkVDVElPTl9DQUxMEAIqewoRT3B0aW9uUGF5bWVudFR5cGUSIwofT1BUSU9OX1BBWU1FTlRfVFlQRV9VTlNQRUNJRklFRBAAEh8KG09QVElPTl9QQVlNRU5UX1RZUEVfUFJFTUlVTRABEiAKHE9QVElPTl9QQVlNRU5UX1RZUEVfTUFSR0lOQUwQAiphCgtPcHRpb25TdHlsZRIcChhPUFRJT05fU1RZTEVfVU5TUEVDSUZJRUQQABIZChVPUFRJT05fU1RZTEVfQU1FUklDQU4QARIZChVPUFRJT05fU1RZTEVfRVVST1BFQU4QAiqVAQoUT3B0aW9uU2V0dGxlbWVudFR5cGUSJQohT1BUSU9OX0VYRUNVVElPTl9UWVBFX1VOU1BFQ0lGSUVEEAASKwonT1BUSU9OX0VYRUNVVElPTl9UWVBFX1BIWVNJQ0FMX0RFTElWRVJZEAESKQolT1BUSU9OX0VYRUNVVElPTl9UWVBFX0NBU0hfU0VUVExFTUVOVBACKskBChBJbnN0cnVtZW50SWRUeXBlEh0KGUlOU1RSVU1FTlRfSURfVU5TUEVDSUZJRUQQABIbChdJTlNUUlVNRU5UX0lEX1RZUEVfRklHSRABEh0KGUlOU1RSVU1FTlRfSURfVFlQRV9USUNLRVIQAhIaChZJTlNUUlVNRU5UX0lEX1RZUEVfVUlEEAMSIwofSU5TVFJVTUVOVF9JRF9UWVBFX1BPU0lUSU9OX1VJRBAEEhkKFUlOU1RSVU1FTlRfSURfVFlQRV9JRBAFKuUBCglTaGFyZVR5cGUSGgoWU0hBUkVfVFlQRV9VTlNQRUNJRklFRBAAEhUKEVNIQVJFX1RZUEVfQ09NTU9OEAESGAoUU0hBUkVfVFlQRV9QUkVGRVJSRUQQAhISCg5TSEFSRV9UWVBFX0FEUhADEhIKDlNIQVJFX1RZUEVfR0RSEAQSEgoOU0hBUkVfVFlQRV9NTFAQBRIaChZTSEFSRV9UWVBFX05ZX1JFR19TSFJTEAYSHgoaU0hBUkVfVFlQRV9DTE9TRURfRU5EX0ZVTkQQBxITCg9TSEFSRV9UWVBFX1JFSVQQCCqJAQoJQXNzZXRUeXBlEhoKFkFTU0VUX1RZUEVfVU5TUEVDSUZJRUQQABIXChNBU1NFVF9UWVBFX0NVUlJFTkNZEAESGAoUQVNTRVRfVFlQRV9DT01NT0RJVFkQAhIUChBBU1NFVF9UWVBFX0lOREVYEAMSFwoTQVNTRVRfVFlQRV9TRUNVUklUWRAEKmYKFVN0cnVjdHVyZWRQcm9kdWN0VHlwZRIXChNTUF9UWVBFX1VOU1BFQ0lGSUVEEAASFwoTU1BfVFlQRV9ERUxJVkVSQUJMRRABEhsKF1NQX1RZUEVfTk9OX0RFTElWRVJBQkxFEAIqjQEKF0VkaXRGYXZvcml0ZXNBY3Rpb25UeXBlEioKJkVESVRfRkFWT1JJVEVTX0FDVElPTl9UWVBFX1VOU1BFQ0lGSUVEEAASIgoeRURJVF9GQVZPUklURVNfQUNUSU9OX1RZUEVfQUREEAESIgoeRURJVF9GQVZPUklURVNfQUNUSU9OX1RZUEVfREVMEAIqegoOUmVjb21tZW5kYXRpb24SHgoaUkVDT01NRU5EQVRJT05fVU5TUEVDSUZJRUQQABIWChJSRUNPTU1FTkRBVElPTl9CVVkQARIXChNSRUNPTU1FTkRBVElPTl9IT0xEEAISFwoTUkVDT01NRU5EQVRJT05fU0VMTBADKmkKCVJpc2tMZXZlbBIaChZSSVNLX0xFVkVMX1VOU1BFQ0lGSUVEEAASEgoOUklTS19MRVZFTF9MT1cQARIXChNSSVNLX0xFVkVMX01PREVSQVRFEAISEwoPUklTS19MRVZFTF9ISUdIEAMqPQoIQm9uZFR5cGUSGQoVQk9ORF9UWVBFX1VOU1BFQ0lGSUVEEAASFgoSQk9ORF9UWVBFX1JFUExBQ0VEEAEqXQoWSW5zdHJ1bWVudEV4Y2hhbmdlVHlwZRIjCh9JTlNUUlVNRU5UX0VYQ0hBTkdFX1VOU1BFQ0lGSUVEEAASHgoaSU5TVFJVTUVOVF9FWENIQU5HRV9ERUFMRVIQATLiLAoSSW5zdHJ1bWVudHNTZXJ2aWNlEpMBChBUcmFkaW5nU2NoZWR1bGVzEj4udGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5UcmFkaW5nU2NoZWR1bGVzUmVxdWVzdBo/LnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuVHJhZGluZ1NjaGVkdWxlc1Jlc3BvbnNlEncKBkJvbmRCeRI4LnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuSW5zdHJ1bWVudFJlcXVlc3QaMy50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLkJvbmRSZXNwb25zZRJ4CgVCb25kcxI5LnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuSW5zdHJ1bWVudHNSZXF1ZXN0GjQudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5Cb25kc1Jlc3BvbnNlEo0BCg5HZXRCb25kQ291cG9ucxI8LnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuR2V0Qm9uZENvdXBvbnNSZXF1ZXN0Gj0udGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5HZXRCb25kQ291cG9uc1Jlc3BvbnNlEooBCg1HZXRCb25kRXZlbnRzEjsudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5HZXRCb25kRXZlbnRzUmVxdWVzdBo8LnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuR2V0Qm9uZEV2ZW50c1Jlc3BvbnNlEn8KCkN1cnJlbmN5QnkSOC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLkluc3RydW1lbnRSZXF1ZXN0GjcudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5DdXJyZW5jeVJlc3BvbnNlEoIBCgpDdXJyZW5jaWVzEjkudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5JbnN0cnVtZW50c1JlcXVlc3QaOS50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLkN1cnJlbmNpZXNSZXNwb25zZRJ1CgVFdGZCeRI4LnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuSW5zdHJ1bWVudFJlcXVlc3QaMi50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLkV0ZlJlc3BvbnNlEnYKBEV0ZnMSOS50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLkluc3RydW1lbnRzUmVxdWVzdBozLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuRXRmc1Jlc3BvbnNlEnsKCEZ1dHVyZUJ5EjgudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5JbnN0cnVtZW50UmVxdWVzdBo1LnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuRnV0dXJlUmVzcG9uc2USfAoHRnV0dXJlcxI5LnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuSW5zdHJ1bWVudHNSZXF1ZXN0GjYudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5GdXR1cmVzUmVzcG9uc2USewoIT3B0aW9uQnkSOC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLkluc3RydW1lbnRSZXF1ZXN0GjUudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5PcHRpb25SZXNwb25zZRKBAQoHT3B0aW9ucxI5LnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuSW5zdHJ1bWVudHNSZXF1ZXN0GjYudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5PcHRpb25zUmVzcG9uc2UiA4gCARKAAQoJT3B0aW9uc0J5EjsudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5GaWx0ZXJPcHRpb25zUmVxdWVzdBo2LnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuT3B0aW9uc1Jlc3BvbnNlEnkKB1NoYXJlQnkSOC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLkluc3RydW1lbnRSZXF1ZXN0GjQudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5TaGFyZVJlc3BvbnNlEnoKBlNoYXJlcxI5LnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuSW5zdHJ1bWVudHNSZXF1ZXN0GjUudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5TaGFyZXNSZXNwb25zZRJ1CgVEZmFCeRI4LnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuSW5zdHJ1bWVudFJlcXVlc3QaMi50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLkRmYVJlc3BvbnNlEm8KBERmYXMSMi50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLkRmYXNSZXF1ZXN0GjMudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5EZmFzUmVzcG9uc2UShAEKC0luZGljYXRpdmVzEjkudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5JbmRpY2F0aXZlc1JlcXVlc3QaOi50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLkluZGljYXRpdmVzUmVzcG9uc2USnAEKE0dldEFjY3J1ZWRJbnRlcmVzdHMSQS50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLkdldEFjY3J1ZWRJbnRlcmVzdHNSZXF1ZXN0GkIudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5HZXRBY2NydWVkSW50ZXJlc3RzUmVzcG9uc2USkwEKEEdldEZ1dHVyZXNNYXJnaW4SPi50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLkdldEZ1dHVyZXNNYXJnaW5SZXF1ZXN0Gj8udGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5HZXRGdXR1cmVzTWFyZ2luUmVzcG9uc2UShgEKD0dldEluc3RydW1lbnRCeRI4LnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuSW5zdHJ1bWVudFJlcXVlc3QaOS50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLkluc3RydW1lbnRSZXNwb25zZRKHAQoMR2V0RGl2aWRlbmRzEjoudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5HZXREaXZpZGVuZHNSZXF1ZXN0GjsudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5HZXREaXZpZGVuZHNSZXNwb25zZRJ3CgpHZXRBc3NldEJ5EjMudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5Bc3NldFJlcXVlc3QaNC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLkFzc2V0UmVzcG9uc2USeAoJR2V0QXNzZXRzEjQudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5Bc3NldHNSZXF1ZXN0GjUudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5Bc3NldHNSZXNwb25zZRKHAQoMR2V0RmF2b3JpdGVzEjoudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5HZXRGYXZvcml0ZXNSZXF1ZXN0GjsudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5HZXRGYXZvcml0ZXNSZXNwb25zZRKKAQoNRWRpdEZhdm9yaXRlcxI7LnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuRWRpdEZhdm9yaXRlc1JlcXVlc3QaPC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLkVkaXRGYXZvcml0ZXNSZXNwb25zZRKcAQoTQ3JlYXRlRmF2b3JpdGVHcm91cBJBLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuQ3JlYXRlRmF2b3JpdGVHcm91cFJlcXVlc3QaQi50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLkNyZWF0ZUZhdm9yaXRlR3JvdXBSZXNwb25zZRKcAQoTRGVsZXRlRmF2b3JpdGVHcm91cBJBLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuRGVsZXRlRmF2b3JpdGVHcm91cFJlcXVlc3QaQi50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLkRlbGV0ZUZhdm9yaXRlR3JvdXBSZXNwb25zZRKWAQoRR2V0RmF2b3JpdGVHcm91cHMSPy50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLkdldEZhdm9yaXRlR3JvdXBzUmVxdWVzdBpALnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuR2V0RmF2b3JpdGVHcm91cHNSZXNwb25zZRKHAQoMR2V0Q291bnRyaWVzEjoudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5HZXRDb3VudHJpZXNSZXF1ZXN0GjsudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5HZXRDb3VudHJpZXNSZXNwb25zZRKNAQoORmluZEluc3RydW1lbnQSPC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLkZpbmRJbnN0cnVtZW50UmVxdWVzdBo9LnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuRmluZEluc3RydW1lbnRSZXNwb25zZRJ+CglHZXRCcmFuZHMSNy50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLkdldEJyYW5kc1JlcXVlc3QaOC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLkdldEJyYW5kc1Jlc3BvbnNlEnIKCkdldEJyYW5kQnkSNi50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLkdldEJyYW5kUmVxdWVzdBosLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuQnJhbmQSnwEKFEdldEFzc2V0RnVuZGFtZW50YWxzEkIudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5HZXRBc3NldEZ1bmRhbWVudGFsc1JlcXVlc3QaQy50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLkdldEFzc2V0RnVuZGFtZW50YWxzUmVzcG9uc2USkAEKD0dldEFzc2V0UmVwb3J0cxI9LnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuR2V0QXNzZXRSZXBvcnRzUmVxdWVzdBo+LnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuR2V0QXNzZXRSZXBvcnRzUmVzcG9uc2USogEKFUdldENvbnNlbnN1c0ZvcmVjYXN0cxJDLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuR2V0Q29uc2Vuc3VzRm9yZWNhc3RzUmVxdWVzdBpELnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuR2V0Q29uc2Vuc3VzRm9yZWNhc3RzUmVzcG9uc2UShgEKDUdldEZvcmVjYXN0QnkSOS50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLkdldEZvcmVjYXN0UmVxdWVzdBo6LnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuR2V0Rm9yZWNhc3RSZXNwb25zZRKBAQoMR2V0Umlza1JhdGVzEjcudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5SaXNrUmF0ZXNSZXF1ZXN0GjgudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5SaXNrUmF0ZXNSZXNwb25zZRKQAQoPR2V0SW5zaWRlckRlYWxzEj0udGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5HZXRJbnNpZGVyRGVhbHNSZXF1ZXN0Gj4udGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5HZXRJbnNpZGVyRGVhbHNSZXNwb25zZRKLAQoQU3RydWN0dXJlZE5vdGVCeRI4LnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuSW5zdHJ1bWVudFJlcXVlc3QaPS50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlN0cnVjdHVyZWROb3RlUmVzcG9uc2USjAEKD1N0cnVjdHVyZWROb3RlcxI5LnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuSW5zdHJ1bWVudHNSZXF1ZXN0Gj4udGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5TdHJ1Y3R1cmVkTm90ZXNSZXNwb25zZUJhChxydS50aW5rb2ZmLnBpYXBpLmNvbnRyYWN0LnYxUAFaDC4vO2ludmVzdGFwaaICBVRJQVBJqgIUVGlua29mZi5JbnZlc3RBcGkuVjHKAhFUaW5rb2ZmXEludmVzdFxWMWIGcHJvdG8z", [file_google_protobuf_timestamp, file_common, file_google_api_field_behavior]);
3049
+ var InstrumentsService = /* @__PURE__ */ serviceDesc(file_instruments, 0);
3050
+
3051
+ // src/gen/marketdata_pb.ts
3052
+ var file_marketdata = /* @__PURE__ */ fileDesc("ChBtYXJrZXRkYXRhLnByb3RvEiV0aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxIosGChFNYXJrZXREYXRhUmVxdWVzdBJjChlzdWJzY3JpYmVfY2FuZGxlc19yZXF1ZXN0GAEgASgLMj4udGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5TdWJzY3JpYmVDYW5kbGVzUmVxdWVzdEgAEmgKHHN1YnNjcmliZV9vcmRlcl9ib29rX3JlcXVlc3QYAiABKAsyQC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlN1YnNjcmliZU9yZGVyQm9va1JlcXVlc3RIABJhChhzdWJzY3JpYmVfdHJhZGVzX3JlcXVlc3QYAyABKAsyPS50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlN1YnNjcmliZVRyYWRlc1JlcXVlc3RIABJdChZzdWJzY3JpYmVfaW5mb19yZXF1ZXN0GAQgASgLMjsudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5TdWJzY3JpYmVJbmZvUmVxdWVzdEgAEmgKHHN1YnNjcmliZV9sYXN0X3ByaWNlX3JlcXVlc3QYBSABKAsyQC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlN1YnNjcmliZUxhc3RQcmljZVJlcXVlc3RIABJZChRnZXRfbXlfc3Vic2NyaXB0aW9ucxgGIAEoCzI5LnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuR2V0TXlTdWJzY3JpcHRpb25zSAASQgoEcGluZxgHIAEoCzIyLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuUGluZ1JlcXVlc3RIABJRCg1waW5nX3NldHRpbmdzGA8gASgLMjgudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5QaW5nRGVsYXlTZXR0aW5nc0gAQgkKB3BheWxvYWQi5QQKIU1hcmtldERhdGFTZXJ2ZXJTaWRlU3RyZWFtUmVxdWVzdBJhChlzdWJzY3JpYmVfY2FuZGxlc19yZXF1ZXN0GAEgASgLMj4udGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5TdWJzY3JpYmVDYW5kbGVzUmVxdWVzdBJmChxzdWJzY3JpYmVfb3JkZXJfYm9va19yZXF1ZXN0GAIgASgLMkAudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5TdWJzY3JpYmVPcmRlckJvb2tSZXF1ZXN0El8KGHN1YnNjcmliZV90cmFkZXNfcmVxdWVzdBgDIAEoCzI9LnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuU3Vic2NyaWJlVHJhZGVzUmVxdWVzdBJbChZzdWJzY3JpYmVfaW5mb19yZXF1ZXN0GAQgASgLMjsudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5TdWJzY3JpYmVJbmZvUmVxdWVzdBJmChxzdWJzY3JpYmVfbGFzdF9wcmljZV9yZXF1ZXN0GAUgASgLMkAudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5TdWJzY3JpYmVMYXN0UHJpY2VSZXF1ZXN0Ek8KDXBpbmdfc2V0dGluZ3MYDyABKAsyOC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlBpbmdEZWxheVNldHRpbmdzIo4IChJNYXJrZXREYXRhUmVzcG9uc2USZQoac3Vic2NyaWJlX2NhbmRsZXNfcmVzcG9uc2UYASABKAsyPy50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlN1YnNjcmliZUNhbmRsZXNSZXNwb25zZUgAEmoKHXN1YnNjcmliZV9vcmRlcl9ib29rX3Jlc3BvbnNlGAIgASgLMkEudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5TdWJzY3JpYmVPcmRlckJvb2tSZXNwb25zZUgAEmMKGXN1YnNjcmliZV90cmFkZXNfcmVzcG9uc2UYAyABKAsyPi50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlN1YnNjcmliZVRyYWRlc1Jlc3BvbnNlSAASXwoXc3Vic2NyaWJlX2luZm9fcmVzcG9uc2UYBCABKAsyPC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlN1YnNjcmliZUluZm9SZXNwb25zZUgAEj8KBmNhbmRsZRgFIAEoCzItLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuQ2FuZGxlSAASPQoFdHJhZGUYBiABKAsyLC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlRyYWRlSAASRQoJb3JkZXJib29rGAcgASgLMjAudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5PcmRlckJvb2tIABJOCg50cmFkaW5nX3N0YXR1cxgIIAEoCzI0LnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuVHJhZGluZ1N0YXR1c0gAEjsKBHBpbmcYCSABKAsyKy50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlBpbmdIABJqCh1zdWJzY3JpYmVfbGFzdF9wcmljZV9yZXNwb25zZRgKIAEoCzJBLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuU3Vic2NyaWJlTGFzdFByaWNlUmVzcG9uc2VIABJGCgpsYXN0X3ByaWNlGAsgASgLMjAudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5MYXN0UHJpY2VIABJMCg1vcGVuX2ludGVyZXN0GAwgASgLMjMudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5PcGVuSW50ZXJlc3RIAEIJCgdwYXlsb2FkItUCChdTdWJzY3JpYmVDYW5kbGVzUmVxdWVzdBJWChNzdWJzY3JpcHRpb25fYWN0aW9uGAEgASgOMjkudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5TdWJzY3JpcHRpb25BY3Rpb24STAoLaW5zdHJ1bWVudHMYAiADKAsyNy50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLkNhbmRsZUluc3RydW1lbnQSFQoNd2FpdGluZ19jbG9zZRgDIAEoCBJmChJjYW5kbGVfc291cmNlX3R5cGUYCSABKA4yRS50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLkdldENhbmRsZXNSZXF1ZXN0LkNhbmRsZVNvdXJjZUgAiAEBQhUKE19jYW5kbGVfc291cmNlX3R5cGUiigEKEENhbmRsZUluc3RydW1lbnQSEAoEZmlnaRgBIAEoCUICGAESTQoIaW50ZXJ2YWwYAiABKA4yOy50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlN1YnNjcmlwdGlvbkludGVydmFsEhUKDWluc3RydW1lbnRfaWQYAyABKAkiiQEKGFN1YnNjcmliZUNhbmRsZXNSZXNwb25zZRITCgt0cmFja2luZ19pZBgBIAEoCRJYChVjYW5kbGVzX3N1YnNjcmlwdGlvbnMYAiADKAsyOS50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLkNhbmRsZVN1YnNjcmlwdGlvbiKfBAoSQ2FuZGxlU3Vic2NyaXB0aW9uEgwKBGZpZ2kYASABKAkSTQoIaW50ZXJ2YWwYAiABKA4yOy50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlN1YnNjcmlwdGlvbkludGVydmFsElYKE3N1YnNjcmlwdGlvbl9zdGF0dXMYAyABKA4yOS50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlN1YnNjcmlwdGlvblN0YXR1cxIWCg5pbnN0cnVtZW50X3VpZBgEIAEoCRIVCg13YWl0aW5nX2Nsb3NlGAUgASgIEhEKCXN0cmVhbV9pZBgGIAEoCRIXCg9zdWJzY3JpcHRpb25faWQYByABKAkSVgoTc3Vic2NyaXB0aW9uX2FjdGlvbhgIIAEoDjI5LnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuU3Vic2NyaXB0aW9uQWN0aW9uEmYKEmNhbmRsZV9zb3VyY2VfdHlwZRgJIAEoDjJFLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuR2V0Q2FuZGxlc1JlcXVlc3QuQ2FuZGxlU291cmNlSACIAQESDgoGdGlja2VyGAogASgJEhIKCmNsYXNzX2NvZGUYCyABKAlCFQoTX2NhbmRsZV9zb3VyY2VfdHlwZSLEAQoZU3Vic2NyaWJlT3JkZXJCb29rUmVxdWVzdBJWChNzdWJzY3JpcHRpb25fYWN0aW9uGAEgASgOMjkudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5TdWJzY3JpcHRpb25BY3Rpb24STwoLaW5zdHJ1bWVudHMYAiADKAsyOi50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLk9yZGVyQm9va0luc3RydW1lbnQinAEKE09yZGVyQm9va0luc3RydW1lbnQSEAoEZmlnaRgBIAEoCUICGAESDQoFZGVwdGgYAiABKAUSFQoNaW5zdHJ1bWVudF9pZBgDIAEoCRJNCg9vcmRlcl9ib29rX3R5cGUYBCABKA4yNC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLk9yZGVyQm9va1R5cGUikQEKGlN1YnNjcmliZU9yZGVyQm9va1Jlc3BvbnNlEhMKC3RyYWNraW5nX2lkGAEgASgJEl4KGG9yZGVyX2Jvb2tfc3Vic2NyaXB0aW9ucxgCIAMoCzI8LnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuT3JkZXJCb29rU3Vic2NyaXB0aW9uIpsDChVPcmRlckJvb2tTdWJzY3JpcHRpb24SDAoEZmlnaRgBIAEoCRINCgVkZXB0aBgCIAEoBRJWChNzdWJzY3JpcHRpb25fc3RhdHVzGAMgASgOMjkudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5TdWJzY3JpcHRpb25TdGF0dXMSFgoOaW5zdHJ1bWVudF91aWQYBCABKAkSEQoJc3RyZWFtX2lkGAUgASgJEhcKD3N1YnNjcmlwdGlvbl9pZBgGIAEoCRJNCg9vcmRlcl9ib29rX3R5cGUYByABKA4yNC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLk9yZGVyQm9va1R5cGUSVgoTc3Vic2NyaXB0aW9uX2FjdGlvbhgIIAEoDjI5LnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuU3Vic2NyaXB0aW9uQWN0aW9uEg4KBnRpY2tlchgJIAEoCRISCgpjbGFzc19jb2RlGAogASgJIqcCChZTdWJzY3JpYmVUcmFkZXNSZXF1ZXN0ElYKE3N1YnNjcmlwdGlvbl9hY3Rpb24YASABKA4yOS50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlN1YnNjcmlwdGlvbkFjdGlvbhJLCgtpbnN0cnVtZW50cxgCIAMoCzI2LnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuVHJhZGVJbnN0cnVtZW50EkwKDHRyYWRlX3NvdXJjZRgDIAEoDjI2LnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuVHJhZGVTb3VyY2VUeXBlEhoKEndpdGhfb3Blbl9pbnRlcmVzdBgEIAEoCCI6Cg9UcmFkZUluc3RydW1lbnQSEAoEZmlnaRgBIAEoCUICGAESFQoNaW5zdHJ1bWVudF9pZBgCIAEoCSLTAQoXU3Vic2NyaWJlVHJhZGVzUmVzcG9uc2USEwoLdHJhY2tpbmdfaWQYASABKAkSVQoTdHJhZGVfc3Vic2NyaXB0aW9ucxgCIAMoCzI4LnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuVHJhZGVTdWJzY3JpcHRpb24STAoMdHJhZGVfc291cmNlGAMgASgOMjYudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5UcmFkZVNvdXJjZVR5cGUi1QIKEVRyYWRlU3Vic2NyaXB0aW9uEgwKBGZpZ2kYASABKAkSVgoTc3Vic2NyaXB0aW9uX3N0YXR1cxgCIAEoDjI5LnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuU3Vic2NyaXB0aW9uU3RhdHVzEhYKDmluc3RydW1lbnRfdWlkGAMgASgJEhEKCXN0cmVhbV9pZBgEIAEoCRIXCg9zdWJzY3JpcHRpb25faWQYBSABKAkSGgoSd2l0aF9vcGVuX2ludGVyZXN0GAYgASgIElYKE3N1YnNjcmlwdGlvbl9hY3Rpb24YByABKA4yOS50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlN1YnNjcmlwdGlvbkFjdGlvbhIOCgZ0aWNrZXIYCCABKAkSEgoKY2xhc3NfY29kZRgJIAEoCSK6AQoUU3Vic2NyaWJlSW5mb1JlcXVlc3QSVgoTc3Vic2NyaXB0aW9uX2FjdGlvbhgBIAEoDjI5LnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuU3Vic2NyaXB0aW9uQWN0aW9uEkoKC2luc3RydW1lbnRzGAIgAygLMjUudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5JbmZvSW5zdHJ1bWVudCI5Cg5JbmZvSW5zdHJ1bWVudBIQCgRmaWdpGAEgASgJQgIYARIVCg1pbnN0cnVtZW50X2lkGAIgASgJIoEBChVTdWJzY3JpYmVJbmZvUmVzcG9uc2USEwoLdHJhY2tpbmdfaWQYASABKAkSUwoSaW5mb19zdWJzY3JpcHRpb25zGAIgAygLMjcudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5JbmZvU3Vic2NyaXB0aW9uIrgCChBJbmZvU3Vic2NyaXB0aW9uEgwKBGZpZ2kYASABKAkSVgoTc3Vic2NyaXB0aW9uX3N0YXR1cxgCIAEoDjI5LnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuU3Vic2NyaXB0aW9uU3RhdHVzEhYKDmluc3RydW1lbnRfdWlkGAMgASgJEhEKCXN0cmVhbV9pZBgEIAEoCRIXCg9zdWJzY3JpcHRpb25faWQYBSABKAkSVgoTc3Vic2NyaXB0aW9uX2FjdGlvbhgGIAEoDjI5LnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuU3Vic2NyaXB0aW9uQWN0aW9uEg4KBnRpY2tlchgHIAEoCRISCgpjbGFzc19jb2RlGAggASgJIsQBChlTdWJzY3JpYmVMYXN0UHJpY2VSZXF1ZXN0ElYKE3N1YnNjcmlwdGlvbl9hY3Rpb24YASABKA4yOS50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlN1YnNjcmlwdGlvbkFjdGlvbhJPCgtpbnN0cnVtZW50cxgCIAMoCzI6LnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuTGFzdFByaWNlSW5zdHJ1bWVudCI+ChNMYXN0UHJpY2VJbnN0cnVtZW50EhAKBGZpZ2kYASABKAlCAhgBEhUKDWluc3RydW1lbnRfaWQYAiABKAkikQEKGlN1YnNjcmliZUxhc3RQcmljZVJlc3BvbnNlEhMKC3RyYWNraW5nX2lkGAEgASgJEl4KGGxhc3RfcHJpY2Vfc3Vic2NyaXB0aW9ucxgCIAMoCzI8LnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuTGFzdFByaWNlU3Vic2NyaXB0aW9uIr0CChVMYXN0UHJpY2VTdWJzY3JpcHRpb24SDAoEZmlnaRgBIAEoCRJWChNzdWJzY3JpcHRpb25fc3RhdHVzGAIgASgOMjkudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5TdWJzY3JpcHRpb25TdGF0dXMSFgoOaW5zdHJ1bWVudF91aWQYAyABKAkSEQoJc3RyZWFtX2lkGAQgASgJEhcKD3N1YnNjcmlwdGlvbl9pZBgFIAEoCRJWChNzdWJzY3JpcHRpb25fYWN0aW9uGAYgASgOMjkudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5TdWJzY3JpcHRpb25BY3Rpb24SDgoGdGlja2VyGAcgASgJEhIKCmNsYXNzX2NvZGUYCCABKAkiiAUKBkNhbmRsZRIMCgRmaWdpGAEgASgJEk0KCGludGVydmFsGAIgASgOMjsudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5TdWJzY3JpcHRpb25JbnRlcnZhbBI+CgRvcGVuGAMgASgLMjAudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5RdW90YXRpb24SPgoEaGlnaBgEIAEoCzIwLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuUXVvdGF0aW9uEj0KA2xvdxgFIAEoCzIwLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuUXVvdGF0aW9uEj8KBWNsb3NlGAYgASgLMjAudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5RdW90YXRpb24SDgoGdm9sdW1lGAcgASgDEigKBHRpbWUYCCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjEKDWxhc3RfdHJhZGVfdHMYCSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhYKDmluc3RydW1lbnRfdWlkGAogASgJEg4KBnRpY2tlchgLIAEoCRISCgpjbGFzc19jb2RlGAwgASgJEhIKCnZvbHVtZV9idXkYDSABKAMSEwoLdm9sdW1lX3NlbGwYDiABKAMSTwoSY2FuZGxlX3NvdXJjZV90eXBlGBMgASgOMjMudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5DYW5kbGVTb3VyY2Ui9gMKCU9yZGVyQm9vaxIMCgRmaWdpGAEgASgJEg0KBWRlcHRoGAIgASgFEhUKDWlzX2NvbnNpc3RlbnQYAyABKAgSOgoEYmlkcxgEIAMoCzIsLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuT3JkZXISOgoEYXNrcxgFIAMoCzIsLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuT3JkZXISKAoEdGltZRgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASQgoIbGltaXRfdXAYByABKAsyMC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlF1b3RhdGlvbhJECgpsaW1pdF9kb3duGAggASgLMjAudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5RdW90YXRpb24SFgoOaW5zdHJ1bWVudF91aWQYCSABKAkSTQoPb3JkZXJfYm9va190eXBlGAogASgOMjQudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5PcmRlckJvb2tUeXBlEg4KBnRpY2tlchgLIAEoCRISCgpjbGFzc19jb2RlGAwgASgJIloKBU9yZGVyEj8KBXByaWNlGAEgASgLMjAudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5RdW90YXRpb24SEAoIcXVhbnRpdHkYAiABKAMi5gIKBVRyYWRlEgwKBGZpZ2kYASABKAkSSAoJZGlyZWN0aW9uGAIgASgOMjUudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5UcmFkZURpcmVjdGlvbhI/CgVwcmljZRgDIAEoCzIwLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuUXVvdGF0aW9uEhAKCHF1YW50aXR5GAQgASgDEigKBHRpbWUYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhYKDmluc3RydW1lbnRfdWlkGAYgASgJEkwKDHRyYWRlX3NvdXJjZRgHIAEoDjI2LnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuVHJhZGVTb3VyY2VUeXBlEg4KBnRpY2tlchgIIAEoCRISCgpjbGFzc19jb2RlGAkgASgJIqICCg1UcmFkaW5nU3RhdHVzEgwKBGZpZ2kYASABKAkSVAoOdHJhZGluZ19zdGF0dXMYAiABKA4yPC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlNlY3VyaXR5VHJhZGluZ1N0YXR1cxIoCgR0aW1lGAMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIiChpsaW1pdF9vcmRlcl9hdmFpbGFibGVfZmxhZxgEIAEoCBIjChttYXJrZXRfb3JkZXJfYXZhaWxhYmxlX2ZsYWcYBSABKAgSFgoOaW5zdHJ1bWVudF91aWQYBiABKAkSDgoGdGlja2VyGAcgASgJEhIKCmNsYXNzX2NvZGUYCCABKAkimQQKEUdldENhbmRsZXNSZXF1ZXN0EhUKBGZpZ2kYASABKAlCAhgBSACIAQESLgoEZnJvbRgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCBOJBAQISLAoCdG8YAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQgTiQQECEk0KCGludGVydmFsGAQgASgOMjUudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5DYW5kbGVJbnRlcnZhbEIE4kEBAhIaCg1pbnN0cnVtZW50X2lkGAUgASgJSAGIAQESZgoSY2FuZGxlX3NvdXJjZV90eXBlGAcgASgOMkUudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5HZXRDYW5kbGVzUmVxdWVzdC5DYW5kbGVTb3VyY2VIAogBARISCgVsaW1pdBgKIAEoBUgDiAEBImwKDENhbmRsZVNvdXJjZRIdChlDQU5ETEVfU09VUkNFX1VOU1BFQ0lGSUVEEAASGgoWQ0FORExFX1NPVVJDRV9FWENIQU5HRRABEiEKHUNBTkRMRV9TT1VSQ0VfSU5DTFVERV9XRUVLRU5EEANCBwoFX2ZpZ2lCEAoOX2luc3RydW1lbnRfaWRCFQoTX2NhbmRsZV9zb3VyY2VfdHlwZUIICgZfbGltaXQiXAoSR2V0Q2FuZGxlc1Jlc3BvbnNlEkYKB2NhbmRsZXMYASADKAsyNS50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLkhpc3RvcmljQ2FuZGxlItQDCg5IaXN0b3JpY0NhbmRsZRI+CgRvcGVuGAEgASgLMjAudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5RdW90YXRpb24SPgoEaGlnaBgCIAEoCzIwLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuUXVvdGF0aW9uEj0KA2xvdxgDIAEoCzIwLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuUXVvdGF0aW9uEj8KBWNsb3NlGAQgASgLMjAudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5RdW90YXRpb24SDgoGdm9sdW1lGAUgASgDEigKBHRpbWUYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhMKC2lzX2NvbXBsZXRlGAcgASgIEkoKDWNhbmRsZV9zb3VyY2UYCSABKA4yMy50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLkNhbmRsZVNvdXJjZRISCgp2b2x1bWVfYnV5GAogASgDEhMKC3ZvbHVtZV9zZWxsGAsgASgDIv0BChRHZXRMYXN0UHJpY2VzUmVxdWVzdBIQCgRmaWdpGAEgAygJQgIYARIVCg1pbnN0cnVtZW50X2lkGAIgAygJEk0KD2xhc3RfcHJpY2VfdHlwZRgDIAEoDjI0LnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuTGFzdFByaWNlVHlwZRJXChFpbnN0cnVtZW50X3N0YXR1cxgJIAEoDjI3LnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuSW5zdHJ1bWVudFN0YXR1c0gAiAEBQhQKEl9pbnN0cnVtZW50X3N0YXR1cyJeChVHZXRMYXN0UHJpY2VzUmVzcG9uc2USRQoLbGFzdF9wcmljZXMYASADKAsyMC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLkxhc3RQcmljZSKPAgoJTGFzdFByaWNlEgwKBGZpZ2kYASABKAkSPwoFcHJpY2UYAiABKAsyMC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlF1b3RhdGlvbhIoCgR0aW1lGAMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIOCgZ0aWNrZXIYCSABKAkSEgoKY2xhc3NfY29kZRgKIAEoCRIWCg5pbnN0cnVtZW50X3VpZBgLIAEoCRJNCg9sYXN0X3ByaWNlX3R5cGUYDCABKA4yNC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLkxhc3RQcmljZVR5cGUiiwEKDE9wZW5JbnRlcmVzdBIWCg5pbnN0cnVtZW50X3VpZBgBIAEoCRIoCgR0aW1lGAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIVCg1vcGVuX2ludGVyZXN0GAMgASgDEg4KBnRpY2tlchgEIAEoCRISCgpjbGFzc19jb2RlGAUgASgJIngKE0dldE9yZGVyQm9va1JlcXVlc3QSFQoEZmlnaRgBIAEoCUICGAFIAIgBARITCgVkZXB0aBgCIAEoBUIE4kEBAhIaCg1pbnN0cnVtZW50X2lkGAMgASgJSAGIAQFCBwoFX2ZpZ2lCEAoOX2luc3RydW1lbnRfaWQilwUKFEdldE9yZGVyQm9va1Jlc3BvbnNlEgwKBGZpZ2kYASABKAkSDQoFZGVwdGgYAiABKAUSOgoEYmlkcxgDIAMoCzIsLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuT3JkZXISOgoEYXNrcxgEIAMoCzIsLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuT3JkZXISRAoKbGFzdF9wcmljZRgFIAEoCzIwLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuUXVvdGF0aW9uEkUKC2Nsb3NlX3ByaWNlGAYgASgLMjAudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5RdW90YXRpb24SQgoIbGltaXRfdXAYByABKAsyMC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlF1b3RhdGlvbhJECgpsaW1pdF9kb3duGAggASgLMjAudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5RdW90YXRpb24SFgoOaW5zdHJ1bWVudF91aWQYCSABKAkSDgoGdGlja2VyGAogASgJEhIKCmNsYXNzX2NvZGUYCyABKAkSMQoNbGFzdF9wcmljZV90cxgVIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASMgoOY2xvc2VfcHJpY2VfdHMYFiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjAKDG9yZGVyYm9va190cxgXIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiZwoXR2V0VHJhZGluZ1N0YXR1c1JlcXVlc3QSFQoEZmlnaRgBIAEoCUICGAFIAIgBARIaCg1pbnN0cnVtZW50X2lkGAIgASgJSAGIAQFCBwoFX2ZpZ2lCEAoOX2luc3RydW1lbnRfaWQiMgoZR2V0VHJhZGluZ1N0YXR1c2VzUmVxdWVzdBIVCg1pbnN0cnVtZW50X2lkGAEgAygJIncKGkdldFRyYWRpbmdTdGF0dXNlc1Jlc3BvbnNlElkKEHRyYWRpbmdfc3RhdHVzZXMYASADKAsyPy50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLkdldFRyYWRpbmdTdGF0dXNSZXNwb25zZSLmAgoYR2V0VHJhZGluZ1N0YXR1c1Jlc3BvbnNlEgwKBGZpZ2kYASABKAkSVAoOdHJhZGluZ19zdGF0dXMYAiABKA4yPC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlNlY3VyaXR5VHJhZGluZ1N0YXR1cxIiChpsaW1pdF9vcmRlcl9hdmFpbGFibGVfZmxhZxgDIAEoCBIjChttYXJrZXRfb3JkZXJfYXZhaWxhYmxlX2ZsYWcYBCABKAgSIAoYYXBpX3RyYWRlX2F2YWlsYWJsZV9mbGFnGAUgASgIEhYKDmluc3RydW1lbnRfdWlkGAYgASgJEiYKHmJlc3RwcmljZV9vcmRlcl9hdmFpbGFibGVfZmxhZxgIIAEoCBIXCg9vbmx5X2Jlc3RfcHJpY2UYCSABKAgSDgoGdGlja2VyGAogASgJEhIKCmNsYXNzX2NvZGUYCyABKAkikAIKFEdldExhc3RUcmFkZXNSZXF1ZXN0EhUKBGZpZ2kYASABKAlCAhgBSACIAQESLgoEZnJvbRgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCBOJBAQISLAoCdG8YAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQgTiQQECEhoKDWluc3RydW1lbnRfaWQYBCABKAlIAYgBARJMCgx0cmFkZV9zb3VyY2UYBSABKA4yNi50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlRyYWRlU291cmNlVHlwZUIHCgVfZmlnaUIQCg5faW5zdHJ1bWVudF9pZCJVChVHZXRMYXN0VHJhZGVzUmVzcG9uc2USPAoGdHJhZGVzGAEgAygLMiwudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5UcmFkZSIUChJHZXRNeVN1YnNjcmlwdGlvbnMi5QEKFUdldENsb3NlUHJpY2VzUmVxdWVzdBJdCgtpbnN0cnVtZW50cxgBIAMoCzJCLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuSW5zdHJ1bWVudENsb3NlUHJpY2VSZXF1ZXN0QgTiQQECElcKEWluc3RydW1lbnRfc3RhdHVzGAkgASgOMjcudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5JbnN0cnVtZW50U3RhdHVzSACIAQFCFAoSX2luc3RydW1lbnRfc3RhdHVzIjQKG0luc3RydW1lbnRDbG9zZVByaWNlUmVxdWVzdBIVCg1pbnN0cnVtZW50X2lkGAEgASgJInMKFkdldENsb3NlUHJpY2VzUmVzcG9uc2USWQoMY2xvc2VfcHJpY2VzGAEgAygLMkMudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5JbnN0cnVtZW50Q2xvc2VQcmljZVJlc3BvbnNlIuQCChxJbnN0cnVtZW50Q2xvc2VQcmljZVJlc3BvbnNlEgwKBGZpZ2kYASABKAkSFgoOaW5zdHJ1bWVudF91aWQYAiABKAkSDgoGdGlja2VyGAMgASgJEhIKCmNsYXNzX2NvZGUYBCABKAkSPwoFcHJpY2UYCyABKAsyMC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlF1b3RhdGlvbhJPChVldmVuaW5nX3Nlc3Npb25fcHJpY2UYDCABKAsyMC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlF1b3RhdGlvbhIoCgR0aW1lGBUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBI+ChpldmVuaW5nX3Nlc3Npb25fcHJpY2VfdGltZRgXIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAi9AwKFkdldFRlY2hBbmFseXNpc1JlcXVlc3QSaQoOaW5kaWNhdG9yX3R5cGUYASABKA4ySy50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLkdldFRlY2hBbmFseXNpc1JlcXVlc3QuSW5kaWNhdG9yVHlwZUIE4kEBAhIcCg5pbnN0cnVtZW50X3VpZBgCIAEoCUIE4kEBAhIuCgRmcm9tGAMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIE4kEBAhIsCgJ0bxgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCBOJBAQISZwoIaW50ZXJ2YWwYBSABKA4yTy50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLkdldFRlY2hBbmFseXNpc1JlcXVlc3QuSW5kaWNhdG9ySW50ZXJ2YWxCBOJBAQISZgoNdHlwZV9vZl9wcmljZRgGIAEoDjJJLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuR2V0VGVjaEFuYWx5c2lzUmVxdWVzdC5UeXBlT2ZQcmljZUIE4kEBAhIOCgZsZW5ndGgYByABKAUSWgoJZGV2aWF0aW9uGAggASgLMkcudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5HZXRUZWNoQW5hbHlzaXNSZXF1ZXN0LkRldmlhdGlvbhJaCglzbW9vdGhpbmcYCSABKAsyRy50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLkdldFRlY2hBbmFseXNpc1JlcXVlc3QuU21vb3RoaW5nGk8KCVNtb290aGluZxITCgtmYXN0X2xlbmd0aBgBIAEoBRITCgtzbG93X2xlbmd0aBgCIAEoBRIYChBzaWduYWxfc21vb3RoaW5nGAMgASgFGlsKCURldmlhdGlvbhJOChRkZXZpYXRpb25fbXVsdGlwbGllchgBIAEoCzIwLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuUXVvdGF0aW9uItsDChFJbmRpY2F0b3JJbnRlcnZhbBIiCh5JTkRJQ0FUT1JfSU5URVJWQUxfVU5TUEVDSUZJRUQQABIhCh1JTkRJQ0FUT1JfSU5URVJWQUxfT05FX01JTlVURRABEiMKH0lORElDQVRPUl9JTlRFUlZBTF9GSVZFX01JTlVURVMQAhImCiJJTkRJQ0FUT1JfSU5URVJWQUxfRklGVEVFTl9NSU5VVEVTEAMSHwobSU5ESUNBVE9SX0lOVEVSVkFMX09ORV9IT1VSEAQSHgoaSU5ESUNBVE9SX0lOVEVSVkFMX09ORV9EQVkQBRIcChhJTkRJQ0FUT1JfSU5URVJWQUxfMl9NSU4QBhIcChhJTkRJQ0FUT1JfSU5URVJWQUxfM19NSU4QBxIdChlJTkRJQ0FUT1JfSU5URVJWQUxfMTBfTUlOEAgSHQoZSU5ESUNBVE9SX0lOVEVSVkFMXzMwX01JThAJEh0KGUlORElDQVRPUl9JTlRFUlZBTF8yX0hPVVIQChIdChlJTkRJQ0FUT1JfSU5URVJWQUxfNF9IT1VSEAsSGwoXSU5ESUNBVE9SX0lOVEVSVkFMX1dFRUsQDBIcChhJTkRJQ0FUT1JfSU5URVJWQUxfTU9OVEgQDSKjAQoLVHlwZU9mUHJpY2USHQoZVFlQRV9PRl9QUklDRV9VTlNQRUNJRklFRBAAEhcKE1RZUEVfT0ZfUFJJQ0VfQ0xPU0UQARIWChJUWVBFX09GX1BSSUNFX09QRU4QAhIWChJUWVBFX09GX1BSSUNFX0hJR0gQAxIVChFUWVBFX09GX1BSSUNFX0xPVxAEEhUKEVRZUEVfT0ZfUFJJQ0VfQVZHEAUipwEKDUluZGljYXRvclR5cGUSHgoaSU5ESUNBVE9SX1RZUEVfVU5TUEVDSUZJRUQQABIVChFJTkRJQ0FUT1JfVFlQRV9CQhABEhYKEklORElDQVRPUl9UWVBFX0VNQRACEhYKEklORElDQVRPUl9UWVBFX1JTSRADEhcKE0lORElDQVRPUl9UWVBFX01BQ0QQBBIWChJJTkRJQ0FUT1JfVFlQRV9TTUEQBSL8BAoXR2V0VGVjaEFuYWx5c2lzUmVzcG9uc2USbQoUdGVjaG5pY2FsX2luZGljYXRvcnMYASADKAsyTy50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLkdldFRlY2hBbmFseXNpc1Jlc3BvbnNlLlRlY2hBbmFseXNpc0l0ZW0a8QMKEFRlY2hBbmFseXNpc0l0ZW0SLQoJdGltZXN0YW1wGAEgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBJKCgttaWRkbGVfYmFuZBgCIAEoCzIwLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuUXVvdGF0aW9uSACIAQESSQoKdXBwZXJfYmFuZBgDIAEoCzIwLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuUXVvdGF0aW9uSAGIAQESSQoKbG93ZXJfYmFuZBgEIAEoCzIwLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuUXVvdGF0aW9uSAKIAQESRQoGc2lnbmFsGAUgASgLMjAudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5RdW90YXRpb25IA4gBARJDCgRtYWNkGAYgASgLMjAudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5RdW90YXRpb25IBIgBAUIOCgxfbWlkZGxlX2JhbmRCDQoLX3VwcGVyX2JhbmRCDQoLX2xvd2VyX2JhbmRCCQoHX3NpZ25hbEIHCgVfbWFjZCJ3ChZHZXRNYXJrZXRWYWx1ZXNSZXF1ZXN0EhUKDWluc3RydW1lbnRfaWQYASADKAkSRgoGdmFsdWVzGAIgAygOMjYudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5NYXJrZXRWYWx1ZVR5cGUibAoXR2V0TWFya2V0VmFsdWVzUmVzcG9uc2USUQoLaW5zdHJ1bWVudHMYASADKAsyPC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLk1hcmtldFZhbHVlSW5zdHJ1bWVudCKXAQoVTWFya2V0VmFsdWVJbnN0cnVtZW50EhYKDmluc3RydW1lbnRfdWlkGAEgASgJEkIKBnZhbHVlcxgCIAMoCzIyLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuTWFya2V0VmFsdWUSDgoGdGlja2VyGAMgASgJEhIKCmNsYXNzX2NvZGUYBCABKAki6QEKC01hcmtldFZhbHVlEkkKBHR5cGUYASABKA4yNi50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLk1hcmtldFZhbHVlVHlwZUgAiAEBEkQKBXZhbHVlGAIgASgLMjAudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5RdW90YXRpb25IAYgBARItCgR0aW1lGAMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgCiAEBQgcKBV90eXBlQggKBl92YWx1ZUIHCgVfdGltZSqBAQoSU3Vic2NyaXB0aW9uQWN0aW9uEiMKH1NVQlNDUklQVElPTl9BQ1RJT05fVU5TUEVDSUZJRUQQABIhCh1TVUJTQ1JJUFRJT05fQUNUSU9OX1NVQlNDUklCRRABEiMKH1NVQlNDUklQVElPTl9BQ1RJT05fVU5TVUJTQ1JJQkUQAiqIBAoUU3Vic2NyaXB0aW9uSW50ZXJ2YWwSJQohU1VCU0NSSVBUSU9OX0lOVEVSVkFMX1VOU1BFQ0lGSUVEEAASJAogU1VCU0NSSVBUSU9OX0lOVEVSVkFMX09ORV9NSU5VVEUQARImCiJTVUJTQ1JJUFRJT05fSU5URVJWQUxfRklWRV9NSU5VVEVTEAISKQolU1VCU0NSSVBUSU9OX0lOVEVSVkFMX0ZJRlRFRU5fTUlOVVRFUxADEiIKHlNVQlNDUklQVElPTl9JTlRFUlZBTF9PTkVfSE9VUhAEEiEKHVNVQlNDUklQVElPTl9JTlRFUlZBTF9PTkVfREFZEAUSHwobU1VCU0NSSVBUSU9OX0lOVEVSVkFMXzJfTUlOEAYSHwobU1VCU0NSSVBUSU9OX0lOVEVSVkFMXzNfTUlOEAcSIAocU1VCU0NSSVBUSU9OX0lOVEVSVkFMXzEwX01JThAIEiAKHFNVQlNDUklQVElPTl9JTlRFUlZBTF8zMF9NSU4QCRIgChxTVUJTQ1JJUFRJT05fSU5URVJWQUxfMl9IT1VSEAoSIAocU1VCU0NSSVBUSU9OX0lOVEVSVkFMXzRfSE9VUhALEh4KGlNVQlNDUklQVElPTl9JTlRFUlZBTF9XRUVLEAwSHwobU1VCU0NSSVBUSU9OX0lOVEVSVkFMX01PTlRIEA0q8AMKElN1YnNjcmlwdGlvblN0YXR1cxIjCh9TVUJTQ1JJUFRJT05fU1RBVFVTX1VOU1BFQ0lGSUVEEAASHwobU1VCU0NSSVBUSU9OX1NUQVRVU19TVUNDRVNTEAESLAooU1VCU0NSSVBUSU9OX1NUQVRVU19JTlNUUlVNRU5UX05PVF9GT1VORBACEjYKMlNVQlNDUklQVElPTl9TVEFUVVNfU1VCU0NSSVBUSU9OX0FDVElPTl9JU19JTlZBTElEEAMSKAokU1VCU0NSSVBUSU9OX1NUQVRVU19ERVBUSF9JU19JTlZBTElEEAQSKwonU1VCU0NSSVBUSU9OX1NUQVRVU19JTlRFUlZBTF9JU19JTlZBTElEEAUSKQolU1VCU0NSSVBUSU9OX1NUQVRVU19MSU1JVF9JU19FWENFRURFRBAGEiYKIlNVQlNDUklQVElPTl9TVEFUVVNfSU5URVJOQUxfRVJST1IQBxIpCiVTVUJTQ1JJUFRJT05fU1RBVFVTX1RPT19NQU5ZX1JFUVVFU1RTEAgSLgoqU1VCU0NSSVBUSU9OX1NUQVRVU19TVUJTQ1JJUFRJT05fTk9UX0ZPVU5EEAkSKQolU1VCU0NSSVBUSU9OX1NUQVRVU19TT1VSQ0VfSVNfSU5WQUxJRBAKKnkKD1RyYWRlU291cmNlVHlwZRIcChhUUkFERV9TT1VSQ0VfVU5TUEVDSUZJRUQQABIZChVUUkFERV9TT1VSQ0VfRVhDSEFOR0UQARIXChNUUkFERV9TT1VSQ0VfREVBTEVSEAISFAoQVFJBREVfU09VUkNFX0FMTBADKmQKDlRyYWRlRGlyZWN0aW9uEh8KG1RSQURFX0RJUkVDVElPTl9VTlNQRUNJRklFRBAAEhcKE1RSQURFX0RJUkVDVElPTl9CVVkQARIYChRUUkFERV9ESVJFQ1RJT05fU0VMTBACKuQDCg5DYW5kbGVJbnRlcnZhbBIfChtDQU5ETEVfSU5URVJWQUxfVU5TUEVDSUZJRUQQABIZChVDQU5ETEVfSU5URVJWQUxfMV9NSU4QARIZChVDQU5ETEVfSU5URVJWQUxfNV9NSU4QAhIaChZDQU5ETEVfSU5URVJWQUxfMTVfTUlOEAMSGAoUQ0FORExFX0lOVEVSVkFMX0hPVVIQBBIXChNDQU5ETEVfSU5URVJWQUxfREFZEAUSGQoVQ0FORExFX0lOVEVSVkFMXzJfTUlOEAYSGQoVQ0FORExFX0lOVEVSVkFMXzNfTUlOEAcSGgoWQ0FORExFX0lOVEVSVkFMXzEwX01JThAIEhoKFkNBTkRMRV9JTlRFUlZBTF8zMF9NSU4QCRIaChZDQU5ETEVfSU5URVJWQUxfMl9IT1VSEAoSGgoWQ0FORExFX0lOVEVSVkFMXzRfSE9VUhALEhgKFENBTkRMRV9JTlRFUlZBTF9XRUVLEAwSGQoVQ0FORExFX0lOVEVSVkFMX01PTlRIEA0SGQoVQ0FORExFX0lOVEVSVkFMXzVfU0VDEA4SGgoWQ0FORExFX0lOVEVSVkFMXzEwX1NFQxAPEhoKFkNBTkRMRV9JTlRFUlZBTF8zMF9TRUMQECprCgxDYW5kbGVTb3VyY2USHQoZQ0FORExFX1NPVVJDRV9VTlNQRUNJRklFRBAAEhoKFkNBTkRMRV9TT1VSQ0VfRVhDSEFOR0UQARIgChxDQU5ETEVfU09VUkNFX0RFQUxFUl9XRUVLRU5EEAIqrAIKD01hcmtldFZhbHVlVHlwZRIgChxJTlNUUlVNRU5UX1ZBTFVFX1VOU1BFQ0lGSUVEEAASHwobSU5TVFJVTUVOVF9WQUxVRV9MQVNUX1BSSUNFEAESJgoiSU5TVFJVTUVOVF9WQUxVRV9MQVNUX1BSSUNFX0RFQUxFUhACEiAKHElOU1RSVU1FTlRfVkFMVUVfQ0xPU0VfUFJJQ0UQAxIqCiZJTlNUUlVNRU5UX1ZBTFVFX0VWRU5JTkdfU0VTU0lPTl9QUklDRRAEEiIKHklOU1RSVU1FTlRfVkFMVUVfT1BFTl9JTlRFUkVTVBAFEiAKHElOU1RSVU1FTlRfVkFMVUVfVEhFT1JfUFJJQ0UQBhIaChZJTlNUUlVNRU5UX1ZBTFVFX1lJRUxEEAcqfwoNT3JkZXJCb29rVHlwZRIeChpPUkRFUkJPT0tfVFlQRV9VTlNQRUNJRklFRBAAEhsKF09SREVSQk9PS19UWVBFX0VYQ0hBTkdFEAESGQoVT1JERVJCT09LX1RZUEVfREVBTEVSEAISFgoST1JERVJCT09LX1RZUEVfQUxMEAMqWwoNTGFzdFByaWNlVHlwZRIaChZMQVNUX1BSSUNFX1VOU1BFQ0lGSUVEEAASFwoTTEFTVF9QUklDRV9FWENIQU5HRRABEhUKEUxBU1RfUFJJQ0VfREVBTEVSEAIyowoKEU1hcmtldERhdGFTZXJ2aWNlEoEBCgpHZXRDYW5kbGVzEjgudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5HZXRDYW5kbGVzUmVxdWVzdBo5LnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuR2V0Q2FuZGxlc1Jlc3BvbnNlEooBCg1HZXRMYXN0UHJpY2VzEjsudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5HZXRMYXN0UHJpY2VzUmVxdWVzdBo8LnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuR2V0TGFzdFByaWNlc1Jlc3BvbnNlEocBCgxHZXRPcmRlckJvb2sSOi50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLkdldE9yZGVyQm9va1JlcXVlc3QaOy50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLkdldE9yZGVyQm9va1Jlc3BvbnNlEpMBChBHZXRUcmFkaW5nU3RhdHVzEj4udGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5HZXRUcmFkaW5nU3RhdHVzUmVxdWVzdBo/LnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuR2V0VHJhZGluZ1N0YXR1c1Jlc3BvbnNlEpkBChJHZXRUcmFkaW5nU3RhdHVzZXMSQC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLkdldFRyYWRpbmdTdGF0dXNlc1JlcXVlc3QaQS50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLkdldFRyYWRpbmdTdGF0dXNlc1Jlc3BvbnNlEooBCg1HZXRMYXN0VHJhZGVzEjsudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5HZXRMYXN0VHJhZGVzUmVxdWVzdBo8LnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuR2V0TGFzdFRyYWRlc1Jlc3BvbnNlEo0BCg5HZXRDbG9zZVByaWNlcxI8LnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuR2V0Q2xvc2VQcmljZXNSZXF1ZXN0Gj0udGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5HZXRDbG9zZVByaWNlc1Jlc3BvbnNlEpABCg9HZXRUZWNoQW5hbHlzaXMSPS50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLkdldFRlY2hBbmFseXNpc1JlcXVlc3QaPi50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLkdldFRlY2hBbmFseXNpc1Jlc3BvbnNlEpABCg9HZXRNYXJrZXRWYWx1ZXMSPS50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLkdldE1hcmtldFZhbHVlc1JlcXVlc3QaPi50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLkdldE1hcmtldFZhbHVlc1Jlc3BvbnNlMs0CChdNYXJrZXREYXRhU3RyZWFtU2VydmljZRKLAQoQTWFya2V0RGF0YVN0cmVhbRI4LnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuTWFya2V0RGF0YVJlcXVlc3QaOS50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLk1hcmtldERhdGFSZXNwb25zZSgBMAESowEKGk1hcmtldERhdGFTZXJ2ZXJTaWRlU3RyZWFtEkgudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5NYXJrZXREYXRhU2VydmVyU2lkZVN0cmVhbVJlcXVlc3QaOS50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLk1hcmtldERhdGFSZXNwb25zZTABQmEKHHJ1LnRpbmtvZmYucGlhcGkuY29udHJhY3QudjFQAVoMLi87aW52ZXN0YXBpogIFVElBUEmqAhRUaW5rb2ZmLkludmVzdEFwaS5WMcoCEVRpbmtvZmZcSW52ZXN0XFYxYgZwcm90bzM", [file_google_protobuf_timestamp, file_common, file_google_api_field_behavior]);
3053
+ var MarketDataService = /* @__PURE__ */ serviceDesc(file_marketdata, 0);
3054
+
3055
+ // src/gen/operations_pb.ts
3056
+ var file_operations = /* @__PURE__ */ fileDesc("ChBvcGVyYXRpb25zLnByb3RvEiV0aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxIooCChFPcGVyYXRpb25zUmVxdWVzdBIYCgphY2NvdW50X2lkGAEgASgJQgTiQQECEi0KBGZyb20YAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSACIAQESKwoCdG8YAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAGIAQESSQoFc3RhdGUYBCABKA4yNS50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLk9wZXJhdGlvblN0YXRlSAKIAQESEQoEZmlnaRgFIAEoCUgDiAEBQgcKBV9mcm9tQgUKA190b0IICgZfc3RhdGVCBwoFX2ZpZ2kiWgoST3BlcmF0aW9uc1Jlc3BvbnNlEkQKCm9wZXJhdGlvbnMYASADKAsyMC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLk9wZXJhdGlvbiLFBQoJT3BlcmF0aW9uEgoKAmlkGAEgASgJEhsKE3BhcmVudF9vcGVyYXRpb25faWQYAiABKAkSEAoIY3VycmVuY3kYAyABKAkSQgoHcGF5bWVudBgEIAEoCzIxLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuTW9uZXlWYWx1ZRJACgVwcmljZRgFIAEoCzIxLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuTW9uZXlWYWx1ZRJECgVzdGF0ZRgGIAEoDjI1LnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuT3BlcmF0aW9uU3RhdGUSEAoIcXVhbnRpdHkYByABKAMSFQoNcXVhbnRpdHlfcmVzdBgIIAEoAxIMCgRmaWdpGAkgASgJEhcKD2luc3RydW1lbnRfdHlwZRgKIAEoCRIoCgRkYXRlGAsgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIMCgR0eXBlGAwgASgJEkwKDm9wZXJhdGlvbl90eXBlGA0gASgOMjQudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5PcGVyYXRpb25UeXBlEkUKBnRyYWRlcxgOIAMoCzI1LnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuT3BlcmF0aW9uVHJhZGUSEQoJYXNzZXRfdWlkGBAgASgJEhQKDHBvc2l0aW9uX3VpZBgRIAEoCRIWCg5pbnN0cnVtZW50X3VpZBgSIAEoCRJTChBjaGlsZF9vcGVyYXRpb25zGBMgAygLMjkudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5DaGlsZE9wZXJhdGlvbkl0ZW0ipQEKDk9wZXJhdGlvblRyYWRlEhAKCHRyYWRlX2lkGAEgASgJEi0KCWRhdGVfdGltZRgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASEAoIcXVhbnRpdHkYAyABKAMSQAoFcHJpY2UYBCABKAsyMS50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLk1vbmV5VmFsdWUixwEKEFBvcnRmb2xpb1JlcXVlc3QSGAoKYWNjb3VudF9pZBgBIAEoCUIE4kEBAhJeCghjdXJyZW5jeRgCIAEoDjJHLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuUG9ydGZvbGlvUmVxdWVzdC5DdXJyZW5jeVJlcXVlc3RIAIgBASIsCg9DdXJyZW5jeVJlcXVlc3QSBwoDUlVCEAASBwoDVVNEEAESBwoDRVVSEAJCCwoJX2N1cnJlbmN5IoAJChFQb3J0Zm9saW9SZXNwb25zZRJOChN0b3RhbF9hbW91bnRfc2hhcmVzGAEgASgLMjEudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5Nb25leVZhbHVlEk0KEnRvdGFsX2Ftb3VudF9ib25kcxgCIAEoCzIxLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuTW9uZXlWYWx1ZRJLChB0b3RhbF9hbW91bnRfZXRmGAMgASgLMjEudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5Nb25leVZhbHVlElIKF3RvdGFsX2Ftb3VudF9jdXJyZW5jaWVzGAQgASgLMjEudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5Nb25leVZhbHVlEk8KFHRvdGFsX2Ftb3VudF9mdXR1cmVzGAUgASgLMjEudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5Nb25leVZhbHVlEkgKDmV4cGVjdGVkX3lpZWxkGAYgASgLMjAudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5RdW90YXRpb24SSwoJcG9zaXRpb25zGAcgAygLMjgudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5Qb3J0Zm9saW9Qb3NpdGlvbhISCgphY2NvdW50X2lkGAggASgJEk8KFHRvdGFsX2Ftb3VudF9vcHRpb25zGAkgASgLMjEudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5Nb25leVZhbHVlEkoKD3RvdGFsX2Ftb3VudF9zcBgKIAEoCzIxLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuTW9uZXlWYWx1ZRJRChZ0b3RhbF9hbW91bnRfcG9ydGZvbGlvGAsgASgLMjEudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5Nb25leVZhbHVlEloKEXZpcnR1YWxfcG9zaXRpb25zGAwgAygLMj8udGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5WaXJ0dWFsUG9ydGZvbGlvUG9zaXRpb24SRgoLZGFpbHlfeWllbGQYDyABKAsyMS50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLk1vbmV5VmFsdWUSTgoUZGFpbHlfeWllbGRfcmVsYXRpdmUYECABKAsyMC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlF1b3RhdGlvbhJLChB0b3RhbF9hbW91bnRfZGZhGBEgASgLMjEudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5Nb25leVZhbHVlIiwKEFBvc2l0aW9uc1JlcXVlc3QSGAoKYWNjb3VudF9pZBgBIAEoCUIE4kEBAiK1AwoRUG9zaXRpb25zUmVzcG9uc2USQAoFbW9uZXkYASADKAsyMS50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLk1vbmV5VmFsdWUSQgoHYmxvY2tlZBgCIAMoCzIxLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuTW9uZXlWYWx1ZRJOCgpzZWN1cml0aWVzGAMgAygLMjoudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5Qb3NpdGlvbnNTZWN1cml0aWVzEiIKGmxpbWl0c19sb2FkaW5nX2luX3Byb2dyZXNzGAQgASgIEkgKB2Z1dHVyZXMYBSADKAsyNy50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlBvc2l0aW9uc0Z1dHVyZXMSSAoHb3B0aW9ucxgGIAMoCzI3LnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuUG9zaXRpb25zT3B0aW9ucxISCgphY2NvdW50X2lkGA8gASgJIjEKFVdpdGhkcmF3TGltaXRzUmVxdWVzdBIYCgphY2NvdW50X2lkGAEgASgJQgTiQQECIuwBChZXaXRoZHJhd0xpbWl0c1Jlc3BvbnNlEkAKBW1vbmV5GAEgAygLMjEudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5Nb25leVZhbHVlEkIKB2Jsb2NrZWQYAiADKAsyMS50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLk1vbmV5VmFsdWUSTAoRYmxvY2tlZF9ndWFyYW50ZWUYAyADKAsyMS50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLk1vbmV5VmFsdWUitAgKEVBvcnRmb2xpb1Bvc2l0aW9uEgwKBGZpZ2kYASABKAkSFwoPaW5zdHJ1bWVudF90eXBlGAIgASgJEkIKCHF1YW50aXR5GAMgASgLMjAudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5RdW90YXRpb24SUQoWYXZlcmFnZV9wb3NpdGlvbl9wcmljZRgEIAEoCzIxLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuTW9uZXlWYWx1ZRJICg5leHBlY3RlZF95aWVsZBgFIAEoCzIwLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuUXVvdGF0aW9uEkYKC2N1cnJlbnRfbmtkGAYgASgLMjEudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5Nb25leVZhbHVlElcKGWF2ZXJhZ2VfcG9zaXRpb25fcHJpY2VfcHQYByABKAsyMC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlF1b3RhdGlvbkICGAESSAoNY3VycmVudF9wcmljZRgIIAEoCzIxLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuTW9uZXlWYWx1ZRJWChthdmVyYWdlX3Bvc2l0aW9uX3ByaWNlX2ZpZm8YCSABKAsyMS50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLk1vbmV5VmFsdWUSSwoNcXVhbnRpdHlfbG90cxgKIAEoCzIwLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuUXVvdGF0aW9uQgIYARIPCgdibG9ja2VkGBUgASgIEkYKDGJsb2NrZWRfbG90cxgWIAEoCzIwLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuUXVvdGF0aW9uEhQKDHBvc2l0aW9uX3VpZBgYIAEoCRIWCg5pbnN0cnVtZW50X3VpZBgZIAEoCRJFCgp2YXJfbWFyZ2luGBogASgLMjEudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5Nb25leVZhbHVlEk0KE2V4cGVjdGVkX3lpZWxkX2ZpZm8YGyABKAsyMC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlF1b3RhdGlvbhJGCgtkYWlseV95aWVsZBgfIAEoCzIxLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuTW9uZXlWYWx1ZRIOCgZ0aWNrZXIYICABKAkSEgoKY2xhc3NfY29kZRghIAEoCSLeBQoYVmlydHVhbFBvcnRmb2xpb1Bvc2l0aW9uEhQKDHBvc2l0aW9uX3VpZBgBIAEoCRIWCg5pbnN0cnVtZW50X3VpZBgCIAEoCRIMCgRmaWdpGAMgASgJEhcKD2luc3RydW1lbnRfdHlwZRgEIAEoCRJCCghxdWFudGl0eRgFIAEoCzIwLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuUXVvdGF0aW9uElEKFmF2ZXJhZ2VfcG9zaXRpb25fcHJpY2UYBiABKAsyMS50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLk1vbmV5VmFsdWUSSAoOZXhwZWN0ZWRfeWllbGQYByABKAsyMC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlF1b3RhdGlvbhJNChNleHBlY3RlZF95aWVsZF9maWZvGAggASgLMjAudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5RdW90YXRpb24SLwoLZXhwaXJlX2RhdGUYCSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEkgKDWN1cnJlbnRfcHJpY2UYCiABKAsyMS50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLk1vbmV5VmFsdWUSVgobYXZlcmFnZV9wb3NpdGlvbl9wcmljZV9maWZvGAsgASgLMjEudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5Nb25leVZhbHVlEkYKC2RhaWx5X3lpZWxkGB8gASgLMjEudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5Nb25leVZhbHVlEg4KBnRpY2tlchggIAEoCRISCgpjbGFzc19jb2RlGCEgASgJIsoBChNQb3NpdGlvbnNTZWN1cml0aWVzEgwKBGZpZ2kYASABKAkSDwoHYmxvY2tlZBgCIAEoAxIPCgdiYWxhbmNlGAMgASgDEhQKDHBvc2l0aW9uX3VpZBgEIAEoCRIWCg5pbnN0cnVtZW50X3VpZBgFIAEoCRIOCgZ0aWNrZXIYBiABKAkSEgoKY2xhc3NfY29kZRgHIAEoCRIYChBleGNoYW5nZV9ibG9ja2VkGAsgASgIEhcKD2luc3RydW1lbnRfdHlwZRgQIAEoCSKUAQoQUG9zaXRpb25zRnV0dXJlcxIMCgRmaWdpGAEgASgJEg8KB2Jsb2NrZWQYAiABKAMSDwoHYmFsYW5jZRgDIAEoAxIUCgxwb3NpdGlvbl91aWQYBCABKAkSFgoOaW5zdHJ1bWVudF91aWQYBSABKAkSDgoGdGlja2VyGAYgASgJEhIKCmNsYXNzX2NvZGUYByABKAkihgEKEFBvc2l0aW9uc09wdGlvbnMSFAoMcG9zaXRpb25fdWlkGAEgASgJEhYKDmluc3RydW1lbnRfdWlkGAIgASgJEg4KBnRpY2tlchgDIAEoCRISCgpjbGFzc19jb2RlGAQgASgJEg8KB2Jsb2NrZWQYCyABKAMSDwoHYmFsYW5jZRgVIAEoAyLyAQoTQnJva2VyUmVwb3J0UmVxdWVzdBJsCh5nZW5lcmF0ZV9icm9rZXJfcmVwb3J0X3JlcXVlc3QYASABKAsyQi50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLkdlbmVyYXRlQnJva2VyUmVwb3J0UmVxdWVzdEgAEmIKGWdldF9icm9rZXJfcmVwb3J0X3JlcXVlc3QYAiABKAsyPS50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLkdldEJyb2tlclJlcG9ydFJlcXVlc3RIAEIJCgdwYXlsb2FkIvcBChRCcm9rZXJSZXBvcnRSZXNwb25zZRJuCh9nZW5lcmF0ZV9icm9rZXJfcmVwb3J0X3Jlc3BvbnNlGAEgASgLMkMudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5HZW5lcmF0ZUJyb2tlclJlcG9ydFJlc3BvbnNlSAASZAoaZ2V0X2Jyb2tlcl9yZXBvcnRfcmVzcG9uc2UYAiABKAsyPi50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLkdldEJyb2tlclJlcG9ydFJlc3BvbnNlSABCCQoHcGF5bG9hZCKVAQobR2VuZXJhdGVCcm9rZXJSZXBvcnRSZXF1ZXN0EhgKCmFjY291bnRfaWQYASABKAlCBOJBAQISLgoEZnJvbRgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCBOJBAQISLAoCdG8YAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQgTiQQECIi8KHEdlbmVyYXRlQnJva2VyUmVwb3J0UmVzcG9uc2USDwoHdGFza19pZBgBIAEoCSJLChZHZXRCcm9rZXJSZXBvcnRSZXF1ZXN0EhUKB3Rhc2tfaWQYASABKAlCBOJBAQISEQoEcGFnZRgCIAEoBUgAiAEBQgcKBV9wYWdlIqwBChdHZXRCcm9rZXJSZXBvcnRSZXNwb25zZRJKCg1icm9rZXJfcmVwb3J0GAEgAygLMjMudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5Ccm9rZXJSZXBvcnQSEgoKaXRlbXNDb3VudBgCIAEoBRISCgpwYWdlc0NvdW50GAMgASgFEgwKBHBhZ2UYBCABKAUSDwoHdGFza19pZBgFIAEoCSLaCAoMQnJva2VyUmVwb3J0EhAKCHRyYWRlX2lkGAEgASgJEhAKCG9yZGVyX2lkGAIgASgJEgwKBGZpZ2kYAyABKAkSFAoMZXhlY3V0ZV9zaWduGAQgASgJEjIKDnRyYWRlX2RhdGV0aW1lGAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIQCghleGNoYW5nZRgGIAEoCRISCgpjbGFzc19jb2RlGAcgASgJEhEKCWRpcmVjdGlvbhgIIAEoCRIMCgRuYW1lGAkgASgJEg4KBnRpY2tlchgKIAEoCRJACgVwcmljZRgLIAEoCzIxLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuTW9uZXlWYWx1ZRIQCghxdWFudGl0eRgMIAEoAxJHCgxvcmRlcl9hbW91bnQYDSABKAsyMS50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLk1vbmV5VmFsdWUSQwoJYWNpX3ZhbHVlGA4gASgLMjAudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5RdW90YXRpb24STQoSdG90YWxfb3JkZXJfYW1vdW50GA8gASgLMjEudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5Nb25leVZhbHVlEkwKEWJyb2tlcl9jb21taXNzaW9uGBAgASgLMjEudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5Nb25leVZhbHVlEk4KE2V4Y2hhbmdlX2NvbW1pc3Npb24YESABKAsyMS50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLk1vbmV5VmFsdWUSVwocZXhjaGFuZ2VfY2xlYXJpbmdfY29tbWlzc2lvbhgSIAEoCzIxLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuTW9uZXlWYWx1ZRJDCglyZXBvX3JhdGUYEyABKAsyMC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlF1b3RhdGlvbhINCgVwYXJ0eRgUIAEoCRI0ChBjbGVhcl92YWx1ZV9kYXRlGBUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIyCg5zZWNfdmFsdWVfZGF0ZRgWIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASFQoNYnJva2VyX3N0YXR1cxgXIAEoCRIfChdzZXBhcmF0ZV9hZ3JlZW1lbnRfdHlwZRgYIAEoCRIhChlzZXBhcmF0ZV9hZ3JlZW1lbnRfbnVtYmVyGBkgASgJEh8KF3NlcGFyYXRlX2FncmVlbWVudF9kYXRlGBogASgJEhUKDWRlbGl2ZXJ5X3R5cGUYGyABKAkiqAIKIEdldERpdmlkZW5kc0ZvcmVpZ25Jc3N1ZXJSZXF1ZXN0EoABCiJnZW5lcmF0ZV9kaXZfZm9yZWlnbl9pc3N1ZXJfcmVwb3J0GAEgASgLMlIudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5HZW5lcmF0ZURpdmlkZW5kc0ZvcmVpZ25Jc3N1ZXJSZXBvcnRSZXF1ZXN0SAASdgodZ2V0X2Rpdl9mb3JlaWduX2lzc3Vlcl9yZXBvcnQYAiABKAsyTS50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLkdldERpdmlkZW5kc0ZvcmVpZ25Jc3N1ZXJSZXBvcnRSZXF1ZXN0SABCCQoHcGF5bG9hZCKwAgohR2V0RGl2aWRlbmRzRm9yZWlnbklzc3VlclJlc3BvbnNlEooBCitnZW5lcmF0ZV9kaXZfZm9yZWlnbl9pc3N1ZXJfcmVwb3J0X3Jlc3BvbnNlGAEgASgLMlMudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5HZW5lcmF0ZURpdmlkZW5kc0ZvcmVpZ25Jc3N1ZXJSZXBvcnRSZXNwb25zZUgAEnMKGWRpdl9mb3JlaWduX2lzc3Vlcl9yZXBvcnQYAiABKAsyTi50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLkdldERpdmlkZW5kc0ZvcmVpZ25Jc3N1ZXJSZXBvcnRSZXNwb25zZUgAQgkKB3BheWxvYWQipQEKK0dlbmVyYXRlRGl2aWRlbmRzRm9yZWlnbklzc3VlclJlcG9ydFJlcXVlc3QSGAoKYWNjb3VudF9pZBgBIAEoCUIE4kEBAhIuCgRmcm9tGAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIE4kEBAhIsCgJ0bxgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCBOJBAQIiWwomR2V0RGl2aWRlbmRzRm9yZWlnbklzc3VlclJlcG9ydFJlcXVlc3QSFQoHdGFza19pZBgBIAEoCUIE4kEBAhIRCgRwYWdlGAIgASgFSACIAQFCBwoFX3BhZ2UiPwosR2VuZXJhdGVEaXZpZGVuZHNGb3JlaWduSXNzdWVyUmVwb3J0UmVzcG9uc2USDwoHdGFza19pZBgBIAEoCSLNAQonR2V0RGl2aWRlbmRzRm9yZWlnbklzc3VlclJlcG9ydFJlc3BvbnNlEmwKH2RpdmlkZW5kc19mb3JlaWduX2lzc3Vlcl9yZXBvcnQYASADKAsyQy50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLkRpdmlkZW5kc0ZvcmVpZ25Jc3N1ZXJSZXBvcnQSEgoKaXRlbXNDb3VudBgCIAEoBRISCgpwYWdlc0NvdW50GAMgASgFEgwKBHBhZ2UYBCABKAUiyQQKHERpdmlkZW5kc0ZvcmVpZ25Jc3N1ZXJSZXBvcnQSLwoLcmVjb3JkX2RhdGUYASABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjAKDHBheW1lbnRfZGF0ZRgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASFQoNc2VjdXJpdHlfbmFtZRgDIAEoCRIMCgRpc2luGAQgASgJEhYKDmlzc3Vlcl9jb3VudHJ5GAUgASgJEhAKCHF1YW50aXR5GAYgASgDEkIKCGRpdmlkZW5kGAcgASgLMjAudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5RdW90YXRpb24STQoTZXh0ZXJuYWxfY29tbWlzc2lvbhgIIAEoCzIwLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuUXVvdGF0aW9uEkgKDmRpdmlkZW5kX2dyb3NzGAkgASgLMjAudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5RdW90YXRpb24SPQoDdGF4GAogASgLMjAudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5RdW90YXRpb24SSQoPZGl2aWRlbmRfYW1vdW50GAsgASgLMjAudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5RdW90YXRpb24SEAoIY3VycmVuY3kYDCABKAkiewoWUG9ydGZvbGlvU3RyZWFtUmVxdWVzdBIQCghhY2NvdW50cxgBIAMoCRJPCg1waW5nX3NldHRpbmdzGA8gASgLMjgudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5QaW5nRGVsYXlTZXR0aW5ncyKNAgoXUG9ydGZvbGlvU3RyZWFtUmVzcG9uc2USWwoNc3Vic2NyaXB0aW9ucxgBIAEoCzJCLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuUG9ydGZvbGlvU3Vic2NyaXB0aW9uUmVzdWx0SAASTQoJcG9ydGZvbGlvGAIgASgLMjgudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5Qb3J0Zm9saW9SZXNwb25zZUgAEjsKBHBpbmcYAyABKAsyKy50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlBpbmdIAEIJCgdwYXlsb2FkIpkBChtQb3J0Zm9saW9TdWJzY3JpcHRpb25SZXN1bHQSUgoIYWNjb3VudHMYASADKAsyQC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLkFjY291bnRTdWJzY3JpcHRpb25TdGF0dXMSEwoLdHJhY2tpbmdfaWQYByABKAkSEQoJc3RyZWFtX2lkGAggASgJIpABChlBY2NvdW50U3Vic2NyaXB0aW9uU3RhdHVzEhIKCmFjY291bnRfaWQYASABKAkSXwoTc3Vic2NyaXB0aW9uX3N0YXR1cxgGIAEoDjJCLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuUG9ydGZvbGlvU3Vic2NyaXB0aW9uU3RhdHVzItYEChxHZXRPcGVyYXRpb25zQnlDdXJzb3JSZXF1ZXN0EhgKCmFjY291bnRfaWQYASABKAlCBOJBAQISGgoNaW5zdHJ1bWVudF9pZBgCIAEoCUgAiAEBEi0KBGZyb20YBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAGIAQESKwoCdG8YByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAKIAQESEwoGY3Vyc29yGAsgASgJSAOIAQESEgoFbGltaXQYDCABKAVIBIgBARJNCg9vcGVyYXRpb25fdHlwZXMYDSADKA4yNC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLk9wZXJhdGlvblR5cGUSSQoFc3RhdGUYDiABKA4yNS50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLk9wZXJhdGlvblN0YXRlSAWIAQESIAoTd2l0aG91dF9jb21taXNzaW9ucxgPIAEoCEgGiAEBEhsKDndpdGhvdXRfdHJhZGVzGBAgASgISAeIAQESHwoSd2l0aG91dF9vdmVybmlnaHRzGBEgASgISAiIAQFCEAoOX2luc3RydW1lbnRfaWRCBwoFX2Zyb21CBQoDX3RvQgkKB19jdXJzb3JCCAoGX2xpbWl0QggKBl9zdGF0ZUIWChRfd2l0aG91dF9jb21taXNzaW9uc0IRCg9fd2l0aG91dF90cmFkZXNCFQoTX3dpdGhvdXRfb3Zlcm5pZ2h0cyKLAQodR2V0T3BlcmF0aW9uc0J5Q3Vyc29yUmVzcG9uc2USEAoIaGFzX25leHQYASABKAgSEwoLbmV4dF9jdXJzb3IYAiABKAkSQwoFaXRlbXMYBiADKAsyNC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLk9wZXJhdGlvbkl0ZW0i6gkKDU9wZXJhdGlvbkl0ZW0SDgoGY3Vyc29yGAEgASgJEhkKEWJyb2tlcl9hY2NvdW50X2lkGAYgASgJEgoKAmlkGBAgASgJEhsKE3BhcmVudF9vcGVyYXRpb25faWQYESABKAkSDAoEbmFtZRgSIAEoCRIoCgRkYXRlGBUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBJCCgR0eXBlGBYgASgOMjQudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5PcGVyYXRpb25UeXBlEhMKC2Rlc2NyaXB0aW9uGBcgASgJEkQKBXN0YXRlGBggASgOMjUudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5PcGVyYXRpb25TdGF0ZRIWCg5pbnN0cnVtZW50X3VpZBgfIAEoCRIMCgRmaWdpGCAgASgJEhcKD2luc3RydW1lbnRfdHlwZRghIAEoCRJOCg9pbnN0cnVtZW50X2tpbmQYIiABKA4yNS50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLkluc3RydW1lbnRUeXBlEhQKDHBvc2l0aW9uX3VpZBgjIAEoCRIOCgZ0aWNrZXIYJCABKAkSEgoKY2xhc3NfY29kZRglIAEoCRJCCgdwYXltZW50GCkgASgLMjEudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5Nb25leVZhbHVlEkAKBXByaWNlGCogASgLMjEudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5Nb25leVZhbHVlEkUKCmNvbW1pc3Npb24YKyABKAsyMS50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLk1vbmV5VmFsdWUSQAoFeWllbGQYLCABKAsyMS50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLk1vbmV5VmFsdWUSSAoOeWllbGRfcmVsYXRpdmUYLSABKAsyMC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlF1b3RhdGlvbhJGCgthY2NydWVkX2ludBguIAEoCzIxLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuTW9uZXlWYWx1ZRIQCghxdWFudGl0eRgzIAEoAxIVCg1xdWFudGl0eV9yZXN0GDQgASgDEhUKDXF1YW50aXR5X2RvbmUYNSABKAMSNAoQY2FuY2VsX2RhdGVfdGltZRg4IAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASFQoNY2FuY2VsX3JlYXNvbhg5IAEoCRJPCgt0cmFkZXNfaW5mbxg9IAEoCzI6LnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuT3BlcmF0aW9uSXRlbVRyYWRlcxIRCglhc3NldF91aWQYQCABKAkSUwoQY2hpbGRfb3BlcmF0aW9ucxhBIAMoCzI5LnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuQ2hpbGRPcGVyYXRpb25JdGVtImAKE09wZXJhdGlvbkl0ZW1UcmFkZXMSSQoGdHJhZGVzGAYgAygLMjkudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5PcGVyYXRpb25JdGVtVHJhZGUiqwIKEk9wZXJhdGlvbkl0ZW1UcmFkZRILCgNudW0YASABKAkSKAoEZGF0ZRgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASEAoIcXVhbnRpdHkYCyABKAMSQAoFcHJpY2UYECABKAsyMS50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLk1vbmV5VmFsdWUSQAoFeWllbGQYFSABKAsyMS50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLk1vbmV5VmFsdWUSSAoOeWllbGRfcmVsYXRpdmUYFiABKAsyMC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlF1b3RhdGlvbiKbAQoWUG9zaXRpb25zU3RyZWFtUmVxdWVzdBIQCghhY2NvdW50cxgBIAMoCRIeChZ3aXRoX2luaXRpYWxfcG9zaXRpb25zGAMgASgIEk8KDXBpbmdfc2V0dGluZ3MYDyABKAsyOC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlBpbmdEZWxheVNldHRpbmdzIt4CChdQb3NpdGlvbnNTdHJlYW1SZXNwb25zZRJbCg1zdWJzY3JpcHRpb25zGAEgASgLMkIudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5Qb3NpdGlvbnNTdWJzY3JpcHRpb25SZXN1bHRIABJHCghwb3NpdGlvbhgCIAEoCzIzLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuUG9zaXRpb25EYXRhSAASOwoEcGluZxgDIAEoCzIrLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuUGluZ0gAElUKEWluaXRpYWxfcG9zaXRpb25zGAUgASgLMjgudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5Qb3NpdGlvbnNSZXNwb25zZUgAQgkKB3BheWxvYWQimwEKG1Bvc2l0aW9uc1N1YnNjcmlwdGlvblJlc3VsdBJUCghhY2NvdW50cxgBIAMoCzJCLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuUG9zaXRpb25zU3Vic2NyaXB0aW9uU3RhdHVzEhMKC3RyYWNraW5nX2lkGAcgASgJEhEKCXN0cmVhbV9pZBgIIAEoCSKZAQobUG9zaXRpb25zU3Vic2NyaXB0aW9uU3RhdHVzEhIKCmFjY291bnRfaWQYASABKAkSZgoTc3Vic2NyaXB0aW9uX3N0YXR1cxgGIAEoDjJJLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuUG9zaXRpb25zQWNjb3VudFN1YnNjcmlwdGlvblN0YXR1cyL2AgoMUG9zaXRpb25EYXRhEhIKCmFjY291bnRfaWQYASABKAkSRAoFbW9uZXkYAiADKAsyNS50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlBvc2l0aW9uc01vbmV5Ek4KCnNlY3VyaXRpZXMYAyADKAsyOi50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlBvc2l0aW9uc1NlY3VyaXRpZXMSSAoHZnV0dXJlcxgEIAMoCzI3LnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuUG9zaXRpb25zRnV0dXJlcxJICgdvcHRpb25zGAUgAygLMjcudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5Qb3NpdGlvbnNPcHRpb25zEigKBGRhdGUYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIqYBCg5Qb3NpdGlvbnNNb25leRJKCg9hdmFpbGFibGVfdmFsdWUYASABKAsyMS50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLk1vbmV5VmFsdWUSSAoNYmxvY2tlZF92YWx1ZRgCIAEoCzIxLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuTW9uZXlWYWx1ZSJwChJDaGlsZE9wZXJhdGlvbkl0ZW0SFgoOaW5zdHJ1bWVudF91aWQYASABKAkSQgoHcGF5bWVudBgCIAEoCzIxLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuTW9uZXlWYWx1ZSJ8ChdPcGVyYXRpb25zU3RyZWFtUmVxdWVzdBIQCghhY2NvdW50cxgBIAMoCRJPCg1waW5nX3NldHRpbmdzGA8gASgLMjgudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5QaW5nRGVsYXlTZXR0aW5ncyKLAgoYT3BlcmF0aW9uc1N0cmVhbVJlc3BvbnNlElwKDXN1YnNjcmlwdGlvbnMYASABKAsyQy50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLk9wZXJhdGlvbnNTdWJzY3JpcHRpb25SZXN1bHRIABJJCglvcGVyYXRpb24YAiABKAsyNC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLk9wZXJhdGlvbkRhdGFIABI7CgRwaW5nGAMgASgLMisudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5QaW5nSABCCQoHcGF5bG9hZCLBAQocT3BlcmF0aW9uc1N1YnNjcmlwdGlvblJlc3VsdBIQCghhY2NvdW50cxgBIAMoCRJnChNzdWJzY3JpcHRpb25fc3RhdHVzGAIgASgOMkoudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5PcGVyYXRpb25zQWNjb3VudFN1YnNjcmlwdGlvblN0YXR1cxITCgt0cmFja2luZ19pZBgHIAEoCRIRCglzdHJlYW1faWQYCCABKAkiogQKDU9wZXJhdGlvbkRhdGESGQoRYnJva2VyX2FjY291bnRfaWQYASABKAkSCgoCaWQYAiABKAkSGwoTcGFyZW50X29wZXJhdGlvbl9pZBgDIAEoCRIMCgRuYW1lGAQgASgJEigKBGRhdGUYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEkIKBHR5cGUYBiABKA4yNC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLk9wZXJhdGlvblR5cGUSRAoFc3RhdGUYByABKA4yNS50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLk9wZXJhdGlvblN0YXRlEhYKDmluc3RydW1lbnRfdWlkGAggASgJEgwKBGZpZ2kYCSABKAkSFwoPaW5zdHJ1bWVudF90eXBlGAogASgJEk4KD2luc3RydW1lbnRfa2luZBgLIAEoDjI1LnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuSW5zdHJ1bWVudFR5cGUSFAoMcG9zaXRpb25fdWlkGAwgASgJEg4KBnRpY2tlchgNIAEoCRISCgpjbGFzc19jb2RlGA4gASgJEkIKB3BheW1lbnQYDyABKAsyMS50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLk1vbmV5VmFsdWUqiwEKDk9wZXJhdGlvblN0YXRlEh8KG09QRVJBVElPTl9TVEFURV9VTlNQRUNJRklFRBAAEhwKGE9QRVJBVElPTl9TVEFURV9FWEVDVVRFRBABEhwKGE9QRVJBVElPTl9TVEFURV9DQU5DRUxFRBACEhwKGE9QRVJBVElPTl9TVEFURV9QUk9HUkVTUxADKt0RCg1PcGVyYXRpb25UeXBlEh4KGk9QRVJBVElPTl9UWVBFX1VOU1BFQ0lGSUVEEAASGAoUT1BFUkFUSU9OX1RZUEVfSU5QVVQQARIbChdPUEVSQVRJT05fVFlQRV9CT05EX1RBWBACEiQKIE9QRVJBVElPTl9UWVBFX09VVFBVVF9TRUNVUklUSUVTEAMSHAoYT1BFUkFUSU9OX1RZUEVfT1ZFUk5JR0hUEAQSFgoST1BFUkFUSU9OX1RZUEVfVEFYEAUSJgoiT1BFUkFUSU9OX1RZUEVfQk9ORF9SRVBBWU1FTlRfRlVMTBAGEhwKGE9QRVJBVElPTl9UWVBFX1NFTExfQ0FSRBAHEh8KG09QRVJBVElPTl9UWVBFX0RJVklERU5EX1RBWBAIEhkKFU9QRVJBVElPTl9UWVBFX09VVFBVVBAJEiEKHU9QRVJBVElPTl9UWVBFX0JPTkRfUkVQQVlNRU5UEAoSIQodT1BFUkFUSU9OX1RZUEVfVEFYX0NPUlJFQ1RJT04QCxIeChpPUEVSQVRJT05fVFlQRV9TRVJWSUNFX0ZFRRAMEh4KGk9QRVJBVElPTl9UWVBFX0JFTkVGSVRfVEFYEA0SHQoZT1BFUkFUSU9OX1RZUEVfTUFSR0lOX0ZFRRAOEhYKEk9QRVJBVElPTl9UWVBFX0JVWRAPEhsKF09QRVJBVElPTl9UWVBFX0JVWV9DQVJEEBASIwofT1BFUkFUSU9OX1RZUEVfSU5QVVRfU0VDVVJJVElFUxAREh4KGk9QRVJBVElPTl9UWVBFX1NFTExfTUFSR0lOEBISHQoZT1BFUkFUSU9OX1RZUEVfQlJPS0VSX0ZFRRATEh0KGU9QRVJBVElPTl9UWVBFX0JVWV9NQVJHSU4QFBIbChdPUEVSQVRJT05fVFlQRV9ESVZJREVORBAVEhcKE09QRVJBVElPTl9UWVBFX1NFTEwQFhIZChVPUEVSQVRJT05fVFlQRV9DT1VQT04QFxIeChpPUEVSQVRJT05fVFlQRV9TVUNDRVNTX0ZFRRAYEiQKIE9QRVJBVElPTl9UWVBFX0RJVklERU5EX1RSQU5TRkVSEBkSJQohT1BFUkFUSU9OX1RZUEVfQUNDUlVJTkdfVkFSTUFSR0lOEBoSKAokT1BFUkFUSU9OX1RZUEVfV1JJVElOR19PRkZfVkFSTUFSR0lOEBsSHwobT1BFUkFUSU9OX1RZUEVfREVMSVZFUllfQlVZEBwSIAocT1BFUkFUSU9OX1RZUEVfREVMSVZFUllfU0VMTBAdEh0KGU9QRVJBVElPTl9UWVBFX1RSQUNLX01GRUUQHhIdChlPUEVSQVRJT05fVFlQRV9UUkFDS19QRkVFEB8SIgoeT1BFUkFUSU9OX1RZUEVfVEFYX1BST0dSRVNTSVZFECASJwojT1BFUkFUSU9OX1RZUEVfQk9ORF9UQVhfUFJPR1JFU1NJVkUQIRIrCidPUEVSQVRJT05fVFlQRV9ESVZJREVORF9UQVhfUFJPR1JFU1NJVkUQIhIqCiZPUEVSQVRJT05fVFlQRV9CRU5FRklUX1RBWF9QUk9HUkVTU0lWRRAjEi0KKU9QRVJBVElPTl9UWVBFX1RBWF9DT1JSRUNUSU9OX1BST0dSRVNTSVZFECQSJwojT1BFUkFUSU9OX1RZUEVfVEFYX1JFUE9fUFJPR1JFU1NJVkUQJRIbChdPUEVSQVRJT05fVFlQRV9UQVhfUkVQTxAmEiAKHE9QRVJBVElPTl9UWVBFX1RBWF9SRVBPX0hPTEQQJxIiCh5PUEVSQVRJT05fVFlQRV9UQVhfUkVQT19SRUZVTkQQKBIsCihPUEVSQVRJT05fVFlQRV9UQVhfUkVQT19IT0xEX1BST0dSRVNTSVZFECkSLgoqT1BFUkFUSU9OX1RZUEVfVEFYX1JFUE9fUkVGVU5EX1BST0dSRVNTSVZFECoSGgoWT1BFUkFUSU9OX1RZUEVfRElWX0VYVBArEigKJE9QRVJBVElPTl9UWVBFX1RBWF9DT1JSRUNUSU9OX0NPVVBPThAsEhsKF09QRVJBVElPTl9UWVBFX0NBU0hfRkVFEC0SGgoWT1BFUkFUSU9OX1RZUEVfT1VUX0ZFRRAuEiEKHU9QRVJBVElPTl9UWVBFX09VVF9TVEFNUF9EVVRZEC8SHwobT1BFUkFUSU9OX1RZUEVfT1VUUFVUX1NXSUZUEDISHgoaT1BFUkFUSU9OX1RZUEVfSU5QVVRfU1dJRlQQMxIjCh9PUEVSQVRJT05fVFlQRV9PVVRQVVRfQUNRVUlSSU5HEDUSIgoeT1BFUkFUSU9OX1RZUEVfSU5QVVRfQUNRVUlSSU5HEDYSIQodT1BFUkFUSU9OX1RZUEVfT1VUUFVUX1BFTkFMVFkQNxIdChlPUEVSQVRJT05fVFlQRV9BRFZJQ0VfRkVFEDgSHwobT1BFUkFUSU9OX1RZUEVfVFJBTlNfSUlTX0JTEDkSHgoaT1BFUkFUSU9OX1RZUEVfVFJBTlNfQlNfQlMQOhIcChhPUEVSQVRJT05fVFlQRV9PVVRfTVVMVEkQOxIcChhPUEVSQVRJT05fVFlQRV9JTlBfTVVMVEkQPBIhCh1PUEVSQVRJT05fVFlQRV9PVkVSX1BMQUNFTUVOVBA9EhsKF09QRVJBVElPTl9UWVBFX09WRVJfQ09NED4SHgoaT1BFUkFUSU9OX1RZUEVfT1ZFUl9JTkNPTUUQPxIkCiBPUEVSQVRJT05fVFlQRV9PUFRJT05fRVhQSVJBVElPThBAEiQKIE9QRVJBVElPTl9UWVBFX0ZVVFVSRV9FWFBJUkFUSU9OEEESHAoYT1BFUkFUSU9OX1RZUEVfT1RIRVJfRkVFEEISGAoUT1BFUkFUSU9OX1RZUEVfT1RIRVIQQxIhCh1PUEVSQVRJT05fVFlQRV9ERkFfUkVERU1QVElPThBEEiAKHE9QRVJBVElPTl9UWVBFX1BSSU1BUllfT1JERVIQRSreAQobUG9ydGZvbGlvU3Vic2NyaXB0aW9uU3RhdHVzEi0KKVBPUlRGT0xJT19TVUJTQ1JJUFRJT05fU1RBVFVTX1VOU1BFQ0lGSUVEEAASKQolUE9SVEZPTElPX1NVQlNDUklQVElPTl9TVEFUVVNfU1VDQ0VTUxABEjMKL1BPUlRGT0xJT19TVUJTQ1JJUFRJT05fU1RBVFVTX0FDQ09VTlRfTk9UX0ZPVU5EEAISMAosUE9SVEZPTElPX1NVQlNDUklQVElPTl9TVEFUVVNfSU5URVJOQUxfRVJST1IQAyrlAQoiUG9zaXRpb25zQWNjb3VudFN1YnNjcmlwdGlvblN0YXR1cxItCilQT1NJVElPTlNfU1VCU0NSSVBUSU9OX1NUQVRVU19VTlNQRUNJRklFRBAAEikKJVBPU0lUSU9OU19TVUJTQ1JJUFRJT05fU1RBVFVTX1NVQ0NFU1MQARIzCi9QT1NJVElPTlNfU1VCU0NSSVBUSU9OX1NUQVRVU19BQ0NPVU5UX05PVF9GT1VORBACEjAKLFBPU0lUSU9OU19TVUJTQ1JJUFRJT05fU1RBVFVTX0lOVEVSTkFMX0VSUk9SEAMq6gEKI09wZXJhdGlvbnNBY2NvdW50U3Vic2NyaXB0aW9uU3RhdHVzEi4KKk9QRVJBVElPTlNfU1VCU0NSSVBUSU9OX1NUQVRVU19VTlNQRUNJRklFRBAAEioKJk9QRVJBVElPTlNfU1VCU0NSSVBUSU9OX1NUQVRVU19TVUNDRVNTEAESNAowT1BFUkFUSU9OU19TVUJTQ1JJUFRJT05fU1RBVFVTX0FDQ09VTlRfTk9UX0ZPVU5EEAISMQotT1BFUkFUSU9OU19TVUJTQ1JJUFRJT05fU1RBVFVTX0lOVEVSTkFMX0VSUk9SEAMymAgKEU9wZXJhdGlvbnNTZXJ2aWNlEoQBCg1HZXRPcGVyYXRpb25zEjgudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5PcGVyYXRpb25zUmVxdWVzdBo5LnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuT3BlcmF0aW9uc1Jlc3BvbnNlEoEBCgxHZXRQb3J0Zm9saW8SNy50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlBvcnRmb2xpb1JlcXVlc3QaOC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlBvcnRmb2xpb1Jlc3BvbnNlEoEBCgxHZXRQb3NpdGlvbnMSNy50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlBvc2l0aW9uc1JlcXVlc3QaOC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlBvc2l0aW9uc1Jlc3BvbnNlEpABChFHZXRXaXRoZHJhd0xpbWl0cxI8LnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuV2l0aGRyYXdMaW1pdHNSZXF1ZXN0Gj0udGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5XaXRoZHJhd0xpbWl0c1Jlc3BvbnNlEooBCg9HZXRCcm9rZXJSZXBvcnQSOi50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLkJyb2tlclJlcG9ydFJlcXVlc3QaOy50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLkJyb2tlclJlcG9ydFJlc3BvbnNlEq4BChlHZXREaXZpZGVuZHNGb3JlaWduSXNzdWVyEkcudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5HZXREaXZpZGVuZHNGb3JlaWduSXNzdWVyUmVxdWVzdBpILnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuR2V0RGl2aWRlbmRzRm9yZWlnbklzc3VlclJlc3BvbnNlEqIBChVHZXRPcGVyYXRpb25zQnlDdXJzb3ISQy50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLkdldE9wZXJhdGlvbnNCeUN1cnNvclJlcXVlc3QaRC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLkdldE9wZXJhdGlvbnNCeUN1cnNvclJlc3BvbnNlMtsDChdPcGVyYXRpb25zU3RyZWFtU2VydmljZRKSAQoPUG9ydGZvbGlvU3RyZWFtEj0udGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5Qb3J0Zm9saW9TdHJlYW1SZXF1ZXN0Gj4udGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5Qb3J0Zm9saW9TdHJlYW1SZXNwb25zZTABEpIBCg9Qb3NpdGlvbnNTdHJlYW0SPS50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlBvc2l0aW9uc1N0cmVhbVJlcXVlc3QaPi50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlBvc2l0aW9uc1N0cmVhbVJlc3BvbnNlMAESlQEKEE9wZXJhdGlvbnNTdHJlYW0SPi50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLk9wZXJhdGlvbnNTdHJlYW1SZXF1ZXN0Gj8udGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5PcGVyYXRpb25zU3RyZWFtUmVzcG9uc2UwAUJhChxydS50aW5rb2ZmLnBpYXBpLmNvbnRyYWN0LnYxUAFaDC4vO2ludmVzdGFwaaICBVRJQVBJqgIUVGlua29mZi5JbnZlc3RBcGkuVjHKAhFUaW5rb2ZmXEludmVzdFxWMWIGcHJvdG8z", [file_google_protobuf_timestamp, file_common, file_google_api_field_behavior]);
3057
+ var OperationsService = /* @__PURE__ */ serviceDesc(file_operations, 0);
3058
+
3059
+ // src/gen/orders_pb.ts
3060
+ var file_orders = /* @__PURE__ */ fileDesc("CgxvcmRlcnMucHJvdG8SJXRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEiVQoTVHJhZGVzU3RyZWFtUmVxdWVzdBIQCghhY2NvdW50cxgBIAMoCRIaCg1waW5nX2RlbGF5X21zGA8gASgFSACIAQFCEAoOX3BpbmdfZGVsYXlfbXMi/wEKFFRyYWRlc1N0cmVhbVJlc3BvbnNlEkoKDG9yZGVyX3RyYWRlcxgBIAEoCzIyLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuT3JkZXJUcmFkZXNIABI7CgRwaW5nGAIgASgLMisudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5QaW5nSAASUwoMc3Vic2NyaXB0aW9uGAMgASgLMjsudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5TdWJzY3JpcHRpb25SZXNwb25zZUgAQgkKB3BheWxvYWQilgIKC09yZGVyVHJhZGVzEhAKCG9yZGVyX2lkGAEgASgJEi4KCmNyZWF0ZWRfYXQYAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEkgKCWRpcmVjdGlvbhgDIAEoDjI1LnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuT3JkZXJEaXJlY3Rpb24SDAoEZmlnaRgEIAEoCRJBCgZ0cmFkZXMYBSADKAsyMS50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLk9yZGVyVHJhZGUSEgoKYWNjb3VudF9pZBgGIAEoCRIWCg5pbnN0cnVtZW50X3VpZBgHIAEoCSKgAQoKT3JkZXJUcmFkZRItCglkYXRlX3RpbWUYASABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEj8KBXByaWNlGAIgASgLMjAudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5RdW90YXRpb24SEAoIcXVhbnRpdHkYAyABKAMSEAoIdHJhZGVfaWQYBCABKAkisgQKEFBvc3RPcmRlclJlcXVlc3QSFQoEZmlnaRgBIAEoCUICGAFIAIgBARIWCghxdWFudGl0eRgCIAEoA0IE4kEBAhJECgVwcmljZRgDIAEoCzIwLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuUXVvdGF0aW9uSAGIAQESTgoJZGlyZWN0aW9uGAQgASgOMjUudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5PcmRlckRpcmVjdGlvbkIE4kEBAhIYCgphY2NvdW50X2lkGAUgASgJQgTiQQECEkoKCm9yZGVyX3R5cGUYBiABKA4yMC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLk9yZGVyVHlwZUIE4kEBAhIWCghvcmRlcl9pZBgHIAEoCUIE4kEBAhIVCg1pbnN0cnVtZW50X2lkGAggASgJEk0KDXRpbWVfaW5fZm9yY2UYCSABKA4yNi50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlRpbWVJbkZvcmNlVHlwZRJECgpwcmljZV90eXBlGAogASgOMjAudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5QcmljZVR5cGUSHAoUY29uZmlybV9tYXJnaW5fdHJhZGUYCyABKAhCBwoFX2ZpZ2lCCAoGX3ByaWNlIowJChFQb3N0T3JkZXJSZXNwb25zZRIQCghvcmRlcl9pZBgBIAEoCRJiChdleGVjdXRpb25fcmVwb3J0X3N0YXR1cxgCIAEoDjJBLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuT3JkZXJFeGVjdXRpb25SZXBvcnRTdGF0dXMSFgoObG90c19yZXF1ZXN0ZWQYAyABKAMSFQoNbG90c19leGVjdXRlZBgEIAEoAxJOChNpbml0aWFsX29yZGVyX3ByaWNlGAUgASgLMjEudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5Nb25leVZhbHVlEk8KFGV4ZWN1dGVkX29yZGVyX3ByaWNlGAYgASgLMjEudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5Nb25leVZhbHVlEk0KEnRvdGFsX29yZGVyX2Ftb3VudBgHIAEoCzIxLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuTW9uZXlWYWx1ZRJNChJpbml0aWFsX2NvbW1pc3Npb24YCCABKAsyMS50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLk1vbmV5VmFsdWUSTgoTZXhlY3V0ZWRfY29tbWlzc2lvbhgJIAEoCzIxLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuTW9uZXlWYWx1ZRJECglhY2lfdmFsdWUYCiABKAsyMS50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLk1vbmV5VmFsdWUSDAoEZmlnaRgLIAEoCRJICglkaXJlY3Rpb24YDCABKA4yNS50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLk9yZGVyRGlyZWN0aW9uElEKFmluaXRpYWxfc2VjdXJpdHlfcHJpY2UYDSABKAsyMS50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLk1vbmV5VmFsdWUSRAoKb3JkZXJfdHlwZRgOIAEoDjIwLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuT3JkZXJUeXBlEg8KB21lc3NhZ2UYDyABKAkSUAoWaW5pdGlhbF9vcmRlcl9wcmljZV9wdBgQIAEoCzIwLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuUXVvdGF0aW9uEhYKDmluc3RydW1lbnRfdWlkGBEgASgJEg4KBnRpY2tlchgSIAEoCRISCgpjbGFzc19jb2RlGBMgASgJEhgKEG9yZGVyX3JlcXVlc3RfaWQYFCABKAkSUwoRcmVzcG9uc2VfbWV0YWRhdGEY/gEgASgLMjcudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5SZXNwb25zZU1ldGFkYXRhIsgEChVQb3N0T3JkZXJBc3luY1JlcXVlc3QSGwoNaW5zdHJ1bWVudF9pZBgBIAEoCUIE4kEBAhIWCghxdWFudGl0eRgCIAEoA0IE4kEBAhJECgVwcmljZRgDIAEoCzIwLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuUXVvdGF0aW9uSACIAQESTgoJZGlyZWN0aW9uGAQgASgOMjUudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5PcmRlckRpcmVjdGlvbkIE4kEBAhIYCgphY2NvdW50X2lkGAUgASgJQgTiQQECEkoKCm9yZGVyX3R5cGUYBiABKA4yMC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLk9yZGVyVHlwZUIE4kEBAhIWCghvcmRlcl9pZBgHIAEoCUIE4kEBAhJSCg10aW1lX2luX2ZvcmNlGAggASgOMjYudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5UaW1lSW5Gb3JjZVR5cGVIAYgBARJJCgpwcmljZV90eXBlGAkgASgOMjAudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5QcmljZVR5cGVIAogBARIcChRjb25maXJtX21hcmdpbl90cmFkZRgKIAEoCEIICgZfcHJpY2VCEAoOX3RpbWVfaW5fZm9yY2VCDQoLX3ByaWNlX3R5cGUi1AEKFlBvc3RPcmRlckFzeW5jUmVzcG9uc2USHgoQb3JkZXJfcmVxdWVzdF9pZBgBIAEoCUIE4kEBAhJoChdleGVjdXRpb25fcmVwb3J0X3N0YXR1cxgCIAEoDjJBLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuT3JkZXJFeGVjdXRpb25SZXBvcnRTdGF0dXNCBOJBAQISHAoPdHJhZGVfaW50ZW50X2lkGAMgASgJSACIAQFCEgoQX3RyYWRlX2ludGVudF9pZCKoAQoSQ2FuY2VsT3JkZXJSZXF1ZXN0EhgKCmFjY291bnRfaWQYASABKAlCBOJBAQISFgoIb3JkZXJfaWQYAiABKAlCBOJBAQISTgoNb3JkZXJfaWRfdHlwZRgDIAEoDjIyLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuT3JkZXJJZFR5cGVIAIgBAUIQCg5fb3JkZXJfaWRfdHlwZSKUAQoTQ2FuY2VsT3JkZXJSZXNwb25zZRIoCgR0aW1lGAEgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBJTChFyZXNwb25zZV9tZXRhZGF0YRj+ASABKAsyNy50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlJlc3BvbnNlTWV0YWRhdGEi8AEKFEdldE9yZGVyU3RhdGVSZXF1ZXN0EhgKCmFjY291bnRfaWQYASABKAlCBOJBAQISFgoIb3JkZXJfaWQYAiABKAlCBOJBAQISRAoKcHJpY2VfdHlwZRgDIAEoDjIwLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuUHJpY2VUeXBlEk4KDW9yZGVyX2lkX3R5cGUYBCABKA4yMi50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLk9yZGVySWRUeXBlSACIAQFCEAoOX29yZGVyX2lkX3R5cGUilgMKEEdldE9yZGVyc1JlcXVlc3QSGAoKYWNjb3VudF9pZBgBIAEoCUIE4kEBAhJuChBhZHZhbmNlZF9maWx0ZXJzGAIgASgLMk8udGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5HZXRPcmRlcnNSZXF1ZXN0LkdldE9yZGVyc1JlcXVlc3RGaWx0ZXJzSACIAQEa4gEKF0dldE9yZGVyc1JlcXVlc3RGaWx0ZXJzEi0KBGZyb20YASABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSACIAQESKwoCdG8YAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAGIAQESWwoQZXhlY3V0aW9uX3N0YXR1cxgDIAMoDjJBLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuT3JkZXJFeGVjdXRpb25SZXBvcnRTdGF0dXNCBwoFX2Zyb21CBQoDX3RvQhMKEV9hZHZhbmNlZF9maWx0ZXJzIlYKEUdldE9yZGVyc1Jlc3BvbnNlEkEKBm9yZGVycxgBIAMoCzIxLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuT3JkZXJTdGF0ZSKuCQoKT3JkZXJTdGF0ZRIQCghvcmRlcl9pZBgBIAEoCRJiChdleGVjdXRpb25fcmVwb3J0X3N0YXR1cxgCIAEoDjJBLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuT3JkZXJFeGVjdXRpb25SZXBvcnRTdGF0dXMSFgoObG90c19yZXF1ZXN0ZWQYAyABKAMSFQoNbG90c19leGVjdXRlZBgEIAEoAxJOChNpbml0aWFsX29yZGVyX3ByaWNlGAUgASgLMjEudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5Nb25leVZhbHVlEk8KFGV4ZWN1dGVkX29yZGVyX3ByaWNlGAYgASgLMjEudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5Nb25leVZhbHVlEk0KEnRvdGFsX29yZGVyX2Ftb3VudBgHIAEoCzIxLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuTW9uZXlWYWx1ZRJRChZhdmVyYWdlX3Bvc2l0aW9uX3ByaWNlGAggASgLMjEudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5Nb25leVZhbHVlEk0KEmluaXRpYWxfY29tbWlzc2lvbhgJIAEoCzIxLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuTW9uZXlWYWx1ZRJOChNleGVjdXRlZF9jb21taXNzaW9uGAogASgLMjEudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5Nb25leVZhbHVlEgwKBGZpZ2kYCyABKAkSSAoJZGlyZWN0aW9uGAwgASgOMjUudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5PcmRlckRpcmVjdGlvbhJRChZpbml0aWFsX3NlY3VyaXR5X3ByaWNlGA0gASgLMjEudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5Nb25leVZhbHVlEkEKBnN0YWdlcxgOIAMoCzIxLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuT3JkZXJTdGFnZRJNChJzZXJ2aWNlX2NvbW1pc3Npb24YDyABKAsyMS50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLk1vbmV5VmFsdWUSEAoIY3VycmVuY3kYECABKAkSRAoKb3JkZXJfdHlwZRgRIAEoDjIwLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuT3JkZXJUeXBlEi4KCm9yZGVyX2RhdGUYEiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhYKDmluc3RydW1lbnRfdWlkGBMgASgJEhgKEG9yZGVyX3JlcXVlc3RfaWQYFCABKAkSDgoGdGlja2VyGBUgASgJEhIKCmNsYXNzX2NvZGUYFiABKAkipgEKCk9yZGVyU3RhZ2USQAoFcHJpY2UYASABKAsyMS50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLk1vbmV5VmFsdWUSEAoIcXVhbnRpdHkYAiABKAMSEAoIdHJhZGVfaWQYAyABKAkSMgoOZXhlY3V0aW9uX3RpbWUYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIqgDChNSZXBsYWNlT3JkZXJSZXF1ZXN0EhgKCmFjY291bnRfaWQYASABKAlCBOJBAQISTgoNb3JkZXJfaWRfdHlwZRgFIAEoDjIyLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuT3JkZXJJZFR5cGVIAIgBARIWCghvcmRlcl9pZBgGIAEoCUIE4kEBAhIdCg9pZGVtcG90ZW5jeV9rZXkYByABKAlCBOJBAQISFgoIcXVhbnRpdHkYCyABKANCBOJBAQISRAoFcHJpY2UYDCABKAsyMC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlF1b3RhdGlvbkgBiAEBEkkKCnByaWNlX3R5cGUYDSABKA4yMC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlByaWNlVHlwZUgCiAEBEhwKFGNvbmZpcm1fbWFyZ2luX3RyYWRlGA4gASgIQhAKDl9vcmRlcl9pZF90eXBlQggKBl9wcmljZUINCgtfcHJpY2VfdHlwZSKaAQoRR2V0TWF4TG90c1JlcXVlc3QSGAoKYWNjb3VudF9pZBgBIAEoCUIE4kEBAhIbCg1pbnN0cnVtZW50X2lkGAIgASgJQgTiQQECEkQKBXByaWNlGAMgASgLMjAudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5RdW90YXRpb25IAIgBAUIICgZfcHJpY2Ui5gQKEkdldE1heExvdHNSZXNwb25zZRIQCghjdXJyZW5jeRgBIAEoCRJbCgpidXlfbGltaXRzGAIgASgLMkcudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5HZXRNYXhMb3RzUmVzcG9uc2UuQnV5TGltaXRzVmlldxJiChFidXlfbWFyZ2luX2xpbWl0cxgDIAEoCzJHLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuR2V0TWF4TG90c1Jlc3BvbnNlLkJ1eUxpbWl0c1ZpZXcSXQoLc2VsbF9saW1pdHMYBCABKAsySC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLkdldE1heExvdHNSZXNwb25zZS5TZWxsTGltaXRzVmlldxJkChJzZWxsX21hcmdpbl9saW1pdHMYBSABKAsySC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLkdldE1heExvdHNSZXNwb25zZS5TZWxsTGltaXRzVmlldxqOAQoNQnV5TGltaXRzVmlldxJKChBidXlfbW9uZXlfYW1vdW50GAEgASgLMjAudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5RdW90YXRpb24SFAoMYnV5X21heF9sb3RzGAIgASgDEhsKE2J1eV9tYXhfbWFya2V0X2xvdHMYAyABKAMaJwoOU2VsbExpbWl0c1ZpZXcSFQoNc2VsbF9tYXhfbG90cxgBIAEoAyLeAQoUR2V0T3JkZXJQcmljZVJlcXVlc3QSEgoKYWNjb3VudF9pZBgBIAEoCRIVCg1pbnN0cnVtZW50X2lkGAIgASgJEj8KBXByaWNlGAMgASgLMjAudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5RdW90YXRpb24SSAoJZGlyZWN0aW9uGAwgASgOMjUudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5PcmRlckRpcmVjdGlvbhIQCghxdWFudGl0eRgNIAEoAyLjBwoVR2V0T3JkZXJQcmljZVJlc3BvbnNlEk0KEnRvdGFsX29yZGVyX2Ftb3VudBgBIAEoCzIxLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuTW9uZXlWYWx1ZRJPChRpbml0aWFsX29yZGVyX2Ftb3VudBgFIAEoCzIxLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuTW9uZXlWYWx1ZRIWCg5sb3RzX3JlcXVlc3RlZBgDIAEoAxJOChNleGVjdXRlZF9jb21taXNzaW9uGAcgASgLMjEudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5Nb25leVZhbHVlElIKF2V4ZWN1dGVkX2NvbW1pc3Npb25fcnViGAggASgLMjEudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5Nb25leVZhbHVlEk0KEnNlcnZpY2VfY29tbWlzc2lvbhgJIAEoCzIxLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuTW9uZXlWYWx1ZRJKCg9kZWFsX2NvbW1pc3Npb24YCiABKAsyMS50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLk1vbmV5VmFsdWUSXAoKZXh0cmFfYm9uZBgMIAEoCzJGLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuR2V0T3JkZXJQcmljZVJlc3BvbnNlLkV4dHJhQm9uZEgAEmAKDGV4dHJhX2Z1dHVyZRgNIAEoCzJILnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuR2V0T3JkZXJQcmljZVJlc3BvbnNlLkV4dHJhRnV0dXJlSAAapAEKCUV4dHJhQm9uZBJECglhY2lfdmFsdWUYAiABKAsyMS50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLk1vbmV5VmFsdWUSUQoXbm9taW5hbF9jb252ZXJzaW9uX3JhdGUYAyABKAsyMC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlF1b3RhdGlvbhpYCgtFeHRyYUZ1dHVyZRJJCg5pbml0aWFsX21hcmdpbhgCIAEoCzIxLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuTW9uZXlWYWx1ZUISChBpbnN0cnVtZW50X2V4dHJhImEKF09yZGVyU3RhdGVTdHJlYW1SZXF1ZXN0EhAKCGFjY291bnRzGAEgAygJEh4KEXBpbmdfZGVsYXlfbWlsbGlzGA8gASgFSACIAQFCFAoSX3BpbmdfZGVsYXlfbWlsbGlzIvMBChRTdWJzY3JpcHRpb25SZXNwb25zZRITCgt0cmFja2luZ19pZBgBIAEoCRJPCgZzdGF0dXMYAiABKA4yPy50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlJlc3VsdFN1YnNjcmlwdGlvblN0YXR1cxIRCglzdHJlYW1faWQYBCABKAkSEAoIYWNjb3VudHMYBSADKAkSRgoFZXJyb3IYByABKAsyMi50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLkVycm9yRGV0YWlsSACIAQFCCAoGX2Vycm9yItgQChhPcmRlclN0YXRlU3RyZWFtUmVzcG9uc2USYQoLb3JkZXJfc3RhdGUYASABKAsySi50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLk9yZGVyU3RhdGVTdHJlYW1SZXNwb25zZS5PcmRlclN0YXRlSAASOwoEcGluZxgCIAEoCzIrLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuUGluZ0gAElMKDHN1YnNjcmlwdGlvbhgDIAEoCzI7LnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuU3Vic2NyaXB0aW9uUmVzcG9uc2VIABrzCgoKT3JkZXJTdGF0ZRIQCghvcmRlcl9pZBgBIAEoCRIdChBvcmRlcl9yZXF1ZXN0X2lkGAIgASgJSACIAQESEwoLY2xpZW50X2NvZGUYAyABKAkSLgoKY3JlYXRlZF9hdBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASYgoXZXhlY3V0aW9uX3JlcG9ydF9zdGF0dXMYBSABKA4yQS50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLk9yZGVyRXhlY3V0aW9uUmVwb3J0U3RhdHVzEmkKC3N0YXR1c19pbmZvGAYgASgOMk8udGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5PcmRlclN0YXRlU3RyZWFtUmVzcG9uc2UuU3RhdHVzQ2F1c2VJbmZvSAGIAQESDgoGdGlja2VyGAcgASgJEhIKCmNsYXNzX2NvZGUYCCABKAkSEAoIbG90X3NpemUYCSABKAUSSAoJZGlyZWN0aW9uGAogASgOMjUudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5PcmRlckRpcmVjdGlvbhJNCg10aW1lX2luX2ZvcmNlGAsgASgOMjYudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5UaW1lSW5Gb3JjZVR5cGUSRAoKb3JkZXJfdHlwZRgMIAEoDjIwLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuT3JkZXJUeXBlEhIKCmFjY291bnRfaWQYDSABKAkSHAoOdHJhZGVfb3JkZXJfaWQYDiABKAlCBOJBAQISTgoTaW5pdGlhbF9vcmRlcl9wcmljZRgWIAEoCzIxLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuTW9uZXlWYWx1ZRJGCgtvcmRlcl9wcmljZRgXIAEoCzIxLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuTW9uZXlWYWx1ZRJGCgZhbW91bnQYGCABKAsyMS50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLk1vbmV5VmFsdWVIAogBARJPChRleGVjdXRlZF9vcmRlcl9wcmljZRgZIAEoCzIxLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuTW9uZXlWYWx1ZRIQCghjdXJyZW5jeRgaIAEoCRIWCg5sb3RzX3JlcXVlc3RlZBgbIAEoAxIVCg1sb3RzX2V4ZWN1dGVkGBwgASgDEhEKCWxvdHNfbGVmdBgdIAEoAxIWCg5sb3RzX2NhbmNlbGxlZBgeIAEoAxJfCgZtYXJrZXIYHyABKA4ySi50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLk9yZGVyU3RhdGVTdHJlYW1SZXNwb25zZS5NYXJrZXJUeXBlSAOIAQESQQoGdHJhZGVzGCEgAygLMjEudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5PcmRlclRyYWRlEjMKD2NvbXBsZXRpb25fdGltZRgjIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASEAoIZXhjaGFuZ2UYJCABKAkSFgoOaW5zdHJ1bWVudF91aWQYKSABKAlCEwoRX29yZGVyX3JlcXVlc3RfaWRCDgoMX3N0YXR1c19pbmZvQgkKB19hbW91bnRCCQoHX21hcmtlciKvAQoKTWFya2VyVHlwZRISCg5NQVJLRVJfVU5LTk9XThAAEhEKDU1BUktFUl9CUk9LRVIQARIPCgtNQVJLRVJfQ0hBVBACEhAKDE1BUktFUl9QQVBFUhADEhEKDU1BUktFUl9NQVJHSU4QBBIQCgxNQVJLRVJfVEtCTk0QBRIQCgxNQVJLRVJfU0hPUlQQBhIRCg1NQVJLRVJfU1BFQ01NEAcSDQoJTUFSS0VSX1BPEAgikwIKD1N0YXR1c0NhdXNlSW5mbxIVChFDQVVTRV9VTlNQRUNJRklFRBAAEh0KGUNBVVNFX0NBTkNFTExFRF9CWV9DTElFTlQQDxIfChtDQVVTRV9DQU5DRUxMRURfQllfRVhDSEFOR0UQARInCiNDQVVTRV9DQU5DRUxMRURfTk9UX0VOT1VHSF9QT1NJVElPThACEiMKH0NBVVNFX0NBTkNFTExFRF9CWV9DTElFTlRfQkxPQ0sQAxIcChhDQVVTRV9SRUpFQ1RFRF9CWV9CUk9LRVIQBBIeChpDQVVTRV9SRUpFQ1RFRF9CWV9FWENIQU5HRRAFEh0KGUNBVVNFX0NBTkNFTExFRF9CWV9CUk9LRVIQBkIJCgdwYXlsb2FkKmQKDk9yZGVyRGlyZWN0aW9uEh8KG09SREVSX0RJUkVDVElPTl9VTlNQRUNJRklFRBAAEhcKE09SREVSX0RJUkVDVElPTl9CVVkQARIYChRPUkRFUl9ESVJFQ1RJT05fU0VMTBACKm4KCU9yZGVyVHlwZRIaChZPUkRFUl9UWVBFX1VOU1BFQ0lGSUVEEAASFAoQT1JERVJfVFlQRV9MSU1JVBABEhUKEU9SREVSX1RZUEVfTUFSS0VUEAISGAoUT1JERVJfVFlQRV9CRVNUUFJJQ0UQAyqAAgoaT3JkZXJFeGVjdXRpb25SZXBvcnRTdGF0dXMSJwojRVhFQ1VUSU9OX1JFUE9SVF9TVEFUVVNfVU5TUEVDSUZJRUQQABIgChxFWEVDVVRJT05fUkVQT1JUX1NUQVRVU19GSUxMEAESJAogRVhFQ1VUSU9OX1JFUE9SVF9TVEFUVVNfUkVKRUNURUQQAhIlCiFFWEVDVVRJT05fUkVQT1JUX1NUQVRVU19DQU5DRUxMRUQQAxIfChtFWEVDVVRJT05fUkVQT1JUX1NUQVRVU19ORVcQBBIpCiVFWEVDVVRJT05fUkVQT1JUX1NUQVRVU19QQVJUSUFMTFlGSUxMEAUqiAEKD1RpbWVJbkZvcmNlVHlwZRIdChlUSU1FX0lOX0ZPUkNFX1VOU1BFQ0lGSUVEEAASFQoRVElNRV9JTl9GT1JDRV9EQVkQARIfChtUSU1FX0lOX0ZPUkNFX0ZJTExfQU5EX0tJTEwQAhIeChpUSU1FX0lOX0ZPUkNFX0ZJTExfT1JfS0lMTBADKmMKC09yZGVySWRUeXBlEh0KGU9SREVSX0lEX1RZUEVfVU5TUEVDSUZJRUQQABIaChZPUkRFUl9JRF9UWVBFX0VYQ0hBTkdFEAESGQoVT1JERVJfSURfVFlQRV9SRVFVRVNUEAIyuQIKE09yZGVyc1N0cmVhbVNlcnZpY2USiQEKDFRyYWRlc1N0cmVhbRI6LnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuVHJhZGVzU3RyZWFtUmVxdWVzdBo7LnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuVHJhZGVzU3RyZWFtUmVzcG9uc2UwARKVAQoQT3JkZXJTdGF0ZVN0cmVhbRI+LnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuT3JkZXJTdGF0ZVN0cmVhbVJlcXVlc3QaPy50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLk9yZGVyU3RhdGVTdHJlYW1SZXNwb25zZTABMr8ICg1PcmRlcnNTZXJ2aWNlEn4KCVBvc3RPcmRlchI3LnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuUG9zdE9yZGVyUmVxdWVzdBo4LnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuUG9zdE9yZGVyUmVzcG9uc2USjQEKDlBvc3RPcmRlckFzeW5jEjwudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5Qb3N0T3JkZXJBc3luY1JlcXVlc3QaPS50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlBvc3RPcmRlckFzeW5jUmVzcG9uc2UShAEKC0NhbmNlbE9yZGVyEjkudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5DYW5jZWxPcmRlclJlcXVlc3QaOi50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLkNhbmNlbE9yZGVyUmVzcG9uc2USfwoNR2V0T3JkZXJTdGF0ZRI7LnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuR2V0T3JkZXJTdGF0ZVJlcXVlc3QaMS50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLk9yZGVyU3RhdGUSfgoJR2V0T3JkZXJzEjcudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5HZXRPcmRlcnNSZXF1ZXN0GjgudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5HZXRPcmRlcnNSZXNwb25zZRKEAQoMUmVwbGFjZU9yZGVyEjoudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5SZXBsYWNlT3JkZXJSZXF1ZXN0GjgudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5Qb3N0T3JkZXJSZXNwb25zZRKBAQoKR2V0TWF4TG90cxI4LnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuR2V0TWF4TG90c1JlcXVlc3QaOS50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLkdldE1heExvdHNSZXNwb25zZRKKAQoNR2V0T3JkZXJQcmljZRI7LnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuR2V0T3JkZXJQcmljZVJlcXVlc3QaPC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLkdldE9yZGVyUHJpY2VSZXNwb25zZUJhChxydS50aW5rb2ZmLnBpYXBpLmNvbnRyYWN0LnYxUAFaDC4vO2ludmVzdGFwaaICBVRJQVBJqgIUVGlua29mZi5JbnZlc3RBcGkuVjHKAhFUaW5rb2ZmXEludmVzdFxWMWIGcHJvdG8z", [file_common, file_google_protobuf_timestamp, file_google_api_field_behavior]);
3061
+ var OrdersService = /* @__PURE__ */ serviceDesc(file_orders, 1);
3062
+
3063
+ // src/gen/stoporders_pb.ts
3064
+ var file_stoporders = /* @__PURE__ */ fileDesc("ChBzdG9wb3JkZXJzLnByb3RvEiV0aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxIusKChRQb3N0U3RvcE9yZGVyUmVxdWVzdBIVCgRmaWdpGAEgASgJQgIYAUgAiAEBEhYKCHF1YW50aXR5GAIgASgDQgTiQQECEkQKBXByaWNlGAMgASgLMjAudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5RdW90YXRpb25IAYgBARJJCgpzdG9wX3ByaWNlGAQgASgLMjAudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5RdW90YXRpb25IAogBARJSCglkaXJlY3Rpb24YBSABKA4yOS50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlN0b3BPcmRlckRpcmVjdGlvbkIE4kEBAhIYCgphY2NvdW50X2lkGAYgASgJQgTiQQECEl0KD2V4cGlyYXRpb25fdHlwZRgHIAEoDjI+LnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuU3RvcE9yZGVyRXhwaXJhdGlvblR5cGVCBOJBAQISUwoPc3RvcF9vcmRlcl90eXBlGAggASgOMjQudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5TdG9wT3JkZXJUeXBlQgTiQQECEjQKC2V4cGlyZV9kYXRlGAkgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgDiAEBEhsKDWluc3RydW1lbnRfaWQYCiABKAlCBOJBAQISVQoTZXhjaGFuZ2Vfb3JkZXJfdHlwZRgLIAEoDjI4LnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuRXhjaGFuZ2VPcmRlclR5cGUSTwoQdGFrZV9wcm9maXRfdHlwZRgMIAEoDjI1LnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuVGFrZVByb2ZpdFR5cGUSXwoNdHJhaWxpbmdfZGF0YRgNIAEoCzJILnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuUG9zdFN0b3BPcmRlclJlcXVlc3QuVHJhaWxpbmdEYXRhEkQKCnByaWNlX3R5cGUYDiABKA4yMC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlByaWNlVHlwZRIWCghvcmRlcl9pZBgPIAEoCUIE4kEBAhIcChRjb25maXJtX21hcmdpbl90cmFkZRgQIAEoCBIeChFpbnN0YW50X2V4ZWN1dGlvbhgRIAEoCEgEiAEBGrACCgxUcmFpbGluZ0RhdGESQAoGaW5kZW50GAEgASgLMjAudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5RdW90YXRpb24STQoLaW5kZW50X3R5cGUYAiABKA4yOC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlRyYWlsaW5nVmFsdWVUeXBlEkAKBnNwcmVhZBgDIAEoCzIwLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuUXVvdGF0aW9uEk0KC3NwcmVhZF90eXBlGAQgASgOMjgudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5UcmFpbGluZ1ZhbHVlVHlwZUIHCgVfZmlnaUIICgZfcHJpY2VCDQoLX3N0b3BfcHJpY2VCDgoMX2V4cGlyZV9kYXRlQhQKEl9pbnN0YW50X2V4ZWN1dGlvbiKdAQoVUG9zdFN0b3BPcmRlclJlc3BvbnNlEhUKDXN0b3Bfb3JkZXJfaWQYASABKAkSGAoQb3JkZXJfcmVxdWVzdF9pZBgCIAEoCRJTChFyZXNwb25zZV9tZXRhZGF0YRj+ASABKAsyNy50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlJlc3BvbnNlTWV0YWRhdGEi0AEKFEdldFN0b3BPcmRlcnNSZXF1ZXN0EhgKCmFjY291bnRfaWQYASABKAlCBOJBAQISTAoGc3RhdHVzGAIgASgOMjwudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5TdG9wT3JkZXJTdGF0dXNPcHRpb24SKAoEZnJvbRgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASJgoCdG8YBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIl4KFUdldFN0b3BPcmRlcnNSZXNwb25zZRJFCgtzdG9wX29yZGVycxgBIAMoCzIwLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuU3RvcE9yZGVyIk8KFkNhbmNlbFN0b3BPcmRlclJlcXVlc3QSGAoKYWNjb3VudF9pZBgBIAEoCUIE4kEBAhIbCg1zdG9wX29yZGVyX2lkGAIgASgJQgTiQQECIkMKF0NhbmNlbFN0b3BPcmRlclJlc3BvbnNlEigKBHRpbWUYASABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIvMLCglTdG9wT3JkZXISFQoNc3RvcF9vcmRlcl9pZBgBIAEoCRIWCg5sb3RzX3JlcXVlc3RlZBgCIAEoAxIMCgRmaWdpGAMgASgJEkwKCWRpcmVjdGlvbhgEIAEoDjI5LnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuU3RvcE9yZGVyRGlyZWN0aW9uEhAKCGN1cnJlbmN5GAUgASgJEkgKCm9yZGVyX3R5cGUYBiABKA4yNC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlN0b3BPcmRlclR5cGUSLwoLY3JlYXRlX2RhdGUYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjgKFGFjdGl2YXRpb25fZGF0ZV90aW1lGAggASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIzCg9leHBpcmF0aW9uX3RpbWUYCSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEkAKBXByaWNlGAogASgLMjEudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5Nb25leVZhbHVlEkUKCnN0b3BfcHJpY2UYCyABKAsyMS50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLk1vbmV5VmFsdWUSFgoOaW5zdHJ1bWVudF91aWQYDCABKAkSTwoQdGFrZV9wcm9maXRfdHlwZRgNIAEoDjI1LnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuVGFrZVByb2ZpdFR5cGUSVAoNdHJhaWxpbmdfZGF0YRgOIAEoCzI9LnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuU3RvcE9yZGVyLlRyYWlsaW5nRGF0YRJMCgZzdGF0dXMYDyABKA4yPC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlN0b3BPcmRlclN0YXR1c09wdGlvbhJVChNleGNoYW5nZV9vcmRlcl90eXBlGBAgASgOMjgudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5FeGNoYW5nZU9yZGVyVHlwZRIeChFleGNoYW5nZV9vcmRlcl9pZBgRIAEoCUgAiAEBEg4KBnRpY2tlchgSIAEoCRISCgpjbGFzc19jb2RlGBMgASgJEhkKEWluc3RhbnRfZXhlY3V0aW9uGBQgASgIGvwDCgxUcmFpbGluZ0RhdGESQAoGaW5kZW50GAEgASgLMjAudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5RdW90YXRpb24STQoLaW5kZW50X3R5cGUYAiABKA4yOC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlRyYWlsaW5nVmFsdWVUeXBlEkAKBnNwcmVhZBgDIAEoCzIwLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuUXVvdGF0aW9uEk0KC3NwcmVhZF90eXBlGAQgASgOMjgudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5UcmFpbGluZ1ZhbHVlVHlwZRJJCgZzdGF0dXMYBSABKA4yOS50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlRyYWlsaW5nU3RvcFN0YXR1cxI/CgVwcmljZRgHIAEoCzIwLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuUXVvdGF0aW9uEj4KBGV4dHIYCCABKAsyMC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlF1b3RhdGlvbkIUChJfZXhjaGFuZ2Vfb3JkZXJfaWQqdwoSU3RvcE9yZGVyRGlyZWN0aW9uEiQKIFNUT1BfT1JERVJfRElSRUNUSU9OX1VOU1BFQ0lGSUVEEAASHAoYU1RPUF9PUkRFUl9ESVJFQ1RJT05fQlVZEAESHQoZU1RPUF9PUkRFUl9ESVJFQ1RJT05fU0VMTBACKqUBChdTdG9wT3JkZXJFeHBpcmF0aW9uVHlwZRIqCiZTVE9QX09SREVSX0VYUElSQVRJT05fVFlQRV9VTlNQRUNJRklFRBAAEi8KK1NUT1BfT1JERVJfRVhQSVJBVElPTl9UWVBFX0dPT0RfVElMTF9DQU5DRUwQARItCilTVE9QX09SREVSX0VYUElSQVRJT05fVFlQRV9HT09EX1RJTExfREFURRACKpABCg1TdG9wT3JkZXJUeXBlEh8KG1NUT1BfT1JERVJfVFlQRV9VTlNQRUNJRklFRBAAEh8KG1NUT1BfT1JERVJfVFlQRV9UQUtFX1BST0ZJVBABEh0KGVNUT1BfT1JERVJfVFlQRV9TVE9QX0xPU1MQAhIeChpTVE9QX09SREVSX1RZUEVfU1RPUF9MSU1JVBADKtIBChVTdG9wT3JkZXJTdGF0dXNPcHRpb24SIQodU1RPUF9PUkRFUl9TVEFUVVNfVU5TUEVDSUZJRUQQABIZChVTVE9QX09SREVSX1NUQVRVU19BTEwQARIcChhTVE9QX09SREVSX1NUQVRVU19BQ1RJVkUQAhIeChpTVE9QX09SREVSX1NUQVRVU19FWEVDVVRFRBADEh4KGlNUT1BfT1JERVJfU1RBVFVTX0NBTkNFTEVEEAQSHQoZU1RPUF9PUkRFUl9TVEFUVVNfRVhQSVJFRBAFKncKEUV4Y2hhbmdlT3JkZXJUeXBlEiMKH0VYQ0hBTkdFX09SREVSX1RZUEVfVU5TUEVDSUZJRUQQABIeChpFWENIQU5HRV9PUkRFUl9UWVBFX01BUktFVBABEh0KGUVYQ0hBTkdFX09SREVSX1RZUEVfTElNSVQQAipvCg5UYWtlUHJvZml0VHlwZRIgChxUQUtFX1BST0ZJVF9UWVBFX1VOU1BFQ0lGSUVEEAASHAoYVEFLRV9QUk9GSVRfVFlQRV9SRUdVTEFSEAESHQoZVEFLRV9QUk9GSVRfVFlQRV9UUkFJTElORxACKm0KEVRyYWlsaW5nVmFsdWVUeXBlEh4KGlRSQUlMSU5HX1ZBTFVFX1VOU1BFQ0lGSUVEEAASGwoXVFJBSUxJTkdfVkFMVUVfQUJTT0xVVEUQARIbChdUUkFJTElOR19WQUxVRV9SRUxBVElWRRACKmoKElRyYWlsaW5nU3RvcFN0YXR1cxIdChlUUkFJTElOR19TVE9QX1VOU1BFQ0lGSUVEEAASGAoUVFJBSUxJTkdfU1RPUF9BQ1RJVkUQARIbChdUUkFJTElOR19TVE9QX0FDVElWQVRFRBACMsADChFTdG9wT3JkZXJzU2VydmljZRKKAQoNUG9zdFN0b3BPcmRlchI7LnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuUG9zdFN0b3BPcmRlclJlcXVlc3QaPC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlBvc3RTdG9wT3JkZXJSZXNwb25zZRKKAQoNR2V0U3RvcE9yZGVycxI7LnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuR2V0U3RvcE9yZGVyc1JlcXVlc3QaPC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLkdldFN0b3BPcmRlcnNSZXNwb25zZRKQAQoPQ2FuY2VsU3RvcE9yZGVyEj0udGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5DYW5jZWxTdG9wT3JkZXJSZXF1ZXN0Gj4udGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5DYW5jZWxTdG9wT3JkZXJSZXNwb25zZUJhChxydS50aW5rb2ZmLnBpYXBpLmNvbnRyYWN0LnYxUAFaDC4vO2ludmVzdGFwaaICBVRJQVBJqgIUVGlua29mZi5JbnZlc3RBcGkuVjHKAhFUaW5rb2ZmXEludmVzdFxWMWIGcHJvdG8z", [file_google_protobuf_timestamp, file_google_api_field_behavior, file_common]);
3065
+ var StopOrdersService = /* @__PURE__ */ serviceDesc(file_stoporders, 0);
3066
+
3067
+ // src/gen/users_pb.ts
3068
+ var file_users = /* @__PURE__ */ fileDesc("Cgt1c2Vycy5wcm90bxIldGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MSJqChJHZXRBY2NvdW50c1JlcXVlc3QSSQoGc3RhdHVzGAEgASgOMjQudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5BY2NvdW50U3RhdHVzSACIAQFCCQoHX3N0YXR1cyJXChNHZXRBY2NvdW50c1Jlc3BvbnNlEkAKCGFjY291bnRzGAEgAygLMi4udGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5BY2NvdW50ItcCCgdBY2NvdW50EgoKAmlkGAEgASgJEkAKBHR5cGUYAiABKA4yMi50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLkFjY291bnRUeXBlEgwKBG5hbWUYAyABKAkSRAoGc3RhdHVzGAQgASgOMjQudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5BY2NvdW50U3RhdHVzEi8KC29wZW5lZF9kYXRlGAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIvCgtjbG9zZWRfZGF0ZRgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASSAoMYWNjZXNzX2xldmVsGAcgASgOMjIudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5BY2Nlc3NMZXZlbCI2ChpHZXRNYXJnaW5BdHRyaWJ1dGVzUmVxdWVzdBIYCgphY2NvdW50X2lkGAEgASgJQgTiQQECIscEChtHZXRNYXJnaW5BdHRyaWJ1dGVzUmVzcG9uc2USSwoQbGlxdWlkX3BvcnRmb2xpbxgBIAEoCzIxLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuTW9uZXlWYWx1ZRJKCg9zdGFydGluZ19tYXJnaW4YAiABKAsyMS50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLk1vbmV5VmFsdWUSSQoObWluaW1hbF9tYXJnaW4YAyABKAsyMS50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLk1vbmV5VmFsdWUSUQoXZnVuZHNfc3VmZmljaWVuY3lfbGV2ZWwYBCABKAsyMC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlF1b3RhdGlvbhJSChdhbW91bnRfb2ZfbWlzc2luZ19mdW5kcxgFIAEoCzIxLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuTW9uZXlWYWx1ZRJLChBjb3JyZWN0ZWRfbWFyZ2luGAYgASgLMjEudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5Nb25leVZhbHVlElAKFWd1YXJhbnRlZV9mb3JfZnV0dXJlcxgHIAEoCzIxLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuTW9uZXlWYWx1ZSIWChRHZXRVc2VyVGFyaWZmUmVxdWVzdCKrAQoVR2V0VXNlclRhcmlmZlJlc3BvbnNlEkcKDHVuYXJ5X2xpbWl0cxgBIAMoCzIxLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuVW5hcnlMaW1pdBJJCg1zdHJlYW1fbGltaXRzGAIgAygLMjIudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5TdHJlYW1MaW1pdCJrCgpVbmFyeUxpbWl0EhgKEGxpbWl0X3Blcl9taW51dGUYASABKAUSDwoHbWV0aG9kcxgCIAMoCRIdChBsaW1pdF9wZXJfc2Vjb25kGAMgASgFSACIAQFCEwoRX2xpbWl0X3Blcl9zZWNvbmQiOwoLU3RyZWFtTGltaXQSDQoFbGltaXQYASABKAUSDwoHc3RyZWFtcxgCIAMoCRIMCgRvcGVuGAMgASgFIhAKDkdldEluZm9SZXF1ZXN0IpYBCg9HZXRJbmZvUmVzcG9uc2USEwoLcHJlbV9zdGF0dXMYASABKAgSEwoLcXVhbF9zdGF0dXMYAiABKAgSHwoXcXVhbGlmaWVkX2Zvcl93b3JrX3dpdGgYAyADKAkSDgoGdGFyaWZmGAQgASgJEg8KB3VzZXJfaWQYCSABKAkSFwoPcmlza19sZXZlbF9jb2RlGAwgASgJIhgKFkdldEJhbmtBY2NvdW50c1JlcXVlc3QiZAoXR2V0QmFua0FjY291bnRzUmVzcG9uc2USSQoNYmFua19hY2NvdW50cxgBIAMoCzIyLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuQmFua0FjY291bnQi3AEKC0JhbmtBY2NvdW50EgoKAmlkGAEgASgJEgwKBG5hbWUYAiABKAkSQAoFbW9uZXkYAyADKAsyMS50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLk1vbmV5VmFsdWUSLwoLb3BlbmVkX2RhdGUYBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEkAKBHR5cGUYBSABKA4yMi50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLkFjY291bnRUeXBlIrYBChdDdXJyZW5jeVRyYW5zZmVyUmVxdWVzdBIdCg9mcm9tX2FjY291bnRfaWQYASABKAlCBOJBAQISGwoNdG9fYWNjb3VudF9pZBgCIAEoCUIE4kEBAhJHCgZhbW91bnQYAyABKAsyMS50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLk1vbmV5VmFsdWVCBOJBAQISFgoOdHJhbnNhY3Rpb25faWQYBCABKAkiGgoYQ3VycmVuY3lUcmFuc2ZlclJlc3BvbnNlIpMBCgxQYXlJblJlcXVlc3QSHQoPZnJvbV9hY2NvdW50X2lkGAEgASgJQgTiQQECEhsKDXRvX2FjY291bnRfaWQYAiABKAlCBOJBAQISRwoGYW1vdW50GAMgASgLMjEudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5Nb25leVZhbHVlQgTiQQECIg8KDVBheUluUmVzcG9uc2UicAoXR2V0QWNjb3VudFZhbHVlc1JlcXVlc3QSEAoIYWNjb3VudHMYASADKAkSQwoGdmFsdWVzGAIgAygOMjMudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5BY2NvdW50VmFsdWUicAoYR2V0QWNjb3VudFZhbHVlc1Jlc3BvbnNlElQKCGFjY291bnRzGAEgAygLMkIudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5BY2NvdW50VmFsdWVzV2l0aFBhcmFtZXRlcnMifQobQWNjb3VudFZhbHVlc1dpdGhQYXJhbWV0ZXJzEhIKCmFjY291bnRfaWQYASABKAkSSgoGdmFsdWVzGAIgAygLMjoudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5JbnN0cnVtZW50UGFyYW1ldGVyIpoBChNJbnN0cnVtZW50UGFyYW1ldGVyEkEKBG5hbWUYASABKA4yMy50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLkFjY291bnRWYWx1ZRJACgV2YWx1ZRgCIAEoCzIxLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuTW9uZXlWYWx1ZSrlAQoLQWNjb3VudFR5cGUSHAoYQUNDT1VOVF9UWVBFX1VOU1BFQ0lGSUVEEAASGAoUQUNDT1VOVF9UWVBFX1RJTktPRkYQARIcChhBQ0NPVU5UX1RZUEVfVElOS09GRl9JSVMQAhIbChdBQ0NPVU5UX1RZUEVfSU5WRVNUX0JPWBADEhwKGEFDQ09VTlRfVFlQRV9JTlZFU1RfRlVORBAEEhYKEkFDQ09VTlRfVFlQRV9ERUJJVBAFEhcKE0FDQ09VTlRfVFlQRV9TQVZJTkcQBhIUChBBQ0NPVU5UX1RZUEVfREZBEAcqkwEKDUFjY291bnRTdGF0dXMSHgoaQUNDT1VOVF9TVEFUVVNfVU5TUEVDSUZJRUQQABIWChJBQ0NPVU5UX1NUQVRVU19ORVcQARIXChNBQ0NPVU5UX1NUQVRVU19PUEVOEAISGQoVQUNDT1VOVF9TVEFUVVNfQ0xPU0VEEAMSFgoSQUNDT1VOVF9TVEFUVVNfQUxMEAQqoQEKC0FjY2Vzc0xldmVsEiQKIEFDQ09VTlRfQUNDRVNTX0xFVkVMX1VOU1BFQ0lGSUVEEAASJAogQUNDT1VOVF9BQ0NFU1NfTEVWRUxfRlVMTF9BQ0NFU1MQARIiCh5BQ0NPVU5UX0FDQ0VTU19MRVZFTF9SRUFEX09OTFkQAhIiCh5BQ0NPVU5UX0FDQ0VTU19MRVZFTF9OT19BQ0NFU1MQAyp3CgxBY2NvdW50VmFsdWUSHQoZQUNDT1VOVF9WQUxVRV9VTlNQRUNJRklFRBAAEhwKGEFDQ09VTlRfVkFMVUVfTUFSR0lOX0ZFRRABEioKJkFDQ09VTlRfVkFMVUVfQU1PVU5UX1dJVEhPVVRfRVhUUkFfRkVFEAIy7ggKDFVzZXJzU2VydmljZRKEAQoLR2V0QWNjb3VudHMSOS50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLkdldEFjY291bnRzUmVxdWVzdBo6LnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuR2V0QWNjb3VudHNSZXNwb25zZRKcAQoTR2V0TWFyZ2luQXR0cmlidXRlcxJBLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuR2V0TWFyZ2luQXR0cmlidXRlc1JlcXVlc3QaQi50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLkdldE1hcmdpbkF0dHJpYnV0ZXNSZXNwb25zZRKKAQoNR2V0VXNlclRhcmlmZhI7LnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuR2V0VXNlclRhcmlmZlJlcXVlc3QaPC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLkdldFVzZXJUYXJpZmZSZXNwb25zZRJ4CgdHZXRJbmZvEjUudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5HZXRJbmZvUmVxdWVzdBo2LnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuR2V0SW5mb1Jlc3BvbnNlEpABCg9HZXRCYW5rQWNjb3VudHMSPS50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLkdldEJhbmtBY2NvdW50c1JlcXVlc3QaPi50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLkdldEJhbmtBY2NvdW50c1Jlc3BvbnNlEpMBChBDdXJyZW5jeVRyYW5zZmVyEj4udGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5DdXJyZW5jeVRyYW5zZmVyUmVxdWVzdBo/LnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuQ3VycmVuY3lUcmFuc2ZlclJlc3BvbnNlEnIKBVBheUluEjMudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5QYXlJblJlcXVlc3QaNC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlBheUluUmVzcG9uc2USkwEKEEdldEFjY291bnRWYWx1ZXMSPi50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLkdldEFjY291bnRWYWx1ZXNSZXF1ZXN0Gj8udGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5HZXRBY2NvdW50VmFsdWVzUmVzcG9uc2VCYQoccnUudGlua29mZi5waWFwaS5jb250cmFjdC52MVABWgwuLztpbnZlc3RhcGmiAgVUSUFQSaoCFFRpbmtvZmYuSW52ZXN0QXBpLlYxygIRVGlua29mZlxJbnZlc3RcVjFiBnByb3RvMw", [file_google_protobuf_timestamp, file_google_api_field_behavior, file_common]);
3069
+ var UsersService = /* @__PURE__ */ serviceDesc(file_users, 0);
3070
+
3071
+ // src/gen/sandbox_pb.ts
3072
+ var file_sandbox = /* @__PURE__ */ fileDesc("Cg1zYW5kYm94LnByb3RvEiV0aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxIjcKGU9wZW5TYW5kYm94QWNjb3VudFJlcXVlc3QSEQoEbmFtZRgBIAEoCUgAiAEBQgcKBV9uYW1lIjAKGk9wZW5TYW5kYm94QWNjb3VudFJlc3BvbnNlEhIKCmFjY291bnRfaWQYASABKAkiNgoaQ2xvc2VTYW5kYm94QWNjb3VudFJlcXVlc3QSGAoKYWNjb3VudF9pZBgBIAEoCUIE4kEBAiIdChtDbG9zZVNhbmRib3hBY2NvdW50UmVzcG9uc2UieAoTU2FuZGJveFBheUluUmVxdWVzdBIYCgphY2NvdW50X2lkGAEgASgJQgTiQQECEkcKBmFtb3VudBgCIAEoCzIxLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuTW9uZXlWYWx1ZUIE4kEBAiJaChRTYW5kYm94UGF5SW5SZXNwb25zZRJCCgdiYWxhbmNlGAEgASgLMjEudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5Nb25leVZhbHVlMvoWCg5TYW5kYm94U2VydmljZRKZAQoST3BlblNhbmRib3hBY2NvdW50EkAudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5PcGVuU2FuZGJveEFjY291bnRSZXF1ZXN0GkEudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5PcGVuU2FuZGJveEFjY291bnRSZXNwb25zZRKLAQoSR2V0U2FuZGJveEFjY291bnRzEjkudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5HZXRBY2NvdW50c1JlcXVlc3QaOi50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLkdldEFjY291bnRzUmVzcG9uc2USnAEKE0Nsb3NlU2FuZGJveEFjY291bnQSQS50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLkNsb3NlU2FuZGJveEFjY291bnRSZXF1ZXN0GkIudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5DbG9zZVNhbmRib3hBY2NvdW50UmVzcG9uc2UShQEKEFBvc3RTYW5kYm94T3JkZXISNy50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlBvc3RPcmRlclJlcXVlc3QaOC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlBvc3RPcmRlclJlc3BvbnNlEpQBChVQb3N0U2FuZGJveE9yZGVyQXN5bmMSPC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlBvc3RPcmRlckFzeW5jUmVxdWVzdBo9LnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuUG9zdE9yZGVyQXN5bmNSZXNwb25zZRKLAQoTUmVwbGFjZVNhbmRib3hPcmRlchI6LnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuUmVwbGFjZU9yZGVyUmVxdWVzdBo4LnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuUG9zdE9yZGVyUmVzcG9uc2UShQEKEEdldFNhbmRib3hPcmRlcnMSNy50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLkdldE9yZGVyc1JlcXVlc3QaOC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLkdldE9yZGVyc1Jlc3BvbnNlEosBChJDYW5jZWxTYW5kYm94T3JkZXISOS50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLkNhbmNlbE9yZGVyUmVxdWVzdBo6LnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuQ2FuY2VsT3JkZXJSZXNwb25zZRKGAQoUR2V0U2FuZGJveE9yZGVyU3RhdGUSOy50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLkdldE9yZGVyU3RhdGVSZXF1ZXN0GjEudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5PcmRlclN0YXRlEpEBChRHZXRTYW5kYm94T3JkZXJQcmljZRI7LnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuR2V0T3JkZXJQcmljZVJlcXVlc3QaPC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLkdldE9yZGVyUHJpY2VSZXNwb25zZRKIAQoTR2V0U2FuZGJveFBvc2l0aW9ucxI3LnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuUG9zaXRpb25zUmVxdWVzdBo4LnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuUG9zaXRpb25zUmVzcG9uc2USiwEKFEdldFNhbmRib3hPcGVyYXRpb25zEjgudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5PcGVyYXRpb25zUmVxdWVzdBo5LnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuT3BlcmF0aW9uc1Jlc3BvbnNlEqkBChxHZXRTYW5kYm94T3BlcmF0aW9uc0J5Q3Vyc29yEkMudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5HZXRPcGVyYXRpb25zQnlDdXJzb3JSZXF1ZXN0GkQudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5HZXRPcGVyYXRpb25zQnlDdXJzb3JSZXNwb25zZRKIAQoTR2V0U2FuZGJveFBvcnRmb2xpbxI3LnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuUG9ydGZvbGlvUmVxdWVzdBo4LnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuUG9ydGZvbGlvUmVzcG9uc2UShwEKDFNhbmRib3hQYXlJbhI6LnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuU2FuZGJveFBheUluUmVxdWVzdBo7LnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuU2FuZGJveFBheUluUmVzcG9uc2USlwEKGEdldFNhbmRib3hXaXRoZHJhd0xpbWl0cxI8LnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuV2l0aGRyYXdMaW1pdHNSZXF1ZXN0Gj0udGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5XaXRoZHJhd0xpbWl0c1Jlc3BvbnNlEogBChFHZXRTYW5kYm94TWF4TG90cxI4LnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuR2V0TWF4TG90c1JlcXVlc3QaOS50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLkdldE1heExvdHNSZXNwb25zZRKRAQoUUG9zdFNhbmRib3hTdG9wT3JkZXISOy50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlBvc3RTdG9wT3JkZXJSZXF1ZXN0GjwudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5Qb3N0U3RvcE9yZGVyUmVzcG9uc2USkQEKFEdldFNhbmRib3hTdG9wT3JkZXJzEjsudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5HZXRTdG9wT3JkZXJzUmVxdWVzdBo8LnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuR2V0U3RvcE9yZGVyc1Jlc3BvbnNlEpcBChZDYW5jZWxTYW5kYm94U3RvcE9yZGVyEj0udGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5DYW5jZWxTdG9wT3JkZXJSZXF1ZXN0Gj4udGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5DYW5jZWxTdG9wT3JkZXJSZXNwb25zZUJhChxydS50aW5rb2ZmLnBpYXBpLmNvbnRyYWN0LnYxUAFaDC4vO2ludmVzdGFwaaICBVRJQVBJqgIUVGlua29mZi5JbnZlc3RBcGkuVjHKAhFUaW5rb2ZmXEludmVzdFxWMWIGcHJvdG8z", [file_common, file_orders, file_operations, file_stoporders, file_users, file_google_api_field_behavior]);
3073
+ var SandboxService = /* @__PURE__ */ serviceDesc(file_sandbox, 0);
3074
+
3075
+ // src/gen/signals_pb.ts
3076
+ var file_signals = /* @__PURE__ */ fileDesc("Cg1zaWduYWxzLnByb3RvEiV0aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxIkAKFEdldFN0cmF0ZWdpZXNSZXF1ZXN0EhgKC3N0cmF0ZWd5X2lkGAEgASgJSACIAQFCDgoMX3N0cmF0ZWd5X2lkIlwKFUdldFN0cmF0ZWdpZXNSZXNwb25zZRJDCgpzdHJhdGVnaWVzGAEgAygLMi8udGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5TdHJhdGVneSKbBQoIU3RyYXRlZ3kSGQoLc3RyYXRlZ3lfaWQYASABKAlCBOJBAQISGwoNc3RyYXRlZ3lfbmFtZRgCIAEoCUIE4kEBAhIhChRzdHJhdGVneV9kZXNjcmlwdGlvbhgDIAEoCUgAiAEBEhkKDHN0cmF0ZWd5X3VybBgEIAEoCUgBiAEBElAKDXN0cmF0ZWd5X3R5cGUYBSABKA4yMy50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlN0cmF0ZWd5VHlwZUIE4kEBAhIcCg5hY3RpdmVfc2lnbmFscxgGIAEoBUIE4kEBAhIbCg10b3RhbF9zaWduYWxzGAcgASgFQgTiQQECEh4KEHRpbWVfaW5fcG9zaXRpb24YCCABKANCBOJBAQISVAoUYXZlcmFnZV9zaWduYWxfeWllbGQYCSABKAsyMC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlF1b3RhdGlvbkIE4kEBAhJZChlhdmVyYWdlX3NpZ25hbF95aWVsZF95ZWFyGAogASgLMjAudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5RdW90YXRpb25CBOJBAQISRQoFeWllbGQYCyABKAsyMC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlF1b3RhdGlvbkIE4kEBAhJKCgp5aWVsZF95ZWFyGAwgASgLMjAudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5RdW90YXRpb25CBOJBAQJCFwoVX3N0cmF0ZWd5X2Rlc2NyaXB0aW9uQg8KDV9zdHJhdGVneV91cmwi4QQKEUdldFNpZ25hbHNSZXF1ZXN0EhYKCXNpZ25hbF9pZBgBIAEoCUgAiAEBEhgKC3N0cmF0ZWd5X2lkGAIgASgJSAGIAQESTwoNc3RyYXRlZ3lfdHlwZRgDIAEoDjIzLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuU3RyYXRlZ3lUeXBlSAKIAQESGwoOaW5zdHJ1bWVudF91aWQYBCABKAlIA4gBARItCgRmcm9tGAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgEiAEBEisKAnRvGAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgFiAEBEk4KCWRpcmVjdGlvbhgHIAEoDjI2LnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuU2lnbmFsRGlyZWN0aW9uSAaIAQESRwoGYWN0aXZlGAggASgOMjIudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5TaWduYWxTdGF0ZUgHiAEBEkAKBnBhZ2luZxgJIAEoCzIrLnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuUGFnZUgIiAEBQgwKCl9zaWduYWxfaWRCDgoMX3N0cmF0ZWd5X2lkQhAKDl9zdHJhdGVneV90eXBlQhEKD19pbnN0cnVtZW50X3VpZEIHCgVfZnJvbUIFCgNfdG9CDAoKX2RpcmVjdGlvbkIJCgdfYWN0aXZlQgkKB19wYWdpbmcimQEKEkdldFNpZ25hbHNSZXNwb25zZRI+CgdzaWduYWxzGAEgAygLMi0udGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5TaWduYWwSQwoGcGFnaW5nGAIgASgLMjMudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5QYWdlUmVzcG9uc2UimAYKBlNpZ25hbBIXCglzaWduYWxfaWQYASABKAlCBOJBAQISGQoLc3RyYXRlZ3lfaWQYAiABKAlCBOJBAQISGwoNc3RyYXRlZ3lfbmFtZRgDIAEoCUIE4kEBAhIcCg5pbnN0cnVtZW50X3VpZBgEIAEoCUIE4kEBAhIzCgljcmVhdGVfZHQYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQgTiQQECEk8KCWRpcmVjdGlvbhgGIAEoDjI2LnRpbmtvZmYucHVibGljLmludmVzdC5hcGkuY29udHJhY3QudjEuU2lnbmFsRGlyZWN0aW9uQgTiQQECEk0KDWluaXRpYWxfcHJpY2UYByABKAsyMC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlF1b3RhdGlvbkIE4kEBAhIRCgRpbmZvGAggASgJSACIAQESEgoEbmFtZRgJIAEoCUIE4kEBAhJMCgx0YXJnZXRfcHJpY2UYCiABKAsyMC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlF1b3RhdGlvbkIE4kEBAhIwCgZlbmRfZHQYCyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQgTiQQECEhgKC3Byb2JhYmlsaXR5GAwgASgFSAGIAQESRwoIc3RvcGxvc3MYDSABKAsyMC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLlF1b3RhdGlvbkgCiAEBEkoKC2Nsb3NlX3ByaWNlGA4gASgLMjAudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5RdW90YXRpb25IA4gBARIxCghjbG9zZV9kdBgPIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIBIgBAUIHCgVfaW5mb0IOCgxfcHJvYmFiaWxpdHlCCwoJX3N0b3Bsb3NzQg4KDF9jbG9zZV9wcmljZUILCglfY2xvc2VfZHQqaQoMU3RyYXRlZ3lUeXBlEh0KGVNUUkFURUdZX1RZUEVfVU5TUEVDSUZJRUQQABIbChdTVFJBVEVHWV9UWVBFX1RFQ0hOSUNBTBABEh0KGVNUUkFURUdZX1RZUEVfRlVOREFNRU5UQUwQAipoCg9TaWduYWxEaXJlY3Rpb24SIAocU0lHTkFMX0RJUkVDVElPTl9VTlNQRUNJRklFRBAAEhgKFFNJR05BTF9ESVJFQ1RJT05fQlVZEAESGQoVU0lHTkFMX0RJUkVDVElPTl9TRUxMEAIqcwoLU2lnbmFsU3RhdGUSHAoYU0lHTkFMX1NUQVRFX1VOU1BFQ0lGSUVEEAASFwoTU0lHTkFMX1NUQVRFX0FDVElWRRABEhcKE1NJR05BTF9TVEFURV9DTE9TRUQQAhIUChBTSUdOQUxfU1RBVEVfQUxMEAMyoAIKDVNpZ25hbFNlcnZpY2USigEKDUdldFN0cmF0ZWdpZXMSOy50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLkdldFN0cmF0ZWdpZXNSZXF1ZXN0GjwudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5HZXRTdHJhdGVnaWVzUmVzcG9uc2USgQEKCkdldFNpZ25hbHMSOC50aW5rb2ZmLnB1YmxpYy5pbnZlc3QuYXBpLmNvbnRyYWN0LnYxLkdldFNpZ25hbHNSZXF1ZXN0GjkudGlua29mZi5wdWJsaWMuaW52ZXN0LmFwaS5jb250cmFjdC52MS5HZXRTaWduYWxzUmVzcG9uc2VCYQoccnUudGlua29mZi5waWFwaS5jb250cmFjdC52MVABWgwuLztpbnZlc3RhcGmiAgVUSUFQSaoCFFRpbmtvZmYuSW52ZXN0QXBpLlYxygIRVGlua29mZlxJbnZlc3RcVjFiBnByb3RvMw", [file_google_protobuf_timestamp, file_google_api_field_behavior, file_common]);
3077
+ var SignalService = /* @__PURE__ */ serviceDesc(file_signals, 0);
3078
+
3079
+ // src/client/index.ts
3080
+ var TInvestApi = class {
3081
+ instruments;
3082
+ marketData;
3083
+ operations;
3084
+ orders;
3085
+ sandbox;
3086
+ signals;
3087
+ stopOrders;
3088
+ users;
3089
+ constructor(token, baseUrl = T_INVEST_PROD_URL) {
3090
+ const baseInterceptor = (next) => (req) => {
3091
+ req.header.set("Authorization", `Bearer ${token}`);
3092
+ req.header.set("x-app-name", "grind-t.tinkoff-invest-api");
3093
+ return next(req);
3094
+ };
3095
+ const transport = (0, import_connect_node.createGrpcTransport)({
3096
+ baseUrl,
3097
+ interceptors: [baseInterceptor]
3098
+ });
3099
+ this.instruments = (0, import_connect.createClient)(InstrumentsService, transport);
3100
+ this.marketData = (0, import_connect.createClient)(MarketDataService, transport);
3101
+ this.operations = (0, import_connect.createClient)(OperationsService, transport);
3102
+ this.orders = (0, import_connect.createClient)(OrdersService, transport);
3103
+ this.sandbox = (0, import_connect.createClient)(SandboxService, transport);
3104
+ this.signals = (0, import_connect.createClient)(SignalService, transport);
3105
+ this.stopOrders = (0, import_connect.createClient)(StopOrdersService, transport);
3106
+ this.users = (0, import_connect.createClient)(UsersService, transport);
3107
+ }
3108
+ };
3109
+ // Annotate the CommonJS export names for ESM import in node:
3110
+ 0 && (module.exports = {
3111
+ TInvestApi,
3112
+ T_INVEST_PROD_URL,
3113
+ T_INVEST_SANDBOX_URL
3114
+ });