You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by bo...@apache.org on 2014/08/31 21:27:54 UTC
svn commit: r920865 [23/45] - in
/websites/production/commons/content/proper/commons-compress: ./ apidocs/
apidocs/org/apache/commons/compress/archivers/
apidocs/org/apache/commons/compress/archivers/ar/
apidocs/org/apache/commons/compress/archivers/ar...
Modified: websites/production/commons/content/proper/commons-compress/cobertura/org.apache.commons.compress.archivers.sevenz.SevenZFile.html
==============================================================================
--- websites/production/commons/content/proper/commons-compress/cobertura/org.apache.commons.compress.archivers.sevenz.SevenZFile.html (original)
+++ websites/production/commons/content/proper/commons-compress/cobertura/org.apache.commons.compress.archivers.sevenz.SevenZFile.html Sun Aug 31 19:27:46 2014
@@ -12,7 +12,7 @@
<div class="separator"> </div>
<table class="report">
<thead><tr> <td class="heading">Classes in this File</td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Line Coverage</a></td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Branch Coverage</a></td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Complexity</a></td></tr></thead>
- <tr><td><a href="org.apache.commons.compress.archivers.sevenz.SevenZFile.html">SevenZFile</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">88%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:88px"><span class="text">447/503</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">76%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:76px"><span class="text">224/291</span></div></div></td></tr></table></td><td class="value"><span class="hidden">8.192307692307692;</span>8.192</td></tr>
+ <tr><td><a href="org.apache.commons.compress.archivers.sevenz.SevenZFile.html">SevenZFile</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">85%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:85px"><span class="text">447/523</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">73%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:73px"><span class="text">224/305</span></div></div></td></tr></table></td><td class="value"><span class="hidden">8.296296296296296;</span>8.296</td></tr>
</table>
<div class="separator"> </div>
@@ -421,7 +421,7 @@
<tr> <td class="numLine"> 245</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLineCover"> 246</td> <td class="nbHitsUncovered"><a title="Line 246: Conditional coverage 50% (1/2)."> 42</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 246: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (nid != NID.kEnd) {</a></span></pre></td></tr>
-<tr> <td class="numLineCover"> 247</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">throw</span> <span class="keyword">new</span> IOException(<span class="string">"Badly terminated header"</span>);</span></pre></td></tr>
+<tr> <td class="numLineCover"> 247</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">throw</span> <span class="keyword">new</span> IOException(<span class="string">"Badly terminated header, found "</span> + nid);</span></pre></td></tr>
<tr> <td class="numLine"> 248</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLineCover"> 249</td> <td class="nbHitsCovered"> 42</td> <td class="src"><pre class="src"> }</pre></td></tr>
@@ -466,950 +466,998 @@
<tr> <td class="numLineCover"> 277</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">throw</span> <span class="keyword">new</span> IOException(<span class="string">"Multi input/output stream coders are not yet supported"</span>);</span></pre></td></tr>
<tr> <td class="numLine"> 278</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
-<tr> <td class="numLineCover"> 279</td> <td class="nbHitsCovered"> 7</td> <td class="src"><pre class="src"> inputStreamStack = Coders.addDecoder(inputStreamStack, coder, password);</pre></td></tr>
-<tr> <td class="numLineCover"> 280</td> <td class="nbHitsCovered"> 6</td> <td class="src"><pre class="src"> }</pre></td></tr>
-<tr> <td class="numLineCover"> 281</td> <td class="nbHitsUncovered"><a title="Line 281: Conditional coverage 50% (1/2)."> 4</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 281: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (folder.hasCrc) {</a></span></pre></td></tr>
-<tr> <td class="numLineCover"> 282</td> <td class="nbHitsCovered"> 4</td> <td class="src"><pre class="src"> inputStreamStack = <span class="keyword">new</span> CRC32VerifyingInputStream(inputStreamStack,</pre></td></tr>
-<tr> <td class="numLine"> 283</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> folder.getUnpackSize(), folder.crc);</pre></td></tr>
+<tr> <td class="numLineCover"> 279</td> <td class="nbHitsCovered"> 7</td> <td class="src"><pre class="src"> inputStreamStack = Coders.addDecoder(inputStreamStack, folder.getUnpackSizeForCoder(coder),</pre></td></tr>
+<tr> <td class="numLine"> 280</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> coder, password);</pre></td></tr>
+<tr> <td class="numLineCover"> 281</td> <td class="nbHitsCovered"> 6</td> <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLineCover"> 282</td> <td class="nbHitsUncovered"><a title="Line 282: Conditional coverage 50% (1/2)."> 4</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 282: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (folder.hasCrc) {</a></span></pre></td></tr>
+<tr> <td class="numLineCover"> 283</td> <td class="nbHitsCovered"> 4</td> <td class="src"><pre class="src"> inputStreamStack = <span class="keyword">new</span> CRC32VerifyingInputStream(inputStreamStack,</pre></td></tr>
<tr> <td class="numLine"> 284</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> folder.getUnpackSize(), folder.crc);</pre></td></tr>
+<tr> <td class="numLine"> 285</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
-<tr> <td class="numLineCover"> 285</td> <td class="nbHitsCovered"> 4</td> <td class="src"><pre class="src"> <span class="keyword">final</span> <span class="keyword">byte</span>[] nextHeader = <span class="keyword">new</span> <span class="keyword">byte</span>[(<span class="keyword">int</span>)folder.getUnpackSize()];</pre></td></tr>
-<tr> <td class="numLineCover"> 286</td> <td class="nbHitsCovered"> 4</td> <td class="src"><pre class="src"> <span class="keyword">final</span> DataInputStream nextHeaderInputStream = <span class="keyword">new</span> DataInputStream(inputStreamStack);</pre></td></tr>
-<tr> <td class="numLine"> 287</td> <td class="nbHits"> </td>
+<tr> <td class="numLineCover"> 286</td> <td class="nbHitsCovered"> 4</td> <td class="src"><pre class="src"> <span class="keyword">final</span> <span class="keyword">byte</span>[] nextHeader = <span class="keyword">new</span> <span class="keyword">byte</span>[(<span class="keyword">int</span>)folder.getUnpackSize()];</pre></td></tr>
+<tr> <td class="numLineCover"> 287</td> <td class="nbHitsCovered"> 4</td> <td class="src"><pre class="src"> <span class="keyword">final</span> DataInputStream nextHeaderInputStream = <span class="keyword">new</span> DataInputStream(inputStreamStack);</pre></td></tr>
+<tr> <td class="numLine"> 288</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">try</span> {</pre></td></tr>
-<tr> <td class="numLineCover"> 288</td> <td class="nbHitsCovered"> 4</td> <td class="src"><pre class="src"> nextHeaderInputStream.readFully(nextHeader);</pre></td></tr>
-<tr> <td class="numLine"> 289</td> <td class="nbHits"> </td>
+<tr> <td class="numLineCover"> 289</td> <td class="nbHitsCovered"> 4</td> <td class="src"><pre class="src"> nextHeaderInputStream.readFully(nextHeader);</pre></td></tr>
+<tr> <td class="numLine"> 290</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> } <span class="keyword">finally</span> {</pre></td></tr>
-<tr> <td class="numLineCover"> 290</td> <td class="nbHitsCovered"> 4</td> <td class="src"><pre class="src"> nextHeaderInputStream.close();</pre></td></tr>
-<tr> <td class="numLineCover"> 291</td> <td class="nbHitsCovered"> 4</td> <td class="src"><pre class="src"> }</pre></td></tr>
-<tr> <td class="numLineCover"> 292</td> <td class="nbHitsCovered"> 4</td> <td class="src"><pre class="src"> <span class="keyword">return</span> <span class="keyword">new</span> DataInputStream(<span class="keyword">new</span> ByteArrayInputStream(nextHeader));</pre></td></tr>
-<tr> <td class="numLine"> 293</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLineCover"> 291</td> <td class="nbHitsCovered"> 4</td> <td class="src"><pre class="src"> nextHeaderInputStream.close();</pre></td></tr>
+<tr> <td class="numLineCover"> 292</td> <td class="nbHitsCovered"> 4</td> <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLineCover"> 293</td> <td class="nbHitsCovered"> 4</td> <td class="src"><pre class="src"> <span class="keyword">return</span> <span class="keyword">new</span> DataInputStream(<span class="keyword">new</span> ByteArrayInputStream(nextHeader));</pre></td></tr>
<tr> <td class="numLine"> 294</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> </pre></td></tr>
+ <td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 295</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> </pre></td></tr>
+<tr> <td class="numLine"> 296</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">void</span> readStreamsInfo(<span class="keyword">final</span> DataInput header, <span class="keyword">final</span> Archive archive) <span class="keyword">throws</span> IOException {</pre></td></tr>
-<tr> <td class="numLineCover"> 296</td> <td class="nbHitsCovered"> 46</td> <td class="src"><pre class="src"> <span class="keyword">int</span> nid = header.readUnsignedByte();</pre></td></tr>
-<tr> <td class="numLine"> 297</td> <td class="nbHits"> </td>
+<tr> <td class="numLineCover"> 297</td> <td class="nbHitsCovered"> 46</td> <td class="src"><pre class="src"> <span class="keyword">int</span> nid = header.readUnsignedByte();</pre></td></tr>
+<tr> <td class="numLine"> 298</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLineCover"> 298</td> <td class="nbHitsCovered"><a title="Line 298: Conditional coverage 100% (2/2)."> 46</a></td> <td class="src"><pre class="src"> <a title="Line 298: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (nid == NID.kPackInfo) {</a></pre></td></tr>
-<tr> <td class="numLineCover"> 299</td> <td class="nbHitsCovered"> 40</td> <td class="src"><pre class="src"> readPackInfo(header, archive);</pre></td></tr>
-<tr> <td class="numLineCover"> 300</td> <td class="nbHitsCovered"> 40</td> <td class="src"><pre class="src"> nid = header.readUnsignedByte();</pre></td></tr>
-<tr> <td class="numLine"> 301</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLineCover"> 299</td> <td class="nbHitsCovered"><a title="Line 299: Conditional coverage 100% (2/2)."> 46</a></td> <td class="src"><pre class="src"> <a title="Line 299: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (nid == NID.kPackInfo) {</a></pre></td></tr>
+<tr> <td class="numLineCover"> 300</td> <td class="nbHitsCovered"> 40</td> <td class="src"><pre class="src"> readPackInfo(header, archive);</pre></td></tr>
+<tr> <td class="numLineCover"> 301</td> <td class="nbHitsCovered"> 40</td> <td class="src"><pre class="src"> nid = header.readUnsignedByte();</pre></td></tr>
<tr> <td class="numLine"> 302</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLine"> 303</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLineCover"> 303</td> <td class="nbHitsCovered"><a title="Line 303: Conditional coverage 100% (2/2)."> 46</a></td> <td class="src"><pre class="src"> <a title="Line 303: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (nid == NID.kUnpackInfo) {</a></pre></td></tr>
-<tr> <td class="numLineCover"> 304</td> <td class="nbHitsCovered"> 40</td> <td class="src"><pre class="src"> readUnpackInfo(header, archive);</pre></td></tr>
-<tr> <td class="numLineCover"> 305</td> <td class="nbHitsCovered"> 40</td> <td class="src"><pre class="src"> nid = header.readUnsignedByte();</pre></td></tr>
-<tr> <td class="numLine"> 306</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> } <span class="keyword">else</span> {</pre></td></tr>
+<tr> <td class="numLineCover"> 304</td> <td class="nbHitsCovered"><a title="Line 304: Conditional coverage 100% (2/2)."> 46</a></td> <td class="src"><pre class="src"> <a title="Line 304: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (nid == NID.kUnpackInfo) {</a></pre></td></tr>
+<tr> <td class="numLineCover"> 305</td> <td class="nbHitsCovered"> 40</td> <td class="src"><pre class="src"> readUnpackInfo(header, archive);</pre></td></tr>
+<tr> <td class="numLineCover"> 306</td> <td class="nbHitsCovered"> 40</td> <td class="src"><pre class="src"> nid = header.readUnsignedByte();</pre></td></tr>
<tr> <td class="numLine"> 307</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> } <span class="keyword">else</span> {</pre></td></tr>
+<tr> <td class="numLine"> 308</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment">// archive without unpack/coders info</span></pre></td></tr>
-<tr> <td class="numLineCover"> 308</td> <td class="nbHitsCovered"> 6</td> <td class="src"><pre class="src"> archive.folders = <span class="keyword">new</span> Folder[0];</pre></td></tr>
-<tr> <td class="numLine"> 309</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLineCover"> 309</td> <td class="nbHitsCovered"> 6</td> <td class="src"><pre class="src"> archive.folders = <span class="keyword">new</span> Folder[0];</pre></td></tr>
<tr> <td class="numLine"> 310</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLineCover"> 311</td> <td class="nbHitsCovered"><a title="Line 311: Conditional coverage 100% (2/2)."> 46</a></td> <td class="src"><pre class="src"> <a title="Line 311: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (nid == NID.kSubStreamsInfo) {</a></pre></td></tr>
-<tr> <td class="numLineCover"> 312</td> <td class="nbHitsCovered"> 41</td> <td class="src"><pre class="src"> readSubStreamsInfo(header, archive);</pre></td></tr>
-<tr> <td class="numLineCover"> 313</td> <td class="nbHitsCovered"> 41</td> <td class="src"><pre class="src"> nid = header.readUnsignedByte();</pre></td></tr>
-<tr> <td class="numLine"> 314</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLine"> 311</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> </pre></td></tr>
+<tr> <td class="numLineCover"> 312</td> <td class="nbHitsCovered"><a title="Line 312: Conditional coverage 100% (2/2)."> 46</a></td> <td class="src"><pre class="src"> <a title="Line 312: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (nid == NID.kSubStreamsInfo) {</a></pre></td></tr>
+<tr> <td class="numLineCover"> 313</td> <td class="nbHitsCovered"> 41</td> <td class="src"><pre class="src"> readSubStreamsInfo(header, archive);</pre></td></tr>
+<tr> <td class="numLineCover"> 314</td> <td class="nbHitsCovered"> 41</td> <td class="src"><pre class="src"> nid = header.readUnsignedByte();</pre></td></tr>
<tr> <td class="numLine"> 315</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLine"> 316</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLineCover"> 316</td> <td class="nbHitsUncovered"><a title="Line 316: Conditional coverage 50% (1/2)."> 46</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 316: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (nid != NID.kEnd) {</a></span></pre></td></tr>
-<tr> <td class="numLineCover"> 317</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">throw</span> <span class="keyword">new</span> IOException(<span class="string">"Badly terminated StreamsInfo"</span>);</span></pre></td></tr>
-<tr> <td class="numLine"> 318</td> <td class="nbHits"> </td>
+<tr> <td class="numLineCover"> 317</td> <td class="nbHitsUncovered"><a title="Line 317: Conditional coverage 50% (1/2)."> 46</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 317: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (nid != NID.kEnd) {</a></span></pre></td></tr>
+<tr> <td class="numLineCover"> 318</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">throw</span> <span class="keyword">new</span> IOException(<span class="string">"Badly terminated StreamsInfo"</span>);</span></pre></td></tr>
+<tr> <td class="numLine"> 319</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
-<tr> <td class="numLineCover"> 319</td> <td class="nbHitsCovered"> 46</td> <td class="src"><pre class="src"> }</pre></td></tr>
-<tr> <td class="numLine"> 320</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> </pre></td></tr>
+<tr> <td class="numLineCover"> 320</td> <td class="nbHitsCovered"> 46</td> <td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 321</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> </pre></td></tr>
+<tr> <td class="numLine"> 322</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">void</span> readPackInfo(<span class="keyword">final</span> DataInput header, <span class="keyword">final</span> Archive archive) <span class="keyword">throws</span> IOException {</pre></td></tr>
-<tr> <td class="numLineCover"> 322</td> <td class="nbHitsCovered"> 40</td> <td class="src"><pre class="src"> archive.packPos = readUint64(header);</pre></td></tr>
-<tr> <td class="numLineCover"> 323</td> <td class="nbHitsCovered"> 40</td> <td class="src"><pre class="src"> <span class="keyword">final</span> <span class="keyword">long</span> numPackStreams = readUint64(header);</pre></td></tr>
-<tr> <td class="numLineCover"> 324</td> <td class="nbHitsCovered"> 40</td> <td class="src"><pre class="src"> <span class="keyword">int</span> nid = header.readUnsignedByte();</pre></td></tr>
-<tr> <td class="numLineCover"> 325</td> <td class="nbHitsUncovered"><a title="Line 325: Conditional coverage 50% (1/2)."> 40</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 325: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (nid == NID.kSize) {</a></span></pre></td></tr>
-<tr> <td class="numLineCover"> 326</td> <td class="nbHitsCovered"> 40</td> <td class="src"><pre class="src"> archive.packSizes = <span class="keyword">new</span> <span class="keyword">long</span>[(<span class="keyword">int</span>)numPackStreams];</pre></td></tr>
-<tr> <td class="numLineCover"> 327</td> <td class="nbHitsCovered"><a title="Line 327: Conditional coverage 100% (2/2)."> 96</a></td> <td class="src"><pre class="src"> <a title="Line 327: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (<span class="keyword">int</span> i = 0; i < archive.packSizes.length; i++) {</a></pre></td></tr>
-<tr> <td class="numLineCover"> 328</td> <td class="nbHitsCovered"> 56</td> <td class="src"><pre class="src"> archive.packSizes[i] = readUint64(header);</pre></td></tr>
-<tr> <td class="numLine"> 329</td> <td class="nbHits"> </td>
+<tr> <td class="numLineCover"> 323</td> <td class="nbHitsCovered"> 40</td> <td class="src"><pre class="src"> archive.packPos = readUint64(header);</pre></td></tr>
+<tr> <td class="numLineCover"> 324</td> <td class="nbHitsCovered"> 40</td> <td class="src"><pre class="src"> <span class="keyword">final</span> <span class="keyword">long</span> numPackStreams = readUint64(header);</pre></td></tr>
+<tr> <td class="numLineCover"> 325</td> <td class="nbHitsCovered"> 40</td> <td class="src"><pre class="src"> <span class="keyword">int</span> nid = header.readUnsignedByte();</pre></td></tr>
+<tr> <td class="numLineCover"> 326</td> <td class="nbHitsUncovered"><a title="Line 326: Conditional coverage 50% (1/2)."> 40</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 326: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (nid == NID.kSize) {</a></span></pre></td></tr>
+<tr> <td class="numLineCover"> 327</td> <td class="nbHitsCovered"> 40</td> <td class="src"><pre class="src"> archive.packSizes = <span class="keyword">new</span> <span class="keyword">long</span>[(<span class="keyword">int</span>)numPackStreams];</pre></td></tr>
+<tr> <td class="numLineCover"> 328</td> <td class="nbHitsCovered"><a title="Line 328: Conditional coverage 100% (2/2)."> 96</a></td> <td class="src"><pre class="src"> <a title="Line 328: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (<span class="keyword">int</span> i = 0; i < archive.packSizes.length; i++) {</a></pre></td></tr>
+<tr> <td class="numLineCover"> 329</td> <td class="nbHitsCovered"> 56</td> <td class="src"><pre class="src"> archive.packSizes[i] = readUint64(header);</pre></td></tr>
+<tr> <td class="numLine"> 330</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
-<tr> <td class="numLineCover"> 330</td> <td class="nbHitsCovered"> 40</td> <td class="src"><pre class="src"> nid = header.readUnsignedByte();</pre></td></tr>
-<tr> <td class="numLine"> 331</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLineCover"> 331</td> <td class="nbHitsCovered"> 40</td> <td class="src"><pre class="src"> nid = header.readUnsignedByte();</pre></td></tr>
<tr> <td class="numLine"> 332</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLine"> 333</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLineCover"> 333</td> <td class="nbHitsCovered"><a title="Line 333: Conditional coverage 100% (2/2)."> 40</a></td> <td class="src"><pre class="src"> <a title="Line 333: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (nid == NID.kCRC) {</a></pre></td></tr>
-<tr> <td class="numLineCover"> 334</td> <td class="nbHitsCovered"> 29</td> <td class="src"><pre class="src"> archive.packCrcsDefined = readAllOrBits(header, (<span class="keyword">int</span>)numPackStreams);</pre></td></tr>
-<tr> <td class="numLineCover"> 335</td> <td class="nbHitsCovered"> 29</td> <td class="src"><pre class="src"> archive.packCrcs = <span class="keyword">new</span> <span class="keyword">long</span>[(<span class="keyword">int</span>)numPackStreams];</pre></td></tr>
-<tr> <td class="numLineCover"> 336</td> <td class="nbHitsCovered"><a title="Line 336: Conditional coverage 100% (2/2)."> 74</a></td> <td class="src"><pre class="src"> <a title="Line 336: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (<span class="keyword">int</span> i = 0; i < (<span class="keyword">int</span>)numPackStreams; i++) {</a></pre></td></tr>
-<tr> <td class="numLineCover"> 337</td> <td class="nbHitsUncovered"><a title="Line 337: Conditional coverage 50% (1/2)."> 45</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 337: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (archive.packCrcsDefined.get(i)) {</a></span></pre></td></tr>
-<tr> <td class="numLineCover"> 338</td> <td class="nbHitsCovered"> 45</td> <td class="src"><pre class="src"> archive.packCrcs[i] = 0xffffFFFFL & Integer.reverseBytes(header.readInt());</pre></td></tr>
-<tr> <td class="numLine"> 339</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLineCover"> 334</td> <td class="nbHitsCovered"><a title="Line 334: Conditional coverage 100% (2/2)."> 40</a></td> <td class="src"><pre class="src"> <a title="Line 334: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (nid == NID.kCRC) {</a></pre></td></tr>
+<tr> <td class="numLineCover"> 335</td> <td class="nbHitsCovered"> 29</td> <td class="src"><pre class="src"> archive.packCrcsDefined = readAllOrBits(header, (<span class="keyword">int</span>)numPackStreams);</pre></td></tr>
+<tr> <td class="numLineCover"> 336</td> <td class="nbHitsCovered"> 29</td> <td class="src"><pre class="src"> archive.packCrcs = <span class="keyword">new</span> <span class="keyword">long</span>[(<span class="keyword">int</span>)numPackStreams];</pre></td></tr>
+<tr> <td class="numLineCover"> 337</td> <td class="nbHitsCovered"><a title="Line 337: Conditional coverage 100% (2/2)."> 74</a></td> <td class="src"><pre class="src"> <a title="Line 337: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (<span class="keyword">int</span> i = 0; i < (<span class="keyword">int</span>)numPackStreams; i++) {</a></pre></td></tr>
+<tr> <td class="numLineCover"> 338</td> <td class="nbHitsUncovered"><a title="Line 338: Conditional coverage 50% (1/2)."> 45</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 338: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (archive.packCrcsDefined.get(i)) {</a></span></pre></td></tr>
+<tr> <td class="numLineCover"> 339</td> <td class="nbHitsCovered"> 45</td> <td class="src"><pre class="src"> archive.packCrcs[i] = 0xffffFFFFL & Integer.reverseBytes(header.readInt());</pre></td></tr>
<tr> <td class="numLine"> 340</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> }</pre></td></tr>
+ <td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 341</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLine"> 342</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLineCover"> 342</td> <td class="nbHitsCovered"> 29</td> <td class="src"><pre class="src"> nid = header.readUnsignedByte();</pre></td></tr>
-<tr> <td class="numLine"> 343</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLineCover"> 343</td> <td class="nbHitsCovered"> 29</td> <td class="src"><pre class="src"> nid = header.readUnsignedByte();</pre></td></tr>
<tr> <td class="numLine"> 344</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLine"> 345</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLineCover"> 345</td> <td class="nbHitsUncovered"><a title="Line 345: Conditional coverage 50% (1/2)."> 40</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 345: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (nid != NID.kEnd) {</a></span></pre></td></tr>
-<tr> <td class="numLineCover"> 346</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">throw</span> <span class="keyword">new</span> IOException(<span class="string">"Badly terminated PackInfo ("</span> + nid + <span class="string">")"</span>);</span></pre></td></tr>
-<tr> <td class="numLine"> 347</td> <td class="nbHits"> </td>
+<tr> <td class="numLineCover"> 346</td> <td class="nbHitsUncovered"><a title="Line 346: Conditional coverage 50% (1/2)."> 40</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 346: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (nid != NID.kEnd) {</a></span></pre></td></tr>
+<tr> <td class="numLineCover"> 347</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">throw</span> <span class="keyword">new</span> IOException(<span class="string">"Badly terminated PackInfo ("</span> + nid + <span class="string">")"</span>);</span></pre></td></tr>
+<tr> <td class="numLine"> 348</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
-<tr> <td class="numLineCover"> 348</td> <td class="nbHitsCovered"> 40</td> <td class="src"><pre class="src"> }</pre></td></tr>
-<tr> <td class="numLine"> 349</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> </pre></td></tr>
+<tr> <td class="numLineCover"> 349</td> <td class="nbHitsCovered"> 40</td> <td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 350</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> </pre></td></tr>
+<tr> <td class="numLine"> 351</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">void</span> readUnpackInfo(<span class="keyword">final</span> DataInput header, <span class="keyword">final</span> Archive archive) <span class="keyword">throws</span> IOException {</pre></td></tr>
-<tr> <td class="numLineCover"> 351</td> <td class="nbHitsCovered"> 40</td> <td class="src"><pre class="src"> <span class="keyword">int</span> nid = header.readUnsignedByte();</pre></td></tr>
-<tr> <td class="numLineCover"> 352</td> <td class="nbHitsUncovered"><a title="Line 352: Conditional coverage 50% (1/2)."> 40</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 352: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (nid != NID.kFolder) {</a></span></pre></td></tr>
-<tr> <td class="numLineCover"> 353</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">throw</span> <span class="keyword">new</span> IOException(<span class="string">"Expected kFolder, got "</span> + nid);</span></pre></td></tr>
-<tr> <td class="numLine"> 354</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> }</pre></td></tr>
-<tr> <td class="numLineCover"> 355</td> <td class="nbHitsCovered"> 40</td> <td class="src"><pre class="src"> <span class="keyword">final</span> <span class="keyword">long</span> numFolders = readUint64(header);</pre></td></tr>
-<tr> <td class="numLineCover"> 356</td> <td class="nbHitsCovered"> 40</td> <td class="src"><pre class="src"> <span class="keyword">final</span> Folder[] folders = <span class="keyword">new</span> Folder[(<span class="keyword">int</span>)numFolders];</pre></td></tr>
-<tr> <td class="numLineCover"> 357</td> <td class="nbHitsCovered"> 40</td> <td class="src"><pre class="src"> archive.folders = folders;</pre></td></tr>
-<tr> <td class="numLineCover"> 358</td> <td class="nbHitsCovered"> 40</td> <td class="src"><pre class="src"> <span class="keyword">final</span> <span class="keyword">int</span> external = header.readUnsignedByte();</pre></td></tr>
-<tr> <td class="numLineCover"> 359</td> <td class="nbHitsUncovered"><a title="Line 359: Conditional coverage 50% (1/2)."> 40</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 359: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (external != 0) {</a></span></pre></td></tr>
-<tr> <td class="numLineCover"> 360</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">throw</span> <span class="keyword">new</span> IOException(<span class="string">"External unsupported"</span>);</span></pre></td></tr>
-<tr> <td class="numLine"> 361</td> <td class="nbHits"> </td>
+<tr> <td class="numLineCover"> 352</td> <td class="nbHitsCovered"> 40</td> <td class="src"><pre class="src"> <span class="keyword">int</span> nid = header.readUnsignedByte();</pre></td></tr>
+<tr> <td class="numLineCover"> 353</td> <td class="nbHitsUncovered"><a title="Line 353: Conditional coverage 50% (1/2)."> 40</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 353: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (nid != NID.kFolder) {</a></span></pre></td></tr>
+<tr> <td class="numLineCover"> 354</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">throw</span> <span class="keyword">new</span> IOException(<span class="string">"Expected kFolder, got "</span> + nid);</span></pre></td></tr>
+<tr> <td class="numLine"> 355</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLineCover"> 356</td> <td class="nbHitsCovered"> 40</td> <td class="src"><pre class="src"> <span class="keyword">final</span> <span class="keyword">long</span> numFolders = readUint64(header);</pre></td></tr>
+<tr> <td class="numLineCover"> 357</td> <td class="nbHitsCovered"> 40</td> <td class="src"><pre class="src"> <span class="keyword">final</span> Folder[] folders = <span class="keyword">new</span> Folder[(<span class="keyword">int</span>)numFolders];</pre></td></tr>
+<tr> <td class="numLineCover"> 358</td> <td class="nbHitsCovered"> 40</td> <td class="src"><pre class="src"> archive.folders = folders;</pre></td></tr>
+<tr> <td class="numLineCover"> 359</td> <td class="nbHitsCovered"> 40</td> <td class="src"><pre class="src"> <span class="keyword">final</span> <span class="keyword">int</span> external = header.readUnsignedByte();</pre></td></tr>
+<tr> <td class="numLineCover"> 360</td> <td class="nbHitsUncovered"><a title="Line 360: Conditional coverage 50% (1/2)."> 40</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 360: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (external != 0) {</a></span></pre></td></tr>
+<tr> <td class="numLineCover"> 361</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">throw</span> <span class="keyword">new</span> IOException(<span class="string">"External unsupported"</span>);</span></pre></td></tr>
+<tr> <td class="numLine"> 362</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> } <span class="keyword">else</span> {</pre></td></tr>
-<tr> <td class="numLineCover"> 362</td> <td class="nbHitsCovered"><a title="Line 362: Conditional coverage 100% (2/2)."> 96</a></td> <td class="src"><pre class="src"> <a title="Line 362: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (<span class="keyword">int</span> i = 0; i < (<span class="keyword">int</span>)numFolders; i++) {</a></pre></td></tr>
-<tr> <td class="numLineCover"> 363</td> <td class="nbHitsCovered"> 56</td> <td class="src"><pre class="src"> folders[i] = readFolder(header);</pre></td></tr>
-<tr> <td class="numLine"> 364</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLineCover"> 363</td> <td class="nbHitsCovered"><a title="Line 363: Conditional coverage 100% (2/2)."> 96</a></td> <td class="src"><pre class="src"> <a title="Line 363: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (<span class="keyword">int</span> i = 0; i < (<span class="keyword">int</span>)numFolders; i++) {</a></pre></td></tr>
+<tr> <td class="numLineCover"> 364</td> <td class="nbHitsCovered"> 56</td> <td class="src"><pre class="src"> folders[i] = readFolder(header);</pre></td></tr>
<tr> <td class="numLine"> 365</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> }</pre></td></tr>
+ <td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 366</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLine"> 367</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLineCover"> 367</td> <td class="nbHitsCovered"> 40</td> <td class="src"><pre class="src"> nid = header.readUnsignedByte();</pre></td></tr>
-<tr> <td class="numLineCover"> 368</td> <td class="nbHitsUncovered"><a title="Line 368: Conditional coverage 50% (1/2)."> 40</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 368: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (nid != NID.kCodersUnpackSize) {</a></span></pre></td></tr>
-<tr> <td class="numLineCover"> 369</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">throw</span> <span class="keyword">new</span> IOException(<span class="string">"Expected kCodersUnpackSize, got "</span> + nid);</span></pre></td></tr>
-<tr> <td class="numLine"> 370</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> }</pre></td></tr>
-<tr> <td class="numLineCover"> 371</td> <td class="nbHitsCovered"><a title="Line 371: Conditional coverage 100% (2/2)."> 96</a></td> <td class="src"><pre class="src"> <a title="Line 371: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (<span class="keyword">final</span> Folder folder : folders) {</a></pre></td></tr>
-<tr> <td class="numLineCover"> 372</td> <td class="nbHitsCovered"> 56</td> <td class="src"><pre class="src"> folder.unpackSizes = <span class="keyword">new</span> <span class="keyword">long</span>[(<span class="keyword">int</span>)folder.totalOutputStreams];</pre></td></tr>
-<tr> <td class="numLineCover"> 373</td> <td class="nbHitsCovered"><a title="Line 373: Conditional coverage 100% (2/2)."> 126</a></td> <td class="src"><pre class="src"> <a title="Line 373: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (<span class="keyword">int</span> i = 0; i < folder.totalOutputStreams; i++) {</a></pre></td></tr>
-<tr> <td class="numLineCover"> 374</td> <td class="nbHitsCovered"> 70</td> <td class="src"><pre class="src"> folder.unpackSizes[i] = readUint64(header);</pre></td></tr>
-<tr> <td class="numLine"> 375</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLineCover"> 368</td> <td class="nbHitsCovered"> 40</td> <td class="src"><pre class="src"> nid = header.readUnsignedByte();</pre></td></tr>
+<tr> <td class="numLineCover"> 369</td> <td class="nbHitsUncovered"><a title="Line 369: Conditional coverage 50% (1/2)."> 40</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 369: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (nid != NID.kCodersUnpackSize) {</a></span></pre></td></tr>
+<tr> <td class="numLineCover"> 370</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">throw</span> <span class="keyword">new</span> IOException(<span class="string">"Expected kCodersUnpackSize, got "</span> + nid);</span></pre></td></tr>
+<tr> <td class="numLine"> 371</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLineCover"> 372</td> <td class="nbHitsCovered"><a title="Line 372: Conditional coverage 100% (2/2)."> 96</a></td> <td class="src"><pre class="src"> <a title="Line 372: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (<span class="keyword">final</span> Folder folder : folders) {</a></pre></td></tr>
+<tr> <td class="numLineCover"> 373</td> <td class="nbHitsCovered"> 56</td> <td class="src"><pre class="src"> folder.unpackSizes = <span class="keyword">new</span> <span class="keyword">long</span>[(<span class="keyword">int</span>)folder.totalOutputStreams];</pre></td></tr>
+<tr> <td class="numLineCover"> 374</td> <td class="nbHitsCovered"><a title="Line 374: Conditional coverage 100% (2/2)."> 126</a></td> <td class="src"><pre class="src"> <a title="Line 374: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (<span class="keyword">int</span> i = 0; i < folder.totalOutputStreams; i++) {</a></pre></td></tr>
+<tr> <td class="numLineCover"> 375</td> <td class="nbHitsCovered"> 70</td> <td class="src"><pre class="src"> folder.unpackSizes[i] = readUint64(header);</pre></td></tr>
<tr> <td class="numLine"> 376</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> }</pre></td></tr>
+ <td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 377</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLine"> 378</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLineCover"> 378</td> <td class="nbHitsCovered"> 40</td> <td class="src"><pre class="src"> nid = header.readUnsignedByte();</pre></td></tr>
-<tr> <td class="numLineCover"> 379</td> <td class="nbHitsCovered"><a title="Line 379: Conditional coverage 100% (2/2)."> 40</a></td> <td class="src"><pre class="src"> <a title="Line 379: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (nid == NID.kCRC) {</a></pre></td></tr>
-<tr> <td class="numLineCover"> 380</td> <td class="nbHitsCovered"> 34</td> <td class="src"><pre class="src"> <span class="keyword">final</span> BitSet crcsDefined = readAllOrBits(header, (<span class="keyword">int</span>)numFolders);</pre></td></tr>
-<tr> <td class="numLineCover"> 381</td> <td class="nbHitsCovered"><a title="Line 381: Conditional coverage 100% (2/2)."> 84</a></td> <td class="src"><pre class="src"> <a title="Line 381: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (<span class="keyword">int</span> i = 0; i < (<span class="keyword">int</span>)numFolders; i++) {</a></pre></td></tr>
-<tr> <td class="numLineCover"> 382</td> <td class="nbHitsUncovered"><a title="Line 382: Conditional coverage 50% (1/2)."> 50</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 382: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (crcsDefined.get(i)) {</a></span></pre></td></tr>
-<tr> <td class="numLineCover"> 383</td> <td class="nbHitsCovered"> 50</td> <td class="src"><pre class="src"> folders[i].hasCrc = <span class="keyword">true</span>;</pre></td></tr>
-<tr> <td class="numLineCover"> 384</td> <td class="nbHitsCovered"> 50</td> <td class="src"><pre class="src"> folders[i].crc = 0xffffFFFFL & Integer.reverseBytes(header.readInt());</pre></td></tr>
-<tr> <td class="numLine"> 385</td> <td class="nbHits"> </td>
+<tr> <td class="numLineCover"> 379</td> <td class="nbHitsCovered"> 40</td> <td class="src"><pre class="src"> nid = header.readUnsignedByte();</pre></td></tr>
+<tr> <td class="numLineCover"> 380</td> <td class="nbHitsCovered"><a title="Line 380: Conditional coverage 100% (2/2)."> 40</a></td> <td class="src"><pre class="src"> <a title="Line 380: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (nid == NID.kCRC) {</a></pre></td></tr>
+<tr> <td class="numLineCover"> 381</td> <td class="nbHitsCovered"> 34</td> <td class="src"><pre class="src"> <span class="keyword">final</span> BitSet crcsDefined = readAllOrBits(header, (<span class="keyword">int</span>)numFolders);</pre></td></tr>
+<tr> <td class="numLineCover"> 382</td> <td class="nbHitsCovered"><a title="Line 382: Conditional coverage 100% (2/2)."> 84</a></td> <td class="src"><pre class="src"> <a title="Line 382: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (<span class="keyword">int</span> i = 0; i < (<span class="keyword">int</span>)numFolders; i++) {</a></pre></td></tr>
+<tr> <td class="numLineCover"> 383</td> <td class="nbHitsUncovered"><a title="Line 383: Conditional coverage 50% (1/2)."> 50</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 383: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (crcsDefined.get(i)) {</a></span></pre></td></tr>
+<tr> <td class="numLineCover"> 384</td> <td class="nbHitsCovered"> 50</td> <td class="src"><pre class="src"> folders[i].hasCrc = <span class="keyword">true</span>;</pre></td></tr>
+<tr> <td class="numLineCover"> 385</td> <td class="nbHitsCovered"> 50</td> <td class="src"><pre class="src"> folders[i].crc = 0xffffFFFFL & Integer.reverseBytes(header.readInt());</pre></td></tr>
+<tr> <td class="numLine"> 386</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> } <span class="keyword">else</span> {</pre></td></tr>
-<tr> <td class="numLineCover"> 386</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> folders[i].hasCrc = <span class="keyword">false</span>;</span></pre></td></tr>
-<tr> <td class="numLine"> 387</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLineCover"> 387</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> folders[i].hasCrc = <span class="keyword">false</span>;</span></pre></td></tr>
<tr> <td class="numLine"> 388</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> }</pre></td></tr>
+ <td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 389</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLine"> 390</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLineCover"> 390</td> <td class="nbHitsCovered"> 34</td> <td class="src"><pre class="src"> nid = header.readUnsignedByte();</pre></td></tr>
-<tr> <td class="numLine"> 391</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLineCover"> 391</td> <td class="nbHitsCovered"> 34</td> <td class="src"><pre class="src"> nid = header.readUnsignedByte();</pre></td></tr>
<tr> <td class="numLine"> 392</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLine"> 393</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLineCover"> 393</td> <td class="nbHitsUncovered"><a title="Line 393: Conditional coverage 50% (1/2)."> 40</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 393: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (nid != NID.kEnd) {</a></span></pre></td></tr>
-<tr> <td class="numLineCover"> 394</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">throw</span> <span class="keyword">new</span> IOException(<span class="string">"Badly terminated UnpackInfo"</span>);</span></pre></td></tr>
-<tr> <td class="numLine"> 395</td> <td class="nbHits"> </td>
+<tr> <td class="numLineCover"> 394</td> <td class="nbHitsUncovered"><a title="Line 394: Conditional coverage 50% (1/2)."> 40</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 394: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (nid != NID.kEnd) {</a></span></pre></td></tr>
+<tr> <td class="numLineCover"> 395</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">throw</span> <span class="keyword">new</span> IOException(<span class="string">"Badly terminated UnpackInfo"</span>);</span></pre></td></tr>
+<tr> <td class="numLine"> 396</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
-<tr> <td class="numLineCover"> 396</td> <td class="nbHitsCovered"> 40</td> <td class="src"><pre class="src"> }</pre></td></tr>
-<tr> <td class="numLine"> 397</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> </pre></td></tr>
+<tr> <td class="numLineCover"> 397</td> <td class="nbHitsCovered"> 40</td> <td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 398</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> </pre></td></tr>
+<tr> <td class="numLine"> 399</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">void</span> readSubStreamsInfo(<span class="keyword">final</span> DataInput header, <span class="keyword">final</span> Archive archive) <span class="keyword">throws</span> IOException {</pre></td></tr>
-<tr> <td class="numLineCover"> 399</td> <td class="nbHitsCovered"><a title="Line 399: Conditional coverage 100% (2/2)."> 92</a></td> <td class="src"><pre class="src"> <a title="Line 399: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (<span class="keyword">final</span> Folder folder : archive.folders) {</a></pre></td></tr>
-<tr> <td class="numLineCover"> 400</td> <td class="nbHitsCovered"> 51</td> <td class="src"><pre class="src"> folder.numUnpackSubStreams = 1;</pre></td></tr>
-<tr> <td class="numLine"> 401</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> }</pre></td></tr>
-<tr> <td class="numLineCover"> 402</td> <td class="nbHitsCovered"> 41</td> <td class="src"><pre class="src"> <span class="keyword">int</span> totalUnpackStreams = archive.folders.length;</pre></td></tr>
-<tr> <td class="numLine"> 403</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLineCover"> 404</td> <td class="nbHitsCovered"> 41</td> <td class="src"><pre class="src"> <span class="keyword">int</span> nid = header.readUnsignedByte();</pre></td></tr>
-<tr> <td class="numLineCover"> 405</td> <td class="nbHitsCovered"><a title="Line 405: Conditional coverage 100% (2/2)."> 41</a></td> <td class="src"><pre class="src"> <a title="Line 405: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (nid == NID.kNumUnpackStream) {</a></pre></td></tr>
-<tr> <td class="numLineCover"> 406</td> <td class="nbHitsCovered"> 4</td> <td class="src"><pre class="src"> totalUnpackStreams = 0;</pre></td></tr>
-<tr> <td class="numLineCover"> 407</td> <td class="nbHitsCovered"><a title="Line 407: Conditional coverage 100% (2/2)."> 8</a></td> <td class="src"><pre class="src"> <a title="Line 407: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (<span class="keyword">final</span> Folder folder : archive.folders) {</a></pre></td></tr>
-<tr> <td class="numLineCover"> 408</td> <td class="nbHitsCovered"> 4</td> <td class="src"><pre class="src"> <span class="keyword">final</span> <span class="keyword">long</span> numStreams = readUint64(header);</pre></td></tr>
-<tr> <td class="numLineCover"> 409</td> <td class="nbHitsCovered"> 4</td> <td class="src"><pre class="src"> folder.numUnpackSubStreams = (<span class="keyword">int</span>)numStreams;</pre></td></tr>
-<tr> <td class="numLineCover"> 410</td> <td class="nbHitsCovered"> 4</td> <td class="src"><pre class="src"> totalUnpackStreams += numStreams;</pre></td></tr>
-<tr> <td class="numLine"> 411</td> <td class="nbHits"> </td>
+<tr> <td class="numLineCover"> 400</td> <td class="nbHitsCovered"><a title="Line 400: Conditional coverage 100% (2/2)."> 92</a></td> <td class="src"><pre class="src"> <a title="Line 400: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (<span class="keyword">final</span> Folder folder : archive.folders) {</a></pre></td></tr>
+<tr> <td class="numLineCover"> 401</td> <td class="nbHitsCovered"> 51</td> <td class="src"><pre class="src"> folder.numUnpackSubStreams = 1;</pre></td></tr>
+<tr> <td class="numLine"> 402</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLineCover"> 403</td> <td class="nbHitsCovered"> 41</td> <td class="src"><pre class="src"> <span class="keyword">int</span> totalUnpackStreams = archive.folders.length;</pre></td></tr>
+<tr> <td class="numLine"> 404</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> </pre></td></tr>
+<tr> <td class="numLineCover"> 405</td> <td class="nbHitsCovered"> 41</td> <td class="src"><pre class="src"> <span class="keyword">int</span> nid = header.readUnsignedByte();</pre></td></tr>
+<tr> <td class="numLineCover"> 406</td> <td class="nbHitsCovered"><a title="Line 406: Conditional coverage 100% (2/2)."> 41</a></td> <td class="src"><pre class="src"> <a title="Line 406: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (nid == NID.kNumUnpackStream) {</a></pre></td></tr>
+<tr> <td class="numLineCover"> 407</td> <td class="nbHitsCovered"> 4</td> <td class="src"><pre class="src"> totalUnpackStreams = 0;</pre></td></tr>
+<tr> <td class="numLineCover"> 408</td> <td class="nbHitsCovered"><a title="Line 408: Conditional coverage 100% (2/2)."> 8</a></td> <td class="src"><pre class="src"> <a title="Line 408: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (<span class="keyword">final</span> Folder folder : archive.folders) {</a></pre></td></tr>
+<tr> <td class="numLineCover"> 409</td> <td class="nbHitsCovered"> 4</td> <td class="src"><pre class="src"> <span class="keyword">final</span> <span class="keyword">long</span> numStreams = readUint64(header);</pre></td></tr>
+<tr> <td class="numLineCover"> 410</td> <td class="nbHitsCovered"> 4</td> <td class="src"><pre class="src"> folder.numUnpackSubStreams = (<span class="keyword">int</span>)numStreams;</pre></td></tr>
+<tr> <td class="numLineCover"> 411</td> <td class="nbHitsCovered"> 4</td> <td class="src"><pre class="src"> totalUnpackStreams += numStreams;</pre></td></tr>
+<tr> <td class="numLine"> 412</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
-<tr> <td class="numLineCover"> 412</td> <td class="nbHitsCovered"> 4</td> <td class="src"><pre class="src"> nid = header.readUnsignedByte();</pre></td></tr>
-<tr> <td class="numLine"> 413</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLineCover"> 413</td> <td class="nbHitsCovered"> 4</td> <td class="src"><pre class="src"> nid = header.readUnsignedByte();</pre></td></tr>
<tr> <td class="numLine"> 414</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLine"> 415</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLineCover"> 415</td> <td class="nbHitsCovered"> 41</td> <td class="src"><pre class="src"> <span class="keyword">final</span> SubStreamsInfo subStreamsInfo = <span class="keyword">new</span> SubStreamsInfo();</pre></td></tr>
-<tr> <td class="numLineCover"> 416</td> <td class="nbHitsCovered"> 41</td> <td class="src"><pre class="src"> subStreamsInfo.unpackSizes = <span class="keyword">new</span> <span class="keyword">long</span>[totalUnpackStreams];</pre></td></tr>
-<tr> <td class="numLineCover"> 417</td> <td class="nbHitsCovered"> 41</td> <td class="src"><pre class="src"> subStreamsInfo.hasCrc = <span class="keyword">new</span> BitSet(totalUnpackStreams);</pre></td></tr>
-<tr> <td class="numLineCover"> 418</td> <td class="nbHitsCovered"> 41</td> <td class="src"><pre class="src"> subStreamsInfo.crcs = <span class="keyword">new</span> <span class="keyword">long</span>[totalUnpackStreams];</pre></td></tr>
-<tr> <td class="numLine"> 419</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLineCover"> 420</td> <td class="nbHitsCovered"> 41</td> <td class="src"><pre class="src"> <span class="keyword">int</span> nextUnpackStream = 0;</pre></td></tr>
-<tr> <td class="numLineCover"> 421</td> <td class="nbHitsCovered"><a title="Line 421: Conditional coverage 100% (2/2)."> 92</a></td> <td class="src"><pre class="src"> <a title="Line 421: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (<span class="keyword">final</span> Folder folder : archive.folders) {</a></pre></td></tr>
-<tr> <td class="numLineCover"> 422</td> <td class="nbHitsUncovered"><a title="Line 422: Conditional coverage 50% (1/2)."> 51</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 422: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (folder.numUnpackSubStreams == 0) {</a></span></pre></td></tr>
-<tr> <td class="numLineCover"> 423</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">continue</span>;</span></pre></td></tr>
-<tr> <td class="numLine"> 424</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> }</pre></td></tr>
-<tr> <td class="numLineCover"> 425</td> <td class="nbHitsCovered"> 51</td> <td class="src"><pre class="src"> <span class="keyword">long</span> sum = 0;</pre></td></tr>
-<tr> <td class="numLineCover"> 426</td> <td class="nbHitsCovered"><a title="Line 426: Conditional coverage 100% (2/2)."> 51</a></td> <td class="src"><pre class="src"> <a title="Line 426: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (nid == NID.kSize) {</a></pre></td></tr>
-<tr> <td class="numLineCover"> 427</td> <td class="nbHitsCovered"><a title="Line 427: Conditional coverage 100% (2/2)."> 392</a></td> <td class="src"><pre class="src"> <a title="Line 427: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (<span class="keyword">int</span> i = 0; i < folder.numUnpackSubStreams - 1; i++) {</a></pre></td></tr>
-<tr> <td class="numLineCover"> 428</td> <td class="nbHitsCovered"> 388</td> <td class="src"><pre class="src"> <span class="keyword">final</span> <span class="keyword">long</span> size = readUint64(header);</pre></td></tr>
-<tr> <td class="numLineCover"> 429</td> <td class="nbHitsCovered"> 388</td> <td class="src"><pre class="src"> subStreamsInfo.unpackSizes[nextUnpackStream++] = size;</pre></td></tr>
-<tr> <td class="numLineCover"> 430</td> <td class="nbHitsCovered"> 388</td> <td class="src"><pre class="src"> sum += size;</pre></td></tr>
-<tr> <td class="numLine"> 431</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLineCover"> 416</td> <td class="nbHitsCovered"> 41</td> <td class="src"><pre class="src"> <span class="keyword">final</span> SubStreamsInfo subStreamsInfo = <span class="keyword">new</span> SubStreamsInfo();</pre></td></tr>
+<tr> <td class="numLineCover"> 417</td> <td class="nbHitsCovered"> 41</td> <td class="src"><pre class="src"> subStreamsInfo.unpackSizes = <span class="keyword">new</span> <span class="keyword">long</span>[totalUnpackStreams];</pre></td></tr>
+<tr> <td class="numLineCover"> 418</td> <td class="nbHitsCovered"> 41</td> <td class="src"><pre class="src"> subStreamsInfo.hasCrc = <span class="keyword">new</span> BitSet(totalUnpackStreams);</pre></td></tr>
+<tr> <td class="numLineCover"> 419</td> <td class="nbHitsCovered"> 41</td> <td class="src"><pre class="src"> subStreamsInfo.crcs = <span class="keyword">new</span> <span class="keyword">long</span>[totalUnpackStreams];</pre></td></tr>
+<tr> <td class="numLine"> 420</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> </pre></td></tr>
+<tr> <td class="numLineCover"> 421</td> <td class="nbHitsCovered"> 41</td> <td class="src"><pre class="src"> <span class="keyword">int</span> nextUnpackStream = 0;</pre></td></tr>
+<tr> <td class="numLineCover"> 422</td> <td class="nbHitsCovered"><a title="Line 422: Conditional coverage 100% (2/2)."> 92</a></td> <td class="src"><pre class="src"> <a title="Line 422: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (<span class="keyword">final</span> Folder folder : archive.folders) {</a></pre></td></tr>
+<tr> <td class="numLineCover"> 423</td> <td class="nbHitsUncovered"><a title="Line 423: Conditional coverage 50% (1/2)."> 51</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 423: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (folder.numUnpackSubStreams == 0) {</a></span></pre></td></tr>
+<tr> <td class="numLineCover"> 424</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">continue</span>;</span></pre></td></tr>
+<tr> <td class="numLine"> 425</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLineCover"> 426</td> <td class="nbHitsCovered"> 51</td> <td class="src"><pre class="src"> <span class="keyword">long</span> sum = 0;</pre></td></tr>
+<tr> <td class="numLineCover"> 427</td> <td class="nbHitsCovered"><a title="Line 427: Conditional coverage 100% (2/2)."> 51</a></td> <td class="src"><pre class="src"> <a title="Line 427: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (nid == NID.kSize) {</a></pre></td></tr>
+<tr> <td class="numLineCover"> 428</td> <td class="nbHitsCovered"><a title="Line 428: Conditional coverage 100% (2/2)."> 392</a></td> <td class="src"><pre class="src"> <a title="Line 428: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (<span class="keyword">int</span> i = 0; i < folder.numUnpackSubStreams - 1; i++) {</a></pre></td></tr>
+<tr> <td class="numLineCover"> 429</td> <td class="nbHitsCovered"> 388</td> <td class="src"><pre class="src"> <span class="keyword">final</span> <span class="keyword">long</span> size = readUint64(header);</pre></td></tr>
+<tr> <td class="numLineCover"> 430</td> <td class="nbHitsCovered"> 388</td> <td class="src"><pre class="src"> subStreamsInfo.unpackSizes[nextUnpackStream++] = size;</pre></td></tr>
+<tr> <td class="numLineCover"> 431</td> <td class="nbHitsCovered"> 388</td> <td class="src"><pre class="src"> sum += size;</pre></td></tr>
<tr> <td class="numLine"> 432</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLine"> 433</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
-<tr> <td class="numLineCover"> 433</td> <td class="nbHitsCovered"> 51</td> <td class="src"><pre class="src"> subStreamsInfo.unpackSizes[nextUnpackStream++] = folder.getUnpackSize() - sum;</pre></td></tr>
-<tr> <td class="numLine"> 434</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> }</pre></td></tr>
-<tr> <td class="numLineCover"> 435</td> <td class="nbHitsCovered"><a title="Line 435: Conditional coverage 100% (2/2)."> 41</a></td> <td class="src"><pre class="src"> <a title="Line 435: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (nid == NID.kSize) {</a></pre></td></tr>
-<tr> <td class="numLineCover"> 436</td> <td class="nbHitsCovered"> 4</td> <td class="src"><pre class="src"> nid = header.readUnsignedByte();</pre></td></tr>
-<tr> <td class="numLine"> 437</td> <td class="nbHits"> </td>
+<tr> <td class="numLineCover"> 434</td> <td class="nbHitsCovered"> 51</td> <td class="src"><pre class="src"> subStreamsInfo.unpackSizes[nextUnpackStream++] = folder.getUnpackSize() - sum;</pre></td></tr>
+<tr> <td class="numLine"> 435</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLineCover"> 436</td> <td class="nbHitsCovered"><a title="Line 436: Conditional coverage 100% (2/2)."> 41</a></td> <td class="src"><pre class="src"> <a title="Line 436: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (nid == NID.kSize) {</a></pre></td></tr>
+<tr> <td class="numLineCover"> 437</td> <td class="nbHitsCovered"> 4</td> <td class="src"><pre class="src"> nid = header.readUnsignedByte();</pre></td></tr>
<tr> <td class="numLine"> 438</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLine"> 439</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLineCover"> 439</td> <td class="nbHitsCovered"> 41</td> <td class="src"><pre class="src"> <span class="keyword">int</span> numDigests = 0;</pre></td></tr>
-<tr> <td class="numLineCover"> 440</td> <td class="nbHitsCovered"><a title="Line 440: Conditional coverage 100% (2/2)."> 92</a></td> <td class="src"><pre class="src"> <a title="Line 440: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (<span class="keyword">final</span> Folder folder : archive.folders) {</a></pre></td></tr>
-<tr> <td class="numLineCover"> 441</td> <td class="nbHitsCovered"><a title="Line 441: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> 51</a></td> <td class="src"><pre class="src"> <a title="Line 441: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> <span class="keyword">if</span> (folder.numUnpackSubStreams != 1 || !folder.hasCrc) {</a></pre></td></tr>
-<tr> <td class="numLineCover"> 442</td> <td class="nbHitsCovered"> 6</td> <td class="src"><pre class="src"> numDigests += folder.numUnpackSubStreams;</pre></td></tr>
-<tr> <td class="numLine"> 443</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLineCover"> 440</td> <td class="nbHitsCovered"> 41</td> <td class="src"><pre class="src"> <span class="keyword">int</span> numDigests = 0;</pre></td></tr>
+<tr> <td class="numLineCover"> 441</td> <td class="nbHitsCovered"><a title="Line 441: Conditional coverage 100% (2/2)."> 92</a></td> <td class="src"><pre class="src"> <a title="Line 441: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (<span class="keyword">final</span> Folder folder : archive.folders) {</a></pre></td></tr>
+<tr> <td class="numLineCover"> 442</td> <td class="nbHitsCovered"><a title="Line 442: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> 51</a></td> <td class="src"><pre class="src"> <a title="Line 442: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> <span class="keyword">if</span> (folder.numUnpackSubStreams != 1 || !folder.hasCrc) {</a></pre></td></tr>
+<tr> <td class="numLineCover"> 443</td> <td class="nbHitsCovered"> 6</td> <td class="src"><pre class="src"> numDigests += folder.numUnpackSubStreams;</pre></td></tr>
<tr> <td class="numLine"> 444</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> }</pre></td></tr>
+ <td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 445</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLine"> 446</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLineCover"> 446</td> <td class="nbHitsCovered"><a title="Line 446: Conditional coverage 100% (2/2)."> 41</a></td> <td class="src"><pre class="src"> <a title="Line 446: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (nid == NID.kCRC) {</a></pre></td></tr>
-<tr> <td class="numLineCover"> 447</td> <td class="nbHitsCovered"> 6</td> <td class="src"><pre class="src"> <span class="keyword">final</span> BitSet hasMissingCrc = readAllOrBits(header, numDigests);</pre></td></tr>
-<tr> <td class="numLineCover"> 448</td> <td class="nbHitsCovered"> 6</td> <td class="src"><pre class="src"> <span class="keyword">final</span> <span class="keyword">long</span>[] missingCrcs = <span class="keyword">new</span> <span class="keyword">long</span>[numDigests];</pre></td></tr>
-<tr> <td class="numLineCover"> 449</td> <td class="nbHitsCovered"><a title="Line 449: Conditional coverage 100% (2/2)."> 400</a></td> <td class="src"><pre class="src"> <a title="Line 449: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (<span class="keyword">int</span> i = 0; i < numDigests; i++) {</a></pre></td></tr>
-<tr> <td class="numLineCover"> 450</td> <td class="nbHitsUncovered"><a title="Line 450: Conditional coverage 50% (1/2)."> 394</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 450: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (hasMissingCrc.get(i)) {</a></span></pre></td></tr>
-<tr> <td class="numLineCover"> 451</td> <td class="nbHitsCovered"> 394</td> <td class="src"><pre class="src"> missingCrcs[i] = 0xffffFFFFL & Integer.reverseBytes(header.readInt());</pre></td></tr>
-<tr> <td class="numLine"> 452</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLineCover"> 447</td> <td class="nbHitsCovered"><a title="Line 447: Conditional coverage 100% (2/2)."> 41</a></td> <td class="src"><pre class="src"> <a title="Line 447: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (nid == NID.kCRC) {</a></pre></td></tr>
+<tr> <td class="numLineCover"> 448</td> <td class="nbHitsCovered"> 6</td> <td class="src"><pre class="src"> <span class="keyword">final</span> BitSet hasMissingCrc = readAllOrBits(header, numDigests);</pre></td></tr>
+<tr> <td class="numLineCover"> 449</td> <td class="nbHitsCovered"> 6</td> <td class="src"><pre class="src"> <span class="keyword">final</span> <span class="keyword">long</span>[] missingCrcs = <span class="keyword">new</span> <span class="keyword">long</span>[numDigests];</pre></td></tr>
+<tr> <td class="numLineCover"> 450</td> <td class="nbHitsCovered"><a title="Line 450: Conditional coverage 100% (2/2)."> 400</a></td> <td class="src"><pre class="src"> <a title="Line 450: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (<span class="keyword">int</span> i = 0; i < numDigests; i++) {</a></pre></td></tr>
+<tr> <td class="numLineCover"> 451</td> <td class="nbHitsUncovered"><a title="Line 451: Conditional coverage 50% (1/2)."> 394</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 451: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (hasMissingCrc.get(i)) {</a></span></pre></td></tr>
+<tr> <td class="numLineCover"> 452</td> <td class="nbHitsCovered"> 394</td> <td class="src"><pre class="src"> missingCrcs[i] = 0xffffFFFFL & Integer.reverseBytes(header.readInt());</pre></td></tr>
<tr> <td class="numLine"> 453</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLine"> 454</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
-<tr> <td class="numLineCover"> 454</td> <td class="nbHitsCovered"> 6</td> <td class="src"><pre class="src"> <span class="keyword">int</span> nextCrc = 0;</pre></td></tr>
-<tr> <td class="numLineCover"> 455</td> <td class="nbHitsCovered"> 6</td> <td class="src"><pre class="src"> <span class="keyword">int</span> nextMissingCrc = 0;</pre></td></tr>
-<tr> <td class="numLineCover"> 456</td> <td class="nbHitsCovered"><a title="Line 456: Conditional coverage 100% (2/2)."> 12</a></td> <td class="src"><pre class="src"> <a title="Line 456: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (<span class="keyword">final</span> Folder folder: archive.folders) {</a></pre></td></tr>
-<tr> <td class="numLineCover"> 457</td> <td class="nbHitsUncovered"><a title="Line 457: Conditional coverage 75% (3/4) [each condition: 100%, 50%]."> 6</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 457: Conditional coverage 75% (3/4) [each condition: 100%, 50%]."> <span class="keyword">if</span> (folder.numUnpackSubStreams == 1 && folder.hasCrc) {</a></span></pre></td></tr>
-<tr> <td class="numLineCover"> 458</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> subStreamsInfo.hasCrc.set(nextCrc, <span class="keyword">true</span>);</span></pre></td></tr>
-<tr> <td class="numLineCover"> 459</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> subStreamsInfo.crcs[nextCrc] = folder.crc;</span></pre></td></tr>
-<tr> <td class="numLineCover"> 460</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> ++nextCrc;</span></pre></td></tr>
-<tr> <td class="numLine"> 461</td> <td class="nbHits"> </td>
+<tr> <td class="numLineCover"> 455</td> <td class="nbHitsCovered"> 6</td> <td class="src"><pre class="src"> <span class="keyword">int</span> nextCrc = 0;</pre></td></tr>
+<tr> <td class="numLineCover"> 456</td> <td class="nbHitsCovered"> 6</td> <td class="src"><pre class="src"> <span class="keyword">int</span> nextMissingCrc = 0;</pre></td></tr>
+<tr> <td class="numLineCover"> 457</td> <td class="nbHitsCovered"><a title="Line 457: Conditional coverage 100% (2/2)."> 12</a></td> <td class="src"><pre class="src"> <a title="Line 457: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (<span class="keyword">final</span> Folder folder: archive.folders) {</a></pre></td></tr>
+<tr> <td class="numLineCover"> 458</td> <td class="nbHitsUncovered"><a title="Line 458: Conditional coverage 75% (3/4) [each condition: 100%, 50%]."> 6</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 458: Conditional coverage 75% (3/4) [each condition: 100%, 50%]."> <span class="keyword">if</span> (folder.numUnpackSubStreams == 1 && folder.hasCrc) {</a></span></pre></td></tr>
+<tr> <td class="numLineCover"> 459</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> subStreamsInfo.hasCrc.set(nextCrc, <span class="keyword">true</span>);</span></pre></td></tr>
+<tr> <td class="numLineCover"> 460</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> subStreamsInfo.crcs[nextCrc] = folder.crc;</span></pre></td></tr>
+<tr> <td class="numLineCover"> 461</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> ++nextCrc;</span></pre></td></tr>
+<tr> <td class="numLine"> 462</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> } <span class="keyword">else</span> {</pre></td></tr>
-<tr> <td class="numLineCover"> 462</td> <td class="nbHitsCovered"><a title="Line 462: Conditional coverage 100% (2/2)."> 400</a></td> <td class="src"><pre class="src"> <a title="Line 462: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (<span class="keyword">int</span> i = 0; i < folder.numUnpackSubStreams; i++) {</a></pre></td></tr>
-<tr> <td class="numLineCover"> 463</td> <td class="nbHitsCovered"> 394</td> <td class="src"><pre class="src"> subStreamsInfo.hasCrc.set(nextCrc, hasMissingCrc.get(nextMissingCrc));</pre></td></tr>
-<tr> <td class="numLineCover"> 464</td> <td class="nbHitsCovered"> 394</td> <td class="src"><pre class="src"> subStreamsInfo.crcs[nextCrc] = missingCrcs[nextMissingCrc];</pre></td></tr>
-<tr> <td class="numLineCover"> 465</td> <td class="nbHitsCovered"> 394</td> <td class="src"><pre class="src"> ++nextCrc;</pre></td></tr>
-<tr> <td class="numLineCover"> 466</td> <td class="nbHitsCovered"> 394</td> <td class="src"><pre class="src"> ++nextMissingCrc;</pre></td></tr>
-<tr> <td class="numLine"> 467</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLineCover"> 463</td> <td class="nbHitsCovered"><a title="Line 463: Conditional coverage 100% (2/2)."> 400</a></td> <td class="src"><pre class="src"> <a title="Line 463: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (<span class="keyword">int</span> i = 0; i < folder.numUnpackSubStreams; i++) {</a></pre></td></tr>
+<tr> <td class="numLineCover"> 464</td> <td class="nbHitsCovered"> 394</td> <td class="src"><pre class="src"> subStreamsInfo.hasCrc.set(nextCrc, hasMissingCrc.get(nextMissingCrc));</pre></td></tr>
+<tr> <td class="numLineCover"> 465</td> <td class="nbHitsCovered"> 394</td> <td class="src"><pre class="src"> subStreamsInfo.crcs[nextCrc] = missingCrcs[nextMissingCrc];</pre></td></tr>
+<tr> <td class="numLineCover"> 466</td> <td class="nbHitsCovered"> 394</td> <td class="src"><pre class="src"> ++nextCrc;</pre></td></tr>
+<tr> <td class="numLineCover"> 467</td> <td class="nbHitsCovered"> 394</td> <td class="src"><pre class="src"> ++nextMissingCrc;</pre></td></tr>
<tr> <td class="numLine"> 468</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> }</pre></td></tr>
+ <td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 469</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> }</pre></td></tr>
+ <td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 470</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLine"> 471</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLineCover"> 471</td> <td class="nbHitsCovered"> 6</td> <td class="src"><pre class="src"> nid = header.readUnsignedByte();</pre></td></tr>
-<tr> <td class="numLine"> 472</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLineCover"> 472</td> <td class="nbHitsCovered"> 6</td> <td class="src"><pre class="src"> nid = header.readUnsignedByte();</pre></td></tr>
<tr> <td class="numLine"> 473</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLineCover"> 474</td> <td class="nbHitsUncovered"><a title="Line 474: Conditional coverage 50% (1/2)."> 41</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 474: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (nid != NID.kEnd) {</a></span></pre></td></tr>
-<tr> <td class="numLineCover"> 475</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">throw</span> <span class="keyword">new</span> IOException(<span class="string">"Badly terminated SubStreamsInfo"</span>);</span></pre></td></tr>
-<tr> <td class="numLine"> 476</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLine"> 474</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> </pre></td></tr>
+<tr> <td class="numLineCover"> 475</td> <td class="nbHitsUncovered"><a title="Line 475: Conditional coverage 50% (1/2)."> 41</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 475: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (nid != NID.kEnd) {</a></span></pre></td></tr>
[... 1212 lines stripped ...]