# fx2-nb-q256-e15-lean5: xz re-tuned for the lean4 decoder

    archive            11,773,320   sha256 9a400ccf...  (byte-identical to lean4's archive)
    decompressor.zip    2,272,523   sha256 ec9b2fbc...  (launcher 109 + c.xz 87,972 + e 101,253 + w 2,083,089 + zip 100)
    ALL-IN             14,045,843   (14,045,927 -> -84)

Decode: `unzip decompressor.zip -d dec && sh dec/d archive enwik8.out` on Ubuntu 26.04, glibc 2.43, i7-8750H
(AVX2, no AVX-512): rc=0, 100,000,000 B, sha256 = enwik8, wall 32,415 s (the CPU was shared with GPU benchmarks), peak RSS 6.0 GB (logs/verify.log). The decoder prints no progress, so a silent multi-hour run is normal.

Requirements: x86-64 with AVX2, glibc >= 2.38, libstdc++ >= 11.

## What changed relative to 14,045,927 (results/20261023-023746-907)

Only the xz settings for c.xz. The decoder ELF, e, w and the archive are byte-identical to lean4's. The file the
launcher builds (decoder + e + w + archive) is byte-identical to the one that round-tripped for lean4, and this
entry was decoded again from scratch anyway.

    lean4:  --x86 --lzma2=preset=9e,dict=524288,lc=4,lp=0,pb=0,nice=96,mf=bt2,depth=0    -> 88,056
    lean5:  --x86 --lzma2=preset=9e,dict=524288,lc=3,lp=0,pb=0,nice=139,mf=bt2,depth=0   -> 87,972 (-84)

The lean entries reused nice 96 / lc 4, which had been tuned on an older decoder binary. The optimum moves with
the binary, so re-sweep it for every new decoder (logs/xz_sweep.log; tools/assemble_xz.py takes XZ_LC and
XZ_NICE). jjae's independent sweep (20261023-183253, component result 20261023-183414-192) also covered nice 32..273, lc 2..5, bt2/bt3/bt4/hc4,
depth 0..1000, lp/pb 0..2, dict 16 KiB..16 MiB, other BCJ filters, delta, the check types and LZMA_alone.
Nothing beats 87,972, and check=none is already the smallest.

## Reproduce

Build and make w exactly as in lean4 (tools/, COMBO ending in skip7_patch.sh), then
`XZ_LC=3 XZ_NICE=139 python3 assemble_xz.py a8 <workdir>/s/cmix_decoder <workdir>/s/run/comp_dict w7.tfwc2 <out>`.

Credit: c.xz lane jjae (their container sweep prompted the re-tune; they reproduced the 87,972 B independently);
swagged-out-bot for the sweep and pack; INT3 dead node and earlier lean chain as credited in lean4 and lean3.
