@eluvio/elv-player-js 1.0.140 → 2.0.1

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 (102) hide show
  1. package/README.md +35 -6
  2. package/dist/.vite/manifest.json +67 -0
  3. package/dist/Analytics-HWXR7tWt.mjs +2028 -0
  4. package/dist/Analytics-IUVysdzU.js +29 -0
  5. package/dist/dash.all.min-1QS9Xbir.js +25 -0
  6. package/dist/dash.all.min-9V1xYBRv.mjs +19428 -0
  7. package/dist/elv-player-js.cjs.js +1 -0
  8. package/dist/elv-player-js.css +1 -0
  9. package/dist/elv-player-js.es.js +5 -0
  10. package/dist/hls-1eCRapWm.mjs +15461 -0
  11. package/dist/hls-6O5SV1FQ.js +26 -0
  12. package/dist/index-6cMQneJf.mjs +2273 -0
  13. package/dist/index-C8mwW09z.js +23 -0
  14. package/dist/index-J4QpmTkA.js +367 -0
  15. package/dist/index-hvQzQ6UX.mjs +67432 -0
  16. package/lib/index.js +7 -0
  17. package/{src → lib/player}/Analytics.js +9 -8
  18. package/lib/player/Controls.js +913 -0
  19. package/{src → lib/player}/FairPlay.js +2 -0
  20. package/lib/player/Player.js +881 -0
  21. package/lib/player/PlayerParameters.js +173 -0
  22. package/lib/static/icons/Icons.js +29 -0
  23. package/lib/static/icons/svgs/backward-circle.svg +5 -0
  24. package/lib/static/icons/svgs/backward.svg +4 -0
  25. package/lib/static/icons/svgs/captions-off.svg +7 -0
  26. package/lib/static/icons/svgs/captions.svg +6 -0
  27. package/lib/static/icons/svgs/check.svg +1 -0
  28. package/lib/static/icons/svgs/chevron-left.svg +1 -0
  29. package/lib/static/icons/svgs/chevron-right.svg +1 -0
  30. package/lib/static/icons/svgs/forward-circle.svg +5 -0
  31. package/lib/static/icons/svgs/forward.svg +4 -0
  32. package/{src/static/icons/media/Full Screen icon.svg → lib/static/icons/svgs/full-screen.svg} +1 -1
  33. package/lib/static/icons/svgs/large-play-circle.svg +4 -0
  34. package/lib/static/icons/svgs/list.svg +1 -0
  35. package/{src/static/icons → lib/static/icons/svgs}/minimize.svg +1 -1
  36. package/{src/static/icons/media/Pause icon.svg → lib/static/icons/svgs/pause-circle.svg} +3 -3
  37. package/lib/static/icons/svgs/pause.svg +1 -0
  38. package/{src/static/icons/media/Play icon.svg → lib/static/icons/svgs/play-circle.svg} +1 -1
  39. package/lib/static/icons/svgs/play.svg +1 -0
  40. package/lib/static/icons/svgs/rotate-cw.svg +1 -0
  41. package/lib/static/icons/svgs/settings.svg +11 -0
  42. package/{src/static/icons/media/skip back icon.svg → lib/static/icons/svgs/skip-backward.svg} +2 -3
  43. package/{src/static/icons/media/Skip forward icon.svg → lib/static/icons/svgs/skip-forward.svg} +2 -3
  44. package/{src/static/icons/media/Volume icon.svg → lib/static/icons/svgs/volume-high.svg} +3 -3
  45. package/lib/static/icons/svgs/volume-low.svg +10 -0
  46. package/{src/static/icons/media/low volume icon.svg → lib/static/icons/svgs/volume-medium.svg} +2 -2
  47. package/{src/static/icons/media/no volume icon.svg → lib/static/icons/svgs/volume-off.svg} +3 -3
  48. package/lib/static/stylesheets/common.module.scss +486 -0
  49. package/lib/static/stylesheets/controls-tv.module.scss +488 -0
  50. package/lib/static/stylesheets/controls-web.module.scss +422 -0
  51. package/lib/static/stylesheets/player-profile-form.module.scss +141 -0
  52. package/lib/static/stylesheets/player.module.scss +92 -0
  53. package/lib/static/stylesheets/reset.module.scss +79 -0
  54. package/lib/static/stylesheets/ticket-form.module.scss +123 -0
  55. package/lib/ui/BuildIcons.cjs +44 -0
  56. package/lib/ui/Common.js +210 -0
  57. package/lib/ui/Components.jsx +342 -0
  58. package/lib/ui/Observers.js +449 -0
  59. package/lib/ui/PlayerProfileForm.jsx +106 -0
  60. package/lib/ui/PlayerUI.jsx +317 -0
  61. package/lib/ui/TVControls.jsx +337 -0
  62. package/lib/ui/TicketForm.jsx +147 -0
  63. package/lib/ui/WebControls.jsx +290 -0
  64. package/package.json +35 -47
  65. package/dist/index.js +0 -2
  66. package/dist/index.js.LICENSE.txt +0 -80
  67. package/src/BuildIcons.js +0 -27
  68. package/src/PlayerControls.js +0 -1478
  69. package/src/index.js +0 -1417
  70. package/src/static/icons/Icons.js +0 -15
  71. package/src/static/icons/Settings icon.svg +0 -4
  72. package/src/static/icons/chat icon collapse.svg +0 -1
  73. package/src/static/icons/chat icon.svg +0 -11
  74. package/src/static/icons/chat send.svg +0 -1
  75. package/src/static/icons/full screen.svg +0 -1
  76. package/src/static/icons/media/LargePlayIcon.svg +0 -4
  77. package/src/static/icons/media/Settings icon.svg +0 -4
  78. package/src/static/icons/media/Skip backward icon.svg +0 -4
  79. package/src/static/icons/media/list.svg +0 -1
  80. package/src/static/icons/media/loop icon.svg +0 -12
  81. package/src/static/icons/media/shuffle icon.svg +0 -13
  82. package/src/static/icons/muted.svg +0 -11
  83. package/src/static/icons/pause.svg +0 -1
  84. package/src/static/icons/play circle.svg +0 -1
  85. package/src/static/icons/play.svg +0 -1
  86. package/src/static/icons/settings.svg +0 -1
  87. package/src/static/icons/slider circle.svg +0 -1
  88. package/src/static/icons/unmuted.svg +0 -10
  89. package/src/static/images/ELUV.IO logo embed player.png +0 -0
  90. package/src/static/images/ELUV.IO logo embed player.svg +0 -1
  91. package/src/static/images/ELUV.IO white 20 px V2.png +0 -0
  92. package/src/static/images/ELUVIO white.svg +0 -26
  93. package/src/static/images/Logo.png +0 -0
  94. package/src/static/stylesheets/player.scss +0 -1065
  95. package/webpack.config.js +0 -152
  96. /package/{src/static/icons → lib/static/icons/svgs}/arrow-left.svg +0 -0
  97. /package/{src/static/icons/live icon.svg → lib/static/icons/svgs/live.svg} +0 -0
  98. /package/{src/static/icons → lib/static/icons/svgs}/multiview.svg +0 -0
  99. /package/{src/static/icons/media → lib/static/icons/svgs}/next.svg +0 -0
  100. /package/{src/static/icons/media → lib/static/icons/svgs}/previous.svg +0 -0
  101. /package/{src/static/icons → lib/static/icons/svgs}/x.svg +0 -0
  102. /package/{dist/5897e28fa3e8ac0a2fae.png → lib/static/images/Logo.png} +0 -0
