@zbsearch/plugin-vector-quantizer 0.0.0-stage → 4.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,3 +1,97 @@
1
- # Temporary Holding Version
1
+ # @zbsearch/plugin-vector-quantizer
2
2
 
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.
3
+ > [!IMPORTANT]
4
+ > **This package is licensed under GPL-3.0-only**, unlike zbsearch and the other `@zbsearch/*` packages (Apache-2.0).
5
+ > It ships a compiled WebAssembly build of [vector_quantizer](https://github.com/oramasearch/vector_quantizer), which
6
+ > is GPL-3.0-only. Distributing an application that bundles this package means distributing GPL-3.0 code; check that
7
+ > this is compatible with your project before using it. The built-in `int8` and `binary` quantization of zbsearch
8
+ > core (Apache-2.0) need no plugin.
9
+
10
+ Product quantization (PQ) for zbsearch vector indexes. Each vector is split into `m` subspaces and every subspace is
11
+ replaced by the one-byte index of its nearest centroid, so a 384-dimensional embedding takes 48 bytes (plus a 4-byte
12
+ norm) instead of 1,536. Queries are scored with asymmetric distance computation: one `m × ks` table per query, then
13
+ `m` table lookups per stored vector.
14
+
15
+ Training (k-means per subspace) and encoding run in WebAssembly. The module is inlined in the package as base64 and
16
+ has no imports, so it works in browsers, Node.js, Deno, workers and Gecko (Zotero) without any bundler configuration,
17
+ and you do not need Rust to use it.
18
+
19
+ ## Installation
20
+
21
+ ```bash
22
+ npm install @zbsearch/plugin-vector-quantizer
23
+ ```
24
+
25
+ ## Usage
26
+
27
+ ```js
28
+ import { create, insertMultiple, search } from 'zbsearch'
29
+ import { flat } from 'zbsearch/trees/vector-flat'
30
+ import { ivf } from 'zbsearch/trees/vector-ivf'
31
+ import { pq } from '@zbsearch/plugin-vector-quantizer'
32
+
33
+ const quantizer = await pq({ m: 48, ks: 256 })
34
+
35
+ const db = create({
36
+ schema: { title: 'string', embedding: 'vector[384]' },
37
+ indexes: {
38
+ // Flat scan over PQ codes, rescoring the best candidates against int8 copies.
39
+ embedding: flat({ quantization: quantizer, rescore: 'int8' })
40
+ // or partitioned: ivf({ nlist: 256, nprobe: 16, quantization: quantizer })
41
+ }
42
+ })
43
+ ```
44
+
45
+ `pq()` is asynchronous because it compiles the WebAssembly module with `WebAssembly.compile`, which every engine
46
+ allows on the main thread. In Node.js, Deno, workers or privileged Gecko code you can use `pqSync()` instead.
47
+
48
+ ### Options
49
+
50
+ | Option | Default | Description |
51
+ | ----------------- | ------------------------- | ----------------------------------------------------------------------- |
52
+ | `m` | `dim / 8` | Subspaces, i.e. code bytes per vector. Must not exceed the vector size. |
53
+ | `ks` | `256` | Centroids per subspace (2 to 256). |
54
+ | `iterations` | `12` | k-means iterations per subspace. |
55
+ | `trainingSize` | `max(4 × ks, 1024)` | Vectors collected before the quantizer is trained. |
56
+ | `maxTrainingSize` | `max(trainingSize, 4096)` | Upper bound on the vectors used by one fit (evenly sampled). |
57
+ | `seed` | `42` | Seed of the k-means initialisation, so fits are reproducible. |
58
+
59
+ ### Training
60
+
61
+ PQ has to be trained before it can encode. Until `trainingSize` vectors have been inserted, the index keeps them as
62
+ float32 and searches them exactly. When the threshold is reached, the quantizer is fitted on the buffered vectors,
63
+ every buffered vector is encoded, and the float32 copies are dropped. Training 1,024 vectors of 384 dimensions with
64
+ the defaults takes about one second; encoding takes about 0.13 ms per vector.
65
+
66
+ If your data drifts away from the initial sample, re-train and re-encode everything:
67
+
68
+ ```js
69
+ import { refit } from '@zbsearch/plugin-vector-quantizer'
70
+
71
+ refit(db, 'embedding') // trains on the rescoring copies (or decoded codes)
72
+ refit(db, 'embedding', sampleVectors) // or on a sample you provide
73
+ ```
74
+
75
+ ### Persistence
76
+
77
+ `save()` / `load()` store the codebook and the codes as base64 typed arrays, and the index exposes
78
+ `toBinarySnapshot()` for binary formats. Pass the same `indexes` configuration (with a `pq()` quantizer) to `create()`
79
+ before loading, otherwise `load()` throws: the codebook cannot be decoded without the plugin.
80
+
81
+ ## Rebuilding the WebAssembly module
82
+
83
+ The Rust sources are in [`rust/`](./rust). They vendor `pq.rs`, `utils.rs` and `errors.rs` of vector_quantizer 0.0.3
84
+ (commit `cfdec78a061bd13bc60130dd4c2ced3f64338dcf`) with minimal patches: the published crate depends on numpy/pyo3,
85
+ rayon and getrandom, which do not build for `wasm32-unknown-unknown`. Each vendored file lists its changes; the
86
+ algorithm is unchanged. The bindings use a plain C ABI, so no `wasm-bindgen` CLI is needed.
87
+
88
+ ```bash
89
+ rustup target add wasm32-unknown-unknown
90
+ pnpm --filter @zbsearch/plugin-vector-quantizer build:wasm # rewrites src/wasm-binary.ts
91
+ pnpm --filter @zbsearch/plugin-vector-quantizer check:wasm # verifies the committed module (same rustc version)
92
+ pnpm --filter @zbsearch/plugin-vector-quantizer test:rust # runs the Rust unit tests natively
93
+ ```
94
+
95
+ ## License
96
+
97
+ [GPL-3.0-only](./LICENSE.md). The vector_quantizer code is Copyright (C) Michele Riva.
package/dist/index.cjs ADDED
@@ -0,0 +1,2 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require("zbsearch/trees/vector-flat");var t=class{constructor(e){this.exports=e.exports,this.registry=typeof FinalizationRegistry==`function`?new FinalizationRegistry(e=>this.exports.vq_pq_drop(e)):void 0}track(e,t){let n={};return this.registry?.register(e,t,n),n}release(e,t){t&&this.registry?.unregister(t),this.exports.vq_pq_drop(e)}check(e){if(e>=0)return e;let t=this.exports.vq_error_ptr(),n=this.exports.vq_error_len(),r=new Uint8Array(this.exports.memory.buffer,t,n),i=``;for(let e=0;e<r.length;e++)i+=String.fromCharCode(r[e]);throw Error(`vector_quantizer: ${i}`)}withBuffer(e,t){let n=this.exports.vq_alloc(e);try{return t(n)}finally{this.exports.vq_free(n,e)}}writeFloats(e,t){new Float32Array(this.exports.memory.buffer,e,t.length).set(t)}readCodebook(e){let t=this.check(this.exports.vq_pq_codewords_len(e)),n=this.check(this.exports.vq_pq_width(e));return{handle:e,codewords:this.withBuffer(t*4,n=>(this.check(this.exports.vq_pq_codewords(e,n)),new Float32Array(this.exports.memory.buffer,n,t).slice())),width:n}}fit(e,t,n,r,i,a,o){return this.withBuffer(e.byteLength,s=>{this.writeFloats(s,e);let c=this.check(this.exports.vq_pq_fit(s,t,n,r,i,a,o>>>0));return this.readCodebook(c)})}load(e,t,n,r,i){return this.withBuffer(e.byteLength,a=>(this.writeFloats(a,e),this.check(this.exports.vq_pq_from_codewords(a,t,n,r,i))))}encode(e,t,n,r){return this.withBuffer(t.byteLength,i=>this.withBuffer(n*r,a=>(this.writeFloats(i,t),this.check(this.exports.vq_pq_encode(e,i,n,a)),new Uint8Array(this.exports.memory.buffer,a,n*r).slice())))}decode(e,t,n,r){return this.withBuffer(t.byteLength,i=>this.withBuffer(n*r*4,a=>(new Uint8Array(this.exports.memory.buffer,i,t.length).set(t),this.check(this.exports.vq_pq_decode(e,i,n,a)),new Float32Array(this.exports.memory.buffer,a,n*r).slice())))}};let n,r,i;function a(){return n??=(0,e.base64ToBytes)(`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oMCAAE8NAEEAKAL0oMCAACAAQcgAbGoiACgCAEF/Rg0AIABBNGooAgAhAyAAQRxqKAIAIQBBACACNgLsoMCAACADQQAgABshAAwBC0EAIAI2AuygwIAAIAFBhYCAgACtQiCGIAFBCGqthDcDGCABQQxqQYGCwIAAIAFBGGoQ6YCAgAACQEEALQDooMCAAEEBRg0AQQAQhICAgAALQQAhAkEAKALYoMCAAA0CQX8hAEEAQX82AtigwIAAAkBBACgC3KDAgAAiA0UNAEEAKALgoMCAACADQQEQp4CAgABBACgC2KDAgABBAWohAgtBACABKAIUNgLkoMCAAEEAIAEpAgw3AtygwIAAQQAgAjYC2KDAgAALIAFBIGokgICAgAAgAA8LQYiOwIAAEICBgIAAAAtBuI/AgAAQ/oCAgAAACw0AIAAgARDDgICAAA8LDwAgACABIAIQx4CAgAAPCxEAIAAgASACIAMQyYCAgAAPCw0AIAAgARDNgICAAA8LAwAPC5MBAAJAIANB/////wNLDQAgA0ECdCIDQfz///8HSw0AAkACQCABRQ0AIAIgAUECdEEEIAMQqICAgAAhAQwBCxCqgICAACADQQQQpoCAgAAhAQsCQCABDQAgACADNgIIIABBBDYCBCAAQQE2AgAPCyAAIAM2AgggACABNgIEIABBADYCAA8LIABBADYCBCAAQQE2AgALewEDfyOAgICAAEEQayIBJICAgIAAIAFBBGogACgCACICIAAoAgQgAkEBdCICQQQgAkEESxsiAhCrgICAAAJAIAEoAgRBAUcNACABKAIIIAEoAgwQ5YCAgAAACyABKAIIIQMgACACNgIAIAAgAzYCBCABQRBqJICAgIAAC5ECAQR/AkACQAJAAkAgAigCCCIEQR91IAAoAgAiBXEgBGoiBCAFSw0AIAIoAgQgBSACKAIAGyIGQR91IAVxIAZqIgYgBUsNASACKAIMIgVFDQIgASgCACEDAkAgBiAEIAYgBEsbIgYgBGsiAg0AQQAhBAwECwJAIAVBAEgNACADIARsIQQMBAsgAyAGQX9qbCEEDAMLQciVwIAAQSMgAxDugICAAAALQeuVwIAAQSEgAxDugICAAAALQYyWwIAAQRsgAxDugICAAAALAkAgBSAFQR91IgZzIAZrIgZBAUYNACACIAZuIgcgAiAHIAZsa0EA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CWoiADYCzKTAgABBACAAQQAoAtCkwIAAIgIgACACSxs2AtCkwIAAAkACQAJAQQAoAsikwIAAIgJFDQBBnKLAgAAhAANAIAYgACgCACIIIAAoAgQiB2pGDQIgACgCCCIADQAMAwsLAkACQEEAKALYpMCAACIARQ0AIAYgAE8NAQtBACAGNgLYpMCAAAtBAEH/HzYC3KTAgABBACAFNgKoosCAAEEAIAk2AqCiwIAAQQAgBjYCnKLAgABBAEGsosCAADYCuKLAgABBAEG0osCAADYCwKLAgABBAEGsosCAADYCtKLAgABBAEG8osCAADYCyKLAgABBAEG0osCAADYCvKLAgABBAEHEosCAADYC0KLAgABBAEG8osCAADYCxKLAgABBAEHMosCAADYC2KLAgABBAEHEosCAADYCzKLAgABBAEHUosCAADYC4KLAgABBAEHMosCAADYC1KLAgABBAEHcosCAADYC6KLAgABBAEHUosCAADYC3KLAgABBAEHkosCAADYC8KLAgABBAEHcosCAADYC5KLAgABBAEHsosCAADYC+KLAgABBAEHkosCAADYC7KLAgABBAEHsosCAADYC9KLAgABBAEH0osCAADYCgKPAgABBAEH0osCAADYC/KLAgABBAEH8osCAADYCiKPAgABBAEH8osCAADYChKPAgABBAEGEo8CAADYCkKPAgABBAEGEo8CAADYCjKPAgABBAEGMo8CAADYCmKPAgABBAEGMo8CAADYClKPAgABBAEGUo8CAADYCoKPAgABBAEGUo8CAADYCnKPAgABBAEGco8CAADYCqKPAgABBAEGco8CAADYCpKPAgABBAEGko8CAADYCsKPAgABBAEGko8CAADYCrKPAgABBAEGso8CAADYCuKPAgABBAEG0o8CAADYCwKPAgABBAEGso8CAADYCtKPAgABBAEG8o8CAADYCyKPAgABBAEG0o8CAADYCvKPAgABBAEHEo8CAADYC0KPAgABBAEG8o8CAADYCxKPAgABBAEHMo8CAADYC2KPAgABBAEHEo8CAADYCzKPAgABBAEHUo8CAADYC4KPAgABBAEHMo8CAADYC1KPAgABBAEHco8CAADYC6KPAgABBAEHUo8CAADYC3KPAgABBAEHko8CAADYC8KPAgABBAEHco8CAADYC5KPAgABBAEHso8CAADYC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IAEgBDcCAAsgAEGsm8CAADYCBCAAIAE2AgAgAkEgaiSAgICAAAuFAgICfwF+I4CAgIAAQSBrIgIkgICAgAACQCABKAIAQX9HDQAgASgCDCEDIAJBADYCGCACQoCAgIAQNwIQIAJBEGpBgJnAgAAgAygCACIDKAIAIAMoAgQQ8YCAgAAaIAIgAigCGCIDNgIIIAIgAikCECIENwMAIAEgAzYCCCABIAQ3AgALIAEoAgghAyABQQA2AgggASkCACEEIAFCgICAgBA3AgAgAiADNgIYIAIgBDcDEBCqgICAAAJAQQxBBBCmgICAACIBDQBBBEEMEOeAgIAAAAsgASACKAIYNgIIIAEgAikDEDcCACAAQaybwIAANgIEIAAgATYCACACQSBqJICAgIAACwkAIABBADYCAAsUACAAQYCZwIAAIAEgAhDxgICAAAvAAQECfwJAAkAgAkUNAEEALQDhpMCAACEDQQBBAToA4aTAgABB8KTAgAAhBEGAgMSAAEHwpMCAAE0NACACQYCAxIAAQfCkwIAAa0sNACADQf8BcQ0AQYCAxIAAQfCkwIAAayECDAELQQAhBAJAIAJBEHYgAkH//wNxQQBHaiICQAAiA0F/Rw0AQQAhAgwBCyACQRB0IgJBcGogAiADQRB0IgRBACACa0YbIQILIABBADYCCCAAIAI2AgQgACAENgIACyABAX8CQCAAKAIAIgFFDQAgACgCBCABQQEQp4CAgAALC58BAQF/I4CAgIAAQRBrIgMkgICAgAACQCACIAFqIgEgAk8NAEEAQQAQ5YCAgAAACyADQQRqIAAoAgAiAiAAKAIEIAEgAkEBdCICIAEgAksbIgJBCCACQQhLGyICEOaAgIAAAkAgAygCBEEBRw0AIAMoAgggAygCDBDlgICAAAALIAMoAgghASAAIAI2AgAgACABNgIEIANBEGokgICAgAALHAACQCAARQ0AIAAgARDngICAAAALEOiAgIAAAAuQAQACQAJAIANBAE4NAEEBIQFBBCECQQAhAwwBCwJAAkACQAJAIAFFDQAgAiABQQEgAxCogICAACEBDAELAkAgAw0AQQEhAQwCCxCqgICAACADQQEQpoCAgAAhAQsgAQ0AQQEhASAAQQE2AgQMAQsgACABNgIEQQAhAQtBCCECCyAAIAJqIAM2AgAgACABNgIACw0AIAEg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AX8gASgCAEHPn8CAAEEBIAEoAgQoAgwRgYCAgACAgICAACECIABBADoABSAAIAI6AAQgACABNgIAC5kGAgh/AX5BK0F/IAAoAggiBkGAgIABcSIHGyEIIAdBFXZBASABGyAFaiEJAkACQCAGQYCAgARxDQBBACECDAELAkACQCADQRBJDQAgAiADEPiAgIAAIQcMAQsCQCADDQBBACEHDAELIANBA3EhCkEAIQtBACEHAkAgA0EESQ0AIANBDHEhDEEAIQtBACEHA0AgByACIAtqIg0sAABBv39KaiANQQFqLAAAQb9/SmogDUECaiwAAEG/f0pqIA1BA2osAABBv39KaiEHIAwgC0EEaiILRw0ACyAKRQ0BCyACIAtqIQ0DQCAHIA0sAABBv39KaiEHIA1BAWohDSAKQX9qIgoNAAsLIAcgCWohCQsgCEEtIAEbIQwCQAJAIAkgAC8BDCIBTw0AAkACQAJAIAZBgICACHENACABIAlrIQhBACEHQQAhAQJAAkACQCAGQR12QQNxDgQCAAEAAgsgCCEBDAELIAhB/v8DcUEBdiEBCyAGQf///wBxIQkgACgCBCELIAAoAgAhCgNAIAdB//8DcSABQf//A3FPDQJBASENIAdBAWohByAKIAkgCygCEBGCgICAAICAgIAARQ0ADAULCyAAIAApAggiDqdBgICA/3lxQbCAgIACcjYCCEEBIQ0gACgCACIKIAAoAgQiCyAMIAIgAxD5gICAAA0DQQAhByABIAlrQf//A3EhAgNAIAdB//8DcSACTw0CQQEhDSAHQQFqIQcgCkEwIAsoAhARgoCAgACAgICAAEUNAAwECwtBASENIAogCyAMIAIgAxD5gICAAA0CIAogBCAFIAsoAgwRgYCAgACAgICAAA0CQQAhByAIIAFrQf//A3EhAANAIAdB//8DcSICIABJIQ0gAiAATw0DIAdBAWohByAKIAkgCygCEBGCgICAAICAgIAARQ0ADAMLC0EBIQ0gCiAEIAUgCygCDBGBgICAAICAgIAADQEgACAONwIIQQAPC0EBIQ0gACgCACIHIAAoAgQiCiAMIAIgAxD5gICAAA0AIAcgBCAFIAooAgwRgYCAgACAgICAACENCyANC+sGAQh/AkACQCABIABBA2pBfHEiAiAAayIDSQ0AIAEgA2siBEECdiIFRQ0AIARB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ZW5kb3IvdXRpbHMucnMAL2NhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9uZGFycmF5LTAuMTYuMS9zcmMvaW1wbF9tZXRob2RzLnJzAC9ydXN0Yy8yZDgxNDRiNzg4MDU5N2I2ZTZkM2RmZDYzYTlhOWVmYWUzZjUzM2QzL2xpYnJhcnkvc3RkL3NyYy9zeXMvdGhyZWFkX2xvY2FsL25vX3RocmVhZHMucnMAL3J1c3RjLzJkODE0NGI3ODgwNTk3YjZlNmQzZGZkNjNhOWE5ZWZhZTNmNTMzZDMvbGlicmFyeS9zdGQvc3JjL3N5cy9zeW5jL3J3bG9jay9ub190aHJlYWRzLnJzAHNyYy92ZW5kb3IvcHEucnMAL3J1c3RjLzJkODE0NGI3ODgwNTk3YjZlNmQzZGZkNjNhOWE5ZWZhZTNmNTMzZDMvbGlicmFyeS9hbGxvYy9zcmMvc3RyaW5nLnJzAC9jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvbmRhcnJheS0wLjE2LjEvc3JjL3ppcC9tb2QucnMAL3J1c3RjLzJkODE0NGI3ODgwNTk3YjZlNmQzZGZkNjNhOWE5ZWZhZTNmNTMzZDMvbGlicmFyeS9hbGxvYy9zcmMvcmF3X3ZlYy9tb2QucnMAL3J1c3QvZGVwcy9kbG1hbGxvYy0wLjIuMTMvc3JjL2RsbWFsbG9jLnJzAC9jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvbmRhcnJheS0wLjE2LjEvc3JjL2xpYi5ycwAgVGhlIG51bWJlciBvZiB0cmFpbmluZyB2ZWN0b3JzICjAGCkgbXVzdCBiZSBtb3JlIHRoYW4ga3MgKMABKQA+TnVtYmVyIG9mIGNsdXN0ZXJzIGsgbXVzdCBiZSBiZXR3ZWVuIDEgYW5kIG51bWJlciBvZiBzYW1wbGVzICjAASkAOU51bWJlciBvZiBzdWJzcGFjZXMgKG0pIGNhbm5vdCBleGNlZWQgdmVjdG9yIGRpbWVuc2lvbnMgKMADID4gwAEpAAAAAAAAAQAAAAEAAAAGAAAAY2FsbGVkIGBSZXN1bHQ6OnVud3JhcCgpYCBvbiBhbiBgRXJyYCB2YWx1ZQAKAhAAEwAAAC8AAAATAAAAbmRhcnJheTogU2hhcGUgdG9vIGxhcmdlLCBwcm9kdWN0IG9mIG5vbi16ZXJvIGF4aXMgbGVuZ3RocyBvdmVyZmxvd3MgaXNpemUAAK0BEABcAAAASQEAABQAAACtARAAXAAAAEwCAAAYAAAArQEQAFwAAACeAQAAEQAAAAAAAAAEAAAABAAAAAcAAABBdHRlbXB0ZWQgdG8gaW5pdGlhbGl6ZSB0aHJlYWQtbG9jYWwgd2hpbGUgaXQgaXMgYmVpbmcgZHJvcHBlZAAAdgIQAF4AAABrAAAADQAAAGFzc2VydGlvbiBmYWlsZWQ6IHBhcnQuZXF1YWxfZGltKGRpbWVuc2lvbikAkAMQAFIAAAD+AAAABQAAAGFzc2VydGlvbiBmYWlsZWQ6IGluZGV4IDwgZGltAAAAXwQQAE4AAAAPBgAADQAAAKMEEAAKAAAALAAAAB0AAAAeAhAAVwAAAC0CAAAWAAAAHgIQAFcAAAA3AgAAFgAAAKMEEAAKAAAAxwAAAD8AAACjBBAACgAAANoAAAAkAAAAowQQAAoAAABMAAAAGwAAAKMEEAAKAAAARwAAABsAAABNb2RlbCBub3QgdHJhaW5lZEJ5dGUgY29kZXMgcmVxdWlyZSBrcyA8PSAyNTYAAACjBBAACgAAAB8AAAAhAAAAowQQAAoAAAAZAAAAHAAAADMDEAAQAAAAcQAAAC8AAAAzAxAAEAAAAHkAAAA4AAAAMwMQABAAAAB5AAAAQwAAADMDEAAQAAAA2QAAACwAAAAzAxAAEAAAAJ0AAAAzAAAAMwMQABAAAACdAAAAOgAAAAoCEAATAAAAfQAAABcAAAAKAhAAEwAAAIUAAAAaAAAACgIQABMAAACJAAAALwAAADMDEAAQAAAAcQAAAEYAAAAzAxAAEAAAAIAAAAArAAAAMwMQABAAAACBAAAAKAAAADMDEAAQAAAAgQAAADgAAAAzAxAAEAAAACUAAAAUAAAACgIQABMAAACUAAAAEAAAAAoCEAATAAAAUgAAACMAAAAKAhAAEwAAAFIAAAA7AAAAVThVMTZVMzIIAAAADAAAAAQAAAAJAAAACgAAAAsAAAAAAAAAAAAAAAEAAAAMAAAAYSBEaXNwbGF5IGltcGxlbWVudGF0aW9uIHJldHVybmVkIGFuIGVycm9yIHVuZXhwZWN0ZWRseQBEAxAASwAAAHELAAAOAAAARXJyb3JJbnB1dCB2ZWN0b3JzIG11c3QgaGF2ZSBhdCBsZWFzdCBvbmUgZGltZW5zaW9uTW9kZWwgbm90IHRyYWluZWQuIENhbGwgZml0KCkgYmVmb3JlIGNhbGxpbmcgdGhpcyBtZXRob2RJbnB1dCB2ZWN0b3JzIGRpbWVuc2lvbnMgc2hvdWxkIG1hdGNoIHRyYWluaW5nIGRpbWVuc2lvbnNFbmNvZGVkIHZhbHVlcyBleGNlZWQgVTggcmFuZ2VFbmNvZGVkIHZhbHVlcyBleGNlZWQgVTE2IHJhbmdlRGF0YSBtdXN0IGhhdmUgYXQgbGVhc3Qgb25lIHNhbXBsZSBhbmQgb25lIGZlYXR1cmVEYXRhIGNvbnRhaW5zIG5vbi1maW5pdGUgdmFsdWVzIChOYU4gb3IgSW5mKVVuc3VwcG9ydGVkIGluaXRpYWxpemF0aW9uIG1ldGhvZAIAAAADAAAAAwAAANgIEADaCBAA3QgQAGFzc2VydGlvbiBmYWlsZWQ6IHN0YXJ0IDw9IGF4aXNfbGVuYXNzZXJ0aW9uIGZhaWxlZDogZW5kIDw9IGF4aXNfbGVuYXNzZXJ0aW9uIGZhaWxlZDogc3RlcCAhPSAwaW5jb21wYXRpYmxlIHNoYXBlc2luY29tcGF0aWJsZSBtZW1vcnkgbGF5b3V0dGhlIHNoYXBlIGRvZXMgbm90IGZpdCBpbiB0eXBlIGxpbWl0c291dCBvZiBib3VuZHMgaW5kZXhpbmd1bnN1cHBvcnRlZCBvcGVyYXRpb25hcml0aG1ldGljIG92ZXJmbG93SW5jb21wYXRpYmxlU2hhcGVJbmNvbXBhdGlibGVMYXlvdXRSYW5nZUxpbWl0ZWRPdXRPZkJvdW5kc1Vuc3VwcG9ydGVkT3ZlcmZsb3cnCxAAOgsQAFQLEAB5CxAAjwsQAKQLEAATAAAAGgAAACUAAAAWAAAAFQAAABMAAAARAAAAEgAAAAwAAAALAAAACwAAAAgAAAC3CxAAyAsQANoLEADmCxAA8QsQAPwLEAAAAAAACAAAAAQAAAARAAAAEgAAABMAAAAUAAAAFQAAAAwAAAAEAAAAFgAAABcAAAAYAAAAAAAAAAgAAAAEAAAAGQAAABoAAAAbAAAAHAAAAB0AAAAQAAAABAAAAB4AAAAfAAAAIAAAABQAAABc9ulf3AL2ufHBcGzyYcEkSv4MNHFP91/fOOR5Jf4cdGFzc2VydGlvbiBmYWlsZWQ6IHBzaXplID49IHNpemUgKyBtaW5fb3ZlcmhlYWQAADQEEAAqAAAAsQQAAAkAAABhc3NlcnRpb24gZmFpbGVkOiBwc2l6ZSA8PSBzaXplICsgbWF4X292ZXJoZWFkAAA0BBAAKgAAALcEAAANAAAAcndsb2NrIG92ZXJmbG93ZWQgcmVhZCBsb2Nrc9UCEABdAAAAFQAAACwAAAAAAAAACAAAAAQAAAAhAAAAFQAAAAwAAAAEAAAAIgAAAHJ3bG9jayBoYXMgbm90IGJlZW4gbG9ja2VkIGZvciByZWFkaW5nAADVAhAAXQAAAD4AAAAJAAAAY2FwYWNpdHkgb3ZlcmZsb3cAAADjAxAAUAAAABwAAAAFAAAAIwAAAAwAAAAEAAAAJAAAACUAAAAmAAAAAAAAAAAAAAABAAAAJwAAAGEgZm9ybWF0dGluZyB0cmFpdCBpbXBsZW1lbnRhdGlvbiByZXR1cm5lZCBhbiBlcnJvciB3aGVuIHRoZSB1bmRlcmx5aW5nIHN0cmVhbSBkaWQgbm90AABkARAASAAAAI8CAAAOAAAARXJyb3IwMTIzNDU2Nzg5YWJjZGVmLCAsCgpdAAAAAAAMAAAABAAAAC0AAAAuAAAALwAAAGNhbGxlZCBgT3B0aW9uOjp1bndyYXAoKWAgb24gYSBgTm9uZWAgdmFsdWUwMDAxMDIwMzA0MDUwNjA3MDgwOTEwMTExMjEzMTQxNTE2MTcxODE5MjAyMTIyMjMyNDI1MjYyNzI4MjkzMDMxMzIzMzM0MzUzNjM3MzgzOTQwNDE0MjQzNDQ0NTQ2NDc0ODQ5NTA1MTUyNTM1NDU1NTY1NzU4NTk2MDYxNjI2MzY0NjU2NjY3Njg2OTcwNzE3MjczNzQ3NTc2Nzc3ODc5ODA4MTgyODM4NDg1ODY4Nzg4ODk5MDkxOTI5Mzk0OTU5Njk3OTg5OVthdHRlbXB0IHRvIGNhbGN1bGF0ZSB0aGUgcmVtYWluZGVyIHdpdGggYSBkaXZpc29yIG9mIHplcm8gICAgMHgwMTIzNDU2Nzg5QUJDREVGUmVmQ2VsbCBhbHJlYWR5IG11dGFibHkgYm9ycm93ZWRSZWZDZWxsIGFscmVhZHkgYm9ycm93ZWQ=`),n}function o(){return r?Promise.resolve(r):(i??=(async()=>{let e=await WebAssembly.compile(a()),n=await WebAssembly.instantiate(e,{});return r??=new t(n),r})(),i)}function s(){return r??=new t(new WebAssembly.Instance(new WebAssembly.Module(a()),{})),r}function c(e,t){let n=t.m??Math.max(1,Math.round(e/8)),r=t.ks??256;if(!Number.isInteger(n)||n<1||n>e)throw Error(`pq: m must be an integer between 1 and the vector size (${e}), got ${n}.`);if(!Number.isInteger(r)||r<2||r>256)throw Error(`pq: ks must be an integer between 2 and 256, got ${r}.`);let i=Math.max(t.trainingSize??Math.max(4*r,1024),r);return{m:n,ks:r,iterations:t.iterations??12,trainingSize:i,maxTrainingSize:Math.max(t.maxTrainingSize??Math.max(i,4096),i),seed:t.seed??42}}function l(e){return e+3&-4}var u=class e{constructor(e,t,n){this.dim=e,this.wasm=n,this.kind=`pq`,this.width=0;let r=c(e,t);this.m=r.m,this.ks=r.ks,this.iterations=r.iterations,this.trainingSize=r.trainingSize,this.maxTrainingSize=r.maxTrainingSize,this.seed=r.seed,this.normOffset=l(this.m),this.codeSize=this.normOffset+4,this.offsets=new Int32Array(this.m+1);let i=Math.floor(e/this.m),a=e%this.m;for(let e=0;e<this.m;e++)this.offsets[e+1]=this.offsets[e]+(e<a?i+1:i)}get ready(){return this.codewords!==void 0}get codebook(){return this.codewords}setCodebook(e,t,n){this.handle!==void 0&&this.wasm.release(this.handle,this.handleToken),this.codewords=e,this.width=t,this.handle=n,this.handleToken=n===void 0?void 0:this.wasm.track(this,n);let r=new Float32Array(this.m*this.ks);for(let n=0;n<this.m;n++){let i=this.offsets[n+1]-this.offsets[n];for(let a=0;a<this.ks;a++){let o=(n*this.ks+a)*t,s=0;for(let t=0;t<i;t++)s+=e[o+t]*e[o+t];r[n*this.ks+a]=s}}this.codewordNorms=r}modelHandle(){if(!this.codewords)throw Error(`pq: the quantizer has not been trained yet.`);if(this.handle===void 0){let e=this.wasm.load(this.codewords,this.m,this.ks,this.width,this.dim);this.handle=e,this.handleToken=this.wasm.track(this,e)}return this.handle}fit(e){let t=e;if(e.length>this.maxTrainingSize){let n=e.length/this.maxTrainingSize;t=Array.from({length:this.maxTrainingSize},(t,r)=>e[Math.floor(r*n)])}if(t.length<this.ks)throw Error(`pq: training needs at least ks (${this.ks}) vectors, got ${t.length}.`);let n=new Float32Array(t.length*this.dim);t.forEach((e,t)=>n.set(e.subarray(0,this.dim),t*this.dim));let r=this.wasm.fit(n,t.length,this.dim,this.m,this.ks,this.iterations,this.seed);this.setCodebook(r.codewords,r.width,r.handle)}encode(e,t,n){let r=this.wasm.encode(this.modelHandle(),e.subarray(0,this.dim),1,this.m);t.u8.set(r,n);let i=0,a=this.codewordNorms;for(let e=0;e<this.m;e++)i+=a[e*this.ks+r[e]];t.f32[n+this.normOffset>>2]=i>0?1/Math.sqrt(i):0}prepareQuery(e){let t=this.codewords,n=new Float32Array(this.m*this.ks);for(let r=0;r<this.m;r++){let i=this.offsets[r],a=this.offsets[r+1]-i;for(let o=0;o<this.ks;o++){let s=(r*this.ks+o)*this.width,c=0;for(let n=0;n<a;n++)c+=e[i+n]*t[s+n];n[r*this.ks+o]=c}}return n}score(e,t,n){let r=t.u8,i=this.ks,a=0;for(let t=0;t<this.m;t++)a+=e[t*i+r[n+t]];let o=a*t.f32[n+this.normOffset>>2];return o>1?1:o<-1?-1:o}decode(e,t,n){let r=this.codewords;for(let i=0;i<this.m;i++){let a=this.offsets[i],o=this.offsets[i+1]-a,s=(i*this.ks+e.u8[t+i])*this.width;for(let e=0;e<o;e++)n[a+e]=r[s+e]}}toSnapshot(){return{meta:{kind:`pq`,dim:this.dim,m:this.m,ks:this.ks,iterations:this.iterations,trainingSize:this.trainingSize,maxTrainingSize:this.maxTrainingSize,seed:this.seed,width:this.width},arrays:this.codewords?{codewords:this.codewords}:{}}}static fromSnapshot(t,n){let r=t.meta,i=new e(r.dim,r,n),a=t.arrays.codewords;return a&&i.setCodebook(a,r.width,void 0),i}};function d(e,t){return{kind:`pq`,options:e,create:n=>new u(n,e,t),fromSnapshot:e=>u.fromSnapshot(e,t)}}async function f(e={}){return d(e,await o())}function p(e={}){return d(e,s())}function m(e,t,n){let r=e.data.index.vectorIndexes[t]?.node;if(!r)throw Error(`Unknown vector property "${t}".`);if(typeof r.refit!=`function`)throw Error(`The vector index of "${t}" is not quantized.`);r.refit(n)}exports.PQ_KIND=`pq`,exports.ProductQuantizer=u,exports.VectorQuantizerWasm=t,exports.loadVectorQuantizerWasm=o,exports.loadVectorQuantizerWasmSync=s,exports.pq=f,exports.pqSync=p,exports.refit=m;
2
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","names":["base64ToBytes"],"sources":["../src/wasm-binary.ts","../src/wasm.ts","../src/index.ts"],"sourcesContent":["// This file is generated by scripts/build-wasm.mjs. Do not edit it by hand.\n//\n// Compiled from ./rust (GPL-3.0-only), which vendors the product quantizer of vector_quantizer 0.0.3\n// (https://github.com/oramasearch/vector_quantizer, commit cfdec78a061bd13bc60130dd4c2ced3f64338dcf).\n// Built with rustc 1.97.0 (2d8144b78 2026-07-07). Size: 61256 bytes. SHA-256: 070fca4f51f42450d80a4f2fe75d7e21a16fe2540157319896b233d580140afd\n\nexport const WASM_SHA256 = '070fca4f51f42450d80a4f2fe75d7e21a16fe2540157319896b233d580140afd'\n\nexport const WASM_BASE64 =\n 'AGFzbQEAAAABZw9gAn9/AGADf39/AX9gAn9/AX9gA39/fwBgAX8AYAV/f39/fwBgBn9/f39/fwBgAX8Bf2AEf39/fwBgAAF/YAR/' +\n 'f39/AX9gB39/f39/f38Bf2AFf39/f38Bf2AAAGAGf39/f39/AX8DjgGMAQAAAwQEBAIABQYHBAAIAwAAAgICAgICAQIBBwkJAAIH' +\n 'CgQKCwwHAgMKAg0IBAoCAgICAgIFAwQABAQEBAQEBAYFAAACAgcNAwQKAAAEAgAAAAcAAAAAAgAAAAICAQIAAAABAwQDAAgADQMC' +\n 'AgEBAwMCCgMBAQcADgIMAQECBAQCBAIDBQICBAICAgEBBAUBcAEwMAUDAQARBgkBfwFBgIDAAAsHwQENBm1lbW9yeQIACHZxX2Fs' +\n 'bG9jABoMdnFfZXJyb3JfbGVuABsMdnFfZXJyb3JfcHRyABwHdnFfZnJlZQAdD3ZxX3BxX2NvZGV3b3JkcwAeE3ZxX3BxX2NvZGV3' +\n 'b3Jkc19sZW4AHwx2cV9wcV9kZWNvZGUAIAp2cV9wcV9kcm9wACEMdnFfcHFfZW5jb2RlACIJdnFfcHFfZml0ACMUdnFfcHFfZnJv' +\n 'bV9jb2Rld29yZHMAJAt2cV9wcV93aWR0aAAlCToBAEEBCy8GFBMRiAEyEgUXFhkVLzAuQV1VVGA4XFthWllXWDlWX15TUmNsa21q' +\n 'fH+BAXCEAXOHAYsBCse5A4wByQkDBX8BfQt/I4CAgIAAQRBrIgIkgICAgAACQAJAAkACQAJAAkACQAJAAkACQCAAKAIEIgMgASgC' +\n 'BCIERg0AIAIgAzYCDAJAAkAgA0EASA0AIARBAUYNAQsgAUEEaiACQQxqEIGAgIAAAAsgASgCACEBIAAoAgAhBQJAIANBAkkNACAA' +\n 'KAIIIQYgA0EDcSEAIAEqAgAhB0EAIQEgA0EESQ0DIAZBAnQhBCAGQQN0IQggBkEEdCEJIAZBDGwhCiADQfz///8HcSELQQAhASAF' +\n 'IQMDQCADIAc4AgAgAyAEaiAHOAIAIAMgCGogBzgCACADIApqIAc4AgAgAyAJaiEDIAsgAUEEaiIBRw0ADAMLCyADRQ0JIAUgASoC' +\n 'ADgCAAwJCyABKAIIIQwgACgCCCENAkACQCADQQJJIgQNACANIAxGDQAgACgCACEKDAELIANBAEchCCAAKAIAIQoCQCAEDQAgDUF/' +\n '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' +\n 'CyACIAk3ArABIAIgGTcCqAEgAiA6NgKkASACIDg2AqABIAIgODYCnAEgAiA5NgKYASACIBI2AtABIAIgJjYCzAEgAiAQNgLIASAC' +\n 'IDE2AsQBIAIgEzYCwAFBACEBIAJBADYCvAEgAiACQfgAajYCuAEgAkEYaiACQbgBahCQgICAAEEEIR9BACEFAkACQAJAAkACQAJA' +\n 'IAIoAhhBAUcNACACKALAASACKAK8AWtBAWoiAUF/IAEbIgFBBCABQQRLGyIXQQJ0IQZBACEFIAFB/////wNLDQEgBkH8////B0sN' +\n 'ASACKAIcIQEQqoCAgABBBCEFIAZBBBCmgICAACIHRQ0BIAcgATYCAEEBIQEgAkEBNgLcASACIAc2AtgBIAIgFzYC1AEgAiACKALQ' +\n 'ATYC+AEgAiACKQLIATcD8AEgAiACKQLAATcD6AEgAiACKQK4ATcD4AEgAkEQaiACQeABahCQgICAAAJAIAIoAhBBAUcNACACKAIU' +\n 'IQVBASEBQQQhBgNAAkAgASACKALUAUcNACACQdQBaiABIAIoAugBIAIoAuQBa0EBaiIHQX8gBxtBBEEEEIiAgIAAIAIoAtgBIQcL' +\n 'IAcgBmogBTYCACACIAFBAWoiATYC3AEgBkEEaiEGIAJBCGogAkHgAWoQkICAgAAgAigCDCEFIAIoAghBAXENAAsLIAIoAtgBIR8g' +\n 'AigC1AEhBQsCQCAWRQ0AIBQgFkECdEEEEKeAgIAAC0EAIQYCQCAjDQACQAJAICINAEEEITtBACE8DAELEKqAgIAAQQQhBiAiQQQQ' +\n 'qYCAgAAiO0UNASALITwLAkAgCkF/TA0AQQAhBgJAICENABCqgICAAEEEIQYgIEEEEKmAgIAAIhdFDQBBACEGAkAgNg0AAkACQCAu' +\n 'DQBBBCE9QQAhPgwBCxCqgICAAEEEIQYgCyE+IC5BBBCmgICAACI9RQ0BCyA9IQYCQAJAIAtBAkkNACAqIRYgPSEGA0AQqoCAgAAg' +\n 'IEEEEKaAgIAAIgdFDQICQCAgRQ0AIAcgFyAg/AoAAAsgBkEUakEBNgIAIAZBEGogCjYCACAGQQxqIAc2AgAgBkEIaiAKNgIAIAZB' +\n 'BGogCjYCACAGIAc2AgAgBkEYaiEGIBZBf2oiFg0ACwsgBkEBNgIUIAYgCjYCECAGIBc2AgwgBiAKNgIIIAYgCjYCBCAGIBc2AgAC' +\n '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' +\n 'BiAHQQhqIQcgFyAWQX5qIhZHDQALIBRFDQFBACAWayEBCyAYIAFBAnQiAWogRSABaioCACA6IAFqKgIAkzgCAAsgTkUNAwJAAkAC' +\n 'QCBDDgIGAQALIExBAUcNAQsgQUEBRg0EIFMgQ0YNBAtDAAAAACFVIE8NBCAZQoCAgIAQVA0EIBlC/////w+DUA0EIExBAnQhByBM' +\n 'QQN0IRYgTEEEdCEXIFNBAnQhHCBMQQxsIRQgQ0F8cSEVIENBA3EhG0MAAAAAIVVBACEdA0ACQAJAAkAgR0EDTw0AQQAhBgwBC0EA' +\n 'IQYgGCEBA0AgASAUaioCAIsiXCABIBZqKgIAiyJdIAEgB2oqAgCLIl4gASoCAIsiXyBVIFUgVVwbIlUgVSBfIF8gX1wbIl8gVSBf' +\n 'XhsiVSBVIFVcGyJVIFUgXiBeIF5cGyJeIFUgXl4bIlUgVSBVXBsiVSBVIF0gXSBdXBsiXSBVIF1eGyJVIFUgVVwbIlUgVSBcIFwg' +\n 'XFwbIlwgVSBcXhshVSABIBdqIQEgFSAGQQRqIgZHDQALIBtFDQELIBggByAGbGohASAbIQYDQCABKgIAiyJcIFUgVSBVXBsiVSBV' +\n 'IFwgXCBcXBsiXCBVIFxeGyFVIAEgB2ohASAGQX9qIgYNAAsLIBggHGohGCAdQQFqIh0gQUcNAAwFCwsgFiABEOWAgIAAAAtBwIvA' +\n 'gABBygBBnIzAgAAQtYCAgAAAC0GcjcCAAEErQciNwIAAEO6AgIAAAAsCQCBDIEFsDQBDAAAAACFVDAELIFBBA3EhBgJAAkAgUEF/' +\n 'akEDTw0AQwAAAAAhVUEAIQEMAQtBACEBQQAgUEH8////AXFrIQdDAAAAACFVA0AgGEEMaioCAIsiXCAYQQhqKgIAiyJdIBhBBGoq' +\n 'AgCLIl4gGCoCAIsiXyBVIFUgVVwbIlUgVSBfIF8gX1wbIl8gVSBfXhsiVSBVIFVcGyJVIFUgXiBeIF5cGyJeIFUgXl4bIlUgVSBV' +\n 'XBsiVSBVIF0gXSBdXBsiXSBVIF1eGyJVIFUgVVwbIlUgVSBcIFwgXFwbIlwgVSBcXhshVSAYQRBqIRggByABQXxqIgFHDQALIAZF' +\n 'DQFBACABayEBCyBXIFpBAnQgAUECdGogW0ECdGtqIQEDQCABKgIAiyJcIFUgVSBVXBsiVSBVIFwgXCBcXBsiXCBVIFxeGyFVIAFB' +\n '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' +\n 'mAEhIgJAICBBAkkNACABQQFHIAynIiNBAUdyRQ0AAkAgAkECSQ0AIARBAUcgDEIgiCIMQgFSckUNACAEQQJ0IQMgDKciJEECdCEI' +\n 'ICRBA3QhBiAEQQN0IQUgJEEEdCElICNBAnQhJiAkQQxsISMgBEEEdCEkIAFBAnQhJyAEQQxsISggAkF8cSEpIAJBA3EhKkEAISsg' +\n 'AkF/akEDSSEsA0BBACEBAkACQCAsDQBBACEBICIhBCAAIQIDQCACIAQqAgA4AgAgAiADaiAEIAhqKgIAOAIAIAIgBWogBCAGaioC' +\n 'ADgCACACIChqIAQgI2oqAgA4AgAgBCAlaiEEIAIgJGohAiApIAFBBGoiAUcNAAsgKkUNAQsgACADIAFsaiEEICIgCCABbGohAiAq' +\n 'IQEDQCAEIAIqAgA4AgAgBCADaiEEIAIgCGohAiABQX9qIgENAAsLICIgJmohIiAAICdqIQAgK0EBaiIrICBHDQAMBgsLIAJFDQQg' +\n 'AUECdCEFICNBAnQhJSACQQNxIQZBACEIQQAgAkF8cWshAyACQX9qQQNJISMDQEEAIQQCQAJAICMNAEEAIQEgACEEICIhAgNAIAQg' +\n 'AioCADgCACAEQQRqIAJBBGoqAgA4AgAgBEEIaiACQQhqKgIAOAIAIARBDGogAkEMaioCADgCACAEQRBqIQQgAkEQaiECIAMgAUF8' +\n 'aiIBRw0ACyAGRQ0BQQAgAWshBAsgBEECdCEEIAYhAgNAIAAgBGogIiAEaioCADgCACAEQQRqIQQgAkF/aiICDQALCyAAIAVqIQAg' +\n 'IiAlaiEiIAhBAWoiCCAgRw0ADAULCyAgRQ0DAkAgAkECSQ0AIARBAUcgDEIgiCIMQgFSckUNACAIIAYgBEECdCIramohLSAIIARB' +\n 'A3QgBmpqIS4gCCAEQQxsIAZqaiEvIAynIgFBBHQhAyAEQQR0IQggAkF8cSEmIAJBA3EhMCAiIAFBAnQiKmohMSAiIAFBA3RqITIg' +\n 'IiABQQxsaiEzQQAhBCACQX9qQQNJITQgACEnICIhLEEAITUDQEEAISkCQAJAIDQNAEEAISkgACECICIhASAxIQYgLSEFIDIhJSAu' +\n 'ISMgMyEkIC8hKANAIAIgBGogASAEaioCADgCACAFIARqIAYgBGoqAgA4AgAgIyAEaiAlIARqKgIAOAIAICggBGogJCAEaioCADgC' +\n 'ACACIAhqIQIgASADaiEBIAYgA2ohBiAFIAhqIQUgJSADaiElICMgCGohIyAkIANqISQgKCAIaiEoICYgKUEEaiIpRw0ACyAwRQ0B' +\n 'CyAnICsgKWxqIQIgLCAqIClsaiEBIDAhBgNAIAIgASoCADgCACACICtqIQIgASAqaiEBIAZBf2oiBg0ACwsgJ0EEaiEnICxBBGoh' +\n 'LCAEQQRqIQQgNUEBaiI1ICBHDQAMBQsLIAJFDQMgAkEDcSEkQQAhJUEAIAJBfHFrIQggAkF/akEDSSEoIAAhBiAiIQVBACEjA0BB' +\n 'ACEEAkACQCAoDQBBACEDICUhBANAIAAgBGoiAiAiIARqIgEqAgA4AgAgAkEEaiABQQRqKgIAOAIAIAJBCGogAUEIaioCADgCACAC' +\n 'QQxqIAFBDGoqAgA4AgAgBEEQaiEEIAggA0F8aiIDRw0ACyAkRQ0BQQAgA2shBAsgBiAEQQJ0IgJqIQQgBSACaiECICQhAQNAIAQg' +\n 'AioCADgCACAEQQRqIQQgAkEEaiECIAFBf2oiAQ0ACwsgBkEEaiEGIAVBBGohBSAlQQRqISUgI0EBaiIjICBHDQAMBAsLIAcoAqQB' +\n 'IQUCQCAgQQJJIiUNACAFIAFHDQILIAcoAqgBISMCQCACQQJJDQAgIyAERw0CCwJAAkAgAkEAICAbIAFHDQAgBCAgQQBHIAJBAEdx' +\n 'Rg0BCwJAIAIgICABIAFBH3UiA3MgA2sgBCAEQR91IgNzIANrSiIDGyIkQQFGDQAgBCABIAMbIiggKEEfdSIocyAoa0EBRw0DCyAg' +\n 'IAIgAxtBAUYNACABIAQgAxsiAyADQR91IgNzIANrICRHDQILIAAgAUEfdSAgQX9qIAFscUEAICBBAUsbQQJ0IiJqIARBH3UgAkF/' +\n 'aiAEbHFBACACQQFLG0ECdCIpaiIDRQ0BAkACQCAFIAcoAqABIiRBACAHKAKcASIoG0cNACAjIChBAEcgJEEAR3FGDQELAkAgJCAo' +\n 'IAUgBUEfdSIrcyArayAjICNBH3UiK3MgK2tKIisbIipBAUYNACAjIAUgKxsiJiAmQR91IiZzICZrQQFHDQMLICggJCArG0EBRg0A' +\n 'IAUgIyArGyIrICtBH3UiK3MgK2sgKkcNAgsgBygCmAEiKyAFQR91IChBf2ogBWxBACAoQQFLG3FBAnQiKmogI0EfdSAkQX9qICNs' +\n 'QQAgJEEBSxtxQQJ0IiNqIgVFDQEgJCAobCIEIAIgIGwiAiAEIAJJGyICRQ0CIAJBA3EhAUEAIQQCQCACQQRJDQBBACEEQQAgAkF8' +\n 'cWshAgNAIAMgBSoCADgCACADQQRqIAVBBGoqAgA4AgAgA0EIaiAFQQhqKgIAOAIAIANBDGogBUEMaioCADgCACAFQRBqIQUgA0EQ' +\n 'aiEDIAIgBEF8aiIERw0ACyABRQ0DQQAgBGshBAsgKyAjICpqIARBAnQiAmpqIQQgCCApICJqIAZqIAJqaiECA0AgAiAEKgIAOAIA' +\n 'IAJBBGohAiAEQQRqIQQgAUF/aiIBDQAMAwsLQdiNwIAAQR1BqI7AgAAQ7oCAgAAACyAHKQKkASEMIAcoApgBISICQCAlDQAgAUEB' +\n 'RyAMpyIjQQFHckUNAAJAIAJBAkkNACAEQQFHIAxCIIgiDEIBUnJFDQAgBEECdCEDIAynIiRBAnQhCCAkQQN0IQYgBEEDdCEFICRB' +\n 'BHQhJSAjQQJ0ISYgJEEMbCEjIARBBHQhJCABQQJ0IScgBEEMbCEoIAJBfHEhKSACQQNxISpBACErIAJBf2pBA0khLANAQQAhAQJA' +\n 'AkAgLA0AQQAhASAiIQQgACECA0AgAiAEKgIAOAIAIAIgA2ogBCAIaioCADgCACACIAVqIAQgBmoqAgA4AgAgAiAoaiAEICNqKgIA' +\n 'OAIAIAQgJWohBCACICRqIQIgKSABQQRqIgFHDQALICpFDQELIAAgAyABbGohBCAiIAggAWxqIQIgKiEBA0AgBCACKgIAOAIAIAQg' +\n 'A2ohBCACIAhqIQIgAUF/aiIBDQALCyAiICZqISIgACAnaiEAICtBAWoiKyAgRw0ADAMLCyACRQ0BIAFBAnQhBSAjQQJ0ISUgAkED' +\n 'cSEGQQAhCEEAIAJBfHFrIQMgAkF/akEDSSEjA0BBACEEAkACQCAjDQBBACEBIAAhBCAiIQIDQCAEIAIqAgA4AgAgBEEEaiACQQRq' +\n 'KgIAOAIAIARBCGogAkEIaioCADgCACAEQQxqIAJBDGoqAgA4AgAgBEEQaiEEIAJBEGohAiADIAFBfGoiAUcNAAsgBkUNAUEAIAFr' +\n 'IQQLIARBAnQhBCAGIQIDQCAAIARqICIgBGoqAgA4AgAgBEEEaiEEIAJBf2oiAg0ACwsgACAFaiEAICIgJWohIiAIQQFqIgggIEcN' +\n 'AAwCCwsgIEUNAAJAIAJBAkkNACAEQQFHIAxCIIgiDEIBUnJFDQAgCCAGIARBAnQiK2pqIS0gCCAEQQN0IAZqaiEuIAggBEEMbCAG' +\n 'amohLyAMpyIBQQR0IQMgBEEEdCEIIAJBfHEhJiACQQNxITAgIiABQQJ0IipqITEgIiABQQN0aiEyICIgAUEMbGohM0EAIQQgAkF/' +\n 'akEDSSE0IAAhJyAiISxBACE1A0BBACEpAkACQCA0DQBBACEpIAAhAiAiIQEgMSEGIC0hBSAyISUgLiEjIDMhJCAvISgDQCACIARq' +\n 'IAEgBGoqAgA4AgAgBSAEaiAGIARqKgIAOAIAICMgBGogJSAEaioCADgCACAoIARqICQgBGoqAgA4AgAgAiAIaiECIAEgA2ohASAG' +\n 'IANqIQYgBSAIaiEFICUgA2ohJSAjIAhqISMgJCADaiEkICggCGohKCAmIClBBGoiKUcNAAsgMEUNAQsgJyArIClsaiECICwgKiAp' +\n 'bGohASAwIQYDQCACIAEqAgA4AgAgAiAraiECIAEgKmohASAGQX9qIgYNAAsLICdBBGohJyAsQQRqISwgBEEEaiEEIDVBAWoiNSAg' +\n 'Rw0ADAILCyACRQ0AIAJBA3EhJEEAISVBACACQXxxayEIIAJBf2pBA0khKCAAIQYgIiEFQQAhIwNAQQAhBAJAAkAgKA0AQQAhAyAl' +\n 'IQQDQCAAIARqIgIgIiAEaiIBKgIAOAIAIAJBBGogAUEEaioCADgCACACQQhqIAFBCGoqAgA4AgAgAkEMaiABQQxqKgIAOAIAIARB' +\n 'EGohBCAIIANBfGoiA0cNAAsgJEUNAUEAIANrIQQLIAYgBEECdCICaiEEIAUgAmohAiAkIQEDQCAEIAIqAgA4AgAgBEEEaiEEIAJB' +\n 'BGohAiABQX9qIgENAAsLIAZBBGohBiAFQQRqIQUgJUEEaiElICNBAWoiIyAgRw0ACwsCQCAHKAKUASIERQ0AIB8gBEECdEEEEKeA' +\n 'gIAACyAeQSRqIQQgHUFcaiECIBwgFkcNAAwNCwtBuI/AgAAQ/oCAgAAAC0GIksCAAEE3IAdB7wJqQfiRwIAAQcCSwIAAEIOBgIAA' +\n 'AAtB2JDAgAAQ/YCAgAAAC0EEQZABEOWAgIAAAAsgASAEEOWAgIAAAAtBwIvAgABBygBBjIzAgAAQtYCAgAAACyAEIANByI/AgAAQ' +\n '8oCAgAAAC0EBIANByI/AgAAQ8oCAgAAAC0G4j8CAABD+gICAAAALQYiSwIAAQTcgB0HvAmpB+JHAgABBwJLAgAAQg4GAgAAAC0G4' +\n 'j8CAABD+gICAAAALQYiSwIAAQTcgB0HvAmpB+JHAgABBwJLAgAAQg4GAgAAACwJAIBYgHEYNACAdQSRuIQQDQAJAIB5BCGooAgAi' +\n 'AkUNACAeQQRqQgA3AgAgHigCACACQQJ0QQQQp4CAgAALIB5BJGohHiAEQX9qIgQNAAsLIBVFDQAgFCAVQSRsQQQQp4CAgAALAkAg' +\n 'BygCVCIERQ0AIAcoAlwiAkUNACAHQgA3AlggBCACQQJ0QQQQp4CAgAALIAcgEzYCeCAHIBE2AnQgByANNgJwIAcgCjYCbCAHIAs2' +\n 'AmggByAJNgJkIAcgEjYCYCAHIBA2AlwgByAONgJYIAcgDzYCVAsgB0GMAWogB0E4akHIAPwKAAAgB0GMAWoQioCAgAAhBCAHKAIM' +\n 'IgJFDQEgBygCBCACQQJ0QQQQp4CAgAAMAQtBfyEEIAcoAgwiAkUNACAHKAIEIAJBAnRBBBCngICAAAsgB0HwAmokgICAgAAgBAve' +\n 'CQMFfwF+AX8jgICAgABBgAFrIgUkgICAgAAgAiABbCADbCIGQQJ0IQdBACEIAkACQCAGQf////8DSw0AIAdB/P///wdLDQACQAJA' +\n 'IAcNAEEEIQlBACEIDAELEKqAgIAAQQQhCCAHQQQQpoCAgAAiCUUNASAGIQgLIAZFDQEgB0UNASAJIAAgB/wKAAAMAQsgCCAHEOWA' +\n 'gIAAAAsgAUEBIAFBAUsbIQcCQAJAAkACQAJAAkACQAJAAkAgAkUNACAHrSACrX4iCkIgiKcNASAKpyEHCwJAIANFDQAgB60gA61+' +\n 'IgpCIIinDQEgCqchBwsgB0EASA0AIAJBAEchByAFQQhqIQAgAkUNAyABRQ0DIAEgBEsNASAFQQxqIAEgBBCOgICAACAFKQIMIQog' +\n 'BSgCFCEAIAUgAUUgAkVyIgdBf3MgA0EAR3E2AkwgBUEAIAMgBxsiBzYCSCAFIAMgAmwiCzYCRCAFIAM2AkAgBSACNgI8IAUgATYC' +\n 'OCAFIAkgB0EfdSAHQQEgAmtscUEAIAJBAUsbQQJ0aiALQQAgARsiB0EfdSAHQQEgAWtscUEAIAFBAUsbQQJ0ajYCNCAFIAg2AjAg' +\n 'BSAGNgIsIAUgCTYCKCAFIAI2AiQgBSABNgIgIAUgADYCHCAFIAo3AhQgBSAENgIQIAVBATYCDCAFQQBBAUECIAJBgYAESRsgAkGB' +\n 'AkkbOgBQIAVBDGoQioCAgAAhBwwFCwJAIAhFDQAgCSAIQQJ0QQQQp4CAgAALIAVBBjoAVCAFQQA2AnggBUKAgICAEDcCcCAFQeCR' +\n 'wIAANgIQIAVCoICAgAY3AhQgBSAFQfAAajYCDAJAIAVB1ABqIAVBDGoQsYCAgABFDQBBiJLAgABBNyAFQf8AakH4kcCAAEHAksCA' +\n 'ABCDgYCAAAALIAUgBSgCeDYCaCAFIAUpAnA3A2ACQEEALQDooMCAAEEBRg0AQQAQhICAgAALQQAhAUEAKALYoMCAAA0BQX8hB0EA' +\n 'QX82AtigwIAAAkBBACgC3KDAgAAiAkUNAEEAKALgoMCAACACQQEQp4CAgABBACgC2KDAgABBAWohAQtBACAFKAJoNgLkoMCAAEEA' +\n 'IAUpA2A3AtygwIAAQQAgATYC2KDAgAAMBAsgBSABNgIIIAVBBGohAEEFIQcMAgtBuI/AgAAQ/oCAgAAAC0EAIQQLIAAgBDYCAAJA' +\n 'IAhFDQAgCSAIQQJ0QQQQp4CAgAALIAUgBzYCVCAFIAUoAgg2AlggBSAFKAIENgJcIAVBADYCeCAFQoCAgIAQNwJwIAVB4JHAgAA2' +\n 'AhAgBUKggICABjcCFCAFIAVB8ABqNgIMIAVB1ABqIAVBDGoQmICAgAANASAFIAUoAng2AmggBSAFKQJwNwNgAkBBAC0A6KDAgABB' +\n 'AUYNAEEAEISAgIAAC0EAIQFBACgC2KDAgAANAkF/IQdBAEF/NgLYoMCAAAJAQQAoAtygwIAAIgJFDQBBACgC4KDAgAAgAkEBEKeA' +\n 'gIAAQQAoAtigwIAAQQFqIQELQQAgBSgCaDYC5KDAgABBACAFKQNgNwLcoMCAAEEAIAE2AtigwIAACyAFQYABaiSAgICAACAHDwtB' +\n 'iJLAgABBNyAFQf8AakH4kcCAAEHAksCAABCDgYCAAAALQbiPwIAAEP6AgIAAAAukAwEDfyOAgICAAEEgayIBJICAgIAAIAEgADYC' +\n 'CAJAQQAtAPygwIAAQQFGDQBBABCDgICAAAsCQAJAQQAoAuygwIAAIgJB/////wdPDQBBACACQQFqNgLsoMCAAAJAAkAgAEEAKAL4' +\n 'oMCAAE8NAEEAKAL0oMCAACAAQcgAbGoiACgCAEF/Rg0AIABBNGooAgAhAyAAQRxqKAIAIQBBACACNgLsoMCAACADQQAgABshAAwB' +\n 'C0EAIAI2AuygwIAAIAFBhYCAgACtQiCGIAFBCGqthDcDGCABQQxqQYGCwIAAIAFBGGoQ6YCAgAACQEEALQDooMCAAEEBRg0AQQAQ' +\n 'hICAgAALQQAhAkEAKALYoMCAAA0CQX8hAEEAQX82AtigwIAAAkBBACgC3KDAgAAiA0UNAEEAKALgoMCAACADQQEQp4CAgABBACgC' +\n '2KDAgABBAWohAgtBACABKAIUNgLkoMCAAEEAIAEpAgw3AtygwIAAQQAgAjYC2KDAgAALIAFBIGokgICAgAAgAA8LQYiOwIAAEICB' +\n 'gIAAAAtBuI/AgAAQ/oCAgAAACw0AIAAgARDDgICAAA8LDwAgACABIAIQx4CAgAAPCxEAIAAgASACIAMQyYCAgAAPCw0AIAAgARDN' +\n 'gICAAA8LAwAPC5MBAAJAIANB/////wNLDQAgA0ECdCIDQfz///8HSw0AAkACQCABRQ0AIAIgAUECdEEEIAMQqICAgAAhAQwBCxCq' +\n 'gICAACADQQQQpoCAgAAhAQsCQCABDQAgACADNgIIIABBBDYCBCAAQQE2AgAPCyAAIAM2AgggACABNgIEIABBADYCAA8LIABBADYC' +\n 'BCAAQQE2AgALewEDfyOAgICAAEEQayIBJICAgIAAIAFBBGogACgCACICIAAoAgQgAkEBdCICQQQgAkEESxsiAhCrgICAAAJAIAEo' +\n 'AgRBAUcNACABKAIIIAEoAgwQ5YCAgAAACyABKAIIIQMgACACNgIAIAAgAzYCBCABQRBqJICAgIAAC5ECAQR/AkACQAJAAkAgAigC' +\n 'CCIEQR91IAAoAgAiBXEgBGoiBCAFSw0AIAIoAgQgBSACKAIAGyIGQR91IAVxIAZqIgYgBUsNASACKAIMIgVFDQIgASgCACEDAkAg' +\n 'BiAEIAYgBEsbIgYgBGsiAg0AQQAhBAwECwJAIAVBAEgNACADIARsIQQMBAsgAyAGQX9qbCEEDAMLQciVwIAAQSMgAxDugICAAAAL' +\n 'QeuVwIAAQSEgAxDugICAAAALQYyWwIAAQRsgAxDugICAAAALAkAgBSAFQR91IgZzIAZrIgZBAUYNACACIAZuIgcgAiAHIAZsa0EA' +\n 'R2ohAgsgACACNgIAIAFBACADIAVsIAJBAkkbNgIAIAQLogEBAn8jgICAgABBIGsiAiSAgICAACACIAAoAgAtAAAiAEF/akH/AXFB' +\n 'AnQiAygCnJjAgAA2AgggAiADKAKEmMCAADYCBCACIAA6AA8gAkGNgICAAK1CIIYgAkEEaq2ENwMYIAJBjoCAgACtQiCGIAJBD2qt' +\n 'hDcDECABKAIAIAEoAgRB0oLAgAAgAkEQahDxgICAACEBIAJBIGokgICAgAAgAQsUACAAKAIAIAAoAgQgARCKgYCAAAsrACABIAAt' +\n 'AABBf2pB/wFxQQJ0IgAoAsyYwIAAIAAoArSYwIAAEPuAgIAAC58BAQJ/I4CAgIAAQSBrIgIkgICAgAAgAiAALQAAIgBBf2pB/wFx' +\n 'QQJ0IgMoApyYwIAANgIIIAIgAygChJjAgAA2AgQgAiAAOgAPIAJBjYCAgACtQiCGIAJBBGqthDcDGCACQY6AgIAArUIghiACQQ9q' +\n 'rYQ3AxAgASgCACABKAIEQdKCwIAAIAJBEGoQ8YCAgAAhASACQSBqJICAgIAAIAELXAEBfyOAgICAAEEQayICJICAgIAAIAIgADYC' +\n 'BCACQY+AgIAArUIghiACQQRqrYQ3AwggASgCACABKAIEQeKCwIAAIAJBCGoQ8YCAgAAhASACQRBqJICAgIAAIAELCQAQxoCAgAAA' +\n 'C60BAQF/I4CAgIAAQRBrIgUkgICAgAACQCACIAFqIgEgAk8NAEEAQQAQ5YCAgAAACyAFQQRqIAAoAgAiAiAAKAIEIAEgAkEBdCIC' +\n 'IAEgAksbIgJBCEEEIARBAUYbIgEgAiABSxsiAiADIAQQv4CAgAACQCAFKAIEQQFHDQAgBSgCCCAFKAIMEOWAgIAAAAsgBSgCCCEE' +\n 'IAAgAjYCACAAIAQ2AgQgBUEQaiSAgICAAAs2AQF/I4CAgIAAQRBrIgMkgICAgAAgAyACNgIMIAMgATYCCCADIAA2AgQgA0EEahC2' +\n 'gICAAAALCwAgABC6gICAAAALGwACQCAAQX9qQX5PDQAgASAAQQEQp4CAgAALCyABAX8CQCAAKAIAIgFFDQAgACgCBCABQQEQp4CA' +\n 'gAALCyIBAX8CQCAAKAIAIgFBAUgNACAAKAIEIAFBARCngICAAAsLOgEBfyOAgICAAEEQayIBJICAgIAAIAEgACkCADcCCCABQQhq' +\n 'QeSYwIAAIAAoAghBAUEAEMCAgIAAAAsLACAAELyAgIAAAAssACAAKAIAIAAoAgRBACgCiKHAgAAiAEGQgICAACAAGxGAgICAAICA' +\n 'gIAAAAsLACAAEL6AgIAAAAuWAQEDfyOAgICAAEEQayIBJICAgIAAAkAgACgCACICKAIEIgNBAXFFDQAgAigCACECIAEgA0EBdjYC' +\n 'BCABIAI2AgAgAUGYmcCAACAAKAIEIAAoAggiAC0ACCAALQAJEMCAgIAAAAsgAUF/NgIAIAEgADYCDCABQbSZwIAAIAAoAgQgACgC' +\n 'CCIALQAIIAAtAAkQwICAgAAAC7YBAgJ/AX5BASEGQQQhBwJAAkAgBa0gA61+IghCIIinRQ0AQQAhAwwBCwJAIAinIgNBgICAgHgg' +\n 'BGtNDQBBACEDDAELAkACQAJAAkAgAUUNACACIAUgAWwgBCADEKiAgIAAIQcMAQsCQCADDQAgBCEHDAILEKqAgIAAIAMgBBCmgICA' +\n 'ACEHCyAHDQAgACAENgIEDAELIAAgBzYCBEEAIQYLQQghBwsgACAHaiADNgIAIAAgBjYCAAvSAgEDfyOAgICAAEEgayIFJICAgIAA' +\n 'AkACQAJAAkACQAJAAkACQEEBENGAgIAAQf8BcQ4DBAEAAQtBACgCjKHAgAAiBkF/TA0DIAZBAWoiByAGSA0EQQAgBzYCjKHAgABB' +\n 'ACgCkKHAgABFDQEgBUEIaiAAIAEoAhQRgICAgACAgICAACAFIAQ6AB0gBSADOgAcIAUgAjYCGCAFIAUpAwg3AhBBACgCkKHAgAAg' +\n 'BUEQakEAKAKUocCAACgCFBGAgICAAICAgIAADAILIAUgACABKAIYEYCAgIAAgICAgAAAC0F/IAUQt4CAgAALQQBBACgCjKHAgAAi' +\n 'BUF/ajYCjKHAgAAgBUEATA0CQQBBADoAhKHAgAAgAw0DCwALQfCawIAAQRxBjJvAgAAQgoGAgAAAC0G8m8CAAEHNAEHkm8CAABDv' +\n 'gICAAAALIAAgARDCgICAAAALDQBBAEEBOgDgpMCAAAsOACAAIAEQs4CAgAAaAAsfAAJAIAFBCUkNACABIAAQxICAgAAPCyAAEMWA' +\n 'gIAAC/sCAQV/QQAhAgJAIAFBzf97IABBECAAQRBLGyIAa08NACAAQRAgAUELakF4cSABQQtJGyIDakEMahDFgICAACIBRQ0AIAFB' +\n 'eGohAgJAAkAgAEF/aiIEIAFxDQAgAiEADAELIAFBfGoiBSgCACIGQXhxIAQgAWpBACAAa3FBeGoiAUEAIAAgASACa0EQSxtqIgAg' +\n 'AmsiAWshBAJAIAZBA3FFDQAgACAEIAAoAgRBAXFyQQJyNgIEIAAgBGoiBCAEKAIEQQFyNgIEIAUgASAFKAIAQQFxckECcjYCACAC' +\n 'IAFqIgQgBCgCBEEBcjYCBCACIAEQy4CAgAAMAQsgAigCACECIAAgBDYCBCAAIAIgAWo2AgALAkAgACgCBCIBQQNxRQ0AIAFBeHEi' +\n 'AiADQRBqTQ0AIAAgAyABQQFxckECcjYCBCAAIANqIgEgAiADayIDQQNyNgIEIAAgAmoiAiACKAIEQQFyNgIEIAEgAxDLgICAAAsg' +\n 'AEEIaiECCyACC+snAgl/AX4jgICAgABBEGsiASSAgICAAAJAAkACQAJAIABB9QFJDQACQCAAQcz/e00NAEEAIQAMBAsgAEELaiIC' +\n 'QXhxIQNBACgCuKTAgAAiBEUNAkEfIQUgAEH1//8HTw0BIANBJiACQQh2ZyIAa3ZBAXEgAEEBdGtBPmohBQwBCwJAAkACQAJAAkAC' +\n 'QEEAKAK0pMCAACIGQRAgAEELakH4A3EgAEELSRsiA0EDdiICdiIAQQNxRQ0AIABBf3NBAXEgAmoiB0EDdCIDQayiwIAAaiIAIANB' +\n 'tKLAgABqKAIAIgIoAggiCEYNASAIIAA2AgwgACAINgIIDAILIANBACgCvKTAgABNDQYgAA0CQQAoArikwIAAIgBFDQYgAGhBAnRB' +\n 'nKHAgABqKAIAIggoAgRBeHEgA2shAiAIIQYDQAJAIAgoAhAiAA0AIAgoAhQiAA0AIAYoAhghBQJAAkACQCAGKAIMIgAgBkcNACAG' +\n 'QRRBECAGKAIUIgAbaigCACIIDQFBACEADAILIAYoAggiCCAANgIMIAAgCDYCCAwBCyAGQRRqIAZBEGogABshBwNAIAchCSAIIgBB' +\n 'FGogAEEQaiAAKAIUIggbIQcgAEEUQRAgCBtqKAIAIggNAAsgCUEANgIACyAFRQ0GAkACQCAGIAYoAhxBAnRBnKHAgABqIggoAgBG' +\n 'DQACQCAFKAIQIAZGDQAgBSAANgIUIAANAgwJCyAFIAA2AhAgAA0BDAgLIAggADYCACAARQ0GCyAAIAU2AhgCQCAGKAIQIghFDQAg' +\n 'ACAINgIQIAggADYCGAsgBigCFCIIRQ0GIAAgCDYCFCAIIAA2AhgMBgsgACgCBEF4cSADayIIIAIgCCACSSIIGyECIAAgBiAIGyEG' +\n 'IAAhCAwACwtBACAGQX4gB3dxNgK0pMCAAAsgAkEIaiEAIAIgA0EDcjYCBCACIANqIgMgAygCBEEBcjYCBAwFCwJAAkAgACACdEEC' +\n 'IAJ0IgBBACAAa3JxaCIJQQN0IgJBrKLAgABqIgggAkG0osCAAGooAgAiACgCCCIHRg0AIAcgCDYCDCAIIAc2AggMAQtBACAGQX4g' +\n 'CXdxNgK0pMCAAAsgACADQQNyNgIEIAAgA2oiBiACIANrIghBAXI2AgQgACACaiAINgIAAkBBACgCvKTAgAAiAkUNAEEAKALEpMCA' +\n 'ACEDAkACQEEAKAK0pMCAACIHQQEgAkEDdnQiCXENAEEAIAcgCXI2ArSkwIAAIAJBeHFBrKLAgABqIgIhBwwBCyACQXhxIgJBrKLA' +\n 'gABqIQcgAkG0osCAAGooAgAhAgsgByADNgIIIAIgAzYCDCADIAc2AgwgAyACNgIICyAAQQhqIQBBACAGNgLEpMCAAEEAIAg2Aryk' +\n 'wIAADAQLQQBBACgCuKTAgABBfiAGKAIcd3E2ArikwIAACwJAAkACQCACQRBJDQAgBiADQQNyNgIEIAYgA2oiCCACQQFyNgIEIAgg' +\n 'AmogAjYCAEEAKAK8pMCAACIHRQ0BQQAoAsSkwIAAIQACQAJAQQAoArSkwIAAIglBASAHQQN2dCIFcQ0AQQAgCSAFcjYCtKTAgAAg' +\n 'B0F4cUGsosCAAGoiByEJDAELIAdBeHEiB0GsosCAAGohCSAHQbSiwIAAaigCACEHCyAJIAA2AgggByAANgIMIAAgCTYCDCAAIAc2' +\n 'AggMAQsgBiACIANqIgBBA3I2AgQgBiAAaiIAIAAoAgRBAXI2AgQMAQtBACAINgLEpMCAAEEAIAI2ArykwIAACyAGQQhqIgBFDQEM' +\n 'AgtBACADayECAkACQAJAAkAgBUECdEGcocCAAGooAgAiBg0AQQAhCEEAIQAMAQtBACEIIANBAEEZIAVBAXZrIAVBH0YbdCEHQQAh' +\n 'AANAAkAgBiIGKAIEQXhxIgkgA0kNACAJIANrIgkgAk8NACAGIQggCSECIAkNAEEAIQIgBiEAIAYhCAwDCyAGKAIUIgkgACAJIAYg' +\n 'B0EddkEEcWooAhAiBkcbIAAgCRshACAHQQF0IQcgBg0ACwsCQCAAIAhyDQBBACEIQQIgBXQiAEEAIABrciAEcSIARQ0DIABoQQJ0' +\n 'QZyhwIAAaigCACEACyAARQ0BCwNAIAAoAgRBeHEiBiADayIHIAIgByACSSIJGyEFIAYgA0khByAAIAggCRshCQJAIAAoAhAiBg0A' +\n 'IAAoAhQhBgsgAiAFIAcbIQIgCCAJIAcbIQggBiEAIAYNAAsLIAhFDQACQEEAKAK8pMCAACIAIANJDQAgAiAAIANrTw0BCyAIKAIY' +\n 'IQUCQAJAAkAgCCgCDCIAIAhHDQAgCEEUQRAgCCgCFCIAG2ooAgAiBg0BQQAhAAwCCyAIKAIIIgYgADYCDCAAIAY2AggMAQsgCEEU' +\n 'aiAIQRBqIAAbIQcDQCAHIQkgBiIAQRRqIABBEGogACgCFCIGGyEHIABBFEEQIAYbaigCACIGDQALIAlBADYCAAsCQCAFRQ0AAkAC' +\n 'QAJAIAggCCgCHEECdEGcocCAAGoiBigCAEYNAAJAIAUoAhAgCEYNACAFIAA2AhQgAA0CDAQLIAUgADYCECAADQEMAwsgBiAANgIA' +\n 'IABFDQELIAAgBTYCGAJAIAgoAhAiBkUNACAAIAY2AhAgBiAANgIYCyAIKAIUIgZFDQEgACAGNgIUIAYgADYCGAwBC0EAQQAoArik' +\n 'wIAAQX4gCCgCHHdxNgK4pMCAAAsCQAJAIAJBEEkNACAIIANBA3I2AgQgCCADaiIAIAJBAXI2AgQgACACaiACNgIAAkAgAkGAAkkN' +\n 'ACAAIAIQ0ICAgAAMAgsCQAJAQQAoArSkwIAAIgZBASACQQN2dCIHcQ0AQQAgBiAHcjYCtKTAgAAgAkH4AXFBrKLAgABqIgIhBgwB' +\n 'CyACQfgBcSICQayiwIAAaiEGIAJBtKLAgABqKAIAIQILIAYgADYCCCACIAA2AgwgACAGNgIMIAAgAjYCCAwBCyAIIAIgA2oiAEED' +\n 'cjYCBCAIIABqIgAgACgCBEEBcjYCBAsgCEEIaiIADQELAkACQAJAAkACQAJAQQAoArykwIAAIgAgA08NAAJAQQAoAsCkwIAAIgAg' +\n 'A0sNACABQQRqQeCkwIAAIANBr4AEakGAgHxxEOKAgIAAAkAgASgCBCIGDQBBACEADAgLIAEoAgwhBUEAQQAoAsykwIAAIAEoAggi' +\n 'CWoiADYCzKTAgABBACAAQQAoAtCkwIAAIgIgACACSxs2AtCkwIAAAkACQAJAQQAoAsikwIAAIgJFDQBBnKLAgAAhAANAIAYgACgC' +\n 'ACIIIAAoAgQiB2pGDQIgACgCCCIADQAMAwsLAkACQEEAKALYpMCAACIARQ0AIAYgAE8NAQtBACAGNgLYpMCAAAtBAEH/HzYC3KTA' +\n 'gABBACAFNgKoosCAAEEAIAk2AqCiwIAAQQAgBjYCnKLAgABBAEGsosCAADYCuKLAgABBAEG0osCAADYCwKLAgABBAEGsosCAADYC' +\n 'tKLAgABBAEG8osCAADYCyKLAgABBAEG0osCAADYCvKLAgABBAEHEosCAADYC0KLAgABBAEG8osCAADYCxKLAgABBAEHMosCAADYC' +\n '2KLAgABBAEHEosCAADYCzKLAgABBAEHUosCAADYC4KLAgABBAEHMosCAADYC1KLAgABBAEHcosCAADYC6KLAgABBAEHUosCAADYC' +\n '3KLAgABBAEHkosCAADYC8KLAgABBAEHcosCAADYC5KLAgABBAEHsosCAADYC+KLAgABBAEHkosCAADYC7KLAgABBAEHsosCAADYC' +\n '9KLAgABBAEH0osCAADYCgKPAgABBAEH0osCAADYC/KLAgABBAEH8osCAADYCiKPAgABBAEH8osCAADYChKPAgABBAEGEo8CAADYC' +\n 'kKPAgABBAEGEo8CAADYCjKPAgABBAEGMo8CAADYCmKPAgABBAEGMo8CAADYClKPAgABBAEGUo8CAADYCoKPAgABBAEGUo8CAADYC' +\n 'nKPAgABBAEGco8CAADYCqKPAgABBAEGco8CAADYCpKPAgABBAEGko8CAADYCsKPAgABBAEGko8CAADYCrKPAgABBAEGso8CAADYC' +\n 'uKPAgABBAEG0o8CAADYCwKPAgABBAEGso8CAADYCtKPAgABBAEG8o8CAADYCyKPAgABBAEG0o8CAADYCvKPAgABBAEHEo8CAADYC' +\n '0KPAgABBAEG8o8CAADYCxKPAgABBAEHMo8CAADYC2KPAgABBAEHEo8CAADYCzKPAgABBAEHUo8CAADYC4KPAgABBAEHMo8CAADYC' +\n '1KPAgABBAEHco8CAADYC6KPAgABBAEHUo8CAADYC3KPAgABBAEHko8CAADYC8KPAgABBAEHco8CAADYC5KPAgABBAEHso8CAADYC' +\n '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' +\n 'AX8gASgCAEHPn8CAAEEBIAEoAgQoAgwRgYCAgACAgICAACECIABBADoABSAAIAI6AAQgACABNgIAC5kGAgh/AX5BK0F/IAAoAggi' +\n 'BkGAgIABcSIHGyEIIAdBFXZBASABGyAFaiEJAkACQCAGQYCAgARxDQBBACECDAELAkACQCADQRBJDQAgAiADEPiAgIAAIQcMAQsC' +\n 'QCADDQBBACEHDAELIANBA3EhCkEAIQtBACEHAkAgA0EESQ0AIANBDHEhDEEAIQtBACEHA0AgByACIAtqIg0sAABBv39KaiANQQFq' +\n 'LAAAQb9/SmogDUECaiwAAEG/f0pqIA1BA2osAABBv39KaiEHIAwgC0EEaiILRw0ACyAKRQ0BCyACIAtqIQ0DQCAHIA0sAABBv39K' +\n 'aiEHIA1BAWohDSAKQX9qIgoNAAsLIAcgCWohCQsgCEEtIAEbIQwCQAJAIAkgAC8BDCIBTw0AAkACQAJAIAZBgICACHENACABIAlr' +\n 'IQhBACEHQQAhAQJAAkACQCAGQR12QQNxDgQCAAEAAgsgCCEBDAELIAhB/v8DcUEBdiEBCyAGQf///wBxIQkgACgCBCELIAAoAgAh' +\n 'CgNAIAdB//8DcSABQf//A3FPDQJBASENIAdBAWohByAKIAkgCygCEBGCgICAAICAgIAARQ0ADAULCyAAIAApAggiDqdBgICA/3lx' +\n 'QbCAgIACcjYCCEEBIQ0gACgCACIKIAAoAgQiCyAMIAIgAxD5gICAAA0DQQAhByABIAlrQf//A3EhAgNAIAdB//8DcSACTw0CQQEh' +\n 'DSAHQQFqIQcgCkEwIAsoAhARgoCAgACAgICAAEUNAAwECwtBASENIAogCyAMIAIgAxD5gICAAA0CIAogBCAFIAsoAgwRgYCAgACA' +\n 'gICAAA0CQQAhByAIIAFrQf//A3EhAANAIAdB//8DcSICIABJIQ0gAiAATw0DIAdBAWohByAKIAkgCygCEBGCgICAAICAgIAARQ0A' +\n 'DAMLC0EBIQ0gCiAEIAUgCygCDBGBgICAAICAgIAADQEgACAONwIIQQAPC0EBIQ0gACgCACIHIAAoAgQiCiAMIAIgAxD5gICAAA0A' +\n 'IAcgBCAFIAooAgwRgYCAgACAgICAACENCyANC+sGAQh/AkACQCABIABBA2pBfHEiAiAAayIDSQ0AIAEgA2siBEECdiIFRQ0AIARB' +\n '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' +\n 'A3FBAXQvAIeewIAAOwAAIANBfGohAyAAQf+s4gRLDQALCwJAAkAgBUEJSw0AIAUhAAwBCyACQQZqIANBfmoiA2ogBSAFQf//A3FB' +\n '5ABuIgBB5ABsa0H//wNxQQF0LwCHnsCAADsAAAsCQAJAIARFDQAgAEUNAQsgAkEGaiADQX9qIgNqIABBAXQtAIiewIAAOgAACyAB' +\n 'IARBf3NBH3ZBAUEAIAJBBmogA2pBCiADaxD3gICAACEDIAJBEGokgICAgAAgAwt+AQJ/I4CAgIAAQRBrIgIkgICAgAAgACgCACED' +\n 'QQAhAANAIAJBCGogAGpBB2ogA0EPcS0Aj6DAgAA6AAAgAEF/aiEAIANBBHYiAw0ACyABQQFBjaDAgABBAiACQQhqIABqQQhqQQAg' +\n 'AGsQ94CAgAAhACACQRBqJICAgIAAIAALDgAgAiAAIAEQ+oCAgAALFAAgAEHEncCAACABIAIQ8YCAgAALC+EgAQBBgIDAAAvXID1O' +\n 'dW1iZXIgb2YgY2x1c3RlcnMgKGtzKSBtdXN0IGJlIGJldHdlZW4gMSBhbmQgMioqMzIgLSAxLiBHb3QgwAA0TnVtYmVyIG9mIHN1' +\n 'YnNwYWNlcyAobSkgbXVzdCBiZSBncmVhdGVyIHRoYW4gMC4gR290IMAAC0NvZGUgdmFsdWUgwBwgZXhjZWVkcyBudW1iZXIgb2Yg' +\n 'Y2x1c3RlcnMgwAAgaW5kZXggb3V0IG9mIGJvdW5kczogdGhlIGxlbiBpcyDAEiBidXQgdGhlIGluZGV4IGlzIMAAJEVuY29kZWQg' +\n 'dmFsdWVzIGV4Y2VlZCB0aGUgcmFuZ2UgZm9yIMAAFVVua25vd24gbW9kZWwgaGFuZGxlIMAAL25kYXJyYXk6IGNvdWxkIG5vdCBi' +\n 'cm9hZGNhc3QgYXJyYXkgZnJvbSBzaGFwZTogwAUgdG86IMAAC1NoYXBlRXJyb3IvwAI6IMAAL3J1c3RjLzJkODE0NGI3ODgwNTk3' +\n 'YjZlNmQzZGZkNjNhOWE5ZWZhZTNmNTMzZDMvbGlicmFyeS9hbGxvYy9zcmMvZm10LnJzAC9jYXJnby9yZWdpc3RyeS9zcmMvaW5k' +\n 'ZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvbmRhcnJheS0wLjE2LjEvc3JjL2ltcGxfY29uc3RydWN0b3JzLnJzAHNyYy92' +\n 'ZW5kb3IvdXRpbHMucnMAL2NhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9uZGFycmF5' +\n 'LTAuMTYuMS9zcmMvaW1wbF9tZXRob2RzLnJzAC9ydXN0Yy8yZDgxNDRiNzg4MDU5N2I2ZTZkM2RmZDYzYTlhOWVmYWUzZjUzM2Qz' +\n 'L2xpYnJhcnkvc3RkL3NyYy9zeXMvdGhyZWFkX2xvY2FsL25vX3RocmVhZHMucnMAL3J1c3RjLzJkODE0NGI3ODgwNTk3YjZlNmQz' +\n 'ZGZkNjNhOWE5ZWZhZTNmNTMzZDMvbGlicmFyeS9zdGQvc3JjL3N5cy9zeW5jL3J3bG9jay9ub190aHJlYWRzLnJzAHNyYy92ZW5k' +\n 'b3IvcHEucnMAL3J1c3RjLzJkODE0NGI3ODgwNTk3YjZlNmQzZGZkNjNhOWE5ZWZhZTNmNTMzZDMvbGlicmFyeS9hbGxvYy9zcmMv' +\n 'c3RyaW5nLnJzAC9jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvbmRhcnJheS0wLjE2' +\n 'LjEvc3JjL3ppcC9tb2QucnMAL3J1c3RjLzJkODE0NGI3ODgwNTk3YjZlNmQzZGZkNjNhOWE5ZWZhZTNmNTMzZDMvbGlicmFyeS9h' +\n 'bGxvYy9zcmMvcmF3X3ZlYy9tb2QucnMAL3J1c3QvZGVwcy9kbG1hbGxvYy0wLjIuMTMvc3JjL2RsbWFsbG9jLnJzAC9jYXJnby9y' +\n 'ZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvbmRhcnJheS0wLjE2LjEvc3JjL2xpYi5ycwAgVGhl' +\n 'IG51bWJlciBvZiB0cmFpbmluZyB2ZWN0b3JzICjAGCkgbXVzdCBiZSBtb3JlIHRoYW4ga3MgKMABKQA+TnVtYmVyIG9mIGNsdXN0' +\n 'ZXJzIGsgbXVzdCBiZSBiZXR3ZWVuIDEgYW5kIG51bWJlciBvZiBzYW1wbGVzICjAASkAOU51bWJlciBvZiBzdWJzcGFjZXMgKG0p' +\n 'IGNhbm5vdCBleGNlZWQgdmVjdG9yIGRpbWVuc2lvbnMgKMADID4gwAEpAAAAAAAAAQAAAAEAAAAGAAAAY2FsbGVkIGBSZXN1bHQ6' +\n 'OnVud3JhcCgpYCBvbiBhbiBgRXJyYCB2YWx1ZQAKAhAAEwAAAC8AAAATAAAAbmRhcnJheTogU2hhcGUgdG9vIGxhcmdlLCBwcm9k' +\n 'dWN0IG9mIG5vbi16ZXJvIGF4aXMgbGVuZ3RocyBvdmVyZmxvd3MgaXNpemUAAK0BEABcAAAASQEAABQAAACtARAAXAAAAEwCAAAY' +\n 'AAAArQEQAFwAAACeAQAAEQAAAAAAAAAEAAAABAAAAAcAAABBdHRlbXB0ZWQgdG8gaW5pdGlhbGl6ZSB0aHJlYWQtbG9jYWwgd2hp' +\n 'bGUgaXQgaXMgYmVpbmcgZHJvcHBlZAAAdgIQAF4AAABrAAAADQAAAGFzc2VydGlvbiBmYWlsZWQ6IHBhcnQuZXF1YWxfZGltKGRp' +\n 'bWVuc2lvbikAkAMQAFIAAAD+AAAABQAAAGFzc2VydGlvbiBmYWlsZWQ6IGluZGV4IDwgZGltAAAAXwQQAE4AAAAPBgAADQAAAKME' +\n 'EAAKAAAALAAAAB0AAAAeAhAAVwAAAC0CAAAWAAAAHgIQAFcAAAA3AgAAFgAAAKMEEAAKAAAAxwAAAD8AAACjBBAACgAAANoAAAAk' +\n 'AAAAowQQAAoAAABMAAAAGwAAAKMEEAAKAAAARwAAABsAAABNb2RlbCBub3QgdHJhaW5lZEJ5dGUgY29kZXMgcmVxdWlyZSBrcyA8' +\n 'PSAyNTYAAACjBBAACgAAAB8AAAAhAAAAowQQAAoAAAAZAAAAHAAAADMDEAAQAAAAcQAAAC8AAAAzAxAAEAAAAHkAAAA4AAAAMwMQ' +\n 'ABAAAAB5AAAAQwAAADMDEAAQAAAA2QAAACwAAAAzAxAAEAAAAJ0AAAAzAAAAMwMQABAAAACdAAAAOgAAAAoCEAATAAAAfQAAABcA' +\n 'AAAKAhAAEwAAAIUAAAAaAAAACgIQABMAAACJAAAALwAAADMDEAAQAAAAcQAAAEYAAAAzAxAAEAAAAIAAAAArAAAAMwMQABAAAACB' +\n 'AAAAKAAAADMDEAAQAAAAgQAAADgAAAAzAxAAEAAAACUAAAAUAAAACgIQABMAAACUAAAAEAAAAAoCEAATAAAAUgAAACMAAAAKAhAA' +\n 'EwAAAFIAAAA7AAAAVThVMTZVMzIIAAAADAAAAAQAAAAJAAAACgAAAAsAAAAAAAAAAAAAAAEAAAAMAAAAYSBEaXNwbGF5IGltcGxl' +\n 'bWVudGF0aW9uIHJldHVybmVkIGFuIGVycm9yIHVuZXhwZWN0ZWRseQBEAxAASwAAAHELAAAOAAAARXJyb3JJbnB1dCB2ZWN0b3Jz' +\n 'IG11c3QgaGF2ZSBhdCBsZWFzdCBvbmUgZGltZW5zaW9uTW9kZWwgbm90IHRyYWluZWQuIENhbGwgZml0KCkgYmVmb3JlIGNhbGxp' +\n 'bmcgdGhpcyBtZXRob2RJbnB1dCB2ZWN0b3JzIGRpbWVuc2lvbnMgc2hvdWxkIG1hdGNoIHRyYWluaW5nIGRpbWVuc2lvbnNFbmNv' +\n 'ZGVkIHZhbHVlcyBleGNlZWQgVTggcmFuZ2VFbmNvZGVkIHZhbHVlcyBleGNlZWQgVTE2IHJhbmdlRGF0YSBtdXN0IGhhdmUgYXQg' +\n 'bGVhc3Qgb25lIHNhbXBsZSBhbmQgb25lIGZlYXR1cmVEYXRhIGNvbnRhaW5zIG5vbi1maW5pdGUgdmFsdWVzIChOYU4gb3IgSW5m' +\n 'KVVuc3VwcG9ydGVkIGluaXRpYWxpemF0aW9uIG1ldGhvZAIAAAADAAAAAwAAANgIEADaCBAA3QgQAGFzc2VydGlvbiBmYWlsZWQ6' +\n 'IHN0YXJ0IDw9IGF4aXNfbGVuYXNzZXJ0aW9uIGZhaWxlZDogZW5kIDw9IGF4aXNfbGVuYXNzZXJ0aW9uIGZhaWxlZDogc3RlcCAh' +\n 'PSAwaW5jb21wYXRpYmxlIHNoYXBlc2luY29tcGF0aWJsZSBtZW1vcnkgbGF5b3V0dGhlIHNoYXBlIGRvZXMgbm90IGZpdCBpbiB0' +\n 'eXBlIGxpbWl0c291dCBvZiBib3VuZHMgaW5kZXhpbmd1bnN1cHBvcnRlZCBvcGVyYXRpb25hcml0aG1ldGljIG92ZXJmbG93SW5j' +\n 'b21wYXRpYmxlU2hhcGVJbmNvbXBhdGlibGVMYXlvdXRSYW5nZUxpbWl0ZWRPdXRPZkJvdW5kc1Vuc3VwcG9ydGVkT3ZlcmZsb3cn' +\n 'CxAAOgsQAFQLEAB5CxAAjwsQAKQLEAATAAAAGgAAACUAAAAWAAAAFQAAABMAAAARAAAAEgAAAAwAAAALAAAACwAAAAgAAAC3CxAA' +\n 'yAsQANoLEADmCxAA8QsQAPwLEAAAAAAACAAAAAQAAAARAAAAEgAAABMAAAAUAAAAFQAAAAwAAAAEAAAAFgAAABcAAAAYAAAAAAAA' +\n 'AAgAAAAEAAAAGQAAABoAAAAbAAAAHAAAAB0AAAAQAAAABAAAAB4AAAAfAAAAIAAAABQAAABc9ulf3AL2ufHBcGzyYcEkSv4MNHFP' +\n '91/fOOR5Jf4cdGFzc2VydGlvbiBmYWlsZWQ6IHBzaXplID49IHNpemUgKyBtaW5fb3ZlcmhlYWQAADQEEAAqAAAAsQQAAAkAAABh' +\n 'c3NlcnRpb24gZmFpbGVkOiBwc2l6ZSA8PSBzaXplICsgbWF4X292ZXJoZWFkAAA0BBAAKgAAALcEAAANAAAAcndsb2NrIG92ZXJm' +\n 'bG93ZWQgcmVhZCBsb2Nrc9UCEABdAAAAFQAAACwAAAAAAAAACAAAAAQAAAAhAAAAFQAAAAwAAAAEAAAAIgAAAHJ3bG9jayBoYXMg' +\n 'bm90IGJlZW4gbG9ja2VkIGZvciByZWFkaW5nAADVAhAAXQAAAD4AAAAJAAAAY2FwYWNpdHkgb3ZlcmZsb3cAAADjAxAAUAAAABwA' +\n 'AAAFAAAAIwAAAAwAAAAEAAAAJAAAACUAAAAmAAAAAAAAAAAAAAABAAAAJwAAAGEgZm9ybWF0dGluZyB0cmFpdCBpbXBsZW1lbnRh' +\n 'dGlvbiByZXR1cm5lZCBhbiBlcnJvciB3aGVuIHRoZSB1bmRlcmx5aW5nIHN0cmVhbSBkaWQgbm90AABkARAASAAAAI8CAAAOAAAA' +\n 'RXJyb3IwMTIzNDU2Nzg5YWJjZGVmLCAsCgpdAAAAAAAMAAAABAAAAC0AAAAuAAAALwAAAGNhbGxlZCBgT3B0aW9uOjp1bndyYXAo' +\n 'KWAgb24gYSBgTm9uZWAgdmFsdWUwMDAxMDIwMzA0MDUwNjA3MDgwOTEwMTExMjEzMTQxNTE2MTcxODE5MjAyMTIyMjMyNDI1MjYy' +\n 'NzI4MjkzMDMxMzIzMzM0MzUzNjM3MzgzOTQwNDE0MjQzNDQ0NTQ2NDc0ODQ5NTA1MTUyNTM1NDU1NTY1NzU4NTk2MDYxNjI2MzY0' +\n 'NjU2NjY3Njg2OTcwNzE3MjczNzQ3NTc2Nzc3ODc5ODA4MTgyODM4NDg1ODY4Nzg4ODk5MDkxOTI5Mzk0OTU5Njk3OTg5OVthdHRl' +\n 'bXB0IHRvIGNhbGN1bGF0ZSB0aGUgcmVtYWluZGVyIHdpdGggYSBkaXZpc29yIG9mIHplcm8gICAgMHgwMTIzNDU2Nzg5QUJDREVG' +\n 'UmVmQ2VsbCBhbHJlYWR5IG11dGFibHkgYm9ycm93ZWRSZWZDZWxsIGFscmVhZHkgYm9ycm93ZWQ='\n","import { base64ToBytes } from 'zbsearch/trees/vector-flat'\nimport { WASM_BASE64 } from './wasm-binary.js'\n\ninterface VectorQuantizerExports {\n memory: WebAssembly.Memory\n vq_alloc(bytes: number): number\n vq_free(ptr: number, bytes: number): void\n vq_error_ptr(): number\n vq_error_len(): number\n vq_pq_fit(data: number, n: number, dim: number, m: number, ks: number, iterations: number, seed: number): number\n vq_pq_from_codewords(codewords: number, m: number, ks: number, width: number, dim: number): number\n vq_pq_codewords_len(handle: number): number\n vq_pq_width(handle: number): number\n vq_pq_codewords(handle: number, out: number): number\n vq_pq_encode(handle: number, data: number, n: number, out: number): number\n vq_pq_decode(handle: number, codes: number, n: number, out: number): number\n vq_pq_drop(handle: number): void\n}\n\nexport interface TrainedCodebook {\n handle: number\n codewords: Float32Array\n width: number\n}\n\n/**\n * Thin wrapper over the WebAssembly build of vector_quantizer's product quantizer. The module has no imports, so it\n * instantiates the same way in browsers, Node.js, Deno, workers and Gecko (Zotero) without bundler configuration.\n */\nexport class VectorQuantizerWasm {\n private readonly exports: VectorQuantizerExports\n private readonly registry: FinalizationRegistry<number> | undefined\n\n constructor(instance: WebAssembly.Instance) {\n this.exports = instance.exports as unknown as VectorQuantizerExports\n this.registry =\n typeof FinalizationRegistry === 'function'\n ? new FinalizationRegistry((handle: number) => this.exports.vq_pq_drop(handle))\n : undefined\n }\n\n /** Frees the model `handle` once `owner` is garbage collected. Returns the token to pass to `release`. */\n track(owner: object, handle: number): object {\n const token = {}\n this.registry?.register(owner, handle, token)\n return token\n }\n\n /** Frees the model `handle` now. */\n release(handle: number, token?: object) {\n if (token) {\n this.registry?.unregister(token)\n }\n this.exports.vq_pq_drop(handle)\n }\n\n private check(result: number): number {\n if (result >= 0) {\n return result\n }\n const ptr = this.exports.vq_error_ptr()\n const len = this.exports.vq_error_len()\n const bytes = new Uint8Array(this.exports.memory.buffer, ptr, len)\n let message = ''\n for (let i = 0; i < bytes.length; i++) {\n message += String.fromCharCode(bytes[i]!)\n }\n throw new Error(`vector_quantizer: ${message}`)\n }\n\n private withBuffer<T>(bytes: number, run: (ptr: number) => T): T {\n const ptr = this.exports.vq_alloc(bytes)\n try {\n return run(ptr)\n } finally {\n this.exports.vq_free(ptr, bytes)\n }\n }\n\n private writeFloats(ptr: number, values: Float32Array) {\n new Float32Array(this.exports.memory.buffer, ptr, values.length).set(values)\n }\n\n private readCodebook(handle: number): TrainedCodebook {\n const length = this.check(this.exports.vq_pq_codewords_len(handle))\n const width = this.check(this.exports.vq_pq_width(handle))\n const codewords = this.withBuffer(length * 4, (out) => {\n this.check(this.exports.vq_pq_codewords(handle, out))\n return new Float32Array(this.exports.memory.buffer, out, length).slice()\n })\n return { handle, codewords, width }\n }\n\n /** Trains a product quantizer on `n` row-major vectors (`data.length === n * dim`). */\n fit(data: Float32Array, n: number, dim: number, m: number, ks: number, iterations: number, seed: number) {\n return this.withBuffer(data.byteLength, (ptr) => {\n this.writeFloats(ptr, data)\n const handle = this.check(this.exports.vq_pq_fit(ptr, n, dim, m, ks, iterations, seed >>> 0))\n return this.readCodebook(handle)\n })\n }\n\n /** Loads a trained codebook of shape (m, ks, width) and returns its model handle. */\n load(codewords: Float32Array, m: number, ks: number, width: number, dim: number): number {\n return this.withBuffer(codewords.byteLength, (ptr) => {\n this.writeFloats(ptr, codewords)\n return this.check(this.exports.vq_pq_from_codewords(ptr, m, ks, width, dim))\n })\n }\n\n /** Encodes `n` row-major vectors into `n * m` byte codes. */\n encode(handle: number, data: Float32Array, n: number, m: number): Uint8Array {\n return this.withBuffer(data.byteLength, (input) =>\n this.withBuffer(n * m, (out) => {\n this.writeFloats(input, data)\n this.check(this.exports.vq_pq_encode(handle, input, n, out))\n return new Uint8Array(this.exports.memory.buffer, out, n * m).slice()\n })\n )\n }\n\n /** Decodes `n * m` byte codes into `n * dim` floats. */\n decode(handle: number, codes: Uint8Array, n: number, dim: number): Float32Array {\n return this.withBuffer(codes.byteLength, (input) =>\n this.withBuffer(n * dim * 4, (out) => {\n new Uint8Array(this.exports.memory.buffer, input, codes.length).set(codes)\n this.check(this.exports.vq_pq_decode(handle, input, n, out))\n return new Float32Array(this.exports.memory.buffer, out, n * dim).slice()\n })\n )\n }\n}\n\nlet wasmBytes: Uint8Array | undefined\nlet shared: VectorQuantizerWasm | undefined\nlet pending: Promise<VectorQuantizerWasm> | undefined\n\nfunction bytes(): Uint8Array {\n wasmBytes ??= base64ToBytes(WASM_BASE64)\n return wasmBytes\n}\n\n/** Compiles and instantiates the WebAssembly module asynchronously (works on every engine's main thread). */\nexport function loadVectorQuantizerWasm(): Promise<VectorQuantizerWasm> {\n if (shared) {\n return Promise.resolve(shared)\n }\n pending ??= (async () => {\n const module = await WebAssembly.compile(bytes() as Uint8Array<ArrayBuffer>)\n const instance = await WebAssembly.instantiate(module, {})\n shared ??= new VectorQuantizerWasm(instance)\n return shared\n })()\n return pending\n}\n\n/**\n * Compiles and instantiates the module synchronously. Fine in Node.js, Deno, workers and privileged Gecko code;\n * browsers may refuse synchronous compilation of large modules on the main thread, so prefer the async loader there.\n */\nexport function loadVectorQuantizerWasmSync(): VectorQuantizerWasm {\n shared ??= new VectorQuantizerWasm(\n new WebAssembly.Instance(new WebAssembly.Module(bytes() as Uint8Array<ArrayBuffer>), {})\n )\n return shared\n}\n","import type { AnyZBSearch, CodeBuffer, VectorBinarySnapshot, VectorQuantizer, VectorQuantizerFactory } from 'zbsearch'\nimport { loadVectorQuantizerWasm, loadVectorQuantizerWasmSync, type VectorQuantizerWasm } from './wasm.js'\n\nexport { loadVectorQuantizerWasm, loadVectorQuantizerWasmSync, VectorQuantizerWasm } from './wasm.js'\n\nexport const PQ_KIND = 'pq'\n\nexport interface PQOptions {\n /** Number of subspaces, i.e. bytes per vector. Defaults to `dim / 8` (8 dimensions per subspace). */\n m?: number\n /** Centroids per subspace, at most 256 (codes are bytes). Defaults to 256. */\n ks?: number\n /** k-means iterations per subspace. Defaults to 12. */\n iterations?: number\n /**\n * Vectors collected before the quantizer is trained. Until then the index keeps them as float32 and searches them\n * exactly. Defaults to `max(4 * ks, 1024)`.\n */\n trainingSize?: number\n /** Upper bound on the vectors used by one fit (evenly sampled). Defaults to `max(trainingSize, 4096)`. */\n maxTrainingSize?: number\n /** Seed of the k-means initialisation, so fits are reproducible. Defaults to 42. */\n seed?: number\n}\n\ninterface ResolvedPQOptions {\n m: number\n ks: number\n iterations: number\n trainingSize: number\n maxTrainingSize: number\n seed: number\n}\n\nfunction resolveOptions(dim: number, options: PQOptions): ResolvedPQOptions {\n const m = options.m ?? Math.max(1, Math.round(dim / 8))\n const ks = options.ks ?? 256\n if (!Number.isInteger(m) || m < 1 || m > dim) {\n throw new Error(`pq: m must be an integer between 1 and the vector size (${dim}), got ${m}.`)\n }\n if (!Number.isInteger(ks) || ks < 2 || ks > 256) {\n throw new Error(`pq: ks must be an integer between 2 and 256, got ${ks}.`)\n }\n const trainingSize = Math.max(options.trainingSize ?? Math.max(4 * ks, 1024), ks)\n return {\n m,\n ks,\n iterations: options.iterations ?? 12,\n trainingSize,\n maxTrainingSize: Math.max(options.maxTrainingSize ?? Math.max(trainingSize, 4096), trainingSize),\n seed: options.seed ?? 42\n }\n}\n\nfunction align4(bytes: number): number {\n return (bytes + 3) & ~3\n}\n\n/**\n * Product quantizer backed by the WebAssembly build of vector_quantizer.\n *\n * Each vector is split into `m` subspaces; every subspace is replaced by the index of its nearest centroid among\n * `ks` (one byte). Queries are scored with asymmetric distance computation: a `m × ks` table of query-centroid dot\n * products is built once per query, then each code is scored with `m` table lookups. The score is divided by the\n * norm of the reconstructed vector, so it estimates the cosine similarity used by zbsearch.\n *\n * Code layout: `m` code bytes, padding to 4 bytes, then the float32 inverse norm of the reconstruction.\n */\nexport class ProductQuantizer implements VectorQuantizer<Float32Array> {\n readonly kind = PQ_KIND\n readonly codeSize: number\n readonly m: number\n readonly ks: number\n readonly iterations: number\n readonly trainingSize: number\n readonly maxTrainingSize: number\n readonly seed: number\n\n private codewords: Float32Array | undefined\n private width = 0\n private handle: number | undefined\n private handleToken: object | undefined\n private readonly offsets: Int32Array\n private readonly normOffset: number\n private codewordNorms: Float32Array | undefined\n\n constructor(\n readonly dim: number,\n options: PQOptions,\n private readonly wasm: VectorQuantizerWasm\n ) {\n const resolved = resolveOptions(dim, options)\n this.m = resolved.m\n this.ks = resolved.ks\n this.iterations = resolved.iterations\n this.trainingSize = resolved.trainingSize\n this.maxTrainingSize = resolved.maxTrainingSize\n this.seed = resolved.seed\n this.normOffset = align4(this.m)\n this.codeSize = this.normOffset + 4\n\n // Same split as vector_quantizer: the first `dim % m` subspaces get one extra dimension.\n this.offsets = new Int32Array(this.m + 1)\n const quotient = Math.floor(dim / this.m)\n const remainder = dim % this.m\n for (let s = 0; s < this.m; s++) {\n this.offsets[s + 1] = this.offsets[s]! + (s < remainder ? quotient + 1 : quotient)\n }\n }\n\n get ready(): boolean {\n return this.codewords !== undefined\n }\n\n /** The trained codebook, shaped (m, ks, width) in row-major order. */\n get codebook(): Float32Array | undefined {\n return this.codewords\n }\n\n private setCodebook(codewords: Float32Array, width: number, handle: number | undefined) {\n if (this.handle !== undefined) {\n this.wasm.release(this.handle, this.handleToken)\n }\n this.codewords = codewords\n this.width = width\n this.handle = handle\n this.handleToken = handle === undefined ? undefined : this.wasm.track(this, handle)\n\n const norms = new Float32Array(this.m * this.ks)\n for (let s = 0; s < this.m; s++) {\n const length = this.offsets[s + 1]! - this.offsets[s]!\n for (let k = 0; k < this.ks; k++) {\n const base = (s * this.ks + k) * width\n let sum = 0\n for (let d = 0; d < length; d++) {\n sum += codewords[base + d]! * codewords[base + d]!\n }\n norms[s * this.ks + k] = sum\n }\n }\n this.codewordNorms = norms\n }\n\n private modelHandle(): number {\n if (!this.codewords) {\n throw new Error('pq: the quantizer has not been trained yet.')\n }\n if (this.handle === undefined) {\n const handle = this.wasm.load(this.codewords, this.m, this.ks, this.width, this.dim)\n this.handle = handle\n this.handleToken = this.wasm.track(this, handle)\n }\n return this.handle\n }\n\n fit(vectors: Float32Array[]): void {\n let sample = vectors\n if (vectors.length > this.maxTrainingSize) {\n const step = vectors.length / this.maxTrainingSize\n sample = Array.from({ length: this.maxTrainingSize }, (_, i) => vectors[Math.floor(i * step)]!)\n }\n if (sample.length < this.ks) {\n throw new Error(`pq: training needs at least ks (${this.ks}) vectors, got ${sample.length}.`)\n }\n\n const data = new Float32Array(sample.length * this.dim)\n sample.forEach((vector, i) => data.set(vector.subarray(0, this.dim), i * this.dim))\n const trained = this.wasm.fit(data, sample.length, this.dim, this.m, this.ks, this.iterations, this.seed)\n this.setCodebook(trained.codewords, trained.width, trained.handle)\n }\n\n encode(vector: Float32Array, codes: CodeBuffer, offset: number): void {\n const encoded = this.wasm.encode(this.modelHandle(), vector.subarray(0, this.dim), 1, this.m)\n codes.u8.set(encoded, offset)\n\n let normSq = 0\n const norms = this.codewordNorms!\n for (let s = 0; s < this.m; s++) {\n normSq += norms[s * this.ks + encoded[s]!]!\n }\n codes.f32[(offset + this.normOffset) >> 2] = normSq > 0 ? 1 / Math.sqrt(normSq) : 0\n }\n\n prepareQuery(query: Float32Array): Float32Array {\n const codewords = this.codewords!\n const table = new Float32Array(this.m * this.ks)\n for (let s = 0; s < this.m; s++) {\n const start = this.offsets[s]!\n const length = this.offsets[s + 1]! - start\n for (let k = 0; k < this.ks; k++) {\n const base = (s * this.ks + k) * this.width\n let sum = 0\n for (let d = 0; d < length; d++) {\n sum += query[start + d]! * codewords[base + d]!\n }\n table[s * this.ks + k] = sum\n }\n }\n return table\n }\n\n score(table: Float32Array, codes: CodeBuffer, offset: number): number {\n const u8 = codes.u8\n const ks = this.ks\n let sum = 0\n for (let s = 0; s < this.m; s++) {\n sum += table[s * ks + u8[offset + s]!]!\n }\n const score = sum * codes.f32[(offset + this.normOffset) >> 2]!\n return score > 1 ? 1 : score < -1 ? -1 : score\n }\n\n decode(codes: CodeBuffer, offset: number, out: Float32Array): void {\n const codewords = this.codewords!\n for (let s = 0; s < this.m; s++) {\n const start = this.offsets[s]!\n const length = this.offsets[s + 1]! - start\n const base = (s * this.ks + codes.u8[offset + s]!) * this.width\n for (let d = 0; d < length; d++) {\n out[start + d] = codewords[base + d]!\n }\n }\n }\n\n toSnapshot(): VectorBinarySnapshot {\n return {\n meta: {\n kind: PQ_KIND,\n dim: this.dim,\n m: this.m,\n ks: this.ks,\n iterations: this.iterations,\n trainingSize: this.trainingSize,\n maxTrainingSize: this.maxTrainingSize,\n seed: this.seed,\n width: this.width\n },\n arrays: this.codewords ? { codewords: this.codewords } : {}\n }\n }\n\n static fromSnapshot(snapshot: VectorBinarySnapshot, wasm: VectorQuantizerWasm): ProductQuantizer {\n const meta = snapshot.meta as Required<PQOptions> & { dim: number; width: number }\n const quantizer = new ProductQuantizer(meta.dim, meta, wasm)\n const codewords = snapshot.arrays.codewords as Float32Array | undefined\n if (codewords) {\n // The model is only loaded into WebAssembly when a new vector has to be encoded.\n quantizer.setCodebook(codewords, meta.width, undefined)\n }\n return quantizer\n }\n}\n\nexport interface PQFactory extends VectorQuantizerFactory {\n readonly kind: typeof PQ_KIND\n readonly options: PQOptions\n create(dim: number): ProductQuantizer\n fromSnapshot(snapshot: VectorBinarySnapshot): ProductQuantizer\n}\n\nfunction createFactory(options: PQOptions, wasm: VectorQuantizerWasm): PQFactory {\n return {\n kind: PQ_KIND,\n options,\n create: (dim) => new ProductQuantizer(dim, options, wasm),\n fromSnapshot: (snapshot) => ProductQuantizer.fromSnapshot(snapshot, wasm)\n }\n}\n\n/**\n * Product quantization for zbsearch vector indexes. Pass the result as `quantization` to `flat()` or `ivf()`.\n *\n * ```js\n * import { flat } from 'zbsearch/trees/vector-flat'\n * import { pq } from '@zbsearch/plugin-vector-quantizer'\n *\n * const db = create({\n * schema: { embedding: 'vector[384]' },\n * indexes: { embedding: flat({ quantization: await pq({ m: 48 }), rescore: 'int8' }) }\n * })\n * ```\n */\nexport async function pq(options: PQOptions = {}): Promise<PQFactory> {\n return createFactory(options, await loadVectorQuantizerWasm())\n}\n\n/** Synchronous variant of `pq()`, for Node.js, Deno, workers and privileged Gecko code. */\nexport function pqSync(options: PQOptions = {}): PQFactory {\n return createFactory(options, loadVectorQuantizerWasmSync())\n}\n\ninterface RefittableIndex {\n refit(sample?: Iterable<Float32Array | number[]>): void\n}\n\n/**\n * Re-trains the quantizer of a vector property and re-encodes every vector, for instance after the data drifted\n * away from the initial training sample. Without `sample`, training uses the rescoring copy when the index keeps\n * one (`rescore: 'float32' | 'int8'`), otherwise the decoded codes.\n */\nexport function refit(db: AnyZBSearch, property: string, sample?: Iterable<Float32Array | number[]>): void {\n const node = db.data.index.vectorIndexes[property]?.node as Partial<RefittableIndex> | undefined\n if (!node) {\n throw new Error(`Unknown vector property \"${property}\".`)\n }\n if (typeof node.refit !== 'function') {\n throw new Error(`The vector index of \"${property}\" is not quantized.`)\n }\n node.refit(sample)\n}\n"],"mappings":"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"}