#[derive(Clone)]
#[repr(C)]
pub struct CdfModeContext {
pub data: [u16; 3496],
}
impl Default for CdfModeContext {
fn default() -> Self {
Self { data: [0; 3496] }
}
}
#[derive(Clone)]
#[repr(C)]
pub struct CdfCoefContext {
pub data: [u16; 4656],
}
impl Default for CdfCoefContext {
fn default() -> Self {
Self { data: [0; 4656] }
}
}
impl CdfCoefContext {
pub fn skip(&mut self, i: usize, j: usize, k: usize) -> &mut [u16] {
let o = i * 100 + j * 20 + k * 2;
&mut self.data[o..o + 2]
}
pub fn skip_v(&mut self, k: usize) -> &mut [u16] {
let o = 4418 + k * 2;
&mut self.data[o..o + 2]
}
pub fn eob_bin_16(&mut self, i: usize) -> &mut [u16] {
let o = 200 + i * 8;
&mut self.data[o..o + 8]
}
pub fn eob_bin_32(&mut self, i: usize) -> &mut [u16] {
let o = 224 + i * 8;
&mut self.data[o..o + 8]
}
pub fn eob_bin_64(&mut self, i: usize) -> &mut [u16] {
let o = 248 + i * 8;
&mut self.data[o..o + 8]
}
pub fn eob_bin_128(&mut self, i: usize) -> &mut [u16] {
let o = 272 + i * 8;
&mut self.data[o..o + 8]
}
pub fn eob_bin_256(&mut self, i: usize) -> &mut [u16] {
let o = 296 + i * 8;
&mut self.data[o..o + 8]
}
pub fn eob_bin_512(&mut self, i: usize) -> &mut [u16] {
let o = 320 + i * 8;
&mut self.data[o..o + 8]
}
pub fn eob_bin_1024(&mut self, i: usize) -> &mut [u16] {
let o = 344 + i * 8;
&mut self.data[o..o + 8]
}
pub fn eob_hi_bit(&mut self) -> &mut [u16] {
&mut self.data[368..370]
}
pub fn eob_base_y_tok_hf(&mut self, i: usize, j: usize) -> &mut [u16] {
let o = 372 + i * 16 + j * 4;
&mut self.data[o..o + 4]
}
pub fn base_y_tok_hf(&mut self, i: usize, j: usize, k: usize) -> &mut [u16] {
let o = 452 + i * 160 + j * 8 + k * 4;
&mut self.data[o..o + 4]
}
pub fn br_y_tok_hf(&mut self, j: usize) -> &mut [u16] {
let o = 1252 + j * 4;
&mut self.data[o..o + 4]
}
pub fn eob_base_y_tok_lf(&mut self, i: usize, j: usize) -> &mut [u16] {
let o = 1280 + i * 32 + j * 8;
&mut self.data[o..o + 8]
}
pub fn base_y_tok_lf(&mut self, i: usize, j: usize, k: usize) -> &mut [u16] {
let o = 1440 + i * 528 + j * 16 + k * 8;
&mut self.data[o..o + 8]
}
pub fn br_y_tok_lf(&mut self, j: usize) -> &mut [u16] {
let o = 4080 + j * 4;
&mut self.data[o..o + 4]
}
pub fn dc_sign(&mut self, i: usize, j: usize, k: usize) -> &mut [u16] {
let o = 4136 + i * 12 + j * 6 + k * 2;
&mut self.data[o..o + 2]
}
pub fn bob_base_y_tok(&mut self, i: usize, j: usize) -> &mut [u16] {
let o = 4160 + i * 12 + j * 4;
&mut self.data[o..o + 4]
}
pub fn br_y_tok_idtx(&mut self, i: usize, j: usize) -> &mut [u16] {
let o = 4196 + i * 28 + j * 4;
&mut self.data[o..o + 4]
}
pub fn base_y_tok_idtx(&mut self, i: usize, j: usize) -> &mut [u16] {
let o = 4280 + i * 28 + j * 4;
&mut self.data[o..o + 4]
}
pub fn sign_idtx(&mut self, i: usize, j: usize) -> &mut [u16] {
let o = 4364 + i * 18 + j * 2;
&mut self.data[o..o + 2]
}
pub fn eob_base_uv_tok_hf(&mut self, j: usize) -> &mut [u16] {
let o = 4444 + j * 4;
&mut self.data[o..o + 4]
}
pub fn base_uv_tok_hf(&mut self, j: usize) -> &mut [u16] {
let o = 4460 + j * 4;
&mut self.data[o..o + 4]
}
pub fn br_uv_tok_hf(&mut self, j: usize) -> &mut [u16] {
let o = 4508 + j * 4;
&mut self.data[o..o + 4]
}
pub fn eob_base_uv_tok_lf(&mut self, j: usize) -> &mut [u16] {
let o = 4528 + j * 8;
&mut self.data[o..o + 8]
}
pub fn base_uv_tok_lf(&mut self, j: usize) -> &mut [u16] {
let o = 4560 + j * 8;
&mut self.data[o..o + 8]
}
}
#[derive(Clone)]
#[repr(C)]
pub struct CdfMvContext {
pub data: [u16; 168],
}
impl Default for CdfMvContext {
fn default() -> Self {
Self { data: [0; 168] }
}
}
macro_rules! cdf_acc {
($name:ident, $off:expr, $len:expr) => {
pub fn $name(&mut self) -> &mut [u16] {
&mut self.data[$off..$off + $len]
}
};
($name:ident, $off:expr, $stride:expr, $len:expr) => {
pub fn $name(&mut self, i: usize) -> &mut [u16] {
let o = $off + i * $stride;
&mut self.data[o..o + $len]
}
};
($name:ident, $off:expr, $s1:expr, $s2:expr, $len:expr) => {
pub fn $name(&mut self, i: usize, j: usize) -> &mut [u16] {
let o = $off + i * $s1 + j * $s2;
&mut self.data[o..o + $len]
}
};
($name:ident, $off:expr, $s1:expr, $s2:expr, $s3:expr, $len:expr) => {
pub fn $name(&mut self, i: usize, j: usize, k: usize) -> &mut [u16] {
let o = $off + i * $s1 + j * $s2 + k * $s3;
&mut self.data[o..o + $len]
}
};
}
impl CdfMvContext {
cdf_acc!(shell_lower, 0, 8, 8); cdf_acc!(shell_upper, 56, 8, 8); cdf_acc!(shell_set, 112, 2); cdf_acc!(shell_tip, 114, 2); cdf_acc!(shell_offset_low, 116, 2, 2); cdf_acc!(shell_offset_cl2, 120, 2); cdf_acc!(shell_offset_hi, 122, 2, 2); cdf_acc!(col_component, 154, 2, 2); cdf_acc!(col_index, 158, 2, 2); }
impl CdfModeContext {
cdf_acc!(rst_switchable, 0, 2, 2); cdf_acc!(rst_pc_wiener, 4, 2); cdf_acc!(rst_ns_wiener, 6, 2); cdf_acc!(wiener_ns_len, 8, 2, 2); cdf_acc!(wiener_ns_sym, 12, 2); cdf_acc!(wiener_ns_cf, 16, 4); cdf_acc!(part_split, 20, 128, 2, 2); cdf_acc!(part_square, 276, 2, 2); cdf_acc!(part_dir, 292, 128, 2, 2); cdf_acc!(part_ext, 548, 128, 2, 2); cdf_acc!(part_4way, 804, 128, 2, 2); cdf_acc!(region_type, 1060, 2, 2); cdf_acc!(intrabc, 1068, 2, 2); cdf_acc!(gdf, 1074, 2); cdf_acc!(cdef_idx0, 1076, 2, 2); cdf_acc!(cdef_idx, 1088, 8, 8); cdf_acc!(ccso, 1136, 8, 2, 2); cdf_acc!(skip_txfm, 1160, 2, 2); cdf_acc!(dpcm, 1172, 2, 2); cdf_acc!(dpcm_dir, 1176, 2, 2); cdf_acc!(intra_y_set, 1180, 4); cdf_acc!(intra_y_idx0, 1184, 8, 8); cdf_acc!(intra_y_idx1, 1208, 8, 8); cdf_acc!(fsc, 1232, 12, 2, 2); cdf_acc!(mrl_index, 1280, 4, 4); cdf_acc!(multi_mrl, 1292, 2, 2); cdf_acc!(pal_y, 1298, 2); cdf_acc!(pal_sz, 1304, 8); cdf_acc!(dip, 1312, 2, 2); cdf_acc!(dip_mode, 1320, 8); cdf_acc!(cfl, 1328, 2, 2); cdf_acc!(intra_uv_mode, 1336, 8, 8); cdf_acc!(mhccp, 1352, 2); cdf_acc!(mhccp_filter_dir, 1356, 4, 4); cdf_acc!(cfl_type, 1372, 2); cdf_acc!(cfl_sign, 1376, 8); cdf_acc!(cfl_alpha, 1384, 8, 8); cdf_acc!(pal_idx_identity, 1432, 4, 4); cdf_acc!(pal_idx, 1448, 40, 8, 8); cdf_acc!(intrabc_mode, 1728, 2); cdf_acc!(intrabc_precision, 1730, 2); cdf_acc!(morph_pred, 1732, 2, 2); cdf_acc!(txsz_lossless, 1738, 4, 2, 2); cdf_acc!(tx_split, 1754, 36, 18, 2, 2); cdf_acc!(tx_part_2d, 1832, 224, 112, 8, 8); cdf_acc!(tx_part_1d, 2280, 8, 4, 2, 2); cdf_acc!(txtp_lossless, 2296, 2); cdf_acc!(txtp_long32_dct, 2298, 2, 2); cdf_acc!(txtp_intra_short_1d, 2304, 4, 4); cdf_acc!(txtp_inter_short_1d, 2320, 16, 4, 4); cdf_acc!(txtp_ext, 2368, 8, 8); cdf_acc!(txtp_ext_reduced, 2400, 2, 2); cdf_acc!(txtp_inter_tx_set, 2408, 24, 8, 2, 2); cdf_acc!(txtp_inter_set0, 2456, 24, 8, 8); cdf_acc!(txtp_inter_set1, 2504, 8, 8); cdf_acc!(txtp_inter_set2, 2528, 4, 4); cdf_acc!(txtp_inter_dct_idtx, 2540, 8, 2, 2); cdf_acc!(txtp_inter_dct_idtx_iddct, 2564, 16, 4, 4); cdf_acc!(stx, 2612, 20, 4, 4); cdf_acc!(stx_set_adst, 2652, 4); cdf_acc!(stx_set, 2656, 8); cdf_acc!(cctx, 2664, 8); cdf_acc!(seg_id_ext, 2672, 2, 2); cdf_acc!(seg_id, 2680, 24, 8, 8); cdf_acc!(delta_q, 2728, 8); cdf_acc!(skip_mode, 2736, 2, 2); cdf_acc!(skip_mode_drl_idx, 2742, 2, 2); cdf_acc!(intra, 2748, 2, 2); cdf_acc!(tip, 2756, 2, 2); cdf_acc!(comp, 2762, 2, 2); cdf_acc!(single_ref, 2772, 12, 2, 2); cdf_acc!(comp0_ref, 2808, 12, 2, 2); cdf_acc!(comp1_ref, 2844, 24, 12, 2, 2); cdf_acc!(tip_mode, 2916, 2); cdf_acc!(warp, 2918, 2, 2); cdf_acc!(warp_newmv, 2928, 2); cdf_acc!(inter_mode, 2932, 4, 4); cdf_acc!(amvd, 2952, 6, 2, 2); cdf_acc!(bawp, 3006, 2, 2); cdf_acc!(bawp_explicit, 3010, 2, 2); cdf_acc!(bawp_explicit_scale, 3016, 2); cdf_acc!(warp_extend, 3018, 2, 2); cdf_acc!(warp_causal, 3024, 2, 2); cdf_acc!(interintra, 3032, 2, 2); cdf_acc!(interintra_mode, 3040, 4, 4); cdf_acc!(interintra_wedge, 3056, 2); cdf_acc!(wedge_quad, 3060, 4); cdf_acc!(wedge_angle, 3064, 8, 8); cdf_acc!(wedge_dist2, 3096, 4); cdf_acc!(wedge_dist, 3100, 4); cdf_acc!(tip_drl_idx, 3104, 2, 2); cdf_acc!(jmvd_amvd_scale_mode, 3112, 4); cdf_acc!(jmvd_scale_mode, 3120, 8); cdf_acc!(drl_idx, 3128, 10, 2, 2); cdf_acc!(mvprec_def, 3158, 2, 2); cdf_acc!(mvprec_rem, 3164, 12, 4, 4); cdf_acc!(warp_ref_idx, 3188, 2, 2); cdf_acc!(amvd_joint, 3196, 4); cdf_acc!(amvd_index, 3200, 8, 8); cdf_acc!(warpmv_with_mvd, 3216, 2); cdf_acc!(warp_delta_prec, 3218, 2, 2); cdf_acc!(warp_delta_param, 3280, 16, 8, 8); cdf_acc!(warp_delta_sign, 3312, 2); cdf_acc!(warp_interintra, 3314, 2, 2); cdf_acc!(comp_mode_sameref, 3324, 4, 4); cdf_acc!(comp_mode_joint, 3344, 2, 2); cdf_acc!(comp_mode, 3352, 8, 8); cdf_acc!(opfl, 3392, 2, 2); cdf_acc!(refine_mv, 3396, 2, 2); cdf_acc!(comp_type_masked, 3418, 2, 2); cdf_acc!(comp_type_weighted, 3442, 2); cdf_acc!(cwp_idx, 3444, 2, 2); cdf_acc!(filter, 3452, 4, 4); cdf_acc!(seg_pred, 3484, 2, 2); }
#[derive(Clone)]
#[repr(C)]
#[derive(Default)]
pub struct CdfContext {
pub coef: CdfCoefContext,
pub m: CdfModeContext,
pub mv: CdfMvContext,
pub dmv: CdfMvContext,
}
#[repr(C)]
pub struct CdfDefaultContext {
pub m: CdfModeContext,
pub mv: CdfMvContext,
}
pub static DEFAULT_CDF: CdfDefaultContext = CdfDefaultContext {
m: CdfModeContext {
data: [
7226, 15872, 7218, 9472, 19969, 6400, 23717, 8192, 27870, 14336, 26680, 6656, 3482,
16640, 0, 0, 16211, 8416, 3091, 1536, 4684, 768, 9013, 23808, 9134, 23808, 13400, 768,
7807, 0, 17827, 256, 16614, 256, 26863, 0, 10834, 0, 22328, 6656, 20784, 7936, 29294,
0, 12276, 4096, 25805, 1536, 24669, 6656, 31239, 0, 8651, 23552, 24897, 2560, 9164,
512, 24339, 7680, 5412, 512, 10327, 1792, 23871, 7936, 25957, 15616, 15176, 4096,
27120, 8192, 27429, 6656, 31686, 6656, 6625, 19712, 21389, 21760, 12626, 23808, 25367,
2048, 6533, 20992, 9094, 19968, 20327, 19712, 22286, 19200, 12105, 0, 28576, 6912,
27494, 8448, 32055, 256, 4513, 19200, 5398, 19200, 9241, 0, 11778, 256, 6041, 0, 11581,
0, 7444, 0, 14930, 0, 6632, 0, 16177, 1536, 12930, 256, 22163, 7936, 9854, 256, 20159,
7936, 21427, 0, 28212, 0, 8550, 256, 19709, 1792, 17390, 8192, 26910, 8192, 11124,
8192, 25001, 7936, 24459, 1536, 31081, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 7214,
0, 13876, 0, 14238, 0, 21962, 1536, 10264, 256, 20628, 7936, 20802, 7936, 27784, 7680,
8308, 7936, 24070, 7936, 23113, 7936, 30205, 7680, 16384, 0, 16384, 0, 16384, 0, 16384,
0, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0,
16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384,
0, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0,
16384, 0, 16384, 0, 16384, 0, 6541, 0, 16384, 0, 15099, 256, 16384, 0, 6589, 256,
14879, 256, 16384, 0, 16384, 0, 9268, 256, 19653, 7936, 17515, 7936, 26310, 14080,
10202, 7936, 21271, 8192, 22723, 7936, 29018, 6656, 14768, 1792, 22247, 9472, 21373,
15872, 28349, 8192, 19772, 21760, 24583, 14080, 21789, 9216, 27758, 8192, 18124, 0,
22595, 19200, 14239, 0, 16697, 23040, 12505, 256, 19955, 256, 6156, 0, 9491, 256,
22174, 19456, 25768, 19200, 12766, 256, 19879, 512, 18914, 19456, 22018, 256, 14388,
256, 15263, 1536, 18338, 1792, 21214, 512, 12690, 256, 13671, 19456, 17490, 512, 22631,
256, 10847, 1792, 18147, 1536, 13438, 512, 16847, 256, 6550, 256, 8450, 256, 16384, 0,
16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 16702, 19968,
23543, 512, 9919, 7936, 17951, 2816, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0,
16384, 0, 16384, 0, 16384, 0, 14225, 19200, 19558, 2560, 8401, 8192, 14351, 6400, 8067,
1536, 13857, 1792, 3178, 256, 4990, 1792, 29368, 256, 31833, 23040, 22403, 8192, 31045,
256, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 17114, 19456, 19268, 19200, 13591, 23296,
18029, 23040, 13999, 19200, 19268, 256, 9185, 19200, 11841, 19200, 17723, 256, 22240,
0, 10294, 1536, 18518, 0, 16207, 19200, 21341, 19456, 10894, 1536, 16424, 23040, 11202,
7936, 19411, 512, 5413, 256, 8651, 1536, 21867, 19712, 26988, 0, 13712, 9472, 23627,
256, 12332, 1792, 17075, 8192, 6232, 1536, 9101, 7936, 16384, 0, 16384, 0, 16384, 0,
16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384,
0, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0,
16384, 0, 16384, 0, 16384, 0, 16384, 0, 13527, 1792, 19730, 8192, 3865, 8192, 7966,
8192, 23671, 8192, 30019, 1536, 17567, 6912, 28319, 1536, 16384, 0, 16384, 0, 16384, 0,
16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 1677, 768, 3130, 0, 3844, 0, 4115, 0,
2419, 23808, 4503, 19200, 5481, 0, 5047, 0, 2808, 23808, 4423, 23040, 5466, 23040,
5516, 19200, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0,
16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384,
0, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0,
16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 2426,
256, 5205, 1536, 6600, 1536, 9679, 8192, 2125, 0, 4085, 256, 4759, 0, 6582, 0, 3546,
256, 7028, 0, 8689, 1536, 12962, 19456, 3359, 23040, 5943, 23808, 6849, 23808, 8351,
23808, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0,
5902, 7680, 8269, 6400, 8036, 7936, 9381, 6400, 5291, 7680, 6931, 7936, 8147, 7936,
9164, 1280, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0,
16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384,
0, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0,
16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384,
0, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 8384, 6656,
10655, 8192, 10970, 512, 12701, 1536, 6548, 7936, 9771, 7680, 10519, 7936, 12677, 0,
16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 6979,
7936, 7478, 8192, 8498, 7936, 9774, 7936, 6967, 256, 7508, 1792, 8727, 256, 8487, 256,
16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384,
0, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0,
16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384,
0, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 9730, 1536, 12796,
10240, 13045, 2048, 14829, 0, 17194, 1536, 19007, 19456, 19851, 23296, 21440, 19200,
15473, 8192, 18305, 9728, 18044, 1536, 21115, 256, 19566, 8192, 21839, 1792, 22420,
1792, 24492, 256, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0,
16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 8040, 7936, 10095, 7936, 11735, 1536,
12447, 256, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0,
16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384,
0, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0,
16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384,
0, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 8137, 17152,
11405, 3840, 12567, 3840, 15239, 20992, 11726, 768, 14128, 20480, 14585, 23296, 17178,
19456, 30133, 6400, 31885, 6400, 32265, 12800, 32489, 14080, 683, 1280, 17596, 7680,
28265, 0, 18175, 8192, 3734, 8192, 16296, 8192, 27017, 8192, 29653, 7936, 0, 0, 0, 0,
15060, 8192, 0, 0, 0, 0, 0, 0, 19355, 7869, 8192, 0, 0, 0, 0, 0, 22180, 12902, 6104,
9472, 0, 0, 0, 0, 22637, 14894, 8892, 4002, 9472, 0, 0, 0, 24405, 17317, 11957, 7315,
3375, 8192, 0, 0, 25396, 18901, 13799, 9490, 5791, 2612, 8192, 0, 14299, 15872, 16384,
0, 27819, 9472, 16384, 0, 9298, 9472, 16384, 0, 26102, 9472, 16384, 0, 9854, 9472,
16384, 0, 25775, 9472, 16384, 0, 6903, 6400, 18452, 0, 28170, 0, 7156, 1536, 20402,
256, 29448, 23040, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 3905, 1746, 1044, 23808,
17593, 12693, 11040, 8670, 6363, 5113, 3908, 1280, 22654, 17811, 15953, 13641, 12621,
7185, 5599, 0, 27132, 23764, 22312, 20646, 20024, 12443, 7161, 0, 20025, 14596, 12574,
9120, 6349, 1536, 0, 0, 23792, 16684, 11941, 8173, 4272, 19200, 0, 0, 23984, 18212,
13058, 7865, 4044, 19200, 0, 0, 2265, 768, 1524, 768, 514, 19968, 444, 23808, 186,
23808, 77, 23808, 5331, 0, 5526, 23040, 4728, 19456, 5179, 19456, 5534, 1792, 9185,
15872, 6700, 19200, 10133, 19200, 10699, 1536, 13550, 8192, 19067, 7936, 28132, 9728,
16384, 0, 16384, 0, 752, 3840, 365, 23808, 185, 3840, 85, 19456, 3195, 1575, 745,
19968, 10956, 5702, 2489, 19200, 16692, 8962, 4006, 256, 13090, 1536, 20481, 1536,
23194, 1536, 2723, 15872, 0, 0, 0, 0, 23989, 17673, 11991, 7865, 4845, 2365, 8192, 0,
20854, 7936, 27640, 7936, 29213, 7936, 0, 0, 27015, 17360, 13698, 10137, 5190, 0, 0, 0,
12327, 7680, 21158, 1536, 28125, 0, 0, 0, 23405, 11811, 9903, 8015, 6357, 4785, 2340,
7936, 11486, 9158, 4560, 3457, 2420, 1610, 1277, 7680, 17269, 7680, 0, 0, 21845, 10923,
0, 0, 23973, 17663, 1536, 0, 22335, 16794, 8192, 0, 15683, 11079, 8192, 0, 20261, 7680,
0, 0, 30347, 28436, 21512, 20002, 11382, 4043, 681, 15872, 11089, 7463, 2122, 1256,
231, 122, 72, 15872, 24506, 16466, 8686, 3346, 1370, 482, 243, 15872, 15533, 6602,
2390, 1463, 395, 219, 100, 15872, 15150, 7036, 4903, 2430, 1643, 1246, 530, 15872,
15226, 9702, 4861, 4040, 2066, 1603, 1333, 15872, 15093, 7966, 2300, 1985, 927, 504,
346, 15872, 10253, 7017, 6400, 0, 28754, 27535, 7936, 0, 29220, 28605, 8448, 0, 19769,
12, 14336, 0, 4628, 23040, 0, 0, 0, 0, 0, 0, 16384, 0, 0, 0, 0, 0, 0, 0, 24186, 1536,
0, 0, 0, 0, 0, 0, 5355, 8192, 0, 0, 0, 0, 0, 0, 2339, 23808, 0, 0, 0, 0, 0, 0, 7418,
3742, 23040, 0, 0, 0, 0, 0, 21405, 7495, 1792, 0, 0, 0, 0, 0, 25927, 4189, 256, 0, 0,
0, 0, 0, 11418, 6756, 1536, 0, 0, 0, 0, 0, 2195, 1122, 23808, 0, 0, 0, 0, 0, 9062,
5806, 3708, 0, 0, 0, 0, 0, 22792, 10252, 5386, 256, 0, 0, 0, 0, 26077, 7308, 3534,
1536, 0, 0, 0, 0, 13859, 8843, 4365, 7936, 0, 0, 0, 0, 2460, 1692, 950, 23808, 0, 0, 0,
0, 8652, 5811, 4282, 2827, 0, 0, 0, 0, 23200, 12296, 8474, 3826, 20736, 0, 0, 0, 27062,
7525, 4728, 2362, 19456, 0, 0, 0, 12663, 9786, 5744, 3857, 7936, 0, 0, 0, 1871, 1426,
1002, 569, 23808, 0, 0, 0, 11944, 8541, 6842, 5309, 3502, 19200, 0, 0, 24627, 13779,
11169, 6586, 4192, 19200, 0, 0, 27516, 8428, 6318, 4330, 2143, 19200, 0, 0, 13249,
10073, 7181, 5796, 4345, 1536, 0, 0, 2385, 1878, 1521, 1115, 618, 19968, 0, 0, 11140,
8256, 6895, 5714, 4637, 3229, 20480, 0, 24740, 14504, 12155, 7344, 5656, 3862, 23040,
0, 26279, 10526, 8307, 6374, 4418, 2258, 19200, 0, 10720, 8339, 5778, 4824, 4351, 3194,
19456, 0, 1967, 1563, 1296, 1040, 763, 463, 23808, 0, 10297, 7685, 6784, 5875, 5114,
4018, 2865, 23808, 25226, 15711, 13617, 9218, 7309, 5702, 3964, 23040, 25186, 12331,
10040, 8146, 6253, 4189, 2136, 23040, 10666, 8624, 5852, 4617, 3922, 3556, 2615, 0,
2244, 1881, 1612, 1375, 1142, 857, 487, 23808, 2775, 1536, 12990, 7936, 1053, 14080,
13101, 256, 22213, 23296, 16384, 256, 16384, 256, 16384, 19200, 16384, 19200, 16384,
19200, 16384, 19200, 16384, 19200, 16384, 19200, 6438, 7680, 3148, 0, 12348, 7680,
11074, 7936, 19451, 7936, 17377, 7936, 16816, 7936, 18032, 7936, 18958, 1280, 1122,
14080, 375, 6400, 1966, 6656, 2283, 7936, 12009, 8192, 10609, 256, 5936, 7936, 5417,
256, 8072, 256, 3460, 0, 218, 23808, 4805, 256, 5150, 7936, 10401, 1792, 9290, 8960,
16384, 0, 16384, 0, 4778, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384,
0, 16384, 0, 16384, 0, 16384, 0, 0, 0, 0, 0, 0, 0, 24, 20, 16, 12, 8, 4, 15360, 0,
29762, 9880, 5636, 2796, 2792, 44, 7936, 0, 29095, 23919, 5116, 5112, 2824, 2820, 7936,
0, 27549, 13349, 4716, 3932, 3240, 1472, 7936, 0, 29713, 13119, 10611, 5730, 5302,
1122, 7936, 0, 26724, 21513, 6598, 6275, 4183, 3184, 7936, 0, 26872, 12407, 7083, 5216,
4073, 1671, 7936, 0, 30413, 15167, 11065, 6718, 4887, 1371, 8192, 0, 28067, 19266,
7810, 6355, 4602, 2639, 8192, 0, 29449, 16319, 11127, 5614, 3508, 1256, 8192, 0, 30242,
15680, 13125, 3390, 3386, 44, 7936, 0, 30470, 28362, 8882, 8878, 2620, 2616, 7936, 0,
31215, 16608, 14089, 4785, 3176, 629, 8192, 0, 30452, 28054, 10037, 8971, 3254, 2691,
9472, 0, 21978, 10166, 32, 28, 24, 20, 8192, 0, 18384, 13652, 6223, 4081, 4077, 44,
7936, 0, 18858, 11078, 6425, 6421, 4336, 4332, 7936, 0, 16877, 11056, 3878, 3197, 2461,
1405, 8192, 0, 16822, 13321, 12498, 9345, 8910, 1620, 8192, 0, 16715, 15811, 12456,
11844, 7998, 6809, 8192, 0, 14289, 9715, 6186, 5802, 5201, 2932, 15872, 0, 23456,
20886, 18414, 14976, 12941, 3291, 15872, 0, 24278, 22100, 19473, 17415, 12816, 10193,
15872, 0, 26364, 20702, 16595, 12727, 8256, 4347, 15872, 0, 22749, 18313, 15110, 5756,
5752, 44, 9472, 0, 23289, 17864, 13394, 13390, 4741, 4737, 9472, 0, 29051, 25570,
24665, 12222, 9210, 1321, 15872, 0, 28710, 27339, 23781, 18790, 7642, 6113, 15872, 0,
334, 278, 223, 167, 111, 56, 12800, 0, 31277, 18527, 2838, 251, 244, 44, 14592, 0,
31049, 16243, 1768, 1764, 193, 189, 7680, 0, 31123, 16019, 3444, 2343, 752, 283, 15872,
0, 29860, 16966, 8079, 4298, 646, 226, 6400, 0, 29298, 14837, 6927, 3179, 861, 303,
11008, 0, 27130, 13174, 4075, 2791, 2065, 614, 12800, 0, 28087, 23406, 18725, 14043,
9362, 4681, 0, 0, 28087, 23406, 18725, 14043, 9362, 4681, 0, 0, 28087, 23406, 18725,
14043, 9362, 4681, 0, 0, 30034, 20639, 2426, 963, 924, 44, 12800, 0, 28919, 10985,
1725, 1712, 587, 575, 16640, 0, 28087, 23406, 18725, 14043, 9362, 4681, 0, 0, 28087,
23406, 18725, 14043, 9362, 4681, 0, 0, 28087, 23406, 18725, 14043, 9362, 4681, 0, 0,
28087, 23406, 18725, 14043, 9362, 4681, 0, 0, 28087, 23406, 18725, 14043, 9362, 4681,
0, 0, 28087, 23406, 18725, 14043, 9362, 4681, 0, 0, 28087, 23406, 18725, 14043, 9362,
4681, 0, 0, 28087, 23406, 18725, 14043, 9362, 4681, 0, 0, 28087, 23406, 18725, 14043,
9362, 4681, 0, 0, 28087, 23406, 18725, 14043, 9362, 4681, 0, 0, 28087, 23406, 18725,
14043, 9362, 4681, 0, 0, 28087, 23406, 18725, 14043, 9362, 4681, 0, 0, 28087, 23406,
18725, 14043, 9362, 4681, 0, 0, 28087, 23406, 18725, 14043, 9362, 4681, 0, 0, 28087,
23406, 18725, 14043, 9362, 4681, 0, 0, 28087, 23406, 18725, 14043, 9362, 4681, 0, 0,
7637, 7680, 8254, 7680, 13234, 1536, 14131, 0, 2542, 12800, 2065, 8448, 16384, 0,
16384, 0, 16384, 0, 32732, 0, 32640, 7936, 0, 0, 22076, 6182, 3537, 7936, 6068, 608,
20, 1536, 5853, 357, 20, 1536, 24576, 16384, 8192, 0, 24421, 12514, 8232, 7936, 16774,
6474, 20, 256, 11556, 4958, 20, 256, 24576, 16384, 8192, 0, 10953, 7684, 6538, 15872,
3414, 1021, 20, 9472, 1154, 239, 20, 9216, 24576, 16384, 8192, 0, 22267, 12178, 8587,
7936, 15172, 6380, 20, 9472, 17361, 6293, 36, 15360, 24576, 16384, 8192, 0, 27742,
15952, 12794, 9364, 5923, 2269, 2048, 0, 17858, 7511, 5804, 3445, 2531, 1233, 0, 0,
19009, 6660, 5080, 2975, 2503, 1192, 8960, 0, 28087, 23406, 18725, 14043, 9362, 4681,
0, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 18646, 6400, 23806, 7936, 16384, 0,
16384, 0, 16345, 6656, 9322, 0, 16384, 0, 16384, 0, 9416, 6400, 15699, 14336, 16384, 0,
16384, 0, 16384, 0, 16384, 0, 11933, 0, 16384, 0, 16384, 0, 16384, 0, 2048, 768, 16384,
0, 16384, 0, 16384, 0, 3911, 4352, 16384, 0, 23854, 22036, 20498, 17946, 15640, 13182,
10804, 6400, 31608, 31213, 30796, 29354, 28806, 27617, 26860, 7936, 9949, 8430, 7176,
5767, 4373, 3120, 1778, 6400, 31628, 31043, 30444, 18115, 13696, 9150, 4659, 7936,
32710, 32507, 32181, 451, 212, 142, 60, 512, 15364, 15099, 14365, 8716, 6375, 4262,
2092, 14592, 29647, 26298, 23577, 20488, 14957, 10180, 5071, 23808, 32430, 32391,
32197, 32025, 24836, 20908, 15244, 256, 29454, 25143, 22129, 18562, 13405, 9312, 4735,
23808, 24099, 16235, 7913, 23808, 23327, 16355, 7492, 23040, 24001, 15157, 7892, 2560,
16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384,
0, 16384, 0, 16384, 0, 16384, 0, 24576, 16384, 8192, 0, 24576, 16384, 8192, 0, 24576,
16384, 8192, 0, 24576, 16384, 8192, 0, 24576, 16384, 8192, 0, 24576, 16384, 8192, 0,
24576, 16384, 8192, 0, 24576, 16384, 8192, 0, 24576, 16384, 8192, 0, 24576, 16384,
8192, 0, 24576, 16384, 8192, 0, 24576, 16384, 8192, 0, 28282, 17179, 6328, 19200,
30411, 23264, 16127, 1280, 31404, 24734, 18337, 0, 30296, 24043, 18915, 19456, 25245,
21087, 17985, 256, 24576, 16384, 8192, 0, 24576, 16384, 8192, 0, 22278, 17374, 10562,
7936, 18801, 15815, 9659, 7936, 12577, 11041, 6950, 8192, 16871, 6624, 2758, 1280,
12056, 6505, 2145, 36, 32, 28, 14080, 0, 18418, 17932, 16714, 15693, 13360, 4238,
15872, 0, 16384, 0, 16384, 0, 16384, 0, 0, 0, 27146, 24875, 16675, 14535, 4959, 4395,
235, 0, 18494, 14538, 10211, 7833, 2788, 1917, 424, 0, 5241, 4281, 4045, 3878, 371,
121, 89, 0, 28672, 24576, 20480, 16384, 12288, 8192, 4096, 0, 28672, 24576, 20480,
16384, 12288, 8192, 4096, 0, 28672, 24576, 20480, 16384, 12288, 8192, 4096, 0, 16174,
9443, 6344, 4543, 3410, 2669, 2155, 14336, 1804, 23808, 10999, 0, 20284, 3840, 11134,
0, 15392, 0, 14336, 19200, 31246, 256, 18387, 0, 22313, 6400, 4972, 0, 1870, 23808,
13103, 0, 23291, 3840, 5844, 3840, 7768, 256, 14819, 256, 19187, 1536, 25734, 0, 6299,
0, 3898, 7680, 3106, 256, 2901, 1536, 2996, 1536, 2992, 6656, 19137, 1536, 14583, 9472,
12776, 8192, 14306, 15872, 15317, 9472, 21190, 15872, 30169, 0, 27565, 7936, 27583,
7936, 29097, 7936, 28814, 1536, 31135, 1280, 23496, 8192, 15593, 15872, 16384, 0,
16384, 0, 16384, 0, 16384, 0, 31383, 0, 28329, 7936, 16384, 0, 16384, 0, 16384, 0,
16384, 0, 32247, 0, 30914, 6400, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 2039, 19200,
3365, 1280, 3731, 1536, 3413, 7936, 4195, 1280, 5372, 1792, 16384, 0, 13453, 7936,
4947, 1536, 4876, 7936, 4073, 7680, 3131, 13056, 2336, 0, 12478, 7936, 12913, 9472,
14201, 15872, 14437, 9472, 18527, 15872, 16384, 0, 27043, 7936, 19348, 7936, 19988,
8192, 21987, 15872, 26344, 15872, 21134, 7936, 22675, 7936, 26703, 7936, 27360, 7936,
26357, 7936, 28693, 7680, 16384, 0, 31870, 3840, 29641, 256, 30993, 1280, 31551, 1536,
32177, 1280, 10639, 7936, 6769, 256, 18290, 1792, 21900, 1536, 27512, 7936, 30046,
7936, 17673, 256, 0, 0, 22725, 21668, 1536, 0, 11207, 11010, 256, 0, 7357, 7054, 0, 0,
18651, 18427, 0, 0, 14480, 14191, 0, 0, 26788, 3840, 26677, 3840, 26531, 23808, 31907,
7680, 31921, 12800, 31570, 16896, 32312, 13568, 32337, 17408, 31919, 17408, 32359,
17408, 32383, 17408, 32187, 17408, 16522, 0, 23072, 0, 23977, 0, 19569, 0, 22144, 0,
24182, 256, 27656, 256, 28848, 768, 29100, 768, 20751, 19456, 22591, 19200, 23584,
19200, 20657, 1536, 24712, 1280, 26127, 6912, 6312, 7936, 27647, 7936, 5802, 7936,
17493, 1536, 18155, 7936, 10770, 8192, 12409, 0, 12458, 19200, 11009, 19200, 17891,
256, 19967, 0, 25883, 1536, 29781, 7680, 12199, 256, 15662, 256, 11820, 256, 6972,
8192, 30949, 16637, 5966, 8192, 31326, 16928, 4327, 256, 30773, 16954, 4547, 1792,
29204, 17328, 4720, 8192, 16010, 0, 0, 0, 26257, 14624, 5394, 256, 22510, 17492, 12771,
6207, 1536, 0, 0, 0, 18729, 13585, 6625, 2721, 1536, 0, 0, 0, 13204, 10669, 7664, 2808,
256, 0, 0, 0, 18960, 14818, 7053, 3760, 1792, 0, 0, 0, 18305, 13653, 19200, 0, 24565,
15774, 11736, 19200, 2106, 0, 8945, 1536, 11092, 1536, 0, 0, 9590, 5956, 0, 0, 0, 0, 0,
0, 9588, 7874, 6220, 2896, 256, 0, 0, 0, 17047, 23040, 11653, 0, 13201, 256, 15166,
23808, 19449, 23808, 14076, 23808, 13425, 23040, 14561, 23040, 14860, 23808, 14464,
23808, 10611, 23040, 9535, 23040, 9986, 23040, 10415, 23808, 10311, 23808, 12118, 7936,
17010, 7936, 28197, 7936, 21845, 10923, 0, 0, 1428, 263, 19968, 0, 6729, 593, 0, 0,
21845, 10923, 0, 0, 571, 92, 19200, 0, 4089, 142, 0, 0, 13865, 0, 8268, 23040, 7408,
19200, 0, 0, 32764, 15063, 20, 256, 22219, 17470, 16527, 10235, 5319, 2248, 688, 6656,
23354, 17803, 16802, 10303, 5300, 2140, 624, 6656, 14316, 256, 20938, 12800, 19445,
6400, 17875, 6400, 18816, 6400, 17135, 6400, 16728, 6400, 16032, 6400, 15317, 10240,
14945, 8960, 13875, 1280, 16384, 0, 14800, 6400, 14558, 8192, 14097, 8192, 12423, 3840,
16384, 0, 13370, 6400, 12622, 6912, 10183, 6656, 6333, 6656, 16384, 0, 12702, 6400,
10985, 7168, 5411, 7936, 1661, 14336, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0,
16384, 0, 23773, 9798, 7362, 3095, 2473, 1098, 905, 0, 19435, 8756, 6223, 2585, 1929,
810, 629, 0, 23809, 18380, 12943, 10958, 7733, 4691, 3299, 3840, 23569, 18622, 13284,
11177, 8154, 4753, 3230, 0, 18483, 23808, 16384, 0, 4788, 14336, 3605, 14336, 2110,
15872, 0, 0, 26382, 9424, 9420, 7936, 21823, 8059, 8054, 7936, 21251, 7538, 7510, 7936,
25205, 10592, 10588, 7936, 26139, 11813, 11802, 1536, 8048, 0, 4, 0, 0, 0, 0, 0, 20591,
12767, 9575, 8320, 6656, 0, 0, 0, 11576, 7651, 4962, 4820, 7936, 0, 0, 0, 5989, 4044,
2576, 2519, 6400, 0, 0, 0, 20262, 14897, 11473, 11379, 7936, 0, 0, 0, 15820, 12433,
10186, 10151, 7936, 0, 0, 0, 21186, 7936, 8692, 6656, 16384, 0, 16384, 0, 16384, 0,
16384, 0, 16384, 0, 16384, 0, 16384, 0, 12564, 6400, 15154, 11008, 8325, 8192, 16384,
0, 15258, 6656, 22386, 0, 24432, 7936, 26714, 256, 27004, 1280, 25614, 2560, 17755,
6656, 24342, 0, 24490, 256, 27912, 256, 29304, 0, 27473, 0, 15874, 7936, 11064, 14336,
16778, 7936, 20224, 14592, 7130, 15872, 2793, 20, 6400, 0, 30692, 65, 19200, 0, 32749,
31000, 3840, 0, 15454, 5353, 7936, 0, 1482, 774, 0, 0, 23187, 160, 7936, 0, 32233,
31732, 0, 0, 7949, 5046, 7936, 0, 16384, 0, 16384, 0, 16384, 0, 0, 0, 0, 0, 0, 0,
],
},
mv: CdfMvContext {
data: [
28308, 19769, 10263, 1928, 9728, 0, 0, 0, 25249, 13861, 7205, 2893, 785, 6912, 0, 0,
27307, 21845, 16384, 10923, 5461, 0, 0, 0, 24088, 19045, 14560, 10082, 6046, 2748,
1280, 0, 28444, 17468, 9078, 4071, 1486, 409, 256, 0, 25271, 15467, 8920, 5330, 3373,
1889, 765, 7936, 22101, 12529, 6885, 3098, 1368, 615, 189, 0, 11439, 2204, 179, 119,
60, 12800, 0, 0, 8518, 962, 92, 46, 36, 12800, 0, 0, 28087, 23406, 18725, 14043, 9362,
4681, 0, 0, 12790, 2608, 204, 36, 32, 28, 256, 0, 13061, 4354, 1528, 1120, 76, 51, 47,
6400, 14299, 5341, 1206, 116, 44, 40, 36, 7936, 14958, 7572, 3396, 815, 204, 48, 44,
14080, 1189, 6400, 16384, 0, 18181, 9216, 11802, 19200, 19579, 0, 14825, 23808, 13834,
23808, 13840, 23808, 14072, 23808, 13724, 23808, 12406, 23808, 12342, 23808, 10205,
23808, 10578, 23808, 9310, 23040, 6541, 512, 2003, 12800, 16384, 0, 16384, 0, 16384, 0,
16384, 0, 27105, 6400, 27912, 23040, 19323, 256, 19227, 256, 18723, 256, 19880, 7936,
0, 0,
],
},
};
pub static DEFAULT_COEF_CDF: [CdfCoefContext; 4] = [
CdfCoefContext {
data: [
7009, 7936, 31669, 23808, 30006, 1280, 24824, 6656, 16538, 1536, 3692, 7936, 23870,
256, 19113, 256, 10420, 0, 16384, 0, 7969, 14336, 29606, 19200, 27955, 0, 19206, 256,
14779, 19456, 969, 0, 27598, 19200, 19924, 256, 10432, 1536, 16384, 0, 13822, 15872,
27117, 1536, 26575, 1792, 17181, 1792, 14456, 23296, 970, 20480, 29807, 0, 21163, 6656,
8111, 7936, 16384, 0, 24959, 15872, 28904, 8448, 18638, 10240, 16750, 8192, 17169,
2560, 4607, 8192, 31468, 9216, 21065, 14592, 8039, 8448, 16384, 0, 29968, 15872, 32609,
8192, 31043, 12800, 21630, 12800, 16384, 0, 449, 0, 32312, 16128, 26352, 12800, 16384,
0, 16384, 0, 4, 0, 22017, 4096, 15189, 4096, 8708, 23040, 4683, 1280, 1840, 23808,
27331, 9472, 14949, 6656, 4694, 2048, 2336, 20480, 316, 15872, 18440, 23808, 13841,
23808, 10363, 23808, 7308, 23808, 2134, 19200, 27616, 7936, 17406, 7936, 7954, 1536,
903, 0, 877, 15872, 15754, 23808, 12932, 23808, 12318, 1536, 7637, 256, 1230, 768,
27303, 6400, 15328, 7936, 3980, 256, 3633, 9472, 1676, 15872, 20816, 7168, 30840, 0,
12862, 3072, 618, 12800, 1421, 13312, 23406, 2560, 3641, 12800, 395, 12800, 5381,
15360, 5946, 16128, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384,
0, 16384, 0, 16384, 0, 30822, 29709, 25934, 17645, 1536, 0, 0, 0, 32210, 31933, 30029,
26234, 6400, 0, 0, 0, 24768, 22402, 18302, 13199, 7936, 0, 0, 0, 31565, 30848, 28266,
22487, 15690, 1536, 0, 0, 31690, 31428, 30304, 27616, 21352, 1280, 0, 0, 21098, 18497,
13481, 8849, 5684, 7936, 0, 0, 30920, 30411, 28376, 25139, 19440, 11238, 8192, 0,
31292, 31065, 30333, 28523, 25248, 17950, 1536, 0, 19643, 16632, 11286, 6427, 3087,
1734, 7936, 0, 32432, 31780, 29784, 27386, 22968, 15773, 8280, 8192, 31262, 30690,
29772, 28407, 25741, 20651, 11731, 1536, 22699, 20105, 14332, 8443, 4317, 2209, 1208,
7936, 32447, 30392, 27341, 24932, 20042, 14216, 11684, 8192, 30814, 30181, 28901,
27635, 25208, 22194, 18026, 9472, 24784, 21890, 16777, 12583, 7411, 3410, 1506, 8192,
32629, 26814, 19736, 16524, 12700, 7814, 6871, 8192, 29356, 28872, 27034, 25244, 22651,
18995, 16327, 15872, 19958, 16641, 10353, 7752, 5000, 2918, 1396, 8192, 32192, 30815,
24682, 17773, 12762, 8086, 6898, 15872, 30021, 29749, 28833, 27892, 26717, 24180,
22633, 14592, 20895, 17389, 6933, 4850, 3675, 2604, 1986, 8192, 16377, 0, 0, 0, 21845,
10923, 0, 0, 21845, 10923, 0, 0, 21845, 10923, 0, 0, 7293, 2979, 19200, 0, 21845,
10923, 0, 0, 636, 159, 12800, 0, 474, 67, 19200, 0, 1150, 268, 23808, 0, 21845, 10923,
0, 0, 110, 17, 19968, 0, 67, 15, 23808, 0, 93, 23, 23808, 0, 21845, 10923, 0, 0, 110,
49, 16640, 0, 110, 24, 17152, 0, 121, 12, 8448, 0, 21845, 10923, 0, 0, 230, 57, 0, 0,
630, 315, 0, 0, 412, 206, 12800, 0, 20408, 6376, 2825, 6656, 24178, 7415, 1873, 1536,
25522, 13272, 6238, 19200, 29300, 16536, 7147, 23040, 28760, 20163, 13840, 23808,
30769, 23603, 16083, 23808, 29620, 23375, 17868, 23808, 31658, 25072, 18646, 19968,
30225, 25242, 20747, 23808, 30207, 27323, 22222, 23808, 24576, 16384, 8192, 0, 24576,
16384, 8192, 0, 24576, 16384, 8192, 0, 24576, 16384, 8192, 0, 24576, 16384, 8192, 0,
24576, 16384, 8192, 0, 24576, 16384, 8192, 0, 24576, 16384, 8192, 0, 24576, 16384,
8192, 0, 24576, 16384, 8192, 0, 24576, 16384, 8192, 0, 24576, 16384, 8192, 0, 24576,
16384, 8192, 0, 24576, 16384, 8192, 0, 24576, 16384, 8192, 0, 24576, 16384, 8192, 0,
24576, 16384, 8192, 0, 24576, 16384, 8192, 0, 24576, 16384, 8192, 0, 24576, 16384,
8192, 0, 4754, 1234, 708, 1280, 24576, 16384, 8192, 0, 19633, 9281, 4169, 0, 24576,
16384, 8192, 0, 25719, 17400, 12000, 23808, 24576, 16384, 8192, 0, 29659, 24714, 20385,
19200, 24576, 16384, 8192, 0, 24576, 16384, 8192, 0, 24576, 16384, 8192, 0, 7470, 342,
55, 23808, 18117, 1217, 177, 23808, 14302, 2285, 501, 19200, 32462, 6125, 981, 23040,
20369, 6618, 2077, 23040, 31637, 11558, 3639, 19200, 25281, 12653, 5887, 23808, 32112,
18129, 8338, 19200, 29180, 21726, 15599, 19968, 32012, 24972, 17855, 19968, 6198, 325,
77, 19968, 15209, 1060, 140, 19968, 14456, 2414, 480, 23040, 32187, 6163, 1067, 23040,
20956, 6977, 2196, 19200, 31695, 12032, 3795, 19200, 25603, 13464, 6159, 23808, 31797,
18367, 8353, 23808, 28790, 20402, 13608, 23808, 31833, 23945, 16157, 19968, 7098, 538,
90, 19200, 13212, 1047, 91, 0, 15647, 3033, 714, 19200, 31308, 6173, 1145, 23040,
21179, 7207, 2342, 23040, 31116, 12162, 3829, 19968, 25425, 12137, 5194, 23040, 31846,
17440, 7653, 19200, 27990, 18622, 11617, 23040, 31866, 23089, 14348, 19968, 1804, 230,
75, 1280, 24576, 16384, 8192, 0, 14556, 3687, 1182, 23808, 24576, 16384, 8192, 0,
22121, 10615, 5230, 0, 24576, 16384, 8192, 0, 26372, 16723, 9919, 0, 24576, 16384,
8192, 0, 29194, 22209, 16690, 0, 24576, 16384, 8192, 0, 4071, 76, 20, 23040, 19051,
452, 28, 23040, 7985, 394, 56, 23040, 31539, 1897, 168, 19200, 13768, 1969, 326, 19200,
30185, 5388, 881, 3840, 22112, 8135, 2715, 19200, 31886, 13009, 4420, 19200, 28744,
21019, 14946, 19200, 32457, 24514, 17343, 19200, 3007, 60, 20, 19200, 14517, 201, 20,
0, 8012, 340, 46, 19200, 30966, 1817, 226, 23808, 14118, 2175, 374, 19200, 29885, 5047,
894, 19968, 22488, 8192, 2854, 19200, 32480, 13693, 4514, 256, 28792, 19921, 13507,
19200, 32014, 23918, 16214, 768, 2422, 43, 20, 19200, 8213, 96, 20, 1280, 7902, 354,
42, 19200, 31911, 1494, 103, 23040, 14104, 2078, 364, 23808, 30309, 5283, 806, 23808,
22466, 8140, 2375, 23808, 31845, 13187, 3919, 19968, 27660, 17799, 10506, 19968, 32131,
21596, 12762, 19968, 654, 62, 20, 0, 24576, 16384, 8192, 0, 10121, 1177, 246, 0, 24576,
16384, 8192, 0, 18329, 5865, 2107, 1536, 24576, 16384, 8192, 0, 25358, 13133, 6121,
256, 24576, 16384, 8192, 0, 29501, 22351, 16242, 23552, 24576, 16384, 8192, 0, 3309,
92, 27, 6656, 20147, 334, 20, 21248, 9101, 656, 67, 19200, 27205, 2414, 187, 19200,
13385, 2108, 204, 19200, 28923, 5393, 1071, 23040, 22693, 7874, 2871, 23040, 30695,
13041, 4888, 19968, 29400, 23370, 18876, 20736, 32197, 26461, 20720, 20736, 2227, 56,
20, 4608, 15663, 250, 20, 23040, 6388, 331, 32, 19968, 30876, 1231, 86, 23296, 12211,
1487, 295, 23040, 29620, 4517, 647, 0, 22163, 6792, 2379, 19456, 29141, 12618, 4251,
19456, 28976, 21634, 16861, 20736, 32251, 25229, 19188, 20736, 2360, 20, 16, 19200,
477, 63, 20, 19200, 7038, 183, 29, 23040, 26826, 1152, 152, 23808, 12583, 1692, 304,
19968, 31764, 4424, 674, 19968, 21061, 6569, 2079, 23808, 31506, 11440, 3199, 23808,
27733, 17838, 11539, 23040, 32022, 22069, 14012, 23040, 24576, 16384, 8192, 0, 24576,
16384, 8192, 0, 24576, 16384, 8192, 0, 24576, 16384, 8192, 0, 24576, 16384, 8192, 0,
24576, 16384, 8192, 0, 24576, 16384, 8192, 0, 24576, 16384, 8192, 0, 24576, 16384,
8192, 0, 24576, 16384, 8192, 0, 4385, 159, 80, 2560, 17340, 701, 64, 8960, 17014, 1980,
180, 23040, 27888, 3137, 1162, 0, 22218, 8440, 621, 19200, 24030, 10559, 3095, 19200,
23073, 9889, 5817, 6400, 30970, 16983, 4995, 19200, 29341, 22486, 18641, 23808, 31081,
24953, 18737, 19968, 1208, 453, 151, 16640, 20663, 835, 417, 19200, 12332, 2819, 705,
0, 26056, 4145, 197, 6400, 23051, 4633, 1582, 3840, 24519, 8249, 2406, 10240, 25645,
7480, 4274, 2560, 21212, 17888, 5540, 2560, 28727, 21875, 17306, 1280, 31974, 22739,
15490, 4608, 4104, 24, 20, 0, 1136, 68, 28, 3840, 6060, 189, 26, 19968, 26096, 1026,
63, 23808, 11935, 1123, 129, 23808, 31622, 3457, 439, 23808, 19092, 4541, 1047, 23808,
31289, 8539, 1793, 19968, 26976, 17212, 11128, 23296, 31091, 21932, 13300, 23296,
24576, 16384, 8192, 0, 24576, 16384, 8192, 0, 24576, 16384, 8192, 0, 24576, 16384,
8192, 0, 24576, 16384, 8192, 0, 24576, 16384, 8192, 0, 24576, 16384, 8192, 0, 24576,
16384, 8192, 0, 24576, 16384, 8192, 0, 24576, 16384, 8192, 0, 10463, 4025, 2423, 1536,
10105, 2820, 1448, 19968, 12992, 4110, 2333, 19968, 17332, 7455, 4587, 19968, 21554,
12097, 7914, 19968, 24220, 15786, 11002, 19968, 27039, 20775, 15592, 19968, 5282, 1628,
989, 704, 1792, 0, 0, 0, 4505, 1626, 955, 711, 1536, 0, 0, 0, 5190, 2363, 1566, 1320,
1536, 0, 0, 0, 2968, 623, 179, 103, 23808, 0, 0, 0, 5571, 1559, 1070, 824, 8192, 0, 0,
0, 2353, 781, 466, 381, 0, 0, 0, 0, 2002, 608, 307, 204, 19200, 0, 0, 0, 1322, 258, 56,
28, 23040, 0, 0, 0, 22887, 4439, 2414, 1551, 15872, 0, 0, 0, 1953, 633, 408, 322, 1280,
0, 0, 0, 872, 710, 345, 243, 9472, 0, 0, 0, 5671, 3781, 1260, 630, 12800, 0, 0, 0,
32692, 29107, 19009, 11259, 15872, 0, 0, 0, 858, 185, 80, 28, 23808, 0, 0, 0, 26214,
19661, 13107, 6554, 0, 0, 0, 0, 26214, 19661, 13107, 6554, 0, 0, 0, 0, 32470, 32172,
31874, 31576, 12800, 0, 0, 0, 3760, 2157, 278, 85, 768, 0, 0, 0, 26214, 19661, 13107,
6554, 0, 0, 0, 0, 26214, 19661, 13107, 6554, 0, 0, 0, 0, 27307, 21845, 16384, 10923,
5461, 0, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 30940, 15917, 8756, 4119,
2346, 11008, 0, 0, 32764, 24597, 10756, 4557, 2291, 19968, 0, 0, 25845, 16752, 11062,
5619, 3332, 768, 0, 0, 32764, 25364, 16196, 9964, 4490, 21248, 0, 0, 27278, 23948,
16954, 12524, 8747, 23552, 0, 0, 32764, 27716, 19370, 13986, 9377, 512, 0, 0, 29736,
24738, 19681, 15306, 11027, 0, 0, 0, 32764, 27949, 22142, 19204, 14761, 4096, 0, 0,
30507, 26350, 23609, 20795, 17177, 19968, 0, 0, 32763, 28855, 23037, 20188, 18928,
23552, 0, 0, 30468, 27481, 24221, 20625, 16931, 23040, 0, 0, 32763, 30161, 26724,
23839, 20789, 23040, 0, 0, 31070, 27571, 24493, 21319, 20556, 4608, 0, 0, 32719, 30643,
28599, 25423, 22176, 0, 0, 0, 32180, 29862, 28576, 26770, 25678, 23808, 0, 0, 31479,
31471, 29450, 28142, 26939, 23808, 0, 0, 20014, 3758, 1229, 632, 245, 19200, 0, 0,
27028, 6121, 799, 309, 36, 2560, 0, 0, 24794, 9456, 4025, 1581, 639, 19968, 0, 0,
32764, 13646, 4653, 1417, 440, 23040, 0, 0, 26764, 15015, 7279, 3862, 2076, 19968, 0,
0, 32764, 21292, 12482, 6795, 3650, 0, 0, 0, 27450, 19862, 11937, 6920, 3857, 23808, 0,
0, 32764, 24373, 16879, 10390, 5752, 23040, 0, 0, 29431, 22607, 16355, 11865, 8039,
23808, 0, 0, 32764, 26537, 19589, 13736, 9644, 19968, 0, 0, 30136, 24512, 19379, 14419,
10711, 23808, 0, 0, 32764, 27229, 22015, 17227, 13097, 23040, 0, 0, 31121, 27787,
24750, 22055, 19838, 19968, 0, 0, 32635, 30173, 27010, 23596, 20722, 19968, 0, 0,
15310, 2897, 768, 222, 66, 23808, 0, 0, 25843, 5680, 1018, 400, 62, 23808, 0, 0, 22256,
8265, 3122, 1239, 550, 23808, 0, 0, 31906, 14824, 5594, 2054, 694, 23040, 0, 0, 26259,
15332, 8706, 4470, 2329, 23808, 0, 0, 32038, 21166, 12318, 6729, 3737, 23040, 0, 0,
28434, 19925, 13129, 7961, 4959, 23040, 0, 0, 31586, 24464, 16706, 10710, 6360, 23808,
0, 0, 30005, 24826, 20217, 15895, 12193, 23808, 0, 0, 32180, 27655, 22513, 18043,
14329, 23808, 0, 0, 7507, 2494, 1367, 909, 660, 1280, 0, 0, 27307, 21845, 16384, 10923,
5461, 0, 0, 0, 21427, 9981, 5438, 3439, 2366, 19200, 0, 0, 27307, 21845, 16384, 10923,
5461, 0, 0, 0, 24898, 16171, 10454, 6732, 5122, 19200, 0, 0, 27307, 21845, 16384,
10923, 5461, 0, 0, 0, 23666, 17556, 13172, 10138, 8054, 1280, 0, 0, 27307, 21845,
16384, 10923, 5461, 0, 0, 0, 30141, 25184, 20231, 16620, 13540, 19968, 0, 0, 27307,
21845, 16384, 10923, 5461, 0, 0, 0, 30995, 27609, 24384, 21186, 18442, 19200, 0, 0,
27307, 21845, 16384, 10923, 5461, 0, 0, 0, 31487, 29462, 27204, 25038, 22743, 23808, 0,
0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 4493, 681, 214, 89, 36, 0, 0, 0, 27307,
21845, 16384, 10923, 5461, 0, 0, 0, 19644, 8487, 3519, 1729, 836, 23040, 0, 0, 27307,
21845, 16384, 10923, 5461, 0, 0, 0, 25516, 17265, 10778, 6747, 4439, 23808, 0, 0,
27307, 21845, 16384, 10923, 5461, 0, 0, 0, 26002, 19517, 14248, 10534, 7824, 23808, 0,
0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 30746, 26486, 22209, 18937, 15855, 23808,
0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 23974, 1937, 1256, 733, 523, 15360, 0,
0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 28613, 12659, 4799, 2232, 625, 0, 0, 0,
32764, 22468, 10468, 4636, 1929, 19200, 0, 0, 19466, 9007, 5420, 2816, 1292, 256, 0, 0,
32764, 18178, 8682, 4697, 3050, 256, 0, 0, 26636, 18343, 12008, 7646, 5215, 19456, 0,
0, 32764, 25176, 16720, 11074, 7113, 20736, 0, 0, 29392, 22486, 18353, 13684, 9612,
256, 0, 0, 32764, 26782, 20228, 15301, 11722, 19200, 0, 0, 30429, 24833, 20516, 17250,
14746, 19200, 0, 0, 32764, 27961, 24208, 19026, 14922, 23808, 0, 0, 31760, 27707,
23501, 20830, 17113, 23296, 0, 0, 30081, 30056, 25827, 22408, 19047, 23040, 0, 0,
31701, 27698, 24129, 21481, 18979, 19200, 0, 0, 32764, 28800, 26785, 23696, 20814,
23808, 0, 0, 32255, 29580, 27828, 26126, 24442, 23808, 0, 0, 31170, 31164, 29433,
27378, 25582, 23808, 0, 0, 14404, 1837, 205, 82, 36, 19968, 0, 0, 12663, 4740, 620, 72,
46, 19456, 0, 0, 18433, 5068, 1266, 442, 95, 4608, 0, 0, 32764, 8948, 2192, 491, 93,
19200, 0, 0, 19661, 7016, 2836, 1130, 387, 19200, 0, 0, 32764, 13186, 5508, 2389, 1073,
23040, 0, 0, 26310, 14802, 8278, 4441, 2313, 23808, 0, 0, 32764, 19772, 11154, 5789,
2897, 19968, 0, 0, 28406, 20396, 13933, 8984, 5516, 23808, 0, 0, 32764, 24370, 16969,
11044, 7137, 23040, 0, 0, 29338, 22306, 16486, 11849, 8428, 19200, 0, 0, 32738, 26658,
20469, 14918, 10264, 19200, 0, 0, 30842, 26943, 23525, 20306, 17716, 19968, 0, 0,
32696, 29401, 25626, 22173, 19025, 19968, 0, 0, 8385, 639, 131, 55, 36, 23808, 0, 0,
23631, 2207, 247, 69, 36, 23040, 0, 0, 15498, 3028, 760, 285, 113, 23808, 0, 0, 32760,
6791, 1340, 303, 111, 19200, 0, 0, 20500, 6891, 2346, 807, 283, 23040, 0, 0, 32756,
12199, 4001, 1311, 409, 23040, 0, 0, 25474, 13773, 6687, 3096, 1316, 23808, 0, 0,
32587, 18629, 9274, 4310, 1850, 23808, 0, 0, 29328, 22960, 17382, 12864, 9378, 23808,
0, 0, 32629, 26313, 20065, 14971, 10936, 23040, 0, 0, 4016, 899, 448, 290, 196, 19200,
0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 17098, 5204, 2400, 1275, 775, 23040,
0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 22969, 12590, 7210, 4355, 2722, 19200,
0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 23412, 16268, 11561, 8416, 6349, 1536,
0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 29787, 23637, 18586, 14425, 11314,
19200, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 30614, 25993, 21237, 17684,
14504, 19200, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 31511, 28828, 25878,
23069, 20738, 23808, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 2100, 187, 75,
32, 28, 1280, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 14264, 3366, 1066, 485,
249, 19968, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 22002, 10236, 4790, 2653,
1506, 19200, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 24049, 14306, 8340, 5207,
3188, 19200, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 28889, 22287, 16796,
13135, 10007, 23040, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 14124, 2341, 513,
224, 104, 9472, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 28219, 7534, 3250,
1173, 770, 256, 0, 0, 32764, 20184, 7483, 3251, 1202, 19456, 0, 0, 20509, 8207, 4190,
2130, 1013, 20480, 0, 0, 32764, 14557, 6140, 2480, 1740, 6400, 0, 0, 27220, 19185,
12777, 7706, 4978, 3840, 0, 0, 32764, 23787, 15703, 9921, 6359, 19200, 0, 0, 30257,
23997, 19059, 14253, 11137, 23040, 0, 0, 32764, 26677, 20366, 16367, 11384, 19200, 0,
0, 31312, 25828, 20750, 17261, 14192, 3840, 0, 0, 28940, 28764, 24908, 20463, 16584,
23296, 0, 0, 31312, 27280, 24382, 20517, 18185, 23040, 0, 0, 32763, 29101, 25228,
22168, 18830, 19200, 0, 0, 30596, 28490, 25833, 22382, 19388, 23808, 0, 0, 32762,
30107, 25775, 23452, 20724, 23040, 0, 0, 31914, 30012, 28346, 26366, 24625, 19200, 0,
0, 32764, 30790, 28828, 26696, 25308, 23808, 0, 0, 5171, 294, 103, 38, 34, 4096, 0, 0,
8140, 3268, 848, 103, 36, 512, 0, 0, 15910, 3924, 1268, 391, 78, 23040, 0, 0, 32764,
5718, 1157, 170, 60, 256, 0, 0, 15356, 4396, 1676, 641, 230, 19200, 0, 0, 32764, 9733,
3367, 1207, 406, 256, 0, 0, 26014, 14624, 7856, 4165, 2172, 19200, 0, 0, 32764, 16909,
8376, 4265, 2198, 0, 0, 0, 28753, 20257, 13165, 8206, 4868, 20480, 0, 0, 32764, 23574,
15752, 10431, 6631, 19200, 0, 0, 29310, 22388, 16624, 11655, 8085, 23040, 0, 0, 32763,
26001, 19545, 14111, 10249, 3840, 0, 0, 31086, 27336, 23999, 20595, 17924, 23808, 0, 0,
32761, 28865, 25345, 22113, 19235, 23808, 0, 0, 4432, 148, 53, 32, 28, 20480, 0, 0,
23710, 1354, 91, 32, 28, 0, 0, 0, 9735, 1120, 247, 68, 36, 19200, 0, 0, 32693, 3550,
513, 122, 36, 0, 0, 0, 14776, 3023, 720, 189, 44, 19200, 0, 0, 32673, 6444, 1360, 342,
105, 23040, 0, 0, 23097, 9796, 3887, 1465, 535, 23808, 0, 0, 32636, 13777, 5293, 1868,
628, 19200, 0, 0, 29523, 22622, 17086, 12713, 9462, 23040, 0, 0, 32053, 25812, 19613,
14610, 10887, 19968, 0, 0, 2486, 305, 125, 79, 48, 23040, 0, 0, 27307, 21845, 16384,
10923, 5461, 0, 0, 0, 14405, 2798, 1028, 439, 239, 19200, 0, 0, 27307, 21845, 16384,
10923, 5461, 0, 0, 0, 21665, 10839, 5885, 3430, 2153, 0, 0, 0, 27307, 21845, 16384,
10923, 5461, 0, 0, 0, 22758, 16787, 12643, 10051, 8223, 6656, 0, 0, 27307, 21845,
16384, 10923, 5461, 0, 0, 0, 30571, 26155, 20224, 16427, 13355, 8192, 0, 0, 27307,
21845, 16384, 10923, 5461, 0, 0, 0, 31791, 27639, 23894, 20434, 16689, 3840, 0, 0,
27307, 21845, 16384, 10923, 5461, 0, 0, 0, 31442, 29023, 26995, 24862, 22443, 8960, 0,
0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 1081, 66, 30, 26, 22, 1280, 0, 0, 27307,
21845, 16384, 10923, 5461, 0, 0, 0, 9667, 1343, 474, 283, 208, 19456, 0, 0, 27307,
21845, 16384, 10923, 5461, 0, 0, 0, 18725, 6282, 2831, 1851, 1132, 1536, 0, 0, 27307,
21845, 16384, 10923, 5461, 0, 0, 0, 21178, 11215, 6679, 4145, 2987, 8192, 0, 0, 27307,
21845, 16384, 10923, 5461, 0, 0, 0, 29423, 23081, 17708, 13531, 10822, 8448, 0, 0,
27307, 21845, 16384, 10923, 5461, 0, 0, 0, 14787, 2505, 1425, 933, 540, 13312, 0, 0,
27307, 21845, 16384, 10923, 5461, 0, 0, 0, 32227, 12859, 7074, 1197, 61, 14336, 0, 0,
32763, 29760, 14259, 6107, 2268, 1536, 0, 0, 26488, 16124, 10571, 5382, 2457, 7936, 0,
0, 29479, 23066, 14049, 11901, 8602, 10752, 0, 0, 30335, 24414, 17438, 12653, 9530,
512, 0, 0, 32747, 23468, 19611, 16704, 10661, 1792, 0, 0, 29709, 27239, 22079, 18098,
16108, 22272, 0, 0, 32732, 28353, 23078, 20565, 17012, 2560, 0, 0, 30240, 25580, 22209,
20722, 17053, 23040, 0, 0, 32540, 30851, 28067, 24006, 19898, 4352, 0, 0, 31450, 27784,
25894, 20967, 19936, 21760, 0, 0, 31996, 31225, 28138, 24754, 22736, 23040, 0, 0,
31027, 28076, 26563, 24292, 21946, 21760, 0, 0, 32481, 31119, 28322, 25956, 23877,
2560, 0, 0, 31949, 30700, 28828, 27151, 26604, 23808, 0, 0, 32748, 31324, 30019, 29327,
27468, 23552, 0, 0, 10141, 2661, 814, 73, 36, 1536, 0, 0, 23134, 9298, 1120, 224, 112,
10240, 0, 0, 17960, 5468, 1720, 413, 221, 7936, 0, 0, 32764, 6062, 1374, 178, 51, 4096,
0, 0, 18657, 6928, 3092, 1572, 668, 512, 0, 0, 30528, 14347, 6038, 3199, 1803, 1280, 0,
0, 29448, 16116, 9525, 4968, 3158, 1536, 0, 0, 29527, 20824, 14464, 10068, 6016, 768,
0, 0, 29993, 22366, 15973, 11348, 8613, 20992, 0, 0, 32726, 25221, 19005, 14460, 10443,
21248, 0, 0, 31242, 23285, 17472, 12536, 10035, 1792, 0, 0, 28998, 26633, 21594, 15630,
12237, 23808, 0, 0, 31202, 28560, 25275, 22787, 21461, 19200, 0, 0, 32758, 30061,
27421, 24752, 21559, 23296, 0, 0, 3717, 157, 36, 32, 28, 20736, 0, 0, 21028, 1162, 95,
32, 28, 3840, 0, 0, 9686, 1363, 251, 32, 28, 3840, 0, 0, 30813, 3483, 374, 83, 36,
3840, 0, 0, 16041, 4294, 1307, 361, 58, 19200, 0, 0, 31725, 8184, 2447, 869, 312,
19200, 0, 0, 25083, 12079, 5215, 2254, 1141, 23040, 0, 0, 32456, 17127, 7868, 3486,
1424, 19968, 0, 0, 29833, 24132, 19023, 15107, 12253, 19456, 0, 0, 32746, 26763, 21647,
17588, 14553, 20736, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 27307, 21845,
16384, 10923, 5461, 0, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 27307, 21845,
16384, 10923, 5461, 0, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 27307, 21845,
16384, 10923, 5461, 0, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 27307, 21845,
16384, 10923, 5461, 0, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 27307, 21845,
16384, 10923, 5461, 0, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 27307, 21845,
16384, 10923, 5461, 0, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 27307, 21845,
16384, 10923, 5461, 0, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 27307, 21845,
16384, 10923, 5461, 0, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 27307, 21845,
16384, 10923, 5461, 0, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 27307, 21845,
16384, 10923, 5461, 0, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 27307, 21845,
16384, 10923, 5461, 0, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 27307, 21845,
16384, 10923, 5461, 0, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 27307, 21845,
16384, 10923, 5461, 0, 0, 0, 32161, 29734, 24879, 16991, 9102, 19200, 0, 0, 32222,
31676, 27307, 24030, 13107, 19200, 0, 0, 32286, 23130, 21685, 21203, 19275, 19200, 0,
0, 31928, 30667, 28987, 20165, 16384, 12800, 0, 0, 32495, 25122, 24849, 22391, 19115,
12800, 0, 0, 32378, 31793, 31208, 21065, 17359, 12800, 0, 0, 31949, 31403, 30583,
27034, 26214, 12800, 0, 0, 32412, 32234, 31878, 31165, 25288, 12800, 0, 0, 32342,
30640, 28512, 27236, 26385, 12800, 0, 0, 32542, 32316, 31638, 29378, 28248, 12800, 0,
0, 31832, 30583, 29335, 28711, 27463, 0, 0, 0, 32555, 32342, 31917, 31066, 30853,
12800, 0, 0, 31638, 25988, 21469, 19209, 16949, 0, 0, 0, 31928, 31508, 31088, 30247,
29407, 12800, 0, 0, 31928, 30247, 29827, 28987, 26046, 19200, 0, 0, 32161, 31858,
30948, 30341, 30037, 6400, 0, 0, 30008, 22884, 13624, 6322, 4007, 19200, 0, 0, 26390,
23971, 18473, 7037, 2419, 12800, 0, 0, 31746, 27586, 22697, 18245, 12626, 2560, 0, 0,
31143, 27190, 18097, 13485, 8917, 10240, 0, 0, 31275, 18725, 16147, 13026, 11872,
10240, 0, 0, 32689, 26976, 22136, 18249, 15551, 19200, 0, 0, 30872, 26810, 21123,
18415, 16519, 0, 0, 0, 31795, 29524, 26604, 24657, 21737, 0, 0, 0, 29991, 27769, 24437,
22216, 19439, 19200, 0, 0, 31969, 30370, 27573, 25175, 21579, 6400, 0, 0, 30997, 27454,
23912, 20369, 17712, 19200, 0, 0, 30720, 26624, 18432, 16384, 14336, 12800, 0, 0,
32259, 29033, 24788, 22751, 21053, 19200, 0, 0, 32231, 30619, 27217, 26680, 24352,
19200, 0, 0, 7911, 679, 78, 52, 36, 0, 0, 0, 22357, 4323, 209, 46, 36, 4608, 0, 0,
16923, 2479, 216, 108, 36, 10240, 0, 0, 24995, 3422, 906, 249, 36, 10240, 0, 0, 23002,
8481, 4048, 1799, 386, 20992, 0, 0, 32183, 12448, 3724, 745, 319, 7168, 0, 0, 25141,
14124, 8051, 3249, 989, 0, 0, 0, 30050, 17668, 6342, 3020, 1208, 0, 0, 0, 30317, 24511,
20899, 16212, 13245, 3072, 0, 0, 32512, 28117, 22187, 18944, 16427, 23552, 0, 0, 27307,
21845, 16384, 10923, 5461, 0, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 27307,
21845, 16384, 10923, 5461, 0, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 27307,
21845, 16384, 10923, 5461, 0, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 27307,
21845, 16384, 10923, 5461, 0, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 27307,
21845, 16384, 10923, 5461, 0, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 27307,
21845, 16384, 10923, 5461, 0, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 27307,
21845, 16384, 10923, 5461, 0, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 27307,
21845, 16384, 10923, 5461, 0, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 27307,
21845, 16384, 10923, 5461, 0, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 27307,
21845, 16384, 10923, 5461, 0, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 27307,
21845, 16384, 10923, 5461, 0, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 27307,
21845, 16384, 10923, 5461, 0, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 24825,
18575, 11993, 8192, 18471, 10368, 6530, 23296, 22211, 14085, 10218, 23040, 24479,
16700, 14314, 23552, 27510, 22038, 19059, 23040, 28835, 24602, 22088, 23040, 30303,
27443, 26143, 23040, 21903, 16338, 13077, 1536, 18197, 10035, 6662, 3840, 18696, 9747,
6797, 19200, 21210, 12515, 9533, 19968, 24165, 16568, 13302, 23808, 26127, 19682,
16156, 19968, 28528, 23725, 20822, 23808, 16937, 23808, 19136, 19200, 13727, 19200,
16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384,
0, 22851, 15708, 23040, 0, 18927, 10840, 23296, 0, 21540, 13661, 23040, 0, 21574,
14671, 3840, 0, 18939, 11216, 23296, 0, 17143, 10045, 256, 0, 22604, 17709, 256, 0,
21681, 16778, 0, 0, 20584, 14284, 7936, 0, 22410, 16232, 11762, 3840, 21948, 14549,
9887, 23296, 22668, 17081, 12575, 19200, 22380, 17216, 12899, 19200, 25301, 18097,
14389, 23040, 27700, 24161, 20533, 3840, 29223, 26199, 23499, 23808, 21922, 15542,
11325, 0, 19370, 12413, 8478, 3840, 20858, 13972, 9693, 256, 20209, 13886, 9691, 19456,
24035, 15273, 11207, 23040, 28688, 25122, 21519, 1280, 29364, 26648, 23926, 19200,
25440, 20312, 16061, 23296, 23996, 18311, 13854, 512, 24573, 19059, 14800, 512, 21802,
16964, 13271, 1792, 27394, 18859, 14776, 1792, 30454, 28198, 25288, 7936, 31123, 29381,
27635, 19456, 4425, 2878, 1791, 23808, 12167, 6575, 4004, 23808, 13278, 8977, 5720,
19200, 16345, 13275, 10761, 19968, 20592, 15080, 11698, 256, 21514, 17702, 13808, 256,
25633, 23174, 21020, 256, 1871, 974, 590, 23808, 11782, 4546, 2347, 3840, 14109, 8592,
4834, 0, 17135, 14102, 11544, 768, 23075, 16890, 12132, 256, 22685, 18679, 14253, 1536,
26503, 24416, 22245, 256, 389, 204, 135, 19200, 10591, 3294, 2003, 256, 14230, 9316,
5967, 256, 18062, 16178, 14529, 19200, 25814, 20468, 17105, 1792, 27558, 25486, 21681,
1536, 30154, 28987, 27813, 19200, 17208, 23808, 7993, 23808, 25228, 23808, 4924, 0,
29223, 19200, 3888, 20992, 27882, 20480, 590, 1536, 31564, 19200, 17958, 768, 6118,
19200, 27705, 23040, 3556, 3840, 30774, 19968, 3662, 23040, 29501, 23040, 650, 0,
32231, 23808, 21235, 7936, 4059, 19456, 30673, 23040, 1170, 23040, 32437, 23808, 1008,
23296, 32449, 19968, 257, 19968, 32708, 11008, 31329, 19968, 26577, 0, 18158, 256,
32588, 12800, 16384, 0, 16384, 0, 25120, 23040, 16620, 23040, 8203, 23040, 16384, 0,
16384, 0, 16384, 0, 0, 0, 21845, 10923, 0, 0, 1554, 331, 23808, 0, 880, 321, 19968, 0,
2156, 695, 23808, 0, 5864, 666, 170, 0, 17019, 3870, 1158, 23040, 23662, 11439, 5806,
23040, 27940, 19845, 13785, 19200, 4989, 362, 79, 23040, 15354, 2691, 743, 23040,
23540, 10472, 5001, 20736, 28204, 20034, 13624, 23040, 3530, 279, 75, 20480, 12949,
1915, 546, 6400, 23454, 13450, 7422, 1536, 29708, 22503, 16680, 1280, 12754, 6227,
3216, 1792, 12094, 5088, 2439, 19968, 16540, 8475, 4454, 19200, 23188, 16485, 11809,
19200, 0, 0, 0, 0, 3818, 1325, 759, 511, 19200, 0, 0, 0, 2852, 849, 544, 327, 1536, 0,
0, 0, 3866, 1963, 1189, 952, 512, 0, 0, 0, 26214, 19661, 13107, 6554, 0, 0, 0, 0,
18692, 6304, 2830, 1460, 940, 1536, 0, 0, 25248, 11541, 5002, 2456, 1291, 19200, 0, 0,
28391, 19478, 12957, 8548, 5704, 23040, 0, 0, 31086, 27629, 24167, 20795, 17722, 23040,
0, 0, 17533, 4163, 1401, 617, 317, 1536, 0, 0, 22512, 8182, 2993, 1303, 631, 23808, 0,
0, 26850, 17139, 10451, 6166, 3667, 23040, 0, 0, 30753, 27064, 22933, 19063, 15469,
19456, 0, 0, 6348, 813, 456, 338, 242, 19200, 0, 0, 16394, 3208, 1237, 745, 477, 7680,
0, 0, 25571, 16814, 11782, 7834, 5031, 1536, 0, 0, 27948, 23280, 21067, 18703, 16520,
2816, 0, 0,
],
},
CdfCoefContext {
data: [
2472, 1280, 29897, 19200, 27118, 19456, 19363, 6656, 13237, 256, 2582, 1280, 23990,
7936, 15262, 0, 6301, 0, 16384, 0, 1238, 7680, 30407, 19968, 28467, 19200, 18108, 7936,
13630, 1536, 1293, 1280, 27737, 0, 16714, 7936, 5721, 1280, 16384, 0, 1406, 6400,
29777, 19200, 25965, 256, 12826, 8192, 10751, 1536, 443, 1280, 27266, 0, 15709, 7936,
5111, 7936, 16384, 0, 5538, 15872, 32164, 20480, 28660, 0, 17028, 15872, 13899, 6912,
642, 8192, 28560, 7936, 13806, 8192, 4453, 7936, 16384, 0, 9706, 15872, 32028, 8448,
23257, 10752, 10474, 15872, 11261, 23808, 822, 14592, 30362, 15872, 14623, 7936, 7885,
8448, 16384, 0, 4, 0, 22179, 23296, 15568, 1792, 12047, 256, 9457, 1536, 3862, 1280,
28731, 6656, 17822, 6656, 8639, 0, 640, 19968, 191, 7936, 19146, 23808, 16565, 23040,
13356, 23040, 9002, 19200, 3179, 768, 29994, 6656, 17913, 6656, 7792, 0, 1030, 19200,
353, 15872, 17346, 23808, 14027, 23296, 11828, 19200, 7101, 19456, 1652, 0, 29487,
7936, 15011, 7936, 5061, 256, 3169, 1792, 586, 15872, 18878, 23040, 15229, 4608, 11623,
3840, 5935, 23808, 1186, 256, 28575, 6912, 11072, 8192, 3640, 1536, 5927, 15872, 1087,
15872, 22922, 8192, 11299, 8192, 8514, 1792, 3700, 23552, 1032, 8192, 23893, 15872,
6841, 15360, 3682, 15360, 16384, 0, 30929, 29773, 25972, 17642, 7680, 0, 0, 0, 31414,
30981, 27955, 23441, 7680, 0, 0, 0, 24470, 20899, 15471, 8199, 7680, 0, 0, 0, 31625,
30990, 28914, 24602, 19431, 7936, 0, 0, 31659, 31335, 29964, 27116, 21544, 7936, 0, 0,
24083, 21356, 16282, 10423, 4838, 7936, 0, 0, 31829, 31387, 29626, 26232, 19151, 10969,
7936, 0, 31430, 31106, 29991, 27500, 23584, 17032, 7936, 0, 23370, 20958, 15723, 10231,
5320, 1973, 7936, 0, 32114, 31700, 30511, 27188, 20406, 11313, 6701, 8192, 30916,
30525, 29214, 27219, 23683, 18164, 11209, 8192, 23055, 20622, 15284, 9950, 5396, 2380,
957, 7936, 31978, 31584, 30550, 27746, 21336, 12479, 9079, 14592, 29770, 29405, 28240,
26397, 23518, 19243, 14038, 8192, 23157, 20760, 15484, 10236, 6024, 3057, 1038, 7936,
31457, 30749, 29190, 25892, 18987, 9227, 7846, 15872, 27353, 26842, 25121, 22655,
19687, 15684, 12259, 14592, 22862, 20286, 15194, 10111, 5113, 2534, 947, 8192, 32134,
30991, 28895, 26475, 20115, 8943, 8056, 14592, 27874, 26949, 24549, 21746, 18362,
13849, 11289, 14592, 23552, 20219, 15138, 11045, 6906, 4008, 2328, 9472, 14442, 0, 0,
0, 21845, 10923, 0, 0, 21845, 10923, 0, 0, 21845, 10923, 0, 0, 6740, 2040, 768, 0,
21845, 10923, 0, 0, 1691, 663, 21760, 0, 879, 117, 23808, 0, 1492, 230, 23808, 0,
21845, 10923, 0, 0, 144, 16, 23808, 0, 80, 12, 23808, 0, 73, 12, 23808, 0, 21845,
10923, 0, 0, 91, 25, 17408, 0, 717, 29, 1792, 0, 477, 20, 8192, 0, 21845, 10923, 0, 0,
58, 12, 19968, 0, 68, 12, 3328, 0, 7779, 486, 15872, 0, 20261, 6691, 2708, 7680, 25218,
7670, 2218, 7680, 24759, 12053, 5447, 768, 29545, 15304, 6118, 768, 28463, 19618,
12624, 23808, 30816, 22640, 14444, 768, 29670, 23182, 17188, 23808, 31679, 25573,
18958, 23808, 31040, 26664, 22395, 23808, 31533, 28032, 23085, 23808, 24576, 16384,
8192, 0, 24576, 16384, 8192, 0, 24576, 16384, 8192, 0, 24576, 16384, 8192, 0, 24576,
16384, 8192, 0, 24576, 16384, 8192, 0, 24576, 16384, 8192, 0, 24576, 16384, 8192, 0,
24576, 16384, 8192, 0, 24576, 16384, 8192, 0, 24576, 16384, 8192, 0, 24576, 16384,
8192, 0, 24576, 16384, 8192, 0, 24576, 16384, 8192, 0, 24576, 16384, 8192, 0, 24576,
16384, 8192, 0, 24576, 16384, 8192, 0, 24576, 16384, 8192, 0, 24576, 16384, 8192, 0,
24576, 16384, 8192, 0, 5206, 798, 470, 19200, 24576, 16384, 8192, 0, 20803, 9506, 4286,
19200, 24576, 16384, 8192, 0, 26514, 17977, 12299, 19968, 24576, 16384, 8192, 0, 31122,
26149, 22072, 23808, 24576, 16384, 8192, 0, 24576, 16384, 8192, 0, 24576, 16384, 8192,
0, 7434, 801, 147, 23040, 17186, 1728, 306, 19968, 13861, 2296, 454, 23040, 31815,
5823, 963, 19200, 19252, 5860, 1864, 19200, 31219, 10832, 3226, 0, 24471, 11777, 5331,
19968, 32211, 17170, 7507, 0, 28788, 21142, 15170, 768, 31850, 24695, 17368, 768, 6377,
733, 173, 19200, 15096, 1426, 275, 0, 13188, 2117, 449, 19200, 32179, 5175, 868, 19200,
19034, 5575, 1725, 0, 31144, 10067, 2851, 0, 24457, 11529, 4918, 768, 32258, 16797,
6966, 0, 28551, 20024, 13257, 768, 32051, 23687, 15817, 768, 7674, 699, 152, 1280,
14929, 990, 128, 1280, 13096, 1954, 456, 19200, 30743, 4286, 725, 19200, 17968, 4580,
1326, 0, 31547, 8713, 2195, 0, 23773, 9948, 3776, 768, 31601, 14852, 5493, 768, 27924,
17970, 10645, 19968, 31929, 22177, 13349, 768, 1923, 179, 55, 0, 24576, 16384, 8192, 0,
13359, 2966, 904, 19200, 24576, 16384, 8192, 0, 21654, 9897, 4920, 0, 24576, 16384,
8192, 0, 26676, 16566, 10339, 1280, 24576, 16384, 8192, 0, 29521, 23089, 17741, 23040,
24576, 16384, 8192, 0, 5504, 146, 20, 19200, 19586, 726, 40, 19200, 9919, 749, 86,
19200, 32277, 2824, 228, 19200, 15150, 2701, 507, 19200, 30907, 6808, 1278, 19200,
22732, 8386, 2770, 19200, 31421, 13837, 4602, 19968, 27717, 18065, 11421, 19200, 32509,
22168, 13681, 0, 3173, 58, 20, 19200, 12839, 215, 20, 0, 8047, 380, 46, 19200, 31286,
1855, 143, 19200, 14039, 2048, 283, 0, 31123, 5326, 791, 0, 21961, 7130, 2019, 19200,
31618, 12381, 3541, 768, 27222, 16281, 9201, 0, 32365, 20519, 11396, 0, 2073, 30, 20,
20480, 7707, 79, 20, 0, 6221, 188, 21, 19200, 31434, 983, 60, 19200, 11772, 1071, 106,
0, 29086, 3371, 376, 19968, 19559, 4677, 963, 768, 31928, 9396, 1846, 768, 25379,
12709, 5763, 0, 32436, 17472, 7675, 0, 486, 42, 20, 3840, 24576, 16384, 8192, 0, 9557,
1130, 264, 23040, 24576, 16384, 8192, 0, 18788, 6100, 2380, 256, 24576, 16384, 8192, 0,
24973, 13480, 6827, 1536, 24576, 16384, 8192, 0, 28891, 21068, 14878, 256, 24576,
16384, 8192, 0, 3888, 88, 20, 0, 20341, 421, 20, 23040, 8743, 687, 64, 19200, 30703,
2041, 111, 19456, 12896, 1999, 373, 0, 31558, 5221, 807, 19456, 22358, 7999, 2951, 256,
30521, 13540, 4963, 256, 28771, 21223, 15816, 19200, 32622, 25070, 18080, 256, 1863,
35, 20, 19200, 14000, 134, 20, 19456, 5874, 240, 37, 19456, 30790, 1093, 84, 19456,
12018, 1546, 356, 256, 29509, 4015, 695, 256, 21820, 7530, 2543, 0, 32035, 12639, 4079,
256, 28773, 20166, 14114, 0, 31771, 23552, 16208, 19200, 1056, 18, 14, 19200, 1616, 50,
20, 19200, 4677, 126, 20, 19200, 27551, 762, 66, 19968, 9882, 952, 121, 0, 30410, 2928,
374, 19200, 19152, 5038, 1317, 0, 31746, 9709, 2425, 0, 26742, 15614, 8939, 19200,
31931, 20140, 11325, 23040, 24576, 16384, 8192, 0, 24576, 16384, 8192, 0, 24576, 16384,
8192, 0, 24576, 16384, 8192, 0, 24576, 16384, 8192, 0, 24576, 16384, 8192, 0, 24576,
16384, 8192, 0, 24576, 16384, 8192, 0, 24576, 16384, 8192, 0, 24576, 16384, 8192, 0,
4899, 180, 36, 256, 20834, 1090, 48, 19968, 11995, 1340, 141, 19200, 31955, 3432, 360,
0, 16089, 3789, 933, 1536, 29943, 8219, 2117, 256, 24375, 11384, 5493, 256, 32673,
17081, 8017, 1536, 29744, 23785, 19553, 19200, 32292, 26837, 21093, 23040, 2975, 53,
20, 7936, 17631, 632, 33, 0, 9071, 940, 133, 256, 31521, 2827, 294, 7936, 16843, 4088,
1113, 1536, 30129, 7750, 2075, 1536, 24729, 11388, 5078, 20480, 30714, 16171, 6775, 0,
29202, 22201, 16860, 23040, 32539, 25479, 18630, 256, 1486, 16, 12, 19200, 696, 40, 20,
23040, 5829, 241, 35, 19200, 26183, 1143, 99, 19968, 12890, 1929, 371, 19968, 31209,
4954, 815, 19968, 21325, 7022, 2087, 19968, 32294, 12253, 3771, 19968, 27338, 17264,
10500, 23808, 32284, 21487, 13053, 23808, 24576, 16384, 8192, 0, 24576, 16384, 8192, 0,
24576, 16384, 8192, 0, 24576, 16384, 8192, 0, 24576, 16384, 8192, 0, 24576, 16384,
8192, 0, 24576, 16384, 8192, 0, 24576, 16384, 8192, 0, 24576, 16384, 8192, 0, 24576,
16384, 8192, 0, 8578, 2208, 1192, 7680, 8402, 1847, 1010, 19968, 11213, 2910, 1672,
768, 16107, 6194, 3815, 19968, 20780, 11030, 7289, 23808, 23848, 15322, 10554, 23808,
26966, 20474, 15269, 19968, 4173, 842, 348, 186, 23296, 0, 0, 0, 4262, 948, 259, 82, 0,
0, 0, 0, 4088, 802, 265, 142, 0, 0, 0, 0, 5177, 658, 190, 56, 19200, 0, 0, 0, 4218,
758, 303, 175, 256, 0, 0, 0, 1514, 266, 108, 55, 19200, 0, 0, 0, 1168, 219, 80, 33,
19200, 0, 0, 0, 1021, 168, 56, 28, 19968, 0, 0, 0, 5529, 1683, 885, 521, 1792, 0, 0, 0,
932, 244, 128, 82, 0, 0, 0, 0, 475, 221, 141, 57, 11008, 0, 0, 0, 7802, 4681, 3641,
780, 12800, 0, 0, 0, 9897, 2039, 1086, 768, 9472, 0, 0, 0, 714, 94, 33, 28, 23040, 0,
0, 0, 26214, 19661, 13107, 6554, 0, 0, 0, 0, 26214, 19661, 13107, 6554, 0, 0, 0, 0,
24793, 10182, 5745, 2808, 15872, 0, 0, 0, 1400, 422, 140, 30, 1536, 0, 0, 0, 26214,
19661, 13107, 6554, 0, 0, 0, 0, 26214, 19661, 13107, 6554, 0, 0, 0, 0, 30654, 11627,
7399, 2114, 529, 3840, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 32219, 19181,
9660, 4001, 2358, 2560, 0, 0, 32764, 26926, 12897, 5843, 2466, 256, 0, 0, 28615, 19887,
11882, 7616, 4303, 1280, 0, 0, 32764, 22881, 15694, 9528, 5846, 256, 0, 0, 29259,
23107, 17546, 12331, 7940, 768, 0, 0, 32764, 27209, 19597, 13659, 9819, 256, 0, 0,
29881, 25055, 20925, 17071, 13436, 4608, 0, 0, 32764, 27646, 23169, 18026, 13800,
19456, 0, 0, 29940, 26553, 22465, 19544, 16388, 4608, 0, 0, 32764, 29837, 25607, 22262,
18538, 4608, 0, 0, 31154, 27106, 24289, 21402, 19346, 4608, 0, 0, 32764, 30998, 28757,
25541, 23419, 4352, 0, 0, 31461, 28824, 26464, 23541, 21123, 21248, 0, 0, 32764, 30103,
27989, 25445, 23166, 23808, 0, 0, 31710, 29826, 28371, 26965, 25906, 19968, 0, 0,
32760, 31424, 30241, 28232, 26613, 19968, 0, 0, 18807, 5041, 1220, 336, 128, 7680, 0,
0, 30060, 9131, 1465, 433, 183, 256, 0, 0, 24300, 11128, 4770, 1867, 753, 23040, 0, 0,
32764, 16106, 5931, 1931, 656, 23040, 0, 0, 26380, 15719, 8349, 4385, 2175, 23040, 0,
0, 32764, 20231, 11504, 6088, 2693, 1280, 0, 0, 28076, 19528, 12347, 7459, 4286, 19968,
0, 0, 32764, 23538, 16269, 10436, 6265, 0, 0, 0, 29326, 22259, 16509, 11537, 8151, 0,
0, 0, 32764, 26510, 19920, 14606, 10148, 23040, 0, 0, 29979, 24662, 19495, 15078,
11348, 19968, 0, 0, 32764, 27350, 22320, 17320, 13106, 21248, 0, 0, 30967, 27967,
24982, 21777, 19614, 23808, 0, 0, 32743, 29606, 26359, 23513, 20696, 768, 0, 0, 14676,
2924, 728, 197, 49, 19200, 0, 0, 23604, 6662, 1593, 447, 166, 19968, 0, 0, 21425, 8068,
2954, 1165, 553, 23808, 0, 0, 32746, 13968, 4843, 1629, 565, 23040, 0, 0, 25798, 15060,
7986, 4107, 1990, 23808, 0, 0, 32730, 20508, 11112, 5595, 2527, 19200, 0, 0, 27999,
19599, 12975, 7959, 4514, 19968, 0, 0, 32623, 23952, 15849, 9891, 5782, 19968, 0, 0,
29963, 24613, 19825, 15409, 11658, 19968, 0, 0, 32202, 27717, 22337, 17478, 13323,
19968, 0, 0, 11615, 2937, 1269, 719, 492, 19200, 0, 0, 27307, 21845, 16384, 10923,
5461, 0, 0, 0, 20941, 8096, 3699, 2149, 1434, 23808, 0, 0, 27307, 21845, 16384, 10923,
5461, 0, 0, 0, 25798, 15974, 9719, 5807, 3853, 19200, 0, 0, 27307, 21845, 16384, 10923,
5461, 0, 0, 0, 26661, 19211, 13614, 9658, 7149, 19200, 0, 0, 27307, 21845, 16384,
10923, 5461, 0, 0, 0, 30066, 24783, 19858, 15428, 12216, 19968, 0, 0, 27307, 21845,
16384, 10923, 5461, 0, 0, 0, 30775, 27168, 23329, 19725, 16511, 23040, 0, 0, 27307,
21845, 16384, 10923, 5461, 0, 0, 0, 31499, 28781, 26060, 23249, 20988, 23808, 0, 0,
27307, 21845, 16384, 10923, 5461, 0, 0, 0, 6138, 692, 236, 96, 37, 19200, 0, 0, 27307,
21845, 16384, 10923, 5461, 0, 0, 0, 18829, 7435, 2780, 1232, 626, 23040, 0, 0, 27307,
21845, 16384, 10923, 5461, 0, 0, 0, 25996, 17228, 10710, 6594, 3967, 19200, 0, 0,
27307, 21845, 16384, 10923, 5461, 0, 0, 0, 26772, 19046, 13618, 9845, 6896, 19968, 0,
0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 30396, 25966, 21765, 17913, 14751, 19968,
0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 15465, 1442, 1242, 392, 58, 2816, 0,
0, 32508, 16384, 10663, 5461, 3901, 17408, 0, 0, 30923, 15679, 6652, 2718, 1148, 19200,
0, 0, 32764, 24959, 11582, 4798, 1981, 19200, 0, 0, 23147, 11966, 6316, 3380, 1680, 0,
0, 0, 32764, 17292, 8669, 4489, 2595, 256, 0, 0, 27226, 19025, 12869, 8032, 4822,
19200, 0, 0, 32764, 24301, 15820, 9996, 6297, 0, 0, 0, 29068, 22405, 17208, 12487,
9042, 19200, 0, 0, 32764, 26730, 20883, 15570, 11405, 3840, 0, 0, 30350, 25571, 20708,
17163, 13491, 23808, 0, 0, 32764, 28110, 23551, 19300, 15389, 19968, 0, 0, 30964,
26454, 23640, 20050, 17229, 23296, 0, 0, 31396, 31120, 26743, 23112, 19545, 19968, 0,
0, 31033, 27922, 24779, 21982, 19281, 19968, 0, 0, 32764, 29445, 26315, 23141, 20433,
23808, 0, 0, 31696, 29755, 27890, 25985, 24250, 23808, 0, 0, 32758, 30842, 28973,
27036, 25168, 23808, 0, 0, 14744, 2279, 517, 142, 36, 23040, 0, 0, 12872, 8044, 1111,
234, 36, 1280, 0, 0, 21108, 6138, 1944, 581, 170, 19200, 0, 0, 32764, 11339, 3166, 785,
224, 0, 0, 0, 20282, 7804, 3188, 1265, 520, 3840, 0, 0, 32764, 13473, 5138, 1946, 850,
256, 0, 0, 25841, 15149, 8327, 4434, 2329, 19968, 0, 0, 32764, 19774, 10767, 5596,
2841, 19200, 0, 0, 28227, 20168, 13617, 8654, 5405, 23808, 0, 0, 32764, 24137, 16517,
10847, 6961, 0, 0, 0, 29304, 22916, 17083, 12180, 8662, 19968, 0, 0, 32764, 26188,
19956, 14689, 10490, 0, 0, 0, 30683, 26879, 23466, 20144, 17506, 23808, 0, 0, 32699,
29463, 25877, 22291, 19117, 19968, 0, 0, 9020, 898, 174, 47, 36, 23040, 0, 0, 21985,
2770, 390, 86, 36, 19968, 0, 0, 15035, 2685, 556, 163, 43, 19200, 0, 0, 32581, 6775,
1233, 284, 85, 19200, 0, 0, 19941, 6514, 2061, 656, 212, 19200, 0, 0, 32676, 11344,
3603, 1147, 364, 19200, 0, 0, 25117, 13133, 6104, 2759, 1152, 19968, 0, 0, 32741,
17787, 8236, 3491, 1381, 19200, 0, 0, 29165, 22491, 16857, 12373, 8898, 19968, 0, 0,
32418, 25972, 19561, 14350, 10388, 768, 0, 0, 4181, 642, 242, 125, 73, 19200, 0, 0,
27307, 21845, 16384, 10923, 5461, 0, 0, 0, 16131, 4041, 1446, 671, 387, 23040, 0, 0,
27307, 21845, 16384, 10923, 5461, 0, 0, 0, 23003, 11450, 5936, 3181, 1958, 19200, 0, 0,
27307, 21845, 16384, 10923, 5461, 0, 0, 0, 25819, 17478, 11551, 7879, 5597, 0, 0, 0,
27307, 21845, 16384, 10923, 5461, 0, 0, 0, 29164, 22610, 16973, 12537, 9420, 0, 0, 0,
27307, 21845, 16384, 10923, 5461, 0, 0, 0, 30456, 25491, 20866, 16709, 13410, 19200, 0,
0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 31152, 28055, 24846, 21817, 19093, 23808,
0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 2496, 177, 65, 32, 28, 0, 0, 0, 27307,
21845, 16384, 10923, 5461, 0, 0, 0, 12990, 2542, 703, 270, 122, 19200, 0, 0, 27307,
21845, 16384, 10923, 5461, 0, 0, 0, 21686, 9423, 4225, 2135, 1175, 19200, 0, 0, 27307,
21845, 16384, 10923, 5461, 0, 0, 0, 25050, 14758, 8711, 5159, 3170, 19200, 0, 0, 27307,
21845, 16384, 10923, 5461, 0, 0, 0, 29208, 22550, 16993, 12742, 9744, 19200, 0, 0,
27307, 21845, 16384, 10923, 5461, 0, 0, 0, 10296, 1362, 353, 151, 82, 9472, 0, 0,
27307, 21845, 16384, 10923, 5461, 0, 0, 0, 28189, 11979, 5568, 2411, 1203, 0, 0, 0,
32764, 19964, 8234, 3527, 1463, 1792, 0, 0, 22215, 9806, 4786, 2554, 1374, 256, 0, 0,
32764, 15538, 7651, 3926, 2365, 0, 0, 0, 27524, 19496, 13004, 8414, 5436, 3840, 0, 0,
32764, 24258, 16642, 10827, 6959, 0, 0, 0, 29505, 22824, 17572, 12913, 9879, 19968, 0,
0, 32764, 26595, 21085, 15822, 11528, 19200, 0, 0, 30815, 25623, 21244, 17567, 14541,
1280, 0, 0, 32478, 28314, 23332, 19227, 15404, 19200, 0, 0, 31046, 26892, 23455, 19669,
17075, 19200, 0, 0, 32764, 29038, 25148, 21637, 18324, 19200, 0, 0, 31103, 27955,
25193, 22311, 19891, 0, 0, 0, 32764, 29673, 26544, 23277, 20306, 23040, 0, 0, 31718,
29309, 27399, 25344, 23613, 23808, 0, 0, 32643, 31185, 29363, 27347, 25494, 3840, 0, 0,
7092, 784, 163, 56, 36, 19200, 0, 0, 9964, 6759, 1067, 195, 36, 0, 0, 0, 18874, 5317,
1623, 540, 129, 3840, 0, 0, 32764, 8856, 2373, 630, 158, 19200, 0, 0, 18046, 5895,
2214, 867, 386, 20736, 0, 0, 32764, 12909, 5706, 2279, 976, 1536, 0, 0, 26369, 15801,
8897, 4957, 2740, 19968, 0, 0, 32764, 19654, 11020, 6061, 3074, 0, 0, 0, 28563, 20027,
13321, 8806, 5962, 19456, 0, 0, 32764, 24262, 17112, 11354, 7072, 19968, 0, 0, 29202,
22445, 16512, 11944, 8672, 19200, 0, 0, 32764, 25784, 19766, 14486, 10273, 23040, 0, 0,
30993, 26828, 22860, 19163, 16586, 0, 0, 0, 32735, 28684, 24931, 21651, 18462, 20480,
0, 0, 6262, 310, 53, 32, 28, 23040, 0, 0, 24394, 2028, 168, 39, 35, 23808, 0, 0, 12252,
1650, 260, 69, 36, 19200, 0, 0, 32759, 4805, 695, 131, 36, 19200, 0, 0, 17156, 4441,
1158, 314, 81, 20480, 0, 0, 32742, 8702, 2325, 630, 168, 20480, 0, 0, 24309, 11546,
4961, 2036, 825, 19968, 0, 0, 32742, 16105, 6727, 2647, 946, 19200, 0, 0, 28600, 20725,
14511, 9889, 6734, 19200, 0, 0, 32724, 24359, 17146, 11775, 7972, 0, 0, 0, 2118, 249,
95, 45, 36, 19200, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 15239, 3140, 940,
409, 223, 0, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 22226, 11653, 6450, 3607,
1963, 1792, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 22521, 17000, 13057,
10472, 8740, 7936, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 30371, 25319,
20275, 16178, 13044, 14336, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 30899,
27191, 23279, 19933, 17137, 14336, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0,
31540, 28800, 26731, 24002, 21967, 14080, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0,
0, 813, 52, 28, 24, 20, 19200, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 10075,
1059, 301, 175, 109, 19200, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 18033,
5891, 2375, 998, 443, 256, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 23378,
12133, 6862, 4035, 2556, 1536, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 28365,
20970, 14667, 10175, 7300, 1280, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0,
15270, 3344, 1543, 875, 636, 15872, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0,
28303, 13365, 7520, 3376, 1669, 1792, 0, 0, 32764, 21118, 8985, 3591, 1772, 1792, 0, 0,
23616, 11766, 6357, 3571, 1930, 1536, 0, 0, 32381, 17599, 9129, 5251, 3543, 1792, 0, 0,
28505, 19972, 14643, 9552, 6800, 19456, 0, 0, 32764, 23957, 16751, 11377, 7865, 256, 0,
0, 29805, 25076, 19648, 15331, 12026, 19200, 0, 0, 32764, 27009, 21431, 16640, 12961,
19968, 0, 0, 30387, 25485, 21708, 19593, 17111, 19968, 0, 0, 32738, 29127, 25564,
21295, 17147, 19456, 0, 0, 31454, 26916, 24898, 21711, 19210, 19200, 0, 0, 30922,
30642, 27577, 23370, 20342, 19200, 0, 0, 30930, 27154, 24611, 21745, 19374, 23808, 0,
0, 32057, 31893, 28207, 26762, 24137, 7936, 0, 0, 31602, 29534, 27070, 24751, 23152,
23808, 0, 0, 32743, 31714, 30619, 29686, 28706, 0, 0, 0, 6479, 794, 179, 61, 36, 1536,
0, 0, 17167, 5471, 742, 189, 36, 7680, 0, 0, 18046, 4736, 1361, 303, 108, 23552, 0, 0,
32764, 7282, 1905, 483, 116, 20736, 0, 0, 18625, 7017, 3322, 1514, 675, 19200, 0, 0,
32714, 13640, 6011, 2821, 1386, 256, 0, 0, 27280, 16867, 10278, 6004, 3551, 19200, 0,
0, 32707, 20271, 12029, 6911, 4087, 1536, 0, 0, 28746, 21598, 15326, 11086, 7843,
19200, 0, 0, 32764, 24878, 17881, 12450, 8303, 19200, 0, 0, 29757, 23576, 18167, 13273,
10387, 0, 0, 0, 32440, 26477, 20744, 15940, 12432, 256, 0, 0, 31205, 27884, 24763,
21801, 19516, 23040, 0, 0, 32754, 29504, 26094, 23090, 20267, 23040, 0, 0, 4450, 217,
31, 27, 23, 19200, 0, 0, 24645, 1236, 88, 32, 28, 19456, 0, 0, 11530, 1619, 259, 61,
36, 19200, 0, 0, 32630, 4415, 636, 109, 36, 0, 0, 0, 16451, 4152, 1068, 297, 62, 256,
0, 0, 32123, 8790, 2645, 827, 274, 21248, 0, 0, 24591, 11601, 5133, 2273, 951, 23808,
0, 0, 32528, 16663, 7473, 3228, 1320, 19200, 0, 0, 29375, 22832, 17500, 13281, 10301,
19456, 0, 0, 32668, 25737, 19595, 14806, 11400, 256, 0, 0, 27307, 21845, 16384, 10923,
5461, 0, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 27307, 21845, 16384, 10923,
5461, 0, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 27307, 21845, 16384, 10923,
5461, 0, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 27307, 21845, 16384, 10923,
5461, 0, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 27307, 21845, 16384, 10923,
5461, 0, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 27307, 21845, 16384, 10923,
5461, 0, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 27307, 21845, 16384, 10923,
5461, 0, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 27307, 21845, 16384, 10923,
5461, 0, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 27307, 21845, 16384, 10923,
5461, 0, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 27307, 21845, 16384, 10923,
5461, 0, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 27307, 21845, 16384, 10923,
5461, 0, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 27307, 21845, 16384, 10923,
5461, 0, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 18575, 4986, 1447, 764, 161,
12800, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 31558, 19449, 9786, 5388, 1988,
9472, 0, 0, 32764, 25478, 11830, 6015, 2236, 8192, 0, 0, 26639, 13751, 8449, 5442,
3546, 8192, 0, 0, 32660, 20504, 15174, 10450, 7607, 14592, 0, 0, 29096, 16406, 15095,
12691, 9930, 6656, 0, 0, 31379, 28702, 21133, 15146, 10694, 1792, 0, 0, 30373, 23387,
20749, 18378, 15599, 10240, 0, 0, 32645, 29223, 27247, 20561, 16844, 8448, 0, 0, 30684,
27010, 23527, 20895, 18441, 23808, 0, 0, 32754, 28627, 24529, 22603, 19649, 23808, 0,
0, 31258, 27843, 25003, 22504, 20473, 4608, 0, 0, 32344, 30442, 27556, 23719, 20663,
23808, 0, 0, 31458, 28277, 25824, 23391, 21208, 4352, 0, 0, 31972, 30676, 28538, 26469,
23308, 4608, 0, 0, 32193, 30686, 29411, 28045, 27264, 23808, 0, 0, 32361, 31585, 30193,
28984, 27705, 23040, 0, 0, 10909, 3015, 1153, 183, 66, 7936, 0, 0, 29257, 3611, 936,
201, 67, 16640, 0, 0, 19299, 6124, 2182, 1071, 605, 6912, 0, 0, 32725, 8277, 2257,
1119, 612, 8192, 0, 0, 21251, 8841, 4101, 2175, 1117, 256, 0, 0, 32743, 15322, 8333,
4497, 2443, 1536, 0, 0, 26710, 16536, 10718, 6550, 4856, 256, 0, 0, 32600, 23864,
15371, 9450, 5593, 19200, 0, 0, 29552, 23193, 17097, 12955, 9430, 19456, 0, 0, 32703,
25971, 20357, 14375, 10544, 256, 0, 0, 30063, 24187, 20508, 16115, 12519, 23040, 0, 0,
32372, 27513, 21633, 16327, 12553, 0, 0, 0, 31575, 29200, 26628, 24130, 22654, 23808,
0, 0, 32757, 30121, 27631, 25498, 23467, 19200, 0, 0, 5091, 171, 30, 26, 22, 6656, 0,
0, 23667, 1652, 51, 32, 28, 512, 0, 0, 14872, 2561, 511, 115, 36, 19200, 0, 0, 32443,
5819, 1002, 151, 36, 4096, 0, 0, 19761, 6429, 2312, 810, 274, 19200, 0, 0, 32130,
11236, 3600, 1188, 422, 20480, 0, 0, 26336, 14132, 7084, 3027, 1351, 0, 0, 0, 32369,
18746, 9854, 4842, 2280, 256, 0, 0, 30308, 25402, 20955, 17362, 14730, 23040, 0, 0,
32627, 27629, 23072, 19119, 15887, 19200, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0,
0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0,
0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0,
0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0,
0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0,
0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0,
0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0,
0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0,
0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0,
0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0,
0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0,
0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0,
0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 20776, 14791, 8921, 9472, 18539, 10439,
6693, 23040, 21325, 12378, 9948, 19456, 24371, 16545, 13504, 23040, 26941, 20885,
18115, 23040, 28352, 23609, 21104, 23040, 29956, 26744, 25382, 23808, 16013, 9009,
6068, 1280, 15475, 6828, 4250, 23808, 17221, 7471, 5464, 23808, 20184, 10543, 8390,
23808, 23583, 15251, 12791, 23808, 25753, 18807, 16024, 23808, 28259, 23159, 20910,
23808, 16228, 23808, 17964, 23808, 14456, 23808, 16384, 0, 16384, 0, 16384, 0, 16384,
0, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 16095, 9766, 19200, 0, 12878,
6835, 23040, 0, 14413, 7173, 19200, 0, 13149, 6903, 0, 0, 10347, 4932, 0, 0, 10750,
4881, 0, 0, 10373, 5098, 7936, 0, 8493, 4112, 7936, 0, 10173, 4742, 256, 0, 20943,
13984, 9794, 0, 21924, 15106, 10478, 0, 22152, 15809, 11465, 23040, 20951, 15146,
11104, 23040, 24501, 17145, 12866, 23040, 27418, 22967, 18306, 1280, 29325, 26183,
23209, 19200, 18829, 12006, 8317, 7936, 16525, 9549, 6054, 7936, 17694, 10558, 6784,
1536, 16661, 10043, 6472, 1536, 21875, 12495, 7942, 1536, 27123, 22097, 17668, 7680,
28433, 24089, 20276, 7936, 18518, 11605, 7827, 9472, 15551, 8834, 5335, 8192, 15678,
8775, 5194, 9472, 13043, 7343, 4071, 9472, 20068, 9003, 4517, 9472, 26226, 20913,
15660, 9472, 27667, 22300, 17325, 9472, 4733, 1875, 1012, 19968, 14671, 5811, 3292,
19200, 17693, 10211, 5875, 0, 21136, 15793, 12514, 0, 27109, 20761, 16323, 0, 28913,
24914, 20357, 256, 30408, 28576, 26900, 0, 1759, 445, 194, 19968, 11426, 3090, 1317,
19968, 15828, 7693, 3500, 0, 20342, 14968, 11235, 0, 26689, 19669, 14196, 256, 28519,
24005, 19207, 1536, 30295, 28137, 25845, 1280, 689, 154, 62, 19200, 10134, 2113, 826,
0, 16064, 7689, 2851, 7936, 19973, 15729, 12039, 1536, 27406, 21556, 14428, 9472,
29255, 25852, 20074, 7936, 30885, 29228, 26912, 1536, 15758, 0, 6936, 0, 25050, 768,
3231, 256, 23843, 7936, 2173, 19200, 28091, 23040, 297, 23040, 29745, 256, 15240, 6400,
4960, 0, 26546, 0, 3021, 256, 29920, 7936, 1133, 19200, 30255, 19200, 254, 19200,
32294, 4608, 13611, 7936, 2217, 7936, 29980, 7936, 2016, 9472, 32067, 6656, 203, 3840,
32409, 2048, 253, 22272, 32545, 9472, 31427, 23808, 25000, 19200, 16724, 256, 32664,
15360, 16384, 0, 16384, 0, 24342, 0, 15849, 0, 7520, 0, 24320, 12800, 5605, 12800,
5174, 12800, 0, 0, 21845, 10923, 0, 0, 1173, 181, 23808, 0, 502, 58, 23808, 0, 481, 70,
23808, 0, 6504, 486, 101, 19200, 16300, 3236, 856, 19968, 23853, 11121, 5237, 0, 28427,
20353, 13986, 19200, 5597, 295, 54, 23040, 14221, 2089, 471, 19200, 23045, 9731, 4207,
0, 28458, 20369, 14023, 19200, 3021, 161, 35, 19200, 11421, 1193, 259, 23040, 22220,
10470, 4433, 20480, 30644, 23059, 15170, 23040, 8326, 2941, 1233, 19200, 10278, 3814,
1512, 23808, 14886, 7098, 3391, 23808, 22104, 15033, 10331, 19200, 0, 0, 0, 0, 2925,
585, 206, 93, 19200, 0, 0, 0, 2793, 1037, 668, 504, 3072, 0, 0, 0, 2672, 819, 308, 157,
6912, 0, 0, 0, 26214, 19661, 13107, 6554, 0, 0, 0, 0, 17406, 5118, 1841, 754, 371,
1536, 0, 0, 23212, 9769, 4035, 1764, 826, 19200, 0, 0, 27530, 18142, 11201, 6753, 4041,
19968, 0, 0, 30572, 26256, 21988, 17921, 14474, 23808, 0, 0, 17199, 4041, 1062, 345,
118, 0, 0, 0, 21262, 6944, 2251, 820, 325, 19200, 0, 0, 26557, 15996, 9067, 5036, 2807,
23040, 0, 0, 30307, 25529, 21013, 16899, 13558, 23040, 0, 0, 5817, 632, 212, 114, 72,
19200, 0, 0, 15077, 2553, 824, 369, 218, 19200, 0, 0, 23419, 13461, 7383, 3741, 1947,
1536, 0, 0, 24240, 17657, 14311, 11092, 9001, 9472, 0, 0,
],
},
CdfCoefContext {
data: [
4747, 768, 28093, 19200, 26361, 19200, 19898, 0, 14699, 256, 6040, 7680, 28564, 1536,
20915, 19200, 13289, 0, 16384, 0, 2468, 0, 28041, 768, 27435, 19200, 19308, 1536,
15344, 1536, 3954, 7680, 27991, 0, 20246, 0, 12329, 0, 16384, 0, 1470, 6400, 26432, 0,
25280, 19456, 13575, 7936, 11363, 7936, 1277, 1280, 27045, 0, 17713, 256, 9250, 256,
16384, 0, 961, 14336, 31375, 19200, 29219, 512, 14194, 8192, 12973, 8192, 976, 9216,
26827, 7936, 16308, 8192, 7574, 7936, 16384, 0, 490, 15616, 30186, 7936, 18776, 7936,
6775, 8192, 6485, 19712, 712, 0, 25779, 8192, 14944, 8192, 8537, 8192, 16384, 0, 4, 0,
23384, 23296, 20523, 1792, 17810, 19200, 14688, 7680, 9669, 7680, 30577, 23040, 23094,
256, 15231, 256, 181, 23040, 39, 4608, 20245, 23808, 18924, 23808, 16689, 23808, 11764,
23040, 6795, 0, 30908, 3840, 23142, 256, 14653, 256, 850, 6400, 41, 11008, 18524,
23808, 16960, 23296, 14681, 19200, 9702, 23040, 5151, 0, 30836, 0, 20494, 256, 8811,
1536, 2761, 1792, 163, 14336, 18334, 23552, 11143, 19968, 11442, 512, 7011, 1280, 2709,
2048, 30283, 6656, 17727, 1536, 6295, 1280, 6873, 16128, 206, 14336, 17628, 1792, 8959,
1792, 6682, 7936, 3385, 512, 1613, 4096, 28375, 13056, 15090, 8448, 7161, 14336, 16384,
0, 28822, 26362, 19443, 6764, 7680, 0, 0, 0, 30152, 29366, 24911, 19362, 7680, 0, 0, 0,
19090, 15406, 9212, 4211, 7680, 0, 0, 0, 29491, 27988, 23513, 16224, 10915, 7936, 0, 0,
31113, 30404, 28089, 22739, 13813, 6656, 0, 0, 17219, 13761, 8117, 3595, 1026, 1536, 0,
0, 30744, 29529, 25799, 19695, 11151, 5125, 7936, 0, 31254, 30831, 28958, 25041, 19297,
9585, 7936, 0, 17809, 14524, 8447, 3591, 995, 271, 256, 0, 31096, 30168, 27102, 20782,
11172, 4035, 1917, 7936, 30667, 30163, 28299, 24712, 19643, 13277, 6389, 7936, 17727,
14489, 8338, 3833, 1223, 329, 96, 1536, 31212, 30248, 27626, 22183, 13261, 4361, 2197,
8192, 29160, 28687, 26966, 23770, 19761, 14442, 9030, 8192, 18761, 15707, 9946, 5535,
2572, 869, 185, 1536, 31114, 30048, 27451, 22203, 13462, 2978, 1893, 8192, 25531,
24788, 22604, 19038, 14753, 9116, 5631, 8192, 18265, 15619, 10176, 5733, 2755, 1069,
242, 1792, 30667, 29464, 26282, 20229, 10987, 2427, 2030, 8192, 21419, 20537, 17801,
14236, 10362, 6105, 4466, 14592, 17687, 14895, 9713, 5517, 2715, 1277, 463, 8192,
13095, 19968, 0, 0, 21845, 10923, 0, 0, 21845, 10923, 0, 0, 21845, 10923, 0, 0, 3810,
574, 23808, 0, 21845, 10923, 0, 0, 636, 33, 6400, 0, 213, 23, 23808, 0, 310, 39, 23808,
0, 21845, 10923, 0, 0, 151, 14, 23808, 0, 69, 12, 23808, 0, 73, 12, 23808, 0, 21845,
10923, 0, 0, 84, 12, 23808, 0, 216, 12, 2560, 0, 179, 12, 19200, 0, 21845, 10923, 0, 0,
81, 12, 23808, 0, 52, 12, 23296, 0, 1264, 53, 14336, 0, 16124, 2848, 558, 0, 24296,
4933, 715, 2048, 20084, 4776, 810, 3840, 31416, 8783, 1413, 0, 25833, 11982, 4154,
23040, 31277, 18593, 7304, 4608, 28484, 19684, 12621, 23808, 32262, 23937, 14980,
23040, 30295, 16693, 13602, 23040, 30698, 28284, 24490, 10752, 24576, 16384, 8192, 0,
24576, 16384, 8192, 0, 24576, 16384, 8192, 0, 24576, 16384, 8192, 0, 24576, 16384,
8192, 0, 24576, 16384, 8192, 0, 24576, 16384, 8192, 0, 24576, 16384, 8192, 0, 24576,
16384, 8192, 0, 24576, 16384, 8192, 0, 24576, 16384, 8192, 0, 24576, 16384, 8192, 0,
24576, 16384, 8192, 0, 24576, 16384, 8192, 0, 24576, 16384, 8192, 0, 24576, 16384,
8192, 0, 24576, 16384, 8192, 0, 24576, 16384, 8192, 0, 24576, 16384, 8192, 0, 24576,
16384, 8192, 0, 1631, 181, 83, 19200, 24576, 16384, 8192, 0, 19117, 7251, 2373, 0,
24576, 16384, 8192, 0, 24898, 14491, 7488, 19968, 24576, 16384, 8192, 0, 29335, 22782,
15916, 4352, 24576, 16384, 8192, 0, 24576, 16384, 8192, 0, 24576, 16384, 8192, 0, 7487,
222, 29, 23040, 18842, 1127, 69, 19200, 13295, 1345, 154, 23040, 32670, 4662, 460,
23040, 18523, 4558, 1007, 19968, 32582, 9624, 2082, 19200, 24013, 10214, 3647, 19968,
32456, 15736, 5605, 19968, 27561, 17726, 10418, 19968, 32385, 22283, 13079, 19968,
5071, 131, 22, 23040, 12940, 488, 39, 0, 11873, 1059, 167, 23808, 32062, 3671, 338,
19200, 18097, 3952, 760, 768, 32221, 9021, 1681, 19200, 23845, 9671, 3058, 23808,
32551, 15418, 5044, 19200, 27422, 16722, 8625, 19968, 32406, 20669, 10704, 19968, 6104,
244, 39, 0, 12839, 527, 36, 1280, 12339, 1222, 181, 19968, 31897, 3544, 341, 19200,
17677, 3466, 587, 23808, 32348, 8544, 1453, 19200, 23118, 8159, 2215, 23808, 32052,
13869, 3970, 19968, 26540, 14521, 6757, 23808, 32280, 19808, 9202, 23808, 1310, 110,
26, 0, 24576, 16384, 8192, 0, 12075, 1922, 472, 23040, 24576, 16384, 8192, 0, 19997,
7455, 2917, 0, 24576, 16384, 8192, 0, 25166, 13744, 7167, 0, 24576, 16384, 8192, 0,
28076, 18692, 12417, 3840, 24576, 16384, 8192, 0, 6122, 150, 20, 19200, 19783, 745, 40,
19200, 11090, 823, 93, 23808, 32722, 3119, 203, 0, 15955, 2830, 464, 19200, 32034,
7280, 1250, 0, 22721, 8195, 2448, 19968, 32088, 14027, 4360, 19968, 27340, 16758, 9421,
19200, 32486, 21133, 11752, 19968, 3276, 57, 20, 23040, 9912, 187, 20, 23040, 8954,
295, 36, 19200, 32263, 1926, 114, 19200, 14798, 2104, 226, 0, 32177, 5780, 785, 0,
22037, 7122, 1853, 19200, 32052, 12787, 3507, 19968, 26871, 15195, 7688, 19200, 32590,
19814, 10043, 23040, 1828, 28, 20, 0, 5275, 75, 20, 1280, 7211, 197, 30, 23040, 31612,
1232, 76, 23040, 13092, 1330, 137, 19200, 30915, 4373, 502, 19968, 20600, 5446, 1120,
23808, 32394, 10906, 2342, 19968, 25860, 13274, 5697, 19968, 32655, 17947, 7592, 23040,
455, 31, 20, 6400, 24576, 16384, 8192, 0, 9057, 762, 148, 19200, 24576, 16384, 8192, 0,
16727, 3776, 1133, 0, 24576, 16384, 8192, 0, 22778, 9131, 3555, 1280, 24576, 16384,
8192, 0, 27006, 16715, 10268, 1280, 24576, 16384, 8192, 0, 5584, 96, 20, 256, 22155,
516, 30, 19200, 10298, 677, 52, 19200, 31819, 2530, 125, 20480, 14833, 2346, 355, 0,
32094, 6032, 760, 20480, 21757, 7156, 2125, 23040, 31771, 12811, 3825, 23040, 28014,
19250, 13152, 19200, 32738, 22741, 14542, 19456, 3034, 39, 20, 0, 14900, 216, 20, 0,
7600, 203, 29, 19456, 32243, 1494, 79, 19456, 13613, 1827, 275, 19200, 30782, 5028,
684, 19200, 21809, 7252, 2303, 19200, 32535, 12613, 3646, 20736, 28087, 18265, 11434,
0, 32285, 22089, 13883, 19200, 861, 16, 12, 0, 894, 49, 20, 19200, 6269, 170, 32,
23040, 28441, 1156, 90, 23808, 11804, 1245, 169, 19200, 31317, 3940, 505, 23040, 19946,
5485, 1399, 19968, 32432, 10900, 2708, 19200, 26516, 15135, 8069, 23808, 32303, 19789,
10354, 23808, 24576, 16384, 8192, 0, 24576, 16384, 8192, 0, 24576, 16384, 8192, 0,
24576, 16384, 8192, 0, 24576, 16384, 8192, 0, 24576, 16384, 8192, 0, 24576, 16384,
8192, 0, 24576, 16384, 8192, 0, 24576, 16384, 8192, 0, 24576, 16384, 8192, 0, 5255,
119, 20, 1536, 20235, 688, 41, 0, 10501, 910, 83, 20480, 32293, 2883, 244, 3840, 15095,
2574, 545, 256, 31125, 7095, 1544, 256, 22746, 8733, 3110, 19200, 32492, 13891, 5017,
1536, 28239, 19576, 13853, 19456, 32483, 23556, 15793, 19456, 2801, 61, 20, 1536,
17442, 392, 22, 3840, 8417, 524, 51, 256, 31119, 1711, 84, 0, 14936, 2360, 387, 1536,
30892, 6210, 1072, 7936, 22269, 7925, 2687, 19200, 31740, 13308, 4226, 256, 27718,
18178, 11541, 19200, 32676, 21835, 13322, 1536, 1164, 16, 12, 19200, 605, 46, 20,
23040, 6231, 183, 29, 19200, 27250, 1112, 73, 23040, 12284, 1372, 167, 19200, 31740,
4289, 541, 19968, 19961, 5477, 1348, 23808, 32299, 10582, 2505, 19200, 26046, 14507,
7476, 23040, 32711, 19137, 9888, 19200, 24576, 16384, 8192, 0, 24576, 16384, 8192, 0,
24576, 16384, 8192, 0, 24576, 16384, 8192, 0, 24576, 16384, 8192, 0, 24576, 16384,
8192, 0, 24576, 16384, 8192, 0, 24576, 16384, 8192, 0, 24576, 16384, 8192, 0, 24576,
16384, 8192, 0, 2871, 376, 138, 7680, 5284, 655, 282, 768, 8789, 1489, 740, 768, 13642,
3771, 2008, 768, 18439, 7528, 4356, 0, 21907, 11995, 6907, 19200, 25494, 17724, 11105,
0, 3195, 702, 291, 143, 19456, 0, 0, 0, 3941, 600, 125, 33, 23040, 0, 0, 0, 3406, 469,
115, 46, 19200, 0, 0, 0, 3003, 311, 57, 28, 23040, 0, 0, 0, 3444, 477, 151, 54, 0, 0,
0, 0, 830, 116, 40, 28, 19200, 0, 0, 0, 819, 95, 30, 26, 19200, 0, 0, 0, 966, 102, 24,
20, 19968, 0, 0, 0, 4201, 898, 330, 139, 1536, 0, 0, 0, 668, 105, 36, 28, 19200, 0, 0,
0, 120, 44, 24, 20, 21248, 0, 0, 0, 7203, 768, 295, 59, 15360, 0, 0, 0, 6356, 2163,
1004, 538, 9472, 0, 0, 0, 601, 70, 24, 20, 23040, 0, 0, 0, 26214, 19661, 13107, 6554,
0, 0, 0, 0, 26214, 19661, 13107, 6554, 0, 0, 0, 0, 8311, 3547, 1861, 1042, 15872, 0, 0,
0, 716, 78, 31, 27, 23040, 0, 0, 0, 26214, 19661, 13107, 6554, 0, 0, 0, 0, 26214,
19661, 13107, 6554, 0, 0, 0, 0, 29407, 13443, 8402, 1680, 840, 12800, 0, 0, 27307,
21845, 16384, 10923, 5461, 0, 0, 0, 31136, 17431, 8618, 4265, 2205, 512, 0, 0, 32764,
27473, 11939, 4642, 1918, 0, 0, 0, 26136, 16705, 9470, 5728, 3047, 768, 0, 0, 32764,
21394, 13261, 7845, 4200, 6400, 0, 0, 27859, 21678, 14930, 10383, 6489, 3840, 0, 0,
32733, 26751, 16906, 10288, 6309, 0, 0, 0, 29179, 22957, 18237, 13714, 10073, 768, 0,
0, 32764, 26404, 22913, 15841, 11177, 0, 0, 0, 30025, 25324, 20350, 17710, 13728, 0, 0,
0, 32762, 29898, 24273, 20241, 16075, 4608, 0, 0, 31172, 26390, 22558, 17828, 15599,
23808, 0, 0, 32764, 31142, 29678, 25249, 23050, 4608, 0, 0, 32120, 28227, 25180, 21196,
18126, 1280, 0, 0, 32763, 28875, 26693, 23363, 20652, 4608, 0, 0, 31249, 29318, 27713,
26595, 25598, 2048, 0, 0, 32763, 30201, 29062, 25235, 23655, 23040, 0, 0, 18480, 3963,
1085, 185, 68, 19968, 0, 0, 32704, 8252, 1363, 397, 113, 1536, 0, 0, 24415, 10321,
3719, 1189, 453, 19968, 0, 0, 32764, 15786, 4770, 1242, 347, 0, 0, 0, 25270, 13966,
7050, 3163, 1349, 19200, 0, 0, 32764, 18776, 9018, 4376, 1675, 0, 0, 0, 26837, 17629,
10586, 5350, 2794, 19968, 0, 0, 32764, 20562, 11611, 6185, 3766, 0, 0, 0, 28351, 20360,
13203, 7831, 5025, 0, 0, 0, 32762, 23975, 15638, 10676, 5913, 256, 0, 0, 29071, 22475,
16127, 11423, 7526, 19968, 0, 0, 32764, 25217, 18586, 12101, 7121, 4608, 0, 0, 28980,
22676, 17288, 12237, 9200, 19456, 0, 0, 32738, 27985, 22054, 16372, 11905, 0, 0, 0,
13960, 2204, 354, 60, 36, 23808, 0, 0, 24427, 6619, 912, 140, 42, 768, 0, 0, 19579,
5354, 1143, 242, 56, 23040, 0, 0, 32673, 11103, 2516, 547, 154, 768, 0, 0, 22931,
10226, 3878, 1441, 470, 19968, 0, 0, 32762, 16315, 6256, 2040, 460, 19200, 0, 0, 25751,
14361, 7556, 3116, 1146, 19968, 0, 0, 32737, 20806, 10151, 4557, 1659, 19200, 0, 0,
27322, 18474, 11430, 6468, 3091, 19968, 0, 0, 32612, 24548, 15728, 8927, 4254, 19968,
0, 0, 7965, 1482, 689, 387, 228, 19200, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0,
0, 19947, 6554, 2718, 1395, 796, 23808, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0,
0, 24872, 15504, 8864, 4918, 3016, 19200, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0,
0, 25723, 17998, 12773, 9109, 6660, 19968, 0, 0, 27307, 21845, 16384, 10923, 5461, 0,
0, 0, 30458, 26350, 20618, 15900, 12137, 19968, 0, 0, 27307, 21845, 16384, 10923, 5461,
0, 0, 0, 31096, 27235, 22738, 19033, 15201, 23808, 0, 0, 27307, 21845, 16384, 10923,
5461, 0, 0, 0, 31549, 28244, 25740, 22352, 19380, 23808, 0, 0, 27307, 21845, 16384,
10923, 5461, 0, 0, 0, 3080, 343, 117, 37, 33, 19200, 0, 0, 27307, 21845, 16384, 10923,
5461, 0, 0, 0, 16912, 6184, 1982, 715, 198, 23040, 0, 0, 27307, 21845, 16384, 10923,
5461, 0, 0, 0, 23945, 14878, 8314, 4426, 2153, 19200, 0, 0, 27307, 21845, 16384, 10923,
5461, 0, 0, 0, 25767, 17437, 11435, 7283, 4396, 23808, 0, 0, 27307, 21845, 16384,
10923, 5461, 0, 0, 0, 29226, 22468, 17494, 12903, 9497, 23040, 0, 0, 27307, 21845,
16384, 10923, 5461, 0, 0, 0, 12308, 429, 255, 106, 36, 3328, 0, 0, 27307, 21845, 16384,
10923, 5461, 0, 0, 0, 32485, 15594, 6188, 2393, 1130, 19200, 0, 0, 32764, 27192, 11023,
4555, 1947, 19200, 0, 0, 21720, 10598, 6283, 3571, 1847, 0, 0, 0, 32764, 16569, 7675,
3629, 2264, 0, 0, 0, 26391, 19257, 12989, 7666, 4636, 0, 0, 0, 32764, 25391, 14646,
9174, 5568, 19968, 0, 0, 28268, 22481, 16873, 11588, 8096, 0, 0, 0, 32752, 27077,
20506, 14966, 11073, 0, 0, 0, 29978, 24925, 20164, 15837, 12204, 23808, 0, 0, 32764,
27947, 22921, 18788, 14490, 23296, 0, 0, 31387, 25329, 21804, 17966, 14695, 19456, 0,
0, 31246, 30318, 26149, 22269, 18611, 4096, 0, 0, 30743, 27125, 23833, 20618, 17925,
23040, 0, 0, 32544, 29851, 26107, 22256, 19431, 23040, 0, 0, 31400, 28943, 26114,
23730, 21677, 23040, 0, 0, 32727, 30186, 27456, 25048, 22289, 23040, 0, 0, 12358, 1092,
254, 76, 36, 20480, 0, 0, 7137, 6422, 463, 119, 36, 1536, 0, 0, 23751, 6397, 1948, 480,
144, 19200, 0, 0, 32764, 12126, 2875, 630, 142, 0, 0, 0, 20811, 8397, 3334, 1163, 439,
23040, 0, 0, 32764, 13053, 4731, 1823, 687, 256, 0, 0, 26181, 15376, 8219, 4003, 1858,
19200, 0, 0, 32764, 19751, 9922, 4758, 2205, 19200, 0, 0, 27948, 19692, 12533, 7494,
4401, 23040, 0, 0, 32764, 23251, 14746, 9178, 5263, 19200, 0, 0, 28929, 21726, 15616,
10441, 6952, 23808, 0, 0, 32764, 25334, 18210, 12273, 8048, 23040, 0, 0, 29590, 23720,
18750, 14522, 11312, 23808, 0, 0, 32727, 28181, 23176, 18280, 13784, 19200, 0, 0, 8166,
379, 68, 32, 28, 19200, 0, 0, 25142, 2478, 179, 38, 34, 19200, 0, 0, 15562, 2317, 364,
72, 36, 23040, 0, 0, 32764, 6609, 888, 137, 36, 19200, 0, 0, 19969, 6051, 1545, 384,
90, 19200, 0, 0, 32764, 11192, 3165, 740, 173, 0, 0, 0, 24845, 12092, 5008, 1859, 676,
19968, 0, 0, 32758, 17448, 7417, 2880, 957, 19968, 0, 0, 28216, 19575, 12679, 7810,
4498, 19968, 0, 0, 32739, 23664, 15689, 9724, 5565, 19968, 0, 0, 3736, 441, 173, 86,
48, 19200, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 15803, 3482, 1117, 461,
241, 23040, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 23422, 11379, 5451, 2794,
1441, 23040, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 26183, 17119, 11075,
7094, 4724, 19200, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 29351, 22675,
16609, 11580, 8162, 23040, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 30464,
25312, 20475, 16205, 12501, 23808, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0,
30957, 27484, 23915, 20491, 16999, 23808, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0,
0, 1793, 89, 30, 26, 22, 0, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 12423,
2043, 490, 125, 42, 23808, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 20525,
7757, 2980, 1185, 508, 23040, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 24274,
12840, 6168, 3267, 1626, 23040, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 27776,
18844, 12410, 8131, 5244, 23040, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 8174,
379, 127, 50, 36, 9472, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 30410, 13551,
5771, 2119, 975, 256, 0, 0, 32764, 21778, 8268, 3899, 1550, 1280, 0, 0, 20321, 8440,
4202, 2299, 1300, 256, 0, 0, 32764, 14209, 6839, 3316, 1931, 256, 0, 0, 26709, 18418,
11667, 7230, 4484, 0, 0, 0, 32764, 24142, 14821, 8958, 5147, 256, 0, 0, 29043, 22480,
16681, 12102, 8752, 19200, 0, 0, 32764, 26235, 20480, 14920, 10355, 20480, 0, 0, 30597,
25266, 20596, 16881, 13612, 0, 0, 0, 32761, 27674, 22849, 18056, 13881, 23040, 0, 0,
30586, 26313, 22569, 18932, 15626, 19200, 0, 0, 32764, 28627, 24468, 20414, 16811,
19200, 0, 0, 31129, 27536, 24396, 21323, 18419, 19200, 0, 0, 32758, 29691, 26223,
22322, 19259, 0, 0, 0, 31684, 28464, 26047, 23210, 21121, 19200, 0, 0, 32223, 30922,
28723, 26260, 24149, 3840, 0, 0, 8424, 858, 218, 86, 36, 22016, 0, 0, 6257, 5956, 511,
163, 36, 1536, 0, 0, 21010, 5576, 1466, 382, 75, 19456, 0, 0, 32764, 9897, 2222, 457,
96, 19456, 0, 0, 18633, 6234, 2273, 724, 293, 256, 0, 0, 32764, 12723, 5555, 2391, 981,
1280, 0, 0, 25692, 14505, 7725, 4081, 2087, 19968, 0, 0, 32764, 19304, 10432, 5302,
2624, 0, 0, 0, 28135, 19113, 12048, 7499, 5036, 23040, 0, 0, 32764, 24089, 16413,
10496, 6075, 23040, 0, 0, 29020, 21769, 15586, 10693, 7353, 19200, 0, 0, 32764, 25260,
18571, 13042, 8660, 23040, 0, 0, 30584, 25308, 20524, 16364, 13295, 19200, 0, 0, 32699,
27402, 22425, 17994, 14251, 19456, 0, 0, 7699, 389, 53, 32, 28, 23040, 0, 0, 27639,
2246, 132, 32, 28, 19200, 0, 0, 13704, 1927, 271, 58, 36, 19200, 0, 0, 32764, 5431,
726, 113, 36, 0, 0, 0, 17424, 4630, 1132, 277, 61, 0, 0, 0, 32758, 9034, 2381, 576,
130, 0, 0, 0, 24215, 11156, 4524, 1733, 627, 23808, 0, 0, 32764, 16099, 6401, 2302,
706, 19200, 0, 0, 28061, 19012, 12039, 7319, 4231, 19200, 0, 0, 32759, 22970, 14752,
8969, 5230, 19200, 0, 0, 2296, 338, 132, 64, 38, 19200, 0, 0, 27307, 21845, 16384,
10923, 5461, 0, 0, 0, 16028, 3336, 1044, 462, 238, 23040, 0, 0, 27307, 21845, 16384,
10923, 5461, 0, 0, 0, 22998, 11373, 5949, 3123, 1728, 0, 0, 0, 27307, 21845, 16384,
10923, 5461, 0, 0, 0, 26885, 18932, 13308, 9886, 7344, 1536, 0, 0, 27307, 21845, 16384,
10923, 5461, 0, 0, 0, 29513, 23026, 17655, 12791, 9559, 0, 0, 0, 27307, 21845, 16384,
10923, 5461, 0, 0, 0, 30450, 26034, 21306, 17276, 13799, 23296, 0, 0, 27307, 21845,
16384, 10923, 5461, 0, 0, 0, 31424, 27882, 24278, 21621, 18965, 256, 0, 0, 27307,
21845, 16384, 10923, 5461, 0, 0, 0, 798, 33, 28, 24, 20, 3840, 0, 0, 27307, 21845,
16384, 10923, 5461, 0, 0, 0, 11002, 1153, 219, 86, 36, 19200, 0, 0, 27307, 21845,
16384, 10923, 5461, 0, 0, 0, 18697, 5231, 1606, 588, 204, 19200, 0, 0, 27307, 21845,
16384, 10923, 5461, 0, 0, 0, 23374, 10317, 4448, 2144, 1149, 23808, 0, 0, 27307, 21845,
16384, 10923, 5461, 0, 0, 0, 26411, 16670, 10685, 6688, 4067, 19456, 0, 0, 27307,
21845, 16384, 10923, 5461, 0, 0, 0, 10098, 1728, 706, 372, 274, 15872, 0, 0, 27307,
21845, 16384, 10923, 5461, 0, 0, 0, 26564, 13881, 6662, 2774, 1241, 256, 0, 0, 32764,
19552, 8530, 3550, 1590, 0, 0, 0, 22038, 9887, 4839, 2684, 1424, 6400, 0, 0, 32764,
14005, 6588, 3741, 2415, 6656, 0, 0, 28349, 18564, 12858, 7945, 5175, 1536, 0, 0,
32764, 23022, 15240, 8948, 5517, 0, 0, 0, 29516, 24120, 18186, 14238, 10811, 7936, 0,
0, 32764, 25827, 19449, 14282, 9663, 19200, 0, 0, 30575, 23849, 19537, 16592, 13366,
19200, 0, 0, 31811, 28541, 24089, 18716, 14228, 0, 0, 0, 31713, 27012, 23639, 20194,
17930, 6656, 0, 0, 31946, 28585, 24608, 19779, 15785, 19200, 0, 0, 30696, 25473, 20831,
16778, 13960, 23040, 0, 0, 31472, 31110, 28346, 27196, 24503, 6656, 0, 0, 31035, 28087,
25088, 22114, 20240, 19200, 0, 0, 32764, 31090, 29774, 27913, 26231, 19200, 0, 0, 7879,
874, 192, 76, 36, 1536, 0, 0, 25279, 4745, 328, 66, 36, 3072, 0, 0, 19348, 4686, 1287,
348, 75, 512, 0, 0, 32764, 8572, 2060, 422, 86, 1280, 0, 0, 18610, 6667, 2497, 1008,
402, 1280, 0, 0, 32764, 12431, 5299, 2257, 960, 1280, 0, 0, 26223, 15335, 8168, 4198,
2280, 3840, 0, 0, 32764, 18467, 9701, 5168, 2720, 0, 0, 0, 28157, 20087, 13343, 8649,
5400, 19200, 0, 0, 32762, 24003, 16357, 10578, 6346, 23040, 0, 0, 29475, 22248, 16642,
11339, 9065, 0, 0, 0, 32755, 25468, 18491, 13600, 9320, 19200, 0, 0, 30304, 25425,
20904, 17030, 14350, 23040, 0, 0, 32683, 28576, 24419, 20377, 16973, 0, 0, 0, 6602,
266, 40, 32, 28, 0, 0, 0, 28207, 1642, 95, 32, 28, 19456, 0, 0, 13092, 1787, 278, 56,
36, 19200, 0, 0, 32763, 4851, 520, 91, 36, 256, 0, 0, 17195, 4126, 850, 196, 50, 256,
0, 0, 32735, 8766, 2309, 626, 133, 20480, 0, 0, 24050, 10607, 3898, 1380, 444, 19456,
0, 0, 32731, 15707, 6388, 2335, 778, 19200, 0, 0, 28194, 19442, 12761, 8104, 5258,
19200, 0, 0, 32693, 23528, 15759, 10265, 6639, 20480, 0, 0, 27307, 21845, 16384, 10923,
5461, 0, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 27307, 21845, 16384, 10923,
5461, 0, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 27307, 21845, 16384, 10923,
5461, 0, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 27307, 21845, 16384, 10923,
5461, 0, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 27307, 21845, 16384, 10923,
5461, 0, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 27307, 21845, 16384, 10923,
5461, 0, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 27307, 21845, 16384, 10923,
5461, 0, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 27307, 21845, 16384, 10923,
5461, 0, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 27307, 21845, 16384, 10923,
5461, 0, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 27307, 21845, 16384, 10923,
5461, 0, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 27307, 21845, 16384, 10923,
5461, 0, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 27307, 21845, 16384, 10923,
5461, 0, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 16940, 5312, 2902, 1816,
1256, 15872, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 28446, 14890, 7510, 3431,
1822, 7936, 0, 0, 32764, 20783, 9466, 4811, 2273, 1536, 0, 0, 22891, 10644, 5784, 3287,
1845, 256, 0, 0, 32764, 14761, 9226, 4906, 3044, 1792, 0, 0, 27872, 16834, 12320, 9783,
7216, 1536, 0, 0, 31886, 27522, 18182, 11839, 7602, 7936, 0, 0, 29871, 21071, 16913,
12781, 10503, 256, 0, 0, 32764, 27416, 24483, 17885, 12970, 256, 0, 0, 30218, 25553,
21440, 17549, 14784, 768, 0, 0, 32764, 28498, 23875, 20730, 17767, 4608, 0, 0, 30792,
26830, 22720, 19520, 17548, 256, 0, 0, 32694, 29896, 26887, 24049, 20565, 768, 0, 0,
31211, 27586, 25081, 22727, 20238, 4608, 0, 0, 32466, 29595, 26704, 23622, 20629, 4096,
0, 0, 31727, 29933, 28156, 26149, 25067, 19200, 0, 0, 32484, 31146, 28789, 27146,
25451, 19200, 0, 0, 9309, 942, 245, 62, 36, 8192, 0, 0, 28398, 4029, 466, 70, 36, 7680,
0, 0, 18557, 5224, 1460, 516, 121, 0, 0, 0, 32764, 8315, 2218, 559, 175, 256, 0, 0,
19219, 6768, 2824, 1164, 520, 256, 0, 0, 32764, 12893, 5853, 2765, 1288, 1536, 0, 0,
26080, 14309, 8177, 4667, 2943, 256, 0, 0, 31812, 22593, 13468, 7683, 4460, 256, 0, 0,
28619, 20495, 14744, 10564, 7579, 0, 0, 0, 32764, 24861, 18153, 12255, 8491, 0, 0, 0,
29684, 23406, 18253, 13708, 10682, 0, 0, 0, 31887, 26956, 20776, 15877, 11539, 256, 0,
0, 30498, 26674, 23332, 19722, 17703, 23040, 0, 0, 32764, 30140, 26644, 23726, 21355,
256, 0, 0, 6555, 184, 53, 32, 28, 7936, 0, 0, 23173, 1593, 105, 32, 28, 20736, 0, 0,
13668, 2217, 417, 93, 36, 20480, 0, 0, 32726, 5341, 810, 128, 36, 256, 0, 0, 17861,
5365, 1761, 605, 183, 0, 0, 0, 32694, 9385, 2728, 820, 276, 1536, 0, 0, 24628, 11628,
5245, 2231, 968, 256, 0, 0, 32167, 17020, 7765, 3437, 1491, 256, 0, 0, 28890, 21538,
15473, 11032, 8114, 19200, 0, 0, 32501, 24929, 18160, 12946, 9269, 19200, 0, 0, 27307,
21845, 16384, 10923, 5461, 0, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 27307,
21845, 16384, 10923, 5461, 0, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 27307,
21845, 16384, 10923, 5461, 0, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 27307,
21845, 16384, 10923, 5461, 0, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 27307,
21845, 16384, 10923, 5461, 0, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 27307,
21845, 16384, 10923, 5461, 0, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 27307,
21845, 16384, 10923, 5461, 0, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 27307,
21845, 16384, 10923, 5461, 0, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 27307,
21845, 16384, 10923, 5461, 0, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 27307,
21845, 16384, 10923, 5461, 0, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 27307,
21845, 16384, 10923, 5461, 0, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 27307,
21845, 16384, 10923, 5461, 0, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 19449,
11686, 6043, 9472, 17710, 9205, 5456, 19200, 20675, 11216, 8387, 23296, 22921, 13854,
11157, 19456, 25784, 18561, 14784, 19200, 27188, 21141, 17357, 19200, 28861, 24178,
22085, 20736, 12910, 6269, 4030, 7936, 13160, 4641, 2339, 0, 15290, 5378, 3322, 0,
17920, 7644, 5207, 0, 21392, 11686, 8358, 19200, 23589, 14906, 10850, 23040, 26333,
19468, 15108, 19200, 15193, 19200, 18544, 19968, 12967, 23808, 16384, 0, 16384, 0,
16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 15261, 8095,
23040, 0, 13765, 7487, 23040, 0, 14050, 5623, 0, 0, 10089, 3509, 3840, 0, 8523, 2477,
0, 0, 7178, 1717, 0, 0, 5924, 1590, 1536, 0, 4244, 955, 256, 0, 3338, 671, 256, 0,
17182, 8959, 4288, 7936, 19631, 10430, 4992, 6656, 19808, 11779, 5761, 256, 18281,
10764, 5896, 256, 23791, 13262, 6936, 256, 26079, 19312, 11808, 1792, 29108, 24725,
19301, 0, 13518, 6948, 3730, 7936, 12289, 5171, 2129, 7936, 13484, 5968, 2731, 6656,
13648, 6092, 2735, 7936, 17969, 7949, 3512, 7936, 22727, 14669, 8666, 7936, 26109,
19040, 12785, 7936, 13787, 8421, 5371, 8192, 10685, 4570, 2236, 8192, 11179, 4422,
2052, 8192, 10192, 4042, 1655, 8192, 15436, 5161, 2066, 9472, 21980, 14488, 8562, 8192,
25499, 17634, 10814, 15872, 3597, 1427, 699, 768, 13671, 5269, 2902, 19200, 16108,
9229, 4382, 0, 19748, 13782, 10204, 1280, 26006, 19299, 13771, 7936, 27538, 23316,
17592, 8192, 29486, 26847, 24884, 7936, 1262, 296, 101, 19200, 12365, 3028, 1025, 768,
17830, 7845, 2684, 0, 21877, 13698, 8570, 7680, 27956, 19891, 12326, 7936, 29499,
24733, 18191, 7936, 30395, 27611, 24499, 7936, 397, 73, 23, 19200, 11170, 1719, 377, 0,
18253, 6274, 1535, 7936, 21529, 13603, 8194, 7936, 28631, 20378, 11621, 8192, 30110,
25766, 18767, 7936, 30377, 27231, 24064, 6656, 12203, 0, 4290, 6400, 24757, 3840, 1199,
14336, 22831, 7936, 602, 19968, 28408, 21248, 53, 9728, 30515, 11008, 11152, 6656,
3294, 6400, 24599, 6400, 895, 14336, 26516, 7936, 408, 4608, 30310, 0, 49, 13312,
32086, 17408, 9952, 7936, 2237, 6656, 27068, 7936, 1261, 15872, 31229, 15872, 196,
6656, 31753, 8192, 74, 8960, 32356, 9472, 31991, 23808, 25897, 19200, 17148, 0, 31622,
8960, 18768, 6400, 8192, 12800, 28232, 23040, 19733, 19200, 11013, 19200, 26862, 8960,
14232, 6400, 6302, 12800, 0, 0, 21845, 10923, 0, 0, 682, 77, 23808, 0, 230, 25, 23808,
0, 256, 38, 23808, 0, 5840, 311, 48, 19200, 16296, 2753, 573, 19200, 23169, 9863, 4143,
19200, 27902, 19152, 12333, 19200, 5057, 278, 42, 19200, 16389, 2601, 571, 19200,
23683, 10622, 4734, 256, 28875, 21409, 15203, 19200, 2110, 84, 20, 23040, 10597, 892,
132, 23040, 22042, 9233, 3575, 4352, 24576, 16384, 8192, 0, 6123, 1615, 517, 19968,
9448, 3141, 1116, 23040, 14503, 6728, 3105, 19200, 21628, 14264, 9555, 256, 0, 0, 0, 0,
1804, 305, 95, 35, 19200, 0, 0, 0, 1037, 145, 38, 28, 256, 0, 0, 0, 1889, 315, 52, 28,
4096, 0, 0, 0, 26214, 19661, 13107, 6554, 0, 0, 0, 0, 17915, 4576, 1368, 493, 211, 256,
0, 0, 22269, 7793, 2632, 965, 369, 19200, 0, 0, 27225, 17041, 10009, 5688, 3155, 19200,
0, 0, 30554, 26134, 21589, 17234, 13479, 23040, 0, 0, 17736, 4166, 1347, 534, 220, 0,
0, 0, 21911, 7885, 2883, 1165, 513, 0, 0, 0, 27700, 18493, 11789, 7284, 4430, 0, 0, 0,
30943, 27194, 23331, 19484, 15955, 23808, 0, 0, 4100, 318, 72, 32, 28, 3840, 0, 0,
15382, 1857, 383, 116, 36, 23040, 0, 0, 23297, 11774, 5478, 2256, 984, 3840, 0, 0,
25557, 19068, 13620, 9133, 6089, 0, 0, 0,
],
},
CdfCoefContext {
data: [
11325, 4096, 28080, 0, 28290, 23040, 25180, 0, 22992, 256, 18086, 256, 32347, 23040,
30129, 19456, 27733, 10240, 16384, 0, 5246, 0, 27388, 19968, 27583, 23040, 22575, 0,
19657, 256, 10522, 7936, 31451, 0, 26802, 23040, 22442, 19200, 16384, 0, 2571, 1536,
24232, 0, 25707, 19200, 16791, 1536, 15352, 1536, 4735, 1536, 30432, 0, 24501, 19456,
18964, 19456, 16384, 0, 210, 14336, 28972, 0, 28283, 19456, 15796, 8192, 14991, 9472,
2889, 8960, 29245, 256, 22429, 512, 15058, 1792, 16384, 0, 85, 23808, 26390, 8192,
19140, 512, 8222, 19456, 6243, 23040, 1097, 19200, 27732, 7936, 21559, 8192, 15732,
1792, 16384, 0, 14, 12800, 19817, 23808, 16868, 23808, 18456, 4096, 15187, 3840, 13689,
4608, 32261, 23808, 29386, 7168, 25727, 4608, 286, 20736, 13, 17408, 21143, 23808,
22403, 23808, 21528, 23808, 18908, 19200, 14099, 0, 32148, 23808, 28194, 19456, 21275,
21248, 1014, 19200, 19, 23808, 19274, 23808, 18773, 23040, 18045, 23040, 12918, 0,
8692, 256, 31952, 19200, 24757, 1536, 14011, 2816, 748, 768, 71, 9472, 19843, 23040,
18163, 20480, 17710, 19712, 9027, 4608, 7158, 1536, 31475, 1280, 20830, 256, 9777,
8192, 6330, 16640, 124, 9472, 16726, 20992, 8712, 1792, 8565, 1792, 4805, 1280, 3310,
1280, 29964, 14592, 13638, 11008, 6457, 15360, 16384, 0, 27739, 20722, 6751, 315, 7936,
0, 0, 0, 28908, 27030, 23874, 14535, 7936, 0, 0, 0, 3708, 2423, 556, 63, 6912, 0, 0, 0,
25579, 21036, 10995, 2993, 708, 7936, 0, 0, 28935, 25134, 17228, 8084, 2093, 7936, 0,
0, 6518, 4315, 1271, 172, 36, 8192, 0, 0, 29003, 26435, 19428, 11937, 3938, 479, 7936,
0, 27723, 25361, 18842, 11859, 5753, 1104, 7936, 0, 8566, 6054, 2145, 397, 40, 36,
1536, 0, 28646, 25928, 19490, 11862, 4637, 1318, 463, 7936, 28193, 26705, 21830, 15577,
9642, 4883, 1184, 7936, 9278, 6907, 2763, 672, 67, 48, 44, 256, 29194, 27085, 21164,
13157, 5424, 1916, 1216, 7936, 25571, 24819, 20354, 14766, 9653, 5344, 2377, 8192,
9385, 7021, 2922, 821, 155, 48, 44, 1536, 29015, 27134, 22621, 15229, 6295, 567, 370,
1536, 21572, 20499, 16409, 10420, 5538, 2039, 963, 8192, 10528, 8217, 3726, 1223, 270,
48, 44, 1792, 26930, 23847, 18314, 11606, 4880, 493, 344, 7936, 17391, 15848, 12125,
7593, 4182, 1474, 760, 8192, 9701, 7142, 3160, 1113, 303, 81, 52, 1792, 12404, 768, 0,
0, 21845, 10923, 0, 0, 21845, 10923, 0, 0, 21845, 10923, 0, 0, 1410, 21, 4608, 0,
21845, 10923, 0, 0, 379, 142, 19200, 0, 126, 12, 23808, 0, 139, 12, 4608, 0, 21845,
10923, 0, 0, 82, 12, 23808, 0, 42, 12, 23808, 0, 44, 12, 3840, 0, 21845, 10923, 0, 0,
68, 12, 23808, 0, 191, 12, 10240, 0, 142, 15, 22528, 0, 21845, 10923, 0, 0, 60, 12,
23808, 0, 165, 19, 23296, 0, 124, 12, 10752, 0, 14363, 2766, 213, 10240, 17944, 1560,
780, 12800, 17371, 1184, 395, 19200, 31421, 3292, 449, 16640, 24576, 16384, 8192, 0,
24576, 16384, 8192, 0, 24576, 16384, 8192, 0, 24576, 16384, 8192, 0, 24576, 16384,
8192, 0, 24576, 16384, 8192, 0, 24576, 16384, 8192, 0, 24576, 16384, 8192, 0, 24576,
16384, 8192, 0, 24576, 16384, 8192, 0, 24576, 16384, 8192, 0, 24576, 16384, 8192, 0,
24576, 16384, 8192, 0, 24576, 16384, 8192, 0, 24576, 16384, 8192, 0, 24576, 16384,
8192, 0, 24576, 16384, 8192, 0, 24576, 16384, 8192, 0, 24576, 16384, 8192, 0, 24576,
16384, 8192, 0, 24576, 16384, 8192, 0, 24576, 16384, 8192, 0, 24576, 16384, 8192, 0,
24576, 16384, 8192, 0, 24576, 16384, 8192, 0, 24576, 16384, 8192, 0, 796, 298, 20,
7168, 24576, 16384, 8192, 0, 10537, 756, 47, 10240, 24576, 16384, 8192, 0, 28087,
16384, 2341, 12800, 24576, 16384, 8192, 0, 24576, 16384, 8192, 0, 24576, 16384, 8192,
0, 24576, 16384, 8192, 0, 24576, 16384, 8192, 0, 6734, 96, 20, 23808, 20192, 593, 23,
23040, 10217, 396, 20, 23808, 32748, 1790, 50, 3840, 14963, 1488, 120, 23808, 31211,
4654, 343, 768, 19476, 4092, 621, 23808, 32213, 9279, 1535, 0, 22429, 10000, 3333,
8960, 32010, 17007, 6391, 8960, 3626, 42, 20, 3840, 15070, 145, 20, 6400, 7784, 146,
20, 23808, 32168, 979, 23, 3840, 14527, 763, 28, 19968, 29715, 3934, 195, 23808, 21186,
3212, 587, 4608, 27011, 7528, 1107, 8448, 29696, 11264, 3584, 16640, 32125, 20560,
6425, 8960, 2853, 36, 20, 19968, 8179, 27, 20, 0, 7696, 115, 21, 3840, 30002, 360, 25,
19968, 13704, 721, 80, 23040, 26560, 3074, 186, 19200, 16650, 3631, 443, 23040, 29144,
6213, 740, 1536, 24576, 16384, 8192, 0, 24576, 16384, 8192, 0, 603, 79, 20, 19200,
24576, 16384, 8192, 0, 12152, 1240, 155, 19968, 24576, 16384, 8192, 0, 15673, 3082,
279, 4608, 24576, 16384, 8192, 0, 19488, 9239, 722, 19200, 24576, 16384, 8192, 0,
31043, 29319, 1725, 0, 24576, 16384, 8192, 0, 5516, 81, 20, 0, 20518, 374, 21, 0, 9815,
423, 36, 23808, 32668, 1687, 57, 19200, 14479, 1638, 152, 23040, 31725, 5243, 475,
3840, 20738, 5412, 995, 19200, 31440, 11018, 2268, 4608, 24314, 10711, 3688, 23040,
32456, 16231, 5540, 19456, 3129, 29, 20, 0, 8309, 211, 20, 19968, 8512, 139, 20, 19200,
32182, 1105, 42, 1280, 13851, 1185, 60, 0, 31152, 4184, 298, 19200, 19113, 3223, 361,
19200, 31372, 8908, 1299, 23040, 23498, 8100, 1972, 23296, 31080, 14330, 3789, 23296,
1672, 17, 13, 0, 3826, 52, 20, 1280, 7018, 124, 20, 19200, 32303, 526, 27, 23040,
12099, 422, 27, 23040, 29883, 2778, 104, 19200, 17020, 2174, 136, 23040, 32396, 6348,
495, 23040, 22766, 6985, 1310, 20736, 31899, 12474, 2749, 23552, 255, 16, 12, 0, 24576,
16384, 8192, 0, 8212, 420, 52, 23040, 24576, 16384, 8192, 0, 13207, 2171, 307, 256,
24576, 16384, 8192, 0, 21079, 4982, 1341, 0, 24576, 16384, 8192, 0, 24576, 16384, 8192,
0, 24576, 16384, 8192, 0, 6340, 67, 20, 1280, 24284, 400, 21, 0, 10081, 361, 28, 19200,
32378, 1807, 52, 1280, 14374, 1370, 98, 19200, 31915, 5385, 468, 19200, 20030, 4728,
926, 19200, 31724, 10827, 2250, 19200, 25778, 13768, 6594, 19968, 32650, 18753, 7977,
19200, 3942, 27, 20, 7936, 13473, 255, 20, 1280, 7888, 94, 24, 19456, 30222, 1076, 27,
20480, 13209, 1274, 124, 19456, 31215, 3961, 317, 20736, 20101, 5063, 1028, 1280,
32062, 10144, 2047, 0, 25110, 11878, 4854, 19200, 32345, 16344, 7134, 23296, 1436, 16,
12, 0, 134, 38, 20, 19200, 6744, 112, 22, 19200, 26328, 751, 47, 19968, 10818, 640, 35,
23040, 30267, 2829, 229, 19200, 17231, 2670, 356, 19200, 31817, 7485, 1120, 768, 24407,
8952, 2675, 19456, 31294, 14293, 4076, 23296, 24576, 16384, 8192, 0, 24576, 16384,
8192, 0, 24576, 16384, 8192, 0, 24576, 16384, 8192, 0, 24576, 16384, 8192, 0, 24576,
16384, 8192, 0, 24576, 16384, 8192, 0, 24576, 16384, 8192, 0, 24576, 16384, 8192, 0,
24576, 16384, 8192, 0, 5429, 60, 20, 20736, 21196, 374, 20, 2048, 8890, 220, 24, 1280,
32307, 1644, 63, 0, 13442, 1276, 100, 19200, 32104, 4467, 394, 19200, 19648, 5227,
1122, 19456, 32218, 10264, 2206, 19456, 26403, 14875, 7860, 3840, 32160, 20198, 10466,
23040, 3384, 36, 20, 1536, 18951, 194, 20, 0, 8248, 243, 21, 19456, 30993, 929, 29,
1536, 13433, 1021, 80, 1536, 29202, 3888, 406, 1536, 20371, 5341, 1181, 256, 32259,
10174, 2215, 0, 25620, 13549, 6453, 19200, 32091, 19058, 9004, 19456, 1532, 16, 12,
20480, 150, 37, 20, 23040, 5700, 93, 20, 19200, 26823, 657, 24, 23040, 9916, 561, 37,
19200, 30591, 2486, 198, 19200, 18287, 3634, 634, 0, 30179, 7848, 1344, 0, 24597,
11148, 4497, 19200, 32599, 16094, 6072, 19200, 24576, 16384, 8192, 0, 24576, 16384,
8192, 0, 24576, 16384, 8192, 0, 24576, 16384, 8192, 0, 24576, 16384, 8192, 0, 24576,
16384, 8192, 0, 24576, 16384, 8192, 0, 24576, 16384, 8192, 0, 24576, 16384, 8192, 0,
24576, 16384, 8192, 0, 1267, 147, 30, 14080, 3117, 268, 70, 1536, 5564, 615, 182, 8192,
10239, 2017, 767, 7936, 15720, 5427, 2185, 3840, 20210, 8732, 4151, 1536, 23267, 13808,
7770, 3328, 2159, 355, 131, 52, 1280, 0, 0, 0, 2435, 158, 24, 20, 256, 0, 0, 0, 1701,
271, 92, 57, 256, 0, 0, 0, 706, 20, 16, 12, 9216, 0, 0, 0, 1479, 198, 54, 28, 256, 0,
0, 0, 520, 59, 24, 20, 19200, 0, 0, 0, 534, 49, 24, 20, 19200, 0, 0, 0, 319, 28, 24,
20, 768, 0, 0, 0, 1420, 262, 114, 44, 1536, 0, 0, 0, 467, 65, 24, 20, 23040, 0, 0, 0,
76, 29, 24, 20, 1792, 0, 0, 0, 12288, 6144, 4096, 2048, 12800, 0, 0, 0, 2636, 554, 214,
101, 1792, 0, 0, 0, 471, 57, 24, 20, 23040, 0, 0, 0, 26214, 19661, 13107, 6554, 0, 0,
0, 0, 26214, 19661, 13107, 6554, 0, 0, 0, 0, 4545, 1120, 457, 241, 9472, 0, 0, 0, 584,
73, 24, 20, 23040, 0, 0, 0, 26214, 19661, 13107, 6554, 0, 0, 0, 0, 26214, 19661, 13107,
6554, 0, 0, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 27307, 21845, 16384,
10923, 5461, 0, 0, 0, 32668, 16047, 4492, 1508, 370, 256, 0, 0, 32764, 25782, 9557,
3000, 876, 256, 0, 0, 26644, 12022, 6109, 2471, 678, 20480, 0, 0, 32764, 12318, 5862,
2784, 716, 10752, 0, 0, 30285, 22887, 12114, 4195, 1151, 1792, 0, 0, 28290, 27598,
12761, 3521, 1667, 3072, 0, 0, 28366, 20174, 11126, 7947, 3057, 15360, 0, 0, 32649,
20539, 16978, 10092, 5343, 7168, 0, 0, 27594, 20696, 10348, 8623, 6899, 0, 0, 0, 32040,
29855, 26943, 11651, 10194, 23040, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0,
27307, 21845, 16384, 10923, 5461, 0, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0,
27307, 21845, 16384, 10923, 5461, 0, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0,
27307, 21845, 16384, 10923, 5461, 0, 0, 0, 14543, 1706, 109, 32, 28, 7936, 0, 0, 32021,
7311, 455, 32, 28, 11008, 0, 0, 23340, 2291, 429, 100, 72, 4608, 0, 0, 32764, 11608,
1692, 107, 36, 0, 0, 0, 18512, 2965, 725, 152, 36, 19200, 0, 0, 32758, 9139, 1228, 219,
38, 8192, 0, 0, 24233, 7468, 1981, 1219, 305, 21760, 0, 0, 31417, 14019, 3716, 1520,
169, 23040, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 28913, 23130, 15420,
13493, 9638, 12800, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 27307, 21845,
16384, 10923, 5461, 0, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 27307, 21845,
16384, 10923, 5461, 0, 0, 0, 11884, 261, 28, 24, 20, 3840, 0, 0, 21329, 2051, 50, 32,
28, 21248, 0, 0, 16117, 534, 92, 32, 28, 3840, 0, 0, 29985, 3671, 265, 32, 28, 20480,
0, 0, 18649, 2945, 604, 151, 76, 3072, 0, 0, 30086, 9470, 1760, 251, 84, 22528, 0, 0,
22265, 3361, 1260, 840, 420, 6400, 0, 0, 31882, 13284, 2657, 1771, 886, 19200, 0, 0,
27307, 21845, 16384, 10923, 5461, 0, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0,
3173, 783, 215, 103, 36, 23808, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 16678,
5301, 1584, 611, 64, 256, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 20887,
10192, 6332, 1608, 663, 6912, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 27882,
10923, 8767, 4886, 4599, 15360, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 27307,
21845, 16384, 10923, 5461, 0, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 27307,
21845, 16384, 10923, 5461, 0, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 27307,
21845, 16384, 10923, 5461, 0, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 3228,
33, 28, 24, 20, 1536, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 11289, 3305,
257, 32, 28, 23808, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 17712, 6495, 2952,
590, 295, 6400, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 27307, 21845, 16384,
10923, 5461, 0, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 27307, 21845, 16384,
10923, 5461, 0, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 22249, 2368, 1377,
441, 55, 3840, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 32682, 11983, 4240,
1665, 681, 0, 0, 0, 32764, 26701, 8284, 2973, 1153, 0, 0, 0, 21899, 12179, 5814, 2441,
1263, 0, 0, 0, 32764, 17291, 6663, 3204, 1511, 256, 0, 0, 27854, 17723, 9728, 5051,
2278, 0, 0, 0, 32764, 22461, 13375, 6952, 3385, 3840, 0, 0, 29949, 22389, 15473, 9537,
5560, 19200, 0, 0, 29829, 26530, 18296, 11446, 7410, 256, 0, 0, 30258, 24196, 19047,
13118, 8153, 23296, 0, 0, 32764, 26210, 19910, 16237, 9921, 256, 0, 0, 30670, 24395,
21275, 16234, 11686, 2560, 0, 0, 32397, 29468, 24069, 18299, 13605, 19456, 0, 0, 31359,
26661, 23255, 18909, 14094, 10240, 0, 0, 30886, 29558, 24687, 19926, 15720, 21760, 0,
0, 31988, 27307, 24966, 21845, 19505, 0, 0, 0, 32231, 27933, 24710, 22024, 18801,
23040, 0, 0, 11726, 814, 101, 32, 28, 4608, 0, 0, 4632, 4480, 142, 48, 36, 14592, 0, 0,
24917, 4674, 986, 91, 36, 19968, 0, 0, 32764, 10833, 1439, 137, 36, 256, 0, 0, 20006,
6300, 1659, 354, 75, 23040, 0, 0, 32764, 11212, 3217, 719, 125, 0, 0, 0, 22748, 9902,
3510, 1312, 373, 23040, 0, 0, 32764, 15192, 5322, 1751, 365, 0, 0, 0, 25420, 13354,
5924, 2202, 827, 23040, 0, 0, 32764, 20460, 9988, 4194, 1489, 19200, 0, 0, 26311,
15028, 8571, 4183, 1866, 19968, 0, 0, 31999, 20966, 12088, 6768, 2683, 3840, 0, 0,
28143, 18696, 11808, 7380, 4330, 10240, 0, 0, 32583, 24276, 16522, 11907, 7200, 23040,
0, 0, 8277, 205, 28, 24, 20, 23040, 0, 0, 22575, 1703, 76, 32, 28, 19200, 0, 0, 14745,
1114, 85, 32, 28, 19968, 0, 0, 32764, 4539, 275, 32, 28, 0, 0, 0, 17642, 3099, 383, 51,
36, 768, 0, 0, 32764, 7458, 1023, 106, 36, 0, 0, 0, 20965, 5917, 1149, 190, 36, 23040,
0, 0, 32764, 11421, 2460, 406, 36, 19200, 0, 0, 24355, 10645, 3866, 1314, 284, 23296,
0, 0, 32235, 16953, 5935, 1677, 430, 256, 0, 0, 1917, 196, 66, 32, 28, 0, 0, 0, 27307,
21845, 16384, 10923, 5461, 0, 0, 0, 16870, 3076, 612, 195, 46, 19200, 0, 0, 27307,
21845, 16384, 10923, 5461, 0, 0, 0, 23493, 11737, 5176, 1673, 509, 19968, 0, 0, 27307,
21845, 16384, 10923, 5461, 0, 0, 0, 25182, 15904, 9986, 5096, 2491, 21248, 0, 0, 27307,
21845, 16384, 10923, 5461, 0, 0, 0, 27989, 18432, 11264, 7509, 5461, 6400, 0, 0, 27307,
21845, 16384, 10923, 5461, 0, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 27307,
21845, 16384, 10923, 5461, 0, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 27307,
21845, 16384, 10923, 5461, 0, 0, 0, 735, 24, 20, 16, 12, 768, 0, 0, 27307, 21845,
16384, 10923, 5461, 0, 0, 0, 10863, 1086, 79, 32, 28, 19200, 0, 0, 27307, 21845, 16384,
10923, 5461, 0, 0, 0, 16545, 4458, 825, 103, 64, 512, 0, 0, 27307, 21845, 16384, 10923,
5461, 0, 0, 0, 22181, 7310, 2773, 756, 252, 19200, 0, 0, 27307, 21845, 16384, 10923,
5461, 0, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 27307, 21845, 16384, 10923,
5461, 0, 0, 0, 12024, 1195, 336, 193, 36, 9472, 0, 0, 30720, 8192, 6144, 4096, 2048,
12800, 0, 0, 31256, 11985, 4231, 1535, 738, 0, 0, 0, 32764, 23082, 7303, 2943, 1099, 0,
0, 0, 21350, 9889, 4325, 2179, 1077, 0, 0, 0, 32764, 14157, 5797, 2588, 1279, 256, 0,
0, 26837, 17875, 11454, 6467, 3638, 0, 0, 0, 32764, 22283, 12708, 6041, 2804, 512, 0,
0, 28257, 21392, 15644, 10440, 6238, 23040, 0, 0, 32659, 28218, 19550, 12907, 8190,
1536, 0, 0, 30366, 23576, 18384, 13463, 9778, 19200, 0, 0, 32764, 27445, 22222, 16786,
11920, 19456, 0, 0, 29738, 24699, 20174, 15560, 12057, 768, 0, 0, 32764, 28543, 23071,
18449, 14522, 19200, 0, 0, 30545, 26399, 22482, 19173, 14445, 21248, 0, 0, 32593,
29807, 25394, 21013, 17158, 768, 0, 0, 31401, 26588, 23109, 19612, 17224, 23040, 0, 0,
32263, 30328, 26424, 22484, 19120, 23552, 0, 0, 10445, 648, 182, 45, 36, 1536, 0, 0,
4091, 4061, 195, 32, 28, 7936, 0, 0, 23701, 4307, 965, 122, 36, 23040, 0, 0, 32764,
9055, 1268, 140, 36, 1536, 0, 0, 18328, 5306, 1498, 368, 97, 19200, 0, 0, 32764, 11078,
3939, 1138, 315, 1280, 0, 0, 24707, 11800, 4918, 2109, 820, 23808, 0, 0, 32764, 16022,
6860, 2791, 936, 1280, 0, 0, 26948, 16317, 8985, 4475, 2113, 23040, 0, 0, 32764, 21772,
12160, 6071, 2726, 1280, 0, 0, 27915, 18391, 11815, 6975, 3731, 19200, 0, 0, 32764,
22656, 14404, 8060, 4149, 19200, 0, 0, 29240, 21839, 15184, 9759, 6139, 19968, 0, 0,
32763, 24591, 16847, 11241, 7269, 19200, 0, 0, 8011, 149, 28, 24, 20, 256, 0, 0, 23931,
1669, 80, 32, 28, 19968, 0, 0, 12993, 1021, 101, 32, 28, 19200, 0, 0, 32764, 3835, 257,
36, 32, 0, 0, 0, 15663, 2780, 416, 64, 36, 19200, 0, 0, 32763, 6656, 1027, 135, 36, 0,
0, 0, 22137, 7877, 2270, 601, 130, 23808, 0, 0, 32764, 11806, 2888, 551, 79, 19456, 0,
0, 25509, 13205, 5914, 2309, 733, 23040, 0, 0, 32607, 19081, 8726, 3443, 1107, 19200,
0, 0, 1525, 151, 44, 32, 28, 19200, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0,
16997, 2954, 592, 150, 49, 23040, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0,
23777, 12433, 5762, 2230, 848, 256, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0,
21764, 15879, 10238, 6477, 4074, 8192, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0,
30720, 28672, 16384, 12288, 4096, 12800, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0,
0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0,
0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0,
0, 393, 24, 20, 16, 12, 19200, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 10915,
620, 49, 32, 28, 23040, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 18668, 4172,
918, 209, 83, 21760, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 21448, 7149,
3575, 1192, 596, 19200, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 27307, 21845,
16384, 10923, 5461, 0, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 15182, 3519,
1814, 1131, 825, 15360, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 26161, 13548,
5519, 1701, 753, 3840, 0, 0, 32764, 20075, 7636, 2708, 1033, 0, 0, 0, 21550, 9712,
3793, 1479, 723, 1280, 0, 0, 32764, 16157, 6368, 3863, 2116, 256, 0, 0, 27795, 17122,
10239, 5748, 2534, 19200, 0, 0, 32764, 20982, 13948, 7173, 4107, 19200, 0, 0, 27774,
21763, 15652, 9575, 7283, 0, 0, 0, 32758, 26948, 18535, 13290, 8402, 19200, 0, 0,
31441, 23950, 17410, 13799, 10243, 6400, 0, 0, 31251, 26858, 21643, 16419, 11177, 0, 0,
0, 32645, 27703, 21428, 17618, 15546, 4096, 0, 0, 30982, 26911, 21961, 18477, 12857,
19200, 0, 0, 29840, 25015, 19837, 15685, 12258, 19200, 0, 0, 32219, 30095, 27055,
24996, 20089, 768, 0, 0, 31643, 28162, 23463, 20837, 17884, 3328, 0, 0, 32756, 29059,
26710, 23991, 20836, 21760, 0, 0, 13093, 1483, 244, 70, 36, 2816, 0, 0, 21313, 6028,
489, 51, 36, 768, 0, 0, 22423, 4557, 963, 124, 36, 768, 0, 0, 32764, 9491, 1559, 223,
36, 2048, 0, 0, 19209, 6420, 1738, 424, 115, 1536, 0, 0, 32764, 12919, 4305, 1447, 464,
21248, 0, 0, 25219, 12280, 5610, 2335, 865, 19200, 0, 0, 32764, 17581, 8275, 3489,
1501, 0, 0, 0, 27849, 17698, 10432, 5550, 2976, 19200, 0, 0, 32472, 23208, 14188, 8128,
4197, 19200, 0, 0, 28319, 19990, 11829, 5924, 3851, 1280, 0, 0, 32764, 23949, 16469,
11496, 7263, 19200, 0, 0, 30106, 23797, 17334, 11832, 8526, 19712, 0, 0, 32763, 25398,
19723, 15003, 11082, 23040, 0, 0, 9392, 154, 28, 24, 20, 1280, 0, 0, 25516, 1712, 70,
32, 28, 19968, 0, 0, 13810, 1208, 113, 32, 28, 23040, 0, 0, 32761, 4046, 247, 40, 36,
19456, 0, 0, 17243, 3335, 544, 86, 36, 23040, 0, 0, 32763, 7389, 1160, 170, 36, 256, 0,
0, 22635, 8097, 2109, 474, 64, 19200, 0, 0, 32574, 13754, 4348, 1272, 295, 19200, 0, 0,
26731, 14869, 7191, 3284, 1322, 19200, 0, 0, 32093, 20352, 10557, 4737, 2177, 19200, 0,
0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0,
0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0,
0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0,
0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0,
0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0,
0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0,
0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0,
0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0,
0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0,
0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0,
0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0,
0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0,
0, 12608, 4465, 1758, 833, 509, 16640, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0,
26381, 11637, 4117, 1382, 532, 13056, 0, 0, 32764, 18425, 6963, 2382, 790, 1280, 0, 0,
21974, 9117, 4354, 2254, 1145, 6656, 0, 0, 32764, 13976, 6423, 2926, 1335, 6656, 0, 0,
25518, 13911, 9023, 6274, 3583, 7936, 0, 0, 32709, 26834, 16048, 7228, 3958, 13056, 0,
0, 27915, 19325, 13423, 9384, 6727, 0, 0, 0, 32764, 25638, 20420, 13836, 8595, 19200,
0, 0, 30101, 23115, 18905, 13951, 11008, 256, 0, 0, 32764, 27291, 22116, 16628, 13174,
256, 0, 0, 30173, 24850, 19742, 14948, 12761, 19712, 0, 0, 32260, 29658, 25398, 22203,
18064, 512, 0, 0, 30807, 26402, 23292, 20474, 17519, 23040, 0, 0, 32015, 30168, 26044,
21891, 18603, 3840, 0, 0, 31348, 28412, 26148, 23831, 21771, 23040, 0, 0, 32648, 30791,
28270, 25782, 23022, 19200, 0, 0, 12027, 830, 140, 40, 36, 8960, 0, 0, 23351, 4681,
332, 67, 36, 768, 0, 0, 20420, 4269, 792, 162, 48, 0, 0, 0, 32764, 8389, 1647, 370, 84,
0, 0, 0, 19493, 5994, 1929, 591, 233, 4096, 0, 0, 32764, 11339, 3881, 1315, 499, 6656,
0, 0, 25389, 11562, 5207, 2242, 1055, 256, 0, 0, 32065, 20435, 9890, 4228, 1908, 256,
0, 0, 27552, 17372, 10584, 5883, 3506, 19200, 0, 0, 32744, 23102, 14409, 8069, 4762, 0,
0, 0, 28436, 20177, 13852, 9047, 5952, 768, 0, 0, 32269, 25768, 18430, 13451, 9318, 0,
0, 0, 29174, 23212, 18432, 13678, 10446, 19200, 0, 0, 32751, 29196, 23480, 19444,
17031, 0, 0, 0, 8759, 231, 28, 24, 20, 19200, 0, 0, 22674, 1302, 62, 32, 28, 0, 0, 0,
13450, 1077, 92, 32, 28, 20480, 0, 0, 32449, 4184, 456, 49, 36, 19200, 0, 0, 16871,
3317, 625, 120, 36, 19200, 0, 0, 32549, 7666, 1297, 280, 36, 19200, 0, 0, 22722, 8052,
2311, 713, 196, 0, 0, 0, 32265, 14006, 4493, 1239, 330, 19200, 0, 0, 27370, 16740,
9467, 5341, 2826, 19456, 0, 0, 32271, 21620, 12753, 7207, 3809, 19456, 0, 0, 27307,
21845, 16384, 10923, 5461, 0, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 27307,
21845, 16384, 10923, 5461, 0, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 27307,
21845, 16384, 10923, 5461, 0, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 27307,
21845, 16384, 10923, 5461, 0, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 27307,
21845, 16384, 10923, 5461, 0, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 27307,
21845, 16384, 10923, 5461, 0, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 27307,
21845, 16384, 10923, 5461, 0, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 27307,
21845, 16384, 10923, 5461, 0, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 27307,
21845, 16384, 10923, 5461, 0, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 27307,
21845, 16384, 10923, 5461, 0, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 27307,
21845, 16384, 10923, 5461, 0, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 27307,
21845, 16384, 10923, 5461, 0, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0, 18803,
11789, 6250, 15872, 15351, 6425, 3334, 1536, 18199, 8304, 4972, 1536, 20236, 9945,
7097, 2816, 24182, 15477, 10943, 1536, 26442, 19650, 14861, 1536, 28662, 23595, 20145,
3840, 8593, 3501, 1566, 8960, 10277, 2665, 1105, 256, 12807, 3497, 1610, 1536, 15745,
5666, 2858, 1536, 18871, 9237, 5317, 256, 21535, 13006, 8077, 1792, 25390, 18223,
12834, 1792, 12660, 256, 18093, 0, 12221, 23808, 16384, 0, 16384, 0, 16384, 0, 16384,
0, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 16384, 0, 12557, 1351, 1280, 0, 10768, 2459,
1280, 0, 8149, 737, 8192, 0, 7356, 915, 8192, 0, 5966, 1485, 8192, 0, 3564, 677, 8192,
0, 2420, 135, 8192, 0, 1674, 82, 10240, 0, 1103, 104, 1792, 0, 451, 301, 150, 15872,
24576, 16384, 8192, 0, 6144, 4096, 2048, 12800, 669, 446, 223, 12800, 24576, 16384,
8192, 0, 24576, 16384, 8192, 0, 24576, 16384, 8192, 0, 1484, 286, 132, 15872, 853, 244,
41, 15872, 566, 87, 44, 15360, 527, 51, 20, 15360, 2704, 157, 31, 15872, 3416, 374, 53,
15872, 10892, 1489, 465, 15360, 685, 98, 49, 15360, 614, 137, 68, 15360, 818, 82, 41,
15360, 352, 34, 20, 15360, 933, 65, 22, 15872, 1827, 186, 31, 15360, 4080, 219, 44,
15360, 1742, 325, 20, 6400, 10230, 1517, 50, 1280, 10540, 6474, 141, 0, 11865, 9455,
6906, 9728, 21141, 16701, 423, 6400, 24576, 16384, 8192, 0, 24576, 16384, 8192, 0, 951,
187, 33, 6400, 13269, 1749, 118, 0, 18858, 8558, 344, 7936, 20054, 12582, 3175, 15872,
27946, 20120, 3259, 8192, 30388, 25317, 15994, 19200, 29696, 21977, 17093, 12800, 283,
34, 20, 19200, 13709, 759, 43, 0, 23459, 4020, 284, 8192, 27046, 15476, 3232, 15872,
30582, 24131, 6632, 14592, 30817, 26889, 17109, 8448, 30602, 27073, 21177, 9216, 14290,
7936, 2358, 6656, 29494, 4096, 16384, 0, 16384, 0, 630, 0, 32071, 12800, 16384, 0,
16384, 0, 8249, 8192, 196, 6656, 32115, 3328, 364, 12800, 16384, 0, 15, 21248, 32690,
22016, 156, 12800, 16384, 0, 5003, 15872, 45, 19968, 32400, 7936, 630, 12800, 30247,
12800, 4, 8960, 32746, 13568, 191, 12800, 16384, 0, 32162, 23040, 26459, 0, 19071, 256,
31967, 2560, 21875, 6400, 12873, 12800, 26547, 19456, 19048, 19200, 12629, 19200,
25435, 15360, 12723, 6400, 8283, 12800, 0, 0, 21845, 10923, 0, 0, 781, 71, 23808, 0,
106, 12, 23040, 0, 281, 70, 15360, 0, 6638, 376, 42, 19200, 19038, 3142, 515, 19200,
23326, 9231, 3516, 1536, 28513, 18782, 11580, 8960, 8483, 735, 109, 0, 20814, 4668,
1005, 19200, 25369, 13329, 6333, 1280, 28672, 20687, 13429, 19712, 2185, 874, 437,
23040, 13863, 1260, 630, 6400, 24576, 16384, 8192, 0, 24576, 16384, 8192, 0, 5791,
1170, 404, 12800, 8047, 2193, 644, 23808, 13965, 6109, 2158, 23040, 21011, 12383, 7484,
1280, 0, 0, 0, 0, 1423, 257, 92, 43, 19456, 0, 0, 0, 828, 355, 237, 118, 12800, 0, 0,
0, 26214, 19661, 13107, 6554, 0, 0, 0, 0, 26214, 19661, 13107, 6554, 0, 0, 0, 0, 24782,
8284, 2298, 645, 290, 3072, 0, 0, 26383, 10500, 2987, 884, 289, 1536, 0, 0, 28205,
18431, 10391, 5241, 2137, 19200, 0, 0, 31000, 26865, 22038, 16135, 11328, 23040, 0, 0,
25214, 10341, 3510, 1293, 382, 1280, 0, 0, 26559, 12074, 3982, 1324, 438, 23040, 0, 0,
28583, 20407, 12881, 7029, 3277, 23808, 0, 0, 31185, 27312, 23066, 17398, 12294, 23040,
0, 0, 2585, 452, 194, 129, 65, 23040, 0, 0, 17621, 1039, 247, 99, 49, 8960, 0, 0,
27307, 21845, 16384, 10923, 5461, 0, 0, 0, 27307, 21845, 16384, 10923, 5461, 0, 0, 0,
],
},
];
pub fn cdf_thread_init_static_qcat(qidx: u32) -> u32 {
(qidx > 90) as u32 + (qidx > 140) as u32 + (qidx > 190) as u32
}
impl CdfContext {
pub fn init_from_defaults(qcat: usize) -> Self {
Self {
coef: DEFAULT_COEF_CDF[qcat].clone(),
m: DEFAULT_CDF.m.clone(),
mv: DEFAULT_CDF.mv.clone(),
dmv: DEFAULT_CDF.mv.clone(),
}
}
pub fn shift(&mut self, src: &CdfContext, n_tiles_log2: u32) {
let s = n_tiles_log2;
visit_mode_kf_entries(|o, n| entry_shift(&mut self.m.data, &src.m.data, o, n, s));
visit_coef_entries(|o, n| entry_shift(&mut self.coef.data, &src.coef.data, o, n, s));
visit_mv_entries(|o, n| entry_shift(&mut self.dmv.data, &src.dmv.data, o, n, s));
visit_mode_nonkf_entries(|o, n| entry_shift(&mut self.m.data, &src.m.data, o, n, s));
visit_mv_entries(|o, n| entry_shift(&mut self.mv.data, &src.mv.data, o, n, s));
}
pub fn shift_accumulate(&mut self, src: &CdfContext, n_tiles_log2: u32) {
let s = n_tiles_log2;
visit_mode_kf_entries(|o, n| entry_shift_acc(&mut self.m.data, &src.m.data, o, n, s));
visit_coef_entries(|o, n| entry_shift_acc(&mut self.coef.data, &src.coef.data, o, n, s));
visit_mv_entries(|o, n| entry_shift_acc(&mut self.dmv.data, &src.dmv.data, o, n, s));
visit_mode_nonkf_entries(|o, n| entry_shift_acc(&mut self.m.data, &src.m.data, o, n, s));
visit_mv_entries(|o, n| entry_shift_acc(&mut self.mv.data, &src.mv.data, o, n, s));
}
pub fn reset_count(&mut self, is_key_or_intra: bool) {
visit_mode_kf_entries(|o, n| entry_reset_count(&mut self.m.data, o, n));
visit_coef_entries(|o, n| entry_reset_count(&mut self.coef.data, o, n));
visit_mv_entries(|o, n| entry_reset_count(&mut self.dmv.data, o, n));
if !is_key_or_intra {
visit_mode_nonkf_entries(|o, n| entry_reset_count(&mut self.m.data, o, n));
visit_mv_entries(|o, n| entry_reset_count(&mut self.mv.data, o, n));
}
}
pub fn pri_sec_average(
&mut self,
src1_m: &CdfModeContext,
src1_coef: &CdfCoefContext,
src1_mv: &CdfMvContext,
src1_dmv: &CdfMvContext,
src2_m: &CdfModeContext,
src2_coef: &CdfCoefContext,
src2_mv: &CdfMvContext,
src2_dmv: &CdfMvContext,
) {
fn avg(dst: &mut [u16], s1: &[u16], s2: &[u16]) {
for i in 0..dst.len() {
dst[i] = ((s1[i] as u32 * 7 + s2[i] as u32 + 4) >> 3) as u16;
}
}
avg(&mut self.m.data, &src1_m.data, &src2_m.data);
avg(&mut self.coef.data, &src1_coef.data, &src2_coef.data);
avg(&mut self.mv.data, &src1_mv.data, &src2_mv.data);
avg(&mut self.dmv.data, &src1_dmv.data, &src2_dmv.data);
}
}
#[inline(always)]
fn entry_shift(dst: &mut [u16], src: &[u16], off: usize, n1d: usize, shift: u32) {
for n in 0..n1d {
dst[off + n] = src[off + n] >> shift;
}
let cp = off + n1d;
let [count, para] = src[cp].to_ne_bytes();
dst[cp] = u16::from_ne_bytes([count >> shift, para]);
}
#[inline(always)]
fn entry_shift_acc(dst: &mut [u16], src: &[u16], off: usize, n1d: usize, shift: u32) {
for n in 0..n1d {
dst[off + n] += src[off + n] >> shift;
}
let cp = off + n1d;
let src_count = src[cp].to_ne_bytes()[0];
let mut bytes = dst[cp].to_ne_bytes();
bytes[0] = bytes[0].wrapping_add(src_count >> shift);
dst[cp] = u16::from_ne_bytes(bytes);
}
#[inline(always)]
fn entry_reset_count(data: &mut [u16], off: usize, n1d: usize) {
let cp = off + n1d;
let mut bytes = data[cp].to_ne_bytes();
bytes[0] = ((bytes[0] as u16 * 3) >> 2) as u8;
data[cp] = u16::from_ne_bytes(bytes);
}
fn visit_mv_entries(mut f: impl FnMut(usize, usize)) {
for j in 0..7usize {
f(j * 8, (9 + j) >> 1);
} for j in 0..7usize {
f(56 + j * 8, (10 + j).min(14) >> 1);
} f(112, 1); f(114, 1); for j in 0..2 {
f(116 + j * 2, 1);
} f(120, 1); for j in 0..16 {
f(122 + j * 2, 1);
} for j in 0..2 {
f(154 + j * 2, 1);
} for j in 0..4 {
f(158 + j * 2, 1);
} }
fn visit_mode_kf_entries(mut f: impl FnMut(usize, usize)) {
for j in 0..2 {
f(j * 2, 1);
} f(6, 1); f(4, 1); for j in 0..2 {
f(8 + j * 2, 1);
} f(12, 1); f(16, 3); for i in 0..2 {
for j in 0..64 {
f(20 + i * 128 + j * 2, 1);
}
} for j in 0..8 {
f(276 + j * 2, 1);
} for i in 0..2 {
for j in 0..64 {
f(292 + i * 128 + j * 2, 1);
}
} for i in 0..2 {
for j in 0..64 {
f(548 + i * 128 + j * 2, 1);
}
} for i in 0..2 {
for j in 0..64 {
f(804 + i * 128 + j * 2, 1);
}
} for j in 0..3 {
f(1068 + j * 2, 1);
} f(1074, 1); for j in 0..4 {
f(1076 + j * 2, 1);
} for j in 0..6 {
f(1088 + j * 8, 1 + j);
} for i in 0..3 {
for j in 0..4 {
f(1136 + i * 8 + j * 2, 1);
}
} for j in 0..6 {
f(1160 + j * 2, 1);
} for j in 0..2 {
f(1172 + j * 2, 1);
} for j in 0..2 {
f(1176 + j * 2, 1);
} f(1180, 3); for j in 0..3 {
f(1184 + j * 8, 7);
} for j in 0..3 {
f(1208 + j * 8, 5);
} for i in 0..4 {
for j in 0..6 {
f(1232 + i * 12 + j * 2, 1);
}
} for j in 0..3 {
f(1280 + j * 4, 3);
} for j in 0..3 {
f(1292 + j * 2, 1);
} f(1298, 1); f(1304, 6); for j in 0..3 {
f(1312 + j * 2, 1);
} f(1320, 5); for j in 0..3 {
f(1328 + j * 2, 1);
} for j in 0..2 {
f(1336 + j * 8, 7);
} f(1352, 1); for j in 0..4 {
f(1356 + j * 4, 2);
} f(1372, 1); f(1376, 7); for j in 0..6 {
f(1384 + j * 8, 7);
} for j in 0..4 {
f(1432 + j * 4, 2);
} for k in 0..7 {
for j in 0..5 {
f(1448 + k * 40 + j * 8, k + 1);
}
} f(1728, 1); f(1730, 1); for j in 0..3 {
f(1732 + j * 2, 1);
} for i in 0..4 {
for j in 0..2 {
f(1738 + i * 4 + j * 2, 1);
}
} for i in 0..2 {
for j in 0..2 {
for k in 0..9 {
f(1754 + i * 36 + j * 18 + k * 2, 1);
}
}
} for i in 0..2 {
for j in 0..2 {
for k in 0..14 {
f(1832 + i * 224 + j * 112 + k * 8, 6);
}
}
} for i in 0..2 {
for j in 0..2 {
for k in 0..2 {
f(2280 + i * 8 + j * 4 + k * 2, 1);
}
}
} f(2296, 1); for j in 0..2 {
f(2298 + j * 2, 1);
} for j in 0..4 {
f(2304 + j * 4, 3);
} for i in 0..3 {
for j in 0..4 {
f(2320 + i * 16 + j * 4, 3);
}
} for j in 0..4 {
f(2368 + j * 8, 6);
} for j in 0..4 {
f(2400 + j * 2, 1);
} for i in 0..2 {
for j in 0..3 {
for k in 0..4 {
f(2408 + i * 24 + j * 8 + k * 2, 1);
}
}
} for i in 0..2 {
for j in 0..3 {
f(2456 + i * 24 + j * 8, 7);
}
} for j in 0..3 {
f(2504 + j * 8, 7);
} for j in 0..3 {
f(2528 + j * 4, 3);
} for i in 0..3 {
for j in 0..4 {
f(2540 + i * 8 + j * 2, 1);
}
} for i in 0..3 {
for j in 0..4 {
f(2564 + i * 16 + j * 4, 3);
}
} for i in 0..2 {
for j in 0..5 {
f(2612 + i * 20 + j * 4, 3);
}
} f(2652, 3); f(2656, 6); f(2664, 6); for j in 0..3 {
f(2672 + j * 2, 1);
} for i in 0..2 {
for j in 0..3 {
f(2680 + i * 24 + j * 8, 7);
}
} f(2728, 7); }
fn visit_mode_nonkf_entries(mut f: impl FnMut(usize, usize)) {
for j in 0..4 {
f(1060 + j * 2, 1);
} for j in 0..3 {
f(2736 + j * 2, 1);
} for j in 0..3 {
f(2742 + j * 2, 1);
} for j in 0..4 {
f(2748 + j * 2, 1);
} for j in 0..3 {
f(2756 + j * 2, 1);
} for j in 0..5 {
f(2762 + j * 2, 1);
} for i in 0..3 {
for j in 0..6 {
f(2772 + i * 12 + j * 2, 1);
}
} for i in 0..3 {
for j in 0..6 {
f(2808 + i * 12 + j * 2, 1);
}
} for i in 0..3 {
for j in 0..2 {
for k in 0..6 {
f(2844 + i * 24 + j * 12 + k * 2, 1);
}
}
} f(2916, 1); for j in 0..5 {
f(2918 + j * 2, 1);
} f(2928, 1); for j in 0..5 {
f(2932 + j * 4, 2);
} for i in 0..9 {
for j in 0..3 {
f(2952 + i * 6 + j * 2, 1);
}
} for j in 0..2 {
f(3006 + j * 2, 1);
} for j in 0..3 {
f(3010 + j * 2, 1);
} f(3016, 1); for j in 0..3 {
f(3018 + j * 2, 1);
} for j in 0..4 {
f(3024 + j * 2, 1);
} for j in 0..4 {
f(3032 + j * 2, 1);
} for j in 0..4 {
f(3040 + j * 4, 3);
} f(3056, 1); f(3060, 3); for j in 0..4 {
f(3064 + j * 8, 4);
} f(3096, 2); f(3100, 3); for j in 0..3 {
f(3104 + j * 2, 1);
} f(3112, 2); f(3120, 4); for i in 0..3 {
for j in 0..5 {
f(3128 + i * 10 + j * 2, 1);
}
} for j in 0..3 {
f(3158 + j * 2, 1);
} for i in 0..2 {
for j in 0..3 {
f(3164 + i * 12 + j * 4, 2);
}
} for j in 0..3 {
f(3188 + j * 2, 1);
} f(3196, 3); for j in 0..2 {
f(3200 + j * 8, 7);
} f(3216, 1); for j in 0..31 {
f(3218 + j * 2, 1);
}
for i in 0..2 {
for j in 0..2 {
f(3280 + i * 16 + j * 8, 7);
}
} f(3312, 1); for j in 0..4 {
f(3314 + j * 2, 1);
} for j in 0..5 {
f(3324 + j * 4, 3);
} for j in 0..2 {
f(3344 + j * 2, 1);
} for j in 0..5 {
f(3352 + j * 8, 4);
} for j in 0..2 {
f(3392 + j * 2, 1);
} for j in 0..11 {
f(3396 + j * 2, 1);
} for j in 0..12 {
f(3418 + j * 2, 1);
} f(3442, 1); for j in 0..4 {
f(3444 + j * 2, 1);
} for j in 0..8 {
f(3452 + j * 4, 2);
} for j in 0..3 {
f(3484 + j * 2, 1);
} }
fn visit_coef_entries(mut f: impl FnMut(usize, usize)) {
for i in 0..2 {
for j in 0..5 {
for k in 0..10 {
f(i * 100 + j * 20 + k * 2, 1);
}
}
}
for j in 0..3 {
f(200 + j * 8, 4);
} for j in 0..3 {
f(224 + j * 8, 5);
} for j in 0..3 {
f(248 + j * 8, 6);
} for j in 0..3 {
f(272 + j * 8, 7);
} for j in 0..3 {
f(296 + j * 8, 7);
} for j in 0..3 {
f(320 + j * 8, 7);
} for j in 0..3 {
f(344 + j * 8, 7);
} f(368, 1); for i in 0..5 {
for j in 0..4 {
f(372 + i * 16 + j * 4, 2);
}
}
for i in 0..5 {
for j in 0..20 {
for k in 0..2 {
f(452 + i * 160 + j * 8 + k * 4, 3);
}
}
}
for j in 0..7 {
f(1252 + j * 4, 3);
} for i in 0..5 {
for j in 0..4 {
f(1280 + i * 32 + j * 8, 4);
}
}
for i in 0..5 {
for j in 0..33 {
for k in 0..2 {
f(1440 + i * 528 + j * 16 + k * 8, 5);
}
}
}
for j in 0..14 {
f(4080 + j * 4, 3);
} for i in 0..2 {
for j in 0..2 {
for k in 0..3 {
f(4136 + i * 12 + j * 6 + k * 2, 1);
}
}
}
for i in 0..3 {
for j in 0..3 {
f(4160 + i * 12 + j * 4, 2);
}
}
for i in 0..3 {
for j in 0..7 {
f(4196 + i * 28 + j * 4, 3);
}
}
for i in 0..3 {
for j in 0..7 {
f(4280 + i * 28 + j * 4, 3);
}
}
for i in 0..3 {
for j in 0..9 {
f(4364 + i * 18 + j * 2, 1);
}
}
for j in 0..12 {
f(4418 + j * 2, 1);
} for j in 0..4 {
f(4444 + j * 4, 2);
} for j in 0..12 {
f(4460 + j * 4, 3);
} for j in 0..4 {
f(4508 + j * 4, 3);
} for j in 0..4 {
f(4528 + j * 8, 4);
} for j in 0..12 {
f(4560 + j * 8, 5);
} }
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_cdf_struct_sizes() {
assert_eq!(std::mem::size_of::<CdfModeContext>(), 6992);
assert_eq!(std::mem::size_of::<CdfCoefContext>(), 9312);
assert_eq!(std::mem::size_of::<CdfMvContext>(), 336);
assert_eq!(std::mem::size_of::<CdfDefaultContext>(), 7328);
}
#[test]
fn test_default_cdf_first_values() {
assert_eq!(DEFAULT_CDF.m.data[0], 7226);
assert_eq!(DEFAULT_CDF.m.data[1], 15872);
assert_eq!(DEFAULT_CDF.mv.data[0], 28308);
}
#[test]
fn test_qcat_calculation() {
assert_eq!(cdf_thread_init_static_qcat(50), 0);
assert_eq!(cdf_thread_init_static_qcat(100), 1);
assert_eq!(cdf_thread_init_static_qcat(150), 2);
assert_eq!(cdf_thread_init_static_qcat(200), 3);
}
#[test]
fn test_init_from_defaults() {
let ctx = CdfContext::init_from_defaults(0);
assert_eq!(ctx.m.data[0], 7226);
assert_eq!(ctx.coef.data[0], 7009);
}
fn make_count_para(count: u8, para: u8) -> u16 {
u16::from_ne_bytes([count, para])
}
#[test]
fn test_entry_shift_probs_and_count() {
let mut dst = [0u16; 4];
let src = [1000, 2000, 3000, make_count_para(80, 5)];
entry_shift(&mut dst, &src, 0, 3, 2);
assert_eq!(dst[0], 250);
assert_eq!(dst[1], 500);
assert_eq!(dst[2], 750);
let [count, para] = dst[3].to_ne_bytes();
assert_eq!(count, 20);
assert_eq!(para, 5);
}
#[test]
fn test_entry_shift_acc_accumulates() {
let mut dst = [100u16, 200, make_count_para(10, 7)];
let src = [400u16, 800, make_count_para(40, 7)];
entry_shift_acc(&mut dst, &src, 0, 2, 1);
assert_eq!(dst[0], 300);
assert_eq!(dst[1], 600);
let [count, para] = dst[2].to_ne_bytes();
assert_eq!(count, 30);
assert_eq!(para, 7);
}
#[test]
fn test_entry_reset_count() {
let mut data = [1000u16, make_count_para(100, 12)];
entry_reset_count(&mut data, 0, 1);
assert_eq!(data[0], 1000);
let [count, para] = data[1].to_ne_bytes();
assert_eq!(count, 75);
assert_eq!(para, 12);
}
#[test]
fn test_visit_mv_entry_count() {
let mut count = 0usize;
visit_mv_entries(|_off, _n1d| count += 1);
assert_eq!(count, 7 + 7 + 1 + 1 + 2 + 1 + 16 + 2 + 4);
}
#[test]
fn test_visit_mv_shell_lower_n1d() {
let mut entries = Vec::new();
visit_mv_entries(|off, n1d| entries.push((off, n1d)));
assert_eq!(entries[0], (0, 4)); assert_eq!(entries[1], (8, 5)); assert_eq!(entries[6], (48, 7)); }
#[test]
fn test_visit_mv_no_out_of_bounds() {
visit_mv_entries(|off, n1d| {
assert!(
off + n1d < 168,
"MV entry off={off} n1d={n1d} exceeds array size 168"
);
});
}
#[test]
fn test_visit_mode_kf_no_out_of_bounds() {
visit_mode_kf_entries(|off, n1d| {
assert!(
off + n1d < 3496,
"Mode kf entry off={off} n1d={n1d} exceeds 3496"
);
});
}
#[test]
fn test_visit_mode_nonkf_no_out_of_bounds() {
visit_mode_nonkf_entries(|off, n1d| {
assert!(
off + n1d < 3496,
"Mode nonkf entry off={off} n1d={n1d} exceeds 3496"
);
});
}
#[test]
fn test_visit_coef_no_out_of_bounds() {
visit_coef_entries(|off, n1d| {
assert!(
off + n1d < 4656,
"Coef entry off={off} n1d={n1d} exceeds 4656"
);
});
}
#[test]
fn test_cdf_shift_from_defaults() {
let src = CdfContext::init_from_defaults(0);
let mut dst = CdfContext::init_from_defaults(0);
dst.shift(&src, 1);
assert_eq!(dst.m.data[0], src.m.data[0] >> 1);
assert_eq!(dst.coef.data[0], src.coef.data[0] >> 1);
}
#[test]
fn test_cdf_shift_accumulate_from_defaults() {
let src = CdfContext::init_from_defaults(0);
let mut dst = CdfContext::init_from_defaults(0);
let orig_m0 = dst.m.data[0];
let orig_c0 = dst.coef.data[0];
dst.shift_accumulate(&src, 1);
assert_eq!(dst.m.data[0], orig_m0 + (src.m.data[0] >> 1));
assert_eq!(dst.coef.data[0], orig_c0 + (src.coef.data[0] >> 1));
}
#[test]
fn test_cdf_reset_count_keyframe() {
let mut ctx = CdfContext::init_from_defaults(0);
let cp_before_mv = ctx.mv.data[113]; ctx.reset_count(true);
assert_eq!(ctx.mv.data[113], cp_before_mv); }
#[test]
fn test_cdf_reset_count_nonkeyframe() {
let mut ctx = CdfContext::init_from_defaults(0);
ctx.reset_count(false);
}
#[test]
fn test_cdf_pri_sec_average() {
let s1 = CdfContext::init_from_defaults(0);
let s2 = CdfContext::init_from_defaults(1);
let mut dst = CdfContext::init_from_defaults(0);
dst.pri_sec_average(
&s1.m, &s1.coef, &s1.mv, &s1.dmv, &s2.m, &s2.coef, &s2.mv, &s2.dmv,
);
let expected = ((s1.m.data[0] as u32 * 7 + s2.m.data[0] as u32 + 4) >> 3) as u16;
assert_eq!(dst.m.data[0], expected);
}
#[test]
fn test_visit_mode_pal_idx_variable_n1d() {
let mut pal_entries = Vec::new();
visit_mode_kf_entries(|off, n1d| {
if off >= 1448 && off < 1448 + 7 * 40 {
pal_entries.push((off, n1d));
}
});
assert_eq!(pal_entries.len(), 35); assert_eq!(pal_entries[0].1, 1); assert_eq!(pal_entries[5].1, 2); assert_eq!(pal_entries[30].1, 7); }
#[test]
fn test_visit_mode_cdef_idx_variable_n1d() {
let mut cdef_entries = Vec::new();
visit_mode_kf_entries(|off, n1d| {
if off >= 1088 && off < 1088 + 6 * 8 {
cdef_entries.push((off, n1d));
}
});
assert_eq!(cdef_entries.len(), 6);
for j in 0..6 {
assert_eq!(cdef_entries[j], (1088 + j * 8, 1 + j));
}
}
#[test]
fn test_coef_accessors_offsets() {
let mut c = CdfCoefContext::default();
c.data[0] = 42;
assert_eq!(c.skip(0, 0, 0)[0], 42);
c.data[200] = 99;
assert_eq!(c.eob_bin_16(0)[0], 99);
c.data[224] = 77;
assert_eq!(c.eob_bin_32(0)[0], 77);
c.data[4136] = 11;
assert_eq!(c.dc_sign(0, 0, 0)[0], 11);
c.data[4418] = 55;
assert_eq!(c.skip_v(0)[0], 55);
c.data[4560] = 33;
assert_eq!(c.base_uv_tok_lf(0)[0], 33);
}
}