@@ -0,0 +1,2273 @@
1
+ import { c as cI, e as CI, r as vA, a as eI, b as fA, i as dA, s as xA, g as wI } from "./index-hvQzQ6UX.mjs";
2
+ class EA {
3
+ constructor(I) {
4
+ this.wasm = I;
5
+ }
6
+ /*
7
+ * Converts a byte array (Uint8Array) to hex string
8
+ */
9
+ static bytesToHex(I) {
10
+ return I.reduce(
11
+ (A, Q) => A + Q.toString(16).padStart(2, "0"),
12
+ ""
13
+ );
14
+ }
15
+ static bytesToBinary(I) {
16
+ return I.reduce(
17
+ (A, Q) => A + Q.toString(2).padStart(8, "0") + " ",
18
+ ""
19
+ );
20
+ }
21
+ /*
22
+ * Converts a hex string to a byte array (Uint8Array)
23
+ */
24
+ static hexToBytes(I) {
25
+ return new Uint8Array(
26
+ I.match(/.{1,2}/g).map((A) => parseInt(A, 16))
27
+ );
28
+ }
29
+ static randomBytes(I) {
30
+ if (typeof window < "u" && window.crypto !== "undefined") {
31
+ let A = new Uint8Array(I);
32
+ return window.crypto.getRandomValues(A), A;
33
+ } else
34
+ return cI.randomBytes(I);
35
+ }
36
+ /*
37
+ * Write TypedArray to memory to use in a WASM function call. Caller is
38
+ * responsible for freeing the pointer.
39
+ *
40
+ * Returns {
41
+ * ptr: [for WASM],
42
+ * len: arr.length
43
+ * }
44
+ */
45
+ arrayToBuf(I) {
46
+ const A = this.wasm, Q = {
47
+ ptr: null,
48
+ len: 0
49
+ };
50
+ if (!I)
51
+ return Q;
52
+ let C = null;
53
+ if (I instanceof Uint8Array || typeof Buffer < "u" && I instanceof Buffer)
54
+ C = I;
55
+ else if (I instanceof ArrayBuffer || I.__proto__.toString().includes("ArrayBuffer"))
56
+ C = new Uint8Array(I);
57
+ else
58
+ throw new Error(`arrayToBuf() failed: Expected Uint8Array, Buffer, or
59
+ ArrayBuffer`);
60
+ return Q.len = C.length, Q.ptr = A._malloc(C.length), A.writeArrayToMemory(C, Q.ptr), Q;
61
+ }
62
+ /*
63
+ * Automatically free the pointer later on the event loop
64
+ */
65
+ arrayToSmartBuf(I) {
66
+ const A = this.wasm, Q = this.arrayToBuf(I);
67
+ return Q.ptr && setTimeout(() => {
68
+ A._free(Q.ptr), Q.len = 0, Q.ptr = null;
69
+ }, 0), Q;
70
+ }
71
+ /*
72
+ * Allocate a buffer to be automatically freed later on the event loop
73
+ */
74
+ smartMalloc(I) {
75
+ const A = this.wasm, Q = A._malloc(I);
76
+ return setTimeout(() => {
77
+ A._free(Q);
78
+ }, 0), Q;
79
+ }
80
+ }
81
+ class OA {
82
+ constructor(I) {
83
+ this.wasm = I, this.ptr = null, this.len = 0;
84
+ }
85
+ clear() {
86
+ this.len = 0;
87
+ }
88
+ free() {
89
+ this.ptr !== null && (this.wasm._free(this.ptr), this.len = 0, this.ptr = null);
90
+ }
91
+ resize(I) {
92
+ this.ptr !== null && this.free(), this.len = I, this.ptr = this.wasm._malloc(I);
93
+ }
94
+ ensureSize(I) {
95
+ (this.ptr === null || this.len < I) && this.resize(I);
96
+ }
97
+ }
98
+ class yI {
99
+ /*
100
+ * wasm
101
+ * secretKey [Uint8Array SECRET_KEY_SIZE]
102
+ * symmetricKey [Uint8Array AES_KEY_SIZE]
103
+ */
104
+ constructor(I, A, Q) {
105
+ const C = new EA(I);
106
+ this.wasm = I, this.utils = C, this.context = I._NewCryptoContext(null, 0), this.scratchBuf = new OA(I), this.sk = A, this.skBuf = C.arrayToBuf(A), this.symKey = Q, this.symKeyBuf = C.arrayToBuf(Q);
107
+ }
108
+ clearBuf() {
109
+ this.scratchBuf.clear();
110
+ }
111
+ free() {
112
+ if (!this.context)
113
+ return;
114
+ const I = this.wasm;
115
+ I._FreeCryptoContext(this.context), this.scratchBuf.free(), I._free(this.skBuf.ptr), I._free(this.symKeyBuf.ptr), this.context = null, this.scratchBuf = null, this.sk = null, this.skBuf = null, this.symKey = null, this.symKeyBuf = null, this.utils = null, this.wasm = null;
116
+ }
117
+ }
118
+ class lI {
119
+ /*
120
+ * wasm
121
+ * publicKey [Uint8Array PRIMARY_PK_KEY_SIZE]
122
+ * secretKey [Uint8Array SECRET_KEY_SIZE] - Optional (needed for DecryptPrimary)
123
+ * symmetricKey [Uint8Array AES_KEY_SIZE]
124
+ * iv [Uint8Array IV_SIZE]
125
+ */
126
+ constructor(I, A, Q, C, o) {
127
+ const a = new EA(I), h = EA.randomBytes(I._EMS_SEED_SIZE_()), r = a.arrayToSmartBuf(h);
128
+ this.wasm = I, this.utils = a, this.context = I._NewCryptoContext(r.ptr, r.len), this.iv = o, this.pk = A, this.pkBuf = a.arrayToBuf(A), this.scratchBuf = new OA(I), this.sk = Q, this.skBuf = a.arrayToBuf(Q), this.symKey = C, this.symKeyBuf = a.arrayToBuf(C);
129
+ }
130
+ clearBuf() {
131
+ this.scratchBuf.clear();
132
+ }
133
+ free() {
134
+ if (!this.context)
135
+ return;
136
+ const I = this.wasm;
137
+ I._FreeCryptoContext(this.context), I._free(this.pkBuf.ptr), this.scratchBuf.free(), I._free(this.symKeyBuf.ptr), this.context = null, this.iv = null, this.pk = null, this.pkBuf = null, this.scratchBuf = null, this.sk = null, this.skBuf = null, this.symKey = null, this.symKeyBuf = null, this.wasm = null, this.utils = null;
138
+ }
139
+ generateNextBlockIV() {
140
+ let I = EA.randomBytes(this.iv.length);
141
+ for (let A = 0; A < this.iv.length; A++)
142
+ I[A] ^= this.iv[A];
143
+ return I;
144
+ }
145
+ }
146
+ var uI = (() => {
147
+ var E = typeof document < "u" && document.currentScript ? document.currentScript.src : void 0;
148
+ return function(I = {}) {
149
+ var A = I, Q, C;
150
+ A.ready = new Promise((i, s) => {
151
+ Q = i, C = s;
152
+ });
153
+ var o = Object.assign({}, A), a = "";
154
+ function h(i) {
155
+ return A.locateFile ? A.locateFile(i, a) : a + i;
156
+ }
157
+ typeof document < "u" && document.currentScript && (a = document.currentScript.src), E && (a = E), a.indexOf("blob:") !== 0 ? a = a.substr(0, a.replace(/[?#].*/, "").lastIndexOf("/") + 1) : a = "";
158
+ var r = A.print || console.log.bind(console), D = A.printErr || console.error.bind(console);
159
+ Object.assign(A, o), o = null, A.arguments && A.arguments, A.thisProgram && A.thisProgram, A.quit && A.quit;
160
+ var G;
161
+ A.wasmBinary && (G = A.wasmBinary), A.noExitRuntime, typeof WebAssembly != "object" && IA("no native wasm support detected");
162
+ var N, b = !1, q, S, R, c, y, H, F;
163
+ function l() {
164
+ var i = N.buffer;
165
+ A.HEAP8 = q = new Int8Array(i), A.HEAP16 = R = new Int16Array(i), A.HEAPU8 = S = new Uint8Array(i), A.HEAPU16 = new Uint16Array(i), A.HEAP32 = c = new Int32Array(i), A.HEAPU32 = y = new Uint32Array(i), A.HEAPF32 = H = new Float32Array(i), A.HEAPF64 = F = new Float64Array(i);
166
+ }
167
+ var k = [], Y = [], W = [];
168
+ function J() {
169
+ if (A.preRun)
170
+ for (typeof A.preRun == "function" && (A.preRun = [A.preRun]); A.preRun.length; )
171
+ rA(A.preRun.shift());
172
+ e(k);
173
+ }
174
+ function p() {
175
+ e(Y);
176
+ }
177
+ function V() {
178
+ if (A.postRun)
179
+ for (typeof A.postRun == "function" && (A.postRun = [A.postRun]); A.postRun.length; )
180
+ CA(A.postRun.shift());
181
+ e(W);
182
+ }
183
+ function rA(i) {
184
+ k.unshift(i);
185
+ }
186
+ function DA(i) {
187
+ Y.unshift(i);
188
+ }
189
+ function CA(i) {
190
+ W.unshift(i);
191
+ }
192
+ var X = 0, z = null;
193
+ function cA(i) {
194
+ X++, A.monitorRunDependencies && A.monitorRunDependencies(X);
195
+ }
196
+ function AA(i) {
197
+ if (X--, A.monitorRunDependencies && A.monitorRunDependencies(X), X == 0 && z) {
198
+ var s = z;
199
+ z = null, s();
200
+ }
201
+ }
202
+ function IA(i) {
203
+ A.onAbort && A.onAbort(i), i = "Aborted(" + i + ")", D(i), b = !0, i += ". Build with -sASSERTIONS for more info.";
204
+ var s = new WebAssembly.RuntimeError(i);
205
+ throw C(s), s;
206
+ }
207
+ var gA = "data:application/octet-stream;base64,";
208
+ function aA(i) {
209
+ return i.startsWith(gA);
210
+ }
211
+ var $;
212
+ $ = "data:application/octet-stream;base64,AGFzbQEAAAABqAEWYAJ/fwBgAX8AYAN/f38AYAF/AX9gA39/fwF/YAABf2ACf38Bf2AEf39/fwF/YAV/f39/fwBgBH9/f38AYAV/f39/fwF/YAp/f39/f39/f39/AX9gBH9/fn8AYAl/f39/f39/f38Bf2AHf39/f39/fwF/YAABfGAFf35+fn4AYAAAYAN/fn8BfmAGf39/f39/AGAIf39/f39/f38Bf2AGf39/f39/AX8CHwUBYQFhAAoBYQFiAAMBYQFjAAcBYQFkAAMBYQFlAA8DhQKDAgECAQECAgICEAIAAgAAAQAEAAIAAgIAAAEABAABAAACAAAAAAECAAAAAgAAAgICAAEAAAABAgADAgABCAABAwAAAQACAQMCAwMAAQAAAQEBAgABBgIDBgwCAAABAAADAAADAgECAQgDAwYGAAADAQEBDAACAQgCAQEAAAACAAAAAgkDAAEAAAQAAQgAAgICAAICAAEBAgEGAAABEQEBAQIDAgAAAAEAAgMAAAQCCQEAAgkCCQIBBgYCAwoDBAgAAAsFBQAFDQsLAAADAQACAAABAgIBAQABAQADBAABBAIGAwAAAQISBAMKBgcHBAcBDg0TBQUFBQUFBQUHFA4VAwMGAwMEBQFwAQQEBQcBAYACgIACBggBfwFBoL4ECwfPASoBZgIAAWcAoAEBaADJAQFpAP0BAWoA/gEBawD3AQFsAMYBAW0A/AEBbgD7AQFvAPoBAXAAxwEBcQDHAQFyAMYBAXMA+QEBdAD4AQF1AMkBAXYAQgF3AEwBeAD/AQF5AIcCAXoAhgIBQQCFAgFCAIQCAUMAgwIBRACCAgFFAIECAUYAgAIBRwDMAQFIAMsBAUkA9gEBSgD1AQFLAMUBAUwA9AEBTQDzAQFOAPIBAU8A8QEBUADvAQFRAPABAVIA7gEBUwDBAQFUAO0BAVUBAAkMAQBBAQsD7AHrAeoBCqjHA4MCSwIBfgJ/A0AgACACQQN0aiIDIAMpAwAgAXwiAUL//////////wODNwMAIAFCOochASACQQFqIgJBBkcNAAsgACAAKQMwIAF8NwMwC04BAX8jAEFAaiIDJAAgACABIAIQlQEgACACKAI4IAEoAjhqIgE2AjggAUGBgIAQTgRAIANBwC4QDyAAIAMQJyAAQQE2AjgLIANBQGskAAtLAgF+An8DQCAAIAJBA3RqIgMgAykDACABfCIBQv//////////AIM3AwAgAUI4hyEBIAJBAWoiAkEERw0ACyAAIAApAyAgAXw3AyALDQAgABAFIABBQGsQBQtyAQN/IwBBMGsiAyQAA0AgACAEQQN0IgVqIAIgBWopAwAgASAFaikDAHw3AwAgBEEBaiIEQQVHDQALIAAgAigCKCABKAIoaiIBNgIoIAFBgYCACE4EQCADQZApEBQgACADEC0gAEEBNgIoCyADQTBqJAALaAEBfyMAQbABayIDJAAgAjQCOCABNAI4fkKBgIAQWQRAIANBwC4QDyABIAMQJyABQQE2AjgLIAMgASACEF0gA0HwAGoiAUHALhAPIAAgAUG4LykDACADEFwgAEECNgI4IANBsAFqJAALHgAgACABIAIQDiAAQYABaiABQYABaiACQYABahAOC2kBAX8jAEGAAWsiAyQAIAI0AiggATQCKH5CgYCACFkEQCADQZApEBQgASADEC0gAUEBNgIoCyADIAEgAhDpASADQdAAaiIBQZApEBQgACABQegpKQMAIAMQdiAAQQI2AiggA0GAAWokAAt1AQF+IAAgASAEfiACIAN+fCADQiCIIgIgAUIgiCIEfnwgA0L/////D4MiAyABQv////8PgyIBfiIFQiCIIAMgBH58IgNCIIh8IAEgAn4gA0L/////D4N8IgFCIIh8NwMIIAAgBUL/////D4MgAUIghoQ3AwALGwAgACABIAIQBiAAQUBrIAFBQGsgAkFAaxAGCwsAIAAgAUEHELkBC80CAQZ/IwBB8AVrIgMkACADQcAuEA8gA0HAAWpBAEE4EBUhBUEHIQQDQCAFIARBA3QiBmogAyAGakE4aykDADcDACAEQQFqIgRBDkcNAAsgAUFAayEEAkAgAigCeCACKAI4aqwgASgCeCIFIAEoAjgiBmqsfkKBgIAQUw0AIAZBAk4EfyABEB0gASgCeAUgBQtBAkgNACAEEB0LIANBgAVqIgcgASACEF0gA0GQBGoiCCAEIAJBQGsiBhBdIANBgAFqIgUgASAEEJUBIAUQBSADQUBrIgEgAiAGEJUBIAEQBSADQaADaiICIAUgARBdIANBsAJqIgEgByAIENYBIAggA0HAAWogCBDXASAHIAcgCBDWASACIAIgARDXASAHENsBIAAgBxCQASAAQQM2AjggAhDbASAAQUBrIAIQkAEgAEECNgJ4IANB8AVqJAALTAECfyMAQfABayICJAAgAkGALxAPIAJBQGsiAyABIAIQXSACQbABaiIBQcAuEA8gACABQbgvKQMAIAMQXCAAQQI2AjggAkHwAWokAAscACAAIAFHBEAgACABEBsgAEFAayABQUBrEBsLCw4AIAAQCCAAQYABahAICwsAIAAgAUEFELkBCykBAX8gAgRAIAAhAwNAIAMgAToAACADQQFqIQMgAkEBayICDQALCyAACwsAIAAgAUEwELcBCyIBAX8jAEFAaiIDJAAgAyACECYgACABIAMQBiADQUBrJAAL1AECA38BfiMAQUBqIgMkAANAIAEgAkEDdGoiBCAEKQMAIAV8IgVC//////////8DgzcDACAFQjqHIQUgAkEBaiICQQZHDQALIAEgASkDMCAFfDcDMCADIAFBOBAfIQNBLyECA0AgACACIgFqIAMpAwAiBTwAAEEAIQIDQCADIAJBA3RqIAVCCIcgAyACQQFqIgJBA3RqKQMAIgVCMoZCgICAgICAgP4Dg4Q3AwAgAkEGRw0ACyADIAMpAzBCCIc3AzAgAUEBayECIAENAAsgA0FAayQACyIBAX8jAEEwayIDJAAgAyACEFEgACABIAMQCSADQTBqJAALngEBBn8jAEGABGsiAyQAIANBgANqIgYgASACEBAgA0GAAmoiBSABQYABaiIHIAJBgAFqIggQECADQYABaiIEIAggAhAOIAMgByABEA4gAxAIIAQQCCADIAMgBBAQIAQgBhArIAMgAyAEEA4gAxAIIAQgBRArIABBgAFqIgEgAyAEEA4gBRApIAAgBSAGEA4gABAIIAEQCCADQYAEaiQACxIAIAAgARAPIAAgASgCODYCOAs9AQF/IwBBsAFrIgIkACACENkBIAIgARDaASACQfAAaiIBQcAuEA8gACABQbgvKQMAIAIQXCACQbABaiQACygBAX8jAEFAaiIBJAAgAUHALhAPIAAgARAnIABBATYCOCABQUBrJAALtgIBCX8jAEGADGsiAiQAIAJBgApqIgogACABEBogAkGABmoiBSAAQYACaiIGIAFBgAJqIgcQGiACQYACaiIDIAAgBhALIAIgASAHEAsgAxATIAIQEyACQYAIaiIJIAMgAhAaIAMgBiAAQYAEaiIIEAsgAiAHIAFBgARqIgcQCyADEBMgAhATIAJBgARqIgQgAyACEBogAyAKED4gAiAFED4gCSAJIAMQCyAGIAkgAhALIAQgBCACEAsgBSAFIAMQCyADIAAgCBALIAIgASAHEAsgAxATIAIQEyADIAIgAxAaIAUgBSADEAsgAyAIIAcQGiACIAMQPiAIIAUgAhALIAQgBCACEAsgAxAhIAYgBiADEAsgBBATIAQQISAAIAogBBALIAAQEyAGEBMgCBATIAJBgAxqJAALMwEBfyACBEAgACEDA0AgAyABLQAAOgAAIANBAWohAyABQQFqIQEgAkEBayICDQALCyAACykAIAAgARBHIAAgABCDASAAQYACaiIBIAEQggEgAEGABGoiACAAEIMBC2gBBX8jAEHAAmsiASQAIAEgAEGAAWoiAxASIAFBgAFqIgIgARASIAFBgAJqIgQgAhAbIAIgAUHAAWoiBRAmIAUgBBAbIAEgASACEA4gAyAAEBIgACABEBIgABAIIAMQCCABQcACaiQAC7ALAgd+CX8jAEGwAWsiCyQAIAE0AjgiAiACfkKBgIAQWgRAIAtBwC4QDyABIAsQJyABQQE2AjgLIwBB0AFrIgkkACAJQcABaiABKQMAIgIgAkI/hyIDIAIgAxANIAsgCSkDwAEiAkL//////////wODNwMAIAkpA8gBIgNCBoYgAkI6iIQhBSADQjqIIQZBASEMQQEhDQNAIAlBsAFqIAEpAwAiAiACQj+HIAEgDUEDdCIOaikDACICIAJCP4cQDUECIAwgDEECTRshDyAJKQO4ASEDIAkpA7ABIQJBASEKIA1BA08EQANAIAlBoAFqIAEgCkEDdGopAwAiBCAEQj+HIAEgDSAKa0EDdGopAwAiBCAEQj+HEA0gCSkDoAEiBCACfCICIARUrSAJKQOoASADfHwhAyAKQQFqIgogD0cNAAsLIA1BAWoiEEEBdiERIAsgDmogAkIBhiIEIAV8IgVC//////////8DgzcDACAJQZABaiABKQMAIgcgB0I/hyABIBBBA3QiDmopAwAiByAHQj+HEA0gBCAFVq0gA0IBhiACQj+IhCAGfHwiBEI6hyEHIAkpA5gBIQNBASEKIAkpA5ABIQIgDUECTwRAA0AgCUGAAWogASAKQQN0aikDACIGIAZCP4cgASAQIAprQQN0aikDACIGIAZCP4cQ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IAJBA3QiA2oiBiAGIAMgBGogCEIAUxspAwA3AwAgAkEBaiICQQdHDQALIAVBAUohByAFQQFrIQUgBw0ACwsgBEFAayQACwsAIAAgAUEvELcBC0wBA38jAEHAAWsiASQAIAEgABASIAFBgAFqIgMgABAbIAAgAEFAayICECYgAiADEBsgACABIAAQBiACIAFBQGsgAhAGIAFBwAFqJAALNQEBfyMAQYABayIDJAAgAyACECsgACABIAMQBiAAQUBrIAFBQGsgA0FAaxAGIANBgAFqJAALRwEDfyMAQYABayICJAAgAkFAayIDIAEgAUFAayIEEAYgAyADECYgAiADIAQQBiAAQUBrIAMgARAGIAAgAhAbIAJBgAFqJAALgQkCB34KfyMAQYABayIKJAAgATQCKCICIAJ+QoGAgAhaBEAgCkGQKRAUIAEgChAtIAFBATYCKAsjAEHAAWsiCSQAIAlBsAFqIAEpAwAiAiACQj+HIgQgAiAEEA0gCiAJKQOwASICQv//////////AIM3AwAgCSkDuAEiBEIIhiACQjiIhCEFIARCOIghBEEBIQ5BASENA0AgCUGgAWogASkDACICIAJCP4cgASANQQN0IhBqIgspAwAiAiACQj+HEA0gCSkDqAEhAyAJKQOgASECIAwEQCAJQZABaiABKQMIIgYgBkI/hyALQQhrKQMAIgYgBkI/hxANIAkpA5ABIgYgAnwiAiAGVK0gCSkDmAEgA3x8IQMLIA1BAWoiD0EBdiERIAogEGogAkIBhiIGIAV8IgVC//////////8AgzcDACAJQYABaiABKQMAIgcgB0I/hyABIA9BA3RqKQMAIgcgB0I/hxANIAUgBlStIANCAYYgAkI/iIQgBHx8IgZCOIchByAJKQOIASEEIAkpA4ABIQIgDARAIAlB8ABqIAEpAwgiAyADQj+HIAspAwAiAyADQj+HEA0gCSkDcCIDIAJ8IgIgA1StIAkpA3ggBHx8IQQLQQMhDSAJQeAAaiABIBFBA3RqKQMAIgMgA0I/hyIIIAMgCBANIAogD0EDdGogAkIBhiIIIAZCCIYgBUI4iIR8IgUgCSkDYHwiA0L//////////wCDNwMAIAMgBVStIAkpA2ggBSAIVK0gBEIBhiACQj+IhCAHfHx8fCICQjiHIQQgAkIIhiADQjiIhCEFQQEhDCAOIRJBACEOIBINAAsgCUHQAGogASkDECICIAJCP4cgASkDGCICIAJCP4cQDSAJQUBrIAEpAwgiAiACQj+HIAEpAyAiAiACQj+HEA0gCiAJKQNQIgYgCSkDQHwiAkIBhiIHIAV8IgVC//////////8AgzcDKCAJQSBqIAEpAxAiAyADQj+HIAEpAyAiAyADQj+HEA0gCUEwaiABKQMYIgMgA0I/hyIIIAMgCBANIAogCSkDICIDQgGGIgggBSAHVK0gAiAGVK0gCSkDWCAJKQNIfHxCAYYgAkI/iIQgBHx8IgZCCIYgBUI4iIR8IgIgCSkDMHwiBEL//////////wCDNwMwIAlBEGogASkDGCIFIAVCP4cgASkDICIFIAVCP4cQDSAKIAkpAxAiBUIBhiIHIAIgBFatIAkpAzggAiAIVK0gCSkDKEIBhiADQj+IhCAGQjiHfHx8fCIDQgiGIARCOIiEfCICQv//////////AIM3AzggCSABKQMgIgQgBEI/hyIGIAQgBhANIAogCSkDACIEIAIgB1StIAkpAxhCAYYgBUI/iIQgA0I4h3x8IgVCCIYgAkI4iIR8IgJC//////////8AgzcDQCAKIAIgBFStIAkpAwggBUI4h3x8QgiGIAJCOIiENwNIIAlBwAFqJAAgCkHQAGoiAUGQKRAUIAAgAUHoKSkDACAKEHYgAEECNgIoIApBgAFqJAAL/wMCBn8CfiMAQTBrIgQkAANAIAAgAkEDdGoiAyADKQMAIAh8IghC//////////8AgzcDACAIQjiHIQggAkEBaiICQQRHDQALIAAgACkDICAIfDcDIEEEIQMCQAJAA0AgACADIgJBA3QiA2opAwAiCCABIANqKQMAIglRBEAgAkEBayEDIAINAQwCCwsgCCAJVw0BCwNAIAFBARB3IAVBAWohBUEEIQMDQCAAIAMiAkEDdCIDaikDACIIIAEgA2opAwAiCVEEQCACQQFrIQMgAg0BDAILCyAIIAlVDQALA0AgASkDACEIQQAhAgNAIAEgAkEDdGogCEIBhyABIAJBAWoiAkEDdGopAwAiCEI3hkKAgICAgICAwACDhDcDACACQQRHDQALIAEgASkDIEIBhzcDIEEAIQJBACEDA0AgBCADQQN0IgZqIAAgBmopAwAgASAGaikDAH03AwAgA0EBaiIDQQVHDQALQgAhCANAIAQgAkEDdGoiAyADKQMAIAh8IghC//////////8AgzcDACAIQjiHIQggAkEBaiICQQRHDQALIAQgBCkDICAIfCIINwMgQQAhAgNAIAAgAkEDdCIDaiIGIAYgAyAEaiAIQgBTGykDADcDACACQQFqIgJBBUcNAAsgBUEBSiEHIAVBAWshBSAHDQALCyAEQTBqJAALLQAgACABIAIQhQEgAEGAAWogAUGAAWogAhCFASAAQYACaiABQYACaiACEIUBCx4AIAAgAUcEQCAAIAEQEiAAQYABaiABQYABahASCwtjAQR/IwBBwAFrIgIkACACQYABaiIDIAEgAUFAayIEEAYgAiAEECYgAkFAayIFIAEgARAGIAUQBSAAQUBrIAUgBBAKIAAgASACEAYgAxAFIAAQBSAAIAMgABAKIAJBwAFqJAALKAAgACABIAIQWSAAQUBrIAFBQGsgAhBZIABBgAFqIAFBgAFqIAIQWQuDAQEDfyMAQYABayIEJAACQCACIAJBH3UiA3MgA2siAyABKAI4bEGAgIAQTARAIAAgASADEJMBIAAgASgCOCADbDYCOAwBCyAEQUBrIgUQ3AEgBSADEF4gBRAFIAQgBRARIAAgASAEEAoLIAJBAEgEQCAAIAAQJiAAEAULIARBgAFqJAALKwAgACABIAIQmgEgAEEwaiABQTBqIAIQmgEgAEHgAGogAUHgAGogAhCaAQuUAQEEfyMAQYADayIDJAAgAyABIAFBgAFqIgQQECADQYABaiICIAQQEiADQYACaiIFIAEgBBAOIAIQKSACIAEgAhAOIAUQCCACEAggACAFIAIQECACIAMQEiACECkgAiACIAMQDiACEAggAiACECsgACAAIAIQDiAAQYABaiIBIAMgAxAOIAAQCCABEAggA0GAA2okAAsOACAAED8gAEGAAWoQPwsgAQF/IwBBQGoiAiQAIAIgARAPIAAgAhARIAJBQGskAAskACAAIAEQEiAAQYABaiABQYABahASIABBgAJqIAFBgAJqEBILWwEDfyMAQYACayICJAAgAkGAAWoiAyABEDAgAiADIAEQECAAIAIQgAEgAEGAAmoiBCACEIABIABBgARqIgAgAhCAASAEIAQgARBnIAAgACADEGcgAkGAAmokAAsOACAAENwBIABBATYCOAv8AQIFfwR+IwBB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a0EDdCIMaikDACACIAhBA3QiDWopAwB9IgUgBUI/hyABIA1qKQMAIAEgDGopAwB9IgUgBUI/hxANIAkpAwAiBSADfCIDIAVUrSAJKQMIIAR8fCEEIAhBAWsiCCAKSw0ACwsgACALQQN0aiADQv//////////A4M3AwAgBEIGhiADQjqIhCEDIARCOochBCALQQFqIgtBDUcNAAsgACADNwNoIAlBoAFqJAALWQIBfgJ/A0AgACADQQN0aiIEIAQpAwAgAnwiAkL//////////wODNwMAIAJCOochAiADQQFqIgNBBkcNAAsgACAAKQMwIAJ8NwMwIAAgACkDACABrHw3AwALZAEDfkE6IAFrrSEEIAGtIQJBACEBIAApAwAhAwNAIAAgAUEDdGogAyAChyAAIAFBAWoiAUEDdGopAwAiAyAEhkL//////////wODhDcDACABQQZHDQALIAAgACkDMCAChzcDMAv9BQEIfyMAQYADayIDJAACQEHAJygCAEUEQCADQdACaiICIABBMGoiBxAsIANBoAJqIgYgByAAQeAAaiIBEAwgA0HwAWoiBCABECwgASACIAIQCSABEAcgASABIAEQCSABIAEgARAJIAEQByAEIARBxCcoAgBBA2wQOiADQZABaiIIIAQgARAMIANB4ABqIgUgAiAEEAkgBRAHIAEgASAGEAwgBiAEIAQQCSAEIAQgBhAJIAIgAiAEEBkgAhAHIAUgBSACEAwgBSAFIAgQCSAGIAAgBxAMIAIQByAAIAIgBhAMIAAgACAAEAkgABAHIAcgBRBEDAELQcQnKAIAIgRFBEAgAxCbAQsgA0HQAmogABAsIANBoAJqIABBMGoiBRAsIANB8AFqIgIgAEHgAGoiBxAsIANBwAFqIgEgACAFEAwgASABIAEQCSABEAcgA0EwaiIBIAcgABAMIAEgASABEAkgARAHAkAgBEUEQCADQeAAaiACIAMQDAwBCyADQeAAaiADQfABaiAEEDoLIANB4ABqIgEgASADQTBqIgYQGSADQZABaiICIAEgARAJIAIQByABIAEgAhAJIAIgA0GgAmoiCCABEBkgAhAHIAEgASAIEAkgARAHIAEgASACEAwgAiACIANBwAFqIgIQDCACIANB8AFqIgEgARAJIAEgASACEAkCQCAERQRAIAYgBiADEAwMAQsgA0EwaiIBIAEgBBA6CyADQTBqIgIgAiADQfABaiIGEBkgAiACIANB0AJqIgEQGSACEAcgA0HAAWoiBCACIAIQCSACIAIgBBAJIAIQByAEIAEgARAJIAEgASAEEAkgASABIAYQGSABEAcgASABIAIQDCADQeAAaiIEIAQgARAJIAEgBSAHEAwgASABIAEQCSABEAcgAiACIAEQDCAAIANBkAFqIAIQGSABIAEgARAJIAEQByADQaACaiICIAIgAhAJIAIQByAHIAEgAhAMIAAQByAFIAQQRCAFEAcLIAcQByADQYADaiQACzYBAX8gAEEAQSgQFSEAA0AgAEEIEHcgACAAKQMAIAEgAmoxAAB8NwMAIAJBAWoiAkEgRw0ACwvUAQIDfwF+IwBBMGsiAyQAA0AgASACQQN0aiIEIAQpAwAgBXwiBUL//////////wCDNwMAIAVCOIchBSACQQFqIgJBBEcNAAsgASABKQMgIAV8NwMgIAMgAUEoEB8hA0EfIQIDQCAAIAIiAWogAykDACIFPAAAQQAhAgNAIAMgAkEDdGogBUIIhyADIAJBAWoiAkEDdGopAwAiBUIwhkKAgICAgIDA/wCDhDcDACACQQRHDQALIAMgAykDIEIIhzcDICABQQFrIQIgAQ0ACyADQTBqJAALnwECAn8DfgNAIAAgAUEDdGoiAiACKQMAIAN8IgNC//////////8AgzcDACADQjiHIQMgAUEBaiIBQQRHDQALIAAgACkDICADfDcDIEEEIQICQANAIAAgAiIBQQN0aikDACIDQgBSDQEgAUEBayECIAENAAtBAA8LIAFBOGwhAQNAIAFBAWohASADQgF8IQUgA0ICfyEDIAVCAlYNAAsgAQuiBQEJfyMAQfAfayIEJAAgABBKIABBgAJqEEpxRQRAIAAQfSAEQfAbaiICIAAQNyACEEYgBEHwA2ogABA3QQEhAgNAIARB8ANqIAJBgANsaiIDIANBgANrEDcgAyAEQfAbaiIDEGUgAkEBaiICQQhHDQALIARB8B5qIgIgARAPIAIQPCEFIAJBARBeIAIQBSACEDwhBiAEQbAfaiIBIAIQDyABQQEQXiABEAUgAiABIAUQlgEgAyAAIAYQLiAEQfAAaiADEDcgAhBDIgFBA2pBBG0iAkEBaiEFIAFBekgiBkUEQEEAIQEgAkEAIAJBAEob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DykDACICIAR8IgQgAlStIA8pAwggBXx8IQUgEkEBayISIBBLDQALCyARQQN0IABqQShrIARC//////////8AgzcDACAFQjiHIAMgEUEBaiIQQQN0aikDACICQj+HfCACIAVCCIYgBEI4iIQiAnwiBCACVK18IQUgCCARQQR0IA9qIhFB0ABqKQMIfSAGIBEpA1AiAlStfSEIIAYgAn0hBiAQIhFBCUcNAAsgACAEQv//////////AIM3AyAgD0HgAWokAAuMAQIDfgN/IAAgACkDICABrSIChiAAKQMYIgNBOCABa60iBIeENwMgQQMhAQNAIAAgAUEDdGogAyAChkL//////////wCDIAAgAUEBayIFQQN0aikDACIDIASHhDcDACABQQFLIQcgBSEBIAcNAAsgACAAKQMAIAKGQv//////////AIM3AwAgACgCJBoLVQECfwJAIAJBAEwNACAAKAIAIQMDQCADIAAoAgRODQEgACgCCCADaiABIARqLQAAOgAAIAAgACgCAEEBajYCACADQQFqIQMgBEEBaiIEIAJHDQALCwv5AgEGfyMAQcAgayIDJAAgA0GAH2oiBUGALBAPIANBwB5qIgFBwC8QNiADQYAeaiICQYAwEDYgA0HAH2oiBCABEBsgBEFAayACEBsgA0GAGGoiASAAEH4gACAAECAgACABEB4gASAAEEcgACAEEDggACAEEDggACABEB4gA0GAEmoiBiAAEKkBIANBgAxqIgEgBiAFED0gASABECAgBUEBEF8gA0GABmoiAiABIAUQPSACIAIQICAFQQEQcSADIAAQICABIAMQHiABIAEQICABIAIQHiACIAEgBRA9IAIgAhAgIAMgAiAFED0gAyADECAgASABECAgAyABEB4gASABECAgASAEEDggASAEEDggASAEEDggAiAEEDggAiAEEDggASACEB4gAiADIAUQPSACIAIQICACIAYQHiACIAAQHiABIAIQHiACIAMQRyACIAQQOCABIAIQHiAAIAEQRyAAEDUgAEGAAmoQNSAAQYAEahA1IANBwCBqJAAL7gMBBn8jAEGACmsiBiQAIAFBgAJqIQogAUGAAWohCQJAIAEgAkYEQCAGQYAJaiIHIAEQEiAGQYAIaiIIIAkQEiAGQYAHaiICIAoQEiAGQYAGaiIFIAgQEiAFIAUgAhAQIAcgBxAwIAggCBAwIAIgAhAwIAUgBUEEEEggBSAFECsgBRAIIAcgB0EGEEggByAHIAMQaSACIAJB9CkoAgBBA2wQSCAFIAUgBBBpIAIQKSACIAIgAhAOIAUQKSAFEAggAhAIIAggCCAIEA4gAiACIAgQKiACEAggBkGABGogBSACEKwBIAZBgAJqEGggBiAHEKsBIAEQRgwBCyAGQYAJaiIIIAEQEiAGQYAIaiIFIAkQEiAGQYAHaiIJIAoQEiAGQYAGaiIHIAkQEiAJIAkgAkGAAWoiChAQIAcgByACEBAgCCAIIAcQKiAIEAggBSAFIAkQKiAFEAggCSAIEBIgCCAIIAQQaSAIECkgCBAIIAkgCSAKEBAgByAFEBIgByAHIAIQECAHIAcgCRAqIAcQCCAFIAUgAxBpIAUgBRArIAUQCCAGQYAEaiAIIAcQrAEgBkGAAmoQaCAGIAUQqwEgASACEGULIAAgBkGABGoQLyAAQYACaiAGQYACahAvIABBgARqIAYQLyAGQYAKaiQAC5AEAQh/IwBBwAtrIgMkACADQYALaiIFQYAsEA8gA0HACmoiBCAFEA8gBBAFIANBgApqIgUgBEEDEJMBIAUQBSADQcAJaiACEBsgA0GACWogAkFAaxAbIANBgAZqIAEQNyAAEGogAEGAAWoQSSAAQYACahBoIABBgARqEGggBRBDIgJBA04EQCACQQJrIQIDQCMAQYAIayIGJAAgBkGABmoiBCAAEDQgBkGABGoiByAAQYACaiIIIABBgARqIgUQGiAHIAcgBxALIAcQEyAGQYACaiIJIAUQNCAGIAAgCBAaIAYgBiAGEAsgBSAAIAUQCyAFIAggBRALIAUQEyAFIAUQNCAAIAQQLyAEIAQgBxALIAQQEyAEIAQgCRALIAQgBCAGEAsgBBATIAQgBBA+IAcQISAJECEgACAAIAcQCyAIIAkgBhALIAUgBSAEEAsgABATIAgQEyAFEBMgBkGACGokACADIANBgAZqIgQgBCADQcAJaiADQYAJahB6IAAgAxB/AkACQAJAIANBgApqIAIQbyADQcAKaiACEG9rQQFqDgMBAgACCyADIANBgAZqIAEgA0HACWogA0GACWoQeiAAIAMQfwwBCyABEFIgAyADQYAGaiABIANBwAlqIANBgAlqEHogACADEH8gARBSCyACQQFKIQogAkEBayECIAoNAAsLIAAgABAgIANBwAtqJAALSAECfyMAQYACayIBJAAgAUGAAWoiAkHALBA2IAFBwAFqQYAtEDYgAUHALRA2IAFBQGtBgC4QNiAAIAIgARCmASABQYACaiQAC64BAQV/IwBBgAJrIgEkAAJAIAAQSiAAQYACaiIDEEpxDQAgAUGAAWoQaiMAQUBqIgIkACACEE8gAxAdIANBQGsiBBAdAn8gAyACEFgEQEEBIAQQWg0BGgtBAAshBSACQUBrJAAgBQRAIAAQPyAAQYABahA/DAELIAEgAxCuASAAIAAgARAQIABBgAFqIgIgAiABEBAgABA/IAIQPyADIAFBgAFqEBILIAFBgAJqJAALvgIBB38jAEGACGsiAiQAIAJBgAZqIgcgARA0IAJBgARqIgQgAUGAAmoiAyABQYAEaiIGEBogBBAhIAcgByAEEIEBIAcQEyAEIAYQNCAEECEgAkGAAmoiBSABIAMQGiAEIAQgBRCBASAEEBMgBSADEDQgAiABIAYQGiAFIAUgAhCBASAFEBMgAiADIAUQGiACECEgACAHIAEQGiACIAAgAhALIABBgARqIgggBCAGEBogCBAhIAIgCCACEAsgAhATIwBBgAJrIgMkACADQYABaiIBIAIQMCADIAJBgAFqIgYQMCADECkgAxAIIAEgASADECogASABEK4BIAIgASACEBAgASABECsgARAIIAYgASAGEBAgA0GAAmokACAAIAcgAhAaIABBgAJqIAQgAhAaIAggBSACEBogAkGACGokAAuMAgEIfyMAQYAMayIDJAAgA0GACmoiCCAAIAEQGiADQYACaiICIAAgAEGAAmoiBRALIAIQEyADQYAIaiIEIAIgARAaIAIgBSAAQYAEaiIHEAsgAhATIANBgARqIgYgAiABQYAFaiIJEGcgBhAhIAIgCBA+IAQgBCACEAsgBSAEEC8gA0GABmoiBCACEC8gAiAAIAcQCyADIAEgAUGABGoQCyACEBMgAxATIAIgAyACEBogBCAEIAIQCyACIAcgCRBnIAIQISADIAIQPiACECEgByAEIAMQCyAGIAYgAxALIAUgBSACEAsgBhATIAYiARAhIAAgCCABEAsgABATIAUQEyAHEBMgA0GADGokAAseACAAIAAQrwEgAEGAAWoiACAAEK8BIAAgASAAEBAL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ApwBIANBAWoiAyAHRw0ACwsLKQEBfyMAQUBqIgIkACACQcAuEA8gACACQbgvKQMAIAEQXCACQUBrJAAL5A8CBn8CfiMAQYADayIDJAAgASACECcgA0HAAmogAUE4EB8aIANBgAJqIAJBOBAfGiADQgE3AwAgA0EIckEAQTAQFRogA0HAAWogA0E4EB8aIANBgAFqQQBBOBAVGiADQbABaiEHIANB8AFqIQhBBiEBA0BBBiEEAkACQCABIgVBA3QiASADQcACamopAwAgASADaikDAFEEQCAFQQFrIQEgBUUNAQwDCwNAIAQiAUEDdCIEIANBgAJqaikDACADIARqKQMAUg0CIAFBAWshBCABDQALC0EGIQQgAAJ/A0AgA0GAAWogBCIBQQN0IgIgA0HAAmpqKQMAIAIgA2opAwBSDQEaIAFBAWshBCABDQALIANBwAFqC0E4EB8aIANBgANqJAAPCyADKQPAAiIJQgKBp0UEQEEAIQEDQCADQcACaiIEIAFBA3RqIAlCAYcgAUEBaiIBQQN0IARqKQMAIglCOYZCgICAgICAgIACg4Q3AwAgAUEGRw0AIAMgAykD8AJCAYc3A/ACQQAhAUEAIQQgAykDwAEiCUICgacEQANAIARBA3QiBSADQcABamoiBiAGKQMAIAIgBWopAwB8NwMAIARBAWoiBEEHRw0AC0IAIQkDQCADQcABaiABQQN0aiIEIAQpAwAgCXwiCUL//////////wODNwMAIAlCOochCSABQQFqIgFBBkcNAAsgAyADKQPwASAJfDcD8AEgAykDwAEhCQtBACEBA0AgA0HAAWoiBCABQQN0aiAJQgGHIAFBAWoiAUEDdCAEaikDACIJQjmGQoCAgICAgICAAoOENwMAIAFBBkcNAAsgAyADKQPwAUIBhzcD8AFBACEBIAMpA8ACIglCAoGnRQ0ACwsgAykDgAIiCUICgadFBEBBACEBA0AgA0GAAmoiBCABQQN0aiAJQgGHIAFBAWoiAUEDdCAEaikDACIJQjmGQoCAgICAgICAAoOENwMAIAFBBkcNACADIAMpA7ACQgGHNwOwAkEAIQFBACEEIAMpA4ABIglCAoGnBEADQCAEQQN0IgUgA0GAAWpqIgYgBikDACACIAVqKQMAfDcDACAEQQFqIgRBB0cNAAtCACEJA0AgA0GAAWogAUEDdGoiBCAEKQMAIAl8IglC//////////8DgzcDACAJQjqHIQkgAUEBaiIBQQZHDQALIAMgAykDsAEgCXw3A7ABIAMpA4ABIQkLQQAhAQNAIANBgAFqIgQgAUEDdGogCUIBhyABQQFqIgFBA3QgBGopAwAiCUI5hkKAgICAgICAgAKDhDcDACABQQZHDQALIAMgAykDsAFCAYc3A7ABQQAhASADKQOAAiIJQgKBp0UNAAsLQQYhBAJ/AkACQANAIAQiAUEDdCIEIANBwAJqaikDACIJIANBgAJqIARqKQMAIgpRBEAgAUEBayEEIAENAQwCCwtBACEBQQAhBCAJIApXDQELQQAhAUEAIQQDQCAEQQN0IgUgA0HAAmpqIgYgBikDACADQYACaiAFaikDAH03AwAgBEEBaiIEQQdHDQALQgAhCQNAIANBwAJqIAFBA3RqIgQgBCkDACAJfCIJQv//////////A4M3AwAgCUI6hyEJIAFBAWoiAUEGRw0ACyADIAMpA/ACIAl8NwPwAkEGIQQCQAJAAkADQCAEIgFBA3QiBCADQcABamopAwAiCSADQYABaiAEaikDACIKUQRAIAFBAWshBCABDQEMAgsLQQAhAUEAIQQgCSAKVw0BC0EAIQEDQCABQQN0IgQgA0HAAWpqIgUgBSkDACADQYABaiAEaikDAH03AwAgAUEBaiIBQQdHDQALDAELA0AgBEEDdCIFIANBQGtqIAIgBWopAwAgA0GAAWogBWopAwB9NwMAIARBAWoiBEEHRw0ACwNAIAFBA3QiBCADQcABamoiBSADQUBrIARqKQMAIAUpAwB8NwMAIAFBAWoiAUEHRw0ACwtBACEBQgAhCQNAIANBwAFqIAFBA3RqIgQgBCkDACAJfCIJQv//////////A4M3AwAgCUI6hyEJIAFBAWoiAUEGRw0ACyAIDAELA0AgBEEDdCIFIANBgAJqaiIGIAYpAwAgA0HAAmogBWopAwB9NwMAIARBAWoiBEEHRw0AC0IAIQkDQCADQYACaiABQQN0aiIEIAQpAwAgCXwiCUL//////////wODNwMAIAlCOochCSABQQFqIgFBBkcNAAsgAyADKQOwAiAJfDcDsAJBBiEEAkACQAJAA0AgBCIBQQN0IgQgA0GAAWpqKQMAIgkgA0HAAWogBGopAwAiClEEQCABQQFrIQQgAQ0BDAILC0EAIQFBACEEIAkgClcNAQtBACEBA0AgAUEDdCIEIANBgAFqaiIFIAUpAwAgA0HAAWogBGopAwB9NwMAIAFBAWoiAUEHRw0ACwwBCwNAIARBA3QiBSADQUBraiACIAVqKQMAIANBwAFqIAVqKQMAfTcDACAEQQFqIgRBB0cNAAsDQCABQQN0IgQgA0GAAWpqIgUgA0FAayAEaikDACAFKQMAfDcDACABQQFqIgFBB0cNAAsLQQAhAUIAIQkDQCADQYABaiABQQN0aiIEIAQpAwAgCXwiCUL//////////wODNwMAIAlCOochCSABQQFqIgFBBkcNAAsgBwsiASABKQMAIAl8NwMAQQYhAQwACwAL/AUCBX8CfiMAQfAAayIFJAAgBUEAQfAAEBUhBSABEENBAEoEQANAAn8gA0UEQCACEGYMAQsgBEEBdQshBCAFENUBIAUgBSkDACAEQQFxrXw3AwAgA0EBakEHcSEDIAZBAWoiBiABEENBAXRIDQALCyAAIQJBACEDIwBB4AFrIgQkAANAIAUgA0EDdGoiACAAKQMAIAh8IghC//////////8DgzcDACAIQjqHIQggA0EBaiIDQQ1HDQALIAUgBSkDaCAIfDcDaCAEQfAAaiABQTAQHxogBCABKQMwIghCOoc3A6gBIAQgCEL//////////wODNwOgASAEQbABakEAQTAQFRpBDSEAAkACQANAIAUgACIBQQN0IgBqKQMAIgkgBEHwAGogAGopAwAiCFEEQCABQQFrIQAgAQ0BDAILCyAIIAlTDQAMAQtBACEGA0AgBEHwAGoQ1QEgBkEBaiEGQQ0hAANAIAUgACIBQQN0IgBqKQMAIgkgBEHwAGogAGopAwAiCFEEQCABQQFrIQAgAQ0BDAILCyAIIAlTDQALA0BBACEDIAQpA3AhCANAIARB8ABqIgAgA0EDdGogCEIBhyADQQFqIgNBA3QgAGopAwAiCEI5hkKAgICAgICAgAKDhDcDACADQQ1HDQALIAQgBCkD2AFCAYc3A9gBQQAhA0EAIQADQCAEIABBA3QiAWogASAFaikDACAEQfAAaiABaikDAH03AwAgAEEBaiIAQQ5HDQALQgAhCANAIAQgA0EDdGoiACAAKQMAIAh8IghC//////////8DgzcDACAIQjqHIQggA0EBaiID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KCAIQQBKBEADQCABIAEQLCABIAEQLCABIAEQLCABIAEQLCABIAEgAkEwaiAEQQFrIgMgAkGwBmpqLAAAQTBsahAMIARBAUohDCADIQQgDA0ACwsgAkGAB2oiBEGQKRAUIAEgBBAtIAFBATYCKCACQbAHaiQAIAVBMGokACAAIAAgARAMIABBMGoiBCAEIAEQDCAEEHQgABB0IAYgChBECyABQeAAaiQACwkAIABBADYCAAsmACAAIAEgAhCkASAAQQAgAmsgACgCKCIAIAEoAihzcSAAczYCKAshAQF/IwBBMGsiASQAIAFB0CcQFCAAIAEQOyABQTBqJAALWQIBfgJ/A0AgACADQQN0aiIEIAQpAwAgAnwiAkL//////////wCDNwMAIAJCOIchAiADQQFqIgNBBEcNAAsgACAAKQMgIAJ8NwMgIAAoAgBBfyABdEF/c3ELWQIBfgJ/A0AgACADQQN0aiIEIAQpAwAgAnwiAkL//////////wCDNwMAIAJCOIchAiADQQFqIgNBBEcNAAsgACAAKQMgIAJ8NwMgIAAgACkDACABrH03AwALWQIBfgJ/A0AgACADQQN0aiIEIAQpAwAgAnwiAkL//////////wCDNwMAIAJCOIchAiADQQFqIgNBBEcNAAsgACAAKQMgIAJ8NwMgIAAgACkDACABrHw3AwALXgAgAEEoakEAQYACEBUaIABBIDYC6AIgAEKrs4/8kaOz8NsANwIgIABC/6S5iMWR2oKbfzcCGCAAQvLmu+Ojp/2npX83AhAgAELnzKfQ1tDrs7t/NwIIIABCADcCAAsCAAslACAAQgE3AwAgAEIANwMIIABCADcDECAAQgA3AxggAEIANwMgCwsAIABBAEEoEBUaC1UCAX8BfiAAKQMAIQIDQCAAIAFBA3RqIAJCBIcgACABQQFqIgFBA3RqKQMAIgJCNIZC//////////8Ag4Q3AwAgAUEERw0ACyAAIAApAyBCBIc3AyALDQAgACABIAJBBRC4AQsJACAAQQUQuwEL2wEBBn8jAEGAAmsiBSQAIAUgAhAwIwBBwAFrIgQkACAEQUBrIgMgARAwIAVBgAFqIgYgAyABEBAgBEGAKhAPIAMgBBARIANBQGsQOSADEAggAxApIAMQCCAGIAMgBhAOIAYQPyAEQcABaiQAIABBgAJqIQMgAEGAAWohBCAFEB0gBUFAayIHEB0gBhAdIAZBQGsiCBAdAkACfyAFIAYQWARAQQEgByAIEFgNARoLQQALRQRAIAAQSSAEEGogAxBJDAELIAAgARASIAQgAhASIAMQagsgBUGAAmokAAueAgEBfyMAQUBqIgIkACACIAEoAggQFiAAIAIQESACIAEoAghBMGoQFiAAQUBrIAIQESACIAEoAghB4ABqEBYgAEGAAWogAhARIAIgASgCCEGQAWoQFiAAQcABaiACEBEgAiABKAIIQcABahAWIABBgAJqIAIQESACIAEoAghB8AFqEBYgAEHAAmogAhARIAIgASgCCEGgAmoQFiAAQYADaiACEBEgAiABKAIIQdACahAWIABBwANqIAIQESACIAEoAghBgANqEBYgAEGABGogAhARIAIgASgCCEGwA2oQFiAAQcAEaiACEBEgAiABKAIIQeADahAWIABBgAVqIAIQESACIAEoAghBkARqEBYgAEHABWogAhARIAJBQGskAAumAgEBfyMAQUBqIgIkACAAQcAENgIAIAIgARAcIAAoAgggAhAYIAIgAUFAaxAcIAAoAghBMGogAhAYIAIgAUGAAWoQHCAAKAIIQeAAaiACEBggAiABQcABahAcIAAoAghBkAFqIAIQGCACIAFBgAJqEBwgACgCCEHAAWogAhAYIAIgAUHAAmoQHCAAKAIIQfABaiACEBggAiABQYADahAcIAAoAghBoAJqIAIQGCACIAFBwANqEBwgACgCCEHQAmogAhAYIAIgAUGABGoQHCAAKAIIQYADaiACEBggAiABQcAEahAcIAAoAghBsANqIAIQGCACIAFBgAVqEBwgACgCCEHgA2ogAhAYIAIgAUHABWoQHCAAKAIIQZAEaiACEBggAkFAayQAC+kBAQV/IwBBgAhrIgMkACADQYAGaiICIAEQLyAAIAEQNCADIAAgABALIAAgAyAAEAsgABATIAIgAhCCASACIAIgAhALIAAgACACEAsgA0GABGoiBCABQYAEaiIGEDQgBBAhIAMgBCAEEAsgBCAEIAMQCyAEEBMgA0GAAmoiBSABQYACaiICEDQgAyAFIAUQCyAFIAUgAxALIAUQEyAAQYACaiIBIAIQgwEgASABIAEQCyAAQYAEaiICIAYQggEgAiACIAIQCyABIAQgARALIAIgBSACEAsg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AgAgBUEfdCEFIAJBAWoiAkEERw0ACyAFBEAgASABKAIAQYCAgIh+czYCAAsgB0EBaiIHQYABRw0ACyAAQgA3AqAQIABBqBBqQgA3AgACQCADQQxGBEBBACECA0AgACACakGgFGogAiAEai0AADoAACACQQFqIgJBDEcNAAsgAEGsFGpBgICACDYAACAAQZAQaiAAQaAUaikAADcAACAAQZgQaiAAQagUaikAADcAAAwBCyAAQQE2ArAQIANBAEoEQEEAIQJBACEFA0AgACAFakGAEGoiASABLQAAIAIgBGotAABzOgAAIAAgACgCrBBBAWoiATYCrBAgAUUEQCAAIAAoAqgQQQFqNgKoEAsgAkEBaiECIAVBDk0EQCAFQQFqIQUgAiADSA0BCyAAEFRBACEFIAIgA0gNAAsLIANBD3EEQCAAQQI2ArAQCyAAQaAQaiEBIAAQugFBACECA0AgACACaiIDQaAUaiADQYAQaiIELQAAIgU6AAAgA0GQEGogBToAACAEQQA6AAAgAkEBaiICQRBHDQALIAFCADcCACABQgA3AggLIABBADYCsBAgBkEQaiQAC6oBAQN/IwBBEGsiAiQAIAAtAABBBEYEQCACQsCBgICAGDcCBCACIABBAWo2AgwjAEHAAmsiACQAIABBgAJqIgMgAigCDBAWIABBgAFqIgQgAxARIAMgAigCDEEwahAWIABBwAFqIAMQESADIAIoAgxB4ABqEBYgACADEBEgAyACKAIMQZABahAWIABBQGsgAxARIAEgBCAAEKYBIABBwAJqJAALIAJBEGokAAtXAQJ/IwBBgAFrIgIkACACQUBrIQMgARBtRQRAIAEQjgEgAiABQUBrEBwgAhA8GiADIAEQHAsgAEEEOgAAIABBAWogAxAYIABBMWogAhAYIAJBgAFqJAALuwoBDn8jAEGgE2siCiQAAn8gByAFQbQEbSILQQAgBWsgC0HMe2xHaiINQcAEbCILRwRAIAogBzYCBCAKIAs2AgBB8TAgChCIAUF/DAELAkAgACgCrBAiCwRAIAAoArAQIAVODQELIAsQQiAFEEwhCyAAIAU2ArAQIAAgCzYCrBALIAogAjYC6AogCkKQgICAgAI3AuAKIAogAzYC6AQgCkKMgICAwAE3AuAEQQAhByAKQeQzKAIANgIoIApB3DMpAgA3AyAgCiAENgLoECAKIAU2AuQQIAogBTYC4BAgCiALNgLoEiAKIAU2AuQSIAogBTYC4BIgCiAINgKoEiAKQpCAgICAAjcCoBIgCkGgEmohDkEAIQMjAEGwFGsiAiQAIAIgCkHgCmoiBCgCACAEKAIIIAooAuAEIAooAugEEMIBIAIgCigCKCAKKAIgELUBIApB4BJqIhEoAgghEiAKQeAQaiIMKAIIIRMgDCgCACEEIwBBEGsiCCQAAkACQAJAIAIoArAQDgIAAQILIAJBATYCsBALIARBAEoEQCACQaAUaiEQIAJBtBBqIRQDQCACIAIoAKwUIgtBGHQgC0GA/gNxQQh0ciALQQh2QYD+A3EgC0EYdnJyQQFqIgtBGHQgC0GA/gNxQQh0ciALQQh2QYD+A3EgC0EYdnJyNgCsFCAIIBApAAg3AwggCCAQKQAANwMAIBQgCBAlQQAhCwJAIAMgBE4NAANAIAMgEmogCCALai0AACADIBNqLQAAcyIPOgAAIAIgC2pBgBBqIhUgFS0AACAPczoAACACIAIoAqwQQQFqIg82AqwQIA9FBEAgAiACKAKoEEEBajYCqBALIANBAWohAyALQQ5LDQEgC0EBaiELIAMgBEgNAAsLIAIQVCADIARIDQALCyAEQQ9xRQ0AIAJBAjYCsBALIAhBEGokACARIAwoAgA2AgAgAiAOKAIIELQBIA5BEDYCACACQbAUaiQAIA4gAEGAAWogABCSASABIAwQiwEgDBBtBEBBrDNBLhBWQX8MAQsgCkHgEGogCkGgEmoiARDRASAKQeAKaiAAQfgFaiABED0gDUEAIA1BAEobIQMgAEH4C2ohBCANQQFrIQggCkGgCmohDSAKQeAJaiEOIApBoAlqIQwgCkHgCGohECAKQaAIaiERIApB4AdqIRIgCkGgB2ohEyAKQeAGaiEUIApBoAZqIQ8gCkHgBWohFSAKQaAFaiEWA0AgAyAHRwRAIAdBtARsIgEgACgCrBBqIQsCQCAHIAhHDQAgBSABayICQbMESg0AIApBIGoiASAEQbQEEB8aIAEgCyACEB8aIAEhCwsgCiALNgIcIApCtISAgMDGADcCFCAKQeASaiIBIAsQKCAKQeAEaiICIAEQESABIAooAhxBL2oQKCAWIAEQESABIAooAhxB3gBqECggFSABEBEgASAKKAIcQY0BahAoIA8gARARIAEgCigCHEG8AWoQKCAUIAEQESABIAooAhxB6wFqECggEyABEBEgASAKKAIcQZoCahAoIBIgARARIAEgCigCHEHJAmoQKCARIAEQESABIAooAhxB+AJqECggECABEBEgASAKKAIcQacDahAoIAwgARARIAEgCigCHEHWA2oQKCAOIAEQESABIAooAhxBhQRqECggDSABEBEgAiAKQeAKahAeIAogBiAHQcAEbGo2AhwgCkLAhICAgMgANwIUIAdBAWohByAKQRRqIAIQqAEMAQsLIAkgCkHgEGoQxAFBAAshFyAKQaATaiQAIBcLBQBBwQELBQBB4QAL3AQBCX8jAEEQayIFJAACQAJAAkACQAJAAkACQAJAIAAoAggiBg4WAgMEBAcEBwcHBwcHBwcBAQcBBwcHAQALIAZBHWsiA0EQSw0GQQEgA3RBloIEcQ0EIAMNBgsgACAAQewDahAlIAZBDmshBANAIAEgAmoiAyADLQAAIAAgAmotAOwDczoAACACIARGIQggAkEBaiECIAhFDQALDAULIAAgARDOAQwECwNAIAQgBWogACAEaiIDLQDsAzoAACADIAEgBGotAAA6AOwDIARBAWoiBEEQRw0ACyAAIAEQzgEDQCABIAJqIgAgAC0AACACIAVqIgAtAABzOgAAIABBADoAACACQQFqIgJBEEcNAAsMAwsgBkEBayEDA0AgACACaiwA7AMgBEEIdHIhBCACQQFqIgIgA0cNAAsMAQsgBSAAKQD0AzcDCCAFIABB7ANqIgcpAAA3AwAgACAFECUgBkEeayEEQQAhAANAIAEgAmoiAyADLQAAIAIgBWotAABzOgAAIAIgBEchCSACQQFqIQIgCQ0ACwNAIAAgB2oiASABLQAAQQFqIgE6AAAgAUH/AXENAiAAQQFqIgBBEEcNAAsMAQsgBSAAKQD0AzcDCCAFIABB7ANqIgcpAAA3AwAgBkERSARAIAMhAgNAIAcgAiADa2ogAiAHai0AADoAACACQQ9IIQogAkEBaiECIAoNAAsLIAAgBRAlQQAhAgNAIAIgBmsgAGogASACaiIELQAAOgD9AyAEIAQtAAAgAiAFai0AAHM6AAAgAkEBaiICIANHDQALCyAFQRBqJAALBABBEAuECgEPfyMAQcAHayIJJABBfyADQcAEbSIKQbQEbEEAIANrIApBwHtsRxshAwJAIAAoAqwQIgsEQCAAKAKwECADTg0BCyALEEIgAxBMIQsgACADNgKwECAAIAs2AqwQC0EAIQMgCkEAIApBAEobIQ0gCUHABWohDiAJQYAFaiEPIAlBwARqIQwgCUGABGohECAJQcADaiERIAlBgANqIRIgCUHAAmohEyAJQYACaiEUIAlBwAFqIRUgCUGAAWohFiAJQUBrIRcDQCADIA1HBEAgCULAhICAgMgANwK0ByAJIAIgA0HABGxqNgK8ByAJIAlBtAdqEKcBIAkgARAeIAAoAqwQIQogCUK0hICAwMYANwK0ByAJIAogA0G0BGxqNgK8ByAJQcAGaiILQcAuEA8gCUGABmoiCiAJIAsQJCAJKAK8ByAKECMgCiAXIAsQJCAJKAK8B0EvaiAKECMgCiAWIAsQJCAJKAK8B0HeAGogChAjIAogFSALECQgCSgCvAdBjQFqIAoQIyAKIBQgCxAkIAkoArwHQbwBaiAKECMgCiATIAsQJCAJKAK8B0HrAWogChAjIAogEiALECQgCSgCvAdBmgJqIAoQIyAKIBEgCxAkIAkoArwHQckCaiAKECMgCiAQIAsQJCAJKAK8B0H4AmogChAjIAogDCALECQgCSgCvAdBpwNqIAoQIyAKIA8gCxAkIAkoArwHQdYDaiAKECMgCiAOIAsQJCAJKAK8B0GFBGogChAjIANBAWohAwwBCwsgACgCrBAhACAJIAQ2AogGIAlCkICAgIACNwKABiAJIAU2ArwHIAlCjICAgMABNwK0B0EAIQMgCUHkMygCADYCsAcgCUHcMykCADcDqAcgCSAANgKkByAJIAc2AqAHIAkgBzYCnAcgCSAGNgKYByAJIAc2ApQHIAkgBzYCkAcgCUKQgICAgAI3AoQHIAkgCUHABmoiADYCjAdBACECIwBBsBRrIgEkACABIAkoAoAGIAkoAogGIAkoArQHIAkoArwHEMIBIAEgCSgCsAcgCSgCqAcQtQEgCSgCmAchDSAJKAKkByEOIAkoApwHIQQjAEEQayIFJAACQAJAAkAgASgCsBAOAgABAgsgAUEBNgKwEAsgBEEASgRAIAFBoBRqIQsgAUG0EGohDwNAIAEgASgArBQiCkEYdCAKQYD+A3FBCHRyIApBCHZBgP4DcSAKQRh2cnJBAWoiCkEYdCAKQYD+A3FBCHRyIApBCHZBgP4DcSAKQRh2cnI2AKwUIAUgCykACDcDCCAFIAspAAA3AwAgDyAFECVBACEKAkAgAiAETg0AA0AgAiANaiACIA5qLQAAIgwgBSAKai0AAHM6AAAgASAKakGAEGoiECAMIBAtAABzOgAAIAEgASgCrBBBAWoiDDYCrBAgDEUEQCABIAEoAqgQQQFqNgKoEAsgAkEBaiECIApBDksNASAKQQFqIQogAiAESA0ACwsgARBUIAIgBEgNAAsLIARBD3FFDQAgAUECNgKwEAsgBUEQaiQAIAkgCSgCnAc2ApAHIAEgCSgCjAcQtAEgCUEQNgKEByABQbAUaiQAQQAhAUEQIQICQANAIAgtAAAiBCAALQAAIgVGBEAgAEEBaiEAIAhBAWohCCACQQFrIgINAQwCCwsgBCAFayEBCyABBEAgBkH/ASAHEBUaQX8hAwsgCUHAB2okACADC4kBAQN/IwBBwBFrIgokACAKQYARaiILIAEQFiACIApBwA9qIgIQiwEgCkGAD2oiASALIABBgAFqEJEBIApBgAxqIgsgAEH4AmoQNyALIAEQZCAKQYAGaiIBIAsgAhB7IAEQeSAKIAEQfiAAIAogBiAHIAMgBCAIIAkgBRDKASEMIApBwBFqJAAgDAuFAQEEfyMAQYATayIKJAAgCiACNgKIBiAKQsCEgICAyAA3AoAGIApBgA1qIgsgCkGABmoiAhCnASAKQcAMaiIMIAEQFiAKQYAMaiIBIAwgAEGAAWoQkQEgAiALIAEQPSAKIAIQfiAAIAogBiAHIAMgBCAIIAkgBRDKASENIApBgBNqJAAgDQvBBAEJfyMAQRBrIgUkAAJAAkACQAJAAkACQAJAAkAgACgCCCIGDhYCAwQEBwQHBwcHBwcHBwEBBwEHBwcBAAsgBkEdayIDQRBLDQZBASADdEGWggRxDQQgAw0GCyAAIABB7ANqECUgBkEOayEEA0AgASACaiIDIAMtAAAgACACai0A7ANzOgAAIAIgBEYhCCACQQFqIQIgCEUNAAsMBQsgACABECUMBAsDQCABIARqIgMgAy0AACAAIARqLQDsA3M6AAAgBEEBaiIEQRBHDQALIAAgARAlA0AgACACaiABIAJqLQAAOgDsAyACQQFqIgJBEEcNAAsMAwsgBkEBayEDA0AgACACaiwA7AMgBEEIdHIhBCACQQFqIgIgA0cNAAsMAQsgBSAAKQD0AzcDCCAFIABB7ANqIgcpAAA3AwAgACAFECUgBkEeayEEQQAhAANAIAEgAmoiAyADLQAAIAIgBWotAABzOgAAIAIgBEchCSACQQFqIQIgCQ0ACwNAIAAgB2oiASABLQAAQQFqIgE6AAAgAUH/AXENAiAAQQFqIgBBEEcNAAsMAQsgBSAAKQD0AzcDCCAFIABB7ANqIgcpAAA3AwAgBkERSARAIAMhAgNAIAcgAiADa2ogAiAHai0AADoAACACQQ9IIQogAkEBaiECIAoNAAsLIAAgBRAlQQAhAgNAIAEgAmoiBCAELQAAIAIgBWotAABzIgQ6AAAgAiAGayAAaiAEOgD9AyACQQFqIgIgA0cNAAsLIAVBEGokAAvsBwENfyMAQSBrIQQDQCAGQQJ0IgMgBEEQaiIFaiAAIANqKAL8ASABIAJqKAAAczYCACACQQRqIQIgBkEBaiIGQQRHDQALQQEhDiAFIQYgBCgCFCEHIAQoAhghCCAEKAIcIQIgBCgCECEJAkAgACgCBEEBTARAQQQhCgwBCyAAQfwBaiENIAchBSAIIQsgCSEMIAQhA0EEIQoDQCAGIQQgAyIGIAxB/wFxQQJ0QcAZaigCACANIApBAnQiA2ooAgBzIAJBBnZB/AdxQcAZaigCAEEId3MgC0EOdkH8B3FBwBlqKAIAQRB3cyAFQRZ2QfwHcUHAGWooAgBBGHdzIgk2AgAgBiAFQf8BcUECdEHAGWooAgAgDSADQQRyaigCAHMgDEEGdkH8B3FBwBlqKAIAQQh3cyACQQ52QfwHcUHAGWooAgBBEHdzIAtBFnZB/AdxQcAZaigCAEEYd3MiBzYCBCAGIAtB/wFxQQJ0QcAZaigCACANIANBCHJqKAIAcyAFQQZ2QfwHcUHAGWooAgBBCHdzIAxBDnZB/AdxQcAZaigCAEEQd3MgAkEWdkH8B3FBwBlqKAIAQRh3cyIINgIIIAYgAkH/AXFBAnRBwBlqKAIAIA0gA0EMcmooAgBzIAtBBnZB/AdxQcAZaigCAEEId3MgBUEOdkH8B3FBwBlqKAIAQRB3cyAMQRZ2QfwHcUHAGWooAgBBGHdzIgI2AgwgCkEEaiEKIAchBSAIIQsgCSEMIAQhAyAOQQFqIg4gACgCBEgNAAsLIAQgAEH8AWoiACAKQQJ0IgNqKAIAIAlB/wFxQcAhai0AAHMgAkEIdkH/AXFBwCFqLQAAQQh0cyAIQRB2Qf8BcUHAIWotAABBEHRzIAdBGHZBwCFqLQAAQRh0czYCACAEIAAgA0EEcmooAgAgB0H/AXFBwCFqLQAAcyAJQQh2Qf8BcUHAIWotAABBCHRzIAJBEHZB/wFxQcAhai0AAEEQdHMgCEEYdkHAIWotAABBGHRzNgIEIAQgACADQQhyaigCACAIQf8BcUHAIWotAABzIAdBCHZB/wFxQcAhai0AAEEIdHMgCUEQdkH/AXFBwCFqLQAAQRB0cyACQRh2QcAhai0AAEEYdHM2AgggBCAAIANBDHJqKAIAIAJB/wFxQcAhai0AAHMgCEEIdkH/AXFBwCFqLQAAQQh0cyAHQRB2Qf8BcUHAIWotAABBEHRzIAlBGHZBwCFqLQAAQRh0czYCDEEAIQJBACEFA0AgASAFaiAEIAJBAnQiAGoiAygCADYAACADQQA2AgAgACAGakEANgIAIAVBBGohBSACQQFqIgJBBEcNAAsLWQEBfyAAIAAoAkgiAUEBayABcjYCSCAAKAIAIgFBCHEEQCAAIAFBIHI2AgBBfw8LIABCADcCBCAAIAAoAiwiATYCHCAAIAE2AhQgACABIAAoAjBqNgIQQQALMgECfyMAQYABayIBJAAgAUFAayICQYArEA8gAUHAKxAPIAAgAiABENIBIAFBgAFqJAAL2AUBCX8jAEHwEGsiBCQAAkAgABBtDQAgARDeAQRAIAAQOSAAQUBrEE8gAEGAAWoQOQwBCyAAEI4BIARBsA5qIgIgABBOIAIQVyAEQbACaiAAEE5BASECA0AgBEGwAmogAkHAAWxqIgMgA0HAAWsQTiADIARBsA5qIgMQjQEgAkEBaiICQQhHDQALIARB8A9qIgIgARAPIAIQPCEFIAJBARBeIAIQBSACEDwhBiAEQbAQaiIBIAIQDyABQQEQXiABEAUgAiABIAUQlgEgAyAAIAYQMSAEQfAAaiADEE4gAhBDIgFBA2pBBG0iAkEBaiEFIAFBekgiBkUEQEEAIQEgAkEAIAJBAEobIQcDQCABIARqIARB8A9qIgNBBRBbQRBrIgg6AAAgAyAIwBBwIAMQBSADQQQQXyABIAdHIQkgAUEBaiEBIAkNAAsLIAQgBWogBEHwD2pBBRBbIgE6AAAgACAEQbACaiABwEEBa0ECbcFBwAFsahBOIAZFBEADQCACIARqLAAAIQcjAEHAAWsiBiQAIARBsA5qIgEgBEGwAmoiAyAHQR91IgUgB3MgBUF/c2pBAm0iBUEBa0EfdhAxIAEgA0HAAWogBUEBc0EBa0EfdhAxIAEgA0GAA2ogBUECc0EBa0EfdhAxIAEgA0HABGogBUEDc0EBa0EfdhAxIAEgA0GABmogBUEEc0EBa0EfdhAxIAEgA0HAB2ogBUEFc0EBa0EfdhAxIAEgA0GACWogBUEGc0EBa0EfdhAxIAEgA0HACmogBUEHc0EBa0EfdhAxIAYgARBOIAZBQGsiAyADECYgAxAFIAEgBiAHQR92EDEgBkHAAWokACAAEFcgABBXIAAQVyAAEFcgACABEI0BIAJBAEohCiACQQFrIQIgCg0ACwsgBEHwAGoiAkFAayIBIAEQJiABEAUgACACEI0BIAEgARAmIAEQBSAAEI4BCyAEQfAQaiQAC9EBAQV/IwBBgAFrIgUkACAFIAIQESAFIAUQIiAFEB0gBUFAayIDIAEQESAAQYABaiEGIABBQGshByMAQUBqIgQkACAEIAMQIiAEIAQgAxAKAkBB8CkoAgBBfUYEQCADIAMQJiADEAUgAyADQQMQMiADEAUgAyAEIAMQBgwBCyADIAQQGwsgBEGAKhA2IAMgBCADEAYgAxAdIARBQGskAAJAIAUgAxBYRQRAIAAQOSAHEE8gBhA5DAELIAAgARARIAcgAhARIAYQTwsgBUGAAWokAAuFAwEJfyMAQUBqIgUkACAFQcAuEA8gBUECEHAgBRAFIwBB8AlrIgIkACABIgQQBSAFEAUgAiAFEA8gAhBDIghBA2pBBG0hASAIQXpOBEAgAUEAIAFBAEobIQcDQCACQcAIaiADaiACQQQQWyIGOgAAIAIgBsAQcCACEAUgAkEEEF8gAyAHRyEJIANBAWohAyAJDQALCyACQbAJaiIDENgBIAJBQGsgAxARIAJBgAFqIAQQDyACIAQoAjg2ArgBQQIhAwNAIAJBQGsiByADQQZ0aiIGIAZBQGogBBAKIANBAWoiA0EQRw0ACyAAIAJBwAhqIAFqLAAAQQZ0IAdqIgQQDyAAIAQoAjg2AjggCEEASgRAA0AgACAAECIgACAAECIgACAAECIgACAAECIgACAAIAJBQGsgAUEBayIEIAJBwAhqaiwAAEEGdGoQCiABQQFKIQogBCEBIAoNAAsLIAJBsAlqIgFBwC4QDyAAIAEQJyAAQQE2AjggAkHwCWokACAFQUBrJAALNgECfyAAKAIAQQBKBEADQCAAKAIIIAJqIgMgAy0AACABczoAACACQQFqIgIgACgCAEgNAAsLC3UBAn9BDCEBIAAgACkDaEIBhiAAQeAAaikDAEI5h4Q3A2gDQCAAIAFBA3RqIgIgAikDAEIBhkL//////////wODIAJBCGspAwBCOYeENwMAIAFBAWsiAUEASg0ACyAAIAApAwBCAYZC//////////8DgzcDAAsNACAAIAEgAkEOELYBCzEBAn8DQCAAIANBA3QiBGogASAEaikDACACIARqKQMAfTcDACADQQFqIgNBDkcNAAsLFQAgAEIBNwMAIABBCGpBAEEwEBUaCwwAIABBAEHwABAVGgtWAQJ/A0AgACACQQN0IgNqIAEgA2opAwA3AwAgAkEBaiICQQZHDQALIAAgASkDMEL//////////wODNwMwIAAgASkDMEI6hzcDOCAAQUBrQQBBMBAVGgtLAgF+An8DQCAAIAJBA3RqIgMgAykDACABfCIBQv//////////A4M3AwAgAUI6hyEBIAJBAWoiAkENRw0ACyAAIAApA2ggAXw3A2gLCwAgAEEAQTgQFRoLfgEEfwJAIAAoAgAiA0EIaiICIAAoAgRKDQADQCAAKAIIIANqQQA6AAAgA0EBaiIDIAJIDQALIAAgAjYCACACQQBMIAFBAExyDQADQCACQQFrIgMgACgCCGogAToAACACQQJJDQEgAUH/AUshBSABQQh2IQEgAyECIAUNAAsLCwkAIABBBxC7AQuaAQEEfyMAQdACayIDJAAgA0HwAWoiBSAAKAIIEGEgA0HAAWoiACABKAIIQQFqEGEgAyABKAIIQSFqEGFBfSEBAkAgA0EwaiIEIAAgAxDiAUUNACADQaACaiIGQYAoEBQgBSAGEC0gBCAFEOABIAQQcg0AIAAgACAEEOMBIAJBIDYCACACKAIIIAAQYkEAIQELIANB0AJqJAAgAQvcBQEJfyMAQdAMayIEJAACQCAAEHINACABEKUBBEAgABB1IABBMGoQcyAAQeAAahB1DAELIAAQmAEgBEHgCmoiAiAAEFAgAhBgIARB4AFqIAAQUEEBIQIDQCAEQeABaiACQZABbGoiAyADQZABaxBQIAMgBEHgCmoiAxCXASACQQFqIgJBCEcNAAsgBEHwC2oiAiABEBQgAhA8IQUgAkEBEJ4BIAIQByACEDwhBiAEQaAMaiIBIAIQFCABQQEQngEgARAHIAIgASAFEKQBIAMgACAGEDMgBEHQAGogAxBQIAIQYyIBQQNqQQRtIgJBAWohBSABQXpIIgZFBEBBACEBIAJBACACQQBKGyEHA0AgASAEaiAEQfALaiIDQQUQnAFBEGsiCDoAACADIAjAEJ0BIAMQByADEKMBIAEgB0chCSABQQFqIQEgCQ0ACwsgBCAFaiAEQfALakEFEJwBIgE6AAAgACAEQeABaiABwEEBa0ECbcFBkAFsahBQIAZFBEADQCACIARqLAAAIQcjAEGQAWsiBiQAIARB4ApqIgEgBEHgAWoiAyAHQR91IgUgB3MgBUF/c2pBAm0iBUEBa0EfdhAzIAEgA0GQAWogBUEBc0EBa0EfdhAzIAEgA0GgAmogBUECc0EBa0EfdhAzIAEgA0GwA2ogBUEDc0EBa0EfdhAzIAEgA0HABGogBUEEc0EBa0EfdhAzIAEgA0HQBWogBUEFc0EBa0EfdhAzIAEgA0HgBmogBUEGc0EBa0EfdhAzIAEgA0HwB2ogBUEHc0EBa0EfdhAzIAYgARBQIAZBMGoiAyADEFEgAxAHIAEgBiAHQR92EDMgBkGQAWokACAAEGAgABBgIAAQYCAAEGAgACABEJcBIAJBAEohCiACQQFrIQIgCg0ACwsgBEHQAGoiAkEwaiIBIAEQUSABEAcgACACEJcBIAEgARBRIAEQByAAEJgBCyAEQdAMaiQACzUBAX8gACgCBEEASgRAA0AgACgCCCABakEAOgAAIAFBAWoiASAAKAIESA0ACwsgAEEANgIAC9gBAQZ/IwBB4ABrIgUkACAFIAIQOyAFIAUQLCAFEHQgBUEwaiIDIAEQOyAAQeAAaiEGIABBMGohByMAQTBrIgQkACAEIAMQLCAEIAQgAxAMAkBBwCcoAgBBfUYEQCADIAMQUSADEAcgAyADQQMQOiADEAcgAyAEIAMQCQwBCyADIAQQRAsgBBCbASADIAQgAxAJIAMQdCAEQTBqJAACfyAFIAMQ5AFFBEAgABB1IAcQcyAGEHVBAAwBCyAAIAEQOyAHIAIQOyAGEHNBAQshCCAFQeAAaiQAIAgLJQAgAhByRQRAIAIQmAEgASACQTBqEOcBIAEQPBogACACEOcBCwuHAQIEfwJ+IwBBMGsiAiQAIAJBkCkQFCAAIAIQLSAAQQE2AiggAkGQKRAUIAEgAhAtIAFBATYCKAJ/QQQhAwJAA0AgACADIgRBA3QiA2opAwAiBiABIANqKQMAIgdSDQEgBEEBayEDIAQNAAtBAAwBC0EBQX8gBiAHVRsLIQUgAkEwaiQAIAVFCyoBAn8jAEEwayIBJAAgAUGQKRAUIAAgARAtIAAQpQEhAiABQTBqJAAgAgtPAQJ/AkAgAUEATA0AIAAoAgAhAgNAIAIgACgCBE4NASAAKAIIIAJqQQA6AAAgACAAKAIAQQFqNgIAIAJBAWohAiADQQFqIgMgAUcNAAsLC6MBAgN/AX4jAEGAAWsiAiQAIAJBAEHQABAVGgNAIAIgA0EDdCIEaiABIARqKQMANwMAIANBAWoiA0EERw0ACyACIAEpAyBC//////////8AgzcDICABMAAnIQUgAkIANwMwIAIgBTcDKCACQgA3AzggAkFAa0IANwMAIAJCADcDSCACQdAAaiIBQZApEBQgACABQegpKQMAIAIQdiACQYABaiQAC3QBAn9BCCEBIAAgACkDSEIBhiAAQUBrKQMAQjeHhDcDSANAIAAgAUEDdGoiAiACKQMAQgGGQv//////////AIMgAkEIaykDAEI3h4Q3AwAgAUEBayIBQQBKDQALIAAgACkDAEIBhkL//////////wCDNwMAC4wFAgV+Bn8jAEGAAWsiCSQAA0AgCUEgaiACIAhBA3QiCmopAwAiAyADQj+HIAEgCmopAwAiAyADQj+HEA0gCUEwaiAIQQR0aiIKIAkpAyg3AwggCiAJKQMgNwMAIAhBAWoiCEEFRw0ACyAJKQM4IQcgACAJKQMwIgZC//////////8AgzcDACAHQgiGIAZCOIiEIQMgB0I4hyEEQQEhCgNAIAQgCUEwaiAKQQR0aiIIKQMIIAd8IAgpAwAiBCAGfCIGIARUrXwiB3wgAyAGfCIDIAZUrXwhBCAKQQF2IQsgCiEIA0AgCUEQaiACIAogCGtBA3QiDGopAwAgAiAIQQN0Ig1qKQMAfSIFIAVCP4cgASANaikDACABIAxqKQMAfSIFIAVCP4cQDSAJKQMQIgUgA3wiAyAFVK0gCSkDGCAEfHwhBCAIQQFrIgggC0oNAAsgACAKQQN0aiADQv//////////AIM3AwAgBEIIhiADQjiIhCEDIARCOIchBEEFIQsgCkEBaiIKQQVHDQALA0BBBCEIIAQgByALQQR0IAlqQSBrIgopAwh9IAYgCikDACIEVK19Igd8IAYgBH0iBiADfCIDIAZUrXwhBCALQQdNBEAgC0EBdiEKA0AgCSACIAsgCGtBA3QiDGopAwAgAiAIQQN0Ig1qKQMAfSIFIAVCP4cgASANaikDACABIAxqKQMAfSIFIAVCP4cQDSAJKQMAIgUgA3wiAyAFVK0gCSkDCCAEfHwhBCAIQQFrIgggCksNAAsLIAAgC0EDdGogA0L//////////wCDNwMAIARCCIYgA0I4iIQhAyAEQjiHIQQgC0EBaiILQQlHDQALIAAgAzcDSCAJQYABaiQAC0YBAn8gACgCPCEEIwBBEGsiACQAIAQgAacgAUIgiKcgAkH/AXEgAEEIahAAEMABIQIgACkDCCEBIABBEGokAEJ/IAEgAhsLvgIBCH8jAEEgayIDJAAgAyAAKAIcIgQ2AhAgACgCFCEFIAMgAjYCHCADIAE2AhggAyAFIARrIgE2AhQgASACaiEFQQIhBiADQRBqIQECfwNAAkACQAJAIAAoAjwgASAGIANBDGoQAhDAAUUEQCAFIAMoAgwiB0YNASAHQQBODQIMAwsgBUF/Rw0CCyAAIAAoAiwiATYCHCAAIAE2AhQgACABIAAoAjBqNgIQIAIMAwsgASAHIAEoAgQiCEsiCUEDdGoiBCAHIAhBACAJG2siCCAEKAIAajYCACABQQxBBCAJG2oiASABKAIAIAhrNgIAIAUgB2shBSAGIAlrIQYgBCEBDAELCyAAQQA2AhwgAEIANwMQIAAgACgCAEEgcjYCAEEAIAZBAkYNABogAiABKAIEawshCiADQSBqJAAgCgsJACAAKAI8EAMLmQEBAX9BfiEFAkAgAkGBAUgNACADIAEpAAA3AAAgAyABKQAYNwAYIAMgASkAEDcAECADIAEpAAg3AAggACABQSBqIANBIGoQwQEaIAQgASgAHBCHASIAQbQEbSIEQQAgAGsgBEHMe2xHakHABGwiAEHgBGo2AgAgAEGBAWogAkoNACADQeAEaiABQYEBaiAAEB8aQQAhBQsgBQupAQEDfyMAQRBrIgMkAEG4EBBMIgIgACABEFUgAkG4AWoiABDQASACQfgCaiIBEHwgAkH4BWoiBCABIAAQeyAEEHkgAkGAAWpBwCoQDyADIAJB+AtqNgIMIANCtISAgMDGADcCBEEAIQAgAygCBEEASgRAA0AgAhBmIQEgAygCDCAAaiABOgAAIABBAWoiACADKAIESA0ACwsgAkIANwKsECADQRBqJAAgAgtrAQJ/IwBBgAVrIgQkACAEQYAEaiIFIAAgARBVIAQQfCAEQcADaiIBQcAqEA8gBEGAA2oiACABIAUQkgEgBCAAEGQgAgRAIAIgABAYCyADBEAgAyAEEIoBCyAEQYAEahBTIARBgAVqJABBAAulAgIGfwF+IwBBwAFrIgQkACAEQUBrIgkgACABEFVBACEBIARBAEE4EBUhAANAAn8gAUUEQCAJEGYMAQsgBUEBdQshBSAAIAApAzBCAYYiCjcDMEEFIQYgACAKIAApAyhCOYeENwMwA0AgACAGQQN0aiIIIAgpAwBCAYZC//////////8DgyAIQQhrKQMAQjmHhDcDACAGQQFrIgZBAEoNAAsgACAAKQMAQgGGQv//////////A4M3AwAgACAAKQMAIAVBAXGtfDcDACABQQFqQQdxIQEgB0EBaiIHQYADRw0ACyACBEAgAiAEKQMANwAAIAIgBCkDCDcACAsgAwRAIAMgBCkDEDcAACADIAQoAhg2AAgLIARBQGsQUyAEQcABaiQAQQALUwECfyMAQcAEayIDJAAgA0GABGoiBCAAEBYgASADQYABaiIAEMMBIANBQGsiAUHAKhAPIAMgBCABEJEBIAAgAxBkIAIgABCKASADQcAEaiQAQQALbQECfyMAQcADayIEJAAgBEHAAmoiBSAAIAEQVSAEENABIARBgAJqIgFBwCoQDyAEQcABaiIAIAEgBRCSASAEIAAQ0QEgAgRAIAIgABAYCyADBEAgAyAEEMQBCyAEQcACahBTIARBwANqJABBAAsSACAAEFMgACgCrBAQQiAAEEILWAAgBiADKQAANwAAIAYgAygACDYACCAGIAUQhwE2ABwgACABIAIgBiAEIAUgBkGBAWogBUG0BG0iAEEAIAVrIABBzHtsR2pBwARsIAZBDGogBkEgahDFAQuDDgIIfwJ+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", aA($) || ($ = h($));
213
+ function nA(i) {
214
+ if (i == $ && G)
215
+ return new Uint8Array(G);
216
+ var s = uA(i);
217
+ if (s)
218
+ return s;
219
+ throw "both async and sync fetching of the wasm failed";
220
+ }
221
+ function BA(i) {
222
+ return Promise.resolve().then(() => nA(i));
223
+ }
224
+ function wA(i, s, d) {
225
+ return BA(i).then((u) => WebAssembly.instantiate(u, s)).then((u) => u).then(d, (u) => {
226
+ D(`failed to asynchronously prepare wasm: ${u}`), IA(u);
227
+ });
228
+ }
229
+ function yA(i, s, d, u) {
230
+ return wA(s, d, u);
231
+ }
232
+ function t() {
233
+ var i = { a: UA };
234
+ function s(u, L) {
235
+ return U = u.exports, N = U.f, l(), DA(U.g), AA(), U;
236
+ }
237
+ cA();
238
+ function d(u) {
239
+ s(u.instance);
240
+ }
241
+ if (A.instantiateWasm)
242
+ try {
243
+ return A.instantiateWasm(i, s);
244
+ } catch (u) {
245
+ D(`Module.instantiateWasm callback failed with error: ${u}`), C(u);
246
+ }
247
+ return yA(G, $, i, d).catch(C), {};
248
+ }
249
+ var e = (i) => {
250
+ for (; i.length > 0; )
251
+ i.shift()(A);
252
+ };
253
+ function f(i, s = "i8") {
254
+ switch (s.endsWith("*") && (s = "*"), s) {
255
+ case "i1":
256
+ return q[i >> 0];
257
+ case "i8":
258
+ return q[i >> 0];
259
+ case "i16":
260
+ return R[i >> 1];
261
+ case "i32":
262
+ return c[i >> 2];
263
+ case "i64":
264
+ IA("to do getValue(i64) use WASM_BIGINT");
265
+ case "float":
266
+ return H[i >> 2];
267
+ case "double":
268
+ return F[i >> 3];
269
+ case "*":
270
+ return y[i >> 2];
271
+ default:
272
+ IA(`invalid type for getValue: ${s}`);
273
+ }
274
+ }
275
+ var M = () => Date.now(), _ = () => 2147483648, g = (i) => {
276
+ var s = N.buffer, d = (i - s.byteLength + 65535) / 65536;
277
+ try {
278
+ return N.grow(d), l(), 1;
279
+ } catch {
280
+ }
281
+ }, B = (i) => {
282
+ var s = S.length;
283
+ i >>>= 0;
284
+ var d = _();
285
+ if (i > d)
286
+ return !1;
287
+ for (var u = (x, Z) => x + (Z - x % Z) % Z, L = 1; L <= 4; L *= 2) {
288
+ var m = s * (1 + 0.2 / L);
289
+ m = Math.min(m, i + 100663296);
290
+ var T = Math.min(d, u(Math.max(i, m), 65536)), P = g(T);
291
+ if (P)
292
+ return !0;
293
+ }
294
+ return !1;
295
+ }, n = typeof TextDecoder < "u" ? new TextDecoder("utf8") : void 0, w = (i, s, d) => {
296
+ for (var u = s + d, L = s; i[L] && !(L >= u); )
297
+ ++L;
298
+ if (L - s > 16 && i.buffer && n)
299
+ return n.decode(i.subarray(s, L));
300
+ for (var m = ""; s < L; ) {
301
+ var T = i[s++];
302
+ if (!(T & 128)) {
303
+ m += String.fromCharCode(T);
304
+ continue;
305
+ }
306
+ var P = i[s++] & 63;
307
+ if ((T & 224) == 192) {
308
+ m += String.fromCharCode((T & 31) << 6 | P);
309
+ continue;
310
+ }
311
+ var x = i[s++] & 63;
312
+ if ((T & 240) == 224 ? T = (T & 15) << 12 | P << 6 | x : T = (T & 7) << 18 | P << 12 | x << 6 | i[s++] & 63, T < 65536)
313
+ m += String.fromCharCode(T);
314
+ else {
315
+ var Z = T - 65536;
316
+ m += String.fromCharCode(55296 | Z >> 10, 56320 | Z & 1023);
317
+ }
318
+ }
319
+ return m;
320
+ }, O = (i) => 52;
321
+ function K(i, s, d, u, L) {
322
+ return 70;
323
+ }
324
+ var v = [null, [], []], eA = (i, s) => {
325
+ var d = v[i];
326
+ s === 0 || s === 10 ? ((i === 1 ? r : D)(w(d, 0)), d.length = 0) : d.push(s);
327
+ }, sA = (i, s, d, u) => {
328
+ for (var L = 0, m = 0; m < d; m++) {
329
+ var T = y[s >> 2], P = y[s + 4 >> 2];
330
+ s += 8;
331
+ for (var x = 0; x < P; x++)
332
+ eA(i, S[T + x]);
333
+ L += P;
334
+ }
335
+ return y[u >> 2] = L, 0;
336
+ }, RA = (i, s) => {
337
+ q.set(i, s);
338
+ }, UA = { e: M, b: B, d: O, a: K, c: sA }, U = t();
339
+ A._EMS_AES_KEY_SIZE_ = () => (A._EMS_AES_KEY_SIZE_ = U.h)(), A._EMS_CRYPTO_TYPE_TARGET_ = () => (A._EMS_CRYPTO_TYPE_TARGET_ = U.i)(), A._EMS_CRYPTO_TYPE_PRIMARY_ = () => (A._EMS_CRYPTO_TYPE_PRIMARY_ = U.j)(), A._EMS_TARGET_BLOCK_KEY_SIZE_ = () => (A._EMS_TARGET_BLOCK_KEY_SIZE_ = U.k)(), A._EMS_TARGET_PK_KEY_SIZE_ = () => (A._EMS_TARGET_PK_KEY_SIZE_ = U.l)(), A._EMS_ECIES_PK_KEY_SIZE_ = () => (A._EMS_ECIES_PK_KEY_SIZE_ = U.m)(), A._EMS_ECIES_SK_KEY_SIZE_ = () => (A._EMS_ECIES_SK_KEY_SIZE_ = U.n)(), A._EMS_IV_SIZE_ = () => (A._EMS_IV_SIZE_ = U.o)(), A._EMS_PRIMARY_BLOCK_KEY_SIZE_ = () => (A._EMS_PRIMARY_BLOCK_KEY_SIZE_ = U.p)(), A._EMS_PRIMARY_PK_KEY_SIZE_ = () => (A._EMS_PRIMARY_PK_KEY_SIZE_ = U.q)(), A._EMS_RE_ENCRYPTION_KEY_SIZE_ = () => (A._EMS_RE_ENCRYPTION_KEY_SIZE_ = U.r)(), A._EMS_SECRET_KEY_SIZE_ = () => (A._EMS_SECRET_KEY_SIZE_ = U.s)(), A._EMS_SEED_SIZE_ = () => (A._EMS_SEED_SIZE_ = U.t)(), A._EMS_TAG_SIZE_ = () => (A._EMS_TAG_SIZE_ = U.u)(), A._free = (i) => (A._free = U.v)(i), A._malloc = (i) => (A._malloc = U.w)(i), A._DeriveTargetKeys = (i, s, d, u) => (A._DeriveTargetKeys = U.x)(i, s, d, u), A._CalcEncByteCount = (i) => (A._CalcEncByteCount = U.y)(i), A._CalcEncByteCountFromTargetH = (i) => (A._CalcEncByteCountFromTargetH = U.z)(i), A._CalcEncByteCountH = (i, s) => (A._CalcEncByteCountH = U.A)(i, s), A._CalcEncECIESByteCount = (i) => (A._CalcEncECIESByteCount = U.B)(i), A._CalcTargetByteCountH = (i) => (A._CalcTargetByteCountH = U.C)(i), A._DecryptAES = (i, s, d, u, L, m) => (A._DecryptAES = U.D)(i, s, d, u, L, m), A._DecryptECIES = (i, s, d, u, L, m, T) => (A._DecryptECIES = U.E)(i, s, d, u, L, m, T), A._DecryptH = (i, s, d, u, L, m, T, P) => (A._DecryptH = U.F)(i, s, d, u, L, m, T, P), A._DecryptTarget = (i, s, d, u, L, m, T, P, x, Z) => (A._DecryptTarget = U.G)(i, s, d, u, L, m, T, P, x, Z), A._DecryptPrimary = (i, s, d, u, L, m, T, P, x, Z) => (A._DecryptPrimary = U.H)(i, s, d, u, L, m, T, P, x, Z), A._EncryptAES = (i, s, d, u, L, m) => (A._EncryptAES = U.I)(i, s, d, u, L, m), A._EncryptECIES = (i, s, d, u, L, m, T, P, x) => (A._EncryptECIES = U.J)(i, s, d, u, L, m, T, P, x), A._EncryptPrimary = (i, s, d, u, L, m, T, P, x, Z) => (A._EncryptPrimary = U.K)(i, s, d, u, L, m, T, P, x, Z), A._EncryptPrimaryH = (i, s, d, u, L, m, T) => (A._EncryptPrimaryH = U.L)(i, s, d, u, L, m, T), A._FreeCryptoContext = (i) => (A._FreeCryptoContext = U.M)(i), A._GeneratePrimaryKeys = (i, s, d, u) => (A._GeneratePrimaryKeys = U.N)(i, s, d, u), A._GenerateReEncryptionKey = (i, s, d) => (A._GenerateReEncryptionKey = U.O)(i, s, d), A._GenerateTargetKeys = (i, s, d, u) => (A._GenerateTargetKeys = U.P)(i, s, d, u), A._GenerateSymmetricKeys = (i, s, d, u) => (A._GenerateSymmetricKeys = U.Q)(i, s, d, u), A._NewCryptoContext = (i, s) => (A._NewCryptoContext = U.R)(i, s), A._ReEncryptBlockKey = (i, s, d) => (A._ReEncryptBlockKey = U.S)(i, s, d), A._ReEncryptH = (i, s, d, u, L) => (A._ReEncryptH = U.T)(i, s, d, u, L);
340
+ function lA(i) {
341
+ try {
342
+ for (var s = atob(i), d = new Uint8Array(s.length), u = 0; u < s.length; ++u)
343
+ d[u] = s.charCodeAt(u);
344
+ return d;
345
+ } catch {
346
+ throw new Error("Converting base64 string to bytes failed.");
347
+ }
348
+ }
349
+ function uA(i) {
350
+ if (aA(i))
351
+ return lA(i.slice(gA.length));
352
+ }
353
+ A.getValue = f, A.writeArrayToMemory = RA;
354
+ var iA;
355
+ z = function i() {
356
+ iA || tA(), iA || (z = i);
357
+ };
358
+ function tA() {
359
+ if (X > 0 || (J(), X > 0))
360
+ return;
361
+ function i() {
362
+ iA || (iA = !0, A.calledRun = !0, !b && (p(), Q(A), A.onRuntimeInitialized && A.onRuntimeInitialized(), V()));
363
+ }
364
+ A.setStatus ? (A.setStatus("Running..."), setTimeout(function() {
365
+ setTimeout(function() {
366
+ A.setStatus("");
367
+ }, 1), i();
368
+ }, 1)) : i();
369
+ }
370
+ if (A.preInit)
371
+ for (typeof A.preInit == "function" && (A.preInit = [A.preInit]); A.preInit.length > 0; )
372
+ A.preInit.pop()();
373
+ return tA(), I.ready;
374
+ };
375
+ })();
376
+ const SI = uI;
377
+ var GA = { exports: {} }, mA = { exports: {} }, iI = CI.EventEmitter, pA, ZA;
378
+ function dI() {
379
+ if (ZA)
380
+ return pA;
381
+ ZA = 1;
382
+ function E(S, R) {
383
+ var c = Object.keys(S);
384
+ if (Object.getOwnPropertySymbols) {
385
+ var y = Object.getOwnPropertySymbols(S);
386
+ R && (y = y.filter(function(H) {
387
+ return Object.getOwnPropertyDescriptor(S, H).enumerable;
388
+ })), c.push.apply(c, y);
389
+ }
390
+ return c;
391
+ }
392
+ function I(S) {
393
+ for (var R = 1; R < arguments.length; R++) {
394
+ var c = arguments[R] != null ? arguments[R] : {};
395
+ R % 2 ? E(Object(c), !0).forEach(function(y) {
396
+ A(S, y, c[y]);
397
+ }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(S, Object.getOwnPropertyDescriptors(c)) : E(Object(c)).forEach(function(y) {
398
+ Object.defineProperty(S, y, Object.getOwnPropertyDescriptor(c, y));
399
+ });
400
+ }
401
+ return S;
402
+ }
403
+ function A(S, R, c) {
404
+ return R = a(R), R in S ? Object.defineProperty(S, R, { value: c, enumerable: !0, configurable: !0, writable: !0 }) : S[R] = c, S;
405
+ }
406
+ function Q(S, R) {
407
+ if (!(S instanceof R))
408
+ throw new TypeError("Cannot call a class as a function");
409
+ }
410
+ function C(S, R) {
411
+ for (var c = 0; c < R.length; c++) {
412
+ var y = R[c];
413
+ y.enumerable = y.enumerable || !1, y.configurable = !0, "value" in y && (y.writable = !0), Object.defineProperty(S, a(y.key), y);
414
+ }
415
+ }
416
+ function o(S, R, c) {
417
+ return R && C(S.prototype, R), c && C(S, c), Object.defineProperty(S, "prototype", { writable: !1 }), S;
418
+ }
419
+ function a(S) {
420
+ var R = h(S, "string");
421
+ return typeof R == "symbol" ? R : String(R);
422
+ }
423
+ function h(S, R) {
424
+ if (typeof S != "object" || S === null)
425
+ return S;
426
+ var c = S[Symbol.toPrimitive];
427
+ if (c !== void 0) {
428
+ var y = c.call(S, R || "default");
429
+ if (typeof y != "object")
430
+ return y;
431
+ throw new TypeError("@@toPrimitive must return a primitive value.");
432
+ }
433
+ return (R === "string" ? String : Number)(S);
434
+ }
435
+ var r = vA(), D = r.Buffer, G = eI, N = G.inspect, b = N && N.custom || "inspect";
436
+ function q(S, R, c) {
437
+ D.prototype.copy.call(S, R, c);
438
+ }
439
+ return pA = /* @__PURE__ */ function() {
440
+ function S() {
441
+ Q(this, S), this.head = null, this.tail = null, this.length = 0;
442
+ }
443
+ return o(S, [{
444
+ key: "push",
445
+ value: function(c) {
446
+ var y = {
447
+ data: c,
448
+ next: null
449
+ };
450
+ this.length > 0 ? this.tail.next = y : this.head = y, this.tail = y, ++this.length;
451
+ }
452
+ }, {
453
+ key: "unshift",
454
+ value: function(c) {
455
+ var y = {
456
+ data: c,
457
+ next: this.head
458
+ };
459
+ this.length === 0 && (this.tail = y), this.head = y, ++this.length;
460
+ }
461
+ }, {
462
+ key: "shift",
463
+ value: function() {
464
+ if (this.length !== 0) {
465
+ var c = this.head.data;
466
+ return this.length === 1 ? this.head = this.tail = null : this.head = this.head.next, --this.length, c;
467
+ }
468
+ }
469
+ }, {
470
+ key: "clear",
471
+ value: function() {
472
+ this.head = this.tail = null, this.length = 0;
473
+ }
474
+ }, {
475
+ key: "join",
476
+ value: function(c) {
477
+ if (this.length === 0)
478
+ return "";
479
+ for (var y = this.head, H = "" + y.data; y = y.next; )
480
+ H += c + y.data;
481
+ return H;
482
+ }
483
+ }, {
484
+ key: "concat",
485
+ value: function(c) {
486
+ if (this.length === 0)
487
+ return D.alloc(0);
488
+ for (var y = D.allocUnsafe(c >>> 0), H = this.head, F = 0; H; )
489
+ q(H.data, y, F), F += H.data.length, H = H.next;
490
+ return y;
491
+ }
492
+ // Consumes a specified amount of bytes or characters from the buffered data.
493
+ }, {
494
+ key: "consume",
495
+ value: function(c, y) {
496
+ var H;
497
+ return c < this.head.data.length ? (H = this.head.data.slice(0, c), this.head.data = this.head.data.slice(c)) : c === this.head.data.length ? H = this.shift() : H = y ? this._getString(c) : this._getBuffer(c), H;
498
+ }
499
+ }, {
500
+ key: "first",
501
+ value: function() {
502
+ return this.head.data;
503
+ }
504
+ // Consumes a specified amount of characters from the buffered data.
505
+ }, {
506
+ key: "_getString",
507
+ value: function(c) {
508
+ var y = this.head, H = 1, F = y.data;
509
+ for (c -= F.length; y = y.next; ) {
510
+ var l = y.data, k = c > l.length ? l.length : c;
511
+ if (k === l.length ? F += l : F += l.slice(0, c), c -= k, c === 0) {
512
+ k === l.length ? (++H, y.next ? this.head = y.next : this.head = this.tail = null) : (this.head = y, y.data = l.slice(k));
513
+ break;
514
+ }
515
+ ++H;
516
+ }
517
+ return this.length -= H, F;
518
+ }
519
+ // Consumes a specified amount of bytes from the buffered data.
520
+ }, {
521
+ key: "_getBuffer",
522
+ value: function(c) {
523
+ var y = D.allocUnsafe(c), H = this.head, F = 1;
524
+ for (H.data.copy(y), c -= H.data.length; H = H.next; ) {
525
+ var l = H.data, k = c > l.length ? l.length : c;
526
+ if (l.copy(y, y.length - c, 0, k), c -= k, c === 0) {
527
+ k === l.length ? (++F, H.next ? this.head = H.next : this.head = this.tail = null) : (this.head = H, H.data = l.slice(k));
528
+ break;
529
+ }
530
+ ++F;
531
+ }
532
+ return this.length -= F, y;
533
+ }
534
+ // Make sure the linked list only shows the minimal necessary information.
535
+ }, {
536
+ key: b,
537
+ value: function(c, y) {
538
+ return N(this, I(I({}, y), {}, {
539
+ // Only inspect one level.
540
+ depth: 0,
541
+ // It should not recurse.
542
+ customInspect: !1
543
+ }));
544
+ }
545
+ }]), S;
546
+ }(), pA;
547
+ }
548
+ function RI(E, I) {
549
+ var A = this, Q = this._readableState && this._readableState.destroyed, C = this._writableState && this._writableState.destroyed;
550
+ return Q || C ? (I ? I(E) : E && (this._writableState ? this._writableState.errorEmitted || (this._writableState.errorEmitted = !0, process.nextTick(TA, this, E)) : process.nextTick(TA, this, E)), this) : (this._readableState && (this._readableState.destroyed = !0), this._writableState && (this._writableState.destroyed = !0), this._destroy(E || null, function(o) {
551
+ !I && o ? A._writableState ? A._writableState.errorEmitted ? process.nextTick(FA, A) : (A._writableState.errorEmitted = !0, process.nextTick(jA, A, o)) : process.nextTick(jA, A, o) : I ? (process.nextTick(FA, A), I(o)) : process.nextTick(FA, A);
552
+ }), this);
553
+ }
554
+ function jA(E, I) {
555
+ TA(E, I), FA(E);
556
+ }
557
+ function FA(E) {
558
+ E._writableState && !E._writableState.emitClose || E._readableState && !E._readableState.emitClose || E.emit("close");
559
+ }
560
+ function FI() {
561
+ this._readableState && (this._readableState.destroyed = !1, this._readableState.reading = !1, this._readableState.ended = !1, this._readableState.endEmitted = !1), this._writableState && (this._writableState.destroyed = !1, this._writableState.ended = !1, this._writableState.ending = !1, this._writableState.finalCalled = !1, this._writableState.prefinished = !1, this._writableState.finished = !1, this._writableState.errorEmitted = !1);
562
+ }
563
+ function TA(E, I) {
564
+ E.emit("error", I);
565
+ }
566
+ function MI(E, I) {
567
+ var A = E._readableState, Q = E._writableState;
568
+ A && A.autoDestroy || Q && Q.autoDestroy ? E.destroy(I) : E.emit("error", I);
569
+ }
570
+ var tI = {
571
+ destroy: RI,
572
+ undestroy: FI,
573
+ errorOrDestroy: MI
574
+ }, oA = {};
575
+ function GI(E, I) {
576
+ E.prototype = Object.create(I.prototype), E.prototype.constructor = E, E.__proto__ = I;
577
+ }
578
+ var rI = {};
579
+ function j(E, I, A) {
580
+ A || (A = Error);
581
+ function Q(o, a, h) {
582
+ return typeof I == "string" ? I : I(o, a, h);
583
+ }
584
+ var C = /* @__PURE__ */ function(o) {
585
+ GI(a, o);
586
+ function a(h, r, D) {
587
+ return o.call(this, Q(h, r, D)) || this;
588
+ }
589
+ return a;
590
+ }(A);
591
+ C.prototype.name = A.name, C.prototype.code = E, rI[E] = C;
592
+ }
593
+ function VA(E, I) {
594
+ if (Array.isArray(E)) {
595
+ var A = E.length;
596
+ return E = E.map(function(Q) {
597
+ return String(Q);
598
+ }), A > 2 ? "one of ".concat(I, " ").concat(E.slice(0, A - 1).join(", "), ", or ") + E[A - 1] : A === 2 ? "one of ".concat(I, " ").concat(E[0], " or ").concat(E[1]) : "of ".concat(I, " ").concat(E[0]);
599
+ } else
600
+ return "of ".concat(I, " ").concat(String(E));
601
+ }
602
+ function NI(E, I, A) {
603
+ return E.substr(!A || A < 0 ? 0 : +A, I.length) === I;
604
+ }
605
+ function kI(E, I, A) {
606
+ return (A === void 0 || A > E.length) && (A = E.length), E.substring(A - I.length, A) === I;
607
+ }
608
+ function UI(E, I, A) {
609
+ return typeof A != "number" && (A = 0), A + I.length > E.length ? !1 : E.indexOf(I, A) !== -1;
610
+ }
611
+ j("ERR_INVALID_OPT_VALUE", function(E, I) {
612
+ return 'The value "' + I + '" is invalid for option "' + E + '"';
613
+ }, TypeError);
614
+ j("ERR_INVALID_ARG_TYPE", function(E, I, A) {
615
+ var Q;
616
+ typeof I == "string" && NI(I, "not ") ? (Q = "must not be", I = I.replace(/^not /, "")) : Q = "must be";
617
+ var C;
618
+ if (kI(E, " argument"))
619
+ C = "The ".concat(E, " ").concat(Q, " ").concat(VA(I, "type"));
620
+ else {
621
+ var o = UI(E, ".") ? "property" : "argument";
622
+ C = 'The "'.concat(E, '" ').concat(o, " ").concat(Q, " ").concat(VA(I, "type"));
623
+ }
624
+ return C += ". Received type ".concat(typeof A), C;
625
+ }, TypeError);
626
+ j("ERR_STREAM_PUSH_AFTER_EOF", "stream.push() after EOF");
627
+ j("ERR_METHOD_NOT_IMPLEMENTED", function(E) {
628
+ return "The " + E + " method is not implemented";
629
+ });
630
+ j("ERR_STREAM_PREMATURE_CLOSE", "Premature close");
631
+ j("ERR_STREAM_DESTROYED", function(E) {
632
+ return "Cannot call " + E + " after a stream was destroyed";
633
+ });
634
+ j("ERR_MULTIPLE_CALLBACK", "Callback called multiple times");
635
+ j("ERR_STREAM_CANNOT_PIPE", "Cannot pipe, not readable");
636
+ j("ERR_STREAM_WRITE_AFTER_END", "write after end");
637
+ j("ERR_STREAM_NULL_VALUES", "May not write null values to stream", TypeError);
638
+ j("ERR_UNKNOWN_ENCODING", function(E) {
639
+ return "Unknown encoding: " + E;
640
+ }, TypeError);
641
+ j("ERR_STREAM_UNSHIFT_AFTER_END_EVENT", "stream.unshift() after end event");
642
+ oA.codes = rI;
643
+ var pI = oA.codes.ERR_INVALID_OPT_VALUE;
644
+ function HI(E, I, A) {
645
+ return E.highWaterMark != null ? E.highWaterMark : I ? E[A] : null;
646
+ }
647
+ function YI(E, I, A, Q) {
648
+ var C = HI(I, Q, A);
649
+ if (C != null) {
650
+ if (!(isFinite(C) && Math.floor(C) === C) || C < 0) {
651
+ var o = Q ? A : "highWaterMark";
652
+ throw new pI(o, C);
653
+ }
654
+ return Math.floor(C);
655
+ }
656
+ return E.objectMode ? 16 : 16 * 1024;
657
+ }
658
+ var aI = {
659
+ getHighWaterMark: YI
660
+ }, KI = _I;
661
+ function _I(E, I) {
662
+ if (HA("noDeprecation"))
663
+ return E;
664
+ var A = !1;
665
+ function Q() {
666
+ if (!A) {
667
+ if (HA("throwDeprecation"))
668
+ throw new Error(I);
669
+ HA("traceDeprecation") ? console.trace(I) : console.warn(I), A = !0;
670
+ }
671
+ return E.apply(this, arguments);
672
+ }
673
+ return Q;
674
+ }
675
+ function HA(E) {
676
+ try {
677
+ if (!fA.localStorage)
678
+ return !1;
679
+ } catch {
680
+ return !1;
681
+ }
682
+ var I = fA.localStorage[E];
683
+ return I == null ? !1 : String(I).toLowerCase() === "true";
684
+ }
685
+ var YA, XA;
686
+ function oI() {
687
+ if (XA)
688
+ return YA;
689
+ XA = 1, YA = J;
690
+ function E(t) {
691
+ var e = this;
692
+ this.next = null, this.entry = null, this.finish = function() {
693
+ yA(e, t);
694
+ };
695
+ }
696
+ var I;
697
+ J.WritableState = Y;
698
+ var A = {
699
+ deprecate: KI
700
+ }, Q = iI, C = vA().Buffer, o = (typeof fA < "u" ? fA : typeof window < "u" ? window : typeof self < "u" ? self : {}).Uint8Array || function() {
701
+ };
702
+ function a(t) {
703
+ return C.from(t);
704
+ }
705
+ function h(t) {
706
+ return C.isBuffer(t) || t instanceof o;
707
+ }
708
+ var r = tI, D = aI, G = D.getHighWaterMark, N = oA.codes, b = N.ERR_INVALID_ARG_TYPE, q = N.ERR_METHOD_NOT_IMPLEMENTED, S = N.ERR_MULTIPLE_CALLBACK, R = N.ERR_STREAM_CANNOT_PIPE, c = N.ERR_STREAM_DESTROYED, y = N.ERR_STREAM_NULL_VALUES, H = N.ERR_STREAM_WRITE_AFTER_END, F = N.ERR_UNKNOWN_ENCODING, l = r.errorOrDestroy;
709
+ dA(J, Q);
710
+ function k() {
711
+ }
712
+ function Y(t, e, f) {
713
+ I = I || hA(), t = t || {}, typeof f != "boolean" && (f = e instanceof I), this.objectMode = !!t.objectMode, f && (this.objectMode = this.objectMode || !!t.writableObjectMode), this.highWaterMark = G(this, t, "writableHighWaterMark", f), this.finalCalled = !1, this.needDrain = !1, this.ending = !1, this.ended = !1, this.finished = !1, this.destroyed = !1;
714
+ var M = t.decodeStrings === !1;
715
+ this.decodeStrings = !M, this.defaultEncoding = t.defaultEncoding || "utf8", this.length = 0, this.writing = !1, this.corked = 0, this.sync = !0, this.bufferProcessing = !1, this.onwrite = function(_) {
716
+ cA(e, _);
717
+ }, this.writecb = null, this.writelen = 0, this.bufferedRequest = null, this.lastBufferedRequest = null, this.pendingcb = 0, this.prefinished = !1, this.errorEmitted = !1, this.emitClose = t.emitClose !== !1, this.autoDestroy = !!t.autoDestroy, this.bufferedRequestCount = 0, this.corkedRequestsFree = new E(this);
718
+ }
719
+ Y.prototype.getBuffer = function() {
720
+ for (var e = this.bufferedRequest, f = []; e; )
721
+ f.push(e), e = e.next;
722
+ return f;
723
+ }, function() {
724
+ try {
725
+ Object.defineProperty(Y.prototype, "buffer", {
726
+ get: A.deprecate(function() {
727
+ return this.getBuffer();
728
+ }, "_writableState.buffer is deprecated. Use _writableState.getBuffer instead.", "DEP0003")
729
+ });
730
+ } catch {
731
+ }
732
+ }();
733
+ var W;
734
+ typeof Symbol == "function" && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] == "function" ? (W = Function.prototype[Symbol.hasInstance], Object.defineProperty(J, Symbol.hasInstance, {
735
+ value: function(e) {
736
+ return W.call(this, e) ? !0 : this !== J ? !1 : e && e._writableState instanceof Y;
737
+ }
738
+ })) : W = function(e) {
739
+ return e instanceof this;
740
+ };
741
+ function J(t) {
742
+ I = I || hA();
743
+ var e = this instanceof I;
744
+ if (!e && !W.call(J, this))
745
+ return new J(t);
746
+ this._writableState = new Y(t, this, e), this.writable = !0, t && (typeof t.write == "function" && (this._write = t.write), typeof t.writev == "function" && (this._writev = t.writev), typeof t.destroy == "function" && (this._destroy = t.destroy), typeof t.final == "function" && (this._final = t.final)), Q.call(this);
747
+ }
748
+ J.prototype.pipe = function() {
749
+ l(this, new R());
750
+ };
751
+ function p(t, e) {
752
+ var f = new H();
753
+ l(t, f), process.nextTick(e, f);
754
+ }
755
+ function V(t, e, f, M) {
756
+ var _;
757
+ return f === null ? _ = new y() : typeof f != "string" && !e.objectMode && (_ = new b("chunk", ["string", "Buffer"], f)), _ ? (l(t, _), process.nextTick(M, _), !1) : !0;
758
+ }
759
+ J.prototype.write = function(t, e, f) {
760
+ var M = this._writableState, _ = !1, g = !M.objectMode && h(t);
761
+ return g && !C.isBuffer(t) && (t = a(t)), typeof e == "function" && (f = e, e = null), g ? e = "buffer" : e || (e = M.defaultEncoding), typeof f != "function" && (f = k), M.ending ? p(this, f) : (g || V(this, M, t, f)) && (M.pendingcb++, _ = DA(this, M, g, t, e, f)), _;
762
+ }, J.prototype.cork = function() {
763
+ this._writableState.corked++;
764
+ }, J.prototype.uncork = function() {
765
+ var t = this._writableState;
766
+ t.corked && (t.corked--, !t.writing && !t.corked && !t.bufferProcessing && t.bufferedRequest && gA(this, t));
767
+ }, J.prototype.setDefaultEncoding = function(e) {
768
+ if (typeof e == "string" && (e = e.toLowerCase()), !(["hex", "utf8", "utf-8", "ascii", "binary", "base64", "ucs2", "ucs-2", "utf16le", "utf-16le", "raw"].indexOf((e + "").toLowerCase()) > -1))
769
+ throw new F(e);
770
+ return this._writableState.defaultEncoding = e, this;
771
+ }, Object.defineProperty(J.prototype, "writableBuffer", {
772
+ // making it explicit this property is not enumerable
773
+ // because otherwise some prototype manipulation in
774
+ // userland will fail
775
+ enumerable: !1,
776
+ get: function() {
777
+ return this._writableState && this._writableState.getBuffer();
778
+ }
779
+ });
780
+ function rA(t, e, f) {
781
+ return !t.objectMode && t.decodeStrings !== !1 && typeof e == "string" && (e = C.from(e, f)), e;
782
+ }
783
+ Object.defineProperty(J.prototype, "writableHighWaterMark", {
784
+ // making it explicit this property is not enumerable
785
+ // because otherwise some prototype manipulation in
786
+ // userland will fail
787
+ enumerable: !1,
788
+ get: function() {
789
+ return this._writableState.highWaterMark;
790
+ }
791
+ });
792
+ function DA(t, e, f, M, _, g) {
793
+ if (!f) {
794
+ var B = rA(e, M, _);
795
+ M !== B && (f = !0, _ = "buffer", M = B);
796
+ }
797
+ var n = e.objectMode ? 1 : M.length;
798
+ e.length += n;
799
+ var w = e.length < e.highWaterMark;
800
+ if (w || (e.needDrain = !0), e.writing || e.corked) {
801
+ var O = e.lastBufferedRequest;
802
+ e.lastBufferedRequest = {
803
+ chunk: M,
804
+ encoding: _,
805
+ isBuf: f,
806
+ callback: g,
807
+ next: null
808
+ }, O ? O.next = e.lastBufferedRequest : e.bufferedRequest = e.lastBufferedRequest, e.bufferedRequestCount += 1;
809
+ } else
810
+ CA(t, e, !1, n, M, _, g);
811
+ return w;
812
+ }
813
+ function CA(t, e, f, M, _, g, B) {
814
+ e.writelen = M, e.writecb = B, e.writing = !0, e.sync = !0, e.destroyed ? e.onwrite(new c("write")) : f ? t._writev(_, e.onwrite) : t._write(_, g, e.onwrite), e.sync = !1;
815
+ }
816
+ function X(t, e, f, M, _) {
817
+ --e.pendingcb, f ? (process.nextTick(_, M), process.nextTick(BA, t, e), t._writableState.errorEmitted = !0, l(t, M)) : (_(M), t._writableState.errorEmitted = !0, l(t, M), BA(t, e));
818
+ }
819
+ function z(t) {
820
+ t.writing = !1, t.writecb = null, t.length -= t.writelen, t.writelen = 0;
821
+ }
822
+ function cA(t, e) {
823
+ var f = t._writableState, M = f.sync, _ = f.writecb;
824
+ if (typeof _ != "function")
825
+ throw new S();
826
+ if (z(f), e)
827
+ X(t, f, M, e, _);
828
+ else {
829
+ var g = aA(f) || t.destroyed;
830
+ !g && !f.corked && !f.bufferProcessing && f.bufferedRequest && gA(t, f), M ? process.nextTick(AA, t, f, g, _) : AA(t, f, g, _);
831
+ }
832
+ }
833
+ function AA(t, e, f, M) {
834
+ f || IA(t, e), e.pendingcb--, M(), BA(t, e);
835
+ }
836
+ function IA(t, e) {
837
+ e.length === 0 && e.needDrain && (e.needDrain = !1, t.emit("drain"));
838
+ }
839
+ function gA(t, e) {
840
+ e.bufferProcessing = !0;
841
+ var f = e.bufferedRequest;
842
+ if (t._writev && f && f.next) {
843
+ var M = e.bufferedRequestCount, _ = new Array(M), g = e.corkedRequestsFree;
844
+ g.entry = f;
845
+ for (var B = 0, n = !0; f; )
846
+ _[B] = f, f.isBuf || (n = !1), f = f.next, B += 1;
847
+ _.allBuffers = n, CA(t, e, !0, e.length, _, "", g.finish), e.pendingcb++, e.lastBufferedRequest = null, g.next ? (e.corkedRequestsFree = g.next, g.next = null) : e.corkedRequestsFree = new E(e), e.bufferedRequestCount = 0;
848
+ } else {
849
+ for (; f; ) {
850
+ var w = f.chunk, O = f.encoding, K = f.callback, v = e.objectMode ? 1 : w.length;
851
+ if (CA(t, e, !1, v, w, O, K), f = f.next, e.bufferedRequestCount--, e.writing)
852
+ break;
853
+ }
854
+ f === null && (e.lastBufferedRequest = null);
855
+ }
856
+ e.bufferedRequest = f, e.bufferProcessing = !1;
857
+ }
858
+ J.prototype._write = function(t, e, f) {
859
+ f(new q("_write()"));
860
+ }, J.prototype._writev = null, J.prototype.end = function(t, e, f) {
861
+ var M = this._writableState;
862
+ return typeof t == "function" ? (f = t, t = null, e = null) : typeof e == "function" && (f = e, e = null), t != null && this.write(t, e), M.corked && (M.corked = 1, this.uncork()), M.ending || wA(this, M, f), this;
863
+ }, Object.defineProperty(J.prototype, "writableLength", {
864
+ // making it explicit this property is not enumerable
865
+ // because otherwise some prototype manipulation in
866
+ // userland will fail
867
+ enumerable: !1,
868
+ get: function() {
869
+ return this._writableState.length;
870
+ }
871
+ });
872
+ function aA(t) {
873
+ return t.ending && t.length === 0 && t.bufferedRequest === null && !t.finished && !t.writing;
874
+ }
875
+ function $(t, e) {
876
+ t._final(function(f) {
877
+ e.pendingcb--, f && l(t, f), e.prefinished = !0, t.emit("prefinish"), BA(t, e);
878
+ });
879
+ }
880
+ function nA(t, e) {
881
+ !e.prefinished && !e.finalCalled && (typeof t._final == "function" && !e.destroyed ? (e.pendingcb++, e.finalCalled = !0, process.nextTick($, t, e)) : (e.prefinished = !0, t.emit("prefinish")));
882
+ }
883
+ function BA(t, e) {
884
+ var f = aA(e);
885
+ if (f && (nA(t, e), e.pendingcb === 0 && (e.finished = !0, t.emit("finish"), e.autoDestroy))) {
886
+ var M = t._readableState;
887
+ (!M || M.autoDestroy && M.endEmitted) && t.destroy();
888
+ }
889
+ return f;
890
+ }
891
+ function wA(t, e, f) {
892
+ e.ending = !0, BA(t, e), f && (e.finished ? process.nextTick(f) : t.once("finish", f)), e.ended = !0, t.writable = !1;
893
+ }
894
+ function yA(t, e, f) {
895
+ var M = t.entry;
896
+ for (t.entry = null; M; ) {
897
+ var _ = M.callback;
898
+ e.pendingcb--, _(f), M = M.next;
899
+ }
900
+ e.corkedRequestsFree.next = t;
901
+ }
902
+ return Object.defineProperty(J.prototype, "destroyed", {
903
+ // making it explicit this property is not enumerable
904
+ // because otherwise some prototype manipulation in
905
+ // userland will fail
906
+ enumerable: !1,
907
+ get: function() {
908
+ return this._writableState === void 0 ? !1 : this._writableState.destroyed;
909
+ },
910
+ set: function(e) {
911
+ this._writableState && (this._writableState.destroyed = e);
912
+ }
913
+ }), J.prototype.destroy = r.destroy, J.prototype._undestroy = r.undestroy, J.prototype._destroy = function(t, e) {
914
+ e(t);
915
+ }, YA;
916
+ }
917
+ var KA, zA;
918
+ function hA() {
919
+ if (zA)
920
+ return KA;
921
+ zA = 1;
922
+ var E = Object.keys || function(D) {
923
+ var G = [];
924
+ for (var N in D)
925
+ G.push(N);
926
+ return G;
927
+ };
928
+ KA = a;
929
+ var I = sI(), A = oI();
930
+ dA(a, I);
931
+ for (var Q = E(A.prototype), C = 0; C < Q.length; C++) {
932
+ var o = Q[C];
933
+ a.prototype[o] || (a.prototype[o] = A.prototype[o]);
934
+ }
935
+ function a(D) {
936
+ if (!(this instanceof a))
937
+ return new a(D);
938
+ I.call(this, D), A.call(this, D), this.allowHalfOpen = !0, D && (D.readable === !1 && (this.readable = !1), D.writable === !1 && (this.writable = !1), D.allowHalfOpen === !1 && (this.allowHalfOpen = !1, this.once("end", h)));
939
+ }
940
+ Object.defineProperty(a.prototype, "writableHighWaterMark", {
941
+ // making it explicit this property is not enumerable
942
+ // because otherwise some prototype manipulation in
943
+ // userland will fail
944
+ enumerable: !1,
945
+ get: function() {
946
+ return this._writableState.highWaterMark;
947
+ }
948
+ }), Object.defineProperty(a.prototype, "writableBuffer", {
949
+ // making it explicit this property is not enumerable
950
+ // because otherwise some prototype manipulation in
951
+ // userland will fail
952
+ enumerable: !1,
953
+ get: function() {
954
+ return this._writableState && this._writableState.getBuffer();
955
+ }
956
+ }), Object.defineProperty(a.prototype, "writableLength", {
957
+ // making it explicit this property is not enumerable
958
+ // because otherwise some prototype manipulation in
959
+ // userland will fail
960
+ enumerable: !1,
961
+ get: function() {
962
+ return this._writableState.length;
963
+ }
964
+ });
965
+ function h() {
966
+ this._writableState.ended || process.nextTick(r, this);
967
+ }
968
+ function r(D) {
969
+ D.end();
970
+ }
971
+ return Object.defineProperty(a.prototype, "destroyed", {
972
+ // making it explicit this property is not enumerable
973
+ // because otherwise some prototype manipulation in
974
+ // userland will fail
975
+ enumerable: !1,
976
+ get: function() {
977
+ return this._readableState === void 0 || this._writableState === void 0 ? !1 : this._readableState.destroyed && this._writableState.destroyed;
978
+ },
979
+ set: function(G) {
980
+ this._readableState === void 0 || this._writableState === void 0 || (this._readableState.destroyed = G, this._writableState.destroyed = G);
981
+ }
982
+ }), KA;
983
+ }
984
+ var $A = oA.codes.ERR_STREAM_PREMATURE_CLOSE;
985
+ function JI(E) {
986
+ var I = !1;
987
+ return function() {
988
+ if (!I) {
989
+ I = !0;
990
+ for (var A = arguments.length, Q = new Array(A), C = 0; C < A; C++)
991
+ Q[C] = arguments[C];
992
+ E.apply(this, Q);
993
+ }
994
+ };
995
+ }
996
+ function LI() {
997
+ }
998
+ function qI(E) {
999
+ return E.setHeader && typeof E.abort == "function";
1000
+ }
1001
+ function nI(E, I, A) {
1002
+ if (typeof I == "function")
1003
+ return nI(E, null, I);
1004
+ I || (I = {}), A = JI(A || LI);
1005
+ var Q = I.readable || I.readable !== !1 && E.readable, C = I.writable || I.writable !== !1 && E.writable, o = function() {
1006
+ E.writable || h();
1007
+ }, a = E._writableState && E._writableState.finished, h = function() {
1008
+ C = !1, a = !0, Q || A.call(E);
1009
+ }, r = E._readableState && E._readableState.endEmitted, D = function() {
1010
+ Q = !1, r = !0, C || A.call(E);
1011
+ }, G = function(S) {
1012
+ A.call(E, S);
1013
+ }, N = function() {
1014
+ var S;
1015
+ if (Q && !r)
1016
+ return (!E._readableState || !E._readableState.ended) && (S = new $A()), A.call(E, S);
1017
+ if (C && !a)
1018
+ return (!E._writableState || !E._writableState.ended) && (S = new $A()), A.call(E, S);
1019
+ }, b = function() {
1020
+ E.req.on("finish", h);
1021
+ };
1022
+ return qI(E) ? (E.on("complete", h), E.on("abort", N), E.req ? b() : E.on("request", b)) : C && !E._writableState && (E.on("end", o), E.on("close", o)), E.on("end", D), E.on("finish", h), I.error !== !1 && E.on("error", G), E.on("close", N), function() {
1023
+ E.removeListener("complete", h), E.removeListener("abort", N), E.removeListener("request", b), E.req && E.req.removeListener("finish", h), E.removeListener("end", o), E.removeListener("close", o), E.removeListener("finish", h), E.removeListener("end", D), E.removeListener("error", G), E.removeListener("close", N);
1024
+ };
1025
+ }
1026
+ var WA = nI, _A, AI;
1027
+ function bI() {
1028
+ if (AI)
1029
+ return _A;
1030
+ AI = 1;
1031
+ var E;
1032
+ function I(F, l, k) {
1033
+ return l = A(l), l in F ? Object.defineProperty(F, l, { value: k, enumerable: !0, configurable: !0, writable: !0 }) : F[l] = k, F;
1034
+ }
1035
+ function A(F) {
1036
+ var l = Q(F, "string");
1037
+ return typeof l == "symbol" ? l : String(l);
1038
+ }
1039
+ function Q(F, l) {
1040
+ if (typeof F != "object" || F === null)
1041
+ return F;
1042
+ var k = F[Symbol.toPrimitive];
1043
+ if (k !== void 0) {
1044
+ var Y = k.call(F, l || "default");
1045
+ if (typeof Y != "object")
1046
+ return Y;
1047
+ throw new TypeError("@@toPrimitive must return a primitive value.");
1048
+ }
1049
+ return (l === "string" ? String : Number)(F);
1050
+ }
1051
+ var C = WA, o = Symbol("lastResolve"), a = Symbol("lastReject"), h = Symbol("error"), r = Symbol("ended"), D = Symbol("lastPromise"), G = Symbol("handlePromise"), N = Symbol("stream");
1052
+ function b(F, l) {
1053
+ return {
1054
+ value: F,
1055
+ done: l
1056
+ };
1057
+ }
1058
+ function q(F) {
1059
+ var l = F[o];
1060
+ if (l !== null) {
1061
+ var k = F[N].read();
1062
+ k !== null && (F[D] = null, F[o] = null, F[a] = null, l(b(k, !1)));
1063
+ }
1064
+ }
1065
+ function S(F) {
1066
+ process.nextTick(q, F);
1067
+ }
1068
+ function R(F, l) {
1069
+ return function(k, Y) {
1070
+ F.then(function() {
1071
+ if (l[r]) {
1072
+ k(b(void 0, !0));
1073
+ return;
1074
+ }
1075
+ l[G](k, Y);
1076
+ }, Y);
1077
+ };
1078
+ }
1079
+ var c = Object.getPrototypeOf(function() {
1080
+ }), y = Object.setPrototypeOf((E = {
1081
+ get stream() {
1082
+ return this[N];
1083
+ },
1084
+ next: function() {
1085
+ var l = this, k = this[h];
1086
+ if (k !== null)
1087
+ return Promise.reject(k);
1088
+ if (this[r])
1089
+ return Promise.resolve(b(void 0, !0));
1090
+ if (this[N].destroyed)
1091
+ return new Promise(function(p, V) {
1092
+ process.nextTick(function() {
1093
+ l[h] ? V(l[h]) : p(b(void 0, !0));
1094
+ });
1095
+ });
1096
+ var Y = this[D], W;
1097
+ if (Y)
1098
+ W = new Promise(R(Y, this));
1099
+ else {
1100
+ var J = this[N].read();
1101
+ if (J !== null)
1102
+ return Promise.resolve(b(J, !1));
1103
+ W = new Promise(this[G]);
1104
+ }
1105
+ return this[D] = W, W;
1106
+ }
1107
+ }, I(E, Symbol.asyncIterator, function() {
1108
+ return this;
1109
+ }), I(E, "return", function() {
1110
+ var l = this;
1111
+ return new Promise(function(k, Y) {
1112
+ l[N].destroy(null, function(W) {
1113
+ if (W) {
1114
+ Y(W);
1115
+ return;
1116
+ }
1117
+ k(b(void 0, !0));
1118
+ });
1119
+ });
1120
+ }), E), c), H = function(l) {
1121
+ var k, Y = Object.create(y, (k = {}, I(k, N, {
1122
+ value: l,
1123
+ writable: !0
1124
+ }), I(k, o, {
1125
+ value: null,
1126
+ writable: !0
1127
+ }), I(k, a, {
1128
+ value: null,
1129
+ writable: !0
1130
+ }), I(k, h, {
1131
+ value: null,
1132
+ writable: !0
1133
+ }), I(k, r, {
1134
+ value: l._readableState.endEmitted,
1135
+ writable: !0
1136
+ }), I(k, G, {
1137
+ value: function(J, p) {
1138
+ var V = Y[N].read();
1139
+ V ? (Y[D] = null, Y[o] = null, Y[a] = null, J(b(V, !1))) : (Y[o] = J, Y[a] = p);
1140
+ },
1141
+ writable: !0
1142
+ }), k));
1143
+ return Y[D] = null, C(l, function(W) {
1144
+ if (W && W.code !== "ERR_STREAM_PREMATURE_CLOSE") {
1145
+ var J = Y[a];
1146
+ J !== null && (Y[D] = null, Y[o] = null, Y[a] = null, J(W)), Y[h] = W;
1147
+ return;
1148
+ }
1149
+ var p = Y[o];
1150
+ p !== null && (Y[D] = null, Y[o] = null, Y[a] = null, p(b(void 0, !0))), Y[r] = !0;
1151
+ }), l.on("readable", S.bind(null, Y)), Y;
1152
+ };
1153
+ return _A = H, _A;
1154
+ }
1155
+ var JA, II;
1156
+ function mI() {
1157
+ return II || (II = 1, JA = function() {
1158
+ throw new Error("Readable.from is not available in the browser");
1159
+ }), JA;
1160
+ }
1161
+ var LA, gI;
1162
+ function sI() {
1163
+ if (gI)
1164
+ return LA;
1165
+ gI = 1, LA = p;
1166
+ var E;
1167
+ p.ReadableState = J, CI.EventEmitter;
1168
+ var I = function(B, n) {
1169
+ return B.listeners(n).length;
1170
+ }, A = iI, Q = vA().Buffer, C = (typeof fA < "u" ? fA : typeof window < "u" ? window : typeof self < "u" ? self : {}).Uint8Array || function() {
1171
+ };
1172
+ function o(g) {
1173
+ return Q.from(g);
1174
+ }
1175
+ function a(g) {
1176
+ return Q.isBuffer(g) || g instanceof C;
1177
+ }
1178
+ var h = eI, r;
1179
+ h && h.debuglog ? r = h.debuglog("stream") : r = function() {
1180
+ };
1181
+ var D = dI(), G = tI, N = aI, b = N.getHighWaterMark, q = oA.codes, S = q.ERR_INVALID_ARG_TYPE, R = q.ERR_STREAM_PUSH_AFTER_EOF, c = q.ERR_METHOD_NOT_IMPLEMENTED, y = q.ERR_STREAM_UNSHIFT_AFTER_END_EVENT, H, F, l;
1182
+ dA(p, A);
1183
+ var k = G.errorOrDestroy, Y = ["error", "close", "destroy", "pause", "resume"];
1184
+ function W(g, B, n) {
1185
+ if (typeof g.prependListener == "function")
1186
+ return g.prependListener(B, n);
1187
+ !g._events || !g._events[B] ? g.on(B, n) : Array.isArray(g._events[B]) ? g._events[B].unshift(n) : g._events[B] = [n, g._events[B]];
1188
+ }
1189
+ function J(g, B, n) {
1190
+ E = E || hA(), g = g || {}, typeof n != "boolean" && (n = B instanceof E), this.objectMode = !!g.objectMode, n && (this.objectMode = this.objectMode || !!g.readableObjectMode), this.highWaterMark = b(this, g, "readableHighWaterMark", n), this.buffer = new D(), this.length = 0, this.pipes = null, this.pipesCount = 0, this.flowing = null, this.ended = !1, this.endEmitted = !1, this.reading = !1, this.sync = !0, this.needReadable = !1, this.emittedReadable = !1, this.readableListening = !1, this.resumeScheduled = !1, this.paused = !0, this.emitClose = g.emitClose !== !1, this.autoDestroy = !!g.autoDestroy, this.destroyed = !1, this.defaultEncoding = g.defaultEncoding || "utf8", this.awaitDrain = 0, this.readingMore = !1, this.decoder = null, this.encoding = null, g.encoding && (H || (H = xA.StringDecoder), this.decoder = new H(g.encoding), this.encoding = g.encoding);
1191
+ }
1192
+ function p(g) {
1193
+ if (E = E || hA(), !(this instanceof p))
1194
+ return new p(g);
1195
+ var B = this instanceof E;
1196
+ this._readableState = new J(g, this, B), this.readable = !0, g && (typeof g.read == "function" && (this._read = g.read), typeof g.destroy == "function" && (this._destroy = g.destroy)), A.call(this);
1197
+ }
1198
+ Object.defineProperty(p.prototype, "destroyed", {
1199
+ // making it explicit this property is not enumerable
1200
+ // because otherwise some prototype manipulation in
1201
+ // userland will fail
1202
+ enumerable: !1,
1203
+ get: function() {
1204
+ return this._readableState === void 0 ? !1 : this._readableState.destroyed;
1205
+ },
1206
+ set: function(B) {
1207
+ this._readableState && (this._readableState.destroyed = B);
1208
+ }
1209
+ }), p.prototype.destroy = G.destroy, p.prototype._undestroy = G.undestroy, p.prototype._destroy = function(g, B) {
1210
+ B(g);
1211
+ }, p.prototype.push = function(g, B) {
1212
+ var n = this._readableState, w;
1213
+ return n.objectMode ? w = !0 : typeof g == "string" && (B = B || n.defaultEncoding, B !== n.encoding && (g = Q.from(g, B), B = ""), w = !0), V(this, g, B, !1, w);
1214
+ }, p.prototype.unshift = function(g) {
1215
+ return V(this, g, null, !0, !1);
1216
+ };
1217
+ function V(g, B, n, w, O) {
1218
+ r("readableAddChunk", B);
1219
+ var K = g._readableState;
1220
+ if (B === null)
1221
+ K.reading = !1, cA(g, K);
1222
+ else {
1223
+ var v;
1224
+ if (O || (v = DA(K, B)), v)
1225
+ k(g, v);
1226
+ else if (K.objectMode || B && B.length > 0)
1227
+ if (typeof B != "string" && !K.objectMode && Object.getPrototypeOf(B) !== Q.prototype && (B = o(B)), w)
1228
+ K.endEmitted ? k(g, new y()) : rA(g, K, B, !0);
1229
+ else if (K.ended)
1230
+ k(g, new R());
1231
+ else {
1232
+ if (K.destroyed)
1233
+ return !1;
1234
+ K.reading = !1, K.decoder && !n ? (B = K.decoder.write(B), K.objectMode || B.length !== 0 ? rA(g, K, B, !1) : gA(g, K)) : rA(g, K, B, !1);
1235
+ }
1236
+ else
1237
+ w || (K.reading = !1, gA(g, K));
1238
+ }
1239
+ return !K.ended && (K.length < K.highWaterMark || K.length === 0);
1240
+ }
1241
+ function rA(g, B, n, w) {
1242
+ B.flowing && B.length === 0 && !B.sync ? (B.awaitDrain = 0, g.emit("data", n)) : (B.length += B.objectMode ? 1 : n.length, w ? B.buffer.unshift(n) : B.buffer.push(n), B.needReadable && AA(g)), gA(g, B);
1243
+ }
1244
+ function DA(g, B) {
1245
+ var n;
1246
+ return !a(B) && typeof B != "string" && B !== void 0 && !g.objectMode && (n = new S("chunk", ["string", "Buffer", "Uint8Array"], B)), n;
1247
+ }
1248
+ p.prototype.isPaused = function() {
1249
+ return this._readableState.flowing === !1;
1250
+ }, p.prototype.setEncoding = function(g) {
1251
+ H || (H = xA.StringDecoder);
1252
+ var B = new H(g);
1253
+ this._readableState.decoder = B, this._readableState.encoding = this._readableState.decoder.encoding;
1254
+ for (var n = this._readableState.buffer.head, w = ""; n !== null; )
1255
+ w += B.write(n.data), n = n.next;
1256
+ return this._readableState.buffer.clear(), w !== "" && this._readableState.buffer.push(w), this._readableState.length = w.length, this;
1257
+ };
1258
+ var CA = 1073741824;
1259
+ function X(g) {
1260
+ return g >= CA ? g = CA : (g--, g |= g >>> 1, g |= g >>> 2, g |= g >>> 4, g |= g >>> 8, g |= g >>> 16, g++), g;
1261
+ }
1262
+ function z(g, B) {
1263
+ return g <= 0 || B.length === 0 && B.ended ? 0 : B.objectMode ? 1 : g !== g ? B.flowing && B.length ? B.buffer.head.data.length : B.length : (g > B.highWaterMark && (B.highWaterMark = X(g)), g <= B.length ? g : B.ended ? B.length : (B.needReadable = !0, 0));
1264
+ }
1265
+ p.prototype.read = function(g) {
1266
+ r("read", g), g = parseInt(g, 10);
1267
+ var B = this._readableState, n = g;
1268
+ if (g !== 0 && (B.emittedReadable = !1), g === 0 && B.needReadable && ((B.highWaterMark !== 0 ? B.length >= B.highWaterMark : B.length > 0) || B.ended))
1269
+ return r("read: emitReadable", B.length, B.ended), B.length === 0 && B.ended ? f(this) : AA(this), null;
1270
+ if (g = z(g, B), g === 0 && B.ended)
1271
+ return B.length === 0 && f(this), null;
1272
+ var w = B.needReadable;
1273
+ r("need readable", w), (B.length === 0 || B.length - g < B.highWaterMark) && (w = !0, r("length less than watermark", w)), B.ended || B.reading ? (w = !1, r("reading or ended", w)) : w && (r("do read"), B.reading = !0, B.sync = !0, B.length === 0 && (B.needReadable = !0), this._read(B.highWaterMark), B.sync = !1, B.reading || (g = z(n, B)));
1274
+ var O;
1275
+ return g > 0 ? O = e(g, B) : O = null, O === null ? (B.needReadable = B.length <= B.highWaterMark, g = 0) : (B.length -= g, B.awaitDrain = 0), B.length === 0 && (B.ended || (B.needReadable = !0), n !== g && B.ended && f(this)), O !== null && this.emit("data", O), O;
1276
+ };
1277
+ function cA(g, B) {
1278
+ if (r("onEofChunk"), !B.ended) {
1279
+ if (B.decoder) {
1280
+ var n = B.decoder.end();
1281
+ n && n.length && (B.buffer.push(n), B.length += B.objectMode ? 1 : n.length);
1282
+ }
1283
+ B.ended = !0, B.sync ? AA(g) : (B.needReadable = !1, B.emittedReadable || (B.emittedReadable = !0, IA(g)));
1284
+ }
1285
+ }
1286
+ function AA(g) {
1287
+ var B = g._readableState;
1288
+ r("emitReadable", B.needReadable, B.emittedReadable), B.needReadable = !1, B.emittedReadable || (r("emitReadable", B.flowing), B.emittedReadable = !0, process.nextTick(IA, g));
1289
+ }
1290
+ function IA(g) {
1291
+ var B = g._readableState;
1292
+ r("emitReadable_", B.destroyed, B.length, B.ended), !B.destroyed && (B.length || B.ended) && (g.emit("readable"), B.emittedReadable = !1), B.needReadable = !B.flowing && !B.ended && B.length <= B.highWaterMark, t(g);
1293
+ }
1294
+ function gA(g, B) {
1295
+ B.readingMore || (B.readingMore = !0, process.nextTick(aA, g, B));
1296
+ }
1297
+ function aA(g, B) {
1298
+ for (; !B.reading && !B.ended && (B.length < B.highWaterMark || B.flowing && B.length === 0); ) {
1299
+ var n = B.length;
1300
+ if (r("maybeReadMore read 0"), g.read(0), n === B.length)
1301
+ break;
1302
+ }
1303
+ B.readingMore = !1;
1304
+ }
1305
+ p.prototype._read = function(g) {
1306
+ k(this, new c("_read()"));
1307
+ }, p.prototype.pipe = function(g, B) {
1308
+ var n = this, w = this._readableState;
1309
+ switch (w.pipesCount) {
1310
+ case 0:
1311
+ w.pipes = g;
1312
+ break;
1313
+ case 1:
1314
+ w.pipes = [w.pipes, g];
1315
+ break;
1316
+ default:
1317
+ w.pipes.push(g);
1318
+ break;
1319
+ }
1320
+ w.pipesCount += 1, r("pipe count=%d opts=%j", w.pipesCount, B);
1321
+ var O = (!B || B.end !== !1) && g !== process.stdout && g !== process.stderr, K = O ? eA : tA;
1322
+ w.endEmitted ? process.nextTick(K) : n.once("end", K), g.on("unpipe", v);
1323
+ function v(i, s) {
1324
+ r("onunpipe"), i === n && s && s.hasUnpiped === !1 && (s.hasUnpiped = !0, UA());
1325
+ }
1326
+ function eA() {
1327
+ r("onend"), g.end();
1328
+ }
1329
+ var sA = $(n);
1330
+ g.on("drain", sA);
1331
+ var RA = !1;
1332
+ function UA() {
1333
+ r("cleanup"), g.removeListener("close", uA), g.removeListener("finish", iA), g.removeListener("drain", sA), g.removeListener("error", lA), g.removeListener("unpipe", v), n.removeListener("end", eA), n.removeListener("end", tA), n.removeListener("data", U), RA = !0, w.awaitDrain && (!g._writableState || g._writableState.needDrain) && sA();
1334
+ }
1335
+ n.on("data", U);
1336
+ function U(i) {
1337
+ r("ondata");
1338
+ var s = g.write(i);
1339
+ r("dest.write", s), s === !1 && ((w.pipesCount === 1 && w.pipes === g || w.pipesCount > 1 && _(w.pipes, g) !== -1) && !RA && (r("false write response, pause", w.awaitDrain), w.awaitDrain++), n.pause());
1340
+ }
1341
+ function lA(i) {
1342
+ r("onerror", i), tA(), g.removeListener("error", lA), I(g, "error") === 0 && k(g, i);
1343
+ }
1344
+ W(g, "error", lA);
1345
+ function uA() {
1346
+ g.removeListener("finish", iA), tA();
1347
+ }
1348
+ g.once("close", uA);
1349
+ function iA() {
1350
+ r("onfinish"), g.removeListener("close", uA), tA();
1351
+ }
1352
+ g.once("finish", iA);
1353
+ function tA() {
1354
+ r("unpipe"), n.unpipe(g);
1355
+ }
1356
+ return g.emit("pipe", n), w.flowing || (r("pipe resume"), n.resume()), g;
1357
+ };
1358
+ function $(g) {
1359
+ return function() {
1360
+ var n = g._readableState;
1361
+ r("pipeOnDrain", n.awaitDrain), n.awaitDrain && n.awaitDrain--, n.awaitDrain === 0 && I(g, "data") && (n.flowing = !0, t(g));
1362
+ };
1363
+ }
1364
+ p.prototype.unpipe = function(g) {
1365
+ var B = this._readableState, n = {
1366
+ hasUnpiped: !1
1367
+ };
1368
+ if (B.pipesCount === 0)
1369
+ return this;
1370
+ if (B.pipesCount === 1)
1371
+ return g && g !== B.pipes ? this : (g || (g = B.pipes), B.pipes = null, B.pipesCount = 0, B.flowing = !1, g && g.emit("unpipe", this, n), this);
1372
+ if (!g) {
1373
+ var w = B.pipes, O = B.pipesCount;
1374
+ B.pipes = null, B.pipesCount = 0, B.flowing = !1;
1375
+ for (var K = 0; K < O; K++)
1376
+ w[K].emit("unpipe", this, {
1377
+ hasUnpiped: !1
1378
+ });
1379
+ return this;
1380
+ }
1381
+ var v = _(B.pipes, g);
1382
+ return v === -1 ? this : (B.pipes.splice(v, 1), B.pipesCount -= 1, B.pipesCount === 1 && (B.pipes = B.pipes[0]), g.emit("unpipe", this, n), this);
1383
+ }, p.prototype.on = function(g, B) {
1384
+ var n = A.prototype.on.call(this, g, B), w = this._readableState;
1385
+ return g === "data" ? (w.readableListening = this.listenerCount("readable") > 0, w.flowing !== !1 && this.resume()) : g === "readable" && !w.endEmitted && !w.readableListening && (w.readableListening = w.needReadable = !0, w.flowing = !1, w.emittedReadable = !1, r("on readable", w.length, w.reading), w.length ? AA(this) : w.reading || process.nextTick(BA, this)), n;
1386
+ }, p.prototype.addListener = p.prototype.on, p.prototype.removeListener = function(g, B) {
1387
+ var n = A.prototype.removeListener.call(this, g, B);
1388
+ return g === "readable" && process.nextTick(nA, this), n;
1389
+ }, p.prototype.removeAllListeners = function(g) {
1390
+ var B = A.prototype.removeAllListeners.apply(this, arguments);
1391
+ return (g === "readable" || g === void 0) && process.nextTick(nA, this), B;
1392
+ };
1393
+ function nA(g) {
1394
+ var B = g._readableState;
1395
+ B.readableListening = g.listenerCount("readable") > 0, B.resumeScheduled && !B.paused ? B.flowing = !0 : g.listenerCount("data") > 0 && g.resume();
1396
+ }
1397
+ function BA(g) {
1398
+ r("readable nexttick read 0"), g.read(0);
1399
+ }
1400
+ p.prototype.resume = function() {
1401
+ var g = this._readableState;
1402
+ return g.flowing || (r("resume"), g.flowing = !g.readableListening, wA(this, g)), g.paused = !1, this;
1403
+ };
1404
+ function wA(g, B) {
1405
+ B.resumeScheduled || (B.resumeScheduled = !0, process.nextTick(yA, g, B));
1406
+ }
1407
+ function yA(g, B) {
1408
+ r("resume", B.reading), B.reading || g.read(0), B.resumeScheduled = !1, g.emit("resume"), t(g), B.flowing && !B.reading && g.read(0);
1409
+ }
1410
+ p.prototype.pause = function() {
1411
+ return r("call pause flowing=%j", this._readableState.flowing), this._readableState.flowing !== !1 && (r("pause"), this._readableState.flowing = !1, this.emit("pause")), this._readableState.paused = !0, this;
1412
+ };
1413
+ function t(g) {
1414
+ var B = g._readableState;
1415
+ for (r("flow", B.flowing); B.flowing && g.read() !== null; )
1416
+ ;
1417
+ }
1418
+ p.prototype.wrap = function(g) {
1419
+ var B = this, n = this._readableState, w = !1;
1420
+ g.on("end", function() {
1421
+ if (r("wrapped end"), n.decoder && !n.ended) {
1422
+ var v = n.decoder.end();
1423
+ v && v.length && B.push(v);
1424
+ }
1425
+ B.push(null);
1426
+ }), g.on("data", function(v) {
1427
+ if (r("wrapped data"), n.decoder && (v = n.decoder.write(v)), !(n.objectMode && v == null) && !(!n.objectMode && (!v || !v.length))) {
1428
+ var eA = B.push(v);
1429
+ eA || (w = !0, g.pause());
1430
+ }
1431
+ });
1432
+ for (var O in g)
1433
+ this[O] === void 0 && typeof g[O] == "function" && (this[O] = /* @__PURE__ */ function(eA) {
1434
+ return function() {
1435
+ return g[eA].apply(g, arguments);
1436
+ };
1437
+ }(O));
1438
+ for (var K = 0; K < Y.length; K++)
1439
+ g.on(Y[K], this.emit.bind(this, Y[K]));
1440
+ return this._read = function(v) {
1441
+ r("wrapped _read", v), w && (w = !1, g.resume());
1442
+ }, this;
1443
+ }, typeof Symbol == "function" && (p.prototype[Symbol.asyncIterator] = function() {
1444
+ return F === void 0 && (F = bI()), F(this);
1445
+ }), Object.defineProperty(p.prototype, "readableHighWaterMark", {
1446
+ // making it explicit this property is not enumerable
1447
+ // because otherwise some prototype manipulation in
1448
+ // userland will fail
1449
+ enumerable: !1,
1450
+ get: function() {
1451
+ return this._readableState.highWaterMark;
1452
+ }
1453
+ }), Object.defineProperty(p.prototype, "readableBuffer", {
1454
+ // making it explicit this property is not enumerable
1455
+ // because otherwise some prototype manipulation in
1456
+ // userland will fail
1457
+ enumerable: !1,
1458
+ get: function() {
1459
+ return this._readableState && this._readableState.buffer;
1460
+ }
1461
+ }), Object.defineProperty(p.prototype, "readableFlowing", {
1462
+ // making it explicit this property is not enumerable
1463
+ // because otherwise some prototype manipulation in
1464
+ // userland will fail
1465
+ enumerable: !1,
1466
+ get: function() {
1467
+ return this._readableState.flowing;
1468
+ },
1469
+ set: function(B) {
1470
+ this._readableState && (this._readableState.flowing = B);
1471
+ }
1472
+ }), p._fromList = e, Object.defineProperty(p.prototype, "readableLength", {
1473
+ // making it explicit this property is not enumerable
1474
+ // because otherwise some prototype manipulation in
1475
+ // userland will fail
1476
+ enumerable: !1,
1477
+ get: function() {
1478
+ return this._readableState.length;
1479
+ }
1480
+ });
1481
+ function e(g, B) {
1482
+ if (B.length === 0)
1483
+ return null;
1484
+ var n;
1485
+ return B.objectMode ? n = B.buffer.shift() : !g || g >= B.length ? (B.decoder ? n = B.buffer.join("") : B.buffer.length === 1 ? n = B.buffer.first() : n = B.buffer.concat(B.length), B.buffer.clear()) : n = B.buffer.consume(g, B.decoder), n;
1486
+ }
1487
+ function f(g) {
1488
+ var B = g._readableState;
1489
+ r("endReadable", B.endEmitted), B.endEmitted || (B.ended = !0, process.nextTick(M, B, g));
1490
+ }
1491
+ function M(g, B) {
1492
+ if (r("endReadableNT", g.endEmitted, g.length), !g.endEmitted && g.length === 0 && (g.endEmitted = !0, B.readable = !1, B.emit("end"), g.autoDestroy)) {
1493
+ var n = B._writableState;
1494
+ (!n || n.autoDestroy && n.finished) && B.destroy();
1495
+ }
1496
+ }
1497
+ typeof Symbol == "function" && (p.from = function(g, B) {
1498
+ return l === void 0 && (l = mI()), l(p, g, B);
1499
+ });
1500
+ function _(g, B) {
1501
+ for (var n = 0, w = g.length; n < w; n++)
1502
+ if (g[n] === B)
1503
+ return n;
1504
+ return -1;
1505
+ }
1506
+ return LA;
1507
+ }
1508
+ var fI = QA, NA = oA.codes, TI = NA.ERR_METHOD_NOT_IMPLEMENTED, vI = NA.ERR_MULTIPLE_CALLBACK, OI = NA.ERR_TRANSFORM_ALREADY_TRANSFORMING, WI = NA.ERR_TRANSFORM_WITH_LENGTH_0, kA = hA();
1509
+ dA(QA, kA);
1510
+ function PI(E, I) {
1511
+ var A = this._transformState;
1512
+ A.transforming = !1;
1513
+ var Q = A.writecb;
1514
+ if (Q === null)
1515
+ return this.emit("error", new vI());
1516
+ A.writechunk = null, A.writecb = null, I != null && this.push(I), Q(E);
1517
+ var C = this._readableState;
1518
+ C.reading = !1, (C.needReadable || C.length < C.highWaterMark) && this._read(C.highWaterMark);
1519
+ }
1520
+ function QA(E) {
1521
+ if (!(this instanceof QA))
1522
+ return new QA(E);
1523
+ kA.call(this, E), this._transformState = {
1524
+ afterTransform: PI.bind(this),
1525
+ needTransform: !1,
1526
+ transforming: !1,
1527
+ writecb: null,
1528
+ writechunk: null,
1529
+ writeencoding: null
1530
+ }, this._readableState.needReadable = !0, this._readableState.sync = !1, E && (typeof E.transform == "function" && (this._transform = E.transform), typeof E.flush == "function" && (this._flush = E.flush)), this.on("prefinish", xI);
1531
+ }
1532
+ function xI() {
1533
+ var E = this;
1534
+ typeof this._flush == "function" && !this._readableState.destroyed ? this._flush(function(I, A) {
1535
+ BI(E, I, A);
1536
+ }) : BI(this, null, null);
1537
+ }
1538
+ QA.prototype.push = function(E, I) {
1539
+ return this._transformState.needTransform = !1, kA.prototype.push.call(this, E, I);
1540
+ };
1541
+ QA.prototype._transform = function(E, I, A) {
1542
+ A(new TI("_transform()"));
1543
+ };
1544
+ QA.prototype._write = function(E, I, A) {
1545
+ var Q = this._transformState;
1546
+ if (Q.writecb = A, Q.writechunk = E, Q.writeencoding = I, !Q.transforming) {
1547
+ var C = this._readableState;
1548
+ (Q.needTransform || C.needReadable || C.length < C.highWaterMark) && this._read(C.highWaterMark);
1549
+ }
1550
+ };
1551
+ QA.prototype._read = function(E) {
1552
+ var I = this._transformState;
1553
+ I.writechunk !== null && !I.transforming ? (I.transforming = !0, this._transform(I.writechunk, I.writeencoding, I.afterTransform)) : I.needTransform = !0;
1554
+ };
1555
+ QA.prototype._destroy = function(E, I) {
1556
+ kA.prototype._destroy.call(this, E, function(A) {
1557
+ I(A);
1558
+ });
1559
+ };
1560
+ function BI(E, I, A) {
1561
+ if (I)
1562
+ return E.emit("error", I);
1563
+ if (A != null && E.push(A), E._writableState.length)
1564
+ throw new WI();
1565
+ if (E._transformState.transforming)
1566
+ throw new OI();
1567
+ return E.push(null);
1568
+ }
1569
+ var ZI = SA, hI = fI;
1570
+ dA(SA, hI);
1571
+ function SA(E) {
1572
+ if (!(this instanceof SA))
1573
+ return new SA(E);
1574
+ hI.call(this, E);
1575
+ }
1576
+ SA.prototype._transform = function(E, I, A) {
1577
+ A(null, E);
1578
+ };
1579
+ var qA;
1580
+ function jI(E) {
1581
+ var I = !1;
1582
+ return function() {
1583
+ I || (I = !0, E.apply(void 0, arguments));
1584
+ };
1585
+ }
1586
+ var DI = oA.codes, VI = DI.ERR_MISSING_ARGS, XI = DI.ERR_STREAM_DESTROYED;
1587
+ function EI(E) {
1588
+ if (E)
1589
+ throw E;
1590
+ }
1591
+ function zI(E) {
1592
+ return E.setHeader && typeof E.abort == "function";
1593
+ }
1594
+ function $I(E, I, A, Q) {
1595
+ Q = jI(Q);
1596
+ var C = !1;
1597
+ E.on("close", function() {
1598
+ C = !0;
1599
+ }), qA === void 0 && (qA = WA), qA(E, {
1600
+ readable: I,
1601
+ writable: A
1602
+ }, function(a) {
1603
+ if (a)
1604
+ return Q(a);
1605
+ C = !0, Q();
1606
+ });
1607
+ var o = !1;
1608
+ return function(a) {
1609
+ if (!C && !o) {
1610
+ if (o = !0, zI(E))
1611
+ return E.abort();
1612
+ if (typeof E.destroy == "function")
1613
+ return E.destroy();
1614
+ Q(a || new XI("pipe"));
1615
+ }
1616
+ };
1617
+ }
1618
+ function QI(E) {
1619
+ E();
1620
+ }
1621
+ function Ag(E, I) {
1622
+ return E.pipe(I);
1623
+ }
1624
+ function Ig(E) {
1625
+ return !E.length || typeof E[E.length - 1] != "function" ? EI : E.pop();
1626
+ }
1627
+ function gg() {
1628
+ for (var E = arguments.length, I = new Array(E), A = 0; A < E; A++)
1629
+ I[A] = arguments[A];
1630
+ var Q = Ig(I);
1631
+ if (Array.isArray(I[0]) && (I = I[0]), I.length < 2)
1632
+ throw new VI("streams");
1633
+ var C, o = I.map(function(a, h) {
1634
+ var r = h < I.length - 1, D = h > 0;
1635
+ return $I(a, r, D, function(G) {
1636
+ C || (C = G), G && o.forEach(QI), !r && (o.forEach(QI), Q(C));
1637
+ });
1638
+ });
1639
+ return I.reduce(Ag);
1640
+ }
1641
+ var Bg = gg;
1642
+ (function(E, I) {
1643
+ I = E.exports = sI(), I.Stream = I, I.Readable = I, I.Writable = oI(), I.Duplex = hA(), I.Transform = fI, I.PassThrough = ZI, I.finished = WA, I.pipeline = Bg;
1644
+ })(mA, mA.exports);
1645
+ var Eg = mA.exports;
1646
+ const { Transform: MA } = Eg;
1647
+ function Qg(E, I) {
1648
+ E.super_ = I, E.prototype = Object.create(I.prototype, {
1649
+ constructor: { value: E, enumerable: !1, writable: !0, configurable: !0 }
1650
+ });
1651
+ }
1652
+ function PA(E) {
1653
+ return (I, A, Q) => (typeof I == "function" && (Q = A, A = I, I = {}), typeof A != "function" && (A = (C, o, a) => a(null, C)), typeof Q != "function" && (Q = null), E(I, A, Q));
1654
+ }
1655
+ const Cg = PA((E, I, A) => {
1656
+ const Q = new MA(E);
1657
+ return Q._transform = I, A && (Q._flush = A), Q;
1658
+ }), eg = PA((E, I, A) => {
1659
+ function Q(C) {
1660
+ if (!(this instanceof Q))
1661
+ return new Q(C);
1662
+ this.options = Object.assign({}, E, C), MA.call(this, this.options), this._transform = I, A && (this._flush = A);
1663
+ }
1664
+ return Qg(Q, MA), Q;
1665
+ }), ig = PA(function(E, I, A) {
1666
+ const Q = new MA(Object.assign({ objectMode: !0, highWaterMark: 16 }, E));
1667
+ return Q._transform = I, A && (Q._flush = A), Q;
1668
+ });
1669
+ GA.exports = Cg;
1670
+ GA.exports.ctor = eg;
1671
+ GA.exports.obj = ig;
1672
+ var tg = GA.exports;
1673
+ const bA = /* @__PURE__ */ wI(tg);
1674
+ class ag {
1675
+ constructor() {
1676
+ this.initResolve = null, this.utils = null, this.wasm = null;
1677
+ }
1678
+ init() {
1679
+ const I = this, A = (Q) => {
1680
+ I.wasm = Q, I.utils = new EA(Q), I.AES_KEY_SIZE = Q._EMS_AES_KEY_SIZE_(), I.CRYPTO_TYPE_TARGET = Q._EMS_CRYPTO_TYPE_TARGET_(), I.CRYPTO_TYPE_PRIMARY = Q._EMS_CRYPTO_TYPE_PRIMARY_(), I.TARGET_BLOCK_KEY_SIZE = Q._EMS_TARGET_BLOCK_KEY_SIZE_(), I.TARGET_PK_KEY_SIZE = Q._EMS_TARGET_PK_KEY_SIZE_(), I.ECIES_PK_KEY_SIZE = Q._EMS_ECIES_PK_KEY_SIZE_(), I.ECIES_SK_KEY_SIZE = Q._EMS_ECIES_SK_KEY_SIZE_(), I.IV_SIZE = Q._EMS_IV_SIZE_(), I.PRIMARY_BLOCK_KEY_SIZE = Q._EMS_PRIMARY_BLOCK_KEY_SIZE_(), I.PRIMARY_PK_KEY_SIZE = Q._EMS_PRIMARY_PK_KEY_SIZE_(), I.RE_ENCRYPTION_KEY_SIZE = Q._EMS_RE_ENCRYPTION_KEY_SIZE_(), I.SECRET_KEY_SIZE = Q._EMS_SECRET_KEY_SIZE_(), I.SEED_SIZE = Q._EMS_SEED_SIZE_(), I.TAG_SIZE = Q._EMS_TAG_SIZE_(), I.ELV_E_INCOMPLETE_BLOCK = -2, I.initResolve && I.initResolve(I);
1681
+ };
1682
+ return SI().then(A), new Promise((Q) => {
1683
+ I.wasm ? Q(I) : I.initResolve = Q;
1684
+ });
1685
+ }
1686
+ calcEncByteCount(I) {
1687
+ return this.wasm._CalcEncByteCount(I);
1688
+ }
1689
+ calcEncByteCountH(I, A) {
1690
+ return this.wasm._CalcEncByteCountH(I, A);
1691
+ }
1692
+ calcEncByteCountFromTargetH(I) {
1693
+ return this.wasm._CalcEncByteCountFromTargetH(I);
1694
+ }
1695
+ calcTargetByteCountH(I) {
1696
+ return this.wasm._CalcTargetByteCountH(I);
1697
+ }
1698
+ calcEncECIESByteCount(I) {
1699
+ return this.wasm._CalcEncECIESByteCount(I);
1700
+ }
1701
+ /*
1702
+ * Performs ECIES standard encryption of input data using the provided
1703
+ * public key.
1704
+ *
1705
+ * data [Uint8Array]
1706
+ * publicKey [Uint8Array ECIES_PK_KEY_SIZE] - An uncompressed, byte
1707
+ * serialized secp256k1 key - the same curve type used by Ethereum.
1708
+ *
1709
+ * Returns the encrypted bytes, the 65 byte encrypted ephemeral key used for
1710
+ * encryption and also required for decryption, and the 16 byte HMAC tag
1711
+ * to verify the data integrity when decrypted:
1712
+ * {
1713
+ * data: [Uint8Array],
1714
+ * ephemeralKey: [Uint8Array ECIES_PK_KEY_SIZE],
1715
+ * tag: [Uint8Array TAG_SIZE]
1716
+ * }
1717
+ */
1718
+ encryptECIES(I, A) {
1719
+ if (A.length !== this.ECIES_PK_KEY_SIZE)
1720
+ throw new Error(`encryptECIES() failed: Expected publicKey length
1721
+ ${this.ECIES_PK_KEY_SIZE}, not ${A.length}`);
1722
+ const Q = this.wasm, C = this.utils, o = EA.randomBytes(this.SEED_SIZE), a = C.arrayToSmartBuf(I), h = C.arrayToSmartBuf(A), r = C.arrayToSmartBuf(o), D = this.calcEncECIESByteCount(a.len), G = C.smartMalloc(D), N = C.smartMalloc(this.ECIES_PK_KEY_SIZE), b = C.smartMalloc(this.TAG_SIZE), q = Q._EncryptECIES(
1723
+ r.ptr,
1724
+ r.len,
1725
+ h.ptr,
1726
+ a.ptr,
1727
+ a.len,
1728
+ G,
1729
+ D,
1730
+ N,
1731
+ b
1732
+ );
1733
+ if (q !== 0)
1734
+ throw new Error(`_EncryptECIES failed with error code ${q}`);
1735
+ return {
1736
+ data: new Uint8Array(Q.HEAPU8.buffer, G, D),
1737
+ ephemeralKey: new Uint8Array(
1738
+ Q.HEAPU8.buffer,
1739
+ N,
1740
+ this.ECIES_PK_KEY_SIZE
1741
+ ).slice(0),
1742
+ tag: new Uint8Array(Q.HEAPU8.buffer, b, this.TAG_SIZE).slice(0)
1743
+ };
1744
+ }
1745
+ /*
1746
+ * Performs ECIES standard decryption of data encrypted with a secp256k1
1747
+ * public key.
1748
+ *
1749
+ * data [Uint8Array]
1750
+ * secretKey [Uint8Array ECIES_SK_KEY_SIZE] - The private key corresponding
1751
+ * to the public key used for encryption.
1752
+ * ephemeralKey [Uint8Array ECIES_PK_KEY_SIZE] - Generated by encryption
1753
+ * tag [Uint8Array TAG_SIZE] - Generated by encryption
1754
+ *
1755
+ * Returns the decrypted bytes as an Uint8Array
1756
+ */
1757
+ decryptECIES(I, A, Q, C) {
1758
+ if (A.length !== this.ECIES_SK_KEY_SIZE)
1759
+ throw new Error(`decryptECIES() failed: Expected secretKey length
1760
+ ${this.ECIES_SK_KEY_SIZE}, not ${A.length}`);
1761
+ if (Q.length !== this.ECIES_PK_KEY_SIZE)
1762
+ throw new Error(`decryptECIES() failed: Expected ephemeralKey length
1763
+ ${this.ECIES_PK_KEY_SIZE}, not ${Q.length}`);
1764
+ if (C.length !== this.TAG_SIZE)
1765
+ throw new Error(`decryptECIES() failed: Expected tag length
1766
+ ${this.TAG_SIZE}, not ${C.length}`);
1767
+ const o = this.wasm, a = this.utils, h = a.arrayToSmartBuf(I), r = a.arrayToSmartBuf(A), D = a.arrayToSmartBuf(Q), G = a.arrayToSmartBuf(C), N = h.len, b = a.smartMalloc(N), q = o._DecryptECIES(
1768
+ D.ptr,
1769
+ h.ptr,
1770
+ h.len,
1771
+ G.ptr,
1772
+ r.ptr,
1773
+ b,
1774
+ N
1775
+ );
1776
+ if (q === -1)
1777
+ throw new Error("_DecryptECIES failed");
1778
+ return new Uint8Array(o.HEAPU8.buffer, b, q);
1779
+ }
1780
+ /*
1781
+ * Generates a "target" private / public key pair for use in content
1782
+ * re-encryption. Target keys are generally used to receive re-encrypted
1783
+ * data and not for direct encryption.
1784
+ *
1785
+ * Returns a 48 byte private key and uncompressed 193 byte public key that
1786
+ * follows the convention of 0x04 as the first byte:
1787
+ * {
1788
+ * secretKey: [Uint8Array SECRET_KEY_SIZE],
1789
+ * publicKey: [Uint8Array TARGET_PK_KEY_SIZE]
1790
+ * }
1791
+ */
1792
+ generateTargetKeys() {
1793
+ const I = this.wasm, A = this.utils, Q = EA.randomBytes(this.SEED_SIZE), C = A.arrayToSmartBuf(Q), o = A.smartMalloc(this.SECRET_KEY_SIZE), a = A.smartMalloc(this.TARGET_PK_KEY_SIZE), h = I._GenerateTargetKeys(C.ptr, C.len, o, a);
1794
+ if (h !== 0)
1795
+ throw new Error(`_GenerateTargetKeys failed with error code ${h}`);
1796
+ return {
1797
+ secretKey: new Uint8Array(
1798
+ I.HEAPU8.buffer,
1799
+ o,
1800
+ this.SECRET_KEY_SIZE
1801
+ ).slice(0),
1802
+ publicKey: new Uint8Array(
1803
+ I.HEAPU8.buffer,
1804
+ a,
1805
+ this.TARGET_PK_KEY_SIZE
1806
+ ).slice(0)
1807
+ };
1808
+ }
1809
+ /*
1810
+ * Generates a "primary" private / public key pair for use in content
1811
+ * encryption. Primary encryption is generally the encryption performed by the
1812
+ * owner or publisher of the content.
1813
+ *
1814
+ * Returns a 48 byte private key and 97 byte public key that follows the
1815
+ * convention of 0x04 as the first byte:
1816
+ * {
1817
+ * secretKey: [Uint8Array SECRET_KEY_SIZE],
1818
+ * publicKey: [Uint8Array PRIMARY_PK_KEY_SIZE]
1819
+ * }
1820
+ */
1821
+ generatePrimaryKeys() {
1822
+ const I = this.wasm, A = this.utils, Q = EA.randomBytes(this.SEED_SIZE), C = A.arrayToSmartBuf(Q), o = A.smartMalloc(this.SECRET_KEY_SIZE), a = A.smartMalloc(this.PRIMARY_PK_KEY_SIZE), h = I._GeneratePrimaryKeys(C.ptr, C.len, o, a);
1823
+ if (h !== 0)
1824
+ throw new Error(`_GeneratePrimaryKeys failed with error code ${h}`);
1825
+ return {
1826
+ secretKey: new Uint8Array(
1827
+ I.HEAPU8.buffer,
1828
+ o,
1829
+ this.SECRET_KEY_SIZE
1830
+ ).slice(0),
1831
+ publicKey: new Uint8Array(
1832
+ I.HEAPU8.buffer,
1833
+ a,
1834
+ this.PRIMARY_PK_KEY_SIZE
1835
+ ).slice(0)
1836
+ };
1837
+ }
1838
+ /*
1839
+ * Creates a key that can be used to re-encrypt data from 'primary'
1840
+ * encryption to 'target' encryption. It is then in a form where it can be
1841
+ * decrypted with the private target key of the intended recipient.
1842
+ *
1843
+ * primarySK [Uint8Array SECRET_KEY_SIZE]: The primary private key used to
1844
+ * encrypt the data
1845
+ * targetPK [Uint8Array TARGET_PK_KEY_SIZE]: The target public key of
1846
+ * the target recipient of the re-encrypted data.
1847
+ *
1848
+ * Returns a 193 key: [Uint8Array RE_ENCRYPTION_KEY_SIZE]
1849
+ */
1850
+ generateReEncryptionKey(I, A) {
1851
+ if (I.length !== this.SECRET_KEY_SIZE)
1852
+ throw new Error(`generateReEncryptionKey() failed: Expected primarySK
1853
+ length ${this.SECRET_KEY_SIZE}, not ${I.length}`);
1854
+ if (A.length !== this.TARGET_PK_KEY_SIZE)
1855
+ throw new Error(`generateReEncryptionKey() failed: Expected targetPK
1856
+ length ${this.TARGET_PK_KEY_SIZE}, not ${A.length}`);
1857
+ const Q = this.wasm, C = this.utils, o = C.arrayToSmartBuf(I), a = C.arrayToSmartBuf(A), h = C.smartMalloc(this.RE_ENCRYPTION_KEY_SIZE), r = Q._GenerateReEncryptionKey(o.ptr, a.ptr, h);
1858
+ if (r !== 0)
1859
+ throw new Error(
1860
+ `_GenerateReEncryptionKey failed with error code ${r}`
1861
+ );
1862
+ return new Uint8Array(
1863
+ Q.HEAPU8.buffer,
1864
+ h,
1865
+ this.RE_ENCRYPTION_KEY_SIZE
1866
+ ).slice(0);
1867
+ }
1868
+ /*
1869
+ * Generates a symmetric key and an initialization vector (IV) for use
1870
+ * with content encryption.
1871
+ *
1872
+ * Returns a 16 byte key (AES-128) and 12 byte IV:
1873
+ * {
1874
+ * key: [Uint8Array AES_KEY_SIZE],
1875
+ * iv: [Uint8Array IV_SIZE]
1876
+ * }
1877
+ */
1878
+ generateSymmetricKey() {
1879
+ const I = this.wasm, A = this.utils, Q = EA.randomBytes(this.SEED_SIZE), C = A.arrayToSmartBuf(Q), o = A.smartMalloc(this.AES_KEY_SIZE), a = A.smartMalloc(this.IV_SIZE), h = I._GenerateSymmetricKeys(
1880
+ C.ptr,
1881
+ C.len,
1882
+ o,
1883
+ a
1884
+ );
1885
+ if (h !== 0)
1886
+ throw new Error(`_GenerateSymmetricKeys failed with error code ${h}`);
1887
+ return {
1888
+ key: new Uint8Array(I.HEAPU8.buffer, o, this.AES_KEY_SIZE).slice(0),
1889
+ iv: new Uint8Array(I.HEAPU8.buffer, a, this.IV_SIZE).slice(0)
1890
+ };
1891
+ }
1892
+ /*
1893
+ * Creates a context used for block-based primary encryption through
1894
+ * EncryptPrimary. Free the context when done.
1895
+ *
1896
+ * publicKey [Uint8Array PRIMARY_PK_KEY_SIZE]
1897
+ * secretKey [Uint8Array SECRET_KEY_SIZE] - Optional (needed for DecryptPrimary)
1898
+ * symmetricKey [Uint8Array AES_KEY_SIZE]
1899
+ *
1900
+ * returns PrimaryContext
1901
+ */
1902
+ newPrimaryContext(I, A, Q) {
1903
+ if (I && I.length !== this.PRIMARY_PK_KEY_SIZE)
1904
+ throw new Error(`newPrimaryContext() failed: Expected publicKey
1905
+ length ${this.PRIMARY_PK_KEY_SIZE}, not ${I.length}`);
1906
+ if (A && A.length !== this.SECRET_KEY_SIZE)
1907
+ throw new Error(`newPrimaryContext() failed: Expected secretKey
1908
+ length ${this.SECRET_KEY_SIZE}, not ${A.length}`);
1909
+ if (Q.length !== this.AES_KEY_SIZE)
1910
+ throw new Error(`newPrimaryContext() failed: Expected
1911
+ symmetricKey length ${this.AES_KEY_SIZE}, not ${Q.length}`);
1912
+ const C = this.generateSymmetricKey();
1913
+ return new lI(
1914
+ this.wasm,
1915
+ I,
1916
+ A,
1917
+ Q,
1918
+ C.iv
1919
+ );
1920
+ }
1921
+ /*
1922
+ * Performs one 'block' of primary encryption. Each block has both
1923
+ * performance and data size overhead so a fairly large block size is
1924
+ * intended and recommended. We currently use 1MB as a default clear-text
1925
+ * block size. The initialization vector (IV) must be unique for each block
1926
+ * so the context provides a helper function that can be used to generate a
1927
+ * base IV that can then be incremented to create unique values.
1928
+ *
1929
+ * PrimaryContext
1930
+ * data [Uint8Array]
1931
+ * iv [Uint8Array IV_SIZE (12 bytes)]
1932
+ *
1933
+ * Returns: {
1934
+ * blockKey [Uint8Array PRIMARY_BLOCK_KEY_SIZE (97 bytes)],
1935
+ * data [Uint8Array],
1936
+ * tag [Uint8Array TAG_SIZE (16 bytes)],
1937
+ * }
1938
+ */
1939
+ encryptPrimary(I, A, Q) {
1940
+ if (Q.length !== this.IV_SIZE)
1941
+ throw new Error(`encryptPrimary() failed: Expected iv
1942
+ length ${this.IV_SIZE}, not ${Q.length}`);
1943
+ if (I.scratchBuf.len !== 0)
1944
+ throw new Error("encryptPrimary() failed: Scratch buffer is not empty");
1945
+ const C = this.wasm, o = this.utils, a = o.arrayToSmartBuf(Q), h = o.arrayToSmartBuf(A), r = this.calcEncByteCount(h.len);
1946
+ I.scratchBuf.ensureSize(r);
1947
+ const D = o.smartMalloc(this.TAG_SIZE), G = o.smartMalloc(this.PRIMARY_BLOCK_KEY_SIZE), N = C._EncryptPrimary(
1948
+ I.context,
1949
+ I.pkBuf.ptr,
1950
+ I.symKeyBuf.ptr,
1951
+ a.ptr,
1952
+ h.ptr,
1953
+ h.len,
1954
+ I.scratchBuf.ptr,
1955
+ r,
1956
+ D,
1957
+ G
1958
+ );
1959
+ if (N !== 0)
1960
+ throw new Error(`_EncryptPrimary failed with error code ${N}`);
1961
+ return {
1962
+ blockKey: new Uint8Array(
1963
+ C.HEAPU8.buffer,
1964
+ G,
1965
+ this.PRIMARY_BLOCK_KEY_SIZE
1966
+ ).slice(0),
1967
+ data: new Uint8Array(C.HEAPU8.buffer, I.scratchBuf.ptr, r),
1968
+ tag: new Uint8Array(C.HEAPU8.buffer, D, this.TAG_SIZE).slice(0)
1969
+ };
1970
+ }
1971
+ /*
1972
+ * Same as EncryptPrimary except the blockKey and tag are included in the
1973
+ * encrypted data output, and the iv is generated automatically using the
1974
+ * context method generateNextBlockIV.
1975
+ *
1976
+ * PrimaryContext
1977
+ * data [Uint8Array]
1978
+ *
1979
+ * Returns: data [Uint8Array]
1980
+ */
1981
+ encryptPrimaryH(I, A) {
1982
+ if (I.scratchBuf.len !== 0)
1983
+ throw new Error("encryptPrimaryH() failed: Scratch buffer is not empty");
1984
+ const Q = this.wasm, C = this.utils, o = I.generateNextBlockIV(), a = C.arrayToSmartBuf(o), h = C.arrayToSmartBuf(A), r = this.calcEncByteCountH(
1985
+ this.CRYPTO_TYPE_PRIMARY,
1986
+ h.len
1987
+ );
1988
+ I.scratchBuf.ensureSize(r);
1989
+ const D = Q._EncryptPrimaryH(
1990
+ I.context,
1991
+ I.pkBuf.ptr,
1992
+ I.symKeyBuf.ptr,
1993
+ a.ptr,
1994
+ h.ptr,
1995
+ h.len,
1996
+ I.scratchBuf.ptr
1997
+ );
1998
+ if (D !== 0)
1999
+ throw new Error(`_EncryptPrimaryH failed with error code ${D}`);
2000
+ return new Uint8Array(Q.HEAPU8.buffer, I.scratchBuf.ptr, r);
2001
+ }
2002
+ /*
2003
+ * PrimaryContext
2004
+ * data [Uint8Array]
2005
+ * tag [Uint8Array TAG_SIZE (16 bytes)]
2006
+ * blockKey [Uint8Array PRIMARY_BLOCK_KEY_SIZE (97 bytes)]
2007
+ * iv [Uint8Array IV_SIZE (12 bytes)]
2008
+ * clearSize - length of decrypted data
2009
+ *
2010
+ * Returns decrypted data [Uint8Array]
2011
+ */
2012
+ decryptPrimary(I, A, Q, C, o, a) {
2013
+ if (Q.length !== this.TAG_SIZE)
2014
+ throw new Error(`decryptPrimary() failed: Expected tag
2015
+ length ${this.TAG_SIZE}, not ${Q.length}`);
2016
+ if (C.length !== this.PRIMARY_BLOCK_KEY_SIZE)
2017
+ throw new Error(`decryptPrimary() failed: Expected blockKey
2018
+ length ${this.PRIMARY_BLOCK_KEY_SIZE}, not ${C.length}`);
2019
+ if (o.length !== this.IV_SIZE)
2020
+ throw new Error(`decryptPrimary() failed: Expected iv
2021
+ length ${this.IV_SIZE}, not ${o.length}`);
2022
+ if (I.scratchBuf.len !== 0)
2023
+ throw new Error("decryptPrimary() failed: Scratch buffer is not empty");
2024
+ const h = this.wasm, r = this.utils, D = r.arrayToSmartBuf(A), G = r.arrayToSmartBuf(C), N = r.arrayToSmartBuf(o), b = r.arrayToSmartBuf(Q);
2025
+ I.scratchBuf.ensureSize(a);
2026
+ const q = h._DecryptPrimary(
2027
+ I.context,
2028
+ I.skBuf.ptr,
2029
+ G.ptr,
2030
+ I.symKeyBuf.ptr,
2031
+ N.ptr,
2032
+ b.ptr,
2033
+ D.ptr,
2034
+ D.len,
2035
+ I.scratchBuf.ptr,
2036
+ a
2037
+ );
2038
+ if (q !== 0)
2039
+ throw new Error(`_DecryptPrimary failed with error code ${q}`);
2040
+ return new Uint8Array(h.HEAPU8.buffer, I.scratchBuf.ptr, a);
2041
+ }
2042
+ /*
2043
+ * Re-encrypt the block key and update the header. The encrypted data remains
2044
+ * the same.
2045
+ *
2046
+ * scratch - buffer for efficiency
2047
+ * reEncKey - the re-encryption key
2048
+ * data [Uint8Array]
2049
+ *
2050
+ * Returns [Uint8Array]
2051
+ */
2052
+ reEncryptH(I, A, Q) {
2053
+ if (A.length !== this.RE_ENCRYPTION_KEY_SIZE)
2054
+ throw new Error(`reEncryptBlockKey() failed: Expected reEncKey
2055
+ length ${this.RE_ENCRYPTION_KEY_SIZE}, not ${A.length}`);
2056
+ const C = this.wasm, o = this.utils, a = o.arrayToSmartBuf(A), h = o.arrayToSmartBuf(Q);
2057
+ I.ensureSize(this.calcTargetByteCountH(h.len));
2058
+ const r = o.smartMalloc(4), D = C._ReEncryptH(
2059
+ a.ptr,
2060
+ h.ptr,
2061
+ h.len,
2062
+ I.ptr,
2063
+ r
2064
+ );
2065
+ if (D === this.ELV_E_INCOMPLETE_BLOCK)
2066
+ throw new Error("ELV_E_INCOMPLETE_BLOCK");
2067
+ if (D !== 0)
2068
+ throw new Error(`_ReEncryptH failed with error code ${D}`);
2069
+ const G = C.getValue(r, "i32");
2070
+ return new Uint8Array(C.HEAPU8.buffer, I.ptr, G);
2071
+ }
2072
+ /*
2073
+ * Same as decryptPrimary/Target except the blockKey, iv, tag, and
2074
+ * clearSize are already included in the encrypted data input.
2075
+ *
2076
+ * type - CRYPTO_TYPE_TARGET or CRYPTO_TYPE_PRIMARY
2077
+ * PrimaryContext
2078
+ * data [Uint8Array]
2079
+ *
2080
+ * Returns decrypted data [Uint8Array]
2081
+ */
2082
+ decryptH(I, A, Q) {
2083
+ if (I !== this.CRYPTO_TYPE_TARGET && I !== this.CRYPTO_TYPE_PRIMARY)
2084
+ throw new Error(`decryptH() failed: Invalid type ${I}`);
2085
+ if (A.scratchBuf.len !== 0)
2086
+ throw new Error("decryptH() failed: Scratch buffer is not empty");
2087
+ const C = this.wasm, o = this.utils, a = o.arrayToSmartBuf(Q);
2088
+ A.scratchBuf.ensureSize(a.len);
2089
+ const h = o.smartMalloc(4), r = C._DecryptH(
2090
+ I,
2091
+ A.context,
2092
+ A.skBuf.ptr,
2093
+ A.symKeyBuf.ptr,
2094
+ a.ptr,
2095
+ a.len,
2096
+ A.scratchBuf.ptr,
2097
+ h
2098
+ );
2099
+ if (r === this.ELV_E_INCOMPLETE_BLOCK)
2100
+ throw new Error("ELV_E_INCOMPLETE_BLOCK");
2101
+ if (r !== 0)
2102
+ throw new Error(`_DecryptH failed with error code ${r}`);
2103
+ const D = C.getValue(h, "i32");
2104
+ return new Uint8Array(C.HEAPU8.buffer, A.scratchBuf.ptr, D);
2105
+ }
2106
+ /*
2107
+ * Used to re-encrypt a block key using the provided re-encryption key (see
2108
+ * "GenerateReEncryptionKey"). The block key is transformed in a way such
2109
+ * that it can be used by the holder of the target private key to decrypt
2110
+ * the encrypted data in a block. The encrypted data itself is not
2111
+ * transformed so the process of re-encryption is very efficient since the
2112
+ * bulk of the data is not manipulated.
2113
+ *
2114
+ * reEncKey [Uint8Array RE_ENCRYPTION_KEY_SIZE]
2115
+ * blockKey [Uint8Array PRIMARY_BLOCK_KEY_SIZE]
2116
+ *
2117
+ * Returns the target block key: [Uint8Array TARGET_BLOCK_KEY_SIZE]
2118
+ */
2119
+ reEncryptBlockKey(I, A) {
2120
+ if (I.length !== this.RE_ENCRYPTION_KEY_SIZE)
2121
+ throw new Error(`reEncryptBlockKey() failed: Expected reEncKey
2122
+ length ${this.RE_ENCRYPTION_KEY_SIZE}, not ${I.length}`);
2123
+ if (A.length !== this.PRIMARY_BLOCK_KEY_SIZE)
2124
+ throw new Error(`reEncryptBlockKey() failed: Expected blockKey
2125
+ length ${this.PRIMARY_BLOCK_KEY_SIZE}, not ${A.length}`);
2126
+ const Q = this.wasm, C = this.utils, o = C.arrayToSmartBuf(I), a = C.arrayToSmartBuf(A), h = C.smartMalloc(this.TARGET_BLOCK_KEY_SIZE), r = Q._ReEncryptBlockKey(o.ptr, a.ptr, h);
2127
+ if (r !== 0)
2128
+ throw new Error(`_ReEncryptBlockKey failed with error code ${r}`);
2129
+ return new Uint8Array(
2130
+ Q.HEAPU8.buffer,
2131
+ h,
2132
+ this.TARGET_BLOCK_KEY_SIZE
2133
+ ).slice(0);
2134
+ }
2135
+ /*
2136
+ * Creates a context used for block-based target decryption through
2137
+ * DecryptTarget. Free the context when done.
2138
+ *
2139
+ * secretKey [Uint8Array SECRET_KEY_SIZE]
2140
+ * symmetricKey [Uint8Array AES_KEY_SIZE]
2141
+ *
2142
+ * returns TargetDecryptionContext
2143
+ */
2144
+ newTargetDecryptionContext(I, A) {
2145
+ if (I.length !== this.SECRET_KEY_SIZE)
2146
+ throw new Error(`newTargetDecryptionContext() failed: Expected
2147
+ secretKey length ${this.SECRET_KEY_SIZE}, not ${I.length}`);
2148
+ if (A.length !== this.AES_KEY_SIZE)
2149
+ throw new Error(`newTargetDecryptionContext() failed: Expected
2150
+ symmetricKey length ${this.AES_KEY_SIZE}, not ${A.length}`);
2151
+ return new yI(this.wasm, I, A);
2152
+ }
2153
+ /*
2154
+ * Decrypt data that has been re-encrypted for a target target public key.
2155
+ * The initialization vector, tag and encrypted bytes from the original
2156
+ * encryption must be provided. The re-encrypted block key that corresponds
2157
+ * to the target target key must also be provided. It is assumed that all
2158
+ * of this data is stored together as a block since all of the data is
2159
+ * necessary and secure.
2160
+ *
2161
+ * TargetDecryptionContext
2162
+ * data [Uint8Array]
2163
+ * blockKey [Uint8Array TARGET_BLOCK_KEY_SIZE (576 bytes)]
2164
+ * iv [Uint8Array IV_SIZE (12 bytes)]
2165
+ * tag [Uint8Array TAG_SIZE (16 bytes)]
2166
+ * clearSize - length of decrypted data
2167
+ *
2168
+ * Returns decrypted data [Uint8Array]
2169
+ */
2170
+ decryptTarget(I, A, Q, C, o, a) {
2171
+ if (Q.length !== this.TAG_SIZE)
2172
+ throw new Error(`decryptTarget() failed: Expected tag
2173
+ length ${this.TAG_SIZE}, not ${Q.length}`);
2174
+ if (C.length !== this.TARGET_BLOCK_KEY_SIZE)
2175
+ throw new Error(`decryptTarget() failed: Expected blockKey
2176
+ length ${this.TARGET_BLOCK_KEY_SIZE}, not ${C.length}`);
2177
+ if (o.length !== this.IV_SIZE)
2178
+ throw new Error(`decryptTarget() failed: Expected iv
2179
+ length ${this.IV_SIZE}, not ${o.length}`);
2180
+ if (I.scratchBuf.len !== 0)
2181
+ throw new Error("decryptTarget() failed: Scratch buffer is not empty");
2182
+ const h = this.wasm, r = this.utils, D = r.arrayToSmartBuf(A), G = r.arrayToSmartBuf(C), N = r.arrayToSmartBuf(o), b = r.arrayToSmartBuf(Q);
2183
+ I.scratchBuf.ensureSize(a);
2184
+ const q = h._DecryptTarget(
2185
+ I.context,
2186
+ I.skBuf.ptr,
2187
+ G.ptr,
2188
+ I.symKeyBuf.ptr,
2189
+ N.ptr,
2190
+ b.ptr,
2191
+ D.ptr,
2192
+ D.len,
2193
+ I.scratchBuf.ptr,
2194
+ a
2195
+ );
2196
+ if (q !== 0)
2197
+ throw new Error(`_DecryptTarget failed with error code ${q}`);
2198
+ return new Uint8Array(h.HEAPU8.buffer, I.scratchBuf.ptr, a);
2199
+ }
2200
+ createCipher(I) {
2201
+ const A = this;
2202
+ return bA(function(Q, C, o) {
2203
+ this.push(A.encryptPrimaryH(I, Q)), I.clearBuf(), o();
2204
+ });
2205
+ }
2206
+ createDecipher(I, A) {
2207
+ const Q = this;
2208
+ let C = Buffer.alloc(0);
2209
+ return bA(
2210
+ function(o, a, h) {
2211
+ let r = 0;
2212
+ for (C = Buffer.concat([C, o]); r < C.length; )
2213
+ try {
2214
+ A.clearBuf();
2215
+ let D = Q.decryptH(I, A, C.slice(r));
2216
+ this.push(D), r += Q.calcEncByteCountH(I, D.length);
2217
+ } catch (D) {
2218
+ if (D.message === "ELV_E_INCOMPLETE_BLOCK") {
2219
+ C = C.slice(r), h();
2220
+ return;
2221
+ } else {
2222
+ C = Buffer.alloc(0), h(D);
2223
+ return;
2224
+ }
2225
+ }
2226
+ C = Buffer.alloc(0), h();
2227
+ },
2228
+ function(o) {
2229
+ C.length > 0 && this.destroy(
2230
+ new Error(
2231
+ "Decipher stream ended before all data was decrypted. The source may be invalid."
2232
+ )
2233
+ ), o();
2234
+ }
2235
+ );
2236
+ }
2237
+ createRecipher(I) {
2238
+ const A = this, Q = new OA(A.wasm);
2239
+ let C = Buffer.alloc(0), o = bA(
2240
+ function(a, h, r) {
2241
+ let D = 0;
2242
+ for (C = Buffer.concat([C, a]); D < C.length; )
2243
+ try {
2244
+ Q.clear();
2245
+ let G = A.reEncryptH(Q, I, C.slice(D));
2246
+ this.push(G), D += A.calcEncByteCountFromTargetH(G.length);
2247
+ } catch (G) {
2248
+ if (G.message === "ELV_E_INCOMPLETE_BLOCK") {
2249
+ C = C.slice(D), r();
2250
+ return;
2251
+ } else {
2252
+ C = Buffer.alloc(0), r(G);
2253
+ return;
2254
+ }
2255
+ }
2256
+ C = Buffer.alloc(0), r();
2257
+ },
2258
+ function(a) {
2259
+ C.length > 0 && this.destroy(
2260
+ new Error(
2261
+ "Recipher stream ended before all data was decrypted. The source may be invalid."
2262
+ )
2263
+ ), a();
2264
+ }
2265
+ );
2266
+ return o.on("finish", () => {
2267
+ Q.free();
2268
+ }), o;
2269
+ }
2270
+ }
2271
+ export {
2272
+ ag as default
2273
+ };