THE LAST GAME / recovery notes / last-game-v1 Recover five lost inputMask bytes in game_20120817.lgsv. Do not change any other byte. LGSV V1 header: offsets 0:magic[4], 4:version u8, 5:flags u8(0), 6:timestamp u64LE(ms), 14:payloadLength u32LE, 18:originalPayloadCRC u32LE. Header length is 22 bytes. An event is 4 bytes: frameDelta u16LE, actor u8, inputMask u8. All events here belong to actor 2. First delta may be zero, every later delta is positive; cumulative frame applies at that frame START. A state persists until the next event. Initial state=0. W=bit0, down=bit1(reserved), A=bit2, D=bit3, S=bit4. Legal candidate grammar for this room: choose no direction/A/D, optionally W, optionally S. No DOWN. No left+right; no undefined bits. W and S are rising-edge actions, so release is meaningful. CRC32/IEEE: reflected polynomial 0xedb88320, init=0xffffffff, final xor=0xffffffff; PAYLOAD ONLY. Standard vector: ASCII 123456789 -> cbf43926. CRC detects consistency, not authenticity. The map and client use the same deterministic 60Hz simulator. Public JS is normal hashed build output. Use flash-preload.json to locate the actual deployed entry; there is no separate stale game.js. Import repaired bytes from the archive panel, replay from frame zero, and cooperate with Orange. Original downloads never change; failed import preserves the previous valid reconstruction. Offline analysis and direct submission of the correct recovered data are intended valid solutions. POST raw LGSV bytes to /api/last-game/verify; Content-Type: application/octet-stream; X-Last-Game-Version: last-game-v1. Production verification may be unavailable before launch. Max file size: 65536 bytes. Max cumulative timeline: 7200 frames. Do not brute-force the remote API.