apage-ambiq commited on
Commit
949e581
·
verified ·
1 Parent(s): 874efac

Release deployment artifacts from CompressionKit

Browse files
README.md ADDED
@@ -0,0 +1,98 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ license: apache-2.0
3
+ library_name: compressionkit
4
+ pipeline_tag: other
5
+ tags:
6
+ - compressionkit
7
+ - signal-compression
8
+ - ppg
9
+ - rvq
10
+ - tflite
11
+ - edge-ai
12
+ ---
13
+
14
+ # compressionkit-ppg-2x
15
+
16
+ A **PPG** signal compression codec using Residual Vector Quantization (RVQ), optimized for edge and wearable devices.
17
+
18
+ ## Model Details
19
+
20
+ - **Modality:** PPG
21
+ - **Sample Rate:** 64 Hz
22
+ - **Compression Ratio:** 2x
23
+ - **Quantization:** INT8
24
+ - **RVQ Levels:** 4
25
+ - **Codebook Size:** 256 entries × 16D
26
+ - **Encoder Input:** `[None, 1, 320, 1]`
27
+ - **Encoder Output:** `[None, 1, 160, 16]`
28
+
29
+ ## Quality Metrics
30
+
31
+ ### Time Domain
32
+
33
+ | Metric | Mean | Median | P90 |
34
+ |--------|------|--------|-----|
35
+ | PRD (%) | 6.1800 | 2.2707 | 10.7564 |
36
+ | RMSE | 0.0241 | 0.0199 | 0.0386 |
37
+ | Cosine Similarity | 0.9912 | 0.9998 | 0.9999 |
38
+
39
+ ### Spectral
40
+
41
+ - **Band Total Relative Error (median):** 0.0263
42
+
43
+ ### Bitrate
44
+
45
+ - **Codec CR (uniform):** 2.0x
46
+ - **Codec CR (learned prior):** 3.11x
47
+
48
+ ## Usage
49
+
50
+ ### Python (compressionkit runtime)
51
+
52
+ ```python
53
+ from compressionkit.runtime import RVQCodec
54
+
55
+ codec = RVQCodec.from_pretrained("Ambiq/compressionkit-ppg-2x")
56
+
57
+ # Encode: float32 signal → RVQ indices
58
+ indices = codec.encode(signal)
59
+
60
+ # Decode: RVQ indices → reconstructed signal
61
+ recon = codec.decode(indices)
62
+ ```
63
+
64
+ ### Local deployment directory
65
+
66
+ ```python
67
+ codec = RVQCodec("path/to/deploy/")
68
+ ```
69
+
70
+ ## Files
71
+
72
+ | File | Description |
73
+ |------|-------------|
74
+ | `encoder_int8.tflite` | INT8 quantized encoder (on-device) |
75
+ | `encoder.h` | C header for encoder |
76
+ | `decoder_float32.tflite` | Float32 decoder (server-side evaluation) |
77
+ | `decoder_int8.tflite` | INT8 decoder (optional, on-device) |
78
+ | `codebook.npz` | RVQ codebook tables |
79
+ | `codebook.h` | C header for codebook |
80
+ | `config.json` | Deployment manifest |
81
+ | `sample_stimulus.npz` | Synthetic test data |
82
+ | `quality_scorecard.json` | Full evaluation metrics |
83
+
84
+ ## Dataset & License
85
+
86
+ Training data: MESA (NSRR restricted). Sample data uses synthetic physiokit waveforms only — no patient data is redistributed.
87
+
88
+ Model weights are released under the **APACHE-2.0** license.
89
+
90
+ ## Citation
91
+
92
+ ```bibtex
93
+ @software{compressionkit,
94
+ author = {Ambiq AI},
95
+ title = {compressionKIT: Signal Compression for Edge AI},
96
+ url = {https://github.com/AmbiqAI/compressionkit}
97
+ }
98
+ ```
codebook.h ADDED
The diff for this file is too large to render. See raw diff
 
codebook.npz ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:7e87a5f5e47fb7745dcd7c525ebb8ac3e905537a4964a71b5dcc9939ee91f090
3
+ size 66542
config.json ADDED
@@ -0,0 +1,56 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "model_name": "ppg_rvq_64hz_02x_golden",
3
+ "model_version": "1.0",
4
+ "quantization": "INT8",
5
+ "io_type": "int8",
6
+ "encoder": {
7
+ "tflite": "encoder.tflite",
8
+ "header": "encoder.h",
9
+ "input_shape": [
10
+ null,
11
+ 1,
12
+ 320,
13
+ 1
14
+ ],
15
+ "output_shape": [
16
+ null,
17
+ 1,
18
+ 160,
19
+ 16
20
+ ]
21
+ },
22
+ "decoder": {
23
+ "keras": "decoder.keras",
24
+ "float32_tflite": "decoder_float32.tflite",
25
+ "int8_tflite": null,
26
+ "int8_header": null,
27
+ "input_shape": [
28
+ null,
29
+ 1,
30
+ 160,
31
+ 16
32
+ ],
33
+ "output_shape": [
34
+ null,
35
+ 1,
36
+ 320,
37
+ 1
38
+ ]
39
+ },
40
+ "codebook": {
41
+ "npz": "codebook.npz",
42
+ "header": "codebook.h",
43
+ "num_levels": 4,
44
+ "num_embeddings": 256,
45
+ "embedding_dim": 16
46
+ },
47
+ "sample_data": {
48
+ "npz": "sample_data.npz",
49
+ "num_samples": 50,
50
+ "arrays": [
51
+ "inputs",
52
+ "targets",
53
+ "reconstructions"
54
+ ]
55
+ }
56
+ }
decoder.h ADDED
The diff for this file is too large to render. See raw diff
 
