Modified: 
websites/production/commons/content/proper/commons-compress/apidocs/src-html/org/apache/commons/compress/compressors/bzip2/BZip2CompressorInputStream.html
==============================================================================
--- 
websites/production/commons/content/proper/commons-compress/apidocs/src-html/org/apache/commons/compress/compressors/bzip2/BZip2CompressorInputStream.html
 (original)
+++ 
websites/production/commons/content/proper/commons-compress/apidocs/src-html/org/apache/commons/compress/compressors/bzip2/BZip2CompressorInputStream.html
 Tue Aug 20 11:56:50 2024
@@ -245,727 +245,712 @@
 <span class="source-line-no">232</span><span id="line-232">    private int 
storedBlockCRC, storedCombinedCRC;</span>
 <span class="source-line-no">233</span><span id="line-233">    private int 
computedCombinedCRC;</span>
 <span class="source-line-no">234</span><span id="line-234">    private int 
su_count;</span>
-<span class="source-line-no">235</span><span id="line-235"></span>
-<span class="source-line-no">236</span><span id="line-236">    private int 
su_ch2;</span>
-<span class="source-line-no">237</span><span id="line-237"></span>
-<span class="source-line-no">238</span><span id="line-238">    private int 
su_chPrev;</span>
-<span class="source-line-no">239</span><span id="line-239"></span>
-<span class="source-line-no">240</span><span id="line-240">    private int 
su_i2;</span>
-<span class="source-line-no">241</span><span id="line-241"></span>
-<span class="source-line-no">242</span><span id="line-242">    private int 
su_j2;</span>
+<span class="source-line-no">235</span><span id="line-235">    private int 
su_ch2;</span>
+<span class="source-line-no">236</span><span id="line-236">    private int 
su_chPrev;</span>
+<span class="source-line-no">237</span><span id="line-237">    private int 
su_i2;</span>
+<span class="source-line-no">238</span><span id="line-238">    private int 
su_j2;</span>
+<span class="source-line-no">239</span><span id="line-239">    private int 
su_rNToGo;</span>
+<span class="source-line-no">240</span><span id="line-240">    private int 
su_rTPos;</span>
+<span class="source-line-no">241</span><span id="line-241">    private int 
su_tPos;</span>
+<span class="source-line-no">242</span><span id="line-242">    private char 
su_z;</span>
 <span class="source-line-no">243</span><span id="line-243"></span>
