static byte[] compress30BitUint(int i) { if (i < 0 || i >= 0x40000000) fail("Not a 30 bit uint: " + i); if (i < 0x40) ret new byte[] { (byte) i }; if (i < 0x4000) ret new byte[] { (byte) ((i >> 8) | 0x40), (byte) i }; if (i < 0x400000) ret new byte[] { (byte) ((i >> 16) | 0x80), (byte) (i >> 8), (byte) i }; ret new byte[] { (byte) ((i >> 24) | 0xC0), (byte) (i >> 16), (byte) (i >> 8), (byte) i }; }