decoder_float32.tflite ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:795c3f9757f986a90dc778dde523832a8a8e4b8b3c75f0ca506c28416f5859ab
3
+ size 40584
decoder_int8.tflite ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:b5ee73f59603adf2e9c37e0519e8394996d370dbc44783a618dbf8f4933e0cb5
3
+ size 19280
encoder.h ADDED
@@ -0,0 +1,245 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #ifndef __ENCODER_H
2
+ #define __ENCODER_H
3
+ const unsigned char encoder[] = {
4
+ 0x20, 0x00, 0x00, 0x00, 0x54, 0x46, 0x4c, 0x33, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x20, 0x00, 0x1c, 0x00, 0x18, 0x00,
5
+ 0x14, 0x00, 0x10, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x08, 0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00,
6
+ 0x90, 0x00, 0x00, 0x00, 0xe8, 0x00, 0x00, 0x00, 0x34, 0x07, 0x00, 0x00, 0x44, 0x07, 0x00, 0x00, 0x44, 0x12, 0x00, 0x00,
7
+ 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x10, 0x00, 0x0c, 0x00,
8
+ 0x08, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00,
9
+ 0x0f, 0x00, 0x00, 0x00, 0x73, 0x65, 0x72, 0x76, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x00,
10
+ 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x98, 0xff, 0xff, 0xff, 0x06, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
11
+ 0x08, 0x00, 0x00, 0x00, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x30, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
12
+ 0x04, 0x00, 0x00, 0x00, 0x9e, 0xf9, 0xff, 0xff, 0x04, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x65, 0x6e, 0x63, 0x5f,
13
+ 0x69, 0x6e, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0xdc, 0xff, 0xff, 0xff,
14
+ 0x09, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x43, 0x4f, 0x4e, 0x56, 0x45, 0x52, 0x53, 0x49,
15
+ 0x4f, 0x4e, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x44, 0x41, 0x54, 0x41, 0x00, 0x08, 0x00, 0x0c, 0x00, 0x08, 0x00, 0x04, 0x00,
16
+ 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x6d, 0x69, 0x6e, 0x5f,
17
+ 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x00, 0x0a, 0x00, 0x00, 0x00,
18
+ 0x48, 0x06, 0x00, 0x00, 0x3c, 0x06, 0x00, 0x00, 0xec, 0x05, 0x00, 0x00, 0xd4, 0x02, 0x00, 0x00, 0x04, 0x02, 0x00, 0x00,
19
+ 0xa4, 0x00, 0x00, 0x00, 0x9c, 0x00, 0x00, 0x00, 0x94, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
20
+ 0x3a, 0xfa, 0xff, 0xff, 0x04, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x08, 0x00, 0x0e, 0x00,
21
+ 0x08, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00,
22
+ 0x08, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xeb, 0x03, 0x00, 0x00,
23
+ 0x0c, 0x00, 0x18, 0x00, 0x14, 0x00, 0x10, 0x00, 0x0c, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x3b, 0xb5, 0xa3, 0xdc,
24
+ 0x45, 0x20, 0x45, 0x3c, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
25
+ 0x32, 0x2e, 0x32, 0x30, 0x2e, 0x30, 0x00, 0x00, 0xa6, 0xfa, 0xff, 0xff, 0x04, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
26
+ 0x31, 0x2e, 0x31, 0x34, 0x2e, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6c, 0xfa, 0xff, 0xff,
27
+ 0x70, 0xfa, 0xff, 0xff, 0xca, 0xfa, 0xff, 0xff, 0x04, 0x00, 0x00, 0x00, 0x50, 0x01, 0x00, 0x00, 0x7f, 0xf1, 0x76, 0x53,
28
+ 0x47, 0xfd, 0x5d, 0x00, 0xdd, 0x31, 0x7f, 0x43, 0x15, 0xf0, 0xd8, 0x7f, 0x25, 0x32, 0x1e, 0xf1, 0x2e, 0x0d, 0xc4, 0x1e,
29
+ 0x5a, 0x7f, 0x31, 0x1a, 0xe2, 0x17, 0x25, 0x7f, 0x32, 0xc0, 0x08, 0x7f, 0x6f, 0xee, 0x39, 0x2b, 0x52, 0xde, 0x81, 0xf8,
30
+ 0xcb, 0xda, 0xa8, 0x4a, 0xee, 0x2d, 0xe2, 0xbc, 0x81, 0xf7, 0x06, 0x05, 0xd5, 0x1c, 0x1e, 0x81, 0xcc, 0x02, 0xec, 0xcd,
31
+ 0x33, 0xf4, 0x8f, 0x0b, 0x81, 0xdc, 0x05, 0xa4, 0xcb, 0x81, 0x16, 0x11, 0x08, 0xa6, 0x79, 0x7f, 0x2a, 0xfa, 0x4e, 0xcf,
32
+ 0x36, 0x4b, 0x77, 0x1e, 0x7f, 0x0c, 0xf2, 0xb8, 0x29, 0xae, 0x81, 0xb1, 0xe1, 0x35, 0x61, 0x3e, 0x0b, 0x3b, 0x7f, 0xd2,
33
+ 0x49, 0xd6, 0x22, 0x7f, 0x7a, 0x2a, 0xc1, 0x42, 0x81, 0x1a, 0x1d, 0xa5, 0xc8, 0x96, 0x60, 0x32, 0xe7, 0xf3, 0x8d, 0xa6,
34
+ 0x05, 0x81, 0x81, 0x48, 0xe7, 0xc8, 0x2c, 0x8f, 0x4b, 0x7a, 0x13, 0x00, 0x7f, 0x46, 0x05, 0x18, 0xeb, 0x99, 0x81, 0xcf,
35
+ 0xe1, 0xee, 0xed, 0x52, 0xf7, 0x73, 0x7f, 0x1e, 0xb4, 0x3a, 0x22, 0x81, 0xca, 0x93, 0xb7, 0x12, 0x16, 0x0e, 0xbd, 0x2d,
36
+ 0x58, 0x48, 0x7f, 0xc4, 0x58, 0x2e, 0xec, 0x7f, 0x57, 0x2b, 0xe4, 0x09, 0xe2, 0x13, 0xca, 0x81, 0xcf, 0xcf, 0xc3, 0xfb,
37
+ 0x7f, 0x22, 0x21, 0xfb, 0x21, 0x81, 0x92, 0x23, 0x89, 0x97, 0x38, 0x30, 0x12, 0x08, 0x9c, 0x81, 0xf8, 0x9b, 0x10, 0xea,
38
+ 0xdb, 0xab, 0xb7, 0x81, 0x0c, 0xe1, 0x0f, 0xad, 0x34, 0x55, 0x3a, 0x7f, 0xcd, 0x1b, 0xa9, 0x1a, 0x81, 0xb8, 0x38, 0xe4,
39
+ 0x42, 0xaf, 0x81, 0xb6, 0x88, 0x47, 0xe1, 0x52, 0x19, 0x8a, 0x81, 0x0e, 0xb2, 0xe7, 0x49, 0xbb, 0xaa, 0x81, 0xd0, 0x36,
40
+ 0xec, 0xf0, 0xb2, 0x3f, 0x92, 0x4a, 0x81, 0x1b, 0xf4, 0x30, 0xd0, 0x4f, 0x7f, 0x59, 0xd1, 0x31, 0x7f, 0x4f, 0xeb, 0x47,
41
+ 0x2f, 0xdb, 0xf6, 0x7f, 0xcc, 0x6b, 0x5d, 0x55, 0x13, 0xc5, 0xff, 0x7f, 0x2d, 0x5c, 0xe4, 0x58, 0x36, 0xe3, 0x81, 0xa7,
42
+ 0xe2, 0x1b, 0xd5, 0xc8, 0x7c, 0x7f, 0x6a, 0x48, 0xcb, 0x1e, 0x08, 0x08, 0xe7, 0x7f, 0x50, 0x57, 0xee, 0xde, 0x81, 0x1a,
43
+ 0x93, 0xbc, 0x02, 0x10, 0xa6, 0x81, 0xf7, 0xc4, 0xfc, 0x06, 0xfb, 0x3a, 0x6e, 0x27, 0x7f, 0x32, 0x09, 0x25, 0x51, 0x7f,
44
+ 0x3b, 0x54, 0xdb, 0x52, 0x0d, 0xe8, 0xc5, 0x7f, 0x75, 0x18, 0x47, 0xc0, 0x26, 0xfc, 0xff, 0xff, 0x04, 0x00, 0x00, 0x00,
45
+ 0xc0, 0x00, 0x00, 0x00, 0xf1, 0xff, 0xff, 0xff, 0x05, 0x00, 0x00, 0x00, 0xf7, 0xff, 0xff, 0xff, 0xa1, 0xff, 0xff, 0xff,
46
+ 0x5a, 0xff, 0xff, 0xff, 0xdc, 0xff, 0xff, 0xff, 0xc4, 0xfe, 0xff, 0xff, 0xd4, 0xff, 0xff, 0xff, 0xe1, 0xff, 0xff, 0xff,
47
+ 0x33, 0x00, 0x00, 0x00, 0x6f, 0xff, 0xff, 0xff, 0x88, 0xff, 0xff, 0xff, 0xbb, 0xff, 0xff, 0xff, 0xf9, 0xff, 0xff, 0xff,
48
+ 0x85, 0x00, 0x00, 0x00, 0x91, 0xff, 0xff, 0xff, 0x26, 0xff, 0xff, 0xff, 0xd1, 0x00, 0x00, 0x00, 0xdf, 0xff, 0xff, 0xff,
49
+ 0x9e, 0xff, 0xff, 0xff, 0x71, 0x02, 0x00, 0x00, 0x87, 0xfe, 0xff, 0xff, 0x22, 0xfe, 0xff, 0xff, 0x7c, 0xff, 0xff, 0xff,
50
+ 0x63, 0xff, 0xff, 0xff, 0x69, 0xff, 0xff, 0xff, 0xd4, 0xff, 0xff, 0xff, 0xe4, 0xff, 0xff, 0xff, 0x0c, 0x00, 0x00, 0x00,
51
+ 0xe6, 0xfb, 0xff, 0xff, 0xb2, 0xff, 0xff, 0xff, 0xe6, 0xff, 0xff, 0xff, 0xcb, 0xff, 0xff, 0xff, 0x6b, 0xff, 0xff, 0xff,
52
+ 0x4f, 0x00, 0x00, 0x00, 0x72, 0xff, 0xff, 0xff, 0x04, 0x00, 0x00, 0x00, 0x96, 0xff, 0xff, 0xff, 0xc1, 0xff, 0xff, 0xff,
53
+ 0x00, 0xff, 0xff, 0xff, 0x8d, 0xff, 0xff, 0xff, 0xc1, 0xff, 0xff, 0xff, 0xc5, 0xff, 0xff, 0xff, 0x22, 0xfe, 0xff, 0xff,
54
+ 0x06, 0x00, 0x00, 0x00, 0x37, 0x00, 0x00, 0x00, 0x22, 0xfc, 0xff, 0xff, 0x4c, 0xff, 0xff, 0xff, 0xf2, 0xfc, 0xff, 0xff,
55
+ 0x04, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x30, 0xf2, 0x07, 0x6d, 0xa5, 0xe0, 0xd7, 0x1b, 0x1d, 0x12, 0x8b, 0x69,
56
+ 0xb6, 0x29, 0x34, 0x33, 0xd3, 0xc8, 0x29, 0xae, 0x66, 0xd7, 0xc4, 0x0e, 0x4d, 0x25, 0xda, 0x41, 0x91, 0x47, 0x1f, 0x4f,
57
+ 0x18, 0x20, 0x6c, 0x42, 0xeb, 0xa9, 0xa7, 0xc7, 0x81, 0x3d, 0x95, 0x0f, 0xf7, 0x41, 0x6c, 0x02, 0x0c, 0xe2, 0x3d, 0x46,
58
+ 0xcf, 0x39, 0x08, 0xae, 0xe2, 0x18, 0xd2, 0xdf, 0x87, 0x13, 0x9b, 0x1d, 0xe4, 0x2e, 0x40, 0x05, 0x1b, 0x48, 0x19, 0x2f,
59
+ 0x51, 0xd6, 0x09, 0xf5, 0x98, 0xf4, 0xa1, 0x74, 0x31, 0x51, 0xc6, 0x11, 0x9e, 0x37, 0x30, 0xf6, 0xce, 0x66, 0x4a, 0x53,
60
+ 0xc4, 0xa4, 0x81, 0x4c, 0x13, 0x7a, 0xe8, 0x8f, 0x14, 0x26, 0x24, 0x66, 0x3a, 0xb9, 0x4f, 0xa4, 0x99, 0x71, 0x2f, 0x96,
61
+ 0xad, 0xfc, 0xc1, 0x95, 0x39, 0xcc, 0xa6, 0x21, 0xe9, 0xf0, 0x7f, 0x16, 0x67, 0x51, 0x30, 0xd8, 0x57, 0xc2, 0xa9, 0x51,
62
+ 0xa7, 0x6f, 0x78, 0xa8, 0xa1, 0xfb, 0x10, 0xb7, 0xcf, 0x7a, 0x96, 0x97, 0x30, 0xf3, 0x1c, 0xbf, 0x24, 0x49, 0xa8, 0xa9,
63
+ 0x68, 0x04, 0x03, 0x38, 0xdb, 0xeb, 0xe6, 0x9b, 0xb8, 0x39, 0x46, 0x9e, 0xab, 0x61, 0x5f, 0xf7, 0x19, 0x8d, 0xbc, 0xb8,
64
+ 0x0c, 0x87, 0x74, 0xd1, 0x6e, 0xf2, 0xd5, 0xef, 0x27, 0xfa, 0xf0, 0x7f, 0x46, 0x36, 0xb8, 0x28, 0x40, 0xf5, 0x89, 0xce,
65
+ 0xd8, 0xf5, 0x60, 0x3d, 0xde, 0x53, 0x61, 0xeb, 0x20, 0x94, 0x04, 0xf5, 0x81, 0x57, 0x86, 0xf6, 0x44, 0xf4, 0x24, 0x2c,
66
+ 0xfb, 0x1f, 0xac, 0xa8, 0x1f, 0x34, 0xde, 0xca, 0x4d, 0xac, 0x1a, 0x44, 0x55, 0x36, 0x70, 0x39, 0x3b, 0x49, 0xcc, 0x6e,
67
+ 0xdd, 0x84, 0x93, 0x0e, 0x1e, 0x45, 0xce, 0x56, 0x49, 0x35, 0x29, 0x0d, 0xcb, 0xb0, 0x0a, 0xd2, 0xb2, 0xd5, 0xa1, 0xa2,
68
+ 0x4c, 0xb5, 0x98, 0xeb, 0xbd, 0xd2, 0x15, 0x13, 0xcc, 0xee, 0xbc, 0x2b, 0x08, 0xe1, 0xb5, 0xe9, 0x44, 0x7f, 0xda, 0x2a,
69
+ 0x10, 0x24, 0x0d, 0x3e, 0xfd, 0x04, 0xdd, 0xc1, 0xb5, 0x6e, 0x4d, 0x26, 0x0d, 0xe6, 0xd6, 0xc8, 0xba, 0x16, 0x35, 0x5a,
70
+ 0x64, 0x4e, 0xb1, 0xa0, 0xf5, 0xc5, 0x35, 0xf1, 0x39, 0xd3, 0x97, 0x33, 0xbb, 0x12, 0x6a, 0xc0, 0x2e, 0x41, 0xa0, 0x57,
71
+ 0x47, 0x6c, 0xfc, 0x03, 0x10, 0xba, 0xac, 0x35, 0x3c, 0x9c, 0xd9, 0x1f, 0xb7, 0x4d, 0xae, 0x53, 0x33, 0xbc, 0x61, 0x27,
72
+ 0xa2, 0x81, 0x55, 0x06, 0xf3, 0xd1, 0x44, 0x04, 0xa3, 0x18, 0xfa, 0x3e, 0xf4, 0x04, 0xf7, 0x6d, 0x42, 0x99, 0x07, 0x2d,
73
+ 0x02, 0xe9, 0xc6, 0xcf, 0x46, 0x27, 0xa2, 0x29, 0x15, 0x55, 0xa2, 0x19, 0x3b, 0x8c, 0xa6, 0x37, 0x8a, 0xfd, 0x98, 0xca,
74
+ 0x7f, 0x91, 0x8f, 0x53, 0xca, 0x8c, 0xe2, 0x4a, 0x1c, 0x95, 0x1a, 0xd4, 0x49, 0x56, 0x1b, 0xf1, 0x2a, 0x89, 0x0d, 0x96,
75
+ 0xf1, 0xf1, 0x66, 0xb3, 0x31, 0x40, 0x81, 0x49, 0x14, 0x92, 0xe2, 0x1b, 0x05, 0x96, 0xc7, 0xdd, 0x79, 0x4f, 0xe6, 0x24,
76
+ 0x17, 0xf5, 0x23, 0x3d, 0x2a, 0x5c, 0x4c, 0xbe, 0xc2, 0x72, 0x7b, 0xe5, 0xd1, 0x9e, 0xa6, 0x0b, 0xf0, 0x4f, 0x8f, 0xbb,
77
+ 0xed, 0x18, 0xa2, 0x44, 0x29, 0xf8, 0x67, 0x70, 0xb0, 0x41, 0xe8, 0x64, 0xfa, 0x46, 0x81, 0xcb, 0x12, 0xf2, 0xd5, 0x5c,
78
+ 0x17, 0x65, 0xad, 0x1e, 0xc0, 0xe4, 0x42, 0x01, 0xc7, 0x13, 0xac, 0x68, 0x9f, 0xdf, 0x06, 0x2b, 0x0f, 0x46, 0x4a, 0x39,
79
+ 0x18, 0xce, 0xc2, 0x58, 0x88, 0x4c, 0x12, 0x20, 0xb8, 0x48, 0x46, 0x1a, 0x98, 0x74, 0x46, 0xfd, 0x5c, 0xb3, 0xcb, 0xd5,
80
+ 0x4b, 0x67, 0xee, 0x93, 0xcc, 0x60, 0x42, 0xed, 0xce, 0xdd, 0x14, 0x9a, 0x81, 0x81, 0x68, 0xbc, 0xc0, 0x63, 0x0d, 0x5f,
81
+ 0xbd, 0xc6, 0x35, 0x53, 0x19, 0x4d, 0x91, 0xf7, 0x77, 0xd7, 0x57, 0x23, 0xb7, 0xf9, 0x26, 0xd7, 0xf1, 0x81, 0x55, 0x22,
82
+ 0x30, 0x60, 0xe4, 0x36, 0x31, 0x07, 0x51, 0xe5, 0xef, 0x40, 0xf3, 0xa7, 0x91, 0x8b, 0x41, 0xa5, 0x40, 0x7c, 0xd2, 0x1b,
83
+ 0x9b, 0x5f, 0xec, 0x1a, 0x38, 0x26, 0xd6, 0x48, 0xcd, 0xcc, 0xfd, 0xad, 0x33, 0x3a, 0xa0, 0x4d, 0x2b, 0x91, 0x46, 0x26,
84
+ 0xd1, 0x79, 0x8d, 0x53, 0x6b, 0x7e, 0xc1, 0xed, 0x5e, 0xb1, 0xb2, 0x6c, 0x02, 0x49, 0xb2, 0x6f, 0x95, 0x81, 0x12, 0xcf,
85
+ 0x7d, 0xd2, 0xb1, 0x69, 0xfa, 0x1c, 0x6d, 0x39, 0xe2, 0xfa, 0x5b, 0x6e, 0x83, 0x79, 0xef, 0xfe, 0xc3, 0x6f, 0x9a, 0x9b,
86
+ 0xce, 0xf0, 0x47, 0xcf, 0x16, 0x16, 0xb3, 0x44, 0x58, 0x0f, 0x7a, 0x22, 0x30, 0xd7, 0xd0, 0x6d, 0xc6, 0x70, 0x46, 0x35,
87
+ 0xcb, 0x28, 0xc6, 0x97, 0x99, 0xcd, 0xda, 0xb2, 0xc7, 0x20, 0x34, 0xb8, 0x6d, 0xe2, 0x7e, 0x01, 0x7a, 0x95, 0x4b, 0x01,
88
+ 0xe7, 0xbe, 0x98, 0xab, 0xc2, 0x33, 0x7f, 0xde, 0x64, 0xd1, 0x01, 0x90, 0x0c, 0x3a, 0xbf, 0xf2, 0xa3, 0xc6, 0xe1, 0xa7,
89
+ 0xc8, 0xc3, 0xc4, 0xdd, 0x9b, 0xcd, 0xec, 0xcd, 0x14, 0x0a, 0x88, 0xf0, 0x67, 0x57, 0xfe, 0x51, 0xc6, 0x6c, 0xc5, 0x4e,
90
+ 0x30, 0xf7, 0x8e, 0xb1, 0x02, 0xa0, 0x77, 0x31, 0x54, 0x81, 0x00, 0x1e, 0xff, 0xad, 0x6c, 0x30, 0x24, 0xe5, 0x12, 0xb1,
91
+ 0x9c, 0x7d, 0x4e, 0xa3, 0x4c, 0x66, 0xb2, 0x54, 0x83, 0x95, 0xd4, 0xee, 0x81, 0x8f, 0xe4, 0x2e, 0x67, 0x52, 0xb9, 0x33,
92
+ 0x3e, 0x63, 0x6a, 0xd2, 0xcb, 0x47, 0x04, 0xf8, 0xfb, 0x09, 0xa6, 0x67, 0xe2, 0xae, 0xf3, 0x3b, 0xf3, 0x8d, 0x2b, 0x42,
93
+ 0x2c, 0xae, 0x5d, 0xd2, 0xc7, 0x1e, 0x1a, 0x47, 0xa1, 0x60, 0xb0, 0xf1, 0x28, 0x28, 0x72, 0x2f, 0x00, 0x00, 0x06, 0x00,
94
+ 0x08, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x69, 0x02, 0x00, 0x00,
95
+ 0xa2, 0xff, 0xff, 0xff, 0xbe, 0x00, 0x00, 0x00, 0x61, 0x00, 0x00, 0x00, 0xbc, 0xfe, 0xff, 0xff, 0x19, 0x01, 0x00, 0x00,
96
+ 0xa3, 0xfe, 0xff, 0xff, 0x99, 0x02, 0x00, 0x00, 0x24, 0xff, 0xff, 0xff, 0x03, 0xff, 0xff, 0xff, 0x0d, 0x00, 0x00, 0x00,
97
+ 0xd4, 0xfe, 0xff, 0xff, 0x5b, 0xfd, 0xff, 0xff, 0x0e, 0x02, 0x00, 0x00, 0x52, 0x02, 0x00, 0x00, 0xec, 0x01, 0x00, 0x00,
98
+ 0xfc, 0xff, 0xff, 0xff, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x4d, 0x4c, 0x49, 0x52,
99
+ 0x20, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x65, 0x64, 0x2e, 0x00, 0x01, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00,
100
+ 0x00, 0x00, 0x0e, 0x00, 0x18, 0x00, 0x14, 0x00, 0x10, 0x00, 0x0c, 0x00, 0x08, 0x00, 0x04, 0x00, 0x0e, 0x00, 0x00, 0x00,
101
+ 0x14, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0xc4, 0x00, 0x00, 0x00, 0xc8, 0x00, 0x00, 0x00,
102
+ 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00,
103
+ 0x04, 0x00, 0x00, 0x00, 0xba, 0xff, 0xff, 0xff, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x20, 0x00, 0x00, 0x00,
104
+ 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x08, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00,
105
+ 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
106
+ 0x05, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x14, 0x00, 0x00, 0x00,
107
+ 0x10, 0x00, 0x0c, 0x00, 0x0b, 0x00, 0x04, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
108
+ 0x24, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x10, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x08, 0x00, 0x07, 0x00,
109
+ 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
110
+ 0x05, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
111
+ 0x01, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
112
+ 0x78, 0x09, 0x00, 0x00, 0x48, 0x08, 0x00, 0x00, 0x0c, 0x07, 0x00, 0x00, 0x78, 0x04, 0x00, 0x00, 0xd4, 0x01, 0x00, 0x00,
113
+ 0x90, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0xba, 0xf6, 0xff, 0xff, 0x00, 0x00, 0x00, 0x01, 0x18, 0x00, 0x00, 0x00,
114
+ 0x28, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x58, 0x00, 0x00, 0x00,
115
+ 0x04, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
116
+ 0xa4, 0xf6, 0xff, 0xff, 0x08, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
117
+ 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x9f, 0xea, 0x90, 0x3d, 0x1b, 0x00, 0x00, 0x00, 0x53, 0x74, 0x61, 0x74,
118
+ 0x65, 0x66, 0x75, 0x6c, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x65, 0x64, 0x43, 0x61, 0x6c, 0x6c, 0x5f,
119
+ 0x31, 0x3a, 0x30, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00,
120
+ 0x10, 0x00, 0x00, 0x00, 0x42, 0xf7, 0xff, 0xff, 0x00, 0x00, 0x00, 0x01, 0x18, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00,
121
+ 0x48, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x10, 0x01, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
122
+ 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x2c, 0xf7, 0xff, 0xff,
123
+ 0x08, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
124
+ 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xed, 0xec, 0x61, 0x3d, 0xcf, 0x00, 0x00, 0x00, 0x45, 0x6e, 0x63, 0x6f,
125
+ 0x64, 0x65, 0x72, 0x32, 0x44, 0x5f, 0x64, 0x73, 0x32, 0x5f, 0x31, 0x2f, 0x65, 0x6e, 0x63, 0x5f, 0x73, 0x31, 0x5f, 0x61,
126
+ 0x63, 0x74, 0x5f, 0x31, 0x2f, 0x52, 0x65, 0x6c, 0x75, 0x3b, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x32, 0x44, 0x5f,
127
+ 0x64, 0x73, 0x32, 0x5f, 0x31, 0x2f, 0x65, 0x6e, 0x63, 0x5f, 0x73, 0x31, 0x5f, 0x6e, 0x6f, 0x72, 0x6d, 0x5f, 0x31, 0x2f,
128
+ 0x62, 0x61, 0x74, 0x63, 0x68, 0x6e, 0x6f, 0x72, 0x6d, 0x2f, 0x61, 0x64, 0x64, 0x5f, 0x31, 0x3b, 0x45, 0x6e, 0x63, 0x6f,
129
+ 0x64, 0x65, 0x72, 0x32, 0x44, 0x5f, 0x64, 0x73, 0x32, 0x5f, 0x31, 0x2f, 0x65, 0x6e, 0x63, 0x5f, 0x73, 0x31, 0x5f, 0x6e,
130
+ 0x6f, 0x72, 0x6d, 0x5f, 0x31, 0x2f, 0x62, 0x61, 0x74, 0x63, 0x68, 0x6e, 0x6f, 0x72, 0x6d, 0x2f, 0x6d, 0x75, 0x6c, 0x5f,
131
+ 0x31, 0x3b, 0x3b, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x32, 0x44, 0x5f, 0x64, 0x73, 0x32, 0x5f, 0x31, 0x2f, 0x65,
132
+ 0x6e, 0x63, 0x5f, 0x73, 0x31, 0x5f, 0x63, 0x6f, 0x6e, 0x76, 0x5f, 0x31, 0x2f, 0x42, 0x69, 0x61, 0x73, 0x41, 0x64, 0x64,
133
+ 0x3b, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x32, 0x44, 0x5f, 0x64, 0x73, 0x32, 0x5f, 0x31, 0x2f, 0x65, 0x6e, 0x63,
134
+ 0x5f, 0x73, 0x31, 0x5f, 0x63, 0x6f, 0x6e, 0x76, 0x5f, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x76, 0x6f, 0x6c, 0x75, 0x74, 0x69,
135
+ 0x6f, 0x6e, 0x31, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00,
136
+ 0x30, 0x00, 0x00, 0x00, 0xae, 0xf9, 0xff, 0xff, 0x00, 0x00, 0x00, 0x01, 0x14, 0x00, 0x00, 0x00, 0x68, 0x02, 0x00, 0x00,
137
+ 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x74, 0x02, 0x00, 0x00, 0x54, 0xf8, 0xff, 0xff, 0x08, 0x00, 0x00, 0x00,
138
+ 0x8c, 0x01, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
139
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
140
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
141
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
142
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
143
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
144
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
145
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
146
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
147
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
148
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
149
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
150
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
151
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
152
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
153
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
154
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
155
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
156
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
157
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00,
158
+ 0xd3, 0x2f, 0x36, 0x3b, 0xb8, 0x4d, 0xb9, 0x3b, 0xc3, 0xf5, 0xae, 0x3b, 0x84, 0x04, 0x92, 0x3b, 0x76, 0x0d, 0xeb, 0x3b,
159
+ 0x73, 0x30, 0x5f, 0x3b, 0x5e, 0xa0, 0x90, 0x3b, 0x90, 0xc6, 0xd7, 0x3b, 0x46, 0xf0, 0xe0, 0x3b, 0x2a, 0x39, 0x95, 0x3b,
160
+ 0x1d, 0xc6, 0xb1, 0x3b, 0x3a, 0xf6, 0xaa, 0x3b, 0x56, 0xb5, 0x37, 0x3b, 0xd2, 0x22, 0x88, 0x3b, 0xd9, 0x4d, 0x60, 0x3b,
161
+ 0x07, 0x11, 0x8b, 0x3b, 0xbf, 0x43, 0xa8, 0x3b, 0x34, 0xef, 0x47, 0x3b, 0xe0, 0xe5, 0x0c, 0x3c, 0xf6, 0x8c, 0x5c, 0x3b,
162
+ 0xf7, 0x18, 0x58, 0x3b, 0xd9, 0x83, 0x6f, 0x3b, 0x54, 0xe9, 0x88, 0x3b, 0x64, 0x31, 0xac, 0x3b, 0x3c, 0x84, 0x76, 0x3b,
163
+ 0xe9, 0x89, 0x8e, 0x3b, 0x41, 0x5e, 0xed, 0x3b, 0x9a, 0x4d, 0x6a, 0x3b, 0xf3, 0x72, 0x8c, 0x3b, 0x6b, 0xcf, 0x58, 0x3b,
164
+ 0xa1, 0xf1, 0xc3, 0x3b, 0x8b, 0x37, 0xc4, 0x3b, 0x3c, 0x52, 0x89, 0x3b, 0x5b, 0x32, 0x99, 0x3b, 0x9b, 0x45, 0xaf, 0x3b,
165
+ 0x8d, 0xb2, 0xca, 0x3b, 0x1a, 0x0b, 0xa9, 0x3b, 0x72, 0x9b, 0x7b, 0x3b, 0x3f, 0x3d, 0x5e, 0x3b, 0x48, 0x61, 0x90, 0x3b,
166
+ 0x9a, 0x21, 0xab, 0x3b, 0xd1, 0xf1, 0x65, 0x3b, 0xae, 0xa7, 0x92, 0x3b, 0x65, 0x1b, 0x80, 0x3b, 0x70, 0x84, 0x8d, 0x3b,
167
+ 0xfb, 0x8e, 0x30, 0x3b, 0x74, 0x8c, 0x0e, 0x3b, 0x7c, 0x4d, 0xbb, 0x3b, 0x12, 0x00, 0x00, 0x00, 0x74, 0x66, 0x6c, 0x2e,
168
+ 0x70, 0x73, 0x65, 0x75, 0x64, 0x6f, 0x5f, 0x71, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x33, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
169
+ 0x30, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x4e, 0xfc, 0xff, 0xff,
170
+ 0x00, 0x00, 0x00, 0x01, 0x14, 0x00, 0x00, 0x00, 0x64, 0x02, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02,
171
+ 0x70, 0x02, 0x00, 0x00, 0xf4, 0xfa, 0xff, 0xff, 0x08, 0x00, 0x00, 0x00, 0x88, 0x01, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00,
172
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
173
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
174
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
175
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
176
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
177
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
178
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
179
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
180
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
181
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
182
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
183
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
184
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
185
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
186
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
187
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
188
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
189
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
190
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
191
+ 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0xb1, 0xe2, 0x4f, 0x39, 0x23, 0x71, 0xd3, 0x39, 0xab, 0xa3, 0xc7, 0x39,
192
+ 0x4c, 0x9d, 0xa6, 0x39, 0xac, 0x1a, 0x06, 0x3a, 0xf0, 0xab, 0x7e, 0x39, 0xe9, 0x06, 0xa5, 0x39, 0x58, 0x36, 0xf6, 0x39,
193
+ 0x77, 0x55, 0x00, 0x3a, 0xb4, 0x45, 0xaa, 0x39, 0xa1, 0xd9, 0xca, 0x39, 0xc1, 0x13, 0xc3, 0x39, 0x26, 0x9f, 0x51, 0x39,
194
+ 0xc5, 0x56, 0x9b, 0x39, 0x98, 0xf1, 0x7f, 0x39, 0xcc, 0xae, 0x9e, 0x39, 0xe1, 0xff, 0xbf, 0x39, 0xf2, 0x22, 0x64, 0x39,
195
+ 0xc8, 0xc5, 0x20, 0x3a, 0x2b, 0xa9, 0x7b, 0x39, 0x5e, 0x94, 0x76, 0x39, 0x6f, 0xa6, 0x88, 0x39, 0x47, 0x39, 0x9c, 0x39,
196
+ 0x60, 0x7b, 0xc4, 0x39, 0x0b, 0xa5, 0x8c, 0x39, 0x10, 0xa5, 0xa2, 0x39, 0xe0, 0x6c, 0x07, 0x3a, 0x36, 0xad, 0x85, 0x39,
197
+ 0xa5, 0x42, 0xa0, 0x39, 0x8f, 0x64, 0x77, 0x39, 0x46, 0x95, 0xdf, 0x39, 0x0c, 0xe5, 0xdf, 0x39, 0xfb, 0xb0, 0x9c, 0x39,
198
+ 0x60, 0xce, 0xae, 0x39, 0xc6, 0xfe, 0xc7, 0x39, 0x12, 0x4a, 0xe7, 0x39, 0x5a, 0xe3, 0xc0, 0x39, 0x90, 0x8c, 0x8f, 0x39,
199
+ 0x6e, 0x96, 0x7d, 0x39, 0xed, 0xbe, 0xa4, 0x39, 0x3f, 0x45, 0xc3, 0x39, 0x9f, 0x30, 0x83, 0x39, 0x79, 0x57, 0xa7, 0x39,
200
+ 0x69, 0x2d, 0x92, 0x39, 0xb5, 0x7a, 0xa1, 0x39, 0x9c, 0x76, 0x49, 0x39, 0xf7, 0xa7, 0x22, 0x39, 0x17, 0xb9, 0xd5, 0x39,
201
+ 0x12, 0x00, 0x00, 0x00, 0x74, 0x66, 0x6c, 0x2e, 0x70, 0x73, 0x65, 0x75, 0x64, 0x6f, 0x5f, 0x71, 0x63, 0x6f, 0x6e, 0x73,
202
+ 0x74, 0x32, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0xde, 0xfe, 0xff, 0xff, 0x00, 0x00, 0x00, 0x01,
203
+ 0x14, 0x00, 0x00, 0x00, 0xe8, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0xf4, 0x00, 0x00, 0x00,
204
+ 0x84, 0xfd, 0xff, 0xff, 0x08, 0x00, 0x00, 0x00, 0x8c, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
205
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
206
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
207
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
208
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
209
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
210
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
211
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0xe9, 0xb7, 0x1c, 0x3b, 0x6c, 0x3d, 0x27, 0x3b,
212
+ 0x93, 0x35, 0x24, 0x3b, 0x36, 0xf0, 0x11, 0x3b, 0x8a, 0xae, 0x18, 0x3b, 0xf8, 0xd4, 0x28, 0x3b, 0x45, 0x53, 0x2a, 0x3b,
213
+ 0x19, 0x2a, 0x11, 0x3b, 0x59, 0xed, 0x1b, 0x3b, 0xcb, 0x1b, 0x1e, 0x3b, 0x3c, 0x5a, 0x1f, 0x3b, 0x60, 0x61, 0x1a, 0x3b,
214
+ 0x9e, 0xaf, 0x0e, 0x3b, 0x01, 0x08, 0x1d, 0x3b, 0x6f, 0x01, 0x11, 0x3b, 0x10, 0xa9, 0x17, 0x3b, 0x12, 0x00, 0x00, 0x00,
215
+ 0x74, 0x66, 0x6c, 0x2e, 0x70, 0x73, 0x65, 0x75, 0x64, 0x6f, 0x5f, 0x71, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x31, 0x00, 0x00,
216
+ 0x04, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00,
217
+ 0x00, 0x00, 0x16, 0x00, 0x1c, 0x00, 0x18, 0x00, 0x17, 0x00, 0x10, 0x00, 0x0c, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00,
218
+ 0x00, 0x00, 0x07, 0x00, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x14, 0x00, 0x00, 0x00, 0xe8, 0x00, 0x00, 0x00,
219
+ 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xf4, 0x00, 0x00, 0x00, 0xbc, 0xfe, 0xff, 0xff, 0x08, 0x00, 0x00, 0x00,
220
+ 0x8c, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
221
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
222
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
223
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
224
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
225
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
226
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
227
+ 0x10, 0x00, 0x00, 0x00, 0xae, 0x4e, 0x0a, 0x39, 0xc3, 0x97, 0x13, 0x39, 0x10, 0xeb, 0x10, 0x39, 0x30, 0xcb, 0x00, 0x39,
228
+ 0xb6, 0xbe, 0x06, 0x39, 0x6f, 0xff, 0x14, 0x39, 0xd2, 0x50, 0x16, 0x39, 0x59, 0x1c, 0x00, 0x39, 0xea, 0x9b, 0x09, 0x39,
229
+ 0xc1, 0x88, 0x0b, 0x39, 0xc9, 0xa1, 0x0c, 0x39, 0x76, 0x3e, 0x08, 0x39, 0xd0, 0xd8, 0xfb, 0x38, 0x5e, 0x95, 0x0a, 0x39,
230
+ 0xec, 0xf0, 0xff, 0x38, 0xf3, 0xd7, 0x05, 0x39, 0x11, 0x00, 0x00, 0x00, 0x74, 0x66, 0x6c, 0x2e, 0x70, 0x73, 0x65, 0x75,
231
+ 0x64, 0x6f, 0x5f, 0x71, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
232
+ 0x00, 0x00, 0x16, 0x00, 0x20, 0x00, 0x1c, 0x00, 0x1b, 0x00, 0x14, 0x00, 0x10, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00,
233
+ 0x08, 0x00, 0x07, 0x00, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x18, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00,
234
+ 0x50, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x64, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
235
+ 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x0c, 0x00,
236
+ 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
237
+ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x27, 0x0e, 0x92, 0x3d,
238
+ 0x18, 0x00, 0x00, 0x00, 0x73, 0x65, 0x72, 0x76, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f,
239
+ 0x65, 0x6e, 0x63, 0x5f, 0x69, 0x6e, 0x3a, 0x30, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
240
+ 0x01, 0x00, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
241
+ 0x0c, 0x00, 0x10, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x08, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
242
+ 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03,
243
+ };
244
+ const unsigned int encoder_len = 4768;
245
+ #endif // __ENCODER_H
encoder_int8.tflite ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:fc946c86a777a13eae7561742e692d5c6a647ab33553609995def3a3dc9d2247
3
+ size 4768
quality_scorecard.json ADDED
@@ -0,0 +1,598 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "run_dir": "results/ppg_rvq_64hz_02x_golden",
3
+ "modality": "ppg",
4
+ "sample_rate": 64,
5
+ "num_samples_loaded": 1000,
6
+ "num_samples": 918,
7
+ "num_samples_rejected": 82,
8
+ "min_signal_std": 0.0001,
9
+ "noise_estimator": "bp",
10
+ "bitrate": {
11
+ "best_prior_tag": "tcn_ppg_2frame_ctx",
12
+ "val_bits_per_token": 5.140225407753721,
13
+ "val_bits_per_frame": null,
14
+ "cr_codec_uniform": 2.0,
15
+ "cr_codec_learned": 3.112703963500309,
16
+ "codec_compression_ratio": 2.0,
17
+ "effective_downsample_factor": 2,
18
+ "encoder_total_params": null
19
+ },
20
+ "time_domain": {
21
+ "prd_percent": {
22
+ "n": 918,
23
+ "mean": 6.18002860167718,
24
+ "std": 12.627286064153685,
25
+ "median": 2.2707451817717166,
26
+ "p10": 1.5388710438006645,
27
+ "p90": 10.756366635130483,
28
+ "max": 102.55162953199937,
29
+ "min": 1.1482345322974004
30
+ },
31
+ "prdn_noise_percent": {
32
+ "n": 918,
33
+ "mean": 0.061703700247336256,
34
+ "std": 1.8685119358471967,
35
+ "median": 0.0,
36
+ "p10": 0.0,
37
+ "p90": 0.0,
38
+ "max": 56.643996827054686,
39
+ "min": 0.0
40
+ },
41
+ "rmse": {
42
+ "n": 918,
43
+ "mean": 0.024121638248169274,
44
+ "std": 0.013522642240212754,
45
+ "median": 0.019943000653253825,
46
+ "p10": 0.01445534354605757,
47
+ "p90": 0.03855337747801658,
48
+ "max": 0.159792387896265,
49
+ "min": 0.011044595764267645
50
+ },
51
+ "cosine_similarity": {
52
+ "n": 918,
53
+ "mean": 0.9912038713435932,
54
+ "std": 0.04477608111701479,
55
+ "median": 0.9997541606426239,
56
+ "p10": 0.9942995369434356,
57
+ "p90": 0.9998896300792695,
58
+ "max": 0.9999375939369202,
59
+ "min": 0.008180302567780018
60
+ }
61
+ },
62
+ "spectral": {
63
+ "band_total_rel_error": {
64
+ "n": 918,
65
+ "mean": 1176.0287868351597,
66
+ "std": 35610.558716310516,
67
+ "median": 0.026308774384711124,
68
+ "p10": 0.009168633753903217,
69
+ "p90": 0.14041728607559176,
70
+ "max": 1079535.2477055304,
71
+ "min": 0.0012199072111776514
72
+ },
73
+ "per_band_rel_error": {
74
+ "band_0.5_3_rel_error": {
75
+ "n": 918,
76
+ "mean": 13.815620426212577,
77
+ "std": 417.42985048989766,
78
+ "median": 0.007044820428324217,
79
+ "p10": 0.0016567430478348587,
80
+ "p90": 0.027142116851674673,
81
+ "max": 12654.42911217313,
82
+ "min": 6.554717167689625e-06
83
+ },
84
+ "band_3_8_rel_error": {
85
+ "n": 918,
86
+ "mean": 2338.241953244107,
87
+ "std": 70803.68759901977,
88
+ "median": 0.045018189632978,
89
+ "p10": 0.0109970204303033,
90
+ "p90": 0.2515332799989127,
91
+ "max": 2146416.0662988876,
92
+ "min": 3.7187745467087346e-05
93
+ },
94
+ "band_total_rel_error": {
95
+ "n": 918,
96
+ "mean": 1176.0287868351597,
97
+ "std": 35610.558716310516,
98
+ "median": 0.026308774384711124,
99
+ "p10": 0.009168633753903217,
100
+ "p90": 0.14041728607559176,
101
+ "max": 1079535.2477055304,
102
+ "min": 0.0012199072111776514
103
+ }
104
+ },
105
+ "weighted_freq_prd_percent": {
106
+ "n": 918,
107
+ "mean": 4.694619255854067,
108
+ "std": 22.405036796946394,
109
+ "median": 1.1700696834910023,
110
+ "p10": 0.819346298502958,
111
+ "p90": 6.803113577165535,
112
+ "max": 613.827804773816,
113
+ "min": 0.6069363242572614
114
+ },
115
+ "coherence": {
116
+ "n": 918,
117
+ "mean": 0.9794946303653652,
118
+ "std": 0.04920294324414117,
119
+ "median": 0.9912895530356711,
120
+ "p10": 0.9622582086621779,
121
+ "p90": 0.9975675245874019,
122
+ "max": 0.9998844307226744,
123
+ "min": 0.19802516806590467
124
+ }
125
+ },
126
+ "physiology": {
127
+ "num_total_pairs": 918,
128
+ "num_valid_pairs": 566,
129
+ "target_mean_hr_bpm": 65.04832298643991,
130
+ "reconstructed_mean_hr_bpm": 64.89365750735779,
131
+ "hr_mae_bpm": 0.31294459166719535,
132
+ "hr_median_ae_bpm": 0.0,
133
+ "hr_bias_bpm": -0.154665479082129,
134
+ "target_mean_rmssd_ms": 66.56260621648076,
135
+ "reconstructed_mean_rmssd_ms": 65.36813602620421,
136
+ "rmssd_mae_ms": 15.529328252347964,
137
+ "rmssd_median_ae_ms": 0.0,
138
+ "target_mean_sdnn_ms": 52.43566935693551,
139
+ "reconstructed_mean_sdnn_ms": 52.13131749612763,
140
+ "sdnn_mae_ms": 10.291508828080497,
141
+ "sdnn_median_ae_ms": 0.0,
142
+ "peak_alignment": {
143
+ "num_total_pairs": 918.0,
144
+ "num_valid_pairs": 566.0,
145
+ "timing_tolerance_ms": 125.0,
146
+ "timing_tolerance_samples": 8.0,
147
+ "target_total_peaks": 3014.0,
148
+ "reconstructed_total_peaks": 3008.0,
149
+ "matched_total_peaks": 2985.0,
150
+ "total_missed_peaks": 29.0,
151
+ "total_extra_peaks": 23.0,
152
+ "peak_count_exact_match_pct": 96.99646643109541,
153
+ "peak_precision_pct": 99.30506478209658,
154
+ "peak_recall_pct": 99.2150429076224,
155
+ "peak_f1_pct": 99.2299617343787,
156
+ "peak_timing_mae_ms": 1.6750418760469012,
157
+ "peak_timing_median_ms": 0.0,
158
+ "peak_timing_p90_ms": 0.0,
159
+ "peak_timing_max_ms": 125.0,
160
+ "peak_timing_within_1sample_pct": 99.46398659966499,
161
+ "ibi_mae_ms": 3.021265560165975,
162
+ "ibi_median_ae_ms": 0.0,
163
+ "ibi_p90_ae_ms": 15.625
164
+ },
165
+ "by_noise_tertile": {
166
+ "thresholds_bp_noise_rms": {
167
+ "clean_max": 0.23595649226272147,
168
+ "median_max": 0.3318833137716638
169
+ },
170
+ "buckets": {
171
+ "clean": {
172
+ "n": 189,
173
+ "hr_mae_bpm": {
174
+ "n": 189,
175
+ "mean": 0.48157810018996927,
176
+ "std": 2.2274802934764995,
177
+ "median": 0.0,
178
+ "p10": 0.0,
179
+ "p90": 0.41069640504346133,
180
+ "max": 22.180302697960087,
181
+ "min": 0.0
182
+ },
183
+ "sdnn_mae_ms": {
184
+ "n": 189,
185
+ "mean": 15.91361559488821,
186
+ "std": 74.1132451499106,
187
+ "median": 0.0,
188
+ "p10": 0.0,
189
+ "p90": 10.094703347485707,
190
+ "max": 599.6773107124825,
191
+ "min": 0.0
192
+ },
193
+ "rmssd_mae_ms": {
194
+ "n": 189,
195
+ "mean": 23.493831839828673,
196
+ "std": 112.56828482061007,
197
+ "median": 0.0,
198
+ "p10": 0.0,
199
+ "p90": 15.625,
200
+ "max": 894.0722687820797,
201
+ "min": 0.0
202
+ },
203
+ "peak_timing_mae_ms": {
204
+ "n": 189,
205
+ "mean": 1.755007558578987,
206
+ "std": 3.6733602860945402,
207
+ "median": 0.0,
208
+ "p10": 0.0,
209
+ "p90": 3.2812500000000133,
210
+ "max": 31.25,
211
+ "min": 0.0
212
+ },
213
+ "peak_f1_pct": {
214
+ "n": 189,
215
+ "mean": 98.46144596144596,
216
+ "std": 7.474386996372416,
217
+ "median": 100.0,
218
+ "p10": 100.0,
219
+ "p90": 100.0,
220
+ "max": 100.0,
221
+ "min": 54.54545454545454
222
+ }
223
+ },
224
+ "median": {
225
+ "n": 188,
226
+ "hr_mae_bpm": {
227
+ "n": 188,
228
+ "mean": 0.1879441511989255,
229
+ "std": 1.31552680727675,
230
+ "median": 0.0,
231
+ "p10": 0.0,
232
+ "p90": 0.2636705362930356,
233
+ "max": 17.71036708350141,
234
+ "min": 0.0
235
+ },
236
+ "sdnn_mae_ms": {
237
+ "n": 188,
238
+ "mean": 7.112658450582662,
239
+ "std": 64.66335920602519,
240
+ "median": 0.0,
241
+ "p10": 0.0,
242
+ "p90": 6.082383165203219,
243
+ "max": 882.9460383857959,
244
+ "min": 0.0
245
+ },
246
+ "rmssd_mae_ms": {
247
+ "n": 188,
248
+ "mean": 10.55906001173321,
249
+ "std": 99.675776650029,
250
+ "median": 0.0,
251
+ "p10": 0.0,
252
+ "p90": 8.755620516439867,
253
+ "max": 1363.9002782460238,
254
+ "min": 0.0
255
+ },
256
+ "peak_timing_mae_ms": {
257
+ "n": 188,
258
+ "mean": 1.3555122847011143,
259
+ "std": 2.857260238213242,
260
+ "median": 0.0,
261
+ "p10": 0.0,
262
+ "p90": 3.125,
263
+ "max": 25.0,
264
+ "min": 0.0
265
+ },
266
+ "peak_f1_pct": {
267
+ "n": 188,
268
+ "mean": 99.75822050290137,
269
+ "std": 2.18566525725136,
270
+ "median": 100.0,
271
+ "p10": 100.0,
272
+ "p90": 100.0,
273
+ "max": 100.0,
274
+ "min": 72.72727272727272
275
+ }
276
+ },
277
+ "noisy": {
278
+ "n": 189,
279
+ "hr_mae_bpm": {
280
+ "n": 189,
281
+ "mean": 0.2686501456207954,
282
+ "std": 1.4260291357627615,
283
+ "median": 0.0,
284
+ "p10": 0.0,
285
+ "p90": 0.4324770563130161,
286
+ "max": 19.10966340933767,
287
+ "min": 0.0
288
+ },
289
+ "sdnn_mae_ms": {
290
+ "n": 189,
291
+ "mean": 7.831433124603971,
292
+ "std": 50.57647649499623,
293
+ "median": 0.0,
294
+ "p10": 0.0,
295
+ "p90": 8.5486966831981,
296
+ "max": 624.9003411395066,
297
+ "min": 0.0
298
+ },
299
+ "rmssd_mae_ms": {
300
+ "n": 189,
301
+ "mean": 12.508795189923207,
302
+ "std": 79.91229747734226,
303
+ "median": 0.0,
304
+ "p10": 0.0,
305
+ "p90": 13.335127790893273,
306
+ "max": 970.1113917316363,
307
+ "min": 0.0
308
+ },
309
+ "peak_timing_mae_ms": {
310
+ "n": 189,
311
+ "mean": 1.9872763920382968,
312
+ "std": 3.2608956149124655,
313
+ "median": 0.0,
314
+ "p10": 0.0,
315
+ "p90": 3.392857142857166,
316
+ "max": 23.4375,
317
+ "min": 0.0
318
+ },
319
+ "peak_f1_pct": {
320
+ "n": 189,
321
+ "mean": 99.47301375872806,
322
+ "std": 3.0298734025973264,
323
+ "median": 100.0,
324
+ "p10": 100.0,
325
+ "p90": 100.0,
326
+ "max": 100.0,
327
+ "min": 72.72727272727272
328
+ }
329
+ }
330
+ }
331
+ }
332
+ },
333
+ "stability": {},
334
+ "by_noise_tertile": {
335
+ "thresholds_bp_noise_rms": {
336
+ "clean_max": 0.24079771218823168,
337
+ "median_max": 0.3463892954157838
338
+ },
339
+ "buckets": {
340
+ "clean": {
341
+ "n": 306,
342
+ "time_domain": {
343
+ "prd_percent": {
344
+ "n": 306,
345
+ "mean": 12.410000547048252,
346
+ "std": 20.176677551489508,
347
+ "median": 2.3748347549279414,
348
+ "p10": 1.4816890695109748,
349
+ "p90": 52.618571066315255,
350
+ "max": 102.55162953199937,
351
+ "min": 1.1482345322974004
352
+ },
353
+ "prdn_noise_percent": {
354
+ "n": 306,
355
+ "mean": 0.1851111007420088,
356
+ "std": 3.232826392410366,
357
+ "median": 0.0,
358
+ "p10": 0.0,
359
+ "p90": 0.0,
360
+ "max": 56.643996827054686,
361
+ "min": 0.0
362
+ },
363
+ "rmse": {
364
+ "n": 306,
365
+ "mean": 0.024535816140018596,
366
+ "std": 0.012868325509471054,
367
+ "median": 0.0191285667775326,
368
+ "p10": 0.013883531778025676,
369
+ "p90": 0.0502772823518797,
370
+ "max": 0.06532854832145069,
371
+ "min": 0.011044595764267645
372
+ },
373
+ "cosine_similarity": {
374
+ "n": 306,
375
+ "mean": 0.9751414601520629,
376
+ "std": 0.0749649686774173,
377
+ "median": 0.9997258186340332,
378
+ "p10": 0.8936916291713715,
379
+ "p90": 0.9998959302902222,
380
+ "max": 0.9999356865882874,
381
+ "min": 0.008180302567780018
382
+ }
383
+ },
384
+ "spectral": {
385
+ "band_total_rel_error": {
386
+ "n": 306,
387
+ "mean": 3528.0109967250646,
388
+ "std": 61611.99514520344,
389
+ "median": 0.02761306175373358,
390
+ "p10": 0.008752545329382053,
391
+ "p90": 0.4491900191298981,
392
+ "max": 1079535.2477055304,
393
+ "min": 0.001792721229149761
394
+ },
395
+ "weighted_freq_prd_percent": {
396
+ "n": 306,
397
+ "mean": 10.112825538450549,
398
+ "std": 37.526600712839986,
399
+ "median": 1.0917400747917194,
400
+ "p10": 0.7754958896704744,
401
+ "p90": 33.596739726406895,
402
+ "max": 613.827804773816,
403
+ "min": 0.6069363242572614
404
+ },
405
+ "coherence": {
406
+ "n": 306,
407
+ "mean": 0.9632922787299859,
408
+ "std": 0.07681821683517712,
409
+ "median": 0.9886388607222496,
410
+ "p10": 0.9155177660481352,
411
+ "p90": 0.997239017343883,
412
+ "max": 0.9994472304335038,
413
+ "min": 0.19802516806590467
414
+ }
415
+ }
416
+ },
417
+ "median": {
418
+ "n": 306,
419
+ "time_domain": {
420
+ "prd_percent": {
421
+ "n": 306,
422
+ "mean": 2.9402115932327177,
423
+ "std": 2.544618534673755,
424
+ "median": 2.0966436500385734,
425
+ "p10": 1.5454621506916477,
426
+ "p90": 5.318313598768995,
427
+ "max": 21.435605864320802,
428
+ "min": 1.1482770838052627
429
+ },
430
+ "prdn_noise_percent": {
431
+ "n": 306,
432
+ "mean": 0.0,
433
+ "std": 0.0,
434
+ "median": 0.0,
435
+ "p10": 0.0,
436
+ "p90": 0.0,
437
+ "max": 0.0,
438
+ "min": 0.0
439
+ },
440
+ "rmse": {
441
+ "n": 306,
442
+ "mean": 0.02163338002566946,
443
+ "std": 0.008983813529486554,
444
+ "median": 0.019246505059827536,
445
+ "p10": 0.01444338145352125,
446
+ "p90": 0.03143832243972748,
447
+ "max": 0.08566159694896452,
448
+ "min": 0.01107206993494496
449
+ },
450
+ "cosine_similarity": {
451
+ "n": 306,
452
+ "mean": 0.9992719982184616,
453
+ "std": 0.0019370705316250657,
454
+ "median": 0.9997909069061279,
455
+ "p10": 0.9988147020339966,
456
+ "p90": 0.9998902976512909,
457
+ "max": 0.9999375939369202,
458
+ "min": 0.9771165251731873
459
+ }
460
+ },
461
+ "spectral": {
462
+ "band_total_rel_error": {
463
+ "n": 306,
464
+ "mean": 0.031660502020778886,
465
+ "std": 0.03315217404097163,
466
+ "median": 0.024142931647891268,
467
+ "p10": 0.008288761914618812,
468
+ "p90": 0.04803708418022681,
469
+ "max": 0.18910425851314508,
470
+ "min": 0.0012199072111776514
471
+ },
472
+ "weighted_freq_prd_percent": {
473
+ "n": 306,
474
+ "mean": 1.5755510459538449,
475
+ "std": 1.8275998361774597,
476
+ "median": 1.051463431696959,
477
+ "p10": 0.8123178914324305,
478
+ "p90": 3.110515933647819,
479
+ "max": 19.6303215776555,
480
+ "min": 0.6356928137285102
481
+ },
482
+ "coherence": {
483
+ "n": 306,
484
+ "mean": 0.9886334606742659,
485
+ "std": 0.015984117153310787,
486
+ "median": 0.9927023933060921,
487
+ "p10": 0.9745925730323756,
488
+ "p90": 0.9983765025163724,
489
+ "max": 0.9995732162282978,
490
+ "min": 0.7978961757689436
491
+ }
492
+ }
493
+ },
494
+ "noisy": {
495
+ "n": 306,
496
+ "time_domain": {
497
+ "prd_percent": {
498
+ "n": 306,
499
+ "mean": 3.1898736647505714,
500
+ "std": 2.5537557242188034,
501
+ "median": 2.413747481282866,
502
+ "p10": 1.6017328695902018,
503
+ "p90": 5.27667155163199,
504
+ "max": 20.93733355391849,
505
+ "min": 1.2786334542504572
506
+ },
507
+ "prdn_noise_percent": {
508
+ "n": 306,
509
+ "mean": 0.0,
510
+ "std": 0.0,
511
+ "median": 0.0,
512
+ "p10": 0.0,
513
+ "p90": 0.0,
514
+ "max": 0.0,
515
+ "min": 0.0
516
+ },
517
+ "rmse": {
518
+ "n": 306,
519
+ "mean": 0.02619571857881978,
520
+ "std": 0.01707682848172176,
521
+ "median": 0.021887208447505847,
522
+ "p10": 0.015282246823700944,
523
+ "p90": 0.0378572479681321,
524
+ "max": 0.159792387896265,
525
+ "min": 0.012142557707002864
526
+ },
527
+ "cosine_similarity": {
528
+ "n": 306,
529
+ "mean": 0.9991981556602553,
530
+ "std": 0.0020467640927616876,
531
+ "median": 0.999715656042099,
532
+ "p10": 0.9986196458339691,
533
+ "p90": 0.9998804032802582,
534
+ "max": 0.9999217391014099,
535
+ "min": 0.9789285063743591
536
+ }
537
+ },
538
+ "spectral": {
539
+ "band_total_rel_error": {
540
+ "n": 306,
541
+ "mean": 0.043703278393080504,
542
+ "std": 0.12725654357042585,
543
+ "median": 0.027291962758910323,
544
+ "p10": 0.011429650069387757,
545
+ "p90": 0.08152511131433383,
546
+ "max": 2.1899218539986425,
547
+ "min": 0.003867512508816609
548
+ },
549
+ "weighted_freq_prd_percent": {
550
+ "n": 306,
551
+ "mean": 2.3954811831578073,
552
+ "std": 7.071036536417225,
553
+ "median": 1.4272796009046655,
554
+ "p10": 0.9651973366810878,
555
+ "p90": 3.214195675101878,
556
+ "max": 117.32534804218969,
557
+ "min": 0.7330226109508876
558
+ },
559
+ "coherence": {
560
+ "n": 306,
561
+ "mean": 0.9865581516918438,
562
+ "std": 0.026652029590455154,
563
+ "median": 0.9913460166777425,
564
+ "p10": 0.9765046059751752,
565
+ "p90": 0.9970782099301858,
566
+ "max": 0.9998844307226744,
567
+ "min": 0.5791168328428999
568
+ }
569
+ }
570
+ }
571
+ }
572
+ },
573
+ "context": {
574
+ "noise_power": {
575
+ "n": 918,
576
+ "mean": 0.12453203861557659,
577
+ "std": 0.133090612528325,
578
+ "median": 0.08267428512741551,
579
+ "p10": 0.022126767473853823,
580
+ "p90": 0.2739888740668575,
581
+ "max": 0.9756125693593471,
582
+ "min": 0.00020508309235497428
583
+ },
584
+ "noise_rms": {
585
+ "n": 918,
586
+ "mean": 0.31516498694789197,
587
+ "std": 0.15875474675647228,
588
+ "median": 0.2875313553855465,
589
+ "p10": 0.1487506334419683,
590
+ "p90": 0.5234391597399032,
591
+ "max": 0.9877310207538017,
592
+ "min": 0.014320722480202396
593
+ },
594
+ "qrs_snr_db": {
595
+ "n": 0
596
+ }
597
+ }
598
+ }
sample_stimulus.npz ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:485d58f20daf1c058e74cb35bb21778caa3281ce18cbee9115a000b463c39194
3
+ size 192774