numpy-ts 1.2.0 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (408) hide show
  1. package/README.md +3 -11
  2. package/dist/esm/common/dtype.js +1 -1
  3. package/dist/esm/common/internal/compute.js +1 -1
  4. package/dist/esm/common/internal/indexing.js +1 -1
  5. package/dist/esm/common/ndarray-core.js +1 -1
  6. package/dist/esm/common/ops/advanced.js +1 -1
  7. package/dist/esm/common/ops/arithmetic.js +1 -1
  8. package/dist/esm/common/ops/bitwise.js +1 -1
  9. package/dist/esm/common/ops/comparison.js +1 -1
  10. package/dist/esm/common/ops/complex.js +1 -1
  11. package/dist/esm/common/ops/exponential.js +1 -1
  12. package/dist/esm/common/ops/fft.js +1 -1
  13. package/dist/esm/common/ops/gradient.js +1 -1
  14. package/dist/esm/common/ops/hyperbolic.js +1 -1
  15. package/dist/esm/common/ops/linalg.js +2 -2
  16. package/dist/esm/common/ops/logic.js +1 -1
  17. package/dist/esm/common/ops/random.js +1 -1
  18. package/dist/esm/common/ops/reduction.js +1 -1
  19. package/dist/esm/common/ops/rounding.js +1 -1
  20. package/dist/esm/common/ops/shape.js +1 -1
  21. package/dist/esm/common/ops/sorting.js +1 -1
  22. package/dist/esm/common/ops/statistics.js +1 -1
  23. package/dist/esm/common/ops/trig.js +1 -1
  24. package/dist/esm/common/storage.js +1 -1
  25. package/dist/esm/common/wasm/abs.js +1 -1
  26. package/dist/esm/common/wasm/add.js +1 -1
  27. package/dist/esm/common/wasm/all_finite.js +1 -0
  28. package/dist/esm/common/wasm/arccos.js +1 -1
  29. package/dist/esm/common/wasm/arcsin.js +1 -1
  30. package/dist/esm/common/wasm/arctan.js +1 -1
  31. package/dist/esm/common/wasm/arctan2.js +1 -0
  32. package/dist/esm/common/wasm/argpartition.js +1 -1
  33. package/dist/esm/common/wasm/argsort.js +1 -1
  34. package/dist/esm/common/wasm/bins/abs.wasm.js +1 -1
  35. package/dist/esm/common/wasm/bins/add.wasm.js +1 -1
  36. package/dist/esm/common/wasm/bins/all_finite.wasm.js +1 -0
  37. package/dist/esm/common/wasm/bins/alloc.wasm.js +1 -0
  38. package/dist/esm/common/wasm/bins/arccos.wasm.js +1 -1
  39. package/dist/esm/common/wasm/bins/arcsin.wasm.js +1 -1
  40. package/dist/esm/common/wasm/bins/arctan.wasm.js +1 -1
  41. package/dist/esm/common/wasm/bins/arctan2.wasm.js +1 -0
  42. package/dist/esm/common/wasm/bins/argpartition.wasm.js +1 -1
  43. package/dist/esm/common/wasm/bins/argsort.wasm.js +1 -1
  44. package/dist/esm/common/wasm/bins/bitwise_and.wasm.js +1 -1
  45. package/dist/esm/common/wasm/bins/bitwise_count.wasm.js +1 -1
  46. package/dist/esm/common/wasm/bins/bitwise_not.wasm.js +1 -1
  47. package/dist/esm/common/wasm/bins/bitwise_or.wasm.js +1 -1
  48. package/dist/esm/common/wasm/bins/bitwise_xor.wasm.js +1 -1
  49. package/dist/esm/common/wasm/bins/cholesky.wasm.js +1 -1
  50. package/dist/esm/common/wasm/bins/clip.wasm.js +1 -1
  51. package/dist/esm/common/wasm/bins/convolve.wasm.js +1 -1
  52. package/dist/esm/common/wasm/bins/copysign.wasm.js +1 -1
  53. package/dist/esm/common/wasm/bins/correlate.wasm.js +1 -1
  54. package/dist/esm/common/wasm/bins/cos.wasm.js +1 -1
  55. package/dist/esm/common/wasm/bins/cosh.wasm.js +1 -1
  56. package/dist/esm/common/wasm/bins/cross.wasm.js +1 -1
  57. package/dist/esm/common/wasm/bins/diff.wasm.js +1 -1
  58. package/dist/esm/common/wasm/bins/divide.wasm.js +1 -1
  59. package/dist/esm/common/wasm/bins/divmod.wasm.js +1 -0
  60. package/dist/esm/common/wasm/bins/dot_float-relaxed.wasm.js +1 -0
  61. package/dist/esm/common/wasm/bins/dot_float.wasm.js +1 -0
  62. package/dist/esm/common/wasm/bins/dot_int.wasm.js +1 -0
  63. package/dist/esm/common/wasm/bins/exp.wasm.js +1 -1
  64. package/dist/esm/common/wasm/bins/exp2.wasm.js +1 -1
  65. package/dist/esm/common/wasm/bins/fft.wasm.js +1 -1
  66. package/dist/esm/common/wasm/bins/frexp.wasm.js +1 -1
  67. package/dist/esm/common/wasm/bins/gather.wasm.js +1 -1
  68. package/dist/esm/common/wasm/bins/gcd.wasm.js +1 -1
  69. package/dist/esm/common/wasm/bins/gradient.wasm.js +1 -1
  70. package/dist/esm/common/wasm/bins/heaviside.wasm.js +1 -1
  71. package/dist/esm/common/wasm/bins/hypot.wasm.js +1 -1
  72. package/dist/esm/common/wasm/bins/indices.wasm.js +1 -1
  73. package/dist/esm/common/wasm/bins/inner_float-relaxed.wasm.js +1 -0
  74. package/dist/esm/common/wasm/bins/inner_float.wasm.js +1 -0
  75. package/dist/esm/common/wasm/bins/inner_int.wasm.js +1 -0
  76. package/dist/esm/common/wasm/bins/isfinite.wasm.js +1 -0
  77. package/dist/esm/common/wasm/bins/isnan.wasm.js +1 -0
  78. package/dist/esm/common/wasm/bins/kron.wasm.js +1 -1
  79. package/dist/esm/common/wasm/bins/ldexp.wasm.js +1 -1
  80. package/dist/esm/common/wasm/bins/left_shift.wasm.js +1 -1
  81. package/dist/esm/common/wasm/bins/lexsort.wasm.js +1 -1
  82. package/dist/esm/common/wasm/bins/logaddexp.wasm.js +1 -1
  83. package/dist/esm/common/wasm/bins/logical_and.wasm.js +1 -1
  84. package/dist/esm/common/wasm/bins/logical_not.wasm.js +1 -1
  85. package/dist/esm/common/wasm/bins/logical_or.wasm.js +1 -1
  86. package/dist/esm/common/wasm/bins/logical_xor.wasm.js +1 -1
  87. package/dist/esm/common/wasm/bins/lu.wasm.js +1 -0
  88. package/dist/esm/common/wasm/bins/matmul_float-relaxed.wasm.js +1 -0
  89. package/dist/esm/common/wasm/bins/matmul_float.wasm.js +1 -0
  90. package/dist/esm/common/wasm/bins/matmul_int.wasm.js +1 -0
  91. package/dist/esm/common/wasm/bins/matvec_float-relaxed.wasm.js +1 -0
  92. package/dist/esm/common/wasm/bins/matvec_float.wasm.js +1 -0
  93. package/dist/esm/common/wasm/bins/matvec_int.wasm.js +1 -0
  94. package/dist/esm/common/wasm/bins/max.wasm.js +1 -1
  95. package/dist/esm/common/wasm/bins/min.wasm.js +1 -1
  96. package/dist/esm/common/wasm/bins/mul.wasm.js +1 -1
  97. package/dist/esm/common/wasm/bins/neg.wasm.js +1 -1
  98. package/dist/esm/common/wasm/bins/outer.wasm.js +1 -1
  99. package/dist/esm/common/wasm/bins/pad.wasm.js +1 -1
  100. package/dist/esm/common/wasm/bins/partition.wasm.js +1 -1
  101. package/dist/esm/common/wasm/bins/power.wasm.js +1 -1
  102. package/dist/esm/common/wasm/bins/qr.wasm.js +1 -1
  103. package/dist/esm/common/wasm/bins/reciprocal.wasm.js +1 -1
  104. package/dist/esm/common/wasm/bins/reduce_all.wasm.js +1 -1
  105. package/dist/esm/common/wasm/bins/reduce_any.wasm.js +1 -1
  106. package/dist/esm/common/wasm/bins/reduce_argmax.wasm.js +1 -1
  107. package/dist/esm/common/wasm/bins/reduce_argmin.wasm.js +1 -1
  108. package/dist/esm/common/wasm/bins/reduce_count_nz.wasm.js +1 -1
  109. package/dist/esm/common/wasm/bins/reduce_max.wasm.js +1 -1
  110. package/dist/esm/common/wasm/bins/reduce_mean.wasm.js +1 -1
  111. package/dist/esm/common/wasm/bins/reduce_min.wasm.js +1 -1
  112. package/dist/esm/common/wasm/bins/reduce_nanmax.wasm.js +1 -1
  113. package/dist/esm/common/wasm/bins/reduce_nanmin.wasm.js +1 -1
  114. package/dist/esm/common/wasm/bins/reduce_nansum.wasm.js +1 -1
  115. package/dist/esm/common/wasm/bins/reduce_prod.wasm.js +1 -1
  116. package/dist/esm/common/wasm/bins/reduce_std.wasm.js +1 -1
  117. package/dist/esm/common/wasm/bins/reduce_sum.wasm.js +1 -1
  118. package/dist/esm/common/wasm/bins/reduce_var.wasm.js +1 -1
  119. package/dist/esm/common/wasm/bins/repeat.wasm.js +1 -1
  120. package/dist/esm/common/wasm/bins/right_shift.wasm.js +1 -1
  121. package/dist/esm/common/wasm/bins/rng.wasm.js +1 -1
  122. package/dist/esm/common/wasm/bins/roll.wasm.js +1 -1
  123. package/dist/esm/common/wasm/bins/searchsorted.wasm.js +1 -1
  124. package/dist/esm/common/wasm/bins/sign.wasm.js +1 -1
  125. package/dist/esm/common/wasm/bins/signbit.wasm.js +1 -0
  126. package/dist/esm/common/wasm/bins/sin.wasm.js +1 -0
  127. package/dist/esm/common/wasm/bins/sinh.wasm.js +1 -1
  128. package/dist/esm/common/wasm/bins/sort.wasm.js +1 -1
  129. package/dist/esm/common/wasm/bins/sqrt.wasm.js +1 -1
  130. package/dist/esm/common/wasm/bins/square.wasm.js +1 -1
  131. package/dist/esm/common/wasm/bins/sub.wasm.js +1 -1
  132. package/dist/esm/common/wasm/bins/svd.wasm.js +1 -1
  133. package/dist/esm/common/wasm/bins/tan.wasm.js +1 -1
  134. package/dist/esm/common/wasm/bins/tanh.wasm.js +1 -1
  135. package/dist/esm/common/wasm/bins/tile.wasm.js +1 -1
  136. package/dist/esm/common/wasm/bins/unravel_index.wasm.js +1 -0
  137. package/dist/esm/common/wasm/bins/vdot.wasm.js +1 -1
  138. package/dist/esm/common/wasm/bins/vecdot_float-relaxed.wasm.js +1 -0
  139. package/dist/esm/common/wasm/bins/vecdot_float.wasm.js +1 -0
  140. package/dist/esm/common/wasm/bins/vecdot_int.wasm.js +1 -0
  141. package/dist/esm/common/wasm/bins/vecmat_float-relaxed.wasm.js +1 -0
  142. package/dist/esm/common/wasm/bins/vecmat_float.wasm.js +1 -0
  143. package/dist/esm/common/wasm/bins/vecmat_int.wasm.js +1 -0
  144. package/dist/esm/common/wasm/bins/vector_norm-relaxed.wasm.js +1 -0
  145. package/dist/esm/common/wasm/bins/vector_norm.wasm.js +1 -0
  146. package/dist/esm/common/wasm/bitwise_and.js +1 -1
  147. package/dist/esm/common/wasm/bitwise_count.js +1 -1
  148. package/dist/esm/common/wasm/bitwise_not.js +1 -1
  149. package/dist/esm/common/wasm/bitwise_or.js +1 -1
  150. package/dist/esm/common/wasm/bitwise_xor.js +1 -1
  151. package/dist/esm/common/wasm/cholesky.js +1 -1
  152. package/dist/esm/common/wasm/clip.js +1 -1
  153. package/dist/esm/common/wasm/config.js +1 -1
  154. package/dist/esm/common/wasm/convolve.js +1 -1
  155. package/dist/esm/common/wasm/copysign.js +1 -1
  156. package/dist/esm/common/wasm/correlate.js +1 -1
  157. package/dist/esm/common/wasm/cos.js +1 -1
  158. package/dist/esm/common/wasm/cosh.js +1 -1
  159. package/dist/esm/common/wasm/cross.js +1 -1
  160. package/dist/esm/common/wasm/detect.js +1 -0
  161. package/dist/esm/common/wasm/diff.js +1 -1
  162. package/dist/esm/common/wasm/divide.js +1 -1
  163. package/dist/esm/common/wasm/divmod.js +1 -0
  164. package/dist/esm/common/wasm/dot.js +1 -1
  165. package/dist/esm/common/wasm/exp.js +1 -1
  166. package/dist/esm/common/wasm/exp2.js +1 -1
  167. package/dist/esm/common/wasm/fft.js +1 -1
  168. package/dist/esm/common/wasm/frexp.js +1 -1
  169. package/dist/esm/common/wasm/gather.js +1 -1
  170. package/dist/esm/common/wasm/gcd.js +1 -1
  171. package/dist/esm/common/wasm/gradient.js +1 -1
  172. package/dist/esm/common/wasm/heaviside.js +1 -1
  173. package/dist/esm/common/wasm/hypot.js +1 -1
  174. package/dist/esm/common/wasm/indices.js +1 -1
  175. package/dist/esm/common/wasm/inner.js +1 -1
  176. package/dist/esm/common/wasm/isfinite.js +1 -0
  177. package/dist/esm/common/wasm/isnan.js +1 -0
  178. package/dist/esm/common/wasm/kron.js +1 -1
  179. package/dist/esm/common/wasm/ldexp.js +1 -1
  180. package/dist/esm/common/wasm/left_shift.js +1 -1
  181. package/dist/esm/common/wasm/lexsort.js +1 -1
  182. package/dist/esm/common/wasm/logaddexp.js +1 -1
  183. package/dist/esm/common/wasm/logical_and.js +1 -1
  184. package/dist/esm/common/wasm/logical_not.js +1 -1
  185. package/dist/esm/common/wasm/logical_or.js +1 -1
  186. package/dist/esm/common/wasm/logical_xor.js +1 -1
  187. package/dist/esm/common/wasm/lu.js +1 -0
  188. package/dist/esm/common/wasm/matmul.js +1 -1
  189. package/dist/esm/common/wasm/matvec.js +1 -1
  190. package/dist/esm/common/wasm/max.js +1 -1
  191. package/dist/esm/common/wasm/min.js +1 -1
  192. package/dist/esm/common/wasm/mul.js +1 -1
  193. package/dist/esm/common/wasm/neg.js +1 -1
  194. package/dist/esm/common/wasm/outer.js +1 -1
  195. package/dist/esm/common/wasm/pad.js +1 -1
  196. package/dist/esm/common/wasm/partition.js +1 -1
  197. package/dist/esm/common/wasm/power.js +1 -1
  198. package/dist/esm/common/wasm/qr.js +1 -1
  199. package/dist/esm/common/wasm/reciprocal.js +1 -1
  200. package/dist/esm/common/wasm/reduce_all.js +1 -1
  201. package/dist/esm/common/wasm/reduce_any.js +1 -1
  202. package/dist/esm/common/wasm/reduce_argmax.js +1 -1
  203. package/dist/esm/common/wasm/reduce_argmin.js +1 -1
  204. package/dist/esm/common/wasm/reduce_count_nz.js +1 -1
  205. package/dist/esm/common/wasm/reduce_max.js +1 -1
  206. package/dist/esm/common/wasm/reduce_mean.js +1 -1
  207. package/dist/esm/common/wasm/reduce_min.js +1 -1
  208. package/dist/esm/common/wasm/reduce_nanmax.js +1 -1
  209. package/dist/esm/common/wasm/reduce_nanmin.js +1 -1
  210. package/dist/esm/common/wasm/reduce_nansum.js +1 -1
  211. package/dist/esm/common/wasm/reduce_prod.js +1 -1
  212. package/dist/esm/common/wasm/reduce_quantile.js +1 -1
  213. package/dist/esm/common/wasm/reduce_std.js +1 -1
  214. package/dist/esm/common/wasm/reduce_sum.js +1 -1
  215. package/dist/esm/common/wasm/reduce_var.js +1 -1
  216. package/dist/esm/common/wasm/repeat.js +1 -1
  217. package/dist/esm/common/wasm/right_shift.js +1 -1
  218. package/dist/esm/common/wasm/rng.js +1 -1
  219. package/dist/esm/common/wasm/roll.js +1 -1
  220. package/dist/esm/common/wasm/runtime.js +1 -1
  221. package/dist/esm/common/wasm/searchsorted.js +1 -1
  222. package/dist/esm/common/wasm/sign.js +1 -1
  223. package/dist/esm/common/wasm/signbit.js +1 -0
  224. package/dist/esm/common/wasm/sin.js +1 -0
  225. package/dist/esm/common/wasm/sinh.js +1 -1
  226. package/dist/esm/common/wasm/sort.js +1 -1
  227. package/dist/esm/common/wasm/sqrt.js +1 -1
  228. package/dist/esm/common/wasm/square.js +1 -1
  229. package/dist/esm/common/wasm/sub.js +1 -1
  230. package/dist/esm/common/wasm/svd.js +1 -1
  231. package/dist/esm/common/wasm/tan.js +1 -1
  232. package/dist/esm/common/wasm/tanh.js +1 -1
  233. package/dist/esm/common/wasm/tile.js +1 -1
  234. package/dist/esm/common/wasm/unravel_index.js +1 -0
  235. package/dist/esm/common/wasm/vdot.js +1 -1
  236. package/dist/esm/common/wasm/vecdot.js +1 -1
  237. package/dist/esm/common/wasm/vecmat.js +1 -1
  238. package/dist/esm/common/wasm/vector_norm.js +1 -0
  239. package/dist/esm/core/advanced.js +1 -1
  240. package/dist/esm/core/creation.js +1 -1
  241. package/dist/esm/core/index.js +1 -1
  242. package/dist/esm/core/linalg.js +1 -1
  243. package/dist/esm/core/polynomial.js +1 -1
  244. package/dist/esm/core/reduction.js +1 -1
  245. package/dist/esm/core/shape-extra.js +1 -1
  246. package/dist/esm/core/statistics.js +1 -1
  247. package/dist/esm/full/index.js +1 -1
  248. package/dist/esm/full/ndarray.js +1 -1
  249. package/dist/esm/index.js +1 -1
  250. package/dist/esm/io/npy/parser.js +1 -1
  251. package/dist/esm/io/zip/reader.js +1 -1
  252. package/dist/numpy-ts.browser.js +6 -6
  253. package/dist/types/common/dtype.d.ts +46 -0
  254. package/dist/types/common/internal/indexing.d.ts +9 -0
  255. package/dist/types/common/ndarray-core.d.ts +20 -0
  256. package/dist/types/common/ops/advanced.d.ts +17 -2
  257. package/dist/types/common/ops/complex.d.ts +19 -1
  258. package/dist/types/common/ops/linalg.d.ts +1 -1
  259. package/dist/types/common/ops/reduction.d.ts +2 -2
  260. package/dist/types/common/ops/sets.d.ts +2 -1
  261. package/dist/types/common/ops/shape.d.ts +2 -2
  262. package/dist/types/common/ops/statistics.d.ts +2 -1
  263. package/dist/types/common/storage.d.ts +54 -2
  264. package/dist/types/common/wasm/all_finite.d.ts +8 -0
  265. package/dist/types/common/wasm/arccos.d.ts +4 -2
  266. package/dist/types/common/wasm/arcsin.d.ts +4 -2
  267. package/dist/types/common/wasm/arctan.d.ts +4 -2
  268. package/dist/types/common/wasm/arctan2.d.ts +17 -0
  269. package/dist/types/common/wasm/argpartition.d.ts +8 -3
  270. package/dist/types/common/wasm/argsort.d.ts +8 -3
  271. package/dist/types/common/wasm/bins/abs.wasm.d.ts +1 -0
  272. package/dist/types/common/wasm/bins/all_finite.wasm.d.ts +4 -0
  273. package/dist/types/common/wasm/bins/alloc.wasm.d.ts +6 -0
  274. package/dist/types/common/wasm/bins/arccos.wasm.d.ts +8 -2
  275. package/dist/types/common/wasm/bins/arcsin.wasm.d.ts +8 -2
  276. package/dist/types/common/wasm/bins/arctan.wasm.d.ts +8 -2
  277. package/dist/types/common/wasm/bins/arctan2.wasm.d.ts +11 -0
  278. package/dist/types/common/wasm/bins/convolve.wasm.d.ts +6 -0
  279. package/dist/types/common/wasm/bins/copysign.wasm.d.ts +2 -0
  280. package/dist/types/common/wasm/bins/correlate.wasm.d.ts +6 -0
  281. package/dist/types/common/wasm/bins/cos.wasm.d.ts +8 -0
  282. package/dist/types/common/wasm/bins/cosh.wasm.d.ts +8 -2
  283. package/dist/types/common/wasm/bins/divmod.wasm.d.ts +11 -0
  284. package/dist/types/common/wasm/bins/dot_float-relaxed.wasm.d.ts +5 -0
  285. package/dist/types/common/wasm/bins/dot_float.wasm.d.ts +5 -0
  286. package/dist/types/common/wasm/bins/dot_int.wasm.d.ts +5 -0
  287. package/dist/types/common/wasm/bins/exp.wasm.d.ts +8 -2
  288. package/dist/types/common/wasm/bins/exp2.wasm.d.ts +8 -2
  289. package/dist/types/common/wasm/bins/fft.wasm.d.ts +6 -0
  290. package/dist/types/common/wasm/bins/frexp.wasm.d.ts +1 -0
  291. package/dist/types/common/wasm/bins/gather.wasm.d.ts +0 -1
  292. package/dist/types/common/wasm/bins/gcd.wasm.d.ts +8 -0
  293. package/dist/types/common/wasm/bins/indices.wasm.d.ts +6 -2
  294. package/dist/types/common/wasm/bins/inner_float-relaxed.wasm.d.ts +5 -0
  295. package/dist/types/common/wasm/bins/inner_float.wasm.d.ts +5 -0
  296. package/dist/types/common/wasm/bins/inner_int.wasm.d.ts +5 -0
  297. package/dist/types/common/wasm/bins/isfinite.wasm.d.ts +4 -0
  298. package/dist/types/common/wasm/bins/isnan.wasm.d.ts +4 -0
  299. package/dist/types/common/wasm/bins/lexsort.wasm.d.ts +4 -4
  300. package/dist/types/common/wasm/bins/logical_and.wasm.d.ts +2 -0
  301. package/dist/types/common/wasm/bins/logical_not.wasm.d.ts +1 -0
  302. package/dist/types/common/wasm/bins/logical_or.wasm.d.ts +2 -0
  303. package/dist/types/common/wasm/bins/logical_xor.wasm.d.ts +2 -0
  304. package/dist/types/common/wasm/bins/lu.wasm.d.ts +7 -0
  305. package/dist/types/common/wasm/bins/matmul_float-relaxed.wasm.d.ts +5 -0
  306. package/dist/types/common/wasm/bins/matmul_float.wasm.d.ts +5 -0
  307. package/dist/types/common/wasm/bins/matmul_int.wasm.d.ts +5 -0
  308. package/dist/types/common/wasm/bins/matvec_float-relaxed.wasm.d.ts +5 -0
  309. package/dist/types/common/wasm/bins/matvec_float.wasm.d.ts +5 -0
  310. package/dist/types/common/wasm/bins/matvec_int.wasm.d.ts +5 -0
  311. package/dist/types/common/wasm/bins/neg.wasm.d.ts +1 -0
  312. package/dist/types/common/wasm/bins/qr.wasm.d.ts +0 -1
  313. package/dist/types/common/wasm/bins/reciprocal.wasm.d.ts +8 -4
  314. package/dist/types/common/wasm/bins/reduce_argmax.wasm.d.ts +8 -0
  315. package/dist/types/common/wasm/bins/reduce_argmin.wasm.d.ts +8 -0
  316. package/dist/types/common/wasm/bins/reduce_max.wasm.d.ts +1 -0
  317. package/dist/types/common/wasm/bins/reduce_min.wasm.d.ts +1 -0
  318. package/dist/types/common/wasm/bins/reduce_prod.wasm.d.ts +2 -0
  319. package/dist/types/common/wasm/bins/reduce_sum.wasm.d.ts +8 -2
  320. package/dist/types/common/wasm/bins/rng.wasm.d.ts +0 -3
  321. package/dist/types/common/wasm/bins/sign.wasm.d.ts +1 -0
  322. package/dist/types/common/wasm/bins/signbit.wasm.d.ts +8 -0
  323. package/dist/types/common/wasm/bins/sin.wasm.d.ts +11 -0
  324. package/dist/types/common/wasm/bins/sinh.wasm.d.ts +8 -2
  325. package/dist/types/common/wasm/bins/sort.wasm.d.ts +4 -4
  326. package/dist/types/common/wasm/bins/sqrt.wasm.d.ts +2 -2
  327. package/dist/types/common/wasm/bins/svd.wasm.d.ts +1 -0
  328. package/dist/types/common/wasm/bins/tan.wasm.d.ts +8 -0
  329. package/dist/types/common/wasm/bins/tanh.wasm.d.ts +8 -2
  330. package/dist/types/common/wasm/bins/unravel_index.wasm.d.ts +4 -0
  331. package/dist/types/common/wasm/bins/vecdot_float-relaxed.wasm.d.ts +5 -0
  332. package/dist/types/common/wasm/bins/vecdot_float.wasm.d.ts +5 -0
  333. package/dist/types/common/wasm/bins/vecdot_int.wasm.d.ts +5 -0
  334. package/dist/types/common/wasm/bins/vecmat_float-relaxed.wasm.d.ts +5 -0
  335. package/dist/types/common/wasm/bins/vecmat_float.wasm.d.ts +5 -0
  336. package/dist/types/common/wasm/bins/vecmat_int.wasm.d.ts +5 -0
  337. package/dist/types/common/wasm/bins/vector_norm-relaxed.wasm.d.ts +3 -0
  338. package/dist/types/common/wasm/bins/vector_norm.wasm.d.ts +3 -0
  339. package/dist/types/common/wasm/config.d.ts +25 -0
  340. package/dist/types/common/wasm/convolve.d.ts +1 -1
  341. package/dist/types/common/wasm/cos.d.ts +4 -2
  342. package/dist/types/common/wasm/cosh.d.ts +4 -2
  343. package/dist/types/common/wasm/detect.d.ts +17 -0
  344. package/dist/types/common/wasm/divide.d.ts +4 -0
  345. package/dist/types/common/wasm/divmod.d.ts +13 -0
  346. package/dist/types/common/wasm/exp.d.ts +4 -2
  347. package/dist/types/common/wasm/exp2.d.ts +4 -2
  348. package/dist/types/common/wasm/fft.d.ts +5 -5
  349. package/dist/types/common/wasm/frexp.d.ts +1 -0
  350. package/dist/types/common/wasm/gather.d.ts +4 -0
  351. package/dist/types/common/wasm/gcd.d.ts +1 -0
  352. package/dist/types/common/wasm/hypot.d.ts +4 -2
  353. package/dist/types/common/wasm/indices.d.ts +2 -1
  354. package/dist/types/common/wasm/isfinite.d.ts +7 -0
  355. package/dist/types/common/wasm/isnan.d.ts +7 -0
  356. package/dist/types/common/wasm/lexsort.d.ts +3 -1
  357. package/dist/types/common/wasm/logaddexp.d.ts +4 -2
  358. package/dist/types/common/wasm/lu.d.ts +27 -0
  359. package/dist/types/common/wasm/partition.d.ts +3 -1
  360. package/dist/types/common/wasm/reduce_argmax.d.ts +5 -0
  361. package/dist/types/common/wasm/reduce_argmin.d.ts +5 -0
  362. package/dist/types/common/wasm/reduce_prod.d.ts +4 -0
  363. package/dist/types/common/wasm/reduce_quantile.d.ts +11 -3
  364. package/dist/types/common/wasm/reduce_sum.d.ts +10 -0
  365. package/dist/types/common/wasm/rng.d.ts +10 -0
  366. package/dist/types/common/wasm/runtime.d.ts +113 -30
  367. package/dist/types/common/wasm/searchsorted.d.ts +3 -1
  368. package/dist/types/common/wasm/signbit.d.ts +14 -0
  369. package/dist/types/common/wasm/sin.d.ts +17 -0
  370. package/dist/types/common/wasm/sinh.d.ts +4 -2
  371. package/dist/types/common/wasm/sort.d.ts +4 -1
  372. package/dist/types/common/wasm/sqrt.d.ts +4 -2
  373. package/dist/types/common/wasm/svd.d.ts +6 -0
  374. package/dist/types/common/wasm/tan.d.ts +4 -2
  375. package/dist/types/common/wasm/tanh.d.ts +4 -2
  376. package/dist/types/common/wasm/unravel_index.d.ts +12 -0
  377. package/dist/types/common/wasm/vector_norm.d.ts +11 -0
  378. package/dist/types/core/advanced.d.ts +10 -2
  379. package/dist/types/core/creation.d.ts +1 -1
  380. package/dist/types/core/index.d.ts +2 -1
  381. package/dist/types/core/linalg.d.ts +1 -1
  382. package/dist/types/core/sets.d.ts +4 -1
  383. package/dist/types/core/statistics.d.ts +2 -1
  384. package/dist/types/full/index.d.ts +18 -5
  385. package/dist/types/index.d.ts +3 -1
  386. package/package.json +36 -43
  387. package/dist/esm/common/wasm/bins/dot.wasm.js +0 -1
  388. package/dist/esm/common/wasm/bins/flip.wasm.js +0 -1
  389. package/dist/esm/common/wasm/bins/inner.wasm.js +0 -1
  390. package/dist/esm/common/wasm/bins/matmul.wasm.js +0 -1
  391. package/dist/esm/common/wasm/bins/matvec.wasm.js +0 -1
  392. package/dist/esm/common/wasm/bins/reduce_quantile.wasm.js +0 -1
  393. package/dist/esm/common/wasm/bins/rot90.wasm.js +0 -1
  394. package/dist/esm/common/wasm/bins/vecdot.wasm.js +0 -1
  395. package/dist/esm/common/wasm/bins/vecmat.wasm.js +0 -1
  396. package/dist/esm/common/wasm/flip.js +0 -1
  397. package/dist/esm/common/wasm/rot90.js +0 -1
  398. package/dist/types/common/wasm/bins/dot.wasm.d.ts +0 -9
  399. package/dist/types/common/wasm/bins/flip.wasm.d.ts +0 -7
  400. package/dist/types/common/wasm/bins/inner.wasm.d.ts +0 -9
  401. package/dist/types/common/wasm/bins/matmul.wasm.d.ts +0 -9
  402. package/dist/types/common/wasm/bins/matvec.wasm.d.ts +0 -9
  403. package/dist/types/common/wasm/bins/reduce_quantile.wasm.d.ts +0 -2
  404. package/dist/types/common/wasm/bins/rot90.wasm.d.ts +0 -7
  405. package/dist/types/common/wasm/bins/vecdot.wasm.d.ts +0 -9
  406. package/dist/types/common/wasm/bins/vecmat.wasm.d.ts +0 -9
  407. package/dist/types/common/wasm/flip.d.ts +0 -13
  408. package/dist/types/common/wasm/rot90.d.ts +0 -14
@@ -3,8 +3,10 @@
3
3
  *
4
4
  * Unary: out[i] = sinh(a[i])
5
5
  * Returns null if WASM can't handle this case.
6
- * Float types use native kernels; integer types are converted to float64
7
- * in JS and run through the f64 SIMD kernel (matches NumPy's promotion).
6
+ * Float types use native kernels; integer types use type-appropriate output:
7
+ * i8/u8 f32 (then downcast to f16 if available)
8
+ * i16/u16 → f32
9
+ * i32/u32/i64/u64 → f64
8
10
  */
9
11
  import { ArrayStorage } from '../storage';
10
12
  /**
@@ -5,11 +5,14 @@
5
5
  * Returns null if WASM can't handle this case.
6
6
  */
7
7
  import { ArrayStorage } from '../storage';
8
- import type { DType, TypedArray } from '../dtype';
8
+ import { type DType, TypedArray } from '../dtype';
9
9
  /**
10
10
  * WASM-accelerated sort of contiguous slices in a typed array buffer.
11
11
  * Uses a single batched WASM call for all slices (eliminates per-slice JS→WASM overhead).
12
12
  * Returns true if WASM handled it.
13
+ *
14
+ * Note: wasmSortSlices operates on pre-existing JS buffers (resultData), so it uses
15
+ * scratch copy-in and copy-out rather than wasmMalloc. The caller owns the buffer.
13
16
  */
14
17
  export declare function wasmSortSlices(resultData: TypedArray, sliceOffsets: Int32Array | number[], axisSize: number, outerSize: number, dtype: DType): boolean;
15
18
  /**
@@ -3,8 +3,10 @@
3
3
  *
4
4
  * Unary: out[i] = sqrt(a[i])
5
5
  * Returns null if WASM can't handle this case.
6
- * Float types output same type; integer types use native WASM kernels
7
- * that convert to f64 internally (no JS conversion loop needed).
6
+ * Float types output same type; integer types use type-appropriate output:
7
+ * i8/u8 f32 (then downcast to f16 if available)
8
+ * i16/u16 → f32
9
+ * i32/u32/i64/u64 → f64
8
10
  */
9
11
  import { ArrayStorage } from '../storage';
10
12
  /**
@@ -15,4 +15,10 @@ export declare function wasmSvd(a: ArrayStorage): {
15
15
  s: ArrayStorage;
16
16
  vt: ArrayStorage;
17
17
  } | null;
18
+ /**
19
+ * WASM-accelerated singular values only (no U, V) via Golub-Kahan.
20
+ * Much faster than full SVD for svdvals/cond/matrix_rank.
21
+ * Returns ArrayStorage with singular values, or null.
22
+ */
23
+ export declare function wasmSvdValues(a: ArrayStorage): ArrayStorage | null;
18
24
  //# sourceMappingURL=svd.d.ts.map
@@ -3,8 +3,10 @@
3
3
  *
4
4
  * Unary: out[i] = tan(a[i])
5
5
  * Returns null if WASM can't handle this case.
6
- * Float types use native kernels; integer types are converted to float64
7
- * in JS and run through the f64 SIMD kernel (matches NumPy's promotion).
6
+ * Float types use native kernels; integer types use type-appropriate output:
7
+ * i8/u8 f32 (then downcast to f16 if available)
8
+ * i16/u16 → f32
9
+ * i32/u32/i64/u64 → f64
8
10
  */
9
11
  import { ArrayStorage } from '../storage';
10
12
  /**
@@ -3,8 +3,10 @@
3
3
  *
4
4
  * Unary: out[i] = tanh(a[i])
5
5
  * Returns null if WASM can't handle this case.
6
- * Float types use native kernels; integer types are converted to float64
7
- * in JS and run through the f64 SIMD kernel (matches NumPy's promotion).
6
+ * Float types use native kernels; integer types use type-appropriate output:
7
+ * i8/u8 f32 (then downcast to f16 if available)
8
+ * i16/u16 → f32
9
+ * i32/u32/i64/u64 → f64
8
10
  */
9
11
  import { ArrayStorage } from '../storage';
10
12
  /**
@@ -0,0 +1,12 @@
1
+ /**
2
+ * WASM-accelerated unravel_index: convert flat indices to multi-dimensional indices.
3
+ * Uses native i32/i64 kernels for integer inputs (no JS conversion overhead),
4
+ * with f64 kernel as fallback. All kernels output f64 directly.
5
+ */
6
+ import { ArrayStorage } from '../storage';
7
+ /**
8
+ * WASM-accelerated unravel_index for flat indices with C-order strides.
9
+ * Returns ndim ArrayStorage arrays (float64), or null if WASM can't handle this case.
10
+ */
11
+ export declare function wasmUnravelIndex(indices: ArrayStorage, shape: number[]): ArrayStorage[] | null;
12
+ //# sourceMappingURL=unravel_index.d.ts.map
@@ -0,0 +1,11 @@
1
+ /**
2
+ * WASM-accelerated L2 vector norm: sqrt(sum(x[i]^2)).
3
+ * Returns null if WASM can't handle.
4
+ */
5
+ import { ArrayStorage } from '../storage';
6
+ /**
7
+ * WASM-accelerated L2 norm (Euclidean norm).
8
+ * Returns sqrt(sum(x^2)) as a number, or null if WASM can't handle.
9
+ */
10
+ export declare function wasmVectorNorm2(a: ArrayStorage): number | null;
11
+ //# sourceMappingURL=vector_norm.d.ts.map
@@ -31,7 +31,7 @@ export declare function select(condlist: NDArrayCore[], choicelist: NDArrayCore[
31
31
  export declare function place(a: NDArrayCore, mask: NDArrayCore, vals: NDArrayCore): void;
32
32
  export declare function putmask(a: NDArrayCore, mask: NDArrayCore, values: NDArrayCore): void;
33
33
  export declare function copyto(dst: NDArrayCore, src: NDArrayCore | number | bigint): void;
34
- export declare function indices(dimensions: number[], dtype?: 'int32' | 'int64' | 'float64'): NDArrayCore;
34
+ export declare function indices(dimensions: number[], dtype?: string): NDArrayCore;
35
35
  export declare function ix_(...args: NDArrayCore[]): NDArrayCore[];
36
36
  export declare function ravel_multi_index(multi_index: NDArrayCore[], dims: number[], mode?: 'raise' | 'wrap' | 'clip'): NDArrayCore;
37
37
  export declare function unravel_index(indices: NDArrayCore | number, shape: number[]): NDArrayCore[];
@@ -42,7 +42,7 @@ export declare function tril_indices(n: number, k?: number, m?: number): NDArray
42
42
  export declare function tril_indices_from(a: NDArrayCore, k?: number): NDArrayCore[];
43
43
  export declare function triu_indices(n: number, k?: number, m?: number): NDArrayCore[];
44
44
  export declare function triu_indices_from(a: NDArrayCore, k?: number): NDArrayCore[];
45
- export declare function mask_indices(n: number, mask_func: (n: number, k: number) => NDArrayCore, k?: number): NDArrayCore[];
45
+ export declare function mask_indices(n: number, mask_func: (m: NDArrayCore, k: number) => NDArrayCore, k?: number): NDArrayCore[];
46
46
  export declare function array_equal(a: NDArrayCore, b: NDArrayCore, equal_nan?: boolean): boolean;
47
47
  export declare function array_equiv(a: NDArrayCore, b: NDArrayCore): boolean;
48
48
  export declare function apply_along_axis(func1d: (arr: NDArrayCore) => NDArrayCore | number, axis: number, arr: NDArrayCore): NDArrayCore;
@@ -51,4 +51,12 @@ export declare function may_share_memory(a: NDArrayCore, b: NDArrayCore): boolea
51
51
  export declare function shares_memory(a: NDArrayCore, b: NDArrayCore): boolean;
52
52
  export declare const geterr: typeof advancedOps.geterr;
53
53
  export declare const seterr: typeof advancedOps.seterr;
54
+ export type NDIndex = number | string | number[] | NDArrayCore;
55
+ /**
56
+ * Vectorized multi-dimensional indexing (dask.vindex semantics).
57
+ *
58
+ * Integer-array subspace dimensions come first in the output, followed by
59
+ * slice dimensions in their original order.
60
+ */
61
+ export declare function vindex(a: NDArrayCore, ...indices: (number | string | number[] | NDArrayCore)[]): NDArrayCore;
54
62
  //# sourceMappingURL=advanced.d.ts.map
@@ -19,7 +19,7 @@ export declare function zeros(shape: number[], dtype?: DType): NDArrayCore;
19
19
  */
20
20
  export declare function ones(shape: number[], dtype?: DType): NDArrayCore;
21
21
  /**
22
- * Create an uninitialized array (zeros in JS)
22
+ * Create an uninitialized array
23
23
  */
24
24
  export declare function empty(shape: number[], dtype?: DType): NDArrayCore;
25
25
  /**
@@ -24,7 +24,8 @@ export { unique, in1d, intersect1d, isin, setdiff1d, setxor1d, union1d, trim_zer
24
24
  export { bincount, digitize, histogram, histogram2d, histogramdd, correlate, convolve, cov, corrcoef, histogram_bin_edges, trapezoid, } from './statistics';
25
25
  export { diff, ediff1d, gradient } from './gradient';
26
26
  export { real, imag, conj, conjugate, angle } from './complex';
27
- export { broadcast_to, broadcast_arrays, broadcast_shapes, take, put, take_along_axis, put_along_axis, choose, compress, select, place, putmask, copyto, indices, ix_, ravel_multi_index, unravel_index, diag_indices, diag_indices_from, fill_diagonal, tril_indices, tril_indices_from, triu_indices, triu_indices_from, mask_indices, array_equal, array_equiv, apply_along_axis, apply_over_axes, may_share_memory, shares_memory, geterr, seterr, iindex, bindex, } from './advanced';
27
+ export { broadcast_to, broadcast_arrays, broadcast_shapes, take, put, take_along_axis, put_along_axis, choose, compress, select, place, putmask, copyto, indices, ix_, ravel_multi_index, unravel_index, diag_indices, diag_indices_from, fill_diagonal, tril_indices, tril_indices_from, triu_indices, triu_indices_from, mask_indices, array_equal, array_equiv, apply_along_axis, apply_over_axes, may_share_memory, shares_memory, geterr, seterr, iindex, bindex, vindex, } from './advanced';
28
+ export type { NDIndex } from './advanced';
28
29
  export { set_printoptions, get_printoptions, printoptions, format_float_positional, format_float_scientific, base_repr, binary_repr, array2string, array_repr, array_str, } from './formatting';
29
30
  export { ndim, shape, size, item, tolist, tobytes, byteswap, view, tofile, fill } from './utility';
30
31
  export { append, delete_, delete_ as delete, insert, pad } from './shape-extra';
@@ -48,7 +48,7 @@ export declare const linalg: {
48
48
  /** Dot product */
49
49
  dot: (a: NDArrayCore, b: NDArrayCore) => NDArrayCore | number | bigint | Complex;
50
50
  /** Matrix determinant (supports batched ND input) */
51
- det: (a: NDArrayCore) => number | NDArrayCore;
51
+ det: (a: NDArrayCore) => number | Complex | NDArrayCore;
52
52
  /** Matrix inverse */
53
53
  inv: (a: NDArrayCore) => NDArrayCore;
54
54
  /** Solve linear system Ax = b */
@@ -12,7 +12,10 @@ export declare function unique(ar: NDArrayCore, returnIndex?: boolean, returnInv
12
12
  inverse?: NDArrayCore;
13
13
  counts?: NDArrayCore;
14
14
  };
15
- /** Test if elements in ar1 are in ar2 (deprecated, use isin) */
15
+ /**
16
+ * Test if elements in ar1 are in ar2.
17
+ * @deprecated Use {@link isin} instead. `in1d` follows NumPy's deprecation and will be removed in a future release.
18
+ */
16
19
  export declare function in1d(ar1: NDArrayCore, ar2: NDArrayCore): NDArrayCore;
17
20
  /** Find intersection of two arrays */
18
21
  export declare function intersect1d(ar1: NDArrayCore, ar2: NDArrayCore): NDArrayCore;
@@ -4,6 +4,7 @@
4
4
  * This module provides statistical operations that can be
5
5
  * imported independently for optimal tree-shaking.
6
6
  */
7
+ import { Complex } from '../common/complex';
7
8
  import { NDArrayCore } from './types';
8
9
  type BinStrategyString = 'auto' | 'fd' | 'doane' | 'scott' | 'stone' | 'rice' | 'sturges' | 'sqrt';
9
10
  /** Count occurrences of values */
@@ -27,6 +28,6 @@ export declare function corrcoef(x: NDArrayCore, y?: NDArrayCore, rowvar?: boole
27
28
  /** Compute histogram bin edges */
28
29
  export declare function histogram_bin_edges(a: NDArrayCore, bins?: number | BinStrategyString, range?: [number, number], weights?: NDArrayCore): NDArrayCore;
29
30
  /** Integrate using trapezoidal rule */
30
- export declare function trapezoid(y: NDArrayCore, x?: NDArrayCore, dx?: number, axis?: number): NDArrayCore | number;
31
+ export declare function trapezoid(y: NDArrayCore, x?: NDArrayCore, dx?: number, axis?: number): NDArrayCore | number | Complex;
31
32
  export {};
32
33
  //# sourceMappingURL=statistics.d.ts.map
@@ -3,6 +3,7 @@ import { NDArrayCore } from '../common/ndarray-core';
3
3
  import { Complex } from '../common/complex';
4
4
  import type { DType, TypedArray } from '../core/types';
5
5
  export type { DType, TypedArray } from '../core/types';
6
+ export type { NDIndex } from '../core/advanced';
6
7
  export { NDArray, meshgrid } from './ndarray';
7
8
  export { NDArrayCore } from '../common/ndarray-core';
8
9
  export { Complex } from '../common/complex';
@@ -25,7 +26,7 @@ export declare function iindex(a: NDArrayCore, indices: NDArrayCore | number[] |
25
26
  */
26
27
  export declare function bindex(a: NDArrayCore, mask: NDArrayCore, axis?: number): NDArray;
27
28
  export declare function select(condlist: NDArrayCore[], choicelist: NDArrayCore[], defaultVal?: number): NDArray;
28
- export declare function indices(dimensions: number[], dtype?: 'int32' | 'int64' | 'float64'): NDArray;
29
+ export declare function indices(dimensions: number[], dtype?: string): NDArray;
29
30
  export declare function ravel_multi_index(multi_index: NDArrayCore[], dims: number[], mode?: 'raise' | 'wrap' | 'clip'): NDArray;
30
31
  export declare function unravel_index(indices: NDArrayCore | number, shape: number[]): NDArray[];
31
32
  export declare function diag_indices(n: number, ndim?: number): NDArray[];
@@ -34,9 +35,16 @@ export declare function tril_indices(n: number, k?: number, m?: number): NDArray
34
35
  export declare function tril_indices_from(a: NDArrayCore, k?: number): NDArray[];
35
36
  export declare function triu_indices(n: number, k?: number, m?: number): NDArray[];
36
37
  export declare function triu_indices_from(a: NDArrayCore, k?: number): NDArray[];
37
- export declare function mask_indices(n: number, mask_func: (n: number, k: number) => NDArrayCore, k?: number): NDArray[];
38
+ export declare function mask_indices(n: number, mask_func: (m: NDArrayCore, k: number) => NDArrayCore, k?: number): NDArray[];
38
39
  export declare function apply_along_axis(func1d: (arr: NDArrayCore) => NDArrayCore | number, axis: number, arr: NDArrayCore): NDArray;
39
40
  export declare function apply_over_axes(func: (arr: NDArrayCore, axis: number) => NDArrayCore, a: NDArrayCore, axes: number[]): NDArray;
41
+ /**
42
+ * Vectorized multi-dimensional indexing (dask.vindex semantics).
43
+ *
44
+ * Integer-array subspace dimensions come first in the output, followed by
45
+ * slice dimensions in their original order.
46
+ */
47
+ export declare function vindex(a: NDArrayCore, ...indices: (number | string | number[] | NDArrayCore)[]): NDArray;
40
48
  /** Add arguments element-wise */
41
49
  export declare function add(x1: NDArrayCore, x2: NDArrayCore | number): NDArray;
42
50
  /** Subtract arguments element-wise */
@@ -170,7 +178,7 @@ export declare function zeros(shape: number[], dtype?: DType): NDArray;
170
178
  */
171
179
  export declare function ones(shape: number[], dtype?: DType): NDArray;
172
180
  /**
173
- * Create an uninitialized array (zeros in JS)
181
+ * Create an uninitialized array
174
182
  */
175
183
  export declare function empty(shape: number[], dtype?: DType): NDArray;
176
184
  /**
@@ -449,7 +457,10 @@ export declare function floor(x: NDArrayCore): NDArray;
449
457
  export declare function rint(x: NDArrayCore): NDArray;
450
458
  /** Truncate toward zero */
451
459
  export declare function trunc(x: NDArrayCore): NDArray;
452
- /** Test if elements in ar1 are in ar2 (deprecated, use isin) */
460
+ /**
461
+ * Test if elements in ar1 are in ar2.
462
+ * @deprecated Use {@link isin} instead. `in1d` follows NumPy's deprecation and will be removed in a future release.
463
+ */
453
464
  export declare function in1d(ar1: NDArrayCore, ar2: NDArrayCore): NDArray;
454
465
  /** Find intersection of two arrays */
455
466
  export declare function intersect1d(ar1: NDArrayCore, ar2: NDArrayCore): NDArray;
@@ -564,7 +575,7 @@ export declare function cov(m: NDArrayCore, y?: NDArrayCore, rowvar?: boolean, b
564
575
  /** Correlation coefficients */
565
576
  export declare function corrcoef(x: NDArrayCore, y?: NDArrayCore, rowvar?: boolean): NDArray;
566
577
  /** Integrate using trapezoidal rule */
567
- export declare function trapezoid(y: NDArrayCore, x?: NDArrayCore, dx?: number, axis?: number): NDArray | number;
578
+ export declare function trapezoid(y: NDArrayCore, x?: NDArrayCore, dx?: number, axis?: number): NDArray | number | Complex;
568
579
  /** Sine of array elements */
569
580
  export declare function sin(x: NDArrayCore): NDArray;
570
581
  /** Cosine of array elements */
@@ -602,4 +613,6 @@ export declare function arccosh(x: NDArrayCore): NDArray;
602
613
  /** Inverse hyperbolic tangent */
603
614
  export declare function arctanh(x: NDArrayCore): NDArray;
604
615
  export { broadcast_arrays, broadcast_shapes, put, put_along_axis, place, putmask, copyto, ix_, fill_diagonal, array_equal, array_equiv, may_share_memory, shares_memory, geterr, seterr, pow, abs, true_divide, conjugate, array2string, array_repr, array_str, set_printoptions, get_printoptions, printoptions, format_float_positional, format_float_scientific, base_repr, binary_repr, gradient, einsum, einsum_path, vdot, linalg, iscomplexobj, isrealobj, isfortran, isscalar, iterable, isdtype, promote_types, allclose, amax, amin, var_, cumulative_sum, cumulative_prod, unique, unique_all, unique_counts, unique_inverse, split, array_split, vsplit, hsplit, dsplit, atleast_1d, atleast_2d, atleast_3d, row_stack, where, searchsorted, count_nonzero, histogram, histogram2d, histogramdd, histogram_bin_edges, asin, acos, atan, atan2, asinh, acosh, atanh, can_cast, common_type, result_type, min_scalar_type, issubdtype, typename, mintypecode, ndim, shape, size, item, tolist, tobytes, byteswap, view, tofile, fill, } from '../core';
616
+ export { wasmConfig } from '../common/wasm/config';
617
+ export { configureWasm } from '../common/wasm/runtime';
605
618
  //# sourceMappingURL=index.d.ts.map
@@ -44,7 +44,8 @@ export { bincount, digitize, histogram, histogram2d, histogramdd, correlate, con
44
44
  export { diff, ediff1d, gradient } from './full';
45
45
  export { real, imag, conj, angle } from './full';
46
46
  export { conj as conjugate } from './full';
47
- export { broadcast_to, broadcast_arrays, broadcast_shapes, take, put, iindex, bindex, copyto, choose, array_equal, array_equiv, take_along_axis, put_along_axis, putmask, compress, select, place, fill_diagonal, diag_indices, diag_indices_from, tril_indices, tril_indices_from, triu_indices, triu_indices_from, mask_indices, indices, ix_, ravel_multi_index, unravel_index, fill, item, tolist, tobytes, byteswap, view, tofile, } from './full';
47
+ export { broadcast_to, broadcast_arrays, broadcast_shapes, take, put, iindex, bindex, vindex, copyto, choose, array_equal, array_equiv, take_along_axis, put_along_axis, putmask, compress, select, place, fill_diagonal, diag_indices, diag_indices_from, tril_indices, tril_indices_from, triu_indices, triu_indices_from, mask_indices, indices, ix_, ravel_multi_index, unravel_index, fill, item, tolist, tobytes, byteswap, view, tofile, } from './full';
48
+ export type { NDIndex } from './full';
48
49
  export { apply_along_axis, apply_over_axes, may_share_memory, shares_memory, ndim, shape, size, geterr, seterr, } from './full';
49
50
  export { array2string, array_repr, array_str, base_repr, binary_repr, format_float_positional, format_float_scientific, get_printoptions, set_printoptions, printoptions, } from './full';
50
51
  export { can_cast, common_type, result_type, min_scalar_type, issubdtype, typename, mintypecode, } from './full';
@@ -55,6 +56,7 @@ export type { NpzSerializeOptions } from './io/npz/serializer';
55
56
  export type { ParseTxtOptions } from './io/txt/parser';
56
57
  export type { SerializeTxtOptions } from './io/txt/serializer';
57
58
  export { wasmConfig } from './common/wasm/config';
59
+ export { configureWasm } from './common/wasm/runtime';
58
60
  export { serializeNpy } from './io/npy/serializer';
59
61
  export { serializeNpz, serializeNpzSync } from './io/npz/serializer';
60
62
  export { serializeTxt } from './io/txt/serializer';
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "numpy-ts",
3
- "version": "1.2.0",
4
- "description": "Complete NumPy implementation for TypeScript and JavaScript (94% API coverage)",
3
+ "version": "1.3.0",
4
+ "description": "Fast, Complete NumPy for TypeScript & JavaScript",
5
5
  "main": "dist/esm/index.js",
6
6
  "browser": "dist/numpy-ts.browser.js",
7
7
  "module": "dist/esm/index.js",
@@ -34,58 +34,51 @@
34
34
  }
35
35
  },
36
36
  "scripts": {
37
- "generate": "tsx scripts/generate-full.ts && prettier --write src/full/index.ts src/full/ndarray.ts",
38
37
  "build": "npm run build:clean && npm run generate && npm run build:wasm && tsx build.ts && npm run build:types",
39
38
  "build:clean": "rm -rf dist",
40
39
  "build:types": "tsc --emitDeclarationOnly --outDir dist/types",
41
- "test": "npm run build:test && vitest run --project=unit --project=validation --project=runtime-io --project=bundle-esm --project=tree-shaking",
40
+ "build:wasm": "tsx scripts/build-wasm.ts",
41
+ "build:wasm:safe": "tsx scripts/build-wasm.ts --safe",
42
+ "build:wasm:small": "tsx scripts/build-wasm.ts --small",
43
+ "build:test": "npm run build:clean && npm run generate && npm run build:wasm:safe && tsx build.ts --skip-wasm && npm run build:types",
44
+ "generate": "tsx scripts/generate-full.ts && prettier --write src/full/index.ts src/full/ndarray.ts",
45
+ "test": "npm run build:test && vitest run --project=unit --project=validation --project=runtime-io --project=bundle-esm --project=wasm-memory --project=tree-shaking --project=leaks",
42
46
  "test:unit": "vitest run --project=unit",
43
47
  "test:validation": "vitest run --project=validation",
44
48
  "test:io": "vitest run --project=runtime-io",
45
- "test:bundles": "npm run build:test && vitest run --project=bundle-esm --project=bundle-browser",
46
- "test:browser": "npm run build:test && vitest run --project=browser-unit --project=bundle-browser",
49
+ "test:wasm-memory": "vitest run --project=wasm-memory",
50
+ "test:leaks": "vitest run --project=leaks",
51
+ "test:leaks:large": "LEAK_SIZE_SCALE=large vitest run --project=leaks",
52
+ "test:dtypes": "vitest run --project=validation tests/validation/dtype-sweep/",
53
+ "test:dtypes:js": "FORCE_BACKEND=js vitest run --project=validation tests/validation/dtype-sweep/",
54
+ "test:dtypes:wasm": "FORCE_BACKEND=wasm vitest run --project=validation tests/validation/dtype-sweep/",
55
+ "test:tree-shaking": "vitest run --project=tree-shaking",
56
+ "test:browser": "npm run build:clean && npm run generate && tsx build.ts --skip-wasm && npm run build:types && vitest run --project=browser-unit --project=bundle-browser --project=bundle-esm",
47
57
  "test:bun": "npm run build:test && bun vitest run --project=unit --project=validation --project=runtime-io",
48
58
  "test:deno": "npm run build:test && deno run -A node_modules/.bin/vitest run --project=unit --project=validation --project=runtime-io",
49
- "test:tree-shaking": "vitest run --project=tree-shaking",
59
+ "test:coverage": "vitest run --project=unit --project=validation --project=runtime-io --project=wasm-memory --coverage",
50
60
  "test:ci": "npm run lint && npm run typecheck && npm run test",
51
- "test:coverage": "vitest run --project=unit --project=validation --project=runtime-io --coverage",
52
- "test:coverage:view": "open coverage/index.html || xdg-open coverage/index.html",
53
- "lint": "npm run lint:ts && npm run lint:zig",
54
- "lint:ts": "eslint --cache src tests",
55
- "lint:ts:fix": "eslint --cache src tests --fix",
56
- "lint:zig": "zig fmt --check src/common/wasm/zig",
57
- "lint:fix": "npm run lint:ts:fix && npm run format:zig",
58
- "format": "npm run format:ts && npm run format:zig",
59
- "format:ts": "prettier --write \"src/**/*.ts\" \"tests/**/*.ts\"",
60
- "format:zig": "zig fmt src/common/wasm/zig",
61
- "format:check": "npm run format:check:ts && npm run lint:zig",
62
- "format:check:ts": "prettier --check \"src/**/*.ts\" \"tests/**/*.ts\"",
61
+ "lint": "eslint --cache src tests && zig fmt --check src/common/wasm/zig",
62
+ "lint:fix": "eslint --cache src tests --fix && zig fmt src/common/wasm/zig",
63
+ "format": "prettier --write \"src/**/*.ts\" \"tests/**/*.ts\" \"scripts/**/*.ts\" \"benchmarks/src/**/*.ts\" && zig fmt src/common/wasm/zig",
63
64
  "typecheck": "tsc --noEmit",
65
+ "report:api-coverage": "python3 scripts/compare-api-coverage.py",
66
+ "report:docs-api-coverage": "python3 scripts/compare-docs-api-coverage.py",
67
+ "report:dtype-coverage": "npx tsx scripts/dtype-coverage-report.ts",
68
+ "report:zig-coverage": "npx tsx scripts/zig-fn-coverage.ts",
69
+ "report:zig-dead-code": "npx tsx scripts/zig-dead-code.ts",
64
70
  "bench:build": "esbuild benchmarks/src/index.ts --bundle --platform=node --format=cjs --external:pyodide --outfile=benchmarks/dist/bench.cjs && esbuild benchmarks/src/runtime-runner.ts --bundle --platform=neutral --format=esm --external:node:fs --external:node:fs/promises --outfile=benchmarks/dist/runtime-runner.mjs",
65
- "bench": "npm run bench:build && node benchmarks/dist/bench.cjs",
66
- "bench:quick": "npm run bench:build && node benchmarks/dist/bench.cjs --quick",
67
- "bench:single": "npm run bench:build && node benchmarks/dist/bench.cjs --single-thread",
68
- "bench:quick:single": "npm run bench:build && node benchmarks/dist/bench.cjs --quick --single-thread",
69
- "bench:full": "npm run bench:build && node benchmarks/dist/bench.cjs --full",
70
- "bench:full:node": "npm run bench:build && node benchmarks/dist/bench.cjs --full --runtime node",
71
- "bench:full:single": "npm run bench:build && node benchmarks/dist/bench.cjs --full --single-thread",
72
- "bench:category": "npm run bench:build && node benchmarks/dist/bench.cjs --category",
73
- "bench:node": "npm run bench:build && node benchmarks/dist/bench.cjs --runtime node",
74
- "bench:deno": "npm run bench:build && node benchmarks/dist/bench.cjs --runtime deno",
75
- "bench:bun": "npm run bench:build && node benchmarks/dist/bench.cjs --runtime bun",
76
- "bench:pyodide": "npm run bench:build && node benchmarks/dist/bench.cjs --pyodide",
77
- "bench:full:pyodide": "npm run bench:build && node benchmarks/dist/bench.cjs --full --pyodide --runtime node",
78
- "bench:compare": "tsx benchmarks/scripts/compare.ts latest",
79
- "bench:full:compare": "tsx benchmarks/scripts/compare.ts latest-full",
80
- "bench:view": "open benchmarks/results/plots/latest.html || xdg-open benchmarks/results/plots/latest.html",
81
- "bench:full:view": "open benchmarks/results/plots/latest-full.html || xdg-open benchmarks/results/plots/latest-full.html",
82
- "bench:docs": "python3 scripts/generate-bench-docs.py benchmarks/results/latest-full.json",
83
- "compare-api": "python3 scripts/compare-api-coverage.py",
84
- "compare-docs-api": "python3 scripts/compare-docs-api-coverage.py",
85
- "wasm:size": "tsx scripts/wasm-size.ts",
86
- "build:wasm": "tsx scripts/build-wasm.ts",
87
- "build:wasm:safe": "tsx scripts/build-wasm.ts --safe",
88
- "build:test": "npm run build:clean && npm run generate && npm run build:wasm:safe && tsx build.ts --skip-wasm && npm run build:types"
71
+ "bench": "npm run bench:build && node benchmarks/dist/bench.cjs --full",
72
+ "bench:node": "npm run bench:build && node benchmarks/dist/bench.cjs --full --runtime node",
73
+ "bench:pyodide": "npm run bench:build && node benchmarks/dist/bench.cjs --full --pyodide --runtime node",
74
+ "bench:all": "npm run bench:node && npm run bench:node -- --size small && npm run bench:node -- --size large && npm run bench:pyodide && npm run bench",
75
+ "bench:deno": "npm run bench:build && node benchmarks/dist/bench.cjs --full --runtime deno",
76
+ "bench:bun": "npm run bench:build && node benchmarks/dist/bench.cjs --full --runtime bun",
77
+ "bench:compare": "tsx benchmarks/scripts/compare.ts latest-full",
78
+ "bench:regenerate": "tsx benchmarks/scripts/regenerate-charts.ts",
79
+ "bench:view": "open benchmarks/results/plots/latest-full.html || xdg-open benchmarks/results/plots/latest-full.html",
80
+ "bench:docs": "python3 scripts/generate-bench-docs.py && python3 scripts/generate-overview-charts.py",
81
+ "wasm:size": "tsx scripts/wasm-size.ts"
89
82
  },
90
83
  "keywords": [
91
84
  "numpy",
@@ -1 +0,0 @@
1
- import{getSharedMemory as i,setHeapBase as o}from"../runtime.js";const D="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";let B=null;function C(){if(B)return B;const I=atob(D),g=new Uint8Array(I.length);for(let A=0;A<I.length;A++)g[A]=I.charCodeAt(A);B=new WebAssembly.Instance(new WebAssembly.Module(g),{env:{memory:i()}});const Q=B.exports.__heap_base;return Q&&typeof Q.value=="number"&&o(Q.value),B}function h(I,g,Q,A){C().exports.dot_f64(I,g,Q,A)}function w(I,g,Q,A){C().exports.dot_f32(I,g,Q,A)}function G(I,g,Q,A){C().exports.dot_c128(I,g,Q,A)}function s(I,g,Q,A){C().exports.dot_c64(I,g,Q,A)}function e(I,g,Q,A){C().exports.dot_i64(I,g,Q,A)}function r(I,g,Q,A){C().exports.dot_i32(I,g,Q,A)}function F(I,g,Q,A){C().exports.dot_i16(I,g,Q,A)}function R(I,g,Q,A){C().exports.dot_i8(I,g,Q,A)}export{G as dot_c128,s as dot_c64,w as dot_f32,h as dot_f64,F as dot_i16,r as dot_i32,e as dot_i64,R as dot_i8};
@@ -1 +0,0 @@
1
- import{getSharedMemory as C,setHeapBase as i}from"../runtime.js";const o="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";let E=null;function g(){if(E)return E;const A=atob(o),Q=new Uint8Array(A.length);for(let I=0;I<A.length;I++)Q[I]=A.charCodeAt(I);E=new WebAssembly.Instance(new WebAssembly.Module(Q),{env:{memory:C()}});const B=E.exports.__heap_base;return B&&typeof B.value=="number"&&i(B.value),E}function G(A,Q,B){g().exports.flip_f64(A,Q,B)}function s(A,Q,B){g().exports.flip_f32(A,Q,B)}function e(A,Q,B){g().exports.flip_i64(A,Q,B)}function D(A,Q,B){g().exports.flip_i32(A,Q,B)}function n(A,Q,B){g().exports.flip_i16(A,Q,B)}function r(A,Q,B){g().exports.flip_i8(A,Q,B)}export{s as flip_f32,G as flip_f64,n as flip_i16,D as flip_i32,e as flip_i64,r as flip_i8};
@@ -1 +0,0 @@
1
- import{getSharedMemory as h,setHeapBase as R}from"../runtime.js";const o="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";let i=null;function D(){if(i)return i;const I=atob(o),Q=new Uint8Array(I.length);for(let A=0;A<I.length;A++)Q[A]=I.charCodeAt(A);i=new WebAssembly.Instance(new WebAssembly.Module(Q),{env:{memory:h()}});const g=i.exports.__heap_base;return g&&typeof g.value=="number"&&R(g.value),i}function w(I,Q,g,A,E,B){D().exports.inner_f64(I,Q,g,A,E,B)}function S(I,Q,g,A,E,B){D().exports.inner_f32(I,Q,g,A,E,B)}function H(I,Q,g,A,E,B,C){D().exports.inner_c64(I,Q,g,A,E,B,C)}function q(I,Q,g,A,E,B,C){D().exports.inner_c128(I,Q,g,A,E,B,C)}function N(I,Q,g,A,E,B){D().exports.inner_i64(I,Q,g,A,E,B)}function M(I,Q,g,A,E,B){D().exports.inner_i32(I,Q,g,A,E,B)}function F(I,Q,g,A,E,B){D().exports.inner_i16(I,Q,g,A,E,B)}function s(I,Q,g,A,E,B){D().exports.inner_i8(I,Q,g,A,E,B)}export{q as inner_c128,H as inner_c64,S as inner_f32,w as inner_f64,F as inner_i16,M as inner_i32,N as inner_i64,s as inner_i8};
@@ -1 +0,0 @@
1
- import{getSharedMemory as S,setHeapBase as o}from"../runtime.js";const h="AGFzbQEAAAABFAJgBn9/f39/fwBgB39/f39/f38AAg8BA2VudgZtZW1vcnkCABADCQgAAAEBAAAAAAYJAX8BQYCAwAALB2kICm1hdG11bF9mNjQAAAptYXRtdWxfZjMyAAEKbWF0bXVsX2M2NAACC21hdG11bF9jMTI4AAMKbWF0bXVsX2k2NAAECm1hdG11bF9pMzIABQptYXRtdWxfaTE2AAYJbWF0bXVsX2k4AAcKxasBCLkSBTV/CHsBfwV7BXwCQCADIARsQQN0IgZFDQAgAkEAIAb8CwALAkAgA0UNACAERQ0AIAVFDQAgBEEDdCEHIARBCXQhCCAFQQV0IQkgBUEJdCEKIAAgBUEDdCILaiEMIAAgBUEEdGohDSAAIAVBGGxqIQ5BACEPIAAhEEHAACERA0AgD0HAAGoiEiADIBIgA0kiExshFCADIBEgAyARSRshFSAPQQRyIRYgASEXQcAAIRhBACEZA0AgGUHAAGoiGiAEIBogBEkiGxshHCAEIBggBCAYSRshHSAZQQRyIR5BACEfIAAhICABISEgFyEiIBAhIyAMISQgDSElIA4hJgNAIB9BwABqIicgBSAnIAVJIigbISkgIyEqICQhKyAlISwgJiEtIBYhBiAPIS4CQCAWIBRLDQADQCAuIS8gBiEuIBkhMAJAIB4gHEsNACAvIARsITEgAiAvQQNqIARsQQN0aiEyIAIgL0ECaiAEbEEDdGohMyACIC9BAWogBGxBA3RqITQgIiE1IB4hBiAZITADQCAwITYgBiEwIDUhBiAqITcgKyE4ICwhOSAtITr9DAAAAAAAAAAAAAAAAAAAAAAiOyE8IDshPSA7IT4gOyE/IDshQCA7IUEgOyFCIB8hQwNAIEEgBv0AAwAiRCA6/QoDACJF/fIB/fABIUEgPyBEIDn9CgMAIkb98gH98AEhPyA9IEQgOP0KAwAiR/3yAf3wASE9IDsgRCA3/QoDACJI/fIB/fABITsgQiAGQRBq/QADACJEIEX98gH98AEhQiBAIEQgRv3yAf3wASFAID4gRCBH/fIB/fABIT4gPCBEIEj98gH98AEhPCAGIAdqIQYgN0EIaiE3IDhBCGohOCA5QQhqITkgOkEIaiE6IENBAWoiQyApSQ0ACyACIDYgMWpBA3RqIgYgOyAG/QADAP3wAf0LAwAgBkEQaiIGIDwgBv0AAwD98AH9CwMAIDQgNkEDdCIGaiI3ID0gN/0AAwD98AH9CwMAIDdBEGoiNyA+IDf9AAMA/fAB/QsDACAzIAZqIjcgPyA3/QADAP3wAf0LAwAgN0EQaiI3IEAgN/0AAwD98AH9CwMAIDIgBmoiBiBBIAb9AAMA/fAB/QsDACAGQRBqIgYgQiAG/QADAP3wAf0LAwAgNUEgaiE1IDBBBGoiBiAcTQ0ACwsCQCAwQQJqIgYgHEsNACAhIDBBA3RqITkgAiAvIARsQQN0aiFDIAIgL0EDaiAEbEEDdGohNSACIC9BAmogBGxBA3RqITYgAiAvQQFqIARsQQN0aiExA0AgMCE6IAYhMEEAIQYgOSE3/QwAAAAAAAAAAAAAAAAAAAAAIjshPCA7IT0gOyE+IB8hOANAID4gN/0AAwAiRCAtIAZq/QoDAP3yAf3wASE+ID0gRCAsIAZq/QoDAP3yAf3wASE9IDwgRCArIAZq/QoDAP3yAf3wASE8IDsgRCAqIAZq/QoDAP3yAf3wASE7IDcgB2ohNyAGQQhqIQYgOEEBaiI4IClJDQALIEMgOkEDdCIGaiI3IDsgN/0AAwD98AH9CwMAIDEgBmoiNyA8IDf9AAMA/fAB/QsDACA2IAZqIjcgPSA3/QADAP3wAf0LAwAgNSAGaiIGID4gBv0AAwD98AH9CwMAIDlBEGohOSAwQQJqIgYgHE0NAAsLAkAgMCAcTw0AICEgMEEDdGohOSACIC8gBGxBA3RqITogAiAvQQNqIARsQQN0aiE2IAIgL0ECaiAEbEEDdGohNSACIC9BAWogBGxBA3RqIUMDQEQAAAAAAAAAACFJQQAhBiA5ITdEAAAAAAAAAAAhSkQAAAAAAAAAACFLRAAAAAAAAAAAIUwgHyE4A0AgTCA3KwMAIk0gLSAGaisDAKKgIUwgSyBNICwgBmorAwCioCFLIEogTSArIAZqKwMAoqAhSiBJIE0gKiAGaisDAKKgIUkgNyAHaiE3IAZBCGohBiA4QQFqIjggKUkNAAsgOiAwQQN0IgZqIjcgSSA3KwMAoDkDACBDIAZqIjcgSiA3KwMAoDkDACA1IAZqIjcgSyA3KwMAoDkDACA2IAZqIgYgTCAGKwMAoDkDACA5QQhqITkgMEEBaiIwIB1HDQALCyAqIAlqISogKyAJaiErICwgCWohLCAtIAlqIS0gLkEEaiIGIBRNDQALCwJAIC4gFE8NACAgIAsgLmxqISoDQCAuIARsIS0gGSE6AkAgHiAcSw0AIAIgLUEDdGohLCAiITkgHiEGIBkhKwNAIAYhOiAqITcgOSEG/QwAAAAAAAAAAAAAAAAAAAAAIkQhOyAfITgDQCBEIAb9AAMAIDf9CgMAIjz98gH98AEhRCA7IDwgBkEQav0AAwD98gH98AEhOyA3QQhqITcgBiAHaiEGIDhBAWoiOCApSQ0ACyAsICtBA3RqIgYgRCAG/QADAP3wAf0LAwAgBkEQaiIGIDsgBv0AAwD98AH9CwMAIDlBIGohOSA6ISsgOkEEaiIGIBxNDQALCwJAAkAgOkECaiIGIBxNDQAgOiE5DAELICEgOkEDdGohKyACIC1BA3RqISwDQCAGITn9DAAAAAAAAAAAAAAAAAAAAAAhRCAqIQYgKyE3IB8hOANAIEQgN/0AAwAgBv0KAwD98gH98AEhRCAGQQhqIQYgNyAHaiE3IDhBAWoiOCApSQ0ACyAsIDpBA3RqIgYgRCAG/QADAP3wAf0LAwAgK0EQaiErIDkhOiA5QQJqIgYgHE0NAAsLAkAgOSAcTw0AICEgOUEDdGohOiACIC1BA3RqISsDQEQAAAAAAAAAACFNICohBiA6ITcgHyE4A0AgTSAGKwMAIDcrAwCioCFNIAZBCGohBiA3IAdqITcgOEEBaiI4IClJDQALICsgOUEDdGoiBiBNIAYrAwCgOQMAIDpBCGohOiA5QQFqIjkgHUcNAAsLICogC2ohKiAuQQFqIi4gFUcNAAsLICBBgARqISAgISAIaiEhICIgCGohIiAjQYAEaiEjICRBgARqISQgJUGABGohJSAmQYAEaiEmICchHyAoDQALIBdBgARqIRcgGEHAAGohGCAaIRkgGw0ACyAQIApqIRAgDCAKaiEMIA0gCmohDSAOIApqIQ4gEUHAAGohESASIQ8gEw0ACwsLpRIFNX8IewF/BXsFfQJAIAMgBGxBAnQiBkUNACACQQAgBvwLAAsCQCADRQ0AIARFDQAgBUUNACAEQQJ0IQcgBEEJdCEIIAVBBHQhCSAFQQl0IQogACAFQQJ0IgtqIQwgACAFQQN0aiENIAAgBUEMbGohDkEAIQ8gACEQQYABIREDQCAPQYABaiISIAMgEiADSSITGyEUIAMgESADIBFJGyEVIA9BBHIhFiABIRdBgAEhGEEAIRkDQCAZQYABaiIaIAQgGiAESSIbGyEcIAQgGCAEIBhJGyEdIBlBCHIhHkEAIR8gACEgIAEhISAXISIgECEjIAwhJCANISUgDiEmA0AgH0GAAWoiJyAFICcgBUkiKBshKSAjISogJCErICUhLCAmIS0gFiEGIA8hLgJAIBYgFEsNAANAIC4hLyAGIS4gGSEwAkAgHiAcSw0AIAIgLyAEbEECdGohMSACIC9BA2ogBGxBAnRqITIgAiAvQQJqIARsQQJ0aiEzIAIgL0EBaiAEbEECdGohNCAiITUgHiEGIBkhMANAIDAhNiAGITAgNSEGICohNyArITggLCE5IC0hOv0MAAAAAAAAAAAAAAAAAAAAACI7ITwgOyE9IDshPiA7IT8gOyFAIDshQSA7IUIgHyFDA0AgQSAG/QACACJEIDr9CQIAIkX95gH95AEhQSA/IEQgOf0JAgAiRv3mAf3kASE/ID0gRCA4/QkCACJH/eYB/eQBIT0gOyBEIDf9CQIAIkj95gH95AEhOyBCIAZBEGr9AAIAIkQgRf3mAf3kASFCIEAgRCBG/eYB/eQBIUAgPiBEIEf95gH95AEhPiA8IEQgSP3mAf3kASE8IAYgB2ohBiA3QQRqITcgOEEEaiE4IDlBBGohOSA6QQRqITogQ0EBaiJDIClJDQALIDEgNkECdCIGaiI3IDsgN/0AAgD95AH9CwIAIDdBEGoiNyA8IDf9AAIA/eQB/QsCACA0IAZqIjcgPSA3/QACAP3kAf0LAgAgN0EQaiI3ID4gN/0AAgD95AH9CwIAIDMgBmoiNyA/IDf9AAIA/eQB/QsCACA3QRBqIjcgQCA3/QACAP3kAf0LAgAgMiAGaiIGIEEgBv0AAgD95AH9CwIAIAZBEGoiBiBCIAb9AAIA/eQB/QsCACA1QSBqITUgMEEIaiIGIBxNDQALCwJAIDBBBGoiBiAcSw0AICEgMEECdGohOSACIC8gBGxBAnRqIUMgAiAvQQNqIARsQQJ0aiE1IAIgL0ECaiAEbEECdGohNiACIC9BAWogBGxBAnRqITEDQCAwITogBiEwQQAhBiA5ITf9DAAAAAAAAAAAAAAAAAAAAAAiOyE8IDshPSA7IT4gHyE4A0AgPiA3/QACACJEIC0gBmr9CQIA/eYB/eQBIT4gPSBEICwgBmr9CQIA/eYB/eQBIT0gPCBEICsgBmr9CQIA/eYB/eQBITwgOyBEICogBmr9CQIA/eYB/eQBITsgNyAHaiE3IAZBBGohBiA4QQFqIjggKUkNAAsgQyA6QQJ0IgZqIjcgOyA3/QACAP3kAf0LAgAgMSAGaiI3IDwgN/0AAgD95AH9CwIAIDYgBmoiNyA9IDf9AAIA/eQB/QsCACA1IAZqIgYgPiAG/QACAP3kAf0LAgAgOUEQaiE5IDBBBGoiBiAcTQ0ACwsCQCAwIBxPDQAgISAwQQJ0aiE5IAIgLyAEbEECdGohOiACIC9BA2ogBGxBAnRqITYgAiAvQQJqIARsQQJ0aiE1IAIgL0EBaiAEbEECdGohQwNAQwAAAAAhSUEAIQYgOSE3QwAAAAAhSkMAAAAAIUtDAAAAACFMIB8hOANAIEwgNyoCACJNIC0gBmoqAgCUkiFMIEsgTSAsIAZqKgIAlJIhSyBKIE0gKyAGaioCAJSSIUogSSBNICogBmoqAgCUkiFJIDcgB2ohNyAGQQRqIQYgOEEBaiI4IClJDQALIDogMEECdCIGaiI3IEkgNyoCAJI4AgAgQyAGaiI3IEogNyoCAJI4AgAgNSAGaiI3IEsgNyoCAJI4AgAgNiAGaiIGIEwgBioCAJI4AgAgOUEEaiE5IDBBAWoiMCAdRw0ACwsgKiAJaiEqICsgCWohKyAsIAlqISwgLSAJaiEtIC5BBGoiBiAUTQ0ACwsCQCAuIBRPDQAgICALIC5saiEqA0AgLiAEbCEtIBkhOgJAIB4gHEsNACACIC1BAnRqISwgIiE5IB4hBiAZISsDQCAGITogKiE3IDkhBv0MAAAAAAAAAAAAAAAAAAAAACJEITsgHyE4A0AgRCAG/QACACA3/QkCACI8/eYB/eQBIUQgOyA8IAZBEGr9AAIA/eYB/eQBITsgN0EEaiE3IAYgB2ohBiA4QQFqIjggKUkNAAsgLCArQQJ0aiIGIEQgBv0AAgD95AH9CwIAIAZBEGoiBiA7IAb9AAIA/eQB/QsCACA5QSBqITkgOiErIDpBCGoiBiAcTQ0ACwsCQAJAIDpBBGoiBiAcTQ0AIDohOQwBCyAhIDpBAnRqISsgAiAtQQJ0aiEsA0AgBiE5/QwAAAAAAAAAAAAAAAAAAAAAIUQgKiEGICshNyAfITgDQCBEIDf9AAIAIAb9CQIA/eYB/eQBIUQgBkEEaiEGIDcgB2ohNyA4QQFqIjggKUkNAAsgLCA6QQJ0aiIGIEQgBv0AAgD95AH9CwIAICtBEGohKyA5ITogOUEEaiIGIBxNDQALCwJAIDkgHE8NACAhIDlBAnRqITogAiAtQQJ0aiErA0BDAAAAACFNICohBiA6ITcgHyE4A0AgTSAGKgIAIDcqAgCUkiFNIAZBBGohBiA3IAdqITcgOEEBaiI4IClJDQALICsgOUECdGoiBiBNIAYqAgCSOAIAIDpBBGohOiA5QQFqIjkgHUcNAAsLICogC2ohKiAuQQFqIi4gFUcNAAsLICBBgARqISAgISAIaiEhICIgCGohIiAjQYAEaiEjICRBgARqISQgJUGABGohJSAmQYAEaiEmICchHyAoDQALIBdBgARqIRcgGEGAAWohGCAaIRkgGw0ACyAQIApqIRAgDCAKaiEMIA0gCmohDSAOIApqIQ4gEUGAAWohESASIQ8gEw0ACwsLtBsFCH8CewV/BHsCfSAGIAUgA2wiB0ECdCIIaiEJIAUgBGwhCkEAIQsCQCAHQQRJDQBBACEMIAAhDSAGIQ4DQCAOIA39AAIAIg8gDUEQav0AAgAiEP0NAAECAwgJCgsQERITGBkaG/0LAgAgDiAIaiAPIBD9DQQFBgcMDQ4PFBUWFxwdHh/9CwIAIA1BIGohDSAOQRBqIQ4gDEEIaiERIAxBBGoiCyEMIBEgB00NAAsLIAkgCGohCCAKQQJ0IRICQCAHIAtNDQACQCAHIAtrIhNBJEkNACAGIAtBAnRqIg0gBiAHQQN0Ig5qIhFJIAYgByALakECdGoiFCAJSXENACANIAAgDmoiDEF8aiIVSSAAIAtBA3RqIg4gCUlxDQAgDSAMSSAOQQRqIg0gCUlxDQAgFCAVSSAOIBFJcQ0AIBQgDEkgDSARSXENACAHQQJ0IQwgBiALQQJ0aiENIAv9Ef0MAAAAAAEAAAACAAAAAwAAAP1QIRAgCyATIAdBA3EiEWsiDmohCwNAIA0gACAQQQH9qwEiD/0bA0ECdGogACAP/RsCQQJ0aiAAIA/9GwFBAnRqIAAgD/0bAEECdGr9XAIA/VYCAAH9VgIAAv1WAgAD/QsCACANIAxqIAAgD/0MAQAAAAEAAAABAAAAAQAAAP1QIg/9GwNBAnRqIAAgD/0bAkECdGogACAP/RsBQQJ0aiAAIA/9GwBBAnRq/VwCAP1WAgAB/VYCAAL9VgIAA/0LAgAgDUEQaiENIBD9DAQAAAAEAAAABAAAAAQAAAD9rgEhECAOQXxqIg4NAAsgEUUNAQsgC0EBaiENAkAgByALa0EBcUUNACAGIAtBAnQiDmogACALQQN0aiIMKgIAOAIAIAkgDmogDEEEaioCADgCACANIQsLIAcgDUYNACAHIAtrIQwgB0ECdCERIAYgC0ECdGohDiAAIAtBA3RqIQ0DQCAOIA0qAgA4AgAgDiARaiIAIA1BBGoqAgA4AgAgDkEEaiANQQhqKgIAOAIAIABBBGogDUEMaioCADgCACAOQQhqIQ4gDUEQaiENIAxBfmoiDA0ACwsgCCASaiEUQQAhCwJAIApBBEkNAEEAIQ4gASENIBQhDCAIIQADQCAAIA39AAIAIg8gDUEQav0AAgAiEP0NAAECAwgJCgsQERITGBkaG/0LAgAgDCAPIBD9DQQFBgcMDQ4PFBUWFxwdHh/9CwIAIA1BIGohDSAMQRBqIQwgAEEQaiEAIA5BCGohESAOQQRqIgshDiARIApNDQALCyAUIBJqIQ0CQCAKIAtNDQACQCAKIAtrIhNBLEkNACAGIAdBA3RqIAtBAnQiDGoiDiAGIAQgA2ogBWxBA3RqIhFJIAYgBSADQQN0IARBAnRqbGogDGoiEiAUSXENACAOIAEgCkEDdGoiAEF8aiIVSSABIAtBA3RqIgwgFElxDQAgDiAASSAMQQRqIg4gFElxDQAgEiAVSSAMIBFJcQ0AIBIgAEkgDiARSXENACAGIAdBA3QgC0ECdCIMamohDiAGIAUgA0EDdCAEQQJ0amwgDGpqIQwgC/0R/QwAAAAAAQAAAAIAAAADAAAA/VAhECALIBMgCkEDcSIRayIAaiELA0AgDiABIBBBAf2rASIP/RsDQQJ0aiABIA/9GwJBAnRqIAEgD/0bAUECdGogASAP/RsAQQJ0av1cAgD9VgIAAf1WAgAC/VYCAAP9CwIAIAwgASAP/QwBAAAAAQAAAAEAAAABAAAA/VAiD/0bA0ECdGogASAP/RsCQQJ0aiABIA/9GwFBAnRqIAEgD/0bAEECdGr9XAIA/VYCAAH9VgIAAv1WAgAD/QsCACAMQRBqIQwgDkEQaiEOIBD9DAQAAAAEAAAABAAAAAQAAAD9rgEhECAAQXxqIgANAAsgEUUNAQsgC0EBaiEOAkAgCiALa0EBcUUNACAIIAtBAnQiDGogASALQQN0aiIAKgIAOAIAIBQgDGogAEEEaioCADgCACAOIQsLIAogDkYNACAGIAdBA3QgC0ECdCIOamohDCAGIAUgA0EDdCAEQQJ0amwgDmpqIQAgCiALayERIAEgC0EDdGohDgNAIAwgDioCADgCACAAIA5BBGoqAgA4AgAgDEEEaiAOQQhqKgIAOAIAIABBBGogDkEMaioCADgCACAMQQhqIQwgAEEIaiEAIA5BEGohDiARQX5qIhENAAsLIAQgA2whESAGIAggDSADIAQgBRCBgICAAEEAIQECQCAHQQRJDQAgB0ECdCELQQAhDCAGIQ4DQCAOIA79AAIAIA4gC2r9AAIA/eQB/QsCACAOQRBqIQ4gDEEIaiEAIAxBBGoiASEMIAAgB00NAAsLIBFBAnQhEwJAIAcgAU0NAAJAIAcgAWsiDEEMSQ0AAkAgBiABQQJ0aiIOIAhPDQAgBiAHIAFqQQJ0aiAJSQ0BCyAHQQJ0IQAgASAMIAdBA3EiC2siDGohAQNAIA4gDv0AAgAgDiAAav0AAgD95AH9CwIAIA5BEGohDiAMQXxqIgwNAAsgC0UNAQsgASESAkAgByABa0EDcSIMRQ0AIAEgDGohEiAGIAFBAnRqIQ4gB0ECdCEAA0AgDiAOKgIAIA4gAGoqAgCSOAIAIA5BBGohDiAMQX9qIgwNAAsLIAEgB2tBfEsNACAHIBJrIQAgB0ECdCELIAYgEkECdGohDgNAIA4gDioCACAOIAtqIgwqAgCSOAIAIA5BBGoiASABKgIAIAxBBGoqAgCSOAIAIA5BCGoiASABKgIAIAxBCGoqAgCSOAIAIA5BDGoiASABKgIAIAxBDGoqAgCSOAIAIA5BEGohDiAAQXxqIgANAAsLIA0gE2ohEkEAIQsCQCAKQQRJDQBBACEMIBQhACAIIQ4DQCAOIA79AAIAIAD9AAIA/eQB/QsCACAAQRBqIQAgDkEQaiEOIAxBCGohASAMQQRqIgshDCABIApNDQALCyASIBNqIRMCQCAKIAtNDQACQCAKIAtrIgBBFEkNACAFIANBA3QgBEECdGpsIQECQCAGIAdBA3QiDmogC0ECdCIMaiAGIAQgA2ogBWxBA3RqTw0AIAYgAWogDGogFEkNAQsgBiAOIAxqaiEOIAYgASAMamohDCALIAAgCkEDcSIBayIAaiELA0AgDiAO/QACACAM/QACAP3kAf0LAgAgDEEQaiEMIA5BEGohDiAAQXxqIgANAAsgAUUNAQsgCyEBAkAgCiALa0EDcSIARQ0AIAYgB0EDdCALQQJ0IgxqaiEOIAYgBSADQQN0IARBAnRqbCAMamohDCALIABqIQEDQCAOIA4qAgAgDCoCAJI4AgAgDkEEaiEOIAxBBGohDCAAQX9qIgANAAsLIAsgCmtBfEsNACAGIAdBA3QgAUECdCIMamohDiAGIAUgA0EDdCAEQQJ0amwgDGpqIQwgCiABayEAA0AgDiAOKgIAIAwqAgCSOAIAIA5BBGoiByAHKgIAIAxBBGoqAgCSOAIAIA5BCGoiByAHKgIAIAxBCGoqAgCSOAIAIA5BDGoiByAHKgIAIAxBDGoqAgCSOAIAIAxBEGohDCAOQRBqIQ4gAEF8aiIADQALCyAJIBQgEiADIAQgBRCBgICAACAGIAggEyADIAQgBRCBgICAAEEAIQcCQCARQQRJDQAgEUEDdCEKIBFBAnQhAUEAIQwgAiEOA0AgDkEQaiAN/QACACIPIA0gAWr9AAAAIhD95QEiFiANIApq/QAAACAP/eUBIBD95QEiD/0NCAkKCxgZGhsMDQ4PHB0eH/0LAgAgDiAWIA/9DQABAgMQERITBAUGBxQVFhf9CwIAIA5BIGohDiANQRBqIQ0gDEEIaiEAIAxBBGoiByEMIAAgEU0NAAsLAkAgESAHTQ0AAkAgESAHayIKQRRJDQAgAiAHQQN0aiINIBNJIAYgBCADaiAFbEEDdGoiACAHQQJ0aiIOIBFBAnRqIAIgEUEDdCIBaiIMSXENACANIBJJIA4gDElxDQAgDSAAIBFBDGxqSSAOIAFqIAxJcQ0AIAYgBSAEQQN0IANBA3RqbCAHQQJ0amohDSARQQN0IQwgEUECdCEAIAf9Ef0MAAAAAAEAAAACAAAAAwAAAP1QIRcgByAKIBFBA3EiAWsiDmohBwNAIAIgF0EB/asBIg/9GwBBAnRqIA39AAIAIhggDSAAav0AAgAiGf3lASIQ/R8AOAIAIAIgD/0MAQAAAAEAAAABAAAAAQAAAP1QIhb9GwBBAnRqIA0gDGr9AAIAIBj95QEgGf3lASIY/R8AOAIAIAIgD/0bAUECdGogEP0fATgCACACIBb9GwFBAnRqIBj9HwE4AgAgAiAP/RsCQQJ0aiAQ/R8COAIAIAIgFv0bAkECdGogGP0fAjgCACACIA/9GwNBAnRqIBD9HwM4AgAgAiAW/RsDQQJ0aiAY/R8DOAIAIA1BEGohDSAX/QwEAAAABAAAAAQAAAAEAAAA/a4BIRcgDkF8aiIODQALIAFFDQELIAYgBSAEQQN0IANBA3RqbCAHQQJ0amohDSARIAdrIQwgAiAHQQN0aiEOIBFBAnQhACARQQN0IQcDQCAOIA0qAgAiGiANIABqKgIAIhuTOAIAIA5BBGogDSAHaioCACAakyAbkzgCACAOQQhqIQ4gDUEEaiENIAxBf2oiDA0ACwsL+RMFCH8CewR/BHsCfCAGIAUgA2wiB0EDdCIIaiEJIAUgBGwhCkEAIQsCQCAHQQJJDQBBACEMIAAhDSAGIQ4DQCAOIA39AAMAIg8gDUEQav0AAwAiEP0NAAECAwQFBgcQERITFBUWF/0LAwAgDiAIaiAPIBD9DQgJCgsMDQ4PGBkaGxwdHh/9CwMAIA1BIGohDSAOQRBqIQ4gDEEEaiERIAxBAmoiCyEMIBEgB00NAAsLIAkgCGohEiAKQQN0IRMCQCALIAdPDQAgC0EBciENAkAgB0EBcUUNACAGIAtBA3QiDmogACALQQR0aiIMKwMAOQMAIAkgDmogDEEIaisDADkDACANIQsLIAcgDUYNACAHIAtrIQwgB0EDdCEIIAYgC0EDdGohDiAAIAtBBHRqIQ0DQCAOIA0rAwA5AwAgDiAIaiIRIA1BCGorAwA5AwAgDkEIaiANQRBqKwMAOQMAIBFBCGogDUEYaisDADkDACAOQRBqIQ4gDUEgaiENIAxBfmoiDA0ACwsgEiATaiEAQQAhCAJAIApBAkkNAEEAIQ4gASENIAAhDCASIREDQCARIA39AAMAIg8gDUEQav0AAwAiEP0NAAECAwQFBgcQERITFBUWF/0LAwAgDCAPIBD9DQgJCgsMDQ4PGBkaGxwdHh/9CwMAIA1BIGohDSAMQRBqIQwgEUEQaiERIA5BBGohCyAOQQJqIgghDiALIApNDQALCyAAIBNqIQ0CQCAIIApPDQAgCEEBciEOAkAgCkEBcUUNACASIAhBA3QiDGogASAIQQR0aiIRKwMAOQMAIAAgDGogEUEIaisDADkDACAOIQgLIAogDkYNACAGIAdBBHQgCEEDdCIOamohDCAGIAUgA0EEdCAEQQN0amwgDmpqIREgCiAIayELIAEgCEEEdGohDgNAIAwgDisDADkDACARIA5BCGorAwA5AwAgDEEIaiAOQRBqKwMAOQMAIBFBCGogDkEYaisDADkDACAMQRBqIQwgEUEQaiERIA5BIGohDiALQX5qIgsNAAsLIAQgA2whCCAGIBIgDSADIAQgBRCAgICAAEEAIQsCQCAHQQJJDQAgB0EDdCETQQAhDCAGIQ4DQCAOIA79AAMAIA4gE2r9AAMA/fAB/QsDACAOQRBqIQ4gDEEEaiERIAxBAmoiCyEMIBEgB00NAAsLIAhBA3QhFAJAIAcgC00NAAJAIAcgC2siDEEKSQ0AAkAgBiALQQN0aiIOIBJPDQAgBiAHIAtqQQN0aiAJSQ0BCyAHQQN0IREgCyAMIAdBAXEiE2siDGohCwNAIA4gDv0AAwAgDiARav0AAwD98AH9CwMAIA5BEGohDiAMQX5qIgwNAAsgE0UNAQsgCyEBAkAgByALa0EDcSIMRQ0AIAsgDGohASAGIAtBA3RqIQ4gB0EDdCERA0AgDiAOKwMAIA4gEWorAwCgOQMAIA5BCGohDiAMQX9qIgwNAAsLIAsgB2tBfEsNACAHIAFrIREgB0EDdCETIAYgAUEDdGohDgNAIA4gDisDACAOIBNqIgwrAwCgOQMAIA5BCGoiCyALKwMAIAxBCGorAwCgOQMAIA5BEGoiCyALKwMAIAxBEGorAwCgOQMAIA5BGGoiCyALKwMAIAxBGGorAwCgOQMAIA5BIGohDiARQXxqIhENAAsLIA0gFGohAUEAIRMCQCAKQQJJDQBBACEMIAAhESASIQ4DQCAOIA79AAMAIBH9AAMA/fAB/QsDACARQRBqIREgDkEQaiEOIAxBBGohCyAMQQJqIhMhDCALIApNDQALCyABIBRqIRQCQCAKIBNNDQACQCAKIBNrIhFBFEkNACAFIANBBHQgBEEDdGpsIQsCQCAGIAdBBHQiDmogE0EDdCIMaiAGIAQgA2ogBWxBBHRqTw0AIAYgC2ogDGogAEkNAQsgBiAOIAxqaiEOIAYgCyAMamohDCATIBEgCkEBcSILayIRaiETA0AgDiAO/QADACAM/QADAP3wAf0LAwAgDEEQaiEMIA5BEGohDiARQX5qIhENAAsgC0UNAQsgEyELAkAgCiATa0EDcSIRRQ0AIAYgB0EEdCATQQN0IgxqaiEOIAYgBSADQQR0IARBA3RqbCAMamohDCATIBFqIQsDQCAOIA4rAwAgDCsDAKA5AwAgDkEIaiEOIAxBCGohDCARQX9qIhENAAsLIBMgCmtBfEsNACAGIAdBBHQgC0EDdCIMamohDiAGIAUgA0EEdCAEQQN0amwgDGpqIQwgCiALayERA0AgDiAOKwMAIAwrAwCgOQMAIA5BCGoiByAHKwMAIAxBCGorAwCgOQMAIA5BEGoiByAHKwMAIAxBEGorAwCgOQMAIA5BGGoiByAHKwMAIAxBGGorAwCgOQMAIAxBIGohDCAOQSBqIQ4gEUF8aiIRDQALCyAJIAAgASADIAQgBRCAgICAACAGIBIgFCADIAQgBRCAgICAAEEAIQcCQCAIQQJJDQAgCEEEdCEKIAhBA3QhC0EAIQwgAiEOA0AgDkEQaiAN/QADACIPIA0gC2r9AAAAIhD98QEiFSANIApq/QAAACAP/fEBIBD98QEiD/0NCAkKCwwNDg8YGRobHB0eH/0LAwAgDiAVIA/9DQABAgMEBQYHEBESExQVFhf9CwMAIA5BIGohDiANQRBqIQ0gDEEEaiERIAxBAmoiByEMIBEgCE0NAAsLAkAgCCAHTQ0AAkAgCCAHayIKQRRJDQAgAiAHQQR0aiINIBRJIAYgBCADaiAFbEEEdGoiESAHQQN0aiIOIAhBA3RqIAIgCEEEdCILaiIMSXENACANIAFJIA4gDElxDQAgDSARIAhBGGxqSSAOIAtqIAxJcQ0AIAYgBSAEQQR0IANBBHRqbCAHQQN0amohDSAIQQR0IQwgCEEDdCERIAf9Ef0MAAAAAAEAAAAAAAAAAAAAAP1QIQ8gByAKIAhBAXEiC2siDmohBwNAIAIgD0EB/asBIhD9GwBBA3RqIA39AAMAIhUgDSARav0AAwAiFv3xASIX/SEAOQMAIAIgEP0MAQAAAAEAAAABAAAAAQAAAP1QIhj9GwBBA3RqIA0gDGr9AAMAIBX98QEgFv3xASIV/SEAOQMAIAIgEP0bAUEDdGogF/0hATkDACACIBj9GwFBA3RqIBX9IQE5AwAgDUEQaiENIA/9DAIAAAACAAAAAgAAAAIAAAD9rgEhDyAOQX5qIg4NAAsgC0UNAQsgBiAFIARBBHQgA0EEdGpsIAdBA3RqaiENIAggB2shDCACIAdBBHRqIQ4gCEEDdCERIAhBBHQhBwNAIA4gDSsDACIZIA0gEWorAwAiGqE5AwAgDkEIaiANIAdqKwMAIBmhIBqhOQMAIA5BEGohDiANQQhqIQ0gDEF/aiIMDQALCwv2FwVCfwh7AX8FewV+AkAgAyAEbEEDdCIGRQ0AIAJBACAG/AsACwJAIANFDQAgBEUNACAFRQ0AIARBA3QhByAEQQl0IQggBUEFdCEJIAVBCXQhCiAAIAVBA3QiC2ohDCAAIAVBBHRqIQ0gACAFQRhsaiEOQQAhDyAAIRBBwAAhEQNAIA9BwABqIhIgAyASIANJIhMbIRQgAyARIAMgEUkbIRUgD0EEciEWIAEhF0HAACEYQQAhGQNAQcAAIRogGUHAAGoiGyAEIBsgBEkiHBshHSAEIBggBCAYSRshHiAZQQRyIR9BACEgQQEhISAAISIgASEjIAEhJCAXISUgECEmIAwhJyANISggDiEpQQAhKgNAIAUgKkHAAGoiKyAFICtJGyIsICpBAXIiBiAsIAZLGyItICBBBnRrIS4gBSAaIAUgGkkbIgYgISAGICFLG0F+cSEvIA8hMAJAIBYgFEsNACAuQQFLIARBAUZxITEgKiAuIC1BAXEiMmtqITMgECE0IAwhNSANITYgDiE3ICYhOCAnITkgKCE6ICkhOyAWIQYgDyEwA0AgMCE8IAYhMCAZIT0CQCAfIB1LDQAgPCAEbCE+IAIgPEEDaiAEbEEDdGohPyACIDxBAmogBGxBA3RqIUAgAiA8QQFqIARsQQN0aiFBICUhQiAfIQYgGSE9A0AgPSFDIAYhPSBCIQYgOCFEIDkhRSA6IUYgOyFH/QwAAAAAAAAAAAAAAAAAAAAAIkghSSBIIUogSCFLIEghTCBIIU0gSCFOIEghTyAqIVADQCBH/QoDACJRIAb9AAMAIlL91QEgTv3OASFOIEb9CgMAIlMgUv3VASBM/c4BIUwgRf0KAwAiVCBS/dUBIEr9zgEhSiBE/QoDACJVIFL91QEgSP3OASFIIFEgBkEQav0AAwAiUv3VASBP/c4BIU8gUyBS/dUBIE39zgEhTSBUIFL91QEgS/3OASFLIFUgUv3VASBJ/c4BIUkgBiAHaiEGIERBCGohRCBFQQhqIUUgRkEIaiFGIEdBCGohRyBQQQFqIlAgLEkNAAsgAiBDID5qQQN0aiIGIAb9AAMAIEj9zgH9CwMAIAZBEGoiBiAG/QADACBJ/c4B/QsDACBBIENBA3QiBmoiRCBE/QADACBK/c4B/QsDACBEQRBqIkQgRP0AAwAgS/3OAf0LAwAgQCAGaiJEIET9AAMAIEz9zgH9CwMAIERBEGoiRCBE/QADACBN/c4B/QsDACA/IAZqIgYgBv0AAwAgTv3OAf0LAwAgBkEQaiIGIAb9AAMAIE/9zgH9CwMAIEJBIGohQiA9QQRqIgYgHU0NAAsLAkAgPUECaiIGIB1LDQAgJCA9QQN0aiFGIAIgPCAEbEEDdGohUCACIDxBA2ogBGxBA3RqIUIgAiA8QQJqIARsQQN0aiFDIAIgPEEBaiAEbEEDdGohPgNAID0hRyAGIT1BACEGIEYhRP0MAAAAAAAAAAAAAAAAAAAAACJIIUkgSCFKIEghSyAqIUUDQCA7IAZq/QoDACBE/QADACJS/dUBIEv9zgEhSyA6IAZq/QoDACBS/dUBIEr9zgEhSiA5IAZq/QoDACBS/dUBIEn9zgEhSSA4IAZq/QoDACBS/dUBIEj9zgEhSCBEIAdqIUQgBkEIaiEGIEVBAWoiRSAsSQ0ACyBQIEdBA3QiBmoiRCBE/QADACBI/c4B/QsDACA+IAZqIkQgRP0AAwAgSf3OAf0LAwAgQyAGaiJEIET9AAMAIEr9zgH9CwMAIEIgBmoiBiAG/QADACBL/c4B/QsDACBGQRBqIUYgPUECaiIGIB1NDQALCwJAID0gHU8NACABID1BA3QiBmohQyAjIAZqIUIgAiA8IARsQQN0aiE+IAIgPEEDaiAEbEEDdGohQSACIDxBAmogBGxBA3RqIUAgAiA8QQFqIARsQQN0aiE/A0BCACFWQgAhV0IAIVhCACFZICohUAJAAkAgMUUNAEEAIQYgLyFE/QwAAAAAAAAAAAAAAAAAAAAAIkghSSBIIUogSCFLA0AgOyAGav0AAwAgQiAGav0AAwAiUv3VASBL/c4BIUsgOiAGav0AAwAgUv3VASBK/c4BIUogOSAGav0AAwAgUv3VASBJ/c4BIUkgOCAGav0AAwAgUv3VASBI/c4BIUggBkEQaiEGICogREF+aiJERw0ACyBLIEsgUv0NCAkKCwwNDg8AAQIDBAUGB/3OAf0dACFZIEogSiBS/Q0ICQoLDA0ODwABAgMEBQYH/c4B/R0AIVggSSBJIFL9DQgJCgsMDQ4PAAECAwQFBgf9zgH9HQAhVyBIIEggUv0NCAkKCwwNDg8AAQIDBAUGB/3OAf0dACFWIDMhUCAyRQ0BCyBDIAcgUGxqIQYgNCBQQQN0IkdqIUQgNSBHaiFFIDYgR2ohRiA3IEdqIUcDQCBHKQMAIAYpAwAiWn4gWXwhWSBGKQMAIFp+IFh8IVggRSkDACBafiBXfCFXIEQpAwAgWn4gVnwhViAGIAdqIQYgREEIaiFEIEVBCGohRSBGQQhqIUYgR0EIaiFHIFBBAWoiUCAsSQ0ACwsgPiA9QQN0IgZqIkQgRCkDACBWfDcDACA/IAZqIkQgRCkDACBXfDcDACBAIAZqIkQgRCkDACBYfDcDACBBIAZqIgYgBikDACBZfDcDACBDQQhqIUMgQkEIaiFCID1BAWoiPSAeRw0ACwsgNCAJaiE0IDUgCWohNSA2IAlqITYgNyAJaiE3IDggCWohOCA5IAlqITkgOiAJaiE6IDsgCWohOyAwQQRqIgYgFE0NAAsLAkAgMCAUTw0AIC5BAUsgBEEBRnEhOiAAIAsgMGwiBmohOyAiIAZqIUYgKiAuIC1BAXEiQmtqIT0DQCAwIARsIUMgGSFHAkAgHyAdSw0AIAIgQ0EDdGohOSAlIVAgHyEGIBkhOANAIAYhRyBGIUQgUCEG/QwAAAAAAAAAAAAAAAAAAAAAIlIhSCAqIUUDQCBE/QoDACJJIAb9AAMA/dUBIFL9zgEhUiBJIAZBEGr9AAMA/dUBIEj9zgEhSCBEQQhqIUQgBiAHaiEGIEVBAWoiRSAsSQ0ACyA5IDhBA3RqIgYgBv0AAwAgUv3OAf0LAwAgBkEQaiIGIAb9AAMAIEj9zgH9CwMAIFBBIGohUCBHITggR0EEaiIGIB1NDQALCwJAAkAgR0ECaiIGIB1NDQAgRyFQDAELICQgR0EDdGohOCACIENBA3RqITkDQCAGIVD9DAAAAAAAAAAAAAAAAAAAAAAhUiBGIQYgOCFEICohRQNAIAb9CgMAIET9AAMA/dUBIFL9zgEhUiAGQQhqIQYgRCAHaiFEIEVBAWoiRSAsSQ0ACyA5IEdBA3RqIgYgBv0AAwAgUv3OAf0LAwAgOEEQaiE4IFAhRyBQQQJqIgYgHU0NAAsLAkAgUCAdTw0AIAEgUEEDdCIGaiE4ICMgBmohRyACIENBA3RqITkDQEIAIVogKiFFAkACQCA6RQ0A/QwAAAAAAAAAAAAAAAAAAAAAIVJBACEGIC8hRANAIEcgBmr9AAMAIEYgBmr9AAMA/dUBIFL9zgEhUiAGQRBqIQYgKiBEQX5qIkRHDQALIFIgUiBS/Q0ICQoLDA0ODwABAgMEBQYH/c4B/R0AIVogPSFFIEJFDQELIDsgRUEDdGohBiA4IAcgRWxqIUQDQCBEKQMAIAYpAwB+IFp8IVogBkEIaiEGIEQgB2ohRCBFQQFqIkUgLEkNAAsLIDkgUEEDdGoiBiAGKQMAIFp8NwMAIDhBCGohOCBHQQhqIUcgUEEBaiJQIB5HDQALCyA7IAtqITsgRiALaiFGIDBBAWoiMCAVRw0ACwsgIkGABGohIiAjQYAEaiEjICFBwABqISEgGkHAAGohGiAkIAhqISQgJSAIaiElICZBgARqISYgJ0GABGohJyAoQYAEaiEoIClBgARqISkgIEEBaiEgICshKiArIAVJDQALIBdBgARqIRcgGEHAAGohGCAbIRkgHA0ACyAQIApqIRAgDCAKaiEMIA0gCmohDSAOIApqIQ4gEUHAAGohESASIQ8gEw0ACwsL/RgFQn8IewF/BXsEfwJAIAMgBGxBAnQiBkUNACACQQAgBvwLAAsCQCADRQ0AIARFDQAgBUUNACAEQQJ0IQcgBEEJdCEIIAVBBHQhCSAFQQl0IQogACAFQQJ0IgtqIQwgACAFQQN0aiENIAAgBUEMbGohDkEAIQ8gACEQQYABIREDQCAPQYABaiISIAMgEiADSSITGyEUIAMgESADIBFJGyEVIA9BBHIhFiABIRdBgAEhGEEAIRkDQEGAASEaIBlBgAFqIhsgBCAbIARJIhwbIR0gBCAYIAQgGEkbIR4gGUEIciEfQQAhIEEBISEgACEiIAEhIyABISQgFyElIBAhJiAMIScgDSEoIA4hKUEAISoDQCAFICpBgAFqIisgBSArSRsiLCAqQQFyIgYgLCAGSxsiLSAgQQd0ayEuIAUgGiAFIBpJGyIGICEgBiAhSxtBfHEhLyAPITACQCAWIBRLDQAgLkEDSyAEQQFGcSExICogLiAtQQNxIjJraiEzIBAhNCAMITUgDSE2IA4hNyAmITggJyE5ICghOiApITsgFiEGIA8hMANAIDAhPCAGITAgGSE9AkAgHyAdSw0AIAIgPCAEbEECdGohPiACIDxBA2ogBGxBAnRqIT8gAiA8QQJqIARsQQJ0aiFAIAIgPEEBaiAEbEECdGohQSAlIUIgHyEGIBkhPQNAID0hQyAGIT0gQiEGIDghRCA5IUUgOiFGIDshR/0MAAAAAAAAAAAAAAAAAAAAACJIIUkgSCFKIEghSyBIIUwgSCFNIEghTiBIIU8gKiFQA0AgR/0JAgAiUSAG/QACACJS/bUBIE79rgEhTiBG/QkCACJTIFL9tQEgTP2uASFMIEX9CQIAIlQgUv21ASBK/a4BIUogRP0JAgAiVSBS/bUBIEj9rgEhSCBRIAZBEGr9AAIAIlL9tQEgT/2uASFPIFMgUv21ASBN/a4BIU0gVCBS/bUBIEv9rgEhSyBVIFL9tQEgSf2uASFJIAYgB2ohBiBEQQRqIUQgRUEEaiFFIEZBBGohRiBHQQRqIUcgUEEBaiJQICxJDQALID4gQ0ECdCIGaiJEIET9AAIAIEj9rgH9CwIAIERBEGoiRCBE/QACACBJ/a4B/QsCACBBIAZqIkQgRP0AAgAgSv2uAf0LAgAgREEQaiJEIET9AAIAIEv9rgH9CwIAIEAgBmoiRCBE/QACACBM/a4B/QsCACBEQRBqIkQgRP0AAgAgTf2uAf0LAgAgPyAGaiIGIAb9AAIAIE79rgH9CwIAIAZBEGoiBiAG/QACACBP/a4B/QsCACBCQSBqIUIgPUEIaiIGIB1NDQALCwJAID1BBGoiBiAdSw0AICQgPUECdGohRiACIDwgBGxBAnRqIVAgAiA8QQNqIARsQQJ0aiFCIAIgPEECaiAEbEECdGohQyACIDxBAWogBGxBAnRqIT4DQCA9IUcgBiE9QQAhBiBGIUT9DAAAAAAAAAAAAAAAAAAAAAAiSCFJIEghSiBIIUsgKiFFA0AgOyAGav0JAgAgRP0AAgAiUv21ASBL/a4BIUsgOiAGav0JAgAgUv21ASBK/a4BIUogOSAGav0JAgAgUv21ASBJ/a4BIUkgOCAGav0JAgAgUv21ASBI/a4BIUggRCAHaiFEIAZBBGohBiBFQQFqIkUgLEkNAAsgUCBHQQJ0IgZqIkQgRP0AAgAgSP2uAf0LAgAgPiAGaiJEIET9AAIAIEn9rgH9CwIAIEMgBmoiRCBE/QACACBK/a4B/QsCACBCIAZqIgYgBv0AAgAgS/2uAf0LAgAgRkEQaiFGID1BBGoiBiAdTQ0ACwsCQCA9IB1PDQAgASA9QQJ0IgZqIVYgIyAGaiFBIAIgPCAEbEECdGohVyACIDxBA2ogBGxBAnRqIVggAiA8QQJqIARsQQJ0aiFZIAIgPEEBaiAEbEECdGohPANAQQAhQ0EAIT5BACE/QQAhQCAqIUICQAJAIDFFDQBBACEGIC8hRP0MAAAAAAAAAAAAAAAAAAAAACJIIUkgSCFKIEghSwNAIDsgBmr9AAIAIEEgBmr9AAIAIlL9tQEgS/2uASFLIDogBmr9AAIAIFL9tQEgSv2uASFKIDkgBmr9AAIAIFL9tQEgSf2uASFJIDggBmr9AAIAIFL9tQEgSP2uASFIIAZBEGohBiAqIERBfGoiREcNAAsgSyBLIFL9DQgJCgsMDQ4PAAECAwABAgP9rgEiUiBSIFL9DQQFBgcAAQIDAAECAwABAgP9rgH9GwAhQCBKIEogUv0NCAkKCwwNDg8AAQIDAAECA/2uASJSIFIgUv0NBAUGBwABAgMAAQIDAAECA/2uAf0bACE/IEkgSSBS/Q0ICQoLDA0ODwABAgMAAQID/a4BIlIgUiBS/Q0EBQYHAAECAwABAgMAAQID/a4B/RsAIT4gSCBIIFL9DQgJCgsMDQ4PAAECAwABAgP9rgEiUiBSIFL9DQQFBgcAAQIDAAECAwABAgP9rgH9GwAhQyAzIUIgMkUNAQsgViAHIEJsaiFEIDQgQkECdCIGaiFFIDUgBmohRiA2IAZqIUcgNyAGaiFQA0AgUCgCACBEKAIAIgZsIEBqIUAgRygCACAGbCA/aiE/IEYoAgAgBmwgPmohPiBFKAIAIAZsIENqIUMgRCAHaiFEIEVBBGohRSBGQQRqIUYgR0EEaiFHIFBBBGohUCBCQQFqIkIgLEkNAAsLIFcgPUECdCIGaiJEIEQoAgAgQ2o2AgAgPCAGaiJEIEQoAgAgPmo2AgAgWSAGaiJEIEQoAgAgP2o2AgAgWCAGaiIGIAYoAgAgQGo2AgAgVkEEaiFWIEFBBGohQSA9QQFqIj0gHkcNAAsLIDQgCWohNCA1IAlqITUgNiAJaiE2IDcgCWohNyA4IAlqITggOSAJaiE5IDogCWohOiA7IAlqITsgMEEEaiIGIBRNDQALCwJAIDAgFE8NACAuQQNLIARBAUZxIT8gACALIDBsIgZqIUAgIiAGaiFHICogLiAtQQNxIjhraiE5A0AgMCAEbCE+IBkhRgJAIB8gHUsNACACID5BAnRqIUMgJSFQIB8hBiAZIUIDQCAGIUYgRyFEIFAhBv0MAAAAAAAAAAAAAAAAAAAAACJSIUggKiFFA0AgRP0JAgAiSSAG/QACAP21ASBS/a4BIVIgSSAGQRBq/QACAP21ASBI/a4BIUggREEEaiFEIAYgB2ohBiBFQQFqIkUgLEkNAAsgQyBCQQJ0aiIGIAb9AAIAIFL9rgH9CwIAIAZBEGoiBiAG/QACACBI/a4B/QsCACBQQSBqIVAgRiFCIEZBCGoiBiAdTQ0ACwsCQAJAIEZBBGoiBiAdTQ0AIEYhQgwBCyAkIEZBAnRqIVAgAiA+QQJ0aiFDA0AgBiFC/QwAAAAAAAAAAAAAAAAAAAAAIVIgRyEGIFAhRCAqIUUDQCAG/QkCACBE/QACAP21ASBS/a4BIVIgBkEEaiEGIEQgB2ohRCBFQQFqIkUgLEkNAAsgQyBGQQJ0aiIGIAb9AAIAIFL9rgH9CwIAIFBBEGohUCBCIUYgQkEEaiIGIB1NDQALCwJAIEIgHU8NACABIEJBAnQiBmohQyAjIAZqIVAgAiA+QQJ0aiE+A0BBACFGICohRQJAAkAgP0UNAP0MAAAAAAAAAAAAAAAAAAAAACFSQQAhBiAvIUQDQCBQIAZq/QACACBHIAZq/QACAP21ASBS/a4BIVIgBkEQaiEGICogREF8aiJERw0ACyBSIFIgUv0NCAkKCwwNDg8AAQIDAAECA/2uASJSIFIgUv0NBAUGBwABAgMAAQIDAAECA/2uAf0bACFGIDkhRSA4RQ0BCyBAIEVBAnRqIQYgQyAHIEVsaiFEA0AgRCgCACAGKAIAbCBGaiFGIAZBBGohBiBEIAdqIUQgRUEBaiJFICxJDQALCyA+IEJBAnRqIgYgBigCACBGajYCACBDQQRqIUMgUEEEaiFQIEJBAWoiQiAeRw0ACwsgQCALaiFAIEcgC2ohRyAwQQFqIjAgFUcNAAsLICJBgARqISIgI0GABGohIyAhQYABaiEhIBpBgAFqIRogJCAIaiEkICUgCGohJSAmQYAEaiEmICdBgARqIScgKEGABGohKCApQYAEaiEpICBBAWohICArISogKyAFSQ0ACyAXQYAEaiEXIBhBgAFqIRggGyEZIBwNAAsgECAKaiEQIAwgCmohDCANIApqIQ0gDiAKaiEOIBFBgAFqIREgEiEPIBMNAAsLC4QaBUJ/CHsBfwV7BH8CQCADIARsQQF0IgZFDQAgAkEAIAb8CwALAkAgA0UNACAERQ0AIAVFDQAgBEEBdCEHIARBCHQhCCAFQQN0IQkgBUEIdCEKIAAgBUEBdCILaiEMIAAgBUECdGohDSAAIAVBBmxqIQ5BACEPIAAhEEGAASERA0AgD0GAAWoiEiADIBIgA0kiExshFCADIBEgAyARSRshFSAPQQRyIRYgASEXQYABIRhBACEZA0BBgAEhGiAZQYABaiIbIAQgGyAESSIcGyEdIAQgGCAEIBhJGyEeIBlBEHIhH0EAISBBASEhIAAhIiABISMgASEkIBchJSAQISYgDCEnIA0hKCAOISlBACEqA0AgBSAqQYABaiIrIAUgK0kbIiwgKkEBciIGICwgBksbIi0gIEEHdGshLiAFIBogBSAaSRsiBiAhIAYgIUsbQXhxIS8gDyEwAkAgFiAUSw0AIC5BB0sgBEEBRnEhMSAqIC4gLUEHcSIya2ohMyAQITQgDCE1IA0hNiAOITcgJiE4ICchOSAoITogKSE7IBYhBiAPITADQCAwITwgBiEwIBkhPQJAIB8gHUsNACACIDwgBGxBAXRqIT4gAiA8QQNqIARsQQF0aiE/IAIgPEECaiAEbEEBdGohQCACIDxBAWogBGxBAXRqIUEgJSFCIB8hBiAZIT0DQCA9IUMgBiE9IEIhBiA4IUQgOSFFIDohRiA7IUf9DAAAAAAAAAAAAAAAAAAAAAAiSCFJIEghSiBIIUsgSCFMIEghTSBIIU4gSCFPICohUANAIEf9CAEAIlEgBv0AAQAiUv2VASBO/Y4BIU4gRv0IAQAiUyBS/ZUBIEz9jgEhTCBF/QgBACJUIFL9lQEgSv2OASFKIET9CAEAIlUgUv2VASBI/Y4BIUggUSAGQRBq/QABACJS/ZUBIE/9jgEhTyBTIFL9lQEgTf2OASFNIFQgUv2VASBL/Y4BIUsgVSBS/ZUBIEn9jgEhSSAGIAdqIQYgREECaiFEIEVBAmohRSBGQQJqIUYgR0ECaiFHIFBBAWoiUCAsSQ0ACyA+IENBAXQiBmoiRCBE/QABACBI/Y4B/QsBACBEQRBqIkQgRP0AAQAgSf2OAf0LAQAgQSAGaiJEIET9AAEAIEr9jgH9CwEAIERBEGoiRCBE/QABACBL/Y4B/QsBACBAIAZqIkQgRP0AAQAgTP2OAf0LAQAgREEQaiJEIET9AAEAIE39jgH9CwEAID8gBmoiBiAG/QABACBO/Y4B/QsBACAGQRBqIgYgBv0AAQAgT/2OAf0LAQAgQkEgaiFCID1BEGoiBiAdTQ0ACwsCQCA9QQhqIgYgHUsNACAkID1BAXRqIUYgAiA8IARsQQF0aiFQIAIgPEEDaiAEbEEBdGohQiACIDxBAmogBGxBAXRqIUMgAiA8QQFqIARsQQF0aiE+A0AgPSFHIAYhPUEAIQYgRiFE/QwAAAAAAAAAAAAAAAAAAAAAIkghSSBIIUogSCFLICohRQNAIDsgBmr9CAEAIET9AAEAIlL9lQEgS/2OASFLIDogBmr9CAEAIFL9lQEgSv2OASFKIDkgBmr9CAEAIFL9lQEgSf2OASFJIDggBmr9CAEAIFL9lQEgSP2OASFIIEQgB2ohRCAGQQJqIQYgRUEBaiJFICxJDQALIFAgR0EBdCIGaiJEIET9AAEAIEj9jgH9CwEAID4gBmoiRCBE/QABACBJ/Y4B/QsBACBDIAZqIkQgRP0AAQAgSv2OAf0LAQAgQiAGaiIGIAb9AAEAIEv9jgH9CwEAIEZBEGohRiA9QQhqIgYgHU0NAAsLAkAgPSAdTw0AIAEgPUEBdCIGaiFWICMgBmohQSACIDwgBGxBAXRqIVcgAiA8QQNqIARsQQF0aiFYIAIgPEECaiAEbEEBdGohWSACIDxBAWogBGxBAXRqITwDQEEAIUNBACE+QQAhP0EAIUAgKiFCAkACQCAxRQ0AQQAhBiAvIUT9DAAAAAAAAAAAAAAAAAAAAAAiSCFJIEghSiBIIUsDQCA7IAZq/QABACBBIAZq/QABACJS/ZUBIEv9jgEhSyA6IAZq/QABACBS/ZUBIEr9jgEhSiA5IAZq/QABACBS/ZUBIEn9jgEhSSA4IAZq/QABACBS/ZUBIEj9jgEhSCAGQRBqIQYgKiBEQXhqIkRHDQALIEsgSyBS/Q0ICQoLDA0ODwABAAEAAQAB/Y4BIlIgUiBS/Q0EBQYHAAEAAQABAAEAAQAB/Y4BIlIgUiBS/Q0CAwABAAEAAQABAAEAAQAB/Y4B/RkAIUAgSiBKIFL9DQgJCgsMDQ4PAAEAAQABAAH9jgEiUiBSIFL9DQQFBgcAAQABAAEAAQABAAH9jgEiUiBSIFL9DQIDAAEAAQABAAEAAQABAAH9jgH9GQAhPyBJIEkgUv0NCAkKCwwNDg8AAQABAAEAAf2OASJSIFIgUv0NBAUGBwABAAEAAQABAAEAAf2OASJSIFIgUv0NAgMAAQABAAEAAQABAAEAAf2OAf0ZACE+IEggSCBS/Q0ICQoLDA0ODwABAAEAAQAB/Y4BIlIgUiBS/Q0EBQYHAAEAAQABAAEAAQAB/Y4BIlIgUiBS/Q0CAwABAAEAAQABAAEAAQAB/Y4B/RkAIUMgMyFCIDJFDQELIFYgByBCbGohRCA0IEJBAXQiBmohRSA1IAZqIUYgNiAGaiFHIDcgBmohUANAIFAvAQAgRC8BACIGbCBAaiFAIEcvAQAgBmwgP2ohPyBGLwEAIAZsID5qIT4gRS8BACAGbCBDaiFDIEQgB2ohRCBFQQJqIUUgRkECaiFGIEdBAmohRyBQQQJqIVAgQkEBaiJCICxJDQALCyBXID1BAXQiBmoiRCBELwEAIENqOwEAIDwgBmoiRCBELwEAID5qOwEAIFkgBmoiRCBELwEAID9qOwEAIFggBmoiBiAGLwEAIEBqOwEAIFZBAmohViBBQQJqIUEgPUEBaiI9IB5HDQALCyA0IAlqITQgNSAJaiE1IDYgCWohNiA3IAlqITcgOCAJaiE4IDkgCWohOSA6IAlqITogOyAJaiE7IDBBBGoiBiAUTQ0ACwsCQCAwIBRPDQAgLkEHSyAEQQFGcSE/IAAgCyAwbCIGaiFAICIgBmohRyAqIC4gLUEHcSI4a2ohOQNAIDAgBGwhPiAZIUYCQCAfIB1LDQAgAiA+QQF0aiFDICUhUCAfIQYgGSFCA0AgBiFGIEchRCBQIQb9DAAAAAAAAAAAAAAAAAAAAAAiUiFIICohRQNAIET9CAEAIkkgBv0AAQD9lQEgUv2OASFSIEkgBkEQav0AAQD9lQEgSP2OASFIIERBAmohRCAGIAdqIQYgRUEBaiJFICxJDQALIEMgQkEBdGoiBiAG/QABACBS/Y4B/QsBACAGQRBqIgYgBv0AAQAgSP2OAf0LAQAgUEEgaiFQIEYhQiBGQRBqIgYgHU0NAAsLAkACQCBGQQhqIgYgHU0NACBGIUIMAQsgJCBGQQF0aiFQIAIgPkEBdGohQwNAIAYhQv0MAAAAAAAAAAAAAAAAAAAAACFSIEchBiBQIUQgKiFFA0AgBv0IAQAgRP0AAQD9lQEgUv2OASFSIAZBAmohBiBEIAdqIUQgRUEBaiJFICxJDQALIEMgRkEBdGoiBiAG/QABACBS/Y4B/QsBACBQQRBqIVAgQiFGIEJBCGoiBiAdTQ0ACwsCQCBCIB1PDQAgASBCQQF0IgZqIUMgIyAGaiFQIAIgPkEBdGohPgNAQQAhRiAqIUUCQAJAID9FDQD9DAAAAAAAAAAAAAAAAAAAAAAhUkEAIQYgLyFEA0AgUCAGav0AAQAgRyAGav0AAQD9lQEgUv2OASFSIAZBEGohBiAqIERBeGoiREcNAAsgUiBSIFL9DQgJCgsMDQ4PAAEAAQABAAH9jgEiUiBSIFL9DQQFBgcAAQABAAEAAQABAAH9jgEiUiBSIFL9DQIDAAEAAQABAAEAAQABAAH9jgH9GQAhRiA5IUUgOEUNAQsgQCBFQQF0aiEGIEMgByBFbGohRANAIEQvAQAgBi8BAGwgRmohRiAGQQJqIQYgRCAHaiFEIEVBAWoiRSAsSQ0ACwsgPiBCQQF0aiIGIAYvAQAgRmo7AQAgQ0ECaiFDIFBBAmohUCBCQQFqIkIgHkcNAAsLIEAgC2ohQCBHIAtqIUcgMEEBaiIwIBVHDQALCyAiQYACaiEiICNBgAJqISMgIUGAAWohISAaQYABaiEaICQgCGohJCAlIAhqISUgJkGAAmohJiAnQYACaiEnIChBgAJqISggKUGAAmohKSAgQQFqISAgKyEqICsgBUkNAAsgF0GAAmohFyAYQYABaiEYIBshGSAcDQALIBAgCmohECAMIApqIQwgDSAKaiENIA4gCmohDiARQYABaiERIBIhDyATDQALCwuyDAUofwN7An8CewN/AkAgBCADbCIGRQ0AIAJBACAG/AsACwJAIANFDQAgBUUNACAERQ0AIARBB3QhB0EAIQggAiEJQQAhCgNAIApBgAFqIgsgAyALIANJIgwbIQ0gAiAHIAhsaiEOIAEhD0EAIRBBACERA0BBgAEhEiARQYABaiITIAUgEyAFSSIUGyEVIAEgByAQbGohFkEAIRcgCSEYIA8hGQNAIBYgBCASIAQgEkkbIhpqIRsgDiAaaiEcIBdBIHIgF0GAAWoiHSAEIB0gBEkiHhsiH0shICAJISEgGCEiQQAhIyAKISQDQCACICQgBGxqISUgACAkIAVsaiEmIBwgBCAjbCIGaiEnIA4gBmohKEEAISkgDyEqIBkhKyARISwDQCAmICxqLQAAIi39DyEuIBchBgJAICANACAu/QwAAAAAAAAAAAAAAAAAAAAA/Q0IEQkTChULFwwZDRsOHQ8fIS8gLv2JASEwQQAhMQNAICIgMWoiBiArIDFqIjL9AAAAIjMgLv0NAAABAAIAAwAEAAUABgAHACAw/ZUBIAb9AAAAIjQgLv0NAAABAAIAAwAEAAUABgAHAP2OASAzIC79DQgACQAKAAsADAANAA4ADwAgL/2VASA0IC79DQgACQAKAAsADAANAA4ADwD9jgH9DQACBAYICgwOEBIUFhgaHB79CwAAIAZBEGoiBiAyQRBq/QAAACIzIC79DQAAAQACAAMABAAFAAYABwAgMP2VASAG/QAAACI0IC79DQAAAQACAAMABAAFAAYABwD9jgEgMyAu/Q0IAAkACgALAAwADQAOAA8AIC/9lQEgNCAu/Q0IAAkACgALAAwADQAOAA8A/Y4B/Q0AAgQGCAoMDhASFBYYGhwe/QsAACAXIDFBIGoiMWoiBkEgaiAfTQ0ACwsCQAJAIAZBEGogH00NACAGITEMAQsgLv0MAAAAAAAAAAAAAAAAAAAAAP0NCBEJEwoVCxcMGQ0bDh0PHyEzIC79iQEhNANAICEgBmoiMSAqIAZq/QAAACIvIC79DQAAAQACAAMABAAFAAYABwAgNP2VASAx/QAAACIwIC79DQAAAQACAAMABAAFAAYABwD9jgEgLyAu/Q0IAAkACgALAAwADQAOAA8AIDP9lQEgMCAu/Q0IAAkACgALAAwADQAOAA8A/Y4B/Q0AAgQGCAoMDhASFBYYGhwe/QsAACAGQSBqITIgBkEQaiIxIQYgMiAfTQ0ACwsCQCAxIB9PDQACQAJAIBogMWsiNUEQTw0AIDEhBgwBCwJAICggMWogGyAEIClsIgZqTw0AIBYgBmogMWogJ08NACAxIQYMAQsgNUFwcSEyIDEgNUFwcSI2aiEGA0AgISAxaiI3ICogMWr9AAAAIi/9FgAgLv0WAGz9DyAv/RYBIC79FgFs/RcBIC/9FgIgLv0WAmz9FwIgL/0WAyAu/RYDbP0XAyAv/RYEIC79FgRs/RcEIC/9FgUgLv0WBWz9FwUgL/0WBiAu/RYGbP0XBiAv/RYHIC79Fgds/RcHIC/9FgggLv0WCGz9FwggL/0WCSAu/RYJbP0XCSAv/RYKIC79Fgps/RcKIC/9FgsgLv0WC2z9FwsgL/0WDCAu/RYMbP0XDCAv/RYNIC79Fg1s/RcNIC/9Fg4gLv0WDmz9Fw4gL/0WDyAu/RYPbP0XDyA3/QAAAP1u/QsAACAxQRBqITEgMkFwaiIyDQALIDUgNkYNAQsgBkEBaiExAkAgGiAGa0EBcUUNACAlIAZqIjIgASAsIARsaiAGai0AACAtbCAyLQAAajoAACAxIQYLIBogMUYNAANAICEgBmoiMSAqIAZqIjItAAAgLWwgMS0AAGo6AAAgMUEBaiIxIDJBAWotAAAgLWwgMS0AAGo6AAAgGiAGQQJqIgZHDQALCyAqIARqISogKyAEaiErIClBAWohKSAsQQFqIiwgFUkNAAsgISAEaiEhICIgBGohIiAjQQFqISMgJEEBaiIkIA1JDQALIBhBgAFqIRggGUGAAWohGSASQYABaiESIB0hFyAeDQALIA8gB2ohDyAQQQFqIRAgEyERIBQNAAsgCSAHaiEJIAhBAWohCCALIQogDA0ACwsL";let D=null;function i(){if(D)return D;const I=atob(h),B=new Uint8Array(I.length);for(let A=0;A<I.length;A++)B[A]=I.charCodeAt(A);D=new WebAssembly.Instance(new WebAssembly.Module(B),{env:{memory:S()}});const g=D.exports.__heap_base;return g&&typeof g.value=="number"&&o(g.value),D}function a(I,B,g,A,Q,E){i().exports.matmul_f64(I,B,g,A,Q,E)}function w(I,B,g,A,Q,E){i().exports.matmul_f32(I,B,g,A,Q,E)}function F(I,B,g,A,Q,E,C){i().exports.matmul_c64(I,B,g,A,Q,E,C)}function U(I,B,g,A,Q,E,C){i().exports.matmul_c128(I,B,g,A,Q,E,C)}function q(I,B,g,A,Q,E){i().exports.matmul_i64(I,B,g,A,Q,E)}function N(I,B,g,A,Q,E){i().exports.matmul_i32(I,B,g,A,Q,E)}function s(I,B,g,A,Q,E){i().exports.matmul_i16(I,B,g,A,Q,E)}function J(I,B,g,A,Q,E){i().exports.matmul_i8(I,B,g,A,Q,E)}export{U as matmul_c128,F as matmul_c64,w as matmul_f32,a as matmul_f64,s as matmul_i16,N as matmul_i32,q as matmul_i64,J as matmul_i8};