@vertexvis/viewer 0.13.2-canary.35 → 0.13.2-canary.36

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.
@@ -4563,7 +4563,7 @@ proto.vertexvis.protobuf.scenetree.v1alpha1.FilterResponse.prototype.toObject =
4563
4563
  */
4564
4564
  proto.vertexvis.protobuf.scenetree.v1alpha1.FilterResponse.toObject = function(includeInstance, msg) {
4565
4565
  var obj = {
4566
-
4566
+ numberOfResults: grpcWebClient_umd.googleProtobuf.Message.getFieldWithDefault(msg, 1, 0)
4567
4567
  };
4568
4568
 
4569
4569
  if (includeInstance) {
@@ -4600,6 +4600,10 @@ proto.vertexvis.protobuf.scenetree.v1alpha1.FilterResponse.deserializeBinaryFrom
4600
4600
  }
4601
4601
  var field = reader.getFieldNumber();
4602
4602
  switch (field) {
4603
+ case 1:
4604
+ var value = /** @type {number} */ (reader.readUint32());
4605
+ msg.setNumberOfResults(value);
4606
+ break;
4603
4607
  default:
4604
4608
  reader.skipField();
4605
4609
  break;
@@ -4628,6 +4632,29 @@ proto.vertexvis.protobuf.scenetree.v1alpha1.FilterResponse.prototype.serializeBi
4628
4632
  * @suppress {unusedLocalVariables} f is only used for nested messages
4629
4633
  */
4630
4634
  proto.vertexvis.protobuf.scenetree.v1alpha1.FilterResponse.serializeBinaryToWriter = function(message, writer) {
4635
+ var f = undefined;
4636
+ f = message.getNumberOfResults();
4637
+ if (f !== 0) {
4638
+ writer.writeUint32(
4639
+ 1,
4640
+ f
4641
+ );
4642
+ }
4643
+ };
4644
+
4645
+
4646
+ /**
4647
+ * optional uint32 number_of_results = 1;
4648
+ * @return {number}
4649
+ */
4650
+ proto.vertexvis.protobuf.scenetree.v1alpha1.FilterResponse.prototype.getNumberOfResults = function() {
4651
+ return /** @type {number} */ (grpcWebClient_umd.googleProtobuf.Message.getFieldWithDefault(this, 1, 0));
4652
+ };
4653
+
4654
+
4655
+ /** @param {number} value */
4656
+ proto.vertexvis.protobuf.scenetree.v1alpha1.FilterResponse.prototype.setNumberOfResults = function(value) {
4657
+ grpcWebClient_umd.googleProtobuf.Message.setProto3IntField(this, 1, value);
4631
4658
  };
4632
4659
 
4633
4660
 
@@ -6579,6 +6606,7 @@ class SceneTreeController {
6579
6606
  this.onStateChange = new browser_esm.EventDispatcher();
6580
6607
  this.state = {
6581
6608
  totalRows: 0,
6609
+ totalFilteredRows: 0,
6582
6610
  rows: [],
6583
6611
  connection: { type: 'disconnected' },
6584
6612
  };
@@ -6596,6 +6624,15 @@ class SceneTreeController {
6596
6624
  get isConnected() {
6597
6625
  return this.state.connection.type === 'connected';
6598
6626
  }
6627
+ /**
6628
+ * Registers an event listener that will be invoked when the state changes
6629
+ *
6630
+ * @param listener The listener to add.
6631
+ * @returns A disposable that can be used to remove the listener.
6632
+ */
6633
+ stateChanged(listener) {
6634
+ return this.onStateChange.on(listener);
6635
+ }
6599
6636
  async connect(jwtProvider) {
6600
6637
  const { connection } = this.state;
6601
6638
  const jwt = jwtProvider();
@@ -6700,6 +6737,7 @@ class SceneTreeController {
6700
6737
  sceneViewId: connection.sceneViewId,
6701
6738
  },
6702
6739
  totalRows: reset ? 0 : this.state.totalRows,
6740
+ totalFilteredRows: reset ? 0 : this.state.totalFilteredRows,
6703
6741
  rows: reset ? [] : this.state.rows,
6704
6742
  });
6705
6743
  }
@@ -6853,8 +6891,8 @@ class SceneTreeController {
6853
6891
  * @param options The options to apply to the filter.
6854
6892
  */
6855
6893
  async filter(term, options = {}) {
6856
- await this.ifConnectionHasJwt((jwt) => {
6857
- return this.requestUnary(jwt, (metadata, handler) => {
6894
+ return this.ifConnectionHasJwt(async (jwt) => {
6895
+ const res = await this.requestUnary(jwt, (metadata, handler) => {
6858
6896
  var _a;
6859
6897
  const req = new scene_tree_api_pb.FilterRequest();
6860
6898
  req.setFilter(term);
@@ -6863,6 +6901,8 @@ class SceneTreeController {
6863
6901
  req.setColumnsKeysList(options.columns);
6864
6902
  this.client.filter(req, metadata, handler);
6865
6903
  });
6904
+ const { numberOfResults } = res.toObject();
6905
+ this.updateState(Object.assign(Object.assign({}, this.state), { totalFilteredRows: numberOfResults }));
6866
6906
  });
6867
6907
  }
6868
6908
  /**
@@ -7029,7 +7069,7 @@ class SceneTreeController {
7029
7069
  const end = this.state.rows.slice(start.length + fetchedRows.length, totalRows);
7030
7070
  const fill = new Array(Math.max(0, totalRows - start.length - fetchedRows.length - end.length));
7031
7071
  const rows = [...start, ...fetchedRows, ...end, ...fill];
7032
- this.updateState(Object.assign(Object.assign({}, this.state), { totalRows, rows }));
7072
+ this.updateState(Object.assign(Object.assign({}, this.state), { totalRows: totalRows, rows: rows }));
7033
7073
  }
7034
7074
  }
7035
7075
  catch (e) {
@@ -27,6 +27,7 @@ export class SceneTreeController {
27
27
  this.onStateChange = new EventDispatcher();
28
28
  this.state = {
29
29
  totalRows: 0,
30
+ totalFilteredRows: 0,
30
31
  rows: [],
31
32
  connection: { type: 'disconnected' },
32
33
  };
@@ -44,6 +45,15 @@ export class SceneTreeController {
44
45
  get isConnected() {
45
46
  return this.state.connection.type === 'connected';
46
47
  }
48
+ /**
49
+ * Registers an event listener that will be invoked when the state changes
50
+ *
51
+ * @param listener The listener to add.
52
+ * @returns A disposable that can be used to remove the listener.
53
+ */
54
+ stateChanged(listener) {
55
+ return this.onStateChange.on(listener);
56
+ }
47
57
  async connect(jwtProvider) {
48
58
  const { connection } = this.state;
49
59
  const jwt = jwtProvider();
@@ -148,6 +158,7 @@ export class SceneTreeController {
148
158
  sceneViewId: connection.sceneViewId,
149
159
  },
150
160
  totalRows: reset ? 0 : this.state.totalRows,
161
+ totalFilteredRows: reset ? 0 : this.state.totalFilteredRows,
151
162
  rows: reset ? [] : this.state.rows,
152
163
  });
153
164
  }
@@ -301,8 +312,8 @@ export class SceneTreeController {
301
312
  * @param options The options to apply to the filter.
302
313
  */
303
314
  async filter(term, options = {}) {
304
- await this.ifConnectionHasJwt((jwt) => {
305
- return this.requestUnary(jwt, (metadata, handler) => {
315
+ return this.ifConnectionHasJwt(async (jwt) => {
316
+ const res = await this.requestUnary(jwt, (metadata, handler) => {
306
317
  var _a;
307
318
  const req = new FilterRequest();
308
319
  req.setFilter(term);
@@ -311,6 +322,8 @@ export class SceneTreeController {
311
322
  req.setColumnsKeysList(options.columns);
312
323
  this.client.filter(req, metadata, handler);
313
324
  });
325
+ const { numberOfResults } = res.toObject();
326
+ this.updateState(Object.assign(Object.assign({}, this.state), { totalFilteredRows: numberOfResults }));
314
327
  });
315
328
  }
316
329
  /**
@@ -477,7 +490,7 @@ export class SceneTreeController {
477
490
  const end = this.state.rows.slice(start.length + fetchedRows.length, totalRows);
478
491
  const fill = new Array(Math.max(0, totalRows - start.length - fetchedRows.length - end.length));
479
492
  const rows = [...start, ...fetchedRows, ...end, ...fill];
480
- this.updateState(Object.assign(Object.assign({}, this.state), { totalRows, rows }));
493
+ this.updateState(Object.assign(Object.assign({}, this.state), { totalRows: totalRows, rows: rows }));
481
494
  }
482
495
  }
483
496
  catch (e) {
@@ -594,4 +607,4 @@ export class SceneTreeController {
594
607
  }
595
608
  SceneTreeController.IDLE_RECONNECT_IN_SECONDS = 4 * 60;
596
609
  SceneTreeController.LOST_CONNECTION_RECONNECT_IN_SECONDS = 2;
597
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3NjZW5lLXRyZWUvbGliL2NvbnRyb2xsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUNqRixPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFFeEUsT0FBTyxFQUNMLGtCQUFrQixFQUNsQixtQkFBbUIsRUFDbkIsZ0JBQWdCLEVBQ2hCLGlCQUFpQixFQUNqQixhQUFhLEVBQ2IsMEJBQTBCLEVBRTFCLHVCQUF1QixFQUV2QixjQUFjLEVBRWQsaUJBQWlCLEVBRWpCLGdCQUFnQixHQUVqQixNQUFNLGlFQUFpRSxDQUFDO0FBTXpFLE9BQU8sRUFBYyxlQUFlLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUcvRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDckUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUMzQyxPQUFPLEVBQUUsYUFBYSxFQUFPLE1BQU0sT0FBTyxDQUFDO0FBc0UzQzs7OztHQUlHO0FBQ0gsTUFBTSxPQUFPLG1CQUFtQjtFQXFDOUIsWUFDVSxNQUEwQixFQUMxQixRQUFnQixFQUNoQixpQkFBaUMsRUFBRTtJQUZuQyxXQUFNLEdBQU4sTUFBTSxDQUFvQjtJQUMxQixhQUFRLEdBQVIsUUFBUSxDQUFRO0lBQ2hCLG1CQUFjLEdBQWQsY0FBYyxDQUFxQjtJQXBDckMsZUFBVSxHQUFHLENBQUMsQ0FBQztJQUNmLFVBQUssR0FBRyxJQUFJLEdBQUcsRUFBZ0IsQ0FBQztJQUNoQyxtQkFBYyxHQUFH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
610
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3NjZW5lLXRyZWUvbGliL2NvbnRyb2xsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUNqRixPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFFeEUsT0FBTyxFQUNMLGtCQUFrQixFQUNsQixtQkFBbUIsRUFDbkIsZ0JBQWdCLEVBQ2hCLGlCQUFpQixFQUNqQixhQUFhLEVBRWIsMEJBQTBCLEVBRTFCLHVCQUF1QixFQUV2QixjQUFjLEVBRWQsaUJBQWlCLEVBRWpCLGdCQUFnQixHQUVqQixNQUFNLGlFQUFpRSxDQUFDO0FBTXpFLE9BQU8sRUFBYyxlQUFlLEVBQVksTUFBTSxrQkFBa0IsQ0FBQztBQUd6RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDckUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUMzQyxPQUFPLEVBQUUsYUFBYSxFQUFPLE1BQU0sT0FBTyxDQUFDO0FBdUUzQzs7OztHQUlHO0FBQ0gsTUFBTSxPQUFPLG1CQUFtQjtFQXVDOUIsWUFDVSxNQUEwQixFQUMxQixRQUFnQixFQUNoQixpQkFBaUMsRUFBRTtJQUZuQyxXQUFNLEdBQU4sTUFBTSxDQUFvQjtJQUMxQixhQUFRLEdBQVIsUUFBUSxDQUFRO0lBQ2hCLG1CQUFjLEdBQWQsY0FBYyxDQUFxQjtJQXRDckMsZUFBVSxHQUFHLENBQUMsQ0FBQztJQUNmLFVBQUssR0FBRyxJQUFJLEdBQUcsRUFBZ0IsQ0FBQztJQUNoQyxtQkFBYyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3hCLGlCQUFZLEdBQWtCLEVBQUUsQ0FBQztJQUl6Qzs7T0FFRztJQUNJLGtCQUFhLEdBQUcsSUFBSSxlQUFlLEVBQWtCLENBQUM7SUFFckQsVUFBSyxHQUFtQjtNQUM5QixTQUFTLEVBQUUsQ0FBQztNQUNaLGlCQUFpQixFQUFFLENBQUM7TUFFcEIsSUFBSSxFQUFFLEVBQUU7TUFDUixVQUFVLEVBQUUsRUFBRSxJQUFJLEVBQUUsY0FBYyxFQUFFO0tBQ3JDLENBQUM7RUFxQkMsQ0FBQztFQW5CSjs7S0FFRztFQUNILElBQVcsZ0JBQWdCO0lBQ3pCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7RUFDekIsQ0FBQztFQUVEOzs7S0FHRztFQUNILElBQVcsV0FBVztJQUNwQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLElBQUksS0FBSyxXQUFXLENBQUM7RUFDcEQsQ0FBQztFQVFEOzs7OztLQUtHO0VBQ0ksWUFBWSxDQUNqQixRQUE4QztJQUU5QyxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0VBQ3pDLENBQUM7RUFFTSxLQUFLLENBQUMsT0FBTyxDQUFDLFdBQXdCO0lBQzNDLE1BQU0sRUFBRSxVQUFVLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ2xDLE1BQU0sR0FBRyxHQUFHLFdBQVcsRUFBRSxDQUFDO0lBRTFCLElBQUksR0FBRyxJQUFJLElBQUksRUFBRTtNQUNmLE1BQU0sSUFBSSxLQUFLLENBQUMsNkNBQTZDLENBQUMsQ0FBQztLQUNoRTtJQUVELE1BQU0sRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLEdBQUcsa0JBQWtCLENBQUMsR0FBRyxDQUFDLENBQUM7SUFFdEQsSUFBSSxVQUFVLENBQUMsV0FBVyxLQUFLLFdBQVcsRUFBRTtNQUMxQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO0tBQ3ZCO1NBQU07TUFDTCxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQ3hCO0lBRUQsTUFBTSxVQUFVLEdBQW9CO01BQ2xDLElBQUksRUFBRSxZQUFZO01BQ2xCLFdBQVc7TUFDWCxXQUFXO0tBQ1osQ0FBQztJQUNGLElBQUksQ0FBQyxXQUFXLGlDQUFNLElBQUksQ0FBQyxLQUFLLEtBQUUsVUFBVSxFQUFFLFVBQVUsSUFBRyxDQUFDO0lBRTVELElBQUk7TUFDRixPQUFPLENBQUMsS0FBSyxDQUFDLG1DQUFtQyxDQUFDLENBQUM7TUFFbkQsTUFBTSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO01BRXhCLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO01BQ3RDLE1BQU0sQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxpQ0FBaUMsRUFBRSxDQUFDLENBQUM7TUFFakUsSUFBSSxDQUFDLFdBQVcsaUNBQ1gsSUFBSSxDQUFDLEtBQUssS0FDYixVQUFVLGtDQUNMLFVBQVUsS0FDYixJQUFJLEVBQUUsV0FBVyxFQUNqQixZQUFZLEVBQUUsRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxFQUFFLE9BRWxELENBQUM7S0FDSjtJQUFDLE9BQU8sQ0FBQyxFQUFFO01BQ1YsSUFBSSxDQUFDLFdBQVcsaUNBQ1gsSUFBSSxDQUFDLEtBQUssS0FDYixVQUFVLEVBQUU7VUFDVixJQUFJLEVBQUUsU0FBUztVQUNmLFdBQVc7VUFDWCxXQUFXO1VBQ1gsT0FBTyxFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUM7U0FDcEMsSUFDRCxDQUFDO01BQ0gsTUFBTSxDQUFDLENBQUM7S0FDVDtJQUVELElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO0lBRS9CLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO01BQ2hDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO0tBQ3pDO0VBQ0gsQ0FBQztFQUVPLG1CQUFtQjtJQUN6QixJQUFJLElBQUksQ0FBQyxjQUFjLElBQUksSUFBSSxFQUFFO01BQy9CLE1BQU0sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0tBQzFDO0VBQ0gsQ0FBQztFQUVPLHVCQUF1QjtJQUM3QixJQUFJLENBQUMsbUJBQW1CLENBQ3RCLElBQUksQ0FBQyxjQUFjLENBQUMsc0JBQXNCO01BQ3hDLG1CQUFtQixDQUFDLHlCQUF5QixDQUNoRCxDQUFDO0VBQ0osQ0FBQztFQUVPLGlDQUFpQztJQUN2QyxJQUFJLENBQUMsbUJBQW1CLENBQ3RCLElBQUksQ0FBQyxjQUFjLENBQUMsZ0NBQWdDO01BQ2xELG1CQUFtQixDQUFDLG9DQUFvQyxDQUMzRCxDQUFDO0VBQ0osQ0FBQztFQUVPLG1CQUFtQixDQUFDLGNBQXNCO0lBQ2hELElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO0lBRTNCLElBQUksQ0FBQyxjQUFjLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7TUFDM0MsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEtBQUssV0FBVyxFQUFFO1FBQzlDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUM7T0FDakQ7SUFDSCxDQUFDLEVBQUUsY0FBYyxHQUFHLElBQUksQ0FBQyxDQUFDO0VBQzVCLENBQUM7RUFFTSxlQUFlLENBQUMsTUFBK0I7SUFDcEQsTUFBTSxvQkFBb0IsR0FBRyxLQUFLLElBQW1CLEVBQUU7TUFDckQsSUFBSSxNQUFNLENBQUMsS0FBSyxJQUFJLElBQUksRUFBRTtRQUN4QixPQUFPLENBQUMsS0FBSyxDQUNYLGdFQUFnRSxDQUNqRSxDQUFDO1FBRUYsSUFBSTtVQUNGLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDeEM7UUFBQyxPQUFPLENBQUMsRUFBRTtVQUNWLE9BQU8sQ0FBQyxLQUFLLENBQUMseUNBQXlDLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDN0Q7T0FDRjtJQUNILENBQUMsQ0FBQztJQUVGLE1BQU0sZ0JBQWdCLEdBQUcsR0FBUyxFQUFFO01BQ2xDLE9BQU8sQ0FBQyxLQUFLLENBQUMsNENBQTRDLENBQUMsQ0FBQztNQUM1RCxvQkFBb0IsRUFBRSxDQUFDO0lBQ3pCLENBQUMsQ0FBQztJQUVGLG9CQUFvQixFQUFFLENBQUM7SUFFdkIsTUFBTSxDQUFDLGdCQUFnQixDQUFDLFlBQVksRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ3hELE9BQU87TUFDTCxPQUFPLEVBQUUsR0FBRyxFQUFFO1FBQ1osTUFBTSxDQUFDLG1CQUFtQixDQUFDLFlBQVksRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO1FBQzNELElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztNQUNwQixDQUFDO0tBQ0YsQ0FBQztFQUNKLENBQUM7RUFFTSxVQUFVLENBQUMsS0FBSyxHQUFHLEtBQUs7SUFDN0IsT0FBTyxDQUFDLEtBQUssQ0FBQyw4Q0FBOEMsS0FBSyxHQUFHLENBQUMsQ0FBQztJQUV0RSxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztJQUUzQixJQUFJLEtBQUssRUFBRTtNQUNULElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7TUFDbkIsSUFBSSxDQUFDLGNBQWMsR0FBRyxFQUFFLENBQUM7S0FDMUI7SUFFRCxNQUFNLEVBQUUsVUFBVSxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNsQyxJQUFJLFVBQVUsQ0FBQyxJQUFJLEtBQUssV0FBVyxFQUFFO01BQ25DLFVBQVUsQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLENBQUM7S0FDbkM7SUFFRCxJQUFJLENBQUMsV0FBVyxDQUFDO01BQ2YsVUFBVSxFQUFFO1FBQ1YsSUFBSSxFQUFFLGNBQWM7UUFDcEIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxXQUFXO1FBQ25DLFdBQVcsRUFBRSxVQUFVLENBQUMsV0FBVztPQUNwQztNQUNELFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTO01BQzNDLGlCQUFpQixFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGlCQUFpQjtNQUMzRCxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSTtLQUNuQyxDQUFDLENBQUM7RUFDTCxDQUFDO0VBRUQ7Ozs7S0FJRztFQUNJLEtBQUssQ0FBQyxZQUFZLENBQUMsRUFBVTtJQUNsQyxPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLEVBQUU7TUFDM0MsTUFBTSxNQUFNLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztNQUMxQixNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO01BRWxCLE1BQU0sR0FBRyxHQUFHLElBQUksbUJBQW1CLEVBQUUsQ0FBQztNQUN0QyxHQUFHLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO01BRXRCLE1BQU0sSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxRQUFRLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FDakQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsR0FBRyxFQUFFLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FDakQsQ0FBQztJQUNKLENBQUMsQ0FBQyxDQUFDO0VBQ0wsQ0FBQztFQUVEOzs7O0tBSUc7RUFDSSxLQUFLLENBQUMsVUFBVSxDQUFDLEVBQVU7SUFDaEMsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxFQUFFO01BQzNDLE1BQU0sTUFBTSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7TUFDMUIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztNQUVsQixNQUFNLEdBQUcsR0FBRyxJQUFJLGlCQUFpQixFQUFFLENBQUM7TUFDcEMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztNQUV0QixNQUFNLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxFQUFFLENBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQ2pELElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQy9DLENBQUM7SUFDSixDQUFDLENBQUMsQ0FBQztFQUNMLENBQUM7RUFFRDs7S0FFRztFQUNJLEtBQUssQ0FBQyxXQUFXO0lBQ3RCLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsRUFBRTtNQUMzQyxNQUFNLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxFQUFFLENBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQ2pELElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLElBQUksa0JBQWtCLEVBQUUsRUFBRSxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQ3JFLENBQUM7SUFDSixDQUFDLENBQUMsQ0FBQztFQUNMLENBQUM7RUFFRDs7S0FFRztFQUNJLEtBQUssQ0FBQyxTQUFTO0lBQ3BCLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsRUFBRTtNQUMzQyxNQUFNLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxFQUFFLENBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQ2pELElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLElBQUksZ0JBQWdCLEVBQUUsRUFBRSxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQ2pFLENBQUM7SUFDSixDQUFDLENBQUMsQ0FBQztFQUNMLENBQUM7RUFFRDs7Ozs7OztLQU9HO0VBQ0ksS0FBSyxDQUFDLGlCQUFpQixDQUFDLEVBQVU7SUFDdkMsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxFQUFFO01BQzNDLE1BQU0sTUFBTSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7TUFDMUIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztNQUVsQixNQUFNLEdBQUcsR0FBRyxJQUFJLGlCQUFpQixFQUFFLENBQUM7TUFDcEMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztNQUV0QixNQUFNLEdBQUcsR0FBRyxNQUFNLElBQUksQ0FBQyxZQUFZLENBQ2pDLEdBQUcsRUFDSCxDQUFDLFFBQVEsRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQ3RFLENBQUM7TUFDRixNQUFNLEVBQUUsY0FBYyxFQUFFLFlBQVksRUFBRSxHQUFHLEdBQUcsQ0FBQyxRQUFRLEVBQUUsQ0FBQztNQUV4RCxJQUFJLGNBQWMsRUFBRTtRQUNsQixJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDOUIsTUFBTSxJQUFJLENBQUMsOEJBQThCLEVBQUUsQ0FBQztPQUM3QztNQUVELElBQUksWUFBWSxJQUFJLElBQUksRUFBRTtRQUN4QixNQUFNLElBQUksS0FBSyxDQUFDLGtEQUFrRCxDQUFDLENBQUM7T0FDckU7TUFFRCxPQUFPLFlBQVksQ0FBQyxLQUFLLENBQUM7SUFDNUIsQ0FBQyxDQUFDLENBQUM7RUFDTCxDQUFDO0VBRU0sS0FBSyxDQUFDLGtCQUFrQixDQUFDLE1BQWM7SUFDNUMsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxFQUFFO01BQzNDLE1BQU0sUUFBUSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7TUFDNUIsUUFBUSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztNQUN4QixNQUFNLEdBQUcsR0FBRyxJQUFJLHVCQUF1QixFQUFFLENBQUM7TUFDMUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQztNQUV4QixNQUFNLEdBQUcsR0FBRyxNQUFNLElBQUksQ0FBQyxZQUFZLENBQ2pDLEdBQUcsRUFDSCxDQUFDLFFBQVEsRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUNwQixJQUFJLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsRUFBRSxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQ3ZELENBQUM7TUFFRixPQUFPLEdBQUcsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxTQUFTLENBQUM7SUFDbEMsQ0FBQyxDQUFDLENBQUM7RUFDTCxDQUFDO0VBRUQ7Ozs7Ozs7OztLQVNHO0VBQ0ksS0FBSyxDQUFDLFNBQVMsQ0FBQyxLQUFhO0lBQ2xDLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsRUFBRTs7TUFDM0MsSUFBSSxLQUFLLEdBQUcsQ0FBQyxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsRUFBRTtRQUMxQyxPQUFPO09BQ1I7TUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUU7UUFDMUIsTUFBTSxNQUFNLEdBQUcsS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDckMsT0FBTyxDQUFDLEtBQUssQ0FBQywwQkFBMEIsRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDekQsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUN2RCxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDN0IsTUFBTSxJQUFJLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ2pFLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztRQUM1QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUM7T0FDN0I7TUFFRCxNQUFNLENBQUEsTUFBQSxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsMENBQUUsR0FBRyxDQUFBLENBQUM7SUFDbkMsQ0FBQyxDQUFDLENBQUM7RUFDTCxDQUFDO0VBRUQ7Ozs7S0FJRztFQUNJLGlCQUFpQixDQUFDLE1BQWM7SUFDckMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2hELE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztFQUM5QixDQUFDO0VBRUQ7Ozs7O0tBS0c7RUFDSSxLQUFLLENBQUMsVUFBVSxDQUNyQixXQUFtQixFQUNuQixTQUFpQjtJQUVqQixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDMUQsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3RELE1BQU0sQ0FBQyxZQUFZLEVBQUUsVUFBVSxDQUFDLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUN4RCxTQUFTLEVBQ1QsT0FBTyxDQUNSLENBQUM7SUFDRixNQUFNLFNBQVMsR0FBRyxVQUFVLEdBQUcsWUFBWSxHQUFHLENBQUMsQ0FBQztJQUNoRCxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQ2YsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FDekUsQ0FBQztFQUNKLENBQUM7RUFFRDs7S0FFRztFQUNJLEtBQUssQ0FBQyxpQkFBaUI7SUFDNUIsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxFQUFFO01BQzNDLE1BQU0sR0FBRyxHQUFHLE1BQU0sSUFBSSxDQUFDLFlBQVksQ0FDakMsR0FBRyxFQUNILENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxFQUFFO1FBQ2hCLE1BQU0sR0FBRyxHQUFHLElBQUksMEJBQTBCLEVBQUUsQ0FBQztRQUM3QyxJQUFJLENBQUMsTUFBTSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7TUFDdEQsQ0FBQyxDQUNGLENBQUM7TUFFRixPQUFPLEdBQUcsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQzVELENBQUMsQ0FBQyxDQUFDO0VBQ0wsQ0FBQztFQUVEOzs7Ozs7S0FNRztFQUNJLEtBQUssQ0FBQyxNQUFNLENBQ2pCLElBQVksRUFDWixVQUE2QixFQUFFO0lBRS9CLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsRUFBRTtNQUMzQyxNQUFNLEdBQUcsR0FBRyxNQUFNLElBQUksQ0FBQyxZQUFZLENBQ2pDLEdBQUcsRUFDSCxDQUFDLFFBQVEsRUFBRSxPQUFPLEVBQUUsRUFBRTs7UUFDcEIsTUFBTSxHQUFHLEdBQUcsSUFBSSxhQUFhLEVBQUUsQ0FBQztRQUNoQyxHQUFHLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3BCLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQyxNQUFBLE9BQU8sQ0FBQyxnQkFBZ0IsbUNBQUksSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUM7UUFDN0QsSUFBSSxPQUFPLENBQUMsT0FBTztVQUFFLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFN0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQztNQUM3QyxDQUFDLENBQ0YsQ0FBQztNQUVGLE1BQU0sRUFBRSxlQUFlLEVBQUUsR0FBRyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUM7TUFFM0MsSUFBSSxDQUFDLFdBQVcsaUNBQ1gsSUFBSSxDQUFDLEtBQUssS0FDYixpQkFBaUIsRUFBRSxlQUFlLElBQ2xDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztFQUNMLENBQUM7RUFFRDs7Ozs7S0FLRztFQUNJLFlBQVksQ0FBQyxLQUFhO0lBQy9CLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7RUFDL0IsQ0FBQztFQUVEOzs7Ozs7S0FNRztFQUNJLHVCQUF1QixDQUFDLEtBQWEsRUFBRSxHQUFXO0lBQ3ZELE1BQU0sQ0FBQyxZQUFZLEVBQUUsVUFBVSxDQUFDLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQztJQUN2RSxNQUFNLFNBQVMsR0FBRyxVQUFVLEdBQUcsWUFBWSxHQUFHLENBQUMsQ0FBQztJQUNoRCxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLENBQUM7T0FDckMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsWUFBWSxHQUFHLENBQUMsQ0FBQztPQUMvQixNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0VBQ2hELENBQUM7RUFFRDs7Ozs7S0FLRztFQUNJLE9BQU8sQ0FBQyxLQUFhO0lBQzFCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7RUFDL0IsQ0FBQztFQUVEOzs7Ozs7Ozs7O0tBVUc7RUFDSSwyQkFBMkIsQ0FDaEMsU0FBaUIsRUFDakIsT0FBZSxFQUNmLFNBQVMsR0FBRyxDQUFDO0lBRWIsTUFBTSxDQUFDLFlBQVksRUFBRSxVQUFVLENBQUMsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQ3hELFNBQVMsRUFDVCxPQUFPLENBQ1IsQ0FBQztJQUNGLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLEdBQUcsWUFBWSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ3hFLElBQUksSUFBSSxDQUFDLGdCQUFnQixHQUFHLGdCQUFnQixFQUFFO01BQzVDLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1FBQ3hELE1BQU0sUUFBUSxHQUNaLEtBQUssR0FBRyxZQUFZLENBQUMsQ0FBQyxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxVQUFVLENBQUM7UUFDbkUsT0FBTyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsQ0FBQztNQUM3QixDQUFDLENBQUMsQ0FBQztNQUNILE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQztNQUVqRSxVQUFVO1NBQ1AsS0FBSyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsTUFBTSxHQUFHLFNBQVMsQ0FBQztTQUNsQyxPQUFPLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7TUFFdEQsT0FBTyxDQUFDLEtBQUssQ0FDWCxzQkFBc0IsS0FBSyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsZ0JBQWdCLFFBQVEsRUFDbEUsSUFBSSxDQUFDLEtBQUssQ0FDWCxDQUFDO0tBQ0g7RUFDSCxDQUFDO0VBRU0sZUFBZSxDQUFDLElBQW1CO0lBQ3hDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO0lBRXpCLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsSUFBSSxLQUFLLFdBQVcsRUFBRTtNQUM5QyxNQUFNLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUM7TUFDekMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxDQUFDO01BQzlCLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQztLQUM5QztTQUFNO01BQ0wsT0FBTyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7S0FDMUI7RUFDSCxDQUFDO0VBRUQ7Ozs7Ozs7O0tBUUc7RUFDSSxLQUFLLENBQUMsb0JBQW9CLENBQUMsS0FBYSxFQUFFLEdBQVc7SUFDMUQsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQzNELE1BQU0sSUFBSSxDQUFDLDhCQUE4QixFQUFFLENBQUM7RUFDOUMsQ0FBQztFQUVEOzs7S0FHRztFQUNLLFNBQVM7SUFDZixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO01BQ3JDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxRQUFRLEVBQUUsRUFBRTtRQUN4RCxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFJLGdCQUFnQixFQUFFLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDcEUsT0FBTyxHQUFHLENBQUM7TUFDYixDQUFDLENBQUMsQ0FBQztNQUVILE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUU7UUFDeEIsSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUM7UUFFL0IsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLEdBQUcsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUVsQyxJQUFJLENBQUEsTUFBTSxhQUFOLE1BQU0sdUJBQU4sTUFBTSxDQUFFLFVBQVUsS0FBSSxJQUFJLEVBQUU7VUFDOUIsT0FBTyxDQUFDLEtBQUssQ0FBQyxzQkFBc0IsRUFBRSxNQUFNLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1VBQy9ELElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1VBQ3BELElBQUksQ0FBQyw4QkFBOEIsRUFBRSxDQUFDO1NBQ3ZDO1FBRUQsTUFBTSxFQUNKLFVBQVUsR0FBRyxFQUFFLEVBQ2YsU0FBUyxHQUFHLEVBQUUsRUFDZCxvQkFBb0IsR0FBRyxFQUFFLEVBQ3pCLGNBQWMsR0FBRyxFQUFFLEVBQ25CLFlBQVksR0FBRyxFQUFFLEdBQ2xCLEdBQUcsQ0FBQSxNQUFNLGFBQU4sTUFBTSx1QkFBTixNQUFNLENBQUUsTUFBTSxLQUFJLEVBQUUsQ0FBQztRQUV6QixJQUFJLG9CQUFvQixDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7VUFDbkMsT0FBTyxDQUFDLEtBQUssQ0FDWCx5Q0FBeUMsRUFDekMsb0JBQW9CLENBQ3JCLENBQUM7VUFFRixvQkFBb0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQzlDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7WUFDeEMsZ0JBQWdCLEVBQUUsSUFBSTtXQUN2QixDQUFDLENBQUMsQ0FDSixDQUFDO1NBQ0g7UUFFRCxJQUFJLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1VBQ3pCLE9BQU8sQ0FBQyxLQUFLLENBQUMsNkJBQTZCLEVBQUUsVUFBVSxDQUFDLENBQUM7VUFFekQsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FDcEMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztZQUN4QyxPQUFPLEVBQUUsS0FBSztZQUNkLGdCQUFnQixFQUFFLEtBQUs7V0FDeEIsQ0FBQyxDQUFDLENBQ0osQ0FBQztTQUNIO1FBRUQsSUFBSSxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtVQUN4QixPQUFPLENBQUMsS0FBSyxDQUFDLDRCQUE0QixFQUFFLFNBQVMsQ0FBQyxDQUFDO1VBRXZELFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQ25DLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7WUFDeEMsT0FBTyxFQUFFLElBQUk7WUFDYixnQkFBZ0IsRUFBRSxLQUFLO1dBQ3hCLENBQUMsQ0FBQyxDQUNKLENBQUM7U0FDSDtRQUVELElBQUksY0FBYyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7VUFDN0IsT0FBTyxDQUFDLEtBQUssQ0FBQyxpQ0FBaUMsRUFBRSxjQUFjLENBQUMsQ0FBQztVQUVqRSxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxDQUN4QyxJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FDaEUsQ0FBQztTQUNIO1FBRUQsSUFBSSxZQUFZLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtVQUMzQixPQUFPLENBQUMsS0FBSyxDQUFDLCtCQUErQixFQUFFLFlBQVksQ0FBQyxDQUFDO1VBRTdELFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQ3RDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUMvRCxDQUFDO1NBQ0g7TUFDSCxDQUFDLENBQUMsQ0FBQztNQUVILE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUMsQ0FBQyxDQUFDO0VBQ0wsQ0FBQztFQUVPLEtBQUssQ0FBQyw4QkFBOEI7SUFDMUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQ3RELElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLEVBQ3RCLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQ3ZCLENBQUM7SUFFRixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsdUJBQXVCLENBQUMsU0FBUyxHQUFHLENBQUMsRUFBRSxPQUFPLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDdkUsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0VBQy9ELENBQUM7RUFFTyxpQkFBaUIsQ0FDdkIsS0FBYSxFQUNiLEdBQVcsRUFDWCxTQUEwRDtJQUUxRCxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUk7T0FDaEMsS0FBSyxDQUFDLEtBQUssRUFBRSxHQUFHLEdBQUcsQ0FBQyxDQUFDO09BQ3JCLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQ1gsR0FBRyxJQUFJLElBQUk7TUFDVCxDQUFDLGlDQUFNLEdBQUcsS0FBRSxJQUFJLGtDQUFPLEdBQUcsQ0FBQyxJQUFJLEdBQUssU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FDdkQsQ0FBQyxDQUFDLEdBQUcsQ0FDUixDQUFDO0lBRUosTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNsRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQy9DLE1BQU0sSUFBSSxHQUFHLENBQUMsR0FBRyxTQUFTLEVBQUUsR0FBRyxXQUFXLEVBQUUsR0FBRyxPQUFPLENBQUMsQ0FBQztJQUV4RCxJQUFJLENBQUMsV0FBVyxpQ0FBTSxJQUFJLENBQUMsS0FBSyxLQUFFLElBQUksSUFBRyxDQUFDO0VBQzVDLENBQUM7RUFFTyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsSUFBVTs7SUFDdkMsSUFBSTtNQUNGLE1BQU0sR0FBRyxHQUFHLE1BQU0sSUFBSSxDQUFDLEdBQUcsQ0FBQztNQUUzQixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztNQUM3QywrREFBK0Q7TUFDL0QsSUFBSSxDQUFBLFdBQVcsYUFBWCxXQUFXLHVCQUFYLFdBQVcsQ0FBRSxFQUFFLE1BQUssSUFBSSxDQUFDLEVBQUUsRUFBRTtRQUMvQixNQUFNLE1BQU0sR0FBRyxHQUFHLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDL0IsTUFBTSxTQUFTLEdBQUcsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBRXJDLE1BQU0sU0FBUyxHQUFHLE1BQUEsTUFBTSxhQUFOLE1BQU0sdUJBQU4sTUFBTSxDQUFFLFFBQVEsRUFBRSxtQ0FBSSxDQUFDLENBQUM7UUFDMUMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQzFDLE1BQU0sV0FBVyxHQUFHLGFBQWEsQ0FDL0IsTUFBTSxFQUNOLFNBQVMsRUFDVCxXQUFXLENBQUMsWUFBWSxDQUN6QixDQUFDO1FBRUYsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUMvQyxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQy9CLEtBQUssQ0FBQyxNQUFNLEdBQUcsV0FBVyxDQUFDLE1BQU0sRUFDakMsU0FBUyxDQUNWLENBQUM7UUFDRixNQUFNLElBQUksR0FBRyxJQUFJLEtBQUssQ0FDcEIsSUFBSSxDQUFDLEdBQUcsQ0FDTixDQUFDLEVBQ0QsU0FBUyxHQUFHLEtBQUssQ0FBQyxNQUFNLEdBQUcsV0FBVyxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUMsTUFBTSxDQUMzRCxDQUNGLENBQUM7UUFDRixNQUFNLElBQUksR0FBRyxDQUFDLEdBQUcsS0FBSyxFQUFFLEdBQUcsV0FBVyxFQUFFLEdBQUcsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7UUFFekQsSUFBSSxDQUFDLFdBQVcsaUNBQ1gsSUFBSSxDQUFDLEtBQUssS0FDYixTQUFTLEVBQUUsU0FBUyxFQUNwQixJQUFJLEVBQUUsSUFBSSxJQUNWLENBQUM7T0FDSjtLQUNGO0lBQUMsT0FBTyxDQUFDLEVBQUU7TUFDVixNQUFNLFlBQVksR0FBRyxDQUFDLFlBQVksS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztNQUNuRSxPQUFPLENBQUMsS0FBSyxDQUNYLHdDQUF3QyxJQUFJLENBQUMsS0FBSyxLQUFLLFlBQVksR0FBRyxDQUN2RSxDQUFDO01BRUYsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7TUFDN0MsSUFBSSxDQUFBLFdBQVcsYUFBWCxXQUFXLHVCQUFYLFdBQVcsQ0FBRSxFQUFFLE1BQUssSUFBSSxDQUFDLEVBQUUsRUFBRTtRQUMvQixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztPQUNqQztLQUNGO0VBQ0gsQ0FBQztFQUVPLGNBQWMsQ0FBQyxLQUFhO0lBQ2xDLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsRUFBRTtNQUM1QixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztLQUMxQjtFQUNILENBQUM7RUFFTyxxQkFBcUIsQ0FBQyxNQUFjO0lBQzFDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUVyRCxLQUFLLE1BQU0sS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLEVBQUU7TUFDckMsSUFBSSxLQUFLLElBQUksU0FBUyxFQUFFO1FBQ3RCLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7T0FDNUI7S0FDRjtFQUNILENBQUM7RUFFTyxXQUFXLENBQUMsUUFBd0I7SUFDMUMsSUFBSSxDQUFDLEtBQUssR0FBRyxRQUFRLENBQUM7SUFDdEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0VBQ3RDLENBQUM7RUFFTSxnQkFBZ0IsQ0FBQyxNQUFjO0lBQ3BDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNqRCxPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztFQUN4QyxDQUFDO0VBRU0sc0JBQXNCLENBQUMsS0FBYSxFQUFFLEdBQVc7SUFDdEQsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQy9DLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMzQyxPQUFPLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0VBQzlCLENBQUM7RUFFTyxLQUFLLENBQUMsU0FBUyxDQUNyQixNQUFjLEVBQ2QsS0FBYSxFQUNiLEdBQVc7SUFFWCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxFQUFFLENBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxFQUFFO01BQ2xELE1BQU0sS0FBSyxHQUFHLElBQUksV0FBVyxFQUFFLENBQUM7TUFDaEMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztNQUN4QixLQUFLLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO01BRXRCLE1BQU0sR0FBRyxHQUFHLElBQUksY0FBYyxFQUFFLENBQUM7TUFDakMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztNQUNwQixHQUFHLENBQUMsMkJBQTJCLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO01BRW5ELElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDOUMsQ0FBQyxDQUFDLENBQUM7RUFDTCxDQUFDO0VBRU8sWUFBWSxDQUNsQixHQUFXLEVBQ1gsR0FHUztJQUVULE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7TUFDckMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxDQUFDO01BRTdDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUU7UUFDekIsSUFBSSxHQUFHLElBQUksSUFBSSxFQUFFO1VBQ2YsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ2I7YUFBTSxJQUFJLEdBQUcsSUFBSSxJQUFJLEVBQUU7VUFDdEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ2Q7YUFBTTtVQUNMLE1BQU0sQ0FBQyxJQUFJLEtBQUssQ0FBQyxrREFBa0QsQ0FBQyxDQUFDLENBQUM7U0FDdkU7TUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0VBQ0wsQ0FBQztFQUVPLG1CQUFtQixDQUN6QixHQUFXLEVBQ1gsR0FBbUQ7SUFFbkQsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzdDLE9BQU8sR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0VBQ3ZCLENBQUM7RUFFTyxpQkFBaUIsQ0FBQyxHQUFXO0lBQ25DLE9BQU8sSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDO01BQ3ZCLGFBQWEsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUM7S0FDdkMsQ0FBQyxDQUFDO0VBQ0wsQ0FBQztFQUVPLEtBQUssQ0FBQyxrQkFBa0IsQ0FBSSxJQUF3QjtJQUMxRCxNQUFNLEVBQUUsVUFBVSxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNsQyxJQUFJLFVBQVUsQ0FBQyxJQUFJLEtBQUssWUFBWSxJQUFJLFVBQVUsQ0FBQyxJQUFJLEtBQUssV0FBVyxFQUFFO01BQ3ZFLE1BQU0sR0FBRyxHQUFHLE1BQU0sVUFBVSxDQUFDLFdBQVcsRUFBRSxDQUFDO01BQzNDLElBQUksR0FBRyxJQUFJLElBQUksRUFBRTtRQUNmLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO09BQ2xCO1dBQU07UUFDTCxNQUFNLElBQUksS0FBSyxDQUNiLHNFQUFzRSxDQUN2RSxDQUFDO09BQ0g7S0FDRjtTQUFNO01BQ0wsTUFBTSxJQUFJLEtBQUssQ0FBQywrQ0FBK0MsQ0FBQyxDQUFDO0tBQ2xFO0VBQ0gsQ0FBQztFQUVPLGtCQUFrQixDQUN4QixDQUFpQztJQUVqQyxJQUFJLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxFQUFFO01BQ3pCLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFO1FBQzNDLE9BQU8sSUFBSSxxQkFBcUIsQ0FDOUIsa0JBQWtCLENBQUMsbUJBQW1CLENBQ3ZDLENBQUM7T0FDSDtXQUFNO1FBQ0wsT0FBTyxJQUFJLHFCQUFxQixDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFDO09BQzlEO0tBQ0Y7U0FBTTtNQUNMLE9BQU8sSUFBSSxxQkFBcUIsQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztLQUM5RDtFQUNILENBQUM7RUFFTyxrQkFBa0IsQ0FBQyxLQUFhLEVBQUUsR0FBVztJQUNuRCxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO0VBQ2hFLENBQUM7RUFFTyxrQkFBa0IsQ0FBQyxLQUFhO0lBQ3RDLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0VBQ3pELENBQUM7RUFFTyxtQkFBbUIsQ0FBQyxLQUFhLEVBQUUsR0FBVztJQUNwRCxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsR0FBRyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztFQUN2RSxDQUFDO0VBRUQsSUFBWSxRQUFRO0lBQ2xCLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztFQUN0RSxDQUFDOztBQTF6QmMsNkNBQXlCLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztBQUNuQyx3REFBb0MsR0FBRyxDQUFDLENBQUMifQ==
@@ -95944,7 +95944,7 @@ proto.vertexvis.protobuf.scenetree.v1alpha1.FilterResponse.prototype.toObject =
95944
95944
  */
95945
95945
  proto.vertexvis.protobuf.scenetree.v1alpha1.FilterResponse.toObject = function(includeInstance, msg) {
95946
95946
  var obj = {
95947
-
95947
+ numberOfResults: googleProtobuf.Message.getFieldWithDefault(msg, 1, 0)
95948
95948
  };
95949
95949
 
95950
95950
  if (includeInstance) {
@@ -95981,6 +95981,10 @@ proto.vertexvis.protobuf.scenetree.v1alpha1.FilterResponse.deserializeBinaryFrom
95981
95981
  }
95982
95982
  var field = reader.getFieldNumber();
95983
95983
  switch (field) {
95984
+ case 1:
95985
+ var value = /** @type {number} */ (reader.readUint32());
95986
+ msg.setNumberOfResults(value);
95987
+ break;
95984
95988
  default:
95985
95989
  reader.skipField();
95986
95990
  break;
@@ -96009,6 +96013,29 @@ proto.vertexvis.protobuf.scenetree.v1alpha1.FilterResponse.prototype.serializeBi
96009
96013
  * @suppress {unusedLocalVariables} f is only used for nested messages
96010
96014
  */
96011
96015
  proto.vertexvis.protobuf.scenetree.v1alpha1.FilterResponse.serializeBinaryToWriter = function(message, writer) {
96016
+ var f = undefined;
96017
+ f = message.getNumberOfResults();
96018
+ if (f !== 0) {
96019
+ writer.writeUint32(
96020
+ 1,
96021
+ f
96022
+ );
96023
+ }
96024
+ };
96025
+
96026
+
96027
+ /**
96028
+ * optional uint32 number_of_results = 1;
96029
+ * @return {number}
96030
+ */
96031
+ proto.vertexvis.protobuf.scenetree.v1alpha1.FilterResponse.prototype.getNumberOfResults = function() {
96032
+ return /** @type {number} */ (googleProtobuf.Message.getFieldWithDefault(this, 1, 0));
96033
+ };
96034
+
96035
+
96036
+ /** @param {number} value */
96037
+ proto.vertexvis.protobuf.scenetree.v1alpha1.FilterResponse.prototype.setNumberOfResults = function(value) {
96038
+ googleProtobuf.Message.setProto3IntField(this, 1, value);
96012
96039
  };
96013
96040
 
96014
96041
 
@@ -98010,6 +98037,7 @@ class SceneTreeController {
98010
98037
  this.onStateChange = new EventDispatcher();
98011
98038
  this.state = {
98012
98039
  totalRows: 0,
98040
+ totalFilteredRows: 0,
98013
98041
  rows: [],
98014
98042
  connection: { type: 'disconnected' },
98015
98043
  };
@@ -98027,6 +98055,15 @@ class SceneTreeController {
98027
98055
  get isConnected() {
98028
98056
  return this.state.connection.type === 'connected';
98029
98057
  }
98058
+ /**
98059
+ * Registers an event listener that will be invoked when the state changes
98060
+ *
98061
+ * @param listener The listener to add.
98062
+ * @returns A disposable that can be used to remove the listener.
98063
+ */
98064
+ stateChanged(listener) {
98065
+ return this.onStateChange.on(listener);
98066
+ }
98030
98067
  async connect(jwtProvider) {
98031
98068
  const { connection } = this.state;
98032
98069
  const jwt = jwtProvider();
@@ -98131,6 +98168,7 @@ class SceneTreeController {
98131
98168
  sceneViewId: connection.sceneViewId,
98132
98169
  },
98133
98170
  totalRows: reset ? 0 : this.state.totalRows,
98171
+ totalFilteredRows: reset ? 0 : this.state.totalFilteredRows,
98134
98172
  rows: reset ? [] : this.state.rows,
98135
98173
  });
98136
98174
  }
@@ -98284,8 +98322,8 @@ class SceneTreeController {
98284
98322
  * @param options The options to apply to the filter.
98285
98323
  */
98286
98324
  async filter(term, options = {}) {
98287
- await this.ifConnectionHasJwt((jwt) => {
98288
- return this.requestUnary(jwt, (metadata, handler) => {
98325
+ return this.ifConnectionHasJwt(async (jwt) => {
98326
+ const res = await this.requestUnary(jwt, (metadata, handler) => {
98289
98327
  var _a;
98290
98328
  const req = new scene_tree_api_pb.FilterRequest();
98291
98329
  req.setFilter(term);
@@ -98294,6 +98332,8 @@ class SceneTreeController {
98294
98332
  req.setColumnsKeysList(options.columns);
98295
98333
  this.client.filter(req, metadata, handler);
98296
98334
  });
98335
+ const { numberOfResults } = res.toObject();
98336
+ this.updateState(Object.assign(Object.assign({}, this.state), { totalFilteredRows: numberOfResults }));
98297
98337
  });
98298
98338
  }
98299
98339
  /**
@@ -98460,7 +98500,7 @@ class SceneTreeController {
98460
98500
  const end = this.state.rows.slice(start.length + fetchedRows.length, totalRows);
98461
98501
  const fill = new Array(Math.max(0, totalRows - start.length - fetchedRows.length - end.length));
98462
98502
  const rows = [...start, ...fetchedRows, ...end, ...fill];
98463
- this.updateState(Object.assign(Object.assign({}, this.state), { totalRows, rows }));
98503
+ this.updateState(Object.assign(Object.assign({}, this.state), { totalRows: totalRows, rows: rows }));
98464
98504
  }
98465
98505
  }
98466
98506
  catch (e) {
@@ -4559,7 +4559,7 @@ proto.vertexvis.protobuf.scenetree.v1alpha1.FilterResponse.prototype.toObject =
4559
4559
  */
4560
4560
  proto.vertexvis.protobuf.scenetree.v1alpha1.FilterResponse.toObject = function(includeInstance, msg) {
4561
4561
  var obj = {
4562
-
4562
+ numberOfResults: googleProtobuf.Message.getFieldWithDefault(msg, 1, 0)
4563
4563
  };
4564
4564
 
4565
4565
  if (includeInstance) {
@@ -4596,6 +4596,10 @@ proto.vertexvis.protobuf.scenetree.v1alpha1.FilterResponse.deserializeBinaryFrom
4596
4596
  }
4597
4597
  var field = reader.getFieldNumber();
4598
4598
  switch (field) {
4599
+ case 1:
4600
+ var value = /** @type {number} */ (reader.readUint32());
4601
+ msg.setNumberOfResults(value);
4602
+ break;
4599
4603
  default:
4600
4604
  reader.skipField();
4601
4605
  break;
@@ -4624,6 +4628,29 @@ proto.vertexvis.protobuf.scenetree.v1alpha1.FilterResponse.prototype.serializeBi
4624
4628
  * @suppress {unusedLocalVariables} f is only used for nested messages
4625
4629
  */
4626
4630
  proto.vertexvis.protobuf.scenetree.v1alpha1.FilterResponse.serializeBinaryToWriter = function(message, writer) {
4631
+ var f = undefined;
4632
+ f = message.getNumberOfResults();
4633
+ if (f !== 0) {
4634
+ writer.writeUint32(
4635
+ 1,
4636
+ f
4637
+ );
4638
+ }
4639
+ };
4640
+
4641
+
4642
+ /**
4643
+ * optional uint32 number_of_results = 1;
4644
+ * @return {number}
4645
+ */
4646
+ proto.vertexvis.protobuf.scenetree.v1alpha1.FilterResponse.prototype.getNumberOfResults = function() {
4647
+ return /** @type {number} */ (googleProtobuf.Message.getFieldWithDefault(this, 1, 0));
4648
+ };
4649
+
4650
+
4651
+ /** @param {number} value */
4652
+ proto.vertexvis.protobuf.scenetree.v1alpha1.FilterResponse.prototype.setNumberOfResults = function(value) {
4653
+ googleProtobuf.Message.setProto3IntField(this, 1, value);
4627
4654
  };
4628
4655
 
4629
4656
 
@@ -6575,6 +6602,7 @@ class SceneTreeController {
6575
6602
  this.onStateChange = new EventDispatcher();
6576
6603
  this.state = {
6577
6604
  totalRows: 0,
6605
+ totalFilteredRows: 0,
6578
6606
  rows: [],
6579
6607
  connection: { type: 'disconnected' },
6580
6608
  };
@@ -6592,6 +6620,15 @@ class SceneTreeController {
6592
6620
  get isConnected() {
6593
6621
  return this.state.connection.type === 'connected';
6594
6622
  }
6623
+ /**
6624
+ * Registers an event listener that will be invoked when the state changes
6625
+ *
6626
+ * @param listener The listener to add.
6627
+ * @returns A disposable that can be used to remove the listener.
6628
+ */
6629
+ stateChanged(listener) {
6630
+ return this.onStateChange.on(listener);
6631
+ }
6595
6632
  async connect(jwtProvider) {
6596
6633
  const { connection } = this.state;
6597
6634
  const jwt = jwtProvider();
@@ -6696,6 +6733,7 @@ class SceneTreeController {
6696
6733
  sceneViewId: connection.sceneViewId,
6697
6734
  },
6698
6735
  totalRows: reset ? 0 : this.state.totalRows,
6736
+ totalFilteredRows: reset ? 0 : this.state.totalFilteredRows,
6699
6737
  rows: reset ? [] : this.state.rows,
6700
6738
  });
6701
6739
  }
@@ -6849,8 +6887,8 @@ class SceneTreeController {
6849
6887
  * @param options The options to apply to the filter.
6850
6888
  */
6851
6889
  async filter(term, options = {}) {
6852
- await this.ifConnectionHasJwt((jwt) => {
6853
- return this.requestUnary(jwt, (metadata, handler) => {
6890
+ return this.ifConnectionHasJwt(async (jwt) => {
6891
+ const res = await this.requestUnary(jwt, (metadata, handler) => {
6854
6892
  var _a;
6855
6893
  const req = new scene_tree_api_pb.FilterRequest();
6856
6894
  req.setFilter(term);
@@ -6859,6 +6897,8 @@ class SceneTreeController {
6859
6897
  req.setColumnsKeysList(options.columns);
6860
6898
  this.client.filter(req, metadata, handler);
6861
6899
  });
6900
+ const { numberOfResults } = res.toObject();
6901
+ this.updateState(Object.assign(Object.assign({}, this.state), { totalFilteredRows: numberOfResults }));
6862
6902
  });
6863
6903
  }
6864
6904
  /**
@@ -7025,7 +7065,7 @@ class SceneTreeController {
7025
7065
  const end = this.state.rows.slice(start.length + fetchedRows.length, totalRows);
7026
7066
  const fill = new Array(Math.max(0, totalRows - start.length - fetchedRows.length - end.length));
7027
7067
  const rows = [...start, ...fetchedRows, ...end, ...fill];
7028
- this.updateState(Object.assign(Object.assign({}, this.state), { totalRows, rows }));
7068
+ this.updateState(Object.assign(Object.assign({}, this.state), { totalRows: totalRows, rows: rows }));
7029
7069
  }
7030
7070
  }
7031
7071
  catch (e) {
@@ -1,7 +1,7 @@
1
1
  import { Node } from '@vertexvis/scene-tree-protos/scenetree/protos/domain_pb';
2
2
  import { GetTreeResponse } from '@vertexvis/scene-tree-protos/scenetree/protos/scene_tree_api_pb';
3
3
  import { SceneTreeAPIClient } from '@vertexvis/scene-tree-protos/scenetree/protos/scene_tree_api_pb_service';
4
- import { Disposable, EventDispatcher } from '@vertexvis/utils';
4
+ import { Disposable, EventDispatcher, Listener } from '@vertexvis/utils';
5
5
  import { MetadataKey } from '../interfaces';
6
6
  import { SceneTreeErrorDetails } from './errors';
7
7
  import { Row } from './row';
@@ -12,6 +12,7 @@ export interface ConnectOptions {
12
12
  export declare type JwtProvider = () => string | undefined;
13
13
  export interface SceneTreeState {
14
14
  totalRows: number;
15
+ totalFilteredRows: number;
15
16
  rows: Row[];
16
17
  connection: ConnectionState;
17
18
  }
@@ -89,6 +90,13 @@ export declare class SceneTreeController {
89
90
  */
90
91
  get isConnected(): boolean;
91
92
  constructor(client: SceneTreeAPIClient, rowLimit: number, connectOptions?: ConnectOptions);
93
+ /**
94
+ * Registers an event listener that will be invoked when the state changes
95
+ *
96
+ * @param listener The listener to add.
97
+ * @returns A disposable that can be used to remove the listener.
98
+ */
99
+ stateChanged(listener: Listener<SceneTreeState | undefined>): Disposable;
92
100
  connect(jwtProvider: JwtProvider): Promise<void>;
93
101
  private clearReconnectTimer;
94
102
  private startIdleReconnectTimer;