// moonmp3-encoder — pure MoonBit MP3 encoder.
// Copyright 2026 Sakuraqwq1
// Licensed under the Apache License, Version 2.0.
// The big_values Huffman tables of ISO/IEC 11172-3 Table B.7, packed for the
// encoder as `(length << 16) | code` per symbol, with symbol = `x * 16 + y` and
// zero meaning "this table cannot represent that pair".
//
// Tables 0, 4 and 14 are empty by the standard: table 0 encodes only zero pairs,
// and 4 and 14 are not defined. Tables 1..3 cover only small values (their
// largest representable coefficient is listed in `huffman_table_extent`), so a
// table is only selectable for a region whose values fit it.
//
// Source: hajimehoshi/go-mp3, `internal/huffman/huffman.go`.
// git blob abc30058a5cb0e8a75ea40aed2aa88dd02f2c96e
// file sha256 6ffbac45b10aabb6cd1a5e37736743ec84ddb8c145fbdd22b2638f1a66cb6b1d
// licence Apache License 2.0 (compatible with this module)
// The upstream stores a decoder-side binary tree; the encoder-side table here is
// the result of walking it, and the walk is checked for a complete prefix code
// (Kraft sum 1), for code collisions and for the documented (x, y) extents.
// `tools/huffman_tables.py` reproduces and verifies all of it.
// Do not edit by hand: `python tools/huffman_tables.py --write`.
///|
/// `(length << 16) | code` for every big_values table, 256 symbols each,
/// indexed by `table * 256 + x * 16 + y`. Zero means "not representable".
let huffman_codes : Array[Int32] = [
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65537, 196609, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 131073, 196608, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 65537, 196610, 393217, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
196611, 196609, 327681, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 327683, 327682,
393216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 131075, 131074, 393217, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 196609, 131073, 327681, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 327683, 327682,
393216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65537, 196610, 393222,
458757, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 196611, 196609, 393220, 458756, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 393223, 393221, 458759, 524289, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 458758, 393217, 458753, 524288, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 196615, 196611, 327685, 458753, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 196614, 131074, 262147, 327682, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 262149,
262148, 327684, 393217, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 393219, 327683, 393218,
458752, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65537, 196610, 393226, 524307,
524304, 589834, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 196611, 262147, 393223, 458762, 458757,
524291, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 393227, 327684, 458765, 524305, 524296, 589828,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 458764, 458763, 524306, 589839, 589835, 589826, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 458759, 458758, 524297, 589838, 589827, 655361, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 524294, 524292, 589829, 655363, 655362, 655360, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 131075, 196612, 393222, 524306, 524300, 589829, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 196613, 131073, 262146, 524304, 524297, 524291, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 393223, 262147, 393221, 524302, 524295, 589827, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 524307, 524305, 524303, 589837, 589834, 655364, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 524301, 458757, 524296, 589835, 655365, 655361, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
589836, 524292, 589828, 589825, 720897, 720896, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 196615,
196613, 327689, 393230, 524303, 589831, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 196614, 196612,
262149, 327685, 393222, 524295, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 262151, 262150, 327688,
393224, 458760, 524293, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 393231, 327686, 393225, 458762,
458757, 524289, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 458763, 393223, 458761, 458758, 524292,
589825, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 524302, 458756, 524294, 524290, 589830, 589824,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 65537, 196610, 393226, 524311, 589859, 589854, 589836,
655377, 0, 0, 0, 0, 0, 0, 0, 0, 196611, 262147, 393224, 458764, 524306, 589845,
524300, 524295, 0, 0, 0, 0, 0, 0, 0, 0, 393227, 393225, 458767, 524309, 589856,
655400, 589843, 589830, 0, 0, 0, 0, 0, 0, 0, 0, 458766, 458765, 524310, 589858,
655406, 655383, 589842, 655367, 0, 0, 0, 0, 0, 0, 0, 0, 524308, 524307, 589857,
655407, 655387, 655382, 655369, 655363, 0, 0, 0, 0, 0, 0, 0, 0, 589855, 589846,
655401, 655386, 720917, 720916, 655365, 720899, 0, 0, 0, 0, 0, 0, 0, 0, 524302,
524301, 589834, 655371, 655376, 655366, 720901, 720897, 0, 0, 0, 0, 0, 0, 0, 0,
589833, 524296, 589831, 655368, 655364, 720900, 720898, 720896, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 131075, 196612,
327690, 458776, 524322, 589857, 524309, 589839, 0, 0, 0, 0, 0, 0, 0, 0, 196613,
196611, 262148, 393226, 524320, 524305, 458763, 524298, 0, 0, 0, 0, 0, 0, 0, 0,
327691, 327687, 393229, 458770, 524318, 589855, 524308, 524293, 0, 0, 0, 0, 0,
0, 0, 0, 458777, 393227, 458771, 589883, 524315, 655378, 524300, 589829, 0, 0,
0, 0, 0, 0, 0, 0, 524323, 524321, 524319, 589882, 589854, 655376, 589831, 655365,
0, 0, 0, 0, 0, 0, 0, 0, 524316, 524314, 589856, 655379, 655377, 720911, 655368,
720910, 0, 0, 0, 0, 0, 0, 0, 0, 524302, 458764, 458761, 524301, 589838, 655369,
655364, 655361, 0, 0, 0, 0, 0, 0, 0, 0, 524299, 458756, 524294, 589830, 655366,
655363, 655362, 655360, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 262153, 196614, 327696, 458785, 524329, 589863, 589862,
589850, 0, 0, 0, 0, 0, 0, 0, 0, 196615, 196613, 262150, 327689, 458775, 458768,
524314, 524299, 0, 0, 0, 0, 0, 0, 0, 0, 327697, 262151, 327691, 393230, 458773,
524318, 458762, 524295, 0, 0, 0, 0, 0, 0, 0, 0, 393233, 327690, 393231, 393228,
458770, 524316, 524302, 524293, 0, 0, 0, 0, 0, 0, 0, 0, 458784, 393229, 458774,
458771, 524306, 524304, 524297, 589829, 0, 0, 0, 0, 0, 0, 0, 0, 524328, 458769,
524319, 524317, 524305, 589837, 524292, 589826, 0, 0, 0, 0, 0, 0, 0, 0, 524315,
458764, 458763, 524303, 524298, 589831, 589828, 655361, 0, 0, 0, 0, 0, 0, 0, 0,
589851, 524300, 524296, 589836, 589830, 589827, 589825, 655360, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65537, 262149,
393230, 458773, 524322, 589875, 589870, 655431, 589866, 655412, 720964, 720948,
786499, 786476, 852011, 851987, 196611, 262148, 393228, 458771, 524319, 524314,
589868, 589857, 589855, 589848, 655392, 655384, 720927, 786467, 786454, 786446,
393231, 393229, 458775, 524324, 589883, 589873, 655437, 655425, 589853, 655400,
655390, 720936, 720923, 786465, 852010, 851984, 458774, 458772, 524325, 589885,
589880, 655439, 655433, 655424, 655403, 720972, 720952, 720933, 720922, 786463,
851993, 851982, 524323, 458768, 589884, 589881, 655457, 655435, 721010, 720987,
655414, 720969, 720951, 786473, 786480, 852021, 851991, 917528, 589882, 524315,
589874, 655456, 655436, 655430, 720989, 720980, 720973, 720954, 786511, 720925,
852042, 852017, 917545, 917521, 589871, 589869, 655438, 655434, 721011, 720990,
720986, 720975, 720965, 786515, 786503, 786482, 852027, 852006, 917540, 917519,
655432, 589858, 655416, 720991, 720988, 720981, 786523, 786522, 786518, 786505,
852045, 852033, 852019, 917548, 1048619, 1048618, 589867, 524308, 589854, 655404,
655415, 720974, 720968, 786519, 786510, 786493, 786478, 852022, 852005, 917534,
983060, 983056, 655413, 589849, 655401, 655397, 720940, 720955, 720950, 852049,
786498, 852044, 852025, 917558, 917541, 917522, 1048615, 983051, 655395, 655393,
655391, 720953, 720938, 786514, 786504, 852048, 786479, 852026, 917559, 851989,
917526, 983066, 1048614, 1114134, 720949, 655385, 655383, 720934, 786502, 786492,
786483, 786468, 852023, 851994, 852002, 917527, 983067, 983054, 983049, 1048583,
720930, 720928, 720924, 786471, 786481, 852043, 786462, 852020, 917552, 917544,
983092, 983068, 983058, 1048593, 1048585, 1048581, 786477, 720917, 786466, 852032,
852024, 852018, 917553, 917549, 917535, 917523, 917516, 983055, 1048586, 983047,
1048582, 1048579, 852016, 786455, 786452, 852007, 852004, 852003, 983093, 917525,
917520, 1114135, 983053, 983050, 983046, 1114113, 1048580, 1048578, 786448, 786447,
851985, 917531, 917529, 917524, 983069, 917515, 983057, 983052, 1048592, 1048584,
1245185, 1179649, 1245184, 1048577, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 196615,
262156, 327698, 458805, 458799, 524364, 589948, 589932, 589913, 655483, 655468,
721015, 721003, 720977, 786554, 852031, 262157, 196613, 327696, 393243, 458798,
458788, 524349, 524339, 524330, 589894, 589876, 655443, 655425, 655401, 720955,
720932, 327699, 327697, 327695, 393240, 458793, 458786, 524347, 524336, 524328,
589888, 589874, 655438, 655422, 720976, 720952, 720929, 393245, 393244, 393241,
458795, 458791, 524351, 524343, 589917, 589900, 589883, 655453, 655432, 655414,
720971, 720946, 720925, 458804, 393238, 458794, 458792, 524355, 524345, 589919,
589903, 589896, 589881, 655449, 655429, 655409, 720962, 720942, 720923, 524365,
458789, 458787, 524354, 524346, 524340, 589915, 589898, 589886, 589872, 655439,
655423, 720986, 720958, 720936, 786470, 589949, 458784, 524348, 524344, 524338,
589916, 589902, 589889, 589879, 655447, 655431, 655411, 720969, 720947, 786502,
786462, 589933, 524341, 524337, 589918, 589912, 589899, 589890, 655482, 655451,
655433, 655416, 655402, 720960, 720940, 720917, 786457, 589914, 524331, 524329,
589901, 589897, 589887, 589880, 655452, 655437, 655426, 655407, 720963, 720944,
786485, 786468, 786452, 589895, 524322, 589891, 589884, 589882, 589873, 655448,
655436, 655427, 721002, 720967, 720950, 720934, 786471, 786455, 786447, 655469,
589877, 589875, 589871, 655450, 655442, 655418, 655417, 655408, 720968, 720953,
720937, 720919, 786459, 852030, 786441, 655446, 589866, 589864, 589861, 655430,
655424, 655412, 655403, 720966, 720951, 720938, 720921, 786461, 786450, 786443,
851979, 721014, 655428, 589854, 655415, 655410, 655406, 720970, 720961, 720945,
720935, 720920, 720912, 786454, 786445, 851982, 851975, 720987, 655404, 655399,
655398, 655394, 720959, 720948, 720941, 720927, 786484, 786460, 786451, 786446,
786440, 851977, 851971, 786555, 720956, 720954, 720949, 720943, 720939, 720928,
720918, 786469, 786456, 786449, 786444, 851983, 851978, 786434, 851969, 786503,
720933, 720930, 720926, 720924, 720916, 720913, 786458, 786453, 786448, 786442,
786438, 851976, 851974, 851970, 851968,
]
///|
/// Extra bits appended when `x` or `y` reaches 15, per table.
let huffman_linbits : Array[Int32] = [
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
]
///|
/// Largest coefficient each table can represent (0 for the empty tables).
let huffman_table_extent : Array[Int32] = [
0, 1, 2, 2, 0, 3, 3, 5, 5, 5, 7, 7, 7, 15, 0, 15,
]