-<span class="source-line-no">244</span><span id="line-244">    private int 
su_rNToGo;</span>
-<span class="source-line-no">245</span><span id="line-245"></span>
-<span class="source-line-no">246</span><span id="line-246">    private int 
su_rTPos;</span>
-<span class="source-line-no">247</span><span id="line-247"></span>
-<span class="source-line-no">248</span><span id="line-248">    private int 
su_tPos;</span>
-<span class="source-line-no">249</span><span id="line-249"></span>
-<span class="source-line-no">250</span><span id="line-250">    private char 
su_z;</span>
-<span class="source-line-no">251</span><span id="line-251"></span>
-<span class="source-line-no">252</span><span id="line-252">    /**</span>
-<span class="source-line-no">253</span><span id="line-253">     * All memory 
intensive stuff. This field is initialized by initBlock().</span>
-<span class="source-line-no">254</span><span id="line-254">     */</span>
-<span class="source-line-no">255</span><span id="line-255">    private 
BZip2CompressorInputStream.Data data;</span>
-<span class="source-line-no">256</span><span id="line-256"></span>
-<span class="source-line-no">257</span><span id="line-257">    /**</span>
-<span class="source-line-no">258</span><span id="line-258">     * Constructs a 
new BZip2CompressorInputStream which decompresses bytes read from the specified 
stream. This doesn't support decompressing concatenated .bz2</span>
-<span class="source-line-no">259</span><span id="line-259">     * files.</span>
-<span class="source-line-no">260</span><span id="line-260">     *</span>
-<span class="source-line-no">261</span><span id="line-261">     * @param in 
the InputStream from which this object should be created</span>
-<span class="source-line-no">262</span><span id="line-262">     * @throws 
IOException          if the stream content is malformed or an I/O error 
occurs.</span>
-<span class="source-line-no">263</span><span id="line-263">     * @throws 
NullPointerException if {@code in == null}</span>
-<span class="source-line-no">264</span><span id="line-264">     */</span>
-<span class="source-line-no">265</span><span id="line-265">    public 
BZip2CompressorInputStream(final InputStream in) throws IOException {</span>
-<span class="source-line-no">266</span><span id="line-266">        this(in, 
false);</span>
-<span class="source-line-no">267</span><span id="line-267">    }</span>
-<span class="source-line-no">268</span><span id="line-268"></span>
-<span class="source-line-no">269</span><span id="line-269">    /**</span>
-<span class="source-line-no">270</span><span id="line-270">     * Constructs a 
new BZip2CompressorInputStream which decompresses bytes read from the specified 
stream.</span>
-<span class="source-line-no">271</span><span id="line-271">     *</span>
-<span class="source-line-no">272</span><span id="line-272">     * @param in    
                 the InputStream from which this object should be created</span>
-<span class="source-line-no">273</span><span id="line-273">     * @param 
decompressConcatenated if true, decompress until the end of the input; if 
false, stop after the first .bz2 stream and leave the input position to</span>
-<span class="source-line-no">274</span><span id="line-274">     *              
                 point to the next byte after the .bz2 stream</span>
-<span class="source-line-no">275</span><span id="line-275">     *</span>
-<span class="source-line-no">276</span><span id="line-276">     * @throws 
IOException if {@code in == null}, the stream content is malformed, or an I/O 
error occurs.</span>
-<span class="source-line-no">277</span><span id="line-277">     */</span>
-<span class="source-line-no">278</span><span id="line-278">    public 
BZip2CompressorInputStream(final InputStream in, final boolean 
decompressConcatenated) throws IOException {</span>
-<span class="source-line-no">279</span><span id="line-279">        this.bin = 
new BitInputStream(in == System.in ? CloseShieldInputStream.wrap(in) : in, 
ByteOrder.BIG_ENDIAN);</span>
-<span class="source-line-no">280</span><span id="line-280">        
this.decompressConcatenated = decompressConcatenated;</span>
-<span class="source-line-no">281</span><span id="line-281"></span>
-<span class="source-line-no">282</span><span id="line-282">        
init(true);</span>
-<span class="source-line-no">283</span><span id="line-283">        
initBlock();</span>
-<span class="source-line-no">284</span><span id="line-284">    }</span>
-<span class="source-line-no">285</span><span id="line-285"></span>
-<span class="source-line-no">286</span><span id="line-286">    @Override</span>
-<span class="source-line-no">287</span><span id="line-287">    public void 
close() throws IOException {</span>
-<span class="source-line-no">288</span><span id="line-288">        final 
BitInputStream inShadow = this.bin;</span>
-<span class="source-line-no">289</span><span id="line-289">        if 
(inShadow != null) {</span>
-<span class="source-line-no">290</span><span id="line-290">            try 
{</span>
-<span class="source-line-no">291</span><span id="line-291">                
inShadow.close();</span>
-<span class="source-line-no">292</span><span id="line-292">            } 
finally {</span>
-<span class="source-line-no">293</span><span id="line-293">                
this.data = null;</span>
-<span class="source-line-no">294</span><span id="line-294">                
this.bin = null;</span>
-<span class="source-line-no">295</span><span id="line-295">            }</span>
+<span class="source-line-no">244</span><span id="line-244">    /**</span>
+<span class="source-line-no">245</span><span id="line-245">     * All memory 
intensive stuff. This field is initialized by initBlock().</span>
+<span class="source-line-no">246</span><span id="line-246">     */</span>
+<span class="source-line-no">247</span><span id="line-247">    private 
BZip2CompressorInputStream.Data data;</span>
+<span class="source-line-no">248</span><span id="line-248"></span>
+<span class="source-line-no">249</span><span id="line-249">    /**</span>
+<span class="source-line-no">250</span><span id="line-250">     * Constructs a 
new BZip2CompressorInputStream which decompresses bytes read from the specified 
stream. This doesn't support decompressing concatenated .bz2</span>
+<span class="source-line-no">251</span><span id="line-251">     * files.</span>
+<span class="source-line-no">252</span><span id="line-252">     *</span>
+<span class="source-line-no">253</span><span id="line-253">     * @param in 
the InputStream from which this object should be created</span>
+<span class="source-line-no">254</span><span id="line-254">     * @throws 
IOException          if the stream content is malformed or an I/O error 
occurs.</span>
+<span class="source-line-no">255</span><span id="line-255">     * @throws 
NullPointerException if {@code in == null}</span>
+<span class="source-line-no">256</span><span id="line-256">     */</span>
+<span class="source-line-no">257</span><span id="line-257">    public 
BZip2CompressorInputStream(final InputStream in) throws IOException {</span>
+<span class="source-line-no">258</span><span id="line-258">        this(in, 
false);</span>
+<span class="source-line-no">259</span><span id="line-259">    }</span>
+<span class="source-line-no">260</span><span id="line-260"></span>
+<span class="source-line-no">261</span><span id="line-261">    /**</span>
+<span class="source-line-no">262</span><span id="line-262">     * Constructs a 
new BZip2CompressorInputStream which decompresses bytes read from the specified 
stream.</span>
+<span class="source-line-no">263</span><span id="line-263">     *</span>
+<span class="source-line-no">264</span><span id="line-264">     * @param in    
                 the InputStream from which this object should be created</span>
+<span class="source-line-no">265</span><span id="line-265">     * @param 
decompressConcatenated if true, decompress until the end of the input; if 
false, stop after the first .bz2 stream and leave the input position to</span>
+<span class="source-line-no">266</span><span id="line-266">     *              
                 point to the next byte after the .bz2 stream</span>
+<span class="source-line-no">267</span><span id="line-267">     *</span>
+<span class="source-line-no">268</span><span id="line-268">     * @throws 
IOException if {@code in == null}, the stream content is malformed, or an I/O 
error occurs.</span>
+<span class="source-line-no">269</span><span id="line-269">     */</span>
+<span class="source-line-no">270</span><span id="line-270">    public 
BZip2CompressorInputStream(final InputStream in, final boolean 
decompressConcatenated) throws IOException {</span>
+<span class="source-line-no">271</span><span id="line-271">        this.bin = 
new BitInputStream(in == System.in ? CloseShieldInputStream.wrap(in) : in, 
ByteOrder.BIG_ENDIAN);</span>
+<span class="source-line-no">272</span><span id="line-272">        
this.decompressConcatenated = decompressConcatenated;</span>
+<span class="source-line-no">273</span><span id="line-273">        
init(true);</span>
+<span class="source-line-no">274</span><span id="line-274">        
initBlock();</span>
+<span class="source-line-no">275</span><span id="line-275">    }</span>
+<span class="source-line-no">276</span><span id="line-276"></span>
+<span class="source-line-no">277</span><span id="line-277">    @Override</span>
+<span class="source-line-no">278</span><span id="line-278">    public void 
close() throws IOException {</span>
+<span class="source-line-no">279</span><span id="line-279">        final 
BitInputStream inShadow = this.bin;</span>
+<span class="source-line-no">280</span><span id="line-280">        if 
(inShadow != null) {</span>
+<span class="source-line-no">281</span><span id="line-281">            try 
{</span>
+<span class="source-line-no">282</span><span id="line-282">                
inShadow.close();</span>
+<span class="source-line-no">283</span><span id="line-283">            } 
finally {</span>
+<span class="source-line-no">284</span><span id="line-284">                
this.data = null;</span>
+<span class="source-line-no">285</span><span id="line-285">                
this.bin = null;</span>
+<span class="source-line-no">286</span><span id="line-286">            }</span>
+<span class="source-line-no">287</span><span id="line-287">        }</span>
+<span class="source-line-no">288</span><span id="line-288">    }</span>
+<span class="source-line-no">289</span><span id="line-289"></span>
+<span class="source-line-no">290</span><span id="line-290">    private boolean 
complete() throws IOException {</span>
+<span class="source-line-no">291</span><span id="line-291">        
this.storedCombinedCRC = bsGetInt(bin);</span>
+<span class="source-line-no">292</span><span id="line-292">        
this.currentState = EOF;</span>
+<span class="source-line-no">293</span><span id="line-293">        this.data = 
null;</span>
+<span class="source-line-no">294</span><span id="line-294">        if 
(this.storedCombinedCRC != this.computedCombinedCRC) {</span>
+<span class="source-line-no">295</span><span id="line-295">            throw 
new IOException("BZip2 CRC error");</span>
 <span class="source-line-no">296</span><span id="line-296">        }</span>
-<span class="source-line-no">297</span><span id="line-297">    }</span>
-<span class="source-line-no">298</span><span id="line-298"></span>
-<span class="source-line-no">299</span><span id="line-299">    private boolean 
complete() throws IOException {</span>
-<span class="source-line-no">300</span><span id="line-300">        
this.storedCombinedCRC = bsGetInt(bin);</span>
-<span class="source-line-no">301</span><span id="line-301">        
this.currentState = EOF;</span>
-<span class="source-line-no">302</span><span id="line-302">        this.data = 
null;</span>
-<span class="source-line-no">303</span><span id="line-303"></span>
-<span class="source-line-no">304</span><span id="line-304">        if 
(this.storedCombinedCRC != this.computedCombinedCRC) {</span>
-<span class="source-line-no">305</span><span id="line-305">            throw 
new IOException("BZip2 CRC error");</span>
-<span class="source-line-no">306</span><span id="line-306">        }</span>
-<span class="source-line-no">307</span><span id="line-307"></span>
-<span class="source-line-no">308</span><span id="line-308">        // Look for 
the next .bz2 stream if decompressing</span>
-<span class="source-line-no">309</span><span id="line-309">        // 
concatenated files.</span>
-<span class="source-line-no">310</span><span id="line-310">        return 
!decompressConcatenated || !init(false);</span>
-<span class="source-line-no">311</span><span id="line-311">    }</span>
+<span class="source-line-no">297</span><span id="line-297">        // Look for 
the next .bz2 stream if decompressing</span>
+<span class="source-line-no">298</span><span id="line-298">        // 
concatenated files.</span>
+<span class="source-line-no">299</span><span id="line-299">        return 
!decompressConcatenated || !init(false);</span>
+<span class="source-line-no">300</span><span id="line-300">    }</span>
+<span class="source-line-no">301</span><span id="line-301"></span>
+<span class="source-line-no">302</span><span id="line-302">    /**</span>
+<span class="source-line-no">303</span><span id="line-303">     * Called by 
recvDecodingTables() exclusively.</span>
+<span class="source-line-no">304</span><span id="line-304">     */</span>
+<span class="source-line-no">305</span><span id="line-305">    private void 
createHuffmanDecodingTables(final int alphaSize, final int nGroups) throws 
IOException {</span>
+<span class="source-line-no">306</span><span id="line-306">        final Data 
dataShadow = this.data;</span>
+<span class="source-line-no">307</span><span id="line-307">        final 
char[][] len = dataShadow.temp_charArray2d;</span>
+<span class="source-line-no">308</span><span id="line-308">        final int[] 
minLens = dataShadow.minLens;</span>
+<span class="source-line-no">309</span><span id="line-309">        final 
int[][] limit = dataShadow.limit;</span>
+<span class="source-line-no">310</span><span id="line-310">        final 
int[][] base = dataShadow.base;</span>
+<span class="source-line-no">311</span><span id="line-311">        final 
int[][] perm = dataShadow.perm;</span>
 <span class="source-line-no">312</span><span id="line-312"></span>
-<span class="source-line-no">313</span><span id="line-313">    /**</span>
-<span class="source-line-no">314</span><span id="line-314">     * Called by 
recvDecodingTables() exclusively.</span>
-<span class="source-line-no">315</span><span id="line-315">     */</span>
-<span class="source-line-no">316</span><span id="line-316">    private void 
createHuffmanDecodingTables(final int alphaSize, final int nGroups) throws 
IOException {</span>
-<span class="source-line-no">317</span><span id="line-317">        final Data 
dataShadow = this.data;</span>
-<span class="source-line-no">318</span><span id="line-318">        final 
char[][] len = dataShadow.temp_charArray2d;</span>
-<span class="source-line-no">319</span><span id="line-319">        final int[] 
minLens = dataShadow.minLens;</span>
-<span class="source-line-no">320</span><span id="line-320">        final 
int[][] limit = dataShadow.limit;</span>
-<span class="source-line-no">321</span><span id="line-321">        final 
int[][] base = dataShadow.base;</span>
-<span class="source-line-no">322</span><span id="line-322">        final 
int[][] perm = dataShadow.perm;</span>
-<span class="source-line-no">323</span><span id="line-323"></span>
-<span class="source-line-no">324</span><span id="line-324">        for (int t 
= 0; t &lt; nGroups; t++) {</span>
-<span class="source-line-no">325</span><span id="line-325">            int 
minLen = 32;</span>
-<span class="source-line-no">326</span><span id="line-326">            int 
maxLen = 0;</span>
-<span class="source-line-no">327</span><span id="line-327">            final 
char[] len_t = len[t];</span>
-<span class="source-line-no">328</span><span id="line-328">            for 
(int i = alphaSize; --i &gt;= 0;) {</span>
-<span class="source-line-no">329</span><span id="line-329">                
final char lent = len_t[i];</span>
-<span class="source-line-no">330</span><span id="line-330">                if 
(lent &gt; maxLen) {</span>
-<span class="source-line-no">331</span><span id="line-331">                    
maxLen = lent;</span>
-<span class="source-line-no">332</span><span id="line-332">                
}</span>
-<span class="source-line-no">333</span><span id="line-333">                if 
(lent &lt; minLen) {</span>
-<span class="source-line-no">334</span><span id="line-334">                    
minLen = lent;</span>
-<span class="source-line-no">335</span><span id="line-335">                
}</span>
-<span class="source-line-no">336</span><span id="line-336">            }</span>
-<span class="source-line-no">337</span><span id="line-337">            
hbCreateDecodeTables(limit[t], base[t], perm[t], len[t], minLen, maxLen, 
alphaSize);</span>
-<span class="source-line-no">338</span><span id="line-338">            
minLens[t] = minLen;</span>
-<span class="source-line-no">339</span><span id="line-339">        }</span>
-<span class="source-line-no">340</span><span id="line-340">    }</span>
-<span class="source-line-no">341</span><span id="line-341"></span>
-<span class="source-line-no">342</span><span id="line-342">    private void 
endBlock() throws IOException {</span>
-<span class="source-line-no">343</span><span id="line-343">        final int 
computedBlockCRC = this.crc.getValue();</span>
+<span class="source-line-no">313</span><span id="line-313">        for (int t 
= 0; t &lt; nGroups; t++) {</span>
+<span class="source-line-no">314</span><span id="line-314">            int 
minLen = 32;</span>
+<span class="source-line-no">315</span><span id="line-315">            int 
maxLen = 0;</span>
+<span class="source-line-no">316</span><span id="line-316">            final 
char[] len_t = len[t];</span>
+<span class="source-line-no">317</span><span id="line-317">            for 
(int i = alphaSize; --i &gt;= 0;) {</span>
+<span class="source-line-no">318</span><span id="line-318">                
final char lent = len_t[i];</span>
+<span class="source-line-no">319</span><span id="line-319">                if 
(lent &gt; maxLen) {</span>
+<span class="source-line-no">320</span><span id="line-320">                    
maxLen = lent;</span>
+<span class="source-line-no">321</span><span id="line-321">                
}</span>
+<span class="source-line-no">322</span><span id="line-322">                if 
(lent &lt; minLen) {</span>
+<span class="source-line-no">323</span><span id="line-323">                    
minLen = lent;</span>
+<span class="source-line-no">324</span><span id="line-324">                
}</span>
+<span class="source-line-no">325</span><span id="line-325">            }</span>
+<span class="source-line-no">326</span><span id="line-326">            
hbCreateDecodeTables(limit[t], base[t], perm[t], len[t], minLen, maxLen, 
alphaSize);</span>
+<span class="source-line-no">327</span><span id="line-327">            
minLens[t] = minLen;</span>
+<span class="source-line-no">328</span><span id="line-328">        }</span>
+<span class="source-line-no">329</span><span id="line-329">    }</span>
+<span class="source-line-no">330</span><span id="line-330"></span>
+<span class="source-line-no">331</span><span id="line-331">    private void 
endBlock() throws IOException {</span>
+<span class="source-line-no">332</span><span id="line-332">        final int 
computedBlockCRC = this.crc.getValue();</span>
+<span class="source-line-no">333</span><span id="line-333">        // A bad 
CRC is considered a fatal error.</span>
+<span class="source-line-no">334</span><span id="line-334">        if 
(this.storedBlockCRC != computedBlockCRC) {</span>
+<span class="source-line-no">335</span><span id="line-335">            // make 
next blocks readable without error</span>
+<span class="source-line-no">336</span><span id="line-336">            // 
(repair feature, not yet documented, not tested)</span>
+<span class="source-line-no">337</span><span id="line-337">            
this.computedCombinedCRC = this.storedCombinedCRC &lt;&lt; 1 | 
this.storedCombinedCRC &gt;&gt;&gt; 31;</span>
+<span class="source-line-no">338</span><span id="line-338">            
this.computedCombinedCRC ^= this.storedBlockCRC;</span>
+<span class="source-line-no">339</span><span id="line-339">            throw 
new IOException("BZip2 CRC error");</span>
+<span class="source-line-no">340</span><span id="line-340">        }</span>
+<span class="source-line-no">341</span><span id="line-341">        
this.computedCombinedCRC = this.computedCombinedCRC &lt;&lt; 1 | 
this.computedCombinedCRC &gt;&gt;&gt; 31;</span>
+<span class="source-line-no">342</span><span id="line-342">        
this.computedCombinedCRC ^= computedBlockCRC;</span>
+<span class="source-line-no">343</span><span id="line-343">    }</span>
 <span class="source-line-no">344</span><span id="line-344"></span>
-<span class="source-line-no">345</span><span id="line-345">        // A bad 
CRC is considered a fatal error.</span>
-<span class="source-line-no">346</span><span id="line-346">        if 
(this.storedBlockCRC != computedBlockCRC) {</span>
-<span class="source-line-no">347</span><span id="line-347">            // make 
next blocks readable without error</span>
-<span class="source-line-no">348</span><span id="line-348">            // 
(repair feature, not yet documented, not tested)</span>
-<span class="source-line-no">349</span><span id="line-349">            
this.computedCombinedCRC = this.storedCombinedCRC &lt;&lt; 1 | 
this.storedCombinedCRC &gt;&gt;&gt; 31;</span>
-<span class="source-line-no">350</span><span id="line-350">            
this.computedCombinedCRC ^= this.storedBlockCRC;</span>
-<span class="source-line-no">351</span><span id="line-351"></span>
-<span class="source-line-no">352</span><span id="line-352">            throw 
new IOException("BZip2 CRC error");</span>
-<span class="source-line-no">353</span><span id="line-353">        }</span>
-<span class="source-line-no">354</span><span id="line-354"></span>
-<span class="source-line-no">355</span><span id="line-355">        
this.computedCombinedCRC = this.computedCombinedCRC &lt;&lt; 1 | 
this.computedCombinedCRC &gt;&gt;&gt; 31;</span>
-<span class="source-line-no">356</span><span id="line-356">        
this.computedCombinedCRC ^= computedBlockCRC;</span>
-<span class="source-line-no">357</span><span id="line-357">    }</span>
-<span class="source-line-no">358</span><span id="line-358"></span>
-<span class="source-line-no">359</span><span id="line-359">    private void 
getAndMoveToFrontDecode() throws IOException {</span>
-<span class="source-line-no">360</span><span id="line-360">        final 
BitInputStream bin = this.bin;</span>
-<span class="source-line-no">361</span><span id="line-361">        
this.origPtr = bsR(bin, 24);</span>
-<span class="source-line-no">362</span><span id="line-362">        
recvDecodingTables();</span>
-<span class="source-line-no">363</span><span id="line-363"></span>
-<span class="source-line-no">364</span><span id="line-364">        final Data 
dataShadow = this.data;</span>
-<span class="source-line-no">365</span><span id="line-365">        final 
byte[] ll8 = dataShadow.ll8;</span>
-<span class="source-line-no">366</span><span id="line-366">        final int[] 
unzftab = dataShadow.unzftab;</span>
-<span class="source-line-no">367</span><span id="line-367">        final 
byte[] selector = dataShadow.selector;</span>
-<span class="source-line-no">368</span><span id="line-368">        final 
byte[] seqToUnseq = dataShadow.seqToUnseq;</span>
-<span class="source-line-no">369</span><span id="line-369">        final 
char[] yy = dataShadow.getAndMoveToFrontDecode_yy;</span>
-<span class="source-line-no">370</span><span id="line-370">        final int[] 
minLens = dataShadow.minLens;</span>
-<span class="source-line-no">371</span><span id="line-371">        final 
int[][] limit = dataShadow.limit;</span>
-<span class="source-line-no">372</span><span id="line-372">        final 
int[][] base = dataShadow.base;</span>
-<span class="source-line-no">373</span><span id="line-373">        final 
int[][] perm = dataShadow.perm;</span>
-<span class="source-line-no">374</span><span id="line-374">        final int 
limitLast = this.blockSize100k * 100000;</span>
-<span class="source-line-no">375</span><span id="line-375"></span>
-<span class="source-line-no">376</span><span id="line-376">        /*</span>
-<span class="source-line-no">377</span><span id="line-377">         * Setting 
up the unzftab entries here is not strictly necessary, but it does save having 
to do it later in a separate pass, and so saves a block's</span>
-<span class="source-line-no">378</span><span id="line-378">         * worth of 
cache misses.</span>
-<span class="source-line-no">379</span><span id="line-379">         */</span>
-<span class="source-line-no">380</span><span id="line-380">        for (int i 
= 256; --i &gt;= 0;) {</span>
-<span class="source-line-no">381</span><span id="line-381">            yy[i] = 
(char) i;</span>
-<span class="source-line-no">382</span><span id="line-382">            
unzftab[i] = 0;</span>
-<span class="source-line-no">383</span><span id="line-383">        }</span>
-<span class="source-line-no">384</span><span id="line-384"></span>
-<span class="source-line-no">385</span><span id="line-385">        int groupNo 
= 0;</span>
-<span class="source-line-no">386</span><span id="line-386">        int 
groupPos = G_SIZE - 1;</span>
-<span class="source-line-no">387</span><span id="line-387">        final int 
eob = this.nInUse + 1;</span>
-<span class="source-line-no">388</span><span id="line-388">        int nextSym 
= getAndMoveToFrontDecode0();</span>
-<span class="source-line-no">389</span><span id="line-389">        int 
lastShadow = -1;</span>
-<span class="source-line-no">390</span><span id="line-390">        int zt = 
selector[groupNo] &amp; 0xff;</span>
-<span class="source-line-no">391</span><span id="line-391">        
checkBounds(zt, N_GROUPS, "zt");</span>
-<span class="source-line-no">392</span><span id="line-392">        int[] 
base_zt = base[zt];</span>
-<span class="source-line-no">393</span><span id="line-393">        int[] 
limit_zt = limit[zt];</span>
-<span class="source-line-no">394</span><span id="line-394">        int[] 
perm_zt = perm[zt];</span>
-<span class="source-line-no">395</span><span id="line-395">        int 
minLens_zt = minLens[zt];</span>
-<span class="source-line-no">396</span><span id="line-396"></span>
-<span class="source-line-no">397</span><span id="line-397">        while 
(nextSym != eob) {</span>
-<span class="source-line-no">398</span><span id="line-398">            if 
(nextSym == RUNA || nextSym == RUNB) {</span>
-<span class="source-line-no">399</span><span id="line-399">                int 
s = -1;</span>
-<span class="source-line-no">400</span><span id="line-400"></span>
-<span class="source-line-no">401</span><span id="line-401">                for 
(int n = 1; true; n &lt;&lt;= 1) {</span>
-<span class="source-line-no">402</span><span id="line-402">                    
if (nextSym == RUNA) {</span>
-<span class="source-line-no">403</span><span id="line-403">                    
    s += n;</span>
-<span class="source-line-no">404</span><span id="line-404">                    
} else if (nextSym == RUNB) {</span>
-<span class="source-line-no">405</span><span id="line-405">                    
    s += n &lt;&lt; 1;</span>
-<span class="source-line-no">406</span><span id="line-406">                    
} else {</span>
-<span class="source-line-no">407</span><span id="line-407">                    
    break;</span>
-<span class="source-line-no">408</span><span id="line-408">                    
}</span>
-<span class="source-line-no">409</span><span id="line-409"></span>
-<span class="source-line-no">410</span><span id="line-410">                    
if (groupPos == 0) {</span>
-<span class="source-line-no">411</span><span id="line-411">                    
    groupPos = G_SIZE - 1;</span>
-<span class="source-line-no">412</span><span id="line-412">                    
    checkBounds(++groupNo, MAX_SELECTORS, "groupNo");</span>
-<span class="source-line-no">413</span><span id="line-413">                    
    zt = selector[groupNo] &amp; 0xff;</span>
-<span class="source-line-no">414</span><span id="line-414">                    
    checkBounds(zt, N_GROUPS, "zt");</span>
-<span class="source-line-no">415</span><span id="line-415">                    
    base_zt = base[zt];</span>
-<span class="source-line-no">416</span><span id="line-416">                    
    limit_zt = limit[zt];</span>
-<span class="source-line-no">417</span><span id="line-417">                    
    perm_zt = perm[zt];</span>
-<span class="source-line-no">418</span><span id="line-418">                    
    minLens_zt = minLens[zt];</span>
-<span class="source-line-no">419</span><span id="line-419">                    
} else {</span>
-<span class="source-line-no">420</span><span id="line-420">                    
    groupPos--;</span>
-<span class="source-line-no">421</span><span id="line-421">                    
}</span>
-<span class="source-line-no">422</span><span id="line-422"></span>
-<span class="source-line-no">423</span><span id="line-423">                    
int zn = minLens_zt;</span>
-<span class="source-line-no">424</span><span id="line-424">                    
checkBounds(zn, MAX_ALPHA_SIZE, "zn");</span>
-<span class="source-line-no">425</span><span id="line-425">                    
int zvec = bsR(bin, zn);</span>
-<span class="source-line-no">426</span><span id="line-426">                    
while (zvec &gt; limit_zt[zn]) {</span>
-<span class="source-line-no">427</span><span id="line-427">                    
    checkBounds(++zn, MAX_ALPHA_SIZE, "zn");</span>
-<span class="source-line-no">428</span><span id="line-428">                    
    zvec = zvec &lt;&lt; 1 | bsR(bin, 1);</span>
-<span class="source-line-no">429</span><span id="line-429">                    
}</span>
-<span class="source-line-no">430</span><span id="line-430">                    
final int tmp = zvec - base_zt[zn];</span>
-<span class="source-line-no">431</span><span id="line-431">                    
checkBounds(tmp, MAX_ALPHA_SIZE, "zvec");</span>
-<span class="source-line-no">432</span><span id="line-432">                    
nextSym = perm_zt[tmp];</span>
+<span class="source-line-no">345</span><span id="line-345">    private void 
getAndMoveToFrontDecode() throws IOException {</span>
+<span class="source-line-no">346</span><span id="line-346">        final 
BitInputStream bin = this.bin;</span>
+<span class="source-line-no">347</span><span id="line-347">        
this.origPtr = bsR(bin, 24);</span>
+<span class="source-line-no">348</span><span id="line-348">        
recvDecodingTables();</span>
+<span class="source-line-no">349</span><span id="line-349">        final Data 
dataShadow = this.data;</span>
+<span class="source-line-no">350</span><span id="line-350">        final 
byte[] ll8 = dataShadow.ll8;</span>
+<span class="source-line-no">351</span><span id="line-351">        final int[] 
unzftab = dataShadow.unzftab;</span>
+<span class="source-line-no">352</span><span id="line-352">        final 
byte[] selector = dataShadow.selector;</span>
+<span class="source-line-no">353</span><span id="line-353">        final 
byte[] seqToUnseq = dataShadow.seqToUnseq;</span>
+<span class="source-line-no">354</span><span id="line-354">        final 
char[] yy = dataShadow.getAndMoveToFrontDecode_yy;</span>
+<span class="source-line-no">355</span><span id="line-355">        final int[] 
minLens = dataShadow.minLens;</span>
+<span class="source-line-no">356</span><span id="line-356">        final 
int[][] limit = dataShadow.limit;</span>
+<span class="source-line-no">357</span><span id="line-357">        final 
int[][] base = dataShadow.base;</span>
+<span class="source-line-no">358</span><span id="line-358">        final 
int[][] perm = dataShadow.perm;</span>
+<span class="source-line-no">359</span><span id="line-359">        final int 
limitLast = this.blockSize100k * 100000;</span>
+<span class="source-line-no">360</span><span id="line-360"></span>
+<span class="source-line-no">361</span><span id="line-361">        /*</span>
+<span class="source-line-no">362</span><span id="line-362">         * Setting 
up the unzftab entries here is not strictly necessary, but it does save having 
to do it later in a separate pass, and so saves a block's</span>
+<span class="source-line-no">363</span><span id="line-363">         * worth of 
cache misses.</span>
+<span class="source-line-no">364</span><span id="line-364">         */</span>
+<span class="source-line-no">365</span><span id="line-365">        for (int i 
= 256; --i &gt;= 0;) {</span>
+<span class="source-line-no">366</span><span id="line-366">            yy[i] = 
(char) i;</span>
+<span class="source-line-no">367</span><span id="line-367">            
unzftab[i] = 0;</span>
+<span class="source-line-no">368</span><span id="line-368">        }</span>
+<span class="source-line-no">369</span><span id="line-369"></span>
+<span class="source-line-no">370</span><span id="line-370">        int groupNo 
= 0;</span>
+<span class="source-line-no">371</span><span id="line-371">        int 
groupPos = G_SIZE - 1;</span>
+<span class="source-line-no">372</span><span id="line-372">        final int 
eob = this.nInUse + 1;</span>
+<span class="source-line-no">373</span><span id="line-373">        int nextSym 
= getAndMoveToFrontDecode0();</span>
+<span class="source-line-no">374</span><span id="line-374">        int 
lastShadow = -1;</span>
+<span class="source-line-no">375</span><span id="line-375">        int zt = 
selector[groupNo] &amp; 0xff;</span>
+<span class="source-line-no">376</span><span id="line-376">        
checkBounds(zt, N_GROUPS, "zt");</span>
+<span class="source-line-no">377</span><span id="line-377">        int[] 
base_zt = base[zt];</span>
+<span class="source-line-no">378</span><span id="line-378">        int[] 
limit_zt = limit[zt];</span>
+<span class="source-line-no">379</span><span id="line-379">        int[] 
perm_zt = perm[zt];</span>
+<span class="source-line-no">380</span><span id="line-380">        int 
minLens_zt = minLens[zt];</span>
+<span class="source-line-no">381</span><span id="line-381"></span>
+<span class="source-line-no">382</span><span id="line-382">        while 
(nextSym != eob) {</span>
+<span class="source-line-no">383</span><span id="line-383">            if 
(nextSym == RUNA || nextSym == RUNB) {</span>
+<span class="source-line-no">384</span><span id="line-384">                int 
s = -1;</span>
+<span class="source-line-no">385</span><span id="line-385"></span>
+<span class="source-line-no">386</span><span id="line-386">                for 
(int n = 1; true; n &lt;&lt;= 1) {</span>
+<span class="source-line-no">387</span><span id="line-387">                    
if (nextSym == RUNA) {</span>
+<span class="source-line-no">388</span><span id="line-388">                    
    s += n;</span>
+<span class="source-line-no">389</span><span id="line-389">                    
} else if (nextSym == RUNB) {</span>
+<span class="source-line-no">390</span><span id="line-390">                    
    s += n &lt;&lt; 1;</span>
+<span class="source-line-no">391</span><span id="line-391">                    
} else {</span>
+<span class="source-line-no">392</span><span id="line-392">                    
    break;</span>
+<span class="source-line-no">393</span><span id="line-393">                    
}</span>
+<span class="source-line-no">394</span><span id="line-394"></span>
+<span class="source-line-no">395</span><span id="line-395">                    
if (groupPos == 0) {</span>
+<span class="source-line-no">396</span><span id="line-396">                    
    groupPos = G_SIZE - 1;</span>
+<span class="source-line-no">397</span><span id="line-397">                    
    checkBounds(++groupNo, MAX_SELECTORS, "groupNo");</span>
+<span class="source-line-no">398</span><span id="line-398">                    
    zt = selector[groupNo] &amp; 0xff;</span>
+<span class="source-line-no">399</span><span id="line-399">                    
    checkBounds(zt, N_GROUPS, "zt");</span>
+<span class="source-line-no">400</span><span id="line-400">                    
    base_zt = base[zt];</span>
+<span class="source-line-no">401</span><span id="line-401">                    
    limit_zt = limit[zt];</span>
+<span class="source-line-no">402</span><span id="line-402">                    
    perm_zt = perm[zt];</span>
+<span class="source-line-no">403</span><span id="line-403">                    
    minLens_zt = minLens[zt];</span>
+<span class="source-line-no">404</span><span id="line-404">                    
} else {</span>
+<span class="source-line-no">405</span><span id="line-405">                    
    groupPos--;</span>
+<span class="source-line-no">406</span><span id="line-406">                    
}</span>
+<span class="source-line-no">407</span><span id="line-407"></span>
+<span class="source-line-no">408</span><span id="line-408">                    
int zn = minLens_zt;</span>
+<span class="source-line-no">409</span><span id="line-409">                    
checkBounds(zn, MAX_ALPHA_SIZE, "zn");</span>
+<span class="source-line-no">410</span><span id="line-410">                    
int zvec = bsR(bin, zn);</span>
+<span class="source-line-no">411</span><span id="line-411">                    
while (zvec &gt; limit_zt[zn]) {</span>
+<span class="source-line-no">412</span><span id="line-412">                    
    checkBounds(++zn, MAX_ALPHA_SIZE, "zn");</span>
+<span class="source-line-no">413</span><span id="line-413">                    
    zvec = zvec &lt;&lt; 1 | bsR(bin, 1);</span>
+<span class="source-line-no">414</span><span id="line-414">                    
}</span>
+<span class="source-line-no">415</span><span id="line-415">                    
final int tmp = zvec - base_zt[zn];</span>
+<span class="source-line-no">416</span><span id="line-416">                    
checkBounds(tmp, MAX_ALPHA_SIZE, "zvec");</span>
+<span class="source-line-no">417</span><span id="line-417">                    
nextSym = perm_zt[tmp];</span>
+<span class="source-line-no">418</span><span id="line-418">                
}</span>
+<span class="source-line-no">419</span><span id="line-419">                
checkBounds(s, this.data.ll8.length, "s");</span>
+<span class="source-line-no">420</span><span id="line-420"></span>
+<span class="source-line-no">421</span><span id="line-421">                
final int yy0 = yy[0];</span>
+<span class="source-line-no">422</span><span id="line-422">                
checkBounds(yy0, 256, "yy");</span>
+<span class="source-line-no">423</span><span id="line-423">                
final byte ch = seqToUnseq[yy0];</span>
+<span class="source-line-no">424</span><span id="line-424">                
unzftab[ch &amp; 0xff] += s + 1;</span>
+<span class="source-line-no">425</span><span id="line-425"></span>
+<span class="source-line-no">426</span><span id="line-426">                
final int from = ++lastShadow;</span>
+<span class="source-line-no">427</span><span id="line-427">                
lastShadow += s;</span>
+<span class="source-line-no">428</span><span id="line-428">                
checkBounds(lastShadow, this.data.ll8.length, "lastShadow");</span>
+<span class="source-line-no">429</span><span id="line-429">                
Arrays.fill(ll8, from, lastShadow + 1, ch);</span>
+<span class="source-line-no">430</span><span id="line-430"></span>
+<span class="source-line-no">431</span><span id="line-431">                if 
(lastShadow &gt;= limitLast) {</span>
+<span class="source-line-no">432</span><span id="line-432">                    
throw new IOException("Block overrun while expanding RLE in MTF, " + lastShadow 
+ " exceeds " + limitLast);</span>
 <span class="source-line-no">433</span><span id="line-433">                
}</span>
-<span class="source-line-no">434</span><span id="line-434">                
checkBounds(s, this.data.ll8.length, "s");</span>
-<span class="source-line-no">435</span><span id="line-435"></span>
-<span class="source-line-no">436</span><span id="line-436">                
final int yy0 = yy[0];</span>
-<span class="source-line-no">437</span><span id="line-437">                
checkBounds(yy0, 256, "yy");</span>
-<span class="source-line-no">438</span><span id="line-438">                
final byte ch = seqToUnseq[yy0];</span>
-<span class="source-line-no">439</span><span id="line-439">                
unzftab[ch &amp; 0xff] += s + 1;</span>
-<span class="source-line-no">440</span><span id="line-440"></span>
-<span class="source-line-no">441</span><span id="line-441">                
final int from = ++lastShadow;</span>
-<span class="source-line-no">442</span><span id="line-442">                
lastShadow += s;</span>
-<span class="source-line-no">443</span><span id="line-443">                
checkBounds(lastShadow, this.data.ll8.length, "lastShadow");</span>
-<span class="source-line-no">444</span><span id="line-444">                
Arrays.fill(ll8, from, lastShadow + 1, ch);</span>
-<span class="source-line-no">445</span><span id="line-445"></span>
-<span class="source-line-no">446</span><span id="line-446">                if 
(lastShadow &gt;= limitLast) {</span>
-<span class="source-line-no">447</span><span id="line-447">                    
throw new IOException("Block overrun while expanding RLE in MTF, " + lastShadow 
+ " exceeds " + limitLast);</span>
-<span class="source-line-no">448</span><span id="line-448">                
}</span>
-<span class="source-line-no">449</span><span id="line-449">            } else 
{</span>
-<span class="source-line-no">450</span><span id="line-450">                if 
(++lastShadow &gt;= limitLast) {</span>
-<span class="source-line-no">451</span><span id="line-451">                    
throw new IOException("Block overrun in MTF, " + lastShadow + " exceeds " + 
limitLast);</span>
-<span class="source-line-no">452</span><span id="line-452">                
}</span>
-<span class="source-line-no">453</span><span id="line-453">                
checkBounds(nextSym, 256 + 1, "nextSym");</span>
-<span class="source-line-no">454</span><span id="line-454"></span>
-<span class="source-line-no">455</span><span id="line-455">                
final char tmp = yy[nextSym - 1];</span>
-<span class="source-line-no">456</span><span id="line-456">                
checkBounds(tmp, 256, "yy");</span>
-<span class="source-line-no">457</span><span id="line-457">                
unzftab[seqToUnseq[tmp] &amp; 0xff]++;</span>
-<span class="source-line-no">458</span><span id="line-458">                
ll8[lastShadow] = seqToUnseq[tmp];</span>
-<span class="source-line-no">459</span><span id="line-459"></span>
-<span class="source-line-no">460</span><span id="line-460">                
/*</span>
-<span class="source-line-no">461</span><span id="line-461">                 * 
This loop is hammered during decompression, hence avoid native method call 
overhead of System.arraycopy for very small ranges to copy.</span>
-<span class="source-line-no">462</span><span id="line-462">                 
*/</span>
-<span class="source-line-no">463</span><span id="line-463">                if 
(nextSym &lt;= 16) {</span>
-<span class="source-line-no">464</span><span id="line-464">                    
for (int j = nextSym - 1; j &gt; 0;) {</span>
-<span class="source-line-no">465</span><span id="line-465">                    
    yy[j] = yy[--j];</span>
-<span class="source-line-no">466</span><span id="line-466">                    
}</span>
+<span class="source-line-no">434</span><span id="line-434">            } else 
{</span>
+<span class="source-line-no">435</span><span id="line-435">                if 
(++lastShadow &gt;= limitLast) {</span>
+<span class="source-line-no">436</span><span id="line-436">                    
throw new IOException("Block overrun in MTF, " + lastShadow + " exceeds " + 
limitLast);</span>
+<span class="source-line-no">437</span><span id="line-437">                
}</span>
+<span class="source-line-no">438</span><span id="line-438">                
checkBounds(nextSym, 256 + 1, "nextSym");</span>
+<span class="source-line-no">439</span><span id="line-439"></span>
+<span class="source-line-no">440</span><span id="line-440">                
final char tmp = yy[nextSym - 1];</span>
+<span class="source-line-no">441</span><span id="line-441">                
checkBounds(tmp, 256, "yy");</span>
+<span class="source-line-no">442</span><span id="line-442">                
unzftab[seqToUnseq[tmp] &amp; 0xff]++;</span>
+<span class="source-line-no">443</span><span id="line-443">                
ll8[lastShadow] = seqToUnseq[tmp];</span>
+<span class="source-line-no">444</span><span id="line-444"></span>
+<span class="source-line-no">445</span><span id="line-445">                
/*</span>
+<span class="source-line-no">446</span><span id="line-446">                 * 
This loop is hammered during decompression, hence avoid native method call 
overhead of System.arraycopy for very small ranges to copy.</span>
+<span class="source-line-no">447</span><span id="line-447">                 
*/</span>
+<span class="source-line-no">448</span><span id="line-448">                if 
(nextSym &lt;= 16) {</span>
+<span class="source-line-no">449</span><span id="line-449">                    
for (int j = nextSym - 1; j &gt; 0;) {</span>
+<span class="source-line-no">450</span><span id="line-450">                    
    yy[j] = yy[--j];</span>
+<span class="source-line-no">451</span><span id="line-451">                    
}</span>
+<span class="source-line-no">452</span><span id="line-452">                } 
else {</span>
+<span class="source-line-no">453</span><span id="line-453">                    
System.arraycopy(yy, 0, yy, 1, nextSym - 1);</span>
+<span class="source-line-no">454</span><span id="line-454">                
}</span>
+<span class="source-line-no">455</span><span id="line-455"></span>
+<span class="source-line-no">456</span><span id="line-456">                
yy[0] = tmp;</span>
+<span class="source-line-no">457</span><span id="line-457"></span>
+<span class="source-line-no">458</span><span id="line-458">                if 
(groupPos == 0) {</span>
+<span class="source-line-no">459</span><span id="line-459">                    
groupPos = G_SIZE - 1;</span>
+<span class="source-line-no">460</span><span id="line-460">                    
checkBounds(++groupNo, MAX_SELECTORS, "groupNo");</span>
+<span class="source-line-no">461</span><span id="line-461">                    
zt = selector[groupNo] &amp; 0xff;</span>
+<span class="source-line-no">462</span><span id="line-462">                    
checkBounds(zt, N_GROUPS, "zt");</span>
+<span class="source-line-no">463</span><span id="line-463">                    
base_zt = base[zt];</span>
+<span class="source-line-no">464</span><span id="line-464">                    
limit_zt = limit[zt];</span>
+<span class="source-line-no">465</span><span id="line-465">                    
perm_zt = perm[zt];</span>
+<span class="source-line-no">466</span><span id="line-466">                    
minLens_zt = minLens[zt];</span>
 <span class="source-line-no">467</span><span id="line-467">                } 
else {</span>
-<span class="source-line-no">468</span><span id="line-468">                    
System.arraycopy(yy, 0, yy, 1, nextSym - 1);</span>
+<span class="source-line-no">468</span><span id="line-468">                    
groupPos--;</span>
 <span class="source-line-no">469</span><span id="line-469">                
}</span>
 <span class="source-line-no">470</span><span id="line-470"></span>
-<span class="source-line-no">471</span><span id="line-471">                
yy[0] = tmp;</span>
-<span class="source-line-no">472</span><span id="line-472"></span>
-<span class="source-line-no">473</span><span id="line-473">                if 
(groupPos == 0) {</span>
-<span class="source-line-no">474</span><span id="line-474">                    
groupPos = G_SIZE - 1;</span>
-<span class="source-line-no">475</span><span id="line-475">                    
checkBounds(++groupNo, MAX_SELECTORS, "groupNo");</span>
-<span class="source-line-no">476</span><span id="line-476">                    
zt = selector[groupNo] &amp; 0xff;</span>
-<span class="source-line-no">477</span><span id="line-477">                    
checkBounds(zt, N_GROUPS, "zt");</span>
-<span class="source-line-no">478</span><span id="line-478">                    
base_zt = base[zt];</span>
-<span class="source-line-no">479</span><span id="line-479">                    
limit_zt = limit[zt];</span>
-<span class="source-line-no">480</span><span id="line-480">                    
perm_zt = perm[zt];</span>
-<span class="source-line-no">481</span><span id="line-481">                    
minLens_zt = minLens[zt];</span>
-<span class="source-line-no">482</span><span id="line-482">                } 
else {</span>
-<span class="source-line-no">483</span><span id="line-483">                    
groupPos--;</span>
-<span class="source-line-no">484</span><span id="line-484">                
}</span>
-<span class="source-line-no">485</span><span id="line-485"></span>
-<span class="source-line-no">486</span><span id="line-486">                int 
zn = minLens_zt;</span>
-<span class="source-line-no">487</span><span id="line-487">                
checkBounds(zn, MAX_ALPHA_SIZE, "zn");</span>
-<span class="source-line-no">488</span><span id="line-488">                int 
zvec = bsR(bin, zn);</span>
-<span class="source-line-no">489</span><span id="line-489">                
while (zvec &gt; limit_zt[zn]) {</span>
-<span class="source-line-no">490</span><span id="line-490">                    
checkBounds(++zn, MAX_ALPHA_SIZE, "zn");</span>
-<span class="source-line-no">491</span><span id="line-491">                    
zvec = zvec &lt;&lt; 1 | bsR(bin, 1);</span>
-<span class="source-line-no">492</span><span id="line-492">                
}</span>
-<span class="source-line-no">493</span><span id="line-493">                
final int idx = zvec - base_zt[zn];</span>
-<span class="source-line-no">494</span><span id="line-494">                
checkBounds(idx, MAX_ALPHA_SIZE, "zvec");</span>
-<span class="source-line-no">495</span><span id="line-495">                
nextSym = perm_zt[idx];</span>
-<span class="source-line-no">496</span><span id="line-496">            }</span>
-<span class="source-line-no">497</span><span id="line-497">        }</span>
-<span class="source-line-no">498</span><span id="line-498"></span>
-<span class="source-line-no">499</span><span id="line-499">        this.last = 
lastShadow;</span>
-<span class="source-line-no">500</span><span id="line-500">    }</span>
+<span class="source-line-no">471</span><span id="line-471">                int 
zn = minLens_zt;</span>
+<span class="source-line-no">472</span><span id="line-472">                
checkBounds(zn, MAX_ALPHA_SIZE, "zn");</span>
+<span class="source-line-no">473</span><span id="line-473">                int 
zvec = bsR(bin, zn);</span>
+<span class="source-line-no">474</span><span id="line-474">                
while (zvec &gt; limit_zt[zn]) {</span>
+<span class="source-line-no">475</span><span id="line-475">                    
checkBounds(++zn, MAX_ALPHA_SIZE, "zn");</span>
+<span class="source-line-no">476</span><span id="line-476">                    
zvec = zvec &lt;&lt; 1 | bsR(bin, 1);</span>
+<span class="source-line-no">477</span><span id="line-477">                
}</span>
+<span class="source-line-no">478</span><span id="line-478">                
final int idx = zvec - base_zt[zn];</span>
+<span class="source-line-no">479</span><span id="line-479">                
checkBounds(idx, MAX_ALPHA_SIZE, "zvec");</span>
+<span class="source-line-no">480</span><span id="line-480">                
nextSym = perm_zt[idx];</span>
+<span class="source-line-no">481</span><span id="line-481">            }</span>
+<span class="source-line-no">482</span><span id="line-482">        }</span>
+<span class="source-line-no">483</span><span id="line-483"></span>
+<span class="source-line-no">484</span><span id="line-484">        this.last = 
lastShadow;</span>
+<span class="source-line-no">485</span><span id="line-485">    }</span>
+<span class="source-line-no">486</span><span id="line-486"></span>
+<span class="source-line-no">487</span><span id="line-487">    private int 
getAndMoveToFrontDecode0() throws IOException {</span>
+<span class="source-line-no">488</span><span id="line-488">        final Data 
dataShadow = this.data;</span>
+<span class="source-line-no">489</span><span id="line-489">        final int 
zt = dataShadow.selector[0] &amp; 0xff;</span>
+<span class="source-line-no">490</span><span id="line-490">        
checkBounds(zt, N_GROUPS, "zt");</span>
+<span class="source-line-no">491</span><span id="line-491">        final int[] 
limit_zt = dataShadow.limit[zt];</span>
+<span class="source-line-no">492</span><span id="line-492">        int zn = 
dataShadow.minLens[zt];</span>
+<span class="source-line-no">493</span><span id="line-493">        
checkBounds(zn, MAX_ALPHA_SIZE, "zn");</span>
+<span class="source-line-no">494</span><span id="line-494">        int zvec = 
bsR(bin, zn);</span>
+<span class="source-line-no">495</span><span id="line-495">        while (zvec 
&gt; limit_zt[zn]) {</span>
+<span class="source-line-no">496</span><span id="line-496">            
checkBounds(++zn, MAX_ALPHA_SIZE, "zn");</span>
+<span class="source-line-no">497</span><span id="line-497">            zvec = 
zvec &lt;&lt; 1 | bsR(bin, 1);</span>
+<span class="source-line-no">498</span><span id="line-498">        }</span>
+<span class="source-line-no">499</span><span id="line-499">        final int 
tmp = zvec - dataShadow.base[zt][zn];</span>
+<span class="source-line-no">500</span><span id="line-500">        
checkBounds(tmp, MAX_ALPHA_SIZE, "zvec");</span>
 <span class="source-line-no">501</span><span id="line-501"></span>
-<span class="source-line-no">502</span><span id="line-502">    private int 
getAndMoveToFrontDecode0() throws IOException {</span>
-<span class="source-line-no">503</span><span id="line-503">        final Data 
dataShadow = this.data;</span>
-<span class="source-line-no">504</span><span id="line-504">        final int 
zt = dataShadow.selector[0] &amp; 0xff;</span>
-<span class="source-line-no">505</span><span id="line-505">        
checkBounds(zt, N_GROUPS, "zt");</span>
-<span class="source-line-no">506</span><span id="line-506">        final int[] 
limit_zt = dataShadow.limit[zt];</span>
-<span class="source-line-no">507</span><span id="line-507">        int zn = 
dataShadow.minLens[zt];</span>
-<span class="source-line-no">508</span><span id="line-508">        
checkBounds(zn, MAX_ALPHA_SIZE, "zn");</span>
-<span class="source-line-no">509</span><span id="line-509">        int zvec = 
bsR(bin, zn);</span>
-<span class="source-line-no">510</span><span id="line-510">        while (zvec 
&gt; limit_zt[zn]) {</span>
-<span class="source-line-no">511</span><span id="line-511">            
checkBounds(++zn, MAX_ALPHA_SIZE, "zn");</span>
-<span class="source-line-no">512</span><span id="line-512">            zvec = 
zvec &lt;&lt; 1 | bsR(bin, 1);</span>
-<span class="source-line-no">513</span><span id="line-513">        }</span>
-<span class="source-line-no">514</span><span id="line-514">        final int 
tmp = zvec - dataShadow.base[zt][zn];</span>
-<span class="source-line-no">515</span><span id="line-515">        
checkBounds(tmp, MAX_ALPHA_SIZE, "zvec");</span>
-<span class="source-line-no">516</span><span id="line-516"></span>
-<span class="source-line-no">517</span><span id="line-517">        return 
dataShadow.perm[zt][tmp];</span>
-<span class="source-line-no">518</span><span id="line-518">    }</span>
-<span class="source-line-no">519</span><span id="line-519"></span>
-<span class="source-line-no">520</span><span id="line-520">    /**</span>
-<span class="source-line-no">521</span><span id="line-521">     * @since 
1.17</span>
-<span class="source-line-no">522</span><span id="line-522">     */</span>
-<span class="source-line-no">523</span><span id="line-523">    @Override</span>
-<span class="source-line-no">524</span><span id="line-524">    public long 
getCompressedCount() {</span>
-<span class="source-line-no">525</span><span id="line-525">        return 
bin.getBytesRead();</span>
-<span class="source-line-no">526</span><span id="line-526">    }</span>
-<span class="source-line-no">527</span><span id="line-527"></span>
-<span class="source-line-no">528</span><span id="line-528">    private boolean 
init(final boolean isFirstStream) throws IOException {</span>
-<span class="source-line-no">529</span><span id="line-529">        if (null == 
bin) {</span>
-<span class="source-line-no">530</span><span id="line-530">            throw 
new IOException("No InputStream");</span>
+<span class="source-line-no">502</span><span id="line-502">        return 
dataShadow.perm[zt][tmp];</span>
+<span class="source-line-no">503</span><span id="line-503">    }</span>
+<span class="source-line-no">504</span><span id="line-504"></span>
+<span class="source-line-no">505</span><span id="line-505">    /**</span>
+<span class="source-line-no">506</span><span id="line-506">     * @since 
1.17</span>
+<span class="source-line-no">507</span><span id="line-507">     */</span>
+<span class="source-line-no">508</span><span id="line-508">    @Override</span>
+<span class="source-line-no">509</span><span id="line-509">    public long 
getCompressedCount() {</span>
+<span class="source-line-no">510</span><span id="line-510">        return 
bin.getBytesRead();</span>
+<span class="source-line-no">511</span><span id="line-511">    }</span>
+<span class="source-line-no">512</span><span id="line-512"></span>
+<span class="source-line-no">513</span><span id="line-513">    private boolean 
init(final boolean isFirstStream) throws IOException {</span>
+<span class="source-line-no">514</span><span id="line-514">        if (null == 
bin) {</span>
+<span class="source-line-no">515</span><span id="line-515">            throw 
new IOException("No InputStream");</span>
+<span class="source-line-no">516</span><span id="line-516">        }</span>
+<span class="source-line-no">517</span><span id="line-517"></span>
+<span class="source-line-no">518</span><span id="line-518">        if 
(!isFirstStream) {</span>
+<span class="source-line-no">519</span><span id="line-519">            
bin.clearBitCache();</span>
+<span class="source-line-no">520</span><span id="line-520">        }</span>
+<span class="source-line-no">521</span><span id="line-521"></span>
+<span class="source-line-no">522</span><span id="line-522">        final int 
magic0 = readNextByte(this.bin);</span>
+<span class="source-line-no">523</span><span id="line-523">        if (magic0 
== -1 &amp;&amp; !isFirstStream) {</span>
+<span class="source-line-no">524</span><span id="line-524">            return 
false;</span>
+<span class="source-line-no">525</span><span id="line-525">        }</span>
+<span class="source-line-no">526</span><span id="line-526">        final int 
magic1 = readNextByte(this.bin);</span>
+<span class="source-line-no">527</span><span id="line-527">        final int 
magic2 = readNextByte(this.bin);</span>
+<span class="source-line-no">528</span><span id="line-528"></span>
+<span class="source-line-no">529</span><span id="line-529">        if (magic0 
!= 'B' || magic1 != 'Z' || magic2 != 'h') {</span>
+<span class="source-line-no">530</span><span id="line-530">            throw 
new IOException(isFirstStream ? "Stream is not in the BZip2 format" : "Garbage 
after a valid BZip2 stream");</span>
 <span class="source-line-no">531</span><span id="line-531">        }</span>
 <span class="source-line-no">532</span><span id="line-532"></span>
-<span class="source-line-no">533</span><span id="line-533">        if 
(!isFirstStream) {</span>
-<span class="source-line-no">534</span><span id="line-534">            
bin.clearBitCache();</span>
-<span class="source-line-no">535</span><span id="line-535">        }</span>
-<span class="source-line-no">536</span><span id="line-536"></span>
-<span class="source-line-no">537</span><span id="line-537">        final int 
magic0 = readNextByte(this.bin);</span>
-<span class="source-line-no">538</span><span id="line-538">        if (magic0 
== -1 &amp;&amp; !isFirstStream) {</span>
-<span class="source-line-no">539</span><span id="line-539">            return 
false;</span>
-<span class="source-line-no">540</span><span id="line-540">        }</span>
-<span class="source-line-no">541</span><span id="line-541">        final int 
magic1 = readNextByte(this.bin);</span>
-<span class="source-line-no">542</span><span id="line-542">        final int 
magic2 = readNextByte(this.bin);</span>
-<span class="source-line-no">543</span><span id="line-543"></span>
-<span class="source-line-no">544</span><span id="line-544">        if (magic0 
!= 'B' || magic1 != 'Z' || magic2 != 'h') {</span>
-<span class="source-line-no">545</span><span id="line-545">            throw 
new IOException(isFirstStream ? "Stream is not in the BZip2 format" : "Garbage 
after a valid BZip2 stream");</span>
-<span class="source-line-no">546</span><span id="line-546">        }</span>
-<span class="source-line-no">547</span><span id="line-547"></span>
-<span class="source-line-no">548</span><span id="line-548">        final int 
blockSize = readNextByte(this.bin);</span>
-<span class="source-line-no">549</span><span id="line-549">        if 
(blockSize &lt; '1' || blockSize &gt; '9') {</span>
-<span class="source-line-no">550</span><span id="line-550">            throw 
new IOException("BZip2 block size is invalid");</span>
-<span class="source-line-no">551</span><span id="line-551">        }</span>
-<span class="source-line-no">552</span><span id="line-552"></span>
-<span class="source-line-no">553</span><span id="line-553">        
this.blockSize100k = blockSize - '0';</span>
-<span class="source-line-no">554</span><span id="line-554"></span>
-<span class="source-line-no">555</span><span id="line-555">        
this.computedCombinedCRC = 0;</span>
-<span class="source-line-no">556</span><span id="line-556"></span>
-<span class="source-line-no">557</span><span id="line-557">        return 
true;</span>
-<span class="source-line-no">558</span><span id="line-558">    }</span>
-<span class="source-line-no">559</span><span id="line-559"></span>
-<span class="source-line-no">560</span><span id="line-560">    private void 
initBlock() throws IOException {</span>
-<span class="source-line-no">561</span><span id="line-561">        final 
BitInputStream bin = this.bin;</span>
-<span class="source-line-no">562</span><span id="line-562">        char 
magic0;</span>
-<span class="source-line-no">563</span><span id="line-563">        char 
magic1;</span>
-<span class="source-line-no">564</span><span id="line-564">        char 
magic2;</span>
-<span class="source-line-no">565</span><span id="line-565">        char 
magic3;</span>
-<span class="source-line-no">566</span><span id="line-566">        char 
magic4;</span>
-<span class="source-line-no">567</span><span id="line-567">        char 
magic5;</span>
-<span class="source-line-no">568</span><span id="line-568"></span>
-<span class="source-line-no">569</span><span id="line-569">        while 
(true) {</span>
-<span class="source-line-no">570</span><span id="line-570">            // Get 
the block magic bytes.</span>
-<span class="source-line-no">571</span><span id="line-571">            magic0 
= bsGetUByte(bin);</span>
-<span class="source-line-no">572</span><span id="line-572">            magic1 
= bsGetUByte(bin);</span>
-<span class="source-line-no">573</span><span id="line-573">            magic2 
= bsGetUByte(bin);</span>
-<span class="source-line-no">574</span><span id="line-574">            magic3 
= bsGetUByte(bin);</span>
-<span class="source-line-no">575</span><span id="line-575">            magic4 
= bsGetUByte(bin);</span>
-<span class="source-line-no">576</span><span id="line-576">            magic5 
= bsGetUByte(bin);</span>
-<span class="source-line-no">577</span><span id="line-577"></span>
-<span class="source-line-no">578</span><span id="line-578">            // If 
isn't end of stream magic, break out of the loop.</span>
-<span class="source-line-no">579</span><span id="line-579">            if 
(magic0 != 0x17 || magic1 != 0x72 || magic2 != 0x45 || magic3 != 0x38 || magic4 
!= 0x50 || magic5 != 0x90) {</span>
-<span class="source-line-no">580</span><span id="line-580">                
break;</span>
-<span class="source-line-no">581</span><span id="line-581">            }</span>
-<span class="source-line-no">582</span><span id="line-582"></span>
-<span class="source-line-no">583</span><span id="line-583">            // End 
of stream was reached. Check the combined CRC and</span>
-<span class="source-line-no">584</span><span id="line-584">            // 
advance to the next .bz2 stream if decoding concatenated</span>
-<span class="source-line-no">585</span><span id="line-585">            // 
streams.</span>
-<span class="source-line-no">586</span><span id="line-586">            if 
(complete()) {</span>
-<span class="source-line-no">587</span><span id="line-587">                
return;</span>
-<span class="source-line-no">588</span><span id="line-588">            }</span>
-<span class="source-line-no">589</span><span id="line-589">        }</span>
-<span class="source-line-no">590</span><span id="line-590"></span>
-<span class="source-line-no">591</span><span id="line-591">        if (magic0 
!= 0x31 || // '1'</span>
-<span class="source-line-no">592</span><span id="line-592">                
magic1 != 0x41 || // ')'</span>
-<span class="source-line-no">593</span><span id="line-593">                
magic2 != 0x59 || // 'Y'</span>
-<span class="source-line-no">594</span><span id="line-594">                
magic3 != 0x26 || // '&amp;'</span>
-<span class="source-line-no">595</span><span id="line-595">                
magic4 != 0x53 || // 'S'</span>
-<span class="source-line-no">596</span><span id="line-596">                
magic5 != 0x59 // 'Y'</span>
-<span class="source-line-no">597</span><span id="line-597">        ) {</span>
-<span class="source-line-no">598</span><span id="line-598">            
this.currentState = EOF;</span>
-<span class="source-line-no">599</span><span id="line-599">            throw 
new IOException("Bad block header");</span>
-<span class="source-line-no">600</span><span id="line-600">        }</span>
-<span class="source-line-no">601</span><span id="line-601">        
this.storedBlockCRC = bsGetInt(bin);</span>
-<span class="source-line-no">602</span><span id="line-602">        
this.blockRandomised = bsR(bin, 1) == 1;</span>
-<span class="source-line-no">603</span><span id="line-603"></span>
-<span class="source-line-no">604</span><span id="line-604">        /*</span>
-<span class="source-line-no">605</span><span id="line-605">         * Allocate 
data here instead in constructor, so we do not allocate it if the input file is 
empty.</span>
-<span class="source-line-no">606</span><span id="line-606">         */</span>
-<span class="source-line-no">607</span><span id="line-607">        if 
(this.data == null) {</span>
-<span class="source-line-no">608</span><span id="line-608">            
this.data = new Data(this.blockSize100k);</span>
-<span class="source-line-no">609</span><span id="line-609">        }</span>
-<span class="source-line-no">610</span><span id="line-610"></span>
-<span class="source-line-no">611</span><span id="line-611">        // 
currBlockNo++;</span>
-<span class="source-line-no">612</span><span id="line-612">        
getAndMoveToFrontDecode();</span>
-<span class="source-line-no">613</span><span id="line-613"></span>
-<span class="source-line-no">614</span><span id="line-614">        
this.crc.reset();</span>
-<span class="source-line-no">615</span><span id="line-615">        
this.currentState = START_BLOCK_STATE;</span>
+<span class="source-line-no">533</span><span id="line-533">        final int 
blockSize = readNextByte(this.bin);</span>
+<span class="source-line-no">534</span><span id="line-534">        if 
(blockSize &lt; '1' || blockSize &gt; '9') {</span>
+<span class="source-line-no">535</span><span id="line-535">            throw 
new IOException("BZip2 block size is invalid");</span>
+<span class="source-line-no">536</span><span id="line-536">        }</span>
+<span class="source-line-no">537</span><span id="line-537"></span>
+<span class="source-line-no">538</span><span id="line-538">        
this.blockSize100k = blockSize - '0';</span>
+<span class="source-line-no">539</span><span id="line-539"></span>
+<span class="source-line-no">540</span><span id="line-540">        
this.computedCombinedCRC = 0;</span>
+<span class="source-line-no">541</span><span id="line-541"></span>
+<span class="source-line-no">542</span><span id="line-542">        return 
true;</span>
+<span class="source-line-no">543</span><span id="line-543">    }</span>
+<span class="source-line-no">544</span><span id="line-544"></span>
+<span class="source-line-no">545</span><span id="line-545">    private void 
initBlock() throws IOException {</span>
+<span class="source-line-no">546</span><span id="line-546">        final 
BitInputStream bin = this.bin;</span>
+<span class="source-line-no">547</span><span id="line-547">        char 
magic0;</span>
+<span class="source-line-no">548</span><span id="line-548">        char 
magic1;</span>
+<span class="source-line-no">549</span><span id="line-549">        char 
magic2;</span>
+<span class="source-line-no">550</span><span id="line-550">        char 
magic3;</span>
+<span class="source-line-no">551</span><span id="line-551">        char 
magic4;</span>
+<span class="source-line-no">552</span><span id="line-552">        char 
magic5;</span>
+<span class="source-line-no">553</span><span id="line-553"></span>
+<span class="source-line-no">554</span><span id="line-554">        while 
(true) {</span>
+<span class="source-line-no">555</span><span id="line-555">            // Get 
the block magic bytes.</span>
+<span class="source-line-no">556</span><span id="line-556">            magic0 
= bsGetUByte(bin);</span>
+<span class="source-line-no">557</span><span id="line-557">            magic1 
= bsGetUByte(bin);</span>
+<span class="source-line-no">558</span><span id="line-558">            magic2 
= bsGetUByte(bin);</span>
+<span class="source-line-no">559</span><span id="line-559">            magic3 
= bsGetUByte(bin);</span>
+<span class="source-line-no">560</span><span id="line-560">            magic4 
= bsGetUByte(bin);</span>
+<span class="source-line-no">561</span><span id="line-561">            magic5 
= bsGetUByte(bin);</span>
+<span class="source-line-no">562</span><span id="line-562"></span>
+<span class="source-line-no">563</span><span id="line-563">            // If 
isn't end of stream magic, break out of the loop.</span>
+<span class="source-line-no">564</span><span id="line-564">            if 
(magic0 != 0x17 || magic1 != 0x72 || magic2 != 0x45 || magic3 != 0x38 || magic4 
!= 0x50 || magic5 != 0x90) {</span>
+<span class="source-line-no">565</span><span id="line-565">                
break;</span>
+<span class="source-line-no">566</span><span id="line-566">            }</span>
+<span class="source-line-no">567</span><span id="line-567"></span>
+<span class="source-line-no">568</span><span id="line-568">            // End 
of stream was reached. Check the combined CRC and</span>
+<span class="source-line-no">569</span><span id="line-569">            // 
advance to the next .bz2 stream if decoding concatenated</span>
+<span class="source-line-no">570</span><span id="line-570">            // 
streams.</span>
+<span class="source-line-no">571</span><span id="line-571">            if 
(complete()) {</span>
+<span class="source-line-no">572</span><span id="line-572">                
return;</span>
+<span class="source-line-no">573</span><span id="line-573">            }</span>
+<span class="source-line-no">574</span><span id="line-574">        }</span>
+<span class="source-line-no">575</span><span id="line-575"></span>
+<span class="source-line-no">576</span><span id="line-576">        if (magic0 
!= 0x31 || // '1'</span>
+<span class="source-line-no">577</span><span id="line-577">                
magic1 != 0x41 || // ')'</span>
+<span class="source-line-no">578</span><span id="line-578">                
magic2 != 0x59 || // 'Y'</span>
+<span class="source-line-no">579</span><span id="line-579">                
magic3 != 0x26 || // '&amp;'</span>
+<span class="source-line-no">580</span><span id="line-580">                
magic4 != 0x53 || // 'S'</span>
+<span class="source-line-no">581</span><span id="line-581">                
magic5 != 0x59 // 'Y'</span>
+<span class="source-line-no">582</span><span id="line-582">        ) {</span>
+<span class="source-line-no">583</span><span id="line-583">            
this.currentState = EOF;</span>
+<span class="source-line-no">584</span><span id="line-584">            throw 
new IOException("Bad block header");</span>
+<span class="source-line-no">585</span><span id="line-585">        }</span>
+<span class="source-line-no">586</span><span id="line-586">        
this.storedBlockCRC = bsGetInt(bin);</span>
+<span class="source-line-no">587</span><span id="line-587">        
this.blockRandomised = bsR(bin, 1) == 1;</span>
+<span class="source-line-no">588</span><span id="line-588"></span>
+<span class="source-line-no">589</span><span id="line-589">        /*</span>
+<span class="source-line-no">590</span><span id="line-590">         * Allocate 
data here instead in constructor, so we do not allocate it if the input file is 
empty.</span>
+<span class="source-line-no">591</span><span id="line-591">         */</span>
+<span class="source-line-no">592</span><span id="line-592">        if 
(this.data == null) {</span>
+<span class="source-line-no">593</span><span id="line-593">            
this.data = new Data(this.blockSize100k);</span>
+<span class="source-line-no">594</span><span id="line-594">        }</span>
+<span class="source-line-no">595</span><span id="line-595"></span>
+<span class="source-line-no">596</span><span id="line-596">        // 
currBlockNo++;</span>
+<span class="source-line-no">597</span><span id="line-597">        
getAndMoveToFrontDecode();</span>
+<span class="source-line-no">598</span><span id="line-598"></span>
+<span class="source-line-no">599</span><span id="line-599">        
this.crc.reset();</span>
+<span class="source-line-no">600</span><span id="line-600">        
this.currentState = START_BLOCK_STATE;</span>
+<span class="source-line-no">601</span><span id="line-601">    }</span>
+<span class="source-line-no">602</span><span id="line-602"></span>
+<span class="source-line-no">603</span><span id="line-603">    private void 
makeMaps() {</span>
+<span class="source-line-no">604</span><span id="line-604">        final 
boolean[] inUse = this.data.inUse;</span>
+<span class="source-line-no">605</span><span id="line-605">        final 
byte[] seqToUnseq = this.data.seqToUnseq;</span>
+<span class="source-line-no">606</span><span id="line-606"></span>
+<span class="source-line-no">607</span><span id="line-607">        int 
nInUseShadow = 0;</span>
+<span class="source-line-no">608</span><span id="line-608"></span>
+<span class="source-line-no">609</span><span id="line-609">        for (int i 
= 0; i &lt; 256; i++) {</span>
+<span class="source-line-no">610</span><span id="line-610">            if 
(inUse[i]) {</span>
+<span class="source-line-no">611</span><span id="line-611">                
seqToUnseq[nInUseShadow++] = (byte) i;</span>
+<span class="source-line-no">612</span><span id="line-612">            }</span>
+<span class="source-line-no">613</span><span id="line-613">        }</span>
+<span class="source-line-no">614</span><span id="line-614"></span>
+<span class="source-line-no">615</span><span id="line-615">        this.nInUse 
= nInUseShadow;</span>
 <span class="source-line-no">616</span><span id="line-616">    }</span>
 <span class="source-line-no">617</span><span id="line-617"></span>
-<span class="source-line-no">618</span><span id="line-618">    private void 
makeMaps() {</span>
-<span class="source-line-no">619</span><span id="line-619">        final 
boolean[] inUse = this.data.inUse;</span>
-<span class="source-line-no">620</span><span id="line-620">        final 
byte[] seqToUnseq = this.data.seqToUnseq;</span>
-<span class="source-line-no">621</span><span id="line-621"></span>
-<span class="source-line-no">622</span><span id="line-622">        int 
nInUseShadow = 0;</span>
-<span class="source-line-no">623</span><span id="line-623"></span>
-<span class="source-line-no">624</span><span id="line-624">        for (int i 
= 0; i &lt; 256; i++) {</span>
-<span class="source-line-no">625</span><span id="line-625">            if 
(inUse[i]) {</span>
-<span class="source-line-no">626</span><span id="line-626">                
seqToUnseq[nInUseShadow++] = (byte) i;</span>
-<span class="source-line-no">627</span><span id="line-627">            }</span>
-<span class="source-line-no">628</span><span id="line-628">        }</span>
-<span class="source-line-no">629</span><span id="line-629"></span>
-<span class="source-line-no">630</span><span id="line-630">        this.nInUse 
= nInUseShadow;</span>
-<span class="source-line-no">631</span><span id="line-631">    }</span>
-<span class="source-line-no">632</span><span id="line-632"></span>
+<span class="source-line-no">618</span><span id="line-618">    @Override</span>
+<span class="source-line-no">619</span><span id="line-619">    public int 
read() throws IOException {</span>
+<span class="source-line-no">620</span><span id="line-620">        if 
(this.bin != null) {</span>
+<span class="source-line-no">621</span><span id="line-621">            final 
int r = read0();</span>
+<span class="source-line-no">622</span><span id="line-622">            count(r 
&lt; 0 ? -1 : 1);</span>
+<span class="source-line-no">623</span><span id="line-623">            return 
r;</span>
+<span class="source-line-no">624</span><span id="line-624">        }</span>
+<span class="source-line-no">625</span><span id="line-625">        throw new 
IOException("Stream closed");</span>
+<span class="source-line-no">626</span><span id="line-626">    }</span>
+<span class="source-line-no">627</span><span id="line-627"></span>
+<span class="source-line-no">628</span><span id="line-628">    /*</span>
+<span class="source-line-no">629</span><span id="line-629">     * 
(non-Javadoc)</span>
+<span class="source-line-no">630</span><span id="line-630">     *</span>
+<span class="source-line-no">631</span><span id="line-631">     * @see 
java.io.InputStream#read(byte[], int, int)</span>
+<span class="source-line-no">632</span><span id="line-632">     */</span>
 <span class="source-line-no">633</span><span id="line-633">    @Override</span>
-<span class="source-line-no">634</span><span id="line-634">    public int 
read() throws IOException {</span>
-<span class="source-line-no">635</span><span id="line-635">        if 
(this.bin != null) {</span>
-<span class="source-line-no">636</span><span id="line-636">            final 
int r = read0();</span>
-<span class="source-line-no">637</span><span id="line-637">            count(r 
&lt; 0 ? -1 : 1);</span>
-<span class="source-line-no">638</span><span id="line-638">            return 
r;</span>
-<span class="source-line-no">639</span><span id="line-639">        }</span>
-<span class="source-line-no">640</span><span id="line-640">        throw new 
IOException("Stream closed");</span>
-<span class="source-line-no">641</span><span id="line-641">    }</span>
-<span class="source-line-no">642</span><span id="line-642"></span>
-<span class="source-line-no">643</span><span id="line-643">    /*</span>
-<span class="source-line-no">644</span><span id="line-644">     * 
(non-Javadoc)</span>
-<span class="source-line-no">645</span><span id="line-645">     *</span>
-<span class="source-line-no">646</span><span id="line-646">     * @see 
java.io.InputStream#read(byte[], int, int)</span>
-<span class="source-line-no">647</span><span id="line-647">     */</span>
-<span class="source-line-no">648</span><span id="line-648">    @Override</span>
-<span class="source-line-no">649</span><span id="line-649">    public int 
read(final byte[] dest, final int offs, final int len) throws IOException 
{</span>
-<span class="source-line-no">650</span><span id="line-650">        if (offs 
&lt; 0) {</span>
-<span class="source-line-no">651</span><span id="line-651">            throw 
new IndexOutOfBoundsException("offs(" + offs + ") &lt; 0.");</span>
-<span class="source-line-no">652</span><span id="line-652">        }</span>
-<span class="source-line-no">653</span><span id="line-653">        if (len 
&lt; 0) {</span>
-<span class="source-line-no">654</span><span id="line-654">            throw 
new IndexOutOfBoundsException("len(" + len + ") &lt; 0.");</span>
-<span class="source-line-no">655</span><span id="line-655">        }</span>
-<span class="source-line-no">656</span><span id="line-656">        if (offs + 
len &gt; dest.length) {</span>
-<span class="source-line-no">657</span><span id="line-657">            throw 
new IndexOutOfBoundsException("offs(" + offs + ") + len(" + len + ") &gt; 
dest.length(" + dest.length + ").");</span>
-<span class="source-line-no">658</span><span id="line-658">        }</span>
-<span class="source-line-no">659</span><span id="line-659">        if 
(this.bin == null) {</span>
-<span class="source-line-no">660</span><span id="line-660">            throw 
new IOException("Stream closed");</span>
-<span class="source-line-no">661</span><span id="line-661">        }</span>
-<span class="source-line-no">662</span><span id="line-662">        if (len == 
0) {</span>
-<span class="source-line-no">663</span><span id="line-663">            return 
0;</span>
-<span class="source-line-no">664</span><span id="line-664">        }</span>
-<span class="source-line-no">665</span><span id="line-665"></span>
-<span class="source-line-no">666</span><span id="line-666">        final int 
hi = offs + len;</span>
-<span class="source-line-no">667</span><span id="line-667">        int 
destOffs = offs;</span>
-<span class="source-line-no">668</span><span id="line-668">        int 
b;</span>
-<span class="source-line-no">669</span><span id="line-669">        while 
(destOffs &lt; hi &amp;&amp; (b = read0()) &gt;= 0) {</span>
-<span class="source-line-no">670</span><span id="line-670">            
dest[destOffs++] = (byte) b;</span>
-<span class="source-line-no">671</span><span id="line-671">            
count(1);</span>
-<span class="source-line-no">672</span><span id="line-672">        }</span>
-<span class="source-line-no">673</span><span id="line-673"></span>
-<span class="source-line-no">674</span><span id="line-674">        return 
destOffs == offs ? -1 : destOffs - offs;</span>
-<span class="source-line-no">675</span><span id="line-675">    }</span>
-<span class="source-line-no">676</span><span id="line-676"></span>
-<span class="source-line-no">677</span><span id="line-677">    private int 
read0() throws IOException {</span>
-<span class="source-line-no">678</span><span id="line-678">        switch 
(currentState) {</span>
-<span class="source-line-no">679</span><span id="line-679">        case 
EOF:</span>
-<span class="source-line-no">680</span><span id="line-680">            return 
-1;</span>
+<span class="source-line-no">634</span><span id="line-634">    public int 
read(final byte[] dest, final int offs, final int len) throws IOException 
{</span>
+<span class="source-line-no">635</span><span id="line-635">        if (offs 
&lt; 0) {</span>
+<span class="source-line-no">636</span><span id="line-636">            throw 
new IndexOutOfBoundsException("offs(" + offs + ") &lt; 0.");</span>
+<span class="source-line-no">637</span><span id="line-637">        }</span>
+<span class="source-line-no">638</span><span id="line-638">        if (len 
&lt; 0) {</span>
+<span class="source-line-no">639</span><span id="line-639">            throw 
new IndexOutOfBoundsException("len(" + len + ") &lt; 0.");</span>
+<span class="source-line-no">640</span><span id="line-640">        }</span>
+<span class="source-line-no">641</span><span id="line-641">        if (offs + 
len &gt; dest.length) {</span>
+<span class="source-line-no">642</span><span id="line-642">            throw 
new IndexOutOfBoundsException("offs(" + offs + ") + len(" + len + ") &gt; 
dest.length(" + dest.length + ").");</span>
+<span class="source-line-no">643</span><span id="line-643">        }</span>
+<span class="source-line-no">644</span><span id="line-644">        if 
(this.bin == null) {</span>
+<span class="source-line-no">645</span><span id="line-645">            throw 
new IOException("Stream closed");</span>
+<span class="source-line-no">646</span><span id="line-646">        }</span>
+<span class="source-line-no">647</span><span id="line-647">        if (len == 
0) {</span>
+<span class="source-line-no">648</span><span id="line-648">            return 
0;</span>
+<span class="source-line-no">649</span><span id="line-649">        }</span>
+<span class="source-line-no">650</span><span id="line-650"></span>
+<span class="source-line-no">651</span><span id="line-651">        final int 
hi = offs + len;</span>
+<span class="source-line-no">652</span><span id="line-652">        int 
destOffs = offs;</span>
+<span class="source-line-no">653</span><span id="line-653">        int 
b;</span>
+<span class="source-line-no">654</span><span id="line-654">        while 
(destOffs &lt; hi &amp;&amp; (b = read0()) &gt;= 0) {</span>
+<span class="source-line-no">655</span><span id="line-655">            
dest[destOffs++] = (byte) b;</span>
+<span class="source-line-no">656</span><span id="line-656">            
count(1);</span>
+<span class="source-line-no">657</span><span id="line-657">        }</span>
+<span class="source-line-no">658</span><span id="line-658"></span>
+<span class="source-line-no">659</span><span id="line-659">        return 
destOffs == offs ? -1 : destOffs - offs;</span>
+<span class="source-line-no">660</span><span id="line-660">    }</span>
+<span class="source-line-no">661</span><span id="line-661"></span>
+<span class="source-line-no">662</span><span id="line-662">    private int 
read0() throws IOException {</span>
+<span class="source-line-no">663</span><span id="line-663">        switch 
(currentState) {</span>
+<span class="source-line-no">664</span><span id="line-664">        case 
EOF:</span>
+<span class="source-line-no">665</span><span id="line-665">            return 
-1;</span>
+<span class="source-line-no">666</span><span id="line-666"></span>
+<span class="source-line-no">667</span><span id="line-667">        case 
START_BLOCK_STATE:</span>
+<span class="source-line-no">668</span><span id="line-668">            return 
setupBlock();</span>
+<span class="source-line-no">669</span><span id="line-669"></span>
+<span class="source-line-no">670</span><span id="line-670">        case 
RAND_PART_A_STATE:</span>
+<span class="source-line-no">671</span><span id="line-671">            throw 
new IllegalStateException();</span>

[... 533 lines stripped ...]


Reply via email to