@design.estate/dees-catalog 6.12.1 → 7.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.
Files changed (43) hide show
  1. package/.smartconfig.json +5 -1
  2. package/dist_bundle/bundle.js +24088 -1233
  3. package/dist_bundle/bundle.js.map +1 -0
  4. package/dist_bundle/chunks/U6Ua8p1giFoD1s7vrUZUdpbg/.tsbundle-artifacts.json +7 -0
  5. package/dist_bundle/chunks/U6Ua8p1giFoD1s7vrUZUdpbg/worker-KZQQYSUG.js +58301 -0
  6. package/dist_bundle/chunks/U6Ua8p1giFoD1s7vrUZUdpbg/worker-KZQQYSUG.js.map +1 -0
  7. package/dist_bundle/third-party-notices.md +190 -0
  8. package/dist_ts_web/00_commitinfo_data.js +2 -2
  9. package/dist_ts_web/elements/00group-harness/dees-harness-chat/dees-harness-chat.d.ts +4 -1
  10. package/dist_ts_web/elements/00group-harness/dees-harness-chat/dees-harness-chat.js +29 -2
  11. package/dist_ts_web/elements/00group-harness/dees-harness-session-sidebar/dees-harness-session-sidebar.d.ts +4 -1
  12. package/dist_ts_web/elements/00group-harness/dees-harness-session-sidebar/dees-harness-session-sidebar.js +65 -8
  13. package/dist_ts_web/elements/00group-harness/interfaces.d.ts +1 -0
  14. package/dist_ts_web/elements/00group-media/dees-pdf-shared/CanvasPool.d.ts +1 -0
  15. package/dist_ts_web/elements/00group-media/dees-pdf-shared/CanvasPool.js +15 -1
  16. package/dist_ts_web/elements/00group-media/dees-pdf-shared/PdfManager.d.ts +6 -4
  17. package/dist_ts_web/elements/00group-media/dees-pdf-shared/PdfManager.js +183 -21
  18. package/dist_ts_web/elements/00group-media/dees-pdf-shared/utils.d.ts +3 -0
  19. package/dist_ts_web/elements/00group-media/dees-pdf-shared/utils.js +67 -1
  20. package/dist_ts_web/elements/00group-media/dees-pdf-viewer/component.d.ts +25 -1
  21. package/dist_ts_web/elements/00group-media/dees-pdf-viewer/component.js +693 -285
  22. package/dist_ts_web/elements/00group-media/dees-pdf-viewer/demo.js +7 -7
  23. package/dist_ts_web/elements/00group-media/dees-thumbnail-pdf/component.d.ts +20 -1
  24. package/dist_ts_web/elements/00group-media/dees-thumbnail-pdf/component.js +379 -116
  25. package/dist_ts_web/elements/00group-media/dees-thumbnail-pdf/demo.js +2 -2
  26. package/dist_ts_web/elements/00group-media/dees-thumbnail-shared/DeesThumbnailBase.d.ts +1 -0
  27. package/dist_ts_web/elements/00group-media/dees-thumbnail-shared/DeesThumbnailBase.js +7 -1
  28. package/package.json +5 -4
  29. package/readme.hints.md +26 -19
  30. package/readme.md +97 -53
  31. package/third-party-notices.md +190 -0
  32. package/ts_web/00_commitinfo_data.ts +1 -1
  33. package/ts_web/elements/00group-harness/dees-harness-chat/dees-harness-chat.ts +13 -0
  34. package/ts_web/elements/00group-harness/dees-harness-session-sidebar/dees-harness-session-sidebar.ts +51 -6
  35. package/ts_web/elements/00group-harness/interfaces.ts +2 -0
  36. package/ts_web/elements/00group-media/dees-pdf-shared/CanvasPool.ts +15 -1
  37. package/ts_web/elements/00group-media/dees-pdf-shared/PdfManager.ts +214 -24
  38. package/ts_web/elements/00group-media/dees-pdf-shared/utils.ts +77 -1
  39. package/ts_web/elements/00group-media/dees-pdf-viewer/component.ts +774 -327
  40. package/ts_web/elements/00group-media/dees-pdf-viewer/demo.ts +7 -7
  41. package/ts_web/elements/00group-media/dees-thumbnail-pdf/component.ts +427 -128
  42. package/ts_web/elements/00group-media/dees-thumbnail-pdf/demo.ts +1 -1
  43. package/ts_web/elements/00group-media/dees-thumbnail-shared/DeesThumbnailBase.ts +5 -0
@@ -80,6 +80,15 @@ let DeesHarnessSessionSidebar = (() => {
80
80
  let _intelligenceEnabled_decorators;
81
81
  let _intelligenceEnabled_initializers = [];
82
82
  let _intelligenceEnabled_extraInitializers = [];
83
+ let _intelligenceAvailabilityStatus_decorators;
84
+ let _intelligenceAvailabilityStatus_initializers = [];
85
+ let _intelligenceAvailabilityStatus_extraInitializers = [];
86
+ let _intelligenceUnavailableReason_decorators;
87
+ let _intelligenceUnavailableReason_initializers = [];
88
+ let _intelligenceUnavailableReason_extraInitializers = [];
89
+ let _intelligenceHeading_decorators;
90
+ let _intelligenceHeading_initializers = [];
91
+ let _intelligenceHeading_extraInitializers = [];
83
92
  let _intelligenceExchanges_decorators;
84
93
  let _intelligenceExchanges_initializers = [];
85
94
  let _intelligenceExchanges_extraInitializers = [];
@@ -126,6 +135,9 @@ let DeesHarnessSessionSidebar = (() => {
126
135
  _scratchpadBusy_decorators = [property({ type: Boolean })];
127
136
  _scratchpadError_decorators = [property()];
128
137
  _intelligenceEnabled_decorators = [property({ type: Boolean })];
138
+ _intelligenceAvailabilityStatus_decorators = [property()];
139
+ _intelligenceUnavailableReason_decorators = [property()];
140
+ _intelligenceHeading_decorators = [property()];
129
141
  _intelligenceExchanges_decorators = [property({ attribute: false })];
130
142
  _intelligenceBusy_decorators = [property({ type: Boolean })];
131
143
  _intelligenceError_decorators = [property()];
@@ -146,6 +158,9 @@ let DeesHarnessSessionSidebar = (() => {
146
158
  __esDecorate(this, null, _scratchpadBusy_decorators, { kind: "accessor", name: "scratchpadBusy", static: false, private: false, access: { has: obj => "scratchpadBusy" in obj, get: obj => obj.scratchpadBusy, set: (obj, value) => { obj.scratchpadBusy = value; } }, metadata: _metadata }, _scratchpadBusy_initializers, _scratchpadBusy_extraInitializers);
147
159
  __esDecorate(this, null, _scratchpadError_decorators, { kind: "accessor", name: "scratchpadError", static: false, private: false, access: { has: obj => "scratchpadError" in obj, get: obj => obj.scratchpadError, set: (obj, value) => { obj.scratchpadError = value; } }, metadata: _metadata }, _scratchpadError_initializers, _scratchpadError_extraInitializers);
148
160
  __esDecorate(this, null, _intelligenceEnabled_decorators, { kind: "accessor", name: "intelligenceEnabled", static: false, private: false, access: { has: obj => "intelligenceEnabled" in obj, get: obj => obj.intelligenceEnabled, set: (obj, value) => { obj.intelligenceEnabled = value; } }, metadata: _metadata }, _intelligenceEnabled_initializers, _intelligenceEnabled_extraInitializers);
161
+ __esDecorate(this, null, _intelligenceAvailabilityStatus_decorators, { kind: "accessor", name: "intelligenceAvailabilityStatus", static: false, private: false, access: { has: obj => "intelligenceAvailabilityStatus" in obj, get: obj => obj.intelligenceAvailabilityStatus, set: (obj, value) => { obj.intelligenceAvailabilityStatus = value; } }, metadata: _metadata }, _intelligenceAvailabilityStatus_initializers, _intelligenceAvailabilityStatus_extraInitializers);
162
+ __esDecorate(this, null, _intelligenceUnavailableReason_decorators, { kind: "accessor", name: "intelligenceUnavailableReason", static: false, private: false, access: { has: obj => "intelligenceUnavailableReason" in obj, get: obj => obj.intelligenceUnavailableReason, set: (obj, value) => { obj.intelligenceUnavailableReason = value; } }, metadata: _metadata }, _intelligenceUnavailableReason_initializers, _intelligenceUnavailableReason_extraInitializers);
163
+ __esDecorate(this, null, _intelligenceHeading_decorators, { kind: "accessor", name: "intelligenceHeading", static: false, private: false, access: { has: obj => "intelligenceHeading" in obj, get: obj => obj.intelligenceHeading, set: (obj, value) => { obj.intelligenceHeading = value; } }, metadata: _metadata }, _intelligenceHeading_initializers, _intelligenceHeading_extraInitializers);
149
164
  __esDecorate(this, null, _intelligenceExchanges_decorators, { kind: "accessor", name: "intelligenceExchanges", static: false, private: false, access: { has: obj => "intelligenceExchanges" in obj, get: obj => obj.intelligenceExchanges, set: (obj, value) => { obj.intelligenceExchanges = value; } }, metadata: _metadata }, _intelligenceExchanges_initializers, _intelligenceExchanges_extraInitializers);
150
165
  __esDecorate(this, null, _intelligenceBusy_decorators, { kind: "accessor", name: "intelligenceBusy", static: false, private: false, access: { has: obj => "intelligenceBusy" in obj, get: obj => obj.intelligenceBusy, set: (obj, value) => { obj.intelligenceBusy = value; } }, metadata: _metadata }, _intelligenceBusy_initializers, _intelligenceBusy_extraInitializers);
151
166
  __esDecorate(this, null, _intelligenceError_decorators, { kind: "accessor", name: "intelligenceError", static: false, private: false, access: { has: obj => "intelligenceError" in obj, get: obj => obj.intelligenceError, set: (obj, value) => { obj.intelligenceError = value; } }, metadata: _metadata }, _intelligenceError_initializers, _intelligenceError_extraInitializers);
@@ -191,7 +206,16 @@ let DeesHarnessSessionSidebar = (() => {
191
206
  #intelligenceEnabled_accessor_storage = (__runInitializers(this, _scratchpadError_extraInitializers), __runInitializers(this, _intelligenceEnabled_initializers, false));
192
207
  get intelligenceEnabled() { return this.#intelligenceEnabled_accessor_storage; }
193
208
  set intelligenceEnabled(value) { this.#intelligenceEnabled_accessor_storage = value; }
194
- #intelligenceExchanges_accessor_storage = (__runInitializers(this, _intelligenceEnabled_extraInitializers), __runInitializers(this, _intelligenceExchanges_initializers, []));
209
+ #intelligenceAvailabilityStatus_accessor_storage = (__runInitializers(this, _intelligenceEnabled_extraInitializers), __runInitializers(this, _intelligenceAvailabilityStatus_initializers, 'available'));
210
+ get intelligenceAvailabilityStatus() { return this.#intelligenceAvailabilityStatus_accessor_storage; }
211
+ set intelligenceAvailabilityStatus(value) { this.#intelligenceAvailabilityStatus_accessor_storage = value; }
212
+ #intelligenceUnavailableReason_accessor_storage = (__runInitializers(this, _intelligenceAvailabilityStatus_extraInitializers), __runInitializers(this, _intelligenceUnavailableReason_initializers, ''));
213
+ get intelligenceUnavailableReason() { return this.#intelligenceUnavailableReason_accessor_storage; }
214
+ set intelligenceUnavailableReason(value) { this.#intelligenceUnavailableReason_accessor_storage = value; }
215
+ #intelligenceHeading_accessor_storage = (__runInitializers(this, _intelligenceUnavailableReason_extraInitializers), __runInitializers(this, _intelligenceHeading_initializers, 'Session Intelligence'));
216
+ get intelligenceHeading() { return this.#intelligenceHeading_accessor_storage; }
217
+ set intelligenceHeading(value) { this.#intelligenceHeading_accessor_storage = value; }
218
+ #intelligenceExchanges_accessor_storage = (__runInitializers(this, _intelligenceHeading_extraInitializers), __runInitializers(this, _intelligenceExchanges_initializers, []));
195
219
  get intelligenceExchanges() { return this.#intelligenceExchanges_accessor_storage; }
196
220
  set intelligenceExchanges(value) { this.#intelligenceExchanges_accessor_storage = value; }
197
221
  #intelligenceBusy_accessor_storage = (__runInitializers(this, _intelligenceExchanges_extraInitializers), __runInitializers(this, _intelligenceBusy_initializers, false));
@@ -443,6 +467,16 @@ let DeesHarnessSessionSidebar = (() => {
443
467
  min-width: 0;
444
468
  }
445
469
 
470
+ .intelligenceAvailability {
471
+ margin-bottom: var(--dees-spacing-sm);
472
+ padding: var(--dees-spacing-xs) var(--dees-spacing-sm);
473
+ border-radius: var(--dees-radius-md);
474
+ background: var(--dees-color-fill-secondary);
475
+ color: var(--dees-color-text-primary);
476
+ font-size: var(--dees-font-caption1-size, 11px);
477
+ line-height: 1.4;
478
+ }
479
+
446
480
  .activityList,
447
481
  .activityGroup {
448
482
  display: grid;
@@ -952,7 +986,14 @@ let DeesHarnessSessionSidebar = (() => {
952
986
  `);
953
987
  }
954
988
  renderIntelligence() {
955
- return this.renderSection('intelligence', 'Session Intelligence', 'lucide:Sparkles', html `
989
+ const heading = this.intelligenceHeading.trim() || 'Session Intelligence';
990
+ const intelligenceAvailable = this.intelligenceAvailabilityStatus === 'available';
991
+ const availabilityMessage = this.intelligenceAvailabilityStatus === 'checking'
992
+ ? `Checking ${heading} availability…`
993
+ : this.intelligenceAvailabilityStatus === 'unavailable'
994
+ ? this.intelligenceUnavailableReason.trim() || `${heading} is unavailable.`
995
+ : '';
996
+ return this.renderSection('intelligence', heading, 'lucide:Sparkles', html `
956
997
  <div class="intelligenceHistory" role="log" aria-live="polite">
957
998
  ${this.intelligenceExchanges.length ? html `
958
999
  <div class="exchangeList">
@@ -961,14 +1002,22 @@ let DeesHarnessSessionSidebar = (() => {
961
1002
  ` : html `<div class="empty">Ask about this session without interrupting its main work.</div>`}
962
1003
  </div>
963
1004
  <div class="intelligenceComposer">
1005
+ <div
1006
+ class="intelligenceAvailabilityStatus"
1007
+ role="status"
1008
+ aria-live="polite"
1009
+ aria-atomic="true"
1010
+ >${availabilityMessage
1011
+ ? html `<div class="intelligenceAvailability">${availabilityMessage}</div>`
1012
+ : ''}</div>
964
1013
  <textarea
965
1014
  class="intelligenceInput"
966
- aria-label="Ask Session Intelligence"
1015
+ aria-label=${`Ask ${heading}`}
967
1016
  placeholder="Ask a parallel question…"
968
1017
  maxlength="8192"
969
1018
  rows="2"
970
1019
  .value=${this.intelligenceQuestion}
971
- ?disabled=${this.disabled || this.intelligenceBusy}
1020
+ ?disabled=${this.disabled || this.intelligenceBusy || !intelligenceAvailable}
972
1021
  @input=${(event) => {
973
1022
  this.intelligenceQuestion = event.currentTarget.value;
974
1023
  }}
@@ -986,7 +1035,10 @@ let DeesHarnessSessionSidebar = (() => {
986
1035
  type="accent"
987
1036
  text="Ask"
988
1037
  .status=${this.intelligenceBusy ? 'pending' : 'normal'}
989
- ?disabled=${this.disabled || this.intelligenceBusy || !this.intelligenceQuestion.trim()}
1038
+ ?disabled=${this.disabled
1039
+ || this.intelligenceBusy
1040
+ || !intelligenceAvailable
1041
+ || !this.intelligenceQuestion.trim()}
990
1042
  @clicked=${this.askIntelligence}
991
1043
  ></dees-button>
992
1044
  </div>
@@ -995,10 +1047,11 @@ let DeesHarnessSessionSidebar = (() => {
995
1047
  `);
996
1048
  }
997
1049
  renderExchange(exchangeArg) {
1050
+ const heading = this.intelligenceHeading.trim() || 'Session Intelligence';
998
1051
  const answer = exchangeArg.status === 'running'
999
1052
  ? 'Thinking in parallel…'
1000
1053
  : exchangeArg.status === 'error'
1001
- ? exchangeArg.error || 'Session Intelligence failed.'
1054
+ ? exchangeArg.error || `${heading} failed.`
1002
1055
  : exchangeArg.answer || '';
1003
1056
  return html `
1004
1057
  <article class="exchange ${exchangeArg.status}">
@@ -1046,7 +1099,11 @@ let DeesHarnessSessionSidebar = (() => {
1046
1099
  };
1047
1100
  askIntelligence = () => {
1048
1101
  const question = this.intelligenceQuestion.trim();
1049
- if (!question || this.disabled || this.intelligenceBusy)
1102
+ if (!question
1103
+ || !this.intelligenceEnabled
1104
+ || this.intelligenceAvailabilityStatus !== 'available'
1105
+ || this.disabled
1106
+ || this.intelligenceBusy)
1050
1107
  return;
1051
1108
  const detail = { question };
1052
1109
  this.dispatchEvent(new CustomEvent('harness-session-intelligence-ask', {
@@ -1063,4 +1120,4 @@ let DeesHarnessSessionSidebar = (() => {
1063
1120
  return DeesHarnessSessionSidebar = _classThis;
1064
1121
  })();
1065
1122
  export { DeesHarnessSessionSidebar };
1066
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVlcy1oYXJuZXNzLXNlc3Npb24tc2lkZWJhci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3RzX3dlYi9lbGVtZW50cy8wMGdyb3VwLWhhcm5lc3MvZGVlcy1oYXJuZXNzLXNlc3Npb24tc2lkZWJhci9kZWVzLWhhcm5lc3Mtc2Vzc2lvbi1zaWRlYmFyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDbEUsT0FBTyxFQUNMLFdBQVcsRUFDWCxJQUFJLEVBQ0osR0FBRyxFQUNILGFBQWEsRUFFYixRQUFRLEVBQ1IsS0FBSyxFQUNMLFVBQVUsRUFDVixVQUFVLEdBQ1gsTUFBTSw2QkFBNkIsQ0FBQztBQUNyQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQVl0RCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUseUJBQXlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM5RixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM3RCxPQUFPLDZDQUE2QyxDQUFDO0FBQ3JELE9BQU8sa0NBQWtDLENBQUM7QUFDMUMsT0FBTyxpREFBaUQsQ0FBQztBQUN6RCxPQUFPLDhDQUE4QyxDQUFDO0FBRXRELE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxVQUFVLENBQUM7QUFFOUIsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLFFBQWdCLEVBQVUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7QUFnQnhGOzs7R0FHRztJQUVVLHlCQUF5Qjs0QkFEckMsYUFBYSxDQUFDLDhCQUE4QixDQUFDOzs7O3NCQUNDLFdBQVc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7eUNBQW5C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
1123
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVlcy1oYXJuZXNzLXNlc3Npb24tc2lkZWJhci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3RzX3dlYi9lbGVtZW50cy8wMGdyb3VwLWhhcm5lc3MvZGVlcy1oYXJuZXNzLXNlc3Npb24tc2lkZWJhci9kZWVzLWhhcm5lc3Mtc2Vzc2lvbi1zaWRlYmFyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDbEUsT0FBTyxFQUNMLFdBQVcsRUFDWCxJQUFJLEVBQ0osR0FBRyxFQUNILGFBQWEsRUFFYixRQUFRLEVBQ1IsS0FBSyxFQUNMLFVBQVUsRUFDVixVQUFVLEdBQ1gsTUFBTSw2QkFBNkIsQ0FBQztBQUNyQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQWF0RCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUseUJBQXlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM5RixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM3RCxPQUFPLDZDQUE2QyxDQUFDO0FBQ3JELE9BQU8sa0NBQWtDLENBQUM7QUFDMUMsT0FBTyxpREFBaUQsQ0FBQztBQUN6RCxPQUFPLDhDQUE4QyxDQUFDO0FBRXRELE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxVQUFVLENBQUM7QUFFOUIsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLFFBQWdCLEVBQVUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7QUFnQnhGOzs7R0FHRztJQUVVLHlCQUF5Qjs0QkFEckMsYUFBYSxDQUFDLDhCQUE4QixDQUFDOzs7O3NCQUNDLFdBQVc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7eUNBQW5CLFNBQVEsV0FBVzs7OztpQ0FJdkQsUUFBUSxDQUFDLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDO3FDQUc5QixRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLENBQUM7d0NBSTNCLFFBQVEsQ0FBQyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQzt3Q0FHOUIsUUFBUSxDQUFDLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDO21DQUc5QixRQUFRLENBQUMsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUM7c0NBRzlCLFFBQVEsQ0FBQyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQzswQ0FHOUIsUUFBUSxDQUFDLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxDQUFDOzJDQUczQixRQUFRLEVBQUU7K0NBR1YsUUFBUSxDQUFDLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxDQUFDOzBEQUczQixRQUFRLEVBQUU7eURBR1YsUUFBUSxFQUFFOytDQUdWLFFBQVEsRUFBRTtpREFHVixRQUFRLENBQUMsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUM7NENBRzlCLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsQ0FBQzs2Q0FHM0IsUUFBUSxFQUFFO3NDQUlWLFFBQVEsRUFBRTtvQ0FHVixRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLENBQUM7MkNBRzNCLEtBQUssRUFBRTttREFHUCxLQUFLLEVBQUU7MkNBR1AsS0FBSyxFQUFFOzJDQUdQLEtBQUssRUFBRTtnREFHUCxLQUFLLEVBQUU7MkNBR1AsS0FBSyxFQUFFO1lBbkVSLG9LQUFTLEtBQUssNkJBQUwsS0FBSyxxRkFBMEI7WUFHeEMsZ0xBQVMsU0FBUyw2QkFBVCxTQUFTLDZGQUFpQjtZQUluQyx5TEFBUyxZQUFZLDZCQUFaLFlBQVksbUdBQXlCO1lBRzlDLHlMQUFTLFlBQVksNkJBQVosWUFBWSxtR0FBNEQ7WUFHakYsMEtBQVMsT0FBTyw2QkFBUCxPQUFPLHlGQUE4QjtZQUc5QyxtTEFBUyxVQUFVLDZCQUFWLFVBQVUsK0ZBQTZDO1lBR2hFLCtMQUFTLGNBQWMsNkJBQWQsY0FBYyx1R0FBa0I7WUFHekMsa01BQVMsZUFBZSw2QkFBZixlQUFlLHlHQUFjO1lBR3RDLDhNQUFTLG1CQUFtQiw2QkFBbkIsbUJBQW1CLGlIQUFrQjtZQUc5QywrT0FBUyw4QkFBOEIsNkJBQTlCLDhCQUE4Qix1SUFBdUQ7WUFHOUYsNE9BQVMsNkJBQTZCLDZCQUE3Qiw2QkFBNkIscUlBQWM7WUFHcEQsOE1BQVMsbUJBQW1CLDZCQUFuQixtQkFBbUIsaUhBQWtDO1lBRzlELG9OQUFTLHFCQUFxQiw2QkFBckIscUJBQXFCLHFIQUFzQztZQUdwRSxxTUFBUyxnQkFBZ0IsNkJBQWhCLGdCQUFnQiwyR0FBa0I7WUFHM0Msd01BQVMsaUJBQWlCLDZCQUFqQixpQkFBaUIsNkdBQWM7WUFJeEMsbUxBQVMsVUFBVSw2QkFBVixVQUFVLCtGQUFjO1lBR2pDLDZLQUFTLFFBQVEsNkJBQVIsUUFBUSwyRkFBa0I7WUFHbkMsa01BQWlCLGVBQWUsNkJBQWYsZUFBZSx5R0FBYztZQUc5QywwTkFBaUIsdUJBQXVCLDZCQUF2Qix1QkFBdUIseUhBQWE7WUFHckQsa01BQWlCLGVBQWUsNkJBQWYsZUFBZSx5R0FBa0I7WUFHbEQsa01BQWlCLGVBQWUsNkJBQWYsZUFBZSx5R0FBa0I7WUFHbEQsaU5BQWlCLG9CQUFvQiw2QkFBcEIsb0JBQW9CLG1IQUFjO1lBR25ELGtNQUFpQixlQUFlLDZCQUFmLGVBQWUseUdBQWlEO1lBekVuRiw2S0FrK0JDOzs7O1FBaitCUSxNQUFNLENBQUMsSUFBSSxHQUFHLFFBQVEsQ0FBQztRQUN2QixNQUFNLENBQUMsVUFBVSxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUM7UUFHMUMsdUVBQXFDLEVBQUUsRUFBQztRQUF4QyxJQUFTLEtBQUssMkNBQTBCO1FBQXhDLElBQVMsS0FBSyxpREFBMEI7UUFHeEMsbUlBQThCLElBQUksR0FBQztRQUFuQyxJQUFTLFNBQVMsK0NBQWlCO1FBQW5DLElBQVMsU0FBUyxxREFBaUI7UUFJbkMsNklBQTJDLEVBQUUsR0FBQztRQUY5QyxvRkFBb0Y7UUFFcEYsSUFBUyxZQUFZLGtEQUF5QjtRQUE5QyxJQUFTLFlBQVksd0RBQXlCO1FBRzlDLGdKQUFpRCx1QkFBdUIsQ0FBQyxPQUFPLEdBQUM7UUFBakYsSUFBUyxZQUFZLGtEQUE0RDtRQUFqRixJQUFTLFlBQVksd0RBQTREO1FBR2pGLHNJQUEyQyxFQUFFLEdBQUM7UUFBOUMsSUFBUyxPQUFPLDZDQUE4QjtRQUE5QyxJQUFTLE9BQU8sbURBQThCO1FBRzlDLHVJQUFzRCxTQUFTLEdBQUM7UUFBaEUsSUFBUyxVQUFVLGdEQUE2QztRQUFoRSxJQUFTLFVBQVUsc0RBQTZDO1FBR2hFLGtKQUFtQyxLQUFLLEdBQUM7UUFBekMsSUFBUyxjQUFjLG9EQUFrQjtRQUF6QyxJQUFTLGNBQWMsMERBQWtCO1FBR3pDLHdKQUFtQyxFQUFFLEdBQUM7UUFBdEMsSUFBUyxlQUFlLHFEQUFjO1FBQXRDLElBQVMsZUFBZSwyREFBYztRQUd0QyxpS0FBd0MsS0FBSyxHQUFDO1FBQTlDLElBQVMsbUJBQW1CLHlEQUFrQjtRQUE5QyxJQUFTLG1CQUFtQiwrREFBa0I7UUFHOUMsMkxBQWtGLFdBQVcsR0FBQztRQUE5RixJQUFTLDhCQUE4QixvRUFBdUQ7UUFBOUYsSUFBUyw4QkFBOEIsMEVBQXVEO1FBRzlGLG9NQUFpRCxFQUFFLEdBQUM7UUFBcEQsSUFBUyw2QkFBNkIsbUVBQWM7UUFBcEQsSUFBUyw2QkFBNkIseUVBQWM7UUFHcEQsK0tBQXVDLHNCQUFzQixHQUFDO1FBQTlELElBQVMsbUJBQW1CLHlEQUFrQztRQUE5RCxJQUFTLG1CQUFtQiwrREFBa0M7UUFHOUQseUtBQWlFLEVBQUUsR0FBQztRQUFwRSxJQUFTLHFCQUFxQiwyREFBc0M7UUFBcEUsSUFBUyxxQkFBcUIsaUVBQXNDO1FBR3BFLGlLQUFxQyxLQUFLLEdBQUM7UUFBM0MsSUFBUyxnQkFBZ0Isc0RBQWtCO1FBQTNDLElBQVMsZ0JBQWdCLDREQUFrQjtRQUczQyw4SkFBcUMsRUFBRSxHQUFDO1FBQXhDLElBQVMsaUJBQWlCLHVEQUFjO1FBQXhDLElBQVMsaUJBQWlCLDZEQUFjO1FBSXhDLGlKQUE4QixFQUFFLEdBQUM7UUFGakMsc0VBQXNFO1FBRXRFLElBQVMsVUFBVSxnREFBYztRQUFqQyxJQUFTLFVBQVUsc0RBQWM7UUFHakMsc0lBQTZCLEtBQUssR0FBQztRQUFuQyxJQUFTLFFBQVEsOENBQWtCO1FBQW5DLElBQVMsUUFBUSxvREFBa0I7UUFHbkMsa0pBQTJDLEVBQUUsR0FBQztRQUE5QyxJQUFpQixlQUFlLHFEQUFjO1FBQTlDLElBQWlCLGVBQWUsMkRBQWM7UUFHOUMseUtBQW1ELENBQUMsR0FBQztRQUFyRCxJQUFpQix1QkFBdUIsNkRBQWE7UUFBckQsSUFBaUIsdUJBQXVCLG1FQUFhO1FBR3JELGlLQUE0QyxLQUFLLEdBQUM7UUFBbEQsSUFBaUIsZUFBZSxxREFBa0I7UUFBbEQsSUFBaUIsZUFBZSwyREFBa0I7UUFHbEQseUpBQTRDLEtBQUssR0FBQztRQUFsRCxJQUFpQixlQUFlLHFEQUFrQjtRQUFsRCxJQUFpQixlQUFlLDJEQUFrQjtRQUdsRCxtS0FBZ0QsRUFBRSxHQUFDO1FBQW5ELElBQWlCLG9CQUFvQiwwREFBYztRQUFuRCxJQUFpQixvQkFBb0IsZ0VBQWM7UUFHbkQsOEpBQXVFLFNBQVMsR0FBQztRQUFqRixJQUFpQixlQUFlLHFEQUFpRDtRQUFqRixJQUFpQixlQUFlLDJEQUFpRDtRQUV6RSx1QkFBdUIsaUVBQUcsS0FBSyxFQUFDO1FBRWpDLE1BQU0sQ0FBQyxNQUFNLEdBQUc7WUFDckIsa0JBQWtCO1lBQ2xCLFVBQVUsQ0FBQyxhQUFhO1lBQ3hCLEdBQUcsQ0FBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7S0FtZEY7U0FDRixDQUFDO1FBRVEsVUFBVSxDQUFDLG9CQUErQztZQUNsRSxNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztZQUNqRCxJQUFJLENBQUMsSUFBSSxDQUFDLHVCQUF1QixJQUFJLGlCQUFpQixDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDbEUsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUM7Z0JBQ25ELElBQUksQ0FBQyx1QkFBdUIsR0FBRyxJQUFJLENBQUM7WUFDdEMsQ0FBQztpQkFBTSxJQUNMLElBQUksQ0FBQyxlQUFlLEtBQUssU0FBUzttQkFDL0IsQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxFQUNwRCxDQUFDO2dCQUNELElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDO1lBQ3JELENBQUM7WUFDRCxJQUFJLG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUM7Z0JBQUUsSUFBSSxDQUFDLG9CQUFvQixHQUFHLEVBQUUsQ0FBQztZQUMzRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQztnQkFBRSxPQUFPO1lBQ3BELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7WUFDN0IsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUNWLElBQUksQ0FBQyxlQUFlLEdBQUcsRUFBRSxDQUFDO2dCQUMxQixJQUFJLENBQUMsdUJBQXVCLEdBQUcsQ0FBQyxDQUFDO2dCQUNqQyxJQUFJLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQztnQkFDN0IsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUM7Z0JBQzdCLE9BQU87WUFDVCxDQUFDO1lBQ0QsTUFBTSxRQUFRLEdBQUcsb0JBQW9CLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBbUMsQ0FBQztZQUMxRixJQUFJLENBQUMsUUFBUSxJQUFJLFFBQVEsQ0FBQyxFQUFFLEtBQUssSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO2dCQUN6QyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQzVCLE9BQU87WUFDVCxDQUFDO1lBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7Z0JBQ2hFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDNUIsT0FBTztZQUNULENBQUM7WUFDRCxJQUFJLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLHVCQUF1QjtnQkFBRSxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQztRQUNoRixDQUFDO1FBRUQsSUFBVyxpQkFBaUI7WUFDMUIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQztZQUNsRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDO1lBQzlDLElBQUksT0FBTyxLQUFLLFNBQVMsSUFBSSxPQUFPLEtBQUssU0FBUyxJQUFJLE9BQU8sSUFBSSxDQUFDO2dCQUFFLE9BQU8sU0FBUyxDQUFDO1lBQ3JGLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUMvRCxDQUFDO1FBRU0sTUFBTTtZQUNYLE9BQU8sSUFBSSxDQUFBOztVQUVMLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRTtVQUN4QyxJQUFJLENBQUMsbUJBQW1CLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRTtVQUNoRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUU7VUFDM0MsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUU7VUFDOUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRTs7S0FFOUQsQ0FBQztRQUNKLENBQUM7UUFFRCxJQUFZLFVBQVU7WUFDcEIsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssS0FBSyxTQUFTLENBQUMsQ0FBQztRQUMxRSxDQUFDO1FBRUQsSUFBWSxtQkFBbUI7WUFDN0IsT0FBTyxJQUFJLENBQUMsWUFBWTtpQkFDckIsTUFBTSxDQUFDLENBQUMsT0FBTyxFQUErRCxFQUFFLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztpQkFDM0csR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUNqQixHQUFHLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUUsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDdEQsSUFBSSxFQUFFLE9BQU8sQ0FBQyxRQUFRO2dCQUN0QixTQUFTLEVBQUUsT0FBTyxDQUFDLFNBQVMsSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLFNBQVM7Z0JBQzFELE1BQU0sRUFBRSwwQkFBMEIsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDO2FBQ3JELENBQUMsQ0FBQztpQkFDRixJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxTQUFTLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDM0UsQ0FBQztRQUVELElBQVksaUJBQWlCO1lBQzNCLE9BQU87Z0JBQ0wsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQzdDLEdBQUcsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQW1CLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUNqRSxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFrQixDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDaEQsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBcUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQ25ELEdBQUcsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBdUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7YUFDL0QsQ0FBQztRQUNKLENBQUM7UUFFRCxJQUFZLHNCQUFzQjtZQUNoQyxJQUFJLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQztnQkFBRSxPQUFPLE9BQU8sQ0FBQztZQUM1RCxJQUFJLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNO2dCQUFFLE9BQU8sVUFBVSxDQUFDO1lBQ3ZELElBQUksSUFBSSxDQUFDLFVBQVU7Z0JBQUUsT0FBTyxTQUFTLENBQUM7WUFDdEMsSUFBSSxJQUFJLENBQUMsVUFBVTtnQkFBRSxPQUFPLFlBQVksQ0FBQztZQUN6QyxJQUFJLElBQUksQ0FBQyxtQkFBbUI7Z0JBQUUsT0FBTyxjQUFjLENBQUM7WUFDcEQsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUM5QyxDQUFDO1FBRU8sYUFBYSxDQUNuQixLQUE2QixFQUM3QixRQUFnQixFQUNoQixPQUFlLEVBQ2YsVUFBMEIsRUFDMUIsVUFBVSxHQUFHLEVBQUU7WUFFZixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsZUFBZSxLQUFLLEtBQUssQ0FBQztZQUNoRCxNQUFNLFNBQVMsR0FBRywyQkFBMkIsS0FBSyxFQUFFLENBQUM7WUFDckQsT0FBTyxJQUFJLENBQUE7dUJBQ1EsV0FBVyxLQUFLLFdBQVcsUUFBUSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTs7OzswQkFJcEQsTUFBTSxDQUFDLFFBQVEsQ0FBQzswQkFDaEIsU0FBUzttQkFDaEIsR0FBRyxFQUFFO2dCQUNaLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxJQUFJLENBQUM7Z0JBQ3BDLElBQUksQ0FBQyxlQUFlLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztZQUN0RCxDQUFDOzs7bUJBR1EsUUFBUSxDQUFDLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMscUJBQXFCOzs7NEJBRzlDLE9BQU87NkNBQ1UsUUFBUTtZQUN6QyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQSxnQ0FBZ0MsVUFBVSxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUU7OztlQUd0RSxTQUFTOzs7d0JBR0EsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDO29CQUNyQixDQUFDLFFBQVE7O1lBRWpCLFFBQVEsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFOzs7S0FHakMsQ0FBQztRQUNKLENBQUM7UUFFTyxXQUFXO1lBQ2pCLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxLQUFLLFdBQVcsQ0FBQyxDQUFDLE1BQU0sQ0FBQztZQUNsRixPQUFPLElBQUksQ0FBQyxhQUFhLENBQ3ZCLE9BQU8sRUFDUCxPQUFPLEVBQ1AsbUJBQW1CLEVBQ25CLElBQUksQ0FBQSw4QkFBOEIsSUFBSSxDQUFDLEtBQUssa0JBQWtCLEtBQUssd0JBQXdCLEVBQzNGLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxTQUFTLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUNqRSxDQUFDO1FBQ0osQ0FBQztRQUVPLGtCQUFrQjtZQUN4QixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUM7WUFDekMsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLE1BQU0sS0FBSyxTQUFTLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxTQUFTLENBQUMsQ0FBQztZQUNuRyxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsTUFBTSxLQUFLLFdBQVcsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLE9BQU8sQ0FBQyxDQUFDO1lBQ3BHLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxNQUFNO2dCQUMzQixDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsTUFBTSxhQUFhLE9BQU8sQ0FBQyxNQUFNLE9BQU87Z0JBQ3BELENBQUMsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxNQUFNLE9BQU8sQ0FBQztZQUM3QixPQUFPLElBQUksQ0FBQyxhQUFhLENBQ3ZCLFVBQVUsRUFDVixtQkFBbUIsRUFDbkIsZUFBZSxFQUNmLElBQUksQ0FBQTs7WUFFRSxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQy9ELE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7O09BRXZFLEVBQ0QsT0FBTyxDQUNSLENBQUM7UUFDSixDQUFDO1FBRU8sbUJBQW1CLENBQUMsUUFBZ0IsRUFBRSxVQUFnQztZQUM1RSxPQUFPLElBQUksQ0FBQTtrREFDbUMsUUFBUTswQ0FDaEIsUUFBUTtVQUN4QyxNQUFNLENBQ04sVUFBVSxFQUNWLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUNwQixDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUMzQzs7S0FFSixDQUFDO1FBQ0osQ0FBQztRQUVPLG1CQUFtQixDQUFDLFFBQTRCO1lBQ3RELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUM1RCxNQUFNLEtBQUssR0FBRyxPQUFPLFVBQVUsQ0FBQyxLQUFLLEtBQUssVUFBVTtnQkFDbEQsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztnQkFDakMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUM7WUFDckIsTUFBTSxRQUFRLEdBQUcsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDNUQsTUFBTSxZQUFZLEdBQUcseUJBQXlCLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ25FLE9BQU8sSUFBSSxDQUFBO3VCQUNRLHVCQUF1QixRQUFRLENBQUMsTUFBTSxFQUFFLHNCQUFzQixRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUU7OzRCQUV6RSxVQUFVLENBQUMsSUFBSTs7OztzRUFJMkIsS0FBSyxJQUFJLEtBQUs7MkNBQ3pDLFFBQVEsQ0FBQyxNQUFNOztZQUU5QyxRQUFRO2dCQUNSLENBQUMsQ0FBQyxJQUFJLENBQUEsOERBQThELFFBQVEsSUFBSSxRQUFRLCtCQUErQjtnQkFDdkgsQ0FBQyxDQUFDLEVBQUU7WUFDSixZQUFZLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQSw4QkFBOEIsWUFBWSxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUU7OztLQUdsRixDQUFDO1FBQ0osQ0FBQztRQUVPLGFBQWE7WUFDbkIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztZQUM3QixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUM7WUFDMUMsTUFBTSxJQUFJLEdBQXdDO2dCQUNoRCxDQUFDLGVBQWUsRUFBRSxPQUFPLENBQUMsa0JBQWtCLENBQUM7Z0JBQzdDLENBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxlQUFlLENBQUM7Z0JBQ3hDLENBQUMsMEJBQTBCLEVBQUUsT0FBTyxDQUFDLDRCQUE0QixDQUFDO2dCQUNsRSxDQUFDLGdCQUFnQixFQUFFLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQztnQkFDNUMsQ0FBQyxpQkFBaUIsRUFBRSxPQUFPLENBQUMsb0JBQW9CLENBQUM7YUFDbEQsQ0FBQztZQUNGLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FDdkIsU0FBUyxFQUNULFFBQVEsRUFDUixjQUFjLEVBQ2QsSUFBSSxDQUFBOztZQUVFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUE7O3NCQUVsRCxLQUFLOztrQkFFVCxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsR0FBRyxLQUFLLEtBQUssaUJBQWlCLElBQUksVUFBVSxLQUFLLFNBQVM7Z0JBQ2pGLENBQUMsQ0FBQyxNQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLEdBQUc7Z0JBQ2pDLENBQUMsQ0FBQyxFQUFFOzs7V0FHWCxDQUFDO1lBQ0EsVUFBVSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUE7Ozs7Ozs7OEJBT2xCLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDOzt1REFFTCxVQUFVLFVBQVUsR0FBRzs7V0FFbkU7O09BRUosQ0FDRixDQUFDO1FBQ0osQ0FBQztRQUVPLGdCQUFnQjtZQUN0QixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVyxDQUFDO1lBQ3BDLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FDdkIsWUFBWSxFQUNaLG9CQUFvQixFQUNwQixvQkFBb0IsRUFDcEIsSUFBSSxDQUFBOzs7O21CQUlTLElBQUksQ0FBQyxlQUFlO3NCQUNqQixJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxjQUFjO21CQUN2QyxDQUFDLEtBQWlCLEVBQUUsRUFBRTtnQkFDN0IsSUFBSSxDQUFDLGVBQWUsR0FBSSxLQUFLLENBQUMsYUFBcUMsQ0FBQyxLQUFLLENBQUM7Z0JBQzFFLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLGVBQWUsS0FBSyxVQUFVLENBQUMsSUFBSSxDQUFDO1lBQ2xFLENBQUM7cUJBQ1UsQ0FBQyxLQUFvQixFQUFFLEVBQUU7Z0JBQ2xDLElBQUksS0FBSyxDQUFDLEdBQUcsS0FBSyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO29CQUM5RCxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7b0JBQ3ZCLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztnQkFDeEIsQ0FBQztZQUNILENBQUM7O1VBRUQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFBOzs7Ozs7OzsyQkFRVixJQUFJLENBQUMsc0JBQXNCOzs7Ozs7MkJBTTNCLElBQUksQ0FBQyxxQkFBcUI7Ozs7U0FJNUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtVQUNKLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQSxtQ0FBbUMsSUFBSSxDQUFDLGVBQWUsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFOzswQ0FFL0QsVUFBVSxDQUFDLFFBQVE7Ozs7O3NCQUt2QyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFFBQVE7d0JBQ3hDLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLGNBQWMsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLElBQUksSUFBSSxDQUFDLGVBQWU7dUJBQ3RGLElBQUksQ0FBQyxjQUFjOzs7T0FHbkMsQ0FDRixDQUFDO1FBQ0osQ0FBQztRQUVPLGtCQUFrQjtZQUN4QixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxFQUFFLElBQUksc0JBQXNCLENBQUM7WUFDMUUsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLENBQUMsOEJBQThCLEtBQUssV0FBVyxDQUFDO1lBQ2xGLE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxDQUFDLDhCQUE4QixLQUFLLFVBQVU7Z0JBQzVFLENBQUMsQ0FBQyxZQUFZLE9BQU8sZ0JBQWdCO2dCQUNyQyxDQUFDLENBQUMsSUFBSSxDQUFDLDhCQUE4QixLQUFLLGFBQWE7b0JBQ3JELENBQUMsQ0FBQyxJQUFJLENBQUMsNkJBQTZCLENBQUMsSUFBSSxFQUFFLElBQUksR0FBRyxPQUFPLGtCQUFrQjtvQkFDM0UsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNULE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FDdkIsY0FBYyxFQUNkLE9BQU8sRUFDUCxpQkFBaUIsRUFDakIsSUFBSSxDQUFBOztZQUVFLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQTs7Z0JBRXBDLE1BQU0sQ0FDTixJQUFJLENBQUMscUJBQXFCLEVBQzFCLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUN6QixDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FDNUM7O1dBRUosQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFBLHFGQUFxRjs7Ozs7Ozs7YUFRMUYsbUJBQW1CO2dCQUNwQixDQUFDLENBQUMsSUFBSSxDQUFBLHlDQUF5QyxtQkFBbUIsUUFBUTtnQkFDMUUsQ0FBQyxDQUFDLEVBQUU7Ozt5QkFHUyxPQUFPLE9BQU8sRUFBRTs7OztxQkFJcEIsSUFBSSxDQUFDLG9CQUFvQjt3QkFDdEIsSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLElBQUksQ0FBQyxxQkFBcUI7cUJBQ25FLENBQUMsS0FBaUIsRUFBRSxFQUFFO2dCQUM3QixJQUFJLENBQUMsb0JBQW9CLEdBQUksS0FBSyxDQUFDLGFBQXFDLENBQUMsS0FBSyxDQUFDO1lBQ2pGLENBQUM7dUJBQ1UsQ0FBQyxLQUFvQixFQUFFLEVBQUU7Z0JBQ2xDLElBQUksS0FBSyxDQUFDLEdBQUcsS0FBSyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO29CQUM5RCxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7b0JBQ3ZCLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztnQkFDekIsQ0FBQztZQUNILENBQUM7Ozs7Ozs7O3dCQVFXLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxRQUFROzBCQUMxQyxJQUFJLENBQUMsUUFBUTttQkFDcEIsSUFBSSxDQUFDLGdCQUFnQjttQkFDckIsQ0FBQyxxQkFBcUI7bUJBQ3RCLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksRUFBRTt5QkFDM0IsSUFBSSxDQUFDLGVBQWU7OztZQUdqQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQSxtQ0FBbUMsSUFBSSxDQUFDLGlCQUFpQixRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUU7O09BRXhHLENBQ0YsQ0FBQztRQUNKLENBQUM7UUFFTyxjQUFjLENBQUMsV0FBeUM7WUFDOUQsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksRUFBRSxJQUFJLHNCQUFzQixDQUFDO1lBQzFFLE1BQU0sTUFBTSxHQUFHLFdBQVcsQ0FBQyxNQUFNLEtBQUssU0FBUztnQkFDN0MsQ0FBQyxDQUFDLHVCQUF1QjtnQkFDekIsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxNQUFNLEtBQUssT0FBTztvQkFDOUIsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxLQUFLLElBQUksR0FBRyxPQUFPLFVBQVU7b0JBQzNDLENBQUMsQ0FBQyxXQUFXLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQztZQUMvQixPQUFPLElBQUksQ0FBQTtpQ0FDa0IsV0FBVyxDQUFDLE1BQU07Z0NBQ25CLFdBQVcsQ0FBQyxRQUFROzhCQUN0QixNQUFNO1VBQzFCLFdBQVcsQ0FBQyxLQUFLO2dCQUNqQixDQUFDLENBQUMsSUFBSSxDQUFBLDZCQUE2QixXQUFXLENBQUMsS0FBSyxRQUFRO2dCQUM1RCxDQUFDLENBQUMsRUFBRTs7S0FFVCxDQUFDO1FBQ0osQ0FBQztRQUVPLGdCQUFnQixDQUFDLGFBQWlDO1lBQ3hELElBQUksQ0FBQyxlQUFlLEdBQUcsYUFBYSxDQUFDLElBQUksQ0FBQztZQUMxQyxJQUFJLENBQUMsdUJBQXVCLEdBQUcsYUFBYSxDQUFDLFFBQVEsQ0FBQztZQUN0RCxJQUFJLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQztZQUM3QixJQUFJLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQztRQUMvQixDQUFDO1FBRWdCLHNCQUFzQixHQUFHLEdBQVMsRUFBRTtZQUNuRCxJQUFJLElBQUksQ0FBQyxVQUFVO2dCQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDOUQsQ0FBQyxDQUFDO1FBRWUscUJBQXFCLEdBQUcsR0FBUyxFQUFFO1lBQ2xELElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVTtnQkFBRSxPQUFPO1lBQzdCLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQztZQUN4RCxJQUFJLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQztZQUM3QixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxlQUFlLEtBQUssSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUM7UUFDdkUsQ0FBQyxDQUFDO1FBRWUsY0FBYyxHQUFHLEdBQVMsRUFBRTtZQUMzQyxJQUNFLENBQUMsSUFBSSxDQUFDLFVBQVU7bUJBQ2IsQ0FBQyxJQUFJLENBQUMsZUFBZTttQkFDckIsSUFBSSxDQUFDLGVBQWU7bUJBQ3BCLElBQUksQ0FBQyxRQUFRO21CQUNiLElBQUksQ0FBQyxjQUFjO2dCQUN0QixPQUFPO1lBQ1QsTUFBTSxNQUFNLEdBQWlDO2dCQUMzQyxJQUFJLEVBQUUsSUFBSSxDQUFDLGVBQWU7Z0JBQzFCLGdCQUFnQixFQUFFLElBQUksQ0FBQyx1QkFBdUI7YUFDL0MsQ0FBQztZQUNGLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxXQUFXLENBQUMseUJBQXlCLEVBQUU7Z0JBQzVELE1BQU07Z0JBQ04sT0FBTyxFQUFFLElBQUk7Z0JBQ2IsUUFBUSxFQUFFLElBQUk7YUFDZixDQUFDLENBQUMsQ0FBQztRQUNOLENBQUMsQ0FBQztRQUVlLGVBQWUsR0FBRyxHQUFTLEVBQUU7WUFDNUMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2xELElBQ0UsQ0FBQyxRQUFRO21CQUNOLENBQUMsSUFBSSxDQUFDLG1CQUFtQjttQkFDekIsSUFBSSxDQUFDLDhCQUE4QixLQUFLLFdBQVc7bUJBQ25ELElBQUksQ0FBQyxRQUFRO21CQUNiLElBQUksQ0FBQyxnQkFBZ0I7Z0JBQ3hCLE9BQU87WUFDVCxNQUFNLE1BQU0sR0FBeUMsRUFBRSxRQUFRLEVBQUUsQ0FBQztZQUNsRSxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksV0FBVyxDQUFDLGtDQUFrQyxFQUFFO2dCQUNyRSxNQUFNO2dCQUNOLE9BQU8sRUFBRSxJQUFJO2dCQUNiLFFBQVEsRUFBRSxJQUFJO2FBQ2YsQ0FBQyxDQUFDLENBQUM7WUFDSixJQUFJLENBQUMsb0JBQW9CLEdBQUcsRUFBRSxDQUFDO1FBQ2pDLENBQUMsQ0FBQzs7WUFqK0JTLHVEQUF5Qjs7Ozs7U0FBekIseUJBQXlCIn0=
@@ -99,6 +99,7 @@ export interface IHarnessScratchpadSaveDetail {
99
99
  expectedRevision: number;
100
100
  }
101
101
  export type THarnessIntelligenceStatus = 'running' | 'completed' | 'error';
102
+ export type THarnessIntelligenceAvailabilityStatus = 'checking' | 'available' | 'unavailable';
102
103
  export interface IHarnessIntelligenceExchange {
103
104
  id: string;
104
105
  question: string;
@@ -11,6 +11,7 @@ export declare class CanvasPool {
11
11
  private static readonly MAX_CANVAS_SIZE;
12
12
  static acquire(width: number, height: number): PooledCanvas;
13
13
  static release(pooledCanvas: PooledCanvas): void;
14
+ static discard(pooledCanvas: PooledCanvas): void;
14
15
  static releaseAll(): void;
15
16
  static destroy(): void;
16
17
  static getStats(): {
@@ -67,6 +67,20 @@ export class CanvasPool {
67
67
  // Clear canvas to free memory
68
68
  pooledCanvas.ctx.clearRect(0, 0, pooledCanvas.canvas.width, pooledCanvas.canvas.height);
69
69
  }
70
+ else {
71
+ pooledCanvas.inUse = false;
72
+ pooledCanvas.canvas.width = 0;
73
+ pooledCanvas.canvas.height = 0;
74
+ }
75
+ }
76
+ static discard(pooledCanvas) {
77
+ const index = this.pool.indexOf(pooledCanvas);
78
+ if (index >= 0) {
79
+ this.pool.splice(index, 1);
80
+ }
81
+ pooledCanvas.inUse = false;
82
+ pooledCanvas.canvas.width = 0;
83
+ pooledCanvas.canvas.height = 0;
70
84
  }
71
85
  static releaseAll() {
72
86
  for (const item of this.pool) {
@@ -106,4 +120,4 @@ export class CanvasPool {
106
120
  this.maxPoolSize = newSize;
107
121
  }
108
122
  }
109
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2FudmFzUG9vbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3RzX3dlYi9lbGVtZW50cy8wMGdyb3VwLW1lZGlhL2RlZXMtcGRmLXNoYXJlZC9DYW52YXNQb29sLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU9BLE1BQU0sT0FBTyxVQUFVO0lBQ2IsTUFBTSxDQUFDLElBQUksR0FBbUIsRUFBRSxDQUFDO0lBQ2pDLE1BQU0sQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDO0lBQ3hCLE1BQU0sQ0FBVSxlQUFlLEdBQUcsR0FBRyxDQUFDO0lBQ3RDLE1BQU0sQ0FBVSxlQUFlLEdBQUcsSUFBSSxDQUFDO0lBRXhDLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBYSxFQUFFLE1BQWM7UUFDakQsOENBQThDO1FBQzlDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUM3QixDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSztZQUNyQixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssSUFBSSxLQUFLO1lBQzFCLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxJQUFJLE1BQU07WUFDNUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLElBQUksS0FBSyxHQUFHLEdBQUc7WUFDaEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLElBQUksTUFBTSxHQUFHLEdBQUcsQ0FDbkMsQ0FBQztRQUVGLElBQUksUUFBUSxFQUFFLENBQUM7WUFDYixRQUFRLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztZQUN0QixRQUFRLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUUvQiw2QkFBNkI7WUFDN0IsUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1lBQzlCLFFBQVEsQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztZQUNoQyxRQUFRLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztZQUU1QyxPQUFPLFFBQVEsQ0FBQztRQUNsQixDQUFDO1FBRUQscUNBQXFDO1FBQ3JDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3hDLE1BQU0sTUFBTSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDaEQsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUU7Z0JBQ2xDLEtBQUssRUFBRSxJQUFJO2dCQUNYLGNBQWMsRUFBRSxJQUFJO2FBQ3JCLENBQTZCLENBQUM7WUFFL0IsTUFBTSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7WUFDckYsTUFBTSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7WUFFdkYsTUFBTSxZQUFZLEdBQWlCO2dCQUNqQyxNQUFNO2dCQUNOLEdBQUc7Z0JBQ0gsS0FBSyxFQUFFLElBQUk7Z0JBQ1gsUUFBUSxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUU7YUFDckIsQ0FBQztZQUVGLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQzdCLE9BQU8sWUFBWSxDQUFDO1FBQ3RCLENBQUM7UUFFRCw2Q0FBNkM7UUFDN0MsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLElBQUk7YUFDbEIsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7YUFDN0IsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFOUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztZQUNSLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztZQUN6QixHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7WUFDM0IsR0FBRyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDdkMsR0FBRyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7WUFDakIsR0FBRyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDMUIsT0FBTyxHQUFHLENBQUM7UUFDYixDQUFDO1FBRUQsZ0VBQWdFO1FBQ2hFLE1BQU0sTUFBTSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDaEQsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQTZCLENBQUM7UUFDaEUsTUFBTSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDckIsTUFBTSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFFdkIsT0FBTztZQUNMLE1BQU07WUFDTixHQUFHO1lBQ0gsS0FBSyxFQUFFLElBQUk7WUFDWCxRQUFRLEVBQUUsSUFBSSxDQUFDLEdBQUcsRUFBRTtTQUNyQixDQUFDO0lBQ0osQ0FBQztJQUVNLE1BQU0sQ0FBQyxPQUFPLENBQUMsWUFBMEI7UUFDOUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDO1lBQ3JDLFlBQVksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1lBQzNCLDhCQUE4QjtZQUM5QixZQUFZLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLFlBQVksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLFlBQVksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDMUYsQ0FBQztJQUNILENBQUM7SUFFTSxNQUFNLENBQUMsVUFBVTtRQUN0QixLQUFLLE1BQU0sSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUM3QixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztZQUNuQixJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbEUsQ0FBQztJQUNILENBQUM7SUFFTSxNQUFNLENBQUMsT0FBTztRQUNuQixLQUFLLE1BQU0sSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUM3QixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUM7WUFDdEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQ3pCLENBQUM7UUFDRCxJQUFJLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBRU0sTUFBTSxDQUFDLFFBQVE7UUFDcEIsT0FBTztZQUNMLFFBQVEsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU07WUFDMUIsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXO1lBQzdCLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU07WUFDcEQsU0FBUyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNO1NBQzFELENBQUM7SUFDSixDQUFDO0lBRU0sTUFBTSxDQUFDLGNBQWMsQ0FBQyxPQUFlO1FBQzFDLElBQUksT0FBTyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDL0IseUJBQXlCO1lBQ3pCLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQztZQUM1QyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSTtpQkFDdEIsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7aUJBQzdCLEtBQUssQ0FBQyxDQUFDLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFFdEIsS0FBSyxNQUFNLElBQUksSUFBSSxPQUFPLEVBQUUsQ0FBQztnQkFDM0IsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3RDLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUM7b0JBQ2YsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUM3QixDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7UUFDRCxJQUFJLENBQUMsV0FBVyxHQUFHLE9BQU8sQ0FBQztJQUM3QixDQUFDIn0=
123
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2FudmFzUG9vbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3RzX3dlYi9lbGVtZW50cy8wMGdyb3VwLW1lZGlhL2RlZXMtcGRmLXNoYXJlZC9DYW52YXNQb29sLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU9BLE1BQU0sT0FBTyxVQUFVO0lBQ2IsTUFBTSxDQUFDLElBQUksR0FBbUIsRUFBRSxDQUFDO0lBQ2pDLE1BQU0sQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDO0lBQ3hCLE1BQU0sQ0FBVSxlQUFlLEdBQUcsR0FBRyxDQUFDO0lBQ3RDLE1BQU0sQ0FBVSxlQUFlLEdBQUcsSUFBSSxDQUFDO0lBRXhDLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBYSxFQUFFLE1BQWM7UUFDakQsOENBQThDO1FBQzlDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUM3QixDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSztZQUNyQixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssSUFBSSxLQUFLO1lBQzFCLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxJQUFJLE1BQU07WUFDNUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLElBQUksS0FBSyxHQUFHLEdBQUc7WUFDaEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLElBQUksTUFBTSxHQUFHLEdBQUcsQ0FDbkMsQ0FBQztRQUVGLElBQUksUUFBUSxFQUFFLENBQUM7WUFDYixRQUFRLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztZQUN0QixRQUFRLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUUvQiw2QkFBNkI7WUFDN0IsUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1lBQzlCLFFBQVEsQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztZQUNoQyxRQUFRLENB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
@@ -1,7 +1,9 @@
1
+ import { type PDFDocumentProxy } from 'pdfjs-dist';
1
2
  export declare class PdfManager {
2
- private static pdfjsLib;
3
- private static initialized;
3
+ private static readonly resourcesByDocument;
4
+ private static readonly releasedDocuments;
4
5
  static initialize(): Promise<void>;
5
- static loadDocument(url: string): Promise<any>;
6
- static releaseDocument(_url: string): void;
6
+ static loadDocument(urlArg: string, signalArg?: AbortSignal): Promise<PDFDocumentProxy>;
7
+ static releaseDocument(documentArg: PDFDocumentProxy | null | undefined): Promise<void>;
8
+ private static releaseResources;
7
9
  }
@@ -1,27 +1,189 @@
1
- import { domtools } from '@design.estate/dees-element';
1
+ import { getDocument, PDFWorker, } from 'pdfjs-dist';
2
+ const normalizeError = (errorArg) => (errorArg instanceof Error ? errorArg : new Error(String(errorArg)));
3
+ const createAbortError = () => {
4
+ const error = new Error('PDF load aborted');
5
+ error.name = 'AbortError';
6
+ return error;
7
+ };
8
+ const workerTerminationGraceMs = 2_000;
2
9
  export class PdfManager {
3
- static pdfjsLib;
4
- static initialized = false;
10
+ static resourcesByDocument = new WeakMap();
11
+ static releasedDocuments = new WeakSet();
5
12
  static async initialize() {
6
- if (this.initialized)
7
- return;
8
- // @ts-ignore
9
- this.pdfjsLib = await import('https://cdn.jsdelivr.net/npm/pdfjs-dist@4.0.379/+esm');
10
- this.pdfjsLib.GlobalWorkerOptions.workerSrc = 'https://cdn.jsdelivr.net/npm/pdfjs-dist@4.0.379/build/pdf.worker.mjs';
11
- this.initialized = true;
13
+ // PDF.js is loaded statically; retained for existing callers.
14
+ }
15
+ static async loadDocument(urlArg, signalArg) {
16
+ const workerPort = new Worker(new URL('pdfjs-dist/build/pdf.worker.mjs', import.meta.url), { type: 'module' });
17
+ let resolveInterruption;
18
+ const interruptionPromise = new Promise((resolve) => {
19
+ resolveInterruption = resolve;
20
+ });
21
+ let resolveWorkerFailure;
22
+ const workerFailurePromise = new Promise((resolve) => {
23
+ resolveWorkerFailure = resolve;
24
+ });
25
+ const resources = {
26
+ workerPort,
27
+ networkAbortController: new AbortController(),
28
+ workerFailed: false,
29
+ interruptionPromise,
30
+ resolveInterruption,
31
+ workerFailurePromise,
32
+ resolveWorkerFailure,
33
+ };
34
+ const recordInterruption = (errorArg) => {
35
+ if (!resources.firstError) {
36
+ resources.firstError = errorArg;
37
+ resources.resolveInterruption(errorArg);
38
+ }
39
+ };
40
+ resources.workerErrorListener = (eventArg) => {
41
+ if (!resources.workerFailed) {
42
+ resources.workerFailed = true;
43
+ resources.resolveWorkerFailure();
44
+ }
45
+ const message = eventArg instanceof ErrorEvent && eventArg.message
46
+ ? eventArg.message
47
+ : 'PDF worker failed';
48
+ recordInterruption(new Error(message));
49
+ void this.releaseResources(resources).catch(() => { });
50
+ };
51
+ workerPort.addEventListener('error', resources.workerErrorListener);
52
+ try {
53
+ if (signalArg) {
54
+ resources.abortSignal = signalArg;
55
+ resources.abortListener = () => {
56
+ recordInterruption(createAbortError());
57
+ void this.releaseResources(resources).catch(() => { });
58
+ };
59
+ signalArg.addEventListener('abort', resources.abortListener, { once: true });
60
+ if (signalArg.aborted) {
61
+ resources.abortListener();
62
+ throw resources.firstError || createAbortError();
63
+ }
64
+ }
65
+ resources.pdfWorker = PDFWorker.fromPort({ port: workerPort });
66
+ const response = await Promise.race([
67
+ fetch(urlArg, {
68
+ signal: resources.networkAbortController.signal,
69
+ }),
70
+ resources.interruptionPromise.then((errorArg) => {
71
+ throw errorArg;
72
+ }),
73
+ ]);
74
+ if (!response.ok) {
75
+ throw new Error(`Failed to load PDF (${response.status} ${response.statusText})`);
76
+ }
77
+ const data = new Uint8Array(await Promise.race([
78
+ response.arrayBuffer(),
79
+ resources.interruptionPromise.then((errorArg) => {
80
+ throw errorArg;
81
+ }),
82
+ ]));
83
+ resources.loadingTask = getDocument({
84
+ data,
85
+ docBaseUrl: response.url || urlArg,
86
+ worker: resources.pdfWorker,
87
+ });
88
+ const document = await Promise.race([
89
+ resources.loadingTask.promise,
90
+ resources.interruptionPromise.then((errorArg) => {
91
+ throw errorArg;
92
+ }),
93
+ ]);
94
+ if (signalArg?.aborted) {
95
+ resources.abortListener?.();
96
+ throw resources.firstError || createAbortError();
97
+ }
98
+ if (resources.abortSignal && resources.abortListener) {
99
+ resources.abortSignal.removeEventListener('abort', resources.abortListener);
100
+ resources.abortSignal = undefined;
101
+ resources.abortListener = undefined;
102
+ }
103
+ resources.document = document;
104
+ this.resourcesByDocument.set(document, resources);
105
+ return document;
106
+ }
107
+ catch (error) {
108
+ recordInterruption(normalizeError(error));
109
+ try {
110
+ await this.releaseResources(resources);
111
+ }
112
+ catch {
113
+ // Preserve the load, abort, or worker error that initiated cleanup.
114
+ }
115
+ throw resources.firstError;
116
+ }
12
117
  }
13
- static async loadDocument(url) {
14
- await this.initialize();
15
- // IMPORTANT: Disabled caching to ensure component isolation
16
- // Each viewer instance gets its own document to prevent state sharing
17
- // This fixes issues where multiple viewers interfere with each other
18
- const loadingTask = this.pdfjsLib.getDocument(url);
19
- const document = await loadingTask.promise;
20
- return document;
118
+ static async releaseDocument(documentArg) {
119
+ if (!documentArg)
120
+ return;
121
+ if (this.releasedDocuments.has(documentArg))
122
+ return;
123
+ const resources = this.resourcesByDocument.get(documentArg);
124
+ if (!resources) {
125
+ await documentArg.destroy();
126
+ this.releasedDocuments.add(documentArg);
127
+ return;
128
+ }
129
+ await this.releaseResources(resources);
21
130
  }
22
- static releaseDocument(_url) {
23
- // No-op since we're not caching documents anymore
24
- // Each viewer manages its own document lifecycle
131
+ static releaseResources(resourcesArg) {
132
+ if (!resourcesArg.releasePromise) {
133
+ let resolveRelease;
134
+ let rejectRelease;
135
+ resourcesArg.releasePromise = new Promise((resolve, reject) => {
136
+ resolveRelease = resolve;
137
+ rejectRelease = reject;
138
+ });
139
+ void (async () => {
140
+ resourcesArg.networkAbortController.abort();
141
+ try {
142
+ if (resourcesArg.loadingTask) {
143
+ const loadingTaskDestroyPromise = resourcesArg.loadingTask.destroy();
144
+ void loadingTaskDestroyPromise.catch(() => { });
145
+ let timeout;
146
+ const timeoutPromise = new Promise((resolve) => {
147
+ timeout = setTimeout(resolve, workerTerminationGraceMs);
148
+ });
149
+ try {
150
+ await Promise.race([
151
+ loadingTaskDestroyPromise,
152
+ resourcesArg.workerFailurePromise,
153
+ timeoutPromise,
154
+ ]);
155
+ }
156
+ finally {
157
+ if (timeout) {
158
+ clearTimeout(timeout);
159
+ }
160
+ }
161
+ }
162
+ }
163
+ finally {
164
+ try {
165
+ resourcesArg.pdfWorker?.destroy();
166
+ }
167
+ finally {
168
+ if (resourcesArg.abortSignal && resourcesArg.abortListener) {
169
+ resourcesArg.abortSignal.removeEventListener('abort', resourcesArg.abortListener);
170
+ }
171
+ if (resourcesArg.workerErrorListener) {
172
+ resourcesArg.workerPort.removeEventListener('error', resourcesArg.workerErrorListener);
173
+ }
174
+ resourcesArg.workerPort.terminate();
175
+ if (resourcesArg.document) {
176
+ this.releasedDocuments.add(resourcesArg.document);
177
+ this.resourcesByDocument.delete(resourcesArg.document);
178
+ }
179
+ resourcesArg.document = undefined;
180
+ resourcesArg.loadingTask = undefined;
181
+ resourcesArg.pdfWorker = undefined;
182
+ }
183
+ }
184
+ })().then(resolveRelease, rejectRelease);
185
+ }
186
+ return resourcesArg.releasePromise;
25
187
  }
26
188
  }
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGRmTWFuYWdlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3RzX3dlYi9lbGVtZW50cy8wMGdyb3VwLW1lZGlhL2RlZXMtcGRmLXNoYXJlZC9QZGZNYW5hZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUV2RCxNQUFNLE9BQU8sVUFBVTtJQUNiLE1BQU0sQ0FBQyxRQUFRLENBQU07SUFDckIsTUFBTSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7SUFFNUIsTUFBTSxDQUFDLEtBQUssQ0FBQyxVQUFVO1FBQzVCLElBQUksSUFBSSxDQUFDLFdBQVc7WUFBRSxPQUFPO1FBRTdCLGFBQWE7UUFDYixJQUFJLENBQUMsUUFBUSxHQUFHLE1BQU0sTUFBTSxDQUFDLHNEQUFzRCxDQUFDLENBQUM7UUFDckYsSUFBSSxDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxTQUFTLEdBQUcsc0VBQXNFLENBQUM7UUFFckgsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7SUFDMUIsQ0FBQztJQUVNLE1BQU0sQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLEdBQVc7UUFDMUMsTUFBTSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFFeEIsNERBQTREO1FBQzVELHNFQUFzRTtRQUN0RSxxRUFBcUU7UUFDckUsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbkQsTUFBTSxRQUFRLEdBQUcsTUFBTSxXQUFXLENBQUMsT0FBTyxDQUFDO1FBRTNDLE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7SUFFTSxNQUFNLENBQUMsZUFBZSxDQUFDLElBQVk7UUFDeEMsa0RBQWtEO1FBQ2xELGlEQUFpRDtJQUNuRCxDQUFDIn0=
189
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGRmTWFuYWdlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3RzX3dlYi9lbGVtZW50cy8wMGdyb3VwLW1lZGlhL2RlZXMtcGRmLXNoYXJlZC9QZGZNYW5hZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxXQUFXLEVBQ1gsU0FBUyxHQUdWLE1BQU0sWUFBWSxDQUFDO0FBb0JwQixNQUFNLGNBQWMsR0FBRyxDQUFDLFFBQWlCLEVBQVMsRUFBRSxDQUFDLENBQ25ELFFBQVEsWUFBWSxLQUFLLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQ25FLENBQUM7QUFFRixNQUFNLGdCQUFnQixHQUFHLEdBQVUsRUFBRTtJQUNuQyxNQUFNLEtBQUssR0FBRyxJQUFJLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQzVDLEtBQUssQ0FBQyxJQUFJLEdBQUcsWUFBWSxDQUFDO0lBQzFCLE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQyxDQUFDO0FBRUYsTUFBTSx3QkFBd0IsR0FBRyxLQUFLLENBQUM7QUFFdkMsTUFBTSxPQUFPLFVBQVU7SUFDYixNQUFNLENBQVUsbUJBQW1CLEdBQUcsSUFBSSxPQUFPLEVBR3RELENBQUM7SUFDSSxNQUFNLENBQVUsaUJBQWlCLEdBQUcsSUFBSSxPQUFPLEVBQW9CLENBQUM7SUFFckUsTUFBTSxDQUFDLEtBQUssQ0FBQyxVQUFVO1FBQzVCLDhEQUE4RDtJQUNoRSxDQUFDO0lBRU0sTUFBTSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQzlCLE1BQWMsRUFDZCxTQUF1QjtRQUV2QixNQUFNLFVBQVUsR0FBRyxJQUFJLE1BQU0sQ0FDM0IsSUFBSSxHQUFHLENBQUMsaUNBQWlDLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFDM0QsRUFBRSxJQUFJLEVBQUUsUUFBUSxF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
@@ -1,6 +1,9 @@
1
1
  export declare function debounce<T extends (...args: any[]) => any>(func: T, wait: number): (...args: Parameters<T>) => void;
2
2
  export declare function throttle<T extends (...args: any[]) => any>(func: T, limit: number): (...args: Parameters<T>) => void;
3
3
  export declare function formatFileSize(bytes: number): string;
4
+ export declare function settlePromisesWithin(promisesArg: readonly Promise<unknown>[], timeoutMsArg: number): Promise<boolean>;
5
+ export declare function raceWithAbort<T>(promiseArg: Promise<T>, signalArg: AbortSignal): Promise<T>;
6
+ export declare const waitForAnimationFrame: (signalArg?: AbortSignal) => Promise<void>;
4
7
  export declare function isInViewport(element: Element, margin?: number): boolean;
5
8
  export declare class PerformanceMonitor {
6
9
  private static marks;