Make release notes Markdown friendly

- Nice when Dependabot sends emails
- Update 1.26.0 docs for dependencies
diff --git a/RELEASE-NOTES.txt b/RELEASE-NOTES.txt
index 3f6474e..559214f 100644
--- a/RELEASE-NOTES.txt
+++ b/RELEASE-NOTES.txt
@@ -73,7 +73,9 @@
 *            Bump org.apache.commons:commons-parent from 64 to 66. Thanks to Dependabot. 
 *            Bump com.github.luben:zstd-jni from 1.5.5-10 to 1.5.5-11 #448. Thanks to Dependabot. 
 *            Bump org.slf4j:slf4j-api from 2.0.9 to 2.0.12. Thanks to Dependabot. 
-*            Bump commons-codec:commons-codec from 1.16.0 to 1.16.1. Thanks to Dependabot. 
+*            Add dependency on commons-codec:commons-codec:1.16.1.
+*            Add dependency on org.apache.commons:commons-lang3:3.14.0.
+*            Add dependency on commons-io:commons-io:2.15.1.
 
 
 Resources
@@ -91,7 +93,7 @@
 Have fun!
 -Apache Commons Team
 
-==============================================================================
+-----------------------------------------------------------------------------
 
 Apache Commons Compress 
 Version 1.25.0
@@ -113,58 +115,61 @@
 
 Changes in this version include:
 
-New features:
-o           Add GzipParameters.getFileName() and deprecate getFilename(). Thanks to Gary Gregory. 
-o           Add GzipParameters.setFileName(String) and deprecate setFilename(String). Thanks to Gary Gregory. 
-o           Add FileNameUtil.getCompressedFileName(String) and deprecate getCompressedFilename(String). Thanks to Gary Gregory. 
-o           Add FileNameUtil.getUncompressedFileName(String) and deprecate getUncompressedFilename(String). Thanks to Gary Gregory. 
-o           Add FileNameUtil.isCompressedFileName(String) and deprecate isCompressedFilename(String). Thanks to Gary Gregory. 
-o           Add BZip2Utils.getCompressedFileName(String) and deprecate getCompressedFilename(String). Thanks to Gary Gregory. 
-o           Add BZip2Utils.getUncompressedFileName(String) and deprecate getUncompressedFilename(String). Thanks to Gary Gregory. 
-o           Add BZip2Utils.isCompressedFileName(String) and deprecate isCompressedFilename(String). Thanks to Gary Gregory. 
-o           Add LZMAUtils.getCompressedFileName(String) and deprecate getCompressedFilename(String). Thanks to Gary Gregory. 
-o           Add LZMAUtils.getUncompressedFileName(String) and deprecate getUncompressedFilename(String). Thanks to Gary Gregory. 
-o           Add LZMAUtils.isCompressedFileName(String) and deprecate isCompressedFilename(String). Thanks to Gary Gregory. 
-o           Add XYUtils.getCompressedFileName(String) and deprecate getCompressedFilename(String). Thanks to Gary Gregory. 
-o           Add XYUtils.getUncompressedFileName(String) and deprecate getUncompressedFilename(String). Thanks to Gary Gregory. 
-o           Add XYUtils.isCompressedFileName(String) and deprecate isCompressedFilename(String). Thanks to Gary Gregory. 
-o           Add GzipUtils.getCompressedFileName(String) and deprecate getCompressedFilename(String). Thanks to Gary Gregory. 
-o           Add GzipUtils.getUncompressedFileName(String) and deprecate getUncompressedFilename(String). Thanks to Gary Gregory. 
-o           Add GzipUtils.isCompressedFileName(String) and deprecate isCompressedFilename(String). Thanks to Gary Gregory. 
-o           Add SevenZOutputFile.putArchiveEntry(SevenZArchiveEntry) and deprecate putArchiveEntry(ArchiveEntry). Thanks to Gary Gregory. 
-o           Add generics to ChangeSet and ChangeSetPerformer. Thanks to Gary Gregory. 
-o           Add generics to ArchiveStreamProvider and friends. Thanks to Gary Gregory. 
-o           Add a generic type parameter to ArchiveOutputStream and avoid unchecked/unconfirmed type casts in subclasses. Thanks to Gary Gregory. 
-o           Add a generic type parameter to ArchiveInputStream and deprecate redundant get methods in subclasses. Thanks to Gary Gregory. 
-o COMPRESS-648:  Add ability to restrict autodetection in CompressorStreamFactory #433. Thanks to Yakov Shafranovich, Gary Gregory. 
+New features
+------------
+*           Add GzipParameters.getFileName() and deprecate getFilename(). Thanks to Gary Gregory. 
+*           Add GzipParameters.setFileName(String) and deprecate setFilename(String). Thanks to Gary Gregory. 
+*           Add FileNameUtil.getCompressedFileName(String) and deprecate getCompressedFilename(String). Thanks to Gary Gregory. 
+*           Add FileNameUtil.getUncompressedFileName(String) and deprecate getUncompressedFilename(String). Thanks to Gary Gregory. 
+*           Add FileNameUtil.isCompressedFileName(String) and deprecate isCompressedFilename(String). Thanks to Gary Gregory. 
+*           Add BZip2Utils.getCompressedFileName(String) and deprecate getCompressedFilename(String). Thanks to Gary Gregory. 
+*           Add BZip2Utils.getUncompressedFileName(String) and deprecate getUncompressedFilename(String). Thanks to Gary Gregory. 
+*           Add BZip2Utils.isCompressedFileName(String) and deprecate isCompressedFilename(String). Thanks to Gary Gregory. 
+*           Add LZMAUtils.getCompressedFileName(String) and deprecate getCompressedFilename(String). Thanks to Gary Gregory. 
+*           Add LZMAUtils.getUncompressedFileName(String) and deprecate getUncompressedFilename(String). Thanks to Gary Gregory. 
+*           Add LZMAUtils.isCompressedFileName(String) and deprecate isCompressedFilename(String). Thanks to Gary Gregory. 
+*           Add XYUtils.getCompressedFileName(String) and deprecate getCompressedFilename(String). Thanks to Gary Gregory. 
+*           Add XYUtils.getUncompressedFileName(String) and deprecate getUncompressedFilename(String). Thanks to Gary Gregory. 
+*           Add XYUtils.isCompressedFileName(String) and deprecate isCompressedFilename(String). Thanks to Gary Gregory. 
+*           Add GzipUtils.getCompressedFileName(String) and deprecate getCompressedFilename(String). Thanks to Gary Gregory. 
+*           Add GzipUtils.getUncompressedFileName(String) and deprecate getUncompressedFilename(String). Thanks to Gary Gregory. 
+*           Add GzipUtils.isCompressedFileName(String) and deprecate isCompressedFilename(String). Thanks to Gary Gregory. 
+*           Add SevenZOutputFile.putArchiveEntry(SevenZArchiveEntry) and deprecate putArchiveEntry(ArchiveEntry). Thanks to Gary Gregory. 
+*           Add generics to ChangeSet and ChangeSetPerformer. Thanks to Gary Gregory. 
+*           Add generics to ArchiveStreamProvider and friends. Thanks to Gary Gregory. 
+*           Add a generic type parameter to ArchiveOutputStream and avoid unchecked/unconfirmed type casts in subclasses. Thanks to Gary Gregory. 
+*           Add a generic type parameter to ArchiveInputStream and deprecate redundant get methods in subclasses. Thanks to Gary Gregory. 
+* COMPRESS-648:  Add ability to restrict autodetection in CompressorStreamFactory #433. Thanks to Yakov Shafranovich, Gary Gregory. 
 
-Fixed Bugs:
-o           Precompile regular expression in ArArchiveInputStream.isBSDLongName(String). Thanks to Gary Gregory. 
-o           Precompile regular expression in ArArchiveInputStream.isGNULongName(String). Thanks to Gary Gregory. 
-o           Precompile regular expression in TarArchiveEntry.parseInstantFromDecimalSeconds(String). Thanks to Gary Gregory. 
-o           Precompile regular expression in ChangeSet.addDeletion(Change). Thanks to Gary Gregory. 
-o COMPRESS-649:  Improve performance in BlockLZ4CompressorOutputStream. Thanks to Gary Gregory. 
-o           Null-guard Lister.main(String[]) for programmatic invocation. Thanks to Gary Gregory. 
-o           NPE in pack200.NewAttributeBands.Reference.addAttributeToBand(NewAttribute, InputStream). Thanks to Gary Gregory. 
-o           Incorrect lazy initialization and update of static field in pack200.CodecEncoding.getSpecifier(Codec, Codec). Thanks to Gary Gregory. 
-o           Incorrect string comparison in unpack200.AttributeLayout.numBackwardsCallables(). Thanks to Gary Gregory. 
-o           Inefficient use of keySet iterator instead of entrySet iterator in pack200.PackingOptions.addOrUpdateAttributeActions(List, Map, int). Thanks to Gary Gregory. 
-o           Package private class pack200.IcBands.IcTuple should be a static inner class. Thanks to Gary Gregory. 
-o           Private class ZipFile.BoundedFileChannelInputStream should be a static inner class. Thanks to Gary Gregory. 
-o           Refactor internal SevenZ AES256SHA256Decoder InputStream into a named static inner class. Thanks to Gary Gregory. 
-o           Refactor internal SevenZ AES256SHA256Decoder OutputStream into a named static inner class. Thanks to Gary Gregory. 
-o           Use the root Locale for string conversion of command line options in org.apache.commons.compress.archivers.sevenz.CLI. Thanks to Gary Gregory. 
-o           Calling PackingUtils.config(PackingOptions) with null now closes the internal FileHandler. Thanks to Gary Gregory. 
-o COMPRESS-650:  LZ4 compressor throws IndexOutOfBoundsException. Thanks to Chad Preisler. 
-o COMPRESS-632:  LZWInputStream.initializeTables(int) should throw IllegalArgumentException instead of ArrayIndexOutOfBoundsException. Thanks to Yakov Shafranovich, Gary Gregory. 
-o COMPRESS-647:  Throw IOException instead of ArrayIndexOutOfBoundsException when reading Zip with data descriptor entries. Thanks to Robin Schimpf, Gary Gregory. 
+Fixed Bugs
+----------
+*           Precompile regular expression in ArArchiveInputStream.isBSDLongName(String). Thanks to Gary Gregory. 
+*           Precompile regular expression in ArArchiveInputStream.isGNULongName(String). Thanks to Gary Gregory. 
+*           Precompile regular expression in TarArchiveEntry.parseInstantFromDecimalSeconds(String). Thanks to Gary Gregory. 
+*           Precompile regular expression in ChangeSet.addDeletion(Change). Thanks to Gary Gregory. 
+* COMPRESS-649:  Improve performance in BlockLZ4CompressorOutputStream. Thanks to Gary Gregory. 
+*           Null-guard Lister.main(String[]) for programmatic invocation. Thanks to Gary Gregory. 
+*           NPE in pack200.NewAttributeBands.Reference.addAttributeToBand(NewAttribute, InputStream). Thanks to Gary Gregory. 
+*           Incorrect lazy initialization and update of static field in pack200.CodecEncoding.getSpecifier(Codec, Codec). Thanks to Gary Gregory. 
+*           Incorrect string comparison in unpack200.AttributeLayout.numBackwardsCallables(). Thanks to Gary Gregory. 
+*           Inefficient use of keySet iterator instead of entrySet iterator in pack200.PackingOptions.addOrUpdateAttributeActions(List, Map, int). Thanks to Gary Gregory. 
+*           Package private class pack200.IcBands.IcTuple should be a static inner class. Thanks to Gary Gregory. 
+*           Private class ZipFile.BoundedFileChannelInputStream should be a static inner class. Thanks to Gary Gregory. 
+*           Refactor internal SevenZ AES256SHA256Decoder InputStream into a named static inner class. Thanks to Gary Gregory. 
+*           Refactor internal SevenZ AES256SHA256Decoder OutputStream into a named static inner class. Thanks to Gary Gregory. 
+*           Use the root Locale for string conversion of command line options in org.apache.commons.compress.archivers.sevenz.CLI. Thanks to Gary Gregory. 
+*           Calling PackingUtils.config(PackingOptions) with null now closes the internal FileHandler. Thanks to Gary Gregory. 
+* COMPRESS-650:  LZ4 compressor throws IndexOutOfBoundsException. Thanks to Chad Preisler. 
+* COMPRESS-632:  LZWInputStream.initializeTables(int) should throw IllegalArgumentException instead of ArrayIndexOutOfBoundsException. Thanks to Yakov Shafranovich, Gary Gregory. 
+* COMPRESS-647:  Throw IOException instead of ArrayIndexOutOfBoundsException when reading Zip with data descriptor entries. Thanks to Robin Schimpf, Gary Gregory. 
 
-Changes:
-o           Bump org.slf4j:slf4j-api from 2.0.8 to 2.0.9 #413. Thanks to Dependabot. 
-o           Bump commons-io:commons-io from 2.13.0 to 2.15.0. Thanks to Gary Gregory. 
-o           Bump com.github.luben:zstd-jni from 1.5.5-5 to 1.5.5-10 #422, #431. Thanks to Dependabot. 
-o           Bump org.ow2.asm:asm from 9.5 to 9.6 #421. Thanks to Dependabot. 
-o           Bump org.apache.commons:commons-parent from 62 to 64 #421. Thanks to Dependabot, Gary Gregory. 
+Changes
+-------
+*           Bump org.slf4j:slf4j-api from 2.0.8 to 2.0.9 #413. Thanks to Dependabot. 
+*           Bump commons-io:commons-io from 2.13.0 to 2.15.0. Thanks to Gary Gregory. 
+*           Bump com.github.luben:zstd-jni from 1.5.5-5 to 1.5.5-10 #422, #431. Thanks to Dependabot. 
+*           Bump org.ow2.asm:asm from 9.5 to 9.6 #421. Thanks to Dependabot. 
+*           Bump org.apache.commons:commons-parent from 62 to 64 #421. Thanks to Dependabot, Gary Gregory. 
 
 
 Historical list of changes: https://commons.apache.org/proper/commons-compress/changes-report.html
@@ -179,7 +184,7 @@
 Have fun!
 -Apache Commons Team
 
-==============================================================================
+-----------------------------------------------------------------------------
 
               Apache Commons Compress 1.24.0 RELEASE NOTES
 
@@ -188,22 +193,25 @@
 LZMA, XZ, Snappy, traditional Unix Compress, DEFLATE, DEFLATE64, LZ4,
 Brotli, Zstandard and ar, cpio, jar, tar, zip, dump, 7z, arj.
 
-New features:
-o Make ZipArchiveEntry.getLocalHeaderOffset() public. Thanks to Gary Gregory. 
+New features
+------------
+* Make ZipArchiveEntry.getLocalHeaderOffset() public. Thanks to Gary Gregory. 
 
-Fixed Bugs:
-o Use try-with-resources in ArchiveStreamFactory #391. Thanks to Daniele Galloppo. 
-o Javadoc and code comments: Sanitize grammar issues and typos #393. Thanks to Martin Wiesner. 
-o Remove redundant (null) initializations #394. Thanks to Martin Wiesner. 
-o [StepSecurity] ci: Harden GitHub Actions #396. Thanks to step-security-bot, Gary Gregory. 
+Fixed Bugs
+----------
+* Use try-with-resources in ArchiveStreamFactory #391. Thanks to Daniele Galloppo. 
+* Javadoc and code comments: Sanitize grammar issues and typos #393. Thanks to Martin Wiesner. 
+* Remove redundant (null) initializations #394. Thanks to Martin Wiesner. 
+* [StepSecurity] ci: Harden GitHub Actions #396. Thanks to step-security-bot, Gary Gregory. 
 
-Changes:
-o Bump zstd-jni from 1.5.4-2 to 1.5.5-5 #377, #383, #388, #390, #400. Thanks to Dependabot. 
-o Bump memoryfilesystem from 2.5.0 to 2.6.1 #381, #385, #387. Thanks to Dependabot. 
-o Bump commons-parent from 56 to 61 #384. Thanks to Dependabot, Gary Gregory. 
-o Bump commons-io:commons-io from 2.11.0 to 2.13.0. Thanks to Gary Gregory. 
-o Bump commons-lang3 from 3.12.0 to 3.13.0. Thanks to Gary Gregory. 
-o Bump org.slf4j:slf4j-api from 2.0.7 to 2.0.8. Thanks to Gary Gregory. 
+Changes
+-------
+* Bump zstd-jni from 1.5.4-2 to 1.5.5-5 #377, #383, #388, #390, #400. Thanks to Dependabot. 
+* Bump memoryfilesystem from 2.5.0 to 2.6.1 #381, #385, #387. Thanks to Dependabot. 
+* Bump commons-parent from 56 to 61 #384. Thanks to Dependabot, Gary Gregory. 
+* Bump commons-io:commons-io from 2.11.0 to 2.13.0. Thanks to Gary Gregory. 
+* Bump commons-lang3 from 3.12.0 to 3.13.0. Thanks to Gary Gregory. 
+* Bump org.slf4j:slf4j-api from 2.0.7 to 2.0.8. Thanks to Gary Gregory. 
 
 For complete information on Apache Commons Compress, including instructions
 on how to submit bug reports, patches, or suggestions for improvement,
@@ -213,7 +221,7 @@
 
 Download it from https://commons.apache.org/compress/download_compress.cgi
 
-=============================================================================
+-----------------------------------------------------------------------------
 
               Apache Commons Compress 1.23.0 RELEASE NOTES
 
@@ -222,53 +230,56 @@
 LZMA, XZ, Snappy, traditional Unix Compress, DEFLATE, DEFLATE64, LZ4,
 Brotli, Zstandard and ar, cpio, jar, tar, zip, dump, 7z, arj.
 
-New features:
-o Use FileTime for time fields in SevenZipArchiveEntry #256.
+New features
+------------
+* Use FileTime for time fields in SevenZipArchiveEntry #256.
   Issue: COMPRESS-614. Thanks to Andre Brait, Gary Gregory. 
-o Fix calculation the offset of the first ZIP central directory entry #334.
+* Fix calculation the offset of the first ZIP central directory entry #334.
   Issue: COMPRESS-621. Thanks to Glavo. 
-o Add encryption support for SevenZ #332.
+* Add encryption support for SevenZ #332.
   Issue: COMPRESS-633. Thanks to Daniel Santos, Bruno P. Kinoshita, Gary Gregory. 
-o Support for extra time data in Zip archives #345.
+* Support for extra time data in Zip archives #345.
   Issue: COMPRESS-613. Thanks to Andre Brait, Gary Gregory, Bruno P. Kinoshita. 
-o Add org.apache.commons.compress.archivers.zip.DefaultBackingStoreSupplier to write to a custom folder instead of the default temporary folder.
+* Add org.apache.commons.compress.archivers.zip.DefaultBackingStoreSupplier to write to a custom folder instead of the default temporary folder.
   Issue: COMPRESS-621. Thanks to Gary Gregory. 
-o Add capability to configure Deflater strategy in GzipCompressorOutputStream: GzipParameters.setDeflateStrategy(int).
+* Add capability to configure Deflater strategy in GzipCompressorOutputStream: GzipParameters.setDeflateStrategy(int).
   Issue: COMPRESS-600. Thanks to Gary Gregory, Pascal Davoust. 
 
-Fixed Bugs:
-o Implicit narrowing conversion in compound assignment. Thanks to CodeQL, Gary Gregory. 
-o Avoid NPE in FileNameUtils.getBaseName(Path) for paths with zero elements like root paths. Thanks to CodeQL, Gary Gregory. 
-o Avoid NPE in FileNameUtils.getExtension(Path) for paths with zero elements like root paths. Thanks to CodeQL, Gary Gregory. 
-o LZMA2Decoder.decode() looses original exception. Thanks to Gary Gregory. 
-o Extract conditions and avoid duplicate code. #297. Thanks to Arturo Bernal. 
-o Remove duplicate conditions. Use switch instead. #298. Thanks to Arturo Bernal. 
-o Replace JUnit 3 and 4 with JUnit 5 #344, #346. Thanks to Robin Schimpf. 
-o Make 'ZipFile.offsetComparator' static #353. Thanks to Glavo. 
-o The GzipCompressorOutputStream#writeHeader() uses ISO_8859_1 to write the file name and comment. 
+Fixed Bugs
+----------
+* Implicit narrowing conversion in compound assignment. Thanks to CodeQL, Gary Gregory. 
+* Avoid NPE in FileNameUtils.getBaseName(Path) for paths with zero elements like root paths. Thanks to CodeQL, Gary Gregory. 
+* Avoid NPE in FileNameUtils.getExtension(Path) for paths with zero elements like root paths. Thanks to CodeQL, Gary Gregory. 
+* LZMA2Decoder.decode() looses original exception. Thanks to Gary Gregory. 
+* Extract conditions and avoid duplicate code. #297. Thanks to Arturo Bernal. 
+* Remove duplicate conditions. Use switch instead. #298. Thanks to Arturo Bernal. 
+* Replace JUnit 3 and 4 with JUnit 5 #344, #346. Thanks to Robin Schimpf. 
+* Make 'ZipFile.offsetComparator' static #353. Thanks to Glavo. 
+* The GzipCompressorOutputStream#writeHeader() uses ISO_8859_1 to write the file name and comment. 
   If the strings contains non-ISO_8859_1 characters, unknown characters are displayed after decompression. 
   Use percent encoding for non ISO_8859_1 characters.
   Issue: COMPRESS-638. Thanks to Radar wen, Gary Gregory, Michael Osipov. 
-o Port some code from IO to NIO APIs. Thanks to Jonathan Leitschuh, Gary Gregory. 
-o pack200: Fix FileBands misusing InputStream#read(byte[]) #360. Thanks to Una, Gary Gregory, Jochen Wiedmann, quaternary, Bruno P. Kinoshita. 
-o Add TarArchiveEntry.getLinkFlag() #365.
+* Port some code from IO to NIO APIs. Thanks to Jonathan Leitschuh, Gary Gregory. 
+* pack200: Fix FileBands misusing InputStream#read(byte[]) #360. Thanks to Una, Gary Gregory, Jochen Wiedmann, quaternary, Bruno P. Kinoshita. 
+* Add TarArchiveEntry.getLinkFlag() #365.
   Issue: COMPRESS-641. Thanks to XenoAmess, Gary Gregory, Bruno P. Kinoshita. 
-o Integer overflow ArithmeticException in TarArchiveOutputStream #368.
+* Integer overflow ArithmeticException in TarArchiveOutputStream #368.
   Issue: COMPRESS-642. Thanks to Anton Klarén, Gary Gregory. 
-o org.apache.commons.compress.archivers.zip.ZipFile.finalize() should not write to std err.
+* org.apache.commons.compress.archivers.zip.ZipFile.finalize() should not write to std err.
   Issue: COMPRESS-642. Thanks to Dominik Stadler, Stefan Bodewig, Gary Gregory. 
 
-Changes:
-o Bump mockito.version from 4.8.0 to 4.11.0 #328, #331, #340, #348. Thanks to Dependabot. 
-o Bump pmd from 6.50.0 to 6.53.0. Thanks to Gary Gregory. 
-o Bump memoryfilesystem from 2.3.0 to 2.5.0 #330, #359. Thanks to Dependabot. 
-o Bump slf4j-api from 2.0.3 to 2.0.7 #329, #333, #341, #371. Thanks to Dependabot. 
-o Bump japicmp from 0.16.0 to 0.17.1. Thanks to Gary Gregory. 
-o Bump commons-parent from 54 to 56 #339, #349. Thanks to Dependabot. 
-o Bump zstd-jni from 1.5.2-5 to 1.5.4-2 #362, #364. Thanks to Dependabot. 
+Changes
+-------
+* Bump mockito.version from 4.8.0 to 4.11.0 #328, #331, #340, #348. Thanks to Dependabot. 
+* Bump pmd from 6.50.0 to 6.53.0. Thanks to Gary Gregory. 
+* Bump memoryfilesystem from 2.3.0 to 2.5.0 #330, #359. Thanks to Dependabot. 
+* Bump slf4j-api from 2.0.3 to 2.0.7 #329, #333, #341, #371. Thanks to Dependabot. 
+* Bump japicmp from 0.16.0 to 0.17.1. Thanks to Gary Gregory. 
+* Bump commons-parent from 54 to 56 #339, #349. Thanks to Dependabot. 
+* Bump zstd-jni from 1.5.2-5 to 1.5.4-2 #362, #364. Thanks to Dependabot. 
 
 Removed:
-o Remove BZip2CompressorOutputStream.finalize() which only wrote to std err. Thanks to Gary Gregory. 
+* Remove BZip2CompressorOutputStream.finalize() which only wrote to std err. Thanks to Gary Gregory. 
 For complete information on Apache Commons Compress, including instructions
 on how to submit bug reports, patches, or suggestions for improvement,
 see the Apache Commons Compress website:
@@ -277,93 +288,93 @@
 
 Download it from https://commons.apache.org/compress/download_compress.cgi
 
-=============================================================================
-
-Previous Release Notes
-======================
+-----------------------------------------------------------------------------
 
 Release 1.22
 ------------
 
-New features:
-o Migrate zip package to use NIO #236.
+New features
+------------
+* Migrate zip package to use NIO #236.
   Issue: COMPRESS-602. Thanks to Postelnicu George, Gary Gregory. 
-o Add APK file extension constants: ArchiveStreamFactory.APK, APKM, APKS, XAPK. Thanks to Gary Gregory. 
-o ArchiveStreamFactory.createArchiveInputStream(String, InputStream, String) supports the "APK" format (it's a JAR). Thanks to Gary Gregory. 
-o Expander example now has NIO Path versions of IO File APIs. Thanks to Gary Gregory. 
-o Improve TAR support for file times #254.
+* Add APK file extension constants: ArchiveStreamFactory.APK, APKM, APKS, XAPK. Thanks to Gary Gregory. 
+* ArchiveStreamFactory.createArchiveInputStream(String, InputStream, String) supports the "APK" format (it's a JAR). Thanks to Gary Gregory. 
+* Expander example now has NIO Path versions of IO File APIs. Thanks to Gary Gregory. 
+* Improve TAR support for file times #254.
   Issue: COMPRESS-612. Thanks to Andre Brait, Gary Gregory. 
-o Add SevenZArchiveEntry.setContentMethods(SevenZMethodConfiguration...). Thanks to Gary Gregory. 
+* Add SevenZArchiveEntry.setContentMethods(SevenZMethodConfiguration...). Thanks to Gary Gregory. 
 
-Fixed Bugs:
-o Fix some compiler warnings in pack200 packages. Thanks to Gary Gregory. 
-o Close File input stream after unpacking in Pack200UnpackerAdapter.unpack(File, JarOutputStream). Thanks to Gary Gregory. 
-o Pack200UnpackerAdapter.unpack(InputStream, JarOutputStream) should not close its given input stream. Thanks to Gary Gregory. 
-o Fix minor problem in examples.
+Fixed Bugs
+----------
+* Fix some compiler warnings in pack200 packages. Thanks to Gary Gregory. 
+* Close File input stream after unpacking in Pack200UnpackerAdapter.unpack(File, JarOutputStream). Thanks to Gary Gregory. 
+* Pack200UnpackerAdapter.unpack(InputStream, JarOutputStream) should not close its given input stream. Thanks to Gary Gregory. 
+* Fix minor problem in examples.
   Issue: COMPRESS-596. Thanks to Tamas Mucs. 
-o Add a limit to the copy buffer in IOUtils.readRange() to
+* Add a limit to the copy buffer in IOUtils.readRange() to
   avoid reading more from a channel than asked for.
   Github Pull Request #214.
   Issue: COMPRESS-584. Thanks to Matthijs Laan, Peter Lee. 
-o Documentation nits #217. Thanks to Helder Magalhães, Gary Gregory, PeterAlfredLee. 
-o Replace wrapper Collections.sort is with an instance method directly. #245. Thanks to Arturo Bernal. 
-o Replace manual comparisons with Comparator.comparingInt() #244. Thanks to Arturo Bernal. 
-o Replace manual copy of array contents with System.arraycopy() #246. Thanks to Arturo Bernal. 
-o Fix thread safety issues when encoding 7z password #248. Thanks to Glavo, Bruno P. Kinoshita, PeterAlfredLee, Gary Gregory. 
-o bzip2: calculate median-of-3 on unsigned values #242. Thanks to Peter Dettman. 
-o Use Math.min and Math.max calculations. #247. Thanks to Arturo Bernal, Gary Gregory, Bruno P. Kinoshita. 
-o Expander should be able to work if an entry's name is "./".
+* Documentation nits #217. Thanks to Helder Magalhães, Gary Gregory, PeterAlfredLee. 
+* Replace wrapper Collections.sort is with an instance method directly. #245. Thanks to Arturo Bernal. 
+* Replace manual comparisons with Comparator.comparingInt() #244. Thanks to Arturo Bernal. 
+* Replace manual copy of array contents with System.arraycopy() #246. Thanks to Arturo Bernal. 
+* Fix thread safety issues when encoding 7z password #248. Thanks to Glavo, Bruno P. Kinoshita, PeterAlfredLee, Gary Gregory. 
+* bzip2: calculate median-of-3 on unsigned values #242. Thanks to Peter Dettman. 
+* Use Math.min and Math.max calculations. #247. Thanks to Arturo Bernal, Gary Gregory, Bruno P. Kinoshita. 
+* Expander should be able to work if an entry's name is "./".
   Issue: COMPRESS-603. Thanks to Matt Sicker. 
-o Ensure compatibility with Java 8 #252.
+* Ensure compatibility with Java 8 #252.
   Issue: COMPRESS-604. Thanks to Andre Brait. 
-o Use StringBuilder instead of StringBuffer. #284. Thanks to Arturo Bernal. 
-o Inline variable. Remove redundant local variable. #283. Thanks to Arturo Bernal. 
-o Use compare method #285. Thanks to Arturo Bernal. 
-o Remove Unnecessary interface modifiers #281. Thanks to Arturo Bernal. 
-o Avoid use C-style array declaration. #282. Thanks to Arturo Bernal. 
-o ChecksumVerifyingInputStream.read() does not always validate checksum at end-of-stream. Thanks to Gary Gregory. 
-o Fix TarFileTest #289. Thanks to Matt Juntunen. 
-o Update Wikipedia link in TarUtils.java:627.
+* Use StringBuilder instead of StringBuffer. #284. Thanks to Arturo Bernal. 
+* Inline variable. Remove redundant local variable. #283. Thanks to Arturo Bernal. 
+* Use compare method #285. Thanks to Arturo Bernal. 
+* Remove Unnecessary interface modifiers #281. Thanks to Arturo Bernal. 
+* Avoid use C-style array declaration. #282. Thanks to Arturo Bernal. 
+* ChecksumVerifyingInputStream.read() does not always validate checksum at end-of-stream. Thanks to Gary Gregory. 
+* Fix TarFileTest #289. Thanks to Matt Juntunen. 
+* Update Wikipedia link in TarUtils.java:627.
   Issue: COMPRESS-625. Thanks to MrBump, Gary Gregory. 
-o OutOfMemoryError on malformed pack200 input (attributes).
+* OutOfMemoryError on malformed pack200 input (attributes).
   Issue: COMPRESS-626. Thanks to Andrii Hudz, Gary Gregory. 
-o OutOfMemoryError on malformed pack200 input (org.apache.commons.compress.harmony.pack200.NewAttributeBands.readNextUnionCase).
+* OutOfMemoryError on malformed pack200 input (org.apache.commons.compress.harmony.pack200.NewAttributeBands.readNextUnionCase).
   Issue: COMPRESS-628. Thanks to Andrii Hudz, Gary Gregory. 
-o OutOfMemoryError on malformed unpack200 input (org.apache.commons.compress.harmony.unpack200.NewAttributeBands.readNextUnionCase).
+* OutOfMemoryError on malformed unpack200 input (org.apache.commons.compress.harmony.unpack200.NewAttributeBands.readNextUnionCase).
   Issue: COMPRESS-628. Thanks to Gary Gregory. 
-o Some input streams are not closed in org.apache.commons.compress.harmony.pack200.PackingUtils. Thanks to Gary Gregory. 
-o Pack200 causes a 'archive.3E' error if it?s not in the system class loader.
+* Some input streams are not closed in org.apache.commons.compress.harmony.pack200.PackingUtils. Thanks to Gary Gregory. 
+* Pack200 causes a 'archive.3E' error if it?s not in the system class loader.
   Issue: COMPRESS-627. Thanks to anatawa12, Gary Gregory. 
 
-Changes:
-o Bump actions/cache from 2.1.6 to 3.0.10 #230, #257, #305, #320. Thanks to Dependabot, Gary Gregory. 
-o Bump actions/checkout from 2.3.4 to 3.1.0 #226, #227, #251, #300, #321. Thanks to Dependabot, Gary Gregory. 
-o Bump actions/setup-java from 2 to 3.5.1 #278. Thanks to Dependabot. 
-o Bump github/codeql-action from 1 to 2 #287. Thanks to Dependabot. 
-o Bump mockito-core from 3.11.1 to 4.6.1 #209, #224, #231, #235, #243, #253, #286, #294. Thanks to Dependabot. 
-o Bump org.apache.felix.framework from 7.0.0 to 7.0.1 #208. Thanks to Dependabot. 
-o Bump memoryfilesystem from 2.1.0 to 2.3.0 #212, #237. Thanks to Dependabot. 
-o Bump zstd-jni from 1.5.0-2 to 1.5.2-5 #215, #233, #238, #240, #250, #291, #326. Thanks to Dependabot, Gary Gregory. 
-o Bump Pack200 packages from ASM 3.2 to 9.2 #216. 
+Changes
+-------
+* Bump actions/cache from 2.1.6 to 3.0.10 #230, #257, #305, #320. Thanks to Dependabot, Gary Gregory. 
+* Bump actions/checkout from 2.3.4 to 3.1.0 #226, #227, #251, #300, #321. Thanks to Dependabot, Gary Gregory. 
+* Bump actions/setup-java from 2 to 3.5.1 #278. Thanks to Dependabot. 
+* Bump github/codeql-action from 1 to 2 #287. Thanks to Dependabot. 
+* Bump mockito-core from 3.11.1 to 4.6.1 #209, #224, #231, #235, #243, #253, #286, #294. Thanks to Dependabot. 
+* Bump org.apache.felix.framework from 7.0.0 to 7.0.1 #208. Thanks to Dependabot. 
+* Bump memoryfilesystem from 2.1.0 to 2.3.0 #212, #237. Thanks to Dependabot. 
+* Bump zstd-jni from 1.5.0-2 to 1.5.2-5 #215, #233, #238, #240, #250, #291, #326. Thanks to Dependabot, Gary Gregory. 
+* Bump Pack200 packages from ASM 3.2 to 9.2 #216. 
   Breaks binary compatibility in the internals of the pack200 implementation:
   - org.apache.commons.compress.harmony.pack200.Segment
   - org.apache.commons.compress.harmony.pack200.SegmentMethodVisitor
   - org.apache.commons.compress.harmony.pack200.SegmentAnnotationVisitor
   - org.apache.commons.compress.harmony.pack200.SegmentFieldVisitor
   Issue: COMPRESS-582. Thanks to Alex Landau, Stephan, Gary Gregory. 
-o Bump asm from 9.2 to 9.4 #279, #322. Thanks to Dependabot. 
-o Bump maven-javadoc-plugin from 3.3.0 to 3.4.1 #221, #249, #288, #308. Thanks to Dependabot. 
-o Bump maven-pmd-plugin from 3.14.0 to 3.19.0 #296, #309, #311. Thanks to Gary Gregory, Dependabot. 
-o Bump pmd from 6.44.0 to 6.50.0. Thanks to Gary Gregory. 
-o Bump commons.japicmp.version from 0.15.3 to 0.16.0. Thanks to Gary Gregory. 
-o Bump maven-bundle-plugin from 5.1.2 to 5.1.8 #234, #239, #290, #292, #301, #304. Thanks to Dependabot. 
-o Bump org.apache.felix.framework from 7.0.1 to 7.0.5 #232, #295. Thanks to Dependabot. 
-o Bump slf4j-api from 1.7.30 to 2.0.3 #213, #241, #258, #310, #314, #315, #318. Thanks to Dependabot. 
-o Bump commons-parent from 52 to 54 #280. Thanks to Dependabot, Gary Gregory. 
-o Bump commons.jacoco.version from 0.8.7 to 0.8.8. Thanks to Gary Gregory. 
-o Bump junit.version from 5.8.2 to 5.9.1 #302, #317. Thanks to Dependabot. 
-o Bump mockito.version from 4.6.1 to 4.8.0 #307, #312. Thanks to Dependabot. 
-o Bump maven-surefire-plugin from 3.0.0-M6 to 3.0.0-M7. Thanks to Gary Gregory. 
+* Bump asm from 9.2 to 9.4 #279, #322. Thanks to Dependabot. 
+* Bump maven-javadoc-plugin from 3.3.0 to 3.4.1 #221, #249, #288, #308. Thanks to Dependabot. 
+* Bump maven-pmd-plugin from 3.14.0 to 3.19.0 #296, #309, #311. Thanks to Gary Gregory, Dependabot. 
+* Bump pmd from 6.44.0 to 6.50.0. Thanks to Gary Gregory. 
+* Bump commons.japicmp.version from 0.15.3 to 0.16.0. Thanks to Gary Gregory. 
+* Bump maven-bundle-plugin from 5.1.2 to 5.1.8 #234, #239, #290, #292, #301, #304. Thanks to Dependabot. 
+* Bump org.apache.felix.framework from 7.0.1 to 7.0.5 #232, #295. Thanks to Dependabot. 
+* Bump slf4j-api from 1.7.30 to 2.0.3 #213, #241, #258, #310, #314, #315, #318. Thanks to Dependabot. 
+* Bump commons-parent from 52 to 54 #280. Thanks to Dependabot, Gary Gregory. 
+* Bump commons.jacoco.version from 0.8.7 to 0.8.8. Thanks to Gary Gregory. 
+* Bump junit.version from 5.8.2 to 5.9.1 #302, #317. Thanks to Dependabot. 
+* Bump mockito.version from 4.6.1 to 4.8.0 #307, #312. Thanks to Dependabot. 
+* Bump maven-surefire-plugin from 3.0.0-M6 to 3.0.0-M7. Thanks to Gary Gregory. 
 
 For complete information on Apache Commons Compress, including instructions
 on how to submit bug reports, patches, or suggestions for improvement,
@@ -371,6 +382,8 @@
 
 https://commons.apache.org/compress/
 
+-----------------------------------------------------------------------------
+
 Release 1.21
 ------------
 
@@ -386,8 +399,9 @@
 streams that would have caused arbitrary RuntimeExceptions in earlier
 versions of Compress.
 
-New features:
-o Add writePreamble to ZipArchiveInputStream. This method could
+New features
+------------
+* Add writePreamble to ZipArchiveInputStream. This method could
   write raw data to zip archive before any entry was written to
   the zip archive.
   For most of the time, this is used to create self-extracting
@@ -395,19 +409,19 @@
   Github Pull Request #127.
   Issue: COMPRESS-550.
   Thanks to Scott Frederick.
-o Added support for random access to the TAR packages.
+* Added support for random access to the TAR packages.
   Github Pull Request #113.
   Issue: COMPRESS-540.
   Thanks to Robin Schimpf.
-o Added support for BufferPool in ZstdCompressorInputStream.
+* Added support for BufferPool in ZstdCompressorInputStream.
   Github Pull Request #165.
   Issue: COMPRESS-565.
   Thanks to Michael L Heuer.
-o Commons Compress cannot be built with JDK14 due to Pack200 removal.
+* Commons Compress cannot be built with JDK14 due to Pack200 removal.
   Add Pack200 implementation from Apache Harmony.
   Issue: COMPRESS-507.
   Thanks to Gary Gregory, Apache Harmony.
-o Add a new AlwaysWithCompatibility in Zip64Mode, this is a
+* Add a new AlwaysWithCompatibility in Zip64Mode, this is a
   compromise for some libraries including 7z and Expand-Archive
   Powershell utility(and likely Excel).
 
@@ -418,61 +432,62 @@
   Github Pull Request #169.
   Issue: COMPRESS-565.
   Thanks to Evgenii Bovykin.
-o gzip deflate buffer size is now configurable.
+* gzip deflate buffer size is now configurable.
   Issue: COMPRESS-566.
   Thanks to Brett Okken.
 
-Fixed Bugs:
-o Fix bugs in random access of 7z. Problems may happen
+Fixed Bugs
+----------
+* Fix bugs in random access of 7z. Problems may happen
   in a mixture use of random access and sequential access
   of 7z.
   Github Pull Request #95.
   Issue: COMPRESS-505.
-o Fix bugs in random access of 7z. Exceptions are thrown
+* Fix bugs in random access of 7z. Exceptions are thrown
   when reading the first entry multiple times by random
   access.
   Issue: COMPRESS-510.
-o Add '/' to directories with long name in tar. This is to
+* Add '/' to directories with long name in tar. This is to
   resolve the ambiguous behavior of the TarArchiveEntry.getName()
   method between directory with short name and long name.
   Issue: COMPRESS-509.
   Thanks to Petr Vasak.
-o Removed the PowerMock dependency.
+* Removed the PowerMock dependency.
   Issue: COMPRESS-520.
   Thanks to Robin Schimpf.
-o Added improved checks to detect corrupted bzip2 streams and
+* Added improved checks to detect corrupted bzip2 streams and
   throw the expected IOException rather than obscure
   RuntimeExceptions.
   See also COMPRESS-519.
   Issue: COMPRESS-516.
-o Improved parsing of X5455_ExtendedTimestamp ZIP extra field.
+* Improved parsing of X5455_ExtendedTimestamp ZIP extra field.
   Issue: COMPRESS-517.
-o ZipArchiveInputStream and ZipFile will now throw an
+* ZipArchiveInputStream and ZipFile will now throw an
   IOException rather than a RuntimeException if the zip64 extra
   field of an entry could not be parsed.
   Issue: COMPRESS-518.
-o Improved detection of corrupt ZIP archives in ZipArchiveInputStream.
+* Improved detection of corrupt ZIP archives in ZipArchiveInputStream.
   Issue: COMPRESS-523.
-o Added improved checks to detect corrupted deflate64 streams and
+* Added improved checks to detect corrupted deflate64 streams and
   throw the expected IOException rather than obscure
   RuntimeExceptions.
   Issues: COMPRESS-521, COMPRESS-522, COMPRESS-525, COMPRESS-526, and COMPRESS-527.
-o Add the archive name in the exception in the constructor of
+* Add the archive name in the exception in the constructor of
   ZipFile to make it a more specific exception.
   Github Pull Request #102.
   Issue: COMPRESS-515.
   Thanks to ian-lavallee.
-o Throw IOException when it encounters a non-number while parsing pax
+* Throw IOException when it encounters a non-number while parsing pax
   header.
   Issue: COMPRESS-530.
-o Throw IOException when a tar archive contains a PAX header
+* Throw IOException when a tar archive contains a PAX header
   without any normal entry following it.
   Issue: COMPRESS-531.
-o Added improved checks to detect corrupted IMPLODED streams and
+* Added improved checks to detect corrupted IMPLODED streams and
   throw the expected IOException rather than obscure
   RuntimeExceptions.
   Issue: COMPRESS-532.
-o Throw expected IOException instead of NumberFormatException if
+* Throw expected IOException instead of NumberFormatException if
   it encounters non-numbers when parsing pax headers for tarball.
 
   Throw IllegalArgumentException instead of RuntimeExceptions if
@@ -484,15 +499,15 @@
   of a traditional tar header while bigNumberMode is
   BIGNUMBER_ERROR, and address this in java docs.
   Issue: COMPRESS-529.
-o Fix for test fails on Windows. The tests are failing because the
+* Fix for test fails on Windows. The tests are failing because the
   default charset is not UTF-8.
   Issue: COMPRESS-543.
   Thanks to wulf2333.
-o TarArchiveInputStream can not detect a truncated tar in skip()
+* TarArchiveInputStream can not detect a truncated tar in skip()
   and skipRecordPadding().
   Issue: COMPRESS-544.
   Thanks to Aditya Prasad.
-o Make the memory allocation in SevenZFile.readFilesInfo a lazy
+* Make the memory allocation in SevenZFile.readFilesInfo a lazy
   allocation to avoid OOM when dealing some giant 7z archives.
   Github Pull Request #120.
 
@@ -505,60 +520,60 @@
   backwards incompatible change.
   Issue: COMPRESS-542.
   Thanks to theobisproject.
-o ZipArchiveInputStream should throw an exception if a corrputed
+* ZipArchiveInputStream should throw an exception if a corrputed
   zip64 extra field is met.
   Issue: COMPRESS-546.
   Thanks to Maksim Zuev.
-o Add a new maven profile in pom.xml for JDK14+ to ignore the
+* Add a new maven profile in pom.xml for JDK14+ to ignore the
   failing tests about Pack200.
 
   This has later been superseeded by adding the Apache Harmony
   classes for Pack200 support.
-o Throw an IOException when reading the zip extra field if the
+* Throw an IOException when reading the zip extra field if the
   length is too short.
   Issue: COMPRESS-548.
   Thanks to Maksim Zuev.
-o Throw an declared IOException if a null entry is met when
+* Throw an declared IOException if a null entry is met when
   reading a global pax header instead of a runtime NPE.
   Issue: COMPRESS-554.
   Thanks to Maksim Zuev.
-o ZIP extraction could lead to ArrayIndexOutOfBoundsExceptions
+* ZIP extraction could lead to ArrayIndexOutOfBoundsExceptions
   rather than the expected IOException.
   Issue: COMPRESS-545.
   Thanks to Maksim Zuev.
-o Add asserts for Arrays.copyOf in X0017_StrongEncryptionHeader.
+* Add asserts for Arrays.copyOf in X0017_StrongEncryptionHeader.
   Issue: COMPRESS-547.
   Thanks to Maksim Zuev.
-o Fix for the CFH signature detect in ZipArchiveInputStream.
+* Fix for the CFH signature detect in ZipArchiveInputStream.
   The problem could be reproduced by a zip archive with Data
   Descriptor and STORED, and without the Data Descriptor
   signature.
-o The length validation in TarArchiveInputStream.parsePaxHeaders
+* The length validation in TarArchiveInputStream.parsePaxHeaders
   should also consider the headers with length smaller than 1
   and ignore these headers.
   Issue: COMPRESS-553.
   Thanks to Maksim Zuev.
-o Fix accidentally added '/' to file names.
+* Fix accidentally added '/' to file names.
   This problem is caused by the incomplete fix of COMPRESS-509.
   Github Pull Request #151.
   Issue: COMPRESS-558.
   Thanks to Robin Schimpf.
-o As sparse entries can be successfully parsed now,
+* As sparse entries can be successfully parsed now,
   TarArchiveInputStream.canReadEntryData should return
   true if the entry is a sparse entry.
   Github Pull Request #153.
   Issue: COMPRESS-560.
   Thanks to Robin Schimpf.
-o SparseFilesTest#testExtractPaxGNU should be skipped
+* SparseFilesTest#testExtractPaxGNU should be skipped
   if the version of GNU tar binary is 1.28.
   Github Pull Request #152.
   Issue: COMPRESS-559.
   Thanks to Robin Schimpf.
-o Removed an empty loop that was just warming the planet for
+* Removed an empty loop that was just warming the planet for
   certain ZIP archives.
   Github Pull Request #172.
   Thanks to Fabian Meumertzheim.
-o Made some of the stream classes used internally throw
+* Made some of the stream classes used internally throw
   IOExceptions on illegal arguments rather than
   RuntimeExceptions to make it more likely that corrupt archives
   cause expected checked exceptions rather than RuntimException
@@ -567,44 +582,45 @@
   Fixes a specific case for ZIP but affects other formats as
   well.
   Issue: COMPRESS-567.
-o Simplify Assertions #205.
+* Simplify Assertions #205.
   Thanks to Arturo Bernal.
-o Checked the sizes read for archive entries and reject archives
+* Checked the sizes read for archive entries and reject archives
   as broken with negative entry sizes.
 
   Fixes an infinite loop in the new TarFile class but affects
   several formats.
   Issue: COMPRESS-569.
-o OSGi detection was broken and so we always cached whether
+* OSGi detection was broken and so we always cached whether
   XZ/brotli/zstd/LZMA have been available even in OSGi
   environments.
   Issue: COMPRESS-552.
-o SevenZFile.getEntries now return a copy of entries.
+* SevenZFile.getEntries now return a copy of entries.
   Issue: COMPRESS-571.
-o Handling of sparse tar entries has been hardened to ensure bad
+* Handling of sparse tar entries has been hardened to ensure bad
   inputs cause expected IOExceptions rather than RuntimeExceptions.
   Issue: COMPRESS-575.
-o The parser for GNU sparse tar headers could throw a
+* The parser for GNU sparse tar headers could throw a
   NullPointerExcpetion rather than an IOException if the archive
   ended while more sparse headers were expected.
 
-Changes:
-o Made sure ZstdCompressorOutputStream no longer used
+Changes
+-------
+* Made sure ZstdCompressorOutputStream no longer used
   deprecated ZstOutputStream constructors.
   Github Pull Request #94.
   Thanks to Peter Alfred Lee.
-o Make compression level of ParallelScatterZipCreator
+* Make compression level of ParallelScatterZipCreator
   configurable via a new constructor.
   Issue: COMPRESS-504.
-o Made an inner class static
+* Made an inner class static
   Github Pull Request #107.
   Issue: COMPRESS-536.
   Thanks to Jin Xu.
-o added an early exit to a loop in BZip2CompressorOutputStream
+* added an early exit to a loop in BZip2CompressorOutputStream
   Github Pull Request #106.
   Issue: COMPRESS-535.
   Thanks to Jin Xu.
-o Update the class of variable file in TarArchiveEntry from
+* Update the class of variable file in TarArchiveEntry from
   java.io.File to java.nio.file.Path. Corresponding constructors
   and methods are also modified/added.
 
@@ -617,86 +633,88 @@
   Github Pull Request #97.
   Issue: COMPRESS-404.
   Thanks to theobisproject.
-o Reuse the record buffer in TarArchiveInputStream.
+* Reuse the record buffer in TarArchiveInputStream.
   Issue: COMPRESS-539.
   Thanks to Robin Schimpf.
-o Add SevenZOutputFile.write(InputStream).
+* Add SevenZOutputFile.write(InputStream).
   Thanks to Gary Gregory.
-o Add SevenZOutputFile.write(Path, OpenOption...).
+* Add SevenZOutputFile.write(Path, OpenOption...).
   Thanks to Gary Gregory.
-o Add SevenZOutputFile.createArchiveEntry(Path, String, LinkOption...).
+* Add SevenZOutputFile.createArchiveEntry(Path, String, LinkOption...).
   Thanks to Gary Gregory.
-o Add ArArchiveOutputStream.createArchiveEntry(Path, String, LinkOption...).
+* Add ArArchiveOutputStream.createArchiveEntry(Path, String, LinkOption...).
   Thanks to Gary Gregory.
-o Add ArArchiveEntry(Path, String, LinkOption...).
+* Add ArArchiveEntry(Path, String, LinkOption...).
   Thanks to Gary Gregory.
-o Add ctor CpioArchiveEntry(Path, String, LinkOption...).
+* Add ctor CpioArchiveEntry(Path, String, LinkOption...).
   Thanks to Gary Gregory.
-o Add ctor CpioArchiveEntry(short, Path, String, LinkOption...).
+* Add ctor CpioArchiveEntry(short, Path, String, LinkOption...).
   Thanks to Gary Gregory.
-o Add CpioArchiveEntry.setTime(FileTime).
+* Add CpioArchiveEntry.setTime(FileTime).
   Thanks to Gary Gregory.
-o Add TarArchiveOutputStream.createArchiveEntry(Path, String, LinkOption...).
+* Add TarArchiveOutputStream.createArchiveEntry(Path, String, LinkOption...).
   Thanks to Gary Gregory.
-o Add ctor TarArchiveEntry(Path, String, LinkOption...).
+* Add ctor TarArchiveEntry(Path, String, LinkOption...).
   Thanks to Gary Gregory.
-o Add IOUtils.EMPTY_LINK_OPTIONS.
+* Add IOUtils.EMPTY_LINK_OPTIONS.
   Thanks to Gary Gregory.
-o Add Path support to ZipArchiveOutputStream #123.
+* Add Path support to ZipArchiveOutputStream #123.
   Thanks to Gary Gregory.
-o Some minor improvements.
+* Some minor improvements.
   Github Pull Request #157.
   Issue: COMPRESS-561.
   Thanks to Arturo Bernal.
-o Update from Java 7 to 8.
-o Update GitHub actions/checkout from v1 to v2.3.4, #114, #124, #139, #150.
+* Update from Java 7 to 8.
+* Update GitHub actions/checkout from v1 to v2.3.4, #114, #124, #139, #150.
   Thanks to Dependabot.
-o Update actions/setup-java from v1.4.0 to v2, #125, #133, #141.
+* Update actions/setup-java from v1.4.0 to v2, #125, #133, #141.
   Thanks to Dependabot, Gary Gregory.
-o Update com.github.luben:zstd-jni from 1.4.4-7 to 1.5.0-2, #118, #159, #173, #174, #203.
+* Update com.github.luben:zstd-jni from 1.4.4-7 to 1.5.0-2, #118, #159, #173, #174, #203.
   Thanks to Dependabot, Gary Gregory.
-o Update tests slf4j-api from 1.7.26 to 1.7.30 #117.
+* Update tests slf4j-api from 1.7.26 to 1.7.30 #117.
   Thanks to Dependabot.
-o Update maven-pmd-plugin from 3.12.0 to 3.14.0, #115, #154.
+* Update maven-pmd-plugin from 3.12.0 to 3.14.0, #115, #154.
   Thanks to Dependabot.
-o Update maven-bundle-plugin from 3.5.1 to 5.1.2 #116, #180.
+* Update maven-bundle-plugin from 3.5.1 to 5.1.2 #116, #180.
   Thanks to Dependabot.
-o Bump memoryfilesystem from 1.3.0 to 2.1.0 #131.
+* Bump memoryfilesystem from 1.3.0 to 2.1.0 #131.
   Thanks to Dependabot.
-o Bump actions/cache from v2 to v2.1.6, #164, #200.
+* Bump actions/cache from v2 to v2.1.6, #164, #200.
   Thanks to Dependabot.
-o Bump junit from 4.13 to 4.13.2, #143, #167.
+* Bump junit from 4.13 to 4.13.2, #143, #167.
   Thanks to Dependabot.
-o Bump mockito-core from 1.10.19 to 3.11.1, #161, #170, #204.
+* Bump mockito-core from 1.10.19 to 3.11.1, #161, #170, #204.
   Thanks to Dependabot.
-o Bump commons.jacoco.version from 0.8.5 to 0.8.7 (Java 16 builds).
+* Bump commons.jacoco.version from 0.8.5 to 0.8.7 (Java 16 builds).
   Thanks to Gary Gregory.
-o Bump org.apache.felix:org.apache.felix.framework from 6.0.3 to 7.0.0 (Java 16 builds).
+* Bump org.apache.felix:org.apache.felix.framework from 6.0.3 to 7.0.0 (Java 16 builds).
   Thanks to Gary Gregory.
-o Bump commons.japicmp.version from 0.14.3 to 0.15.3 (Java 16 builds).
+* Bump commons.japicmp.version from 0.14.3 to 0.15.3 (Java 16 builds).
   Thanks to Gary Gregory.
-o Bump commons.javadoc.version from 3.2.0 to 3.3.0.
+* Bump commons.javadoc.version from 3.2.0 to 3.3.0.
   Thanks to Gary Gregory.
-o Update com.github.luben:zstd-jni from 1.4.8-7 to 1.4.9-1 #176.
+* Update com.github.luben:zstd-jni from 1.4.8-7 to 1.4.9-1 #176.
   Thanks to Dependabot.
-o Update org.tukaani:xz from 1.8 to 1.9
-o Some minor improvements.
+* Update org.tukaani:xz from 1.8 to 1.9
+* Some minor improvements.
   Github Pull Request #193.
   Issue: COMPRESS-577.
   Thanks to Arturo Bernal.
-o Java8 improvements.
+* Java8 improvements.
   Github Pull Request #194.
   Issue: COMPRESS-578.
   Thanks to Arturo Bernal.
-o Remove redundant local variable.
+* Remove redundant local variable.
   Github Pull Request #195.
   Issue: COMPRESS-579.
   Thanks to Arturo Bernal.
-o Remove redundant operation
+* Remove redundant operation
   Github Pull Request #196.
   Issue: COMPRESS-580.
   Thanks to Arturo Bernal.
 
+-----------------------------------------------------------------------------
+
 Release 1.20
 ------------
 
@@ -705,18 +723,19 @@
 support for the Pack200 format. We will address this issue with the
 next release.
 
-Fixed Bugs:
-o SevenZFile could throw NullPointerException rather than
+Fixed Bugs
+----------
+* SevenZFile could throw NullPointerException rather than
   IOException for certain archives. In addition it now handles
   certain empty archives more gracefully.
   Issue: COMPRESS-492.
-o Deflate64CompressorInputStream.read would return 0 for some
+* Deflate64CompressorInputStream.read would return 0 for some
   inputs in violation of the InputStream.read contract.
   Issue: COMPRESS-491.
-o SeekableInMemoryByteChannel's truncate didn't set position
+* SeekableInMemoryByteChannel's truncate didn't set position
   according to the spec in an edge case.
   Issue: COMPRESS-499.
-o BZip2CompressorInputStream now incorporates a similar patch as
+* BZip2CompressorInputStream now incorporates a similar patch as
   the one that fixed CVE-2019-12900 in libbzip2.
 
   Commons Compress has not been vulnerable to this CVE as it
@@ -724,34 +743,38 @@
   patch Commons Compress will be able to read certain archives
   that would have caused errors in Compress 1.19. Thanks to Joseph Allemandou.
 
-Changes:
-o Update optional library com.github.luben:zstd-jni from
+Changes
+-------
+* Update optional library com.github.luben:zstd-jni from
   1.4.0-1 to 1.4.4-7.
   Issue: COMPRESS-493.
-o Update tests from org.apache.felix:org.apache.felix.framework
+* Update tests from org.apache.felix:org.apache.felix.framework
   6.0.2 to 6.0.3.
-o SevenZFile can now recover from a certain corruption that
+* SevenZFile can now recover from a certain corruption that
   seems to happen occasionally when split archives are created.
   Issue: COMPRESS-497.
   Thanks to Stefan Schlott.
-o Added random access support to SevenZFile.
+* Added random access support to SevenZFile.
   Issue: COMPRESS-342.
   Thanks to Peter Alfred Lee.
-o Added support for split ZIP archives.
+* Added support for split ZIP archives.
   Issue: COMPRESS-477.
   Thanks to Peter Alfred Lee.
-o Added support for reading sparse entries to the TAR package.
+* Added support for reading sparse entries to the TAR package.
   Issue: COMPRESS-124.
   Thanks to Peter Alfred Lee.
-o Update JUnit from 4.12 to 4.13.
+* Update JUnit from 4.12 to 4.13.
 
-Removed:
-o Removed the extraction code from the example CLI class inside
+Removed
+-------
+* Removed the extraction code from the example CLI class inside
   of the SevenZ package. Not only is it superseeded by the
   examples package, its implementation was vulnerable to the
   ZipSlip attack.
   Issue: COMPRESS-495.
 
+-----------------------------------------------------------------------------
+
 Release 1.19
 ------------
 
@@ -767,65 +790,68 @@
 certain cases when used directly. There is no practical difference
 when they are read via ZipArchiveInputStream or ZipFile.
 
-New features:
-o It is now possible to skip parsing of local file headers when
+New features
+------------
+* It is now possible to skip parsing of local file headers when
   using ZipFile which may speed up reading the archive at the
   cost of potentially missing important information. See the
   javadocs of the ZipFile class for details.
   Issue: COMPRESS-466.
-o TarArchiveInputStream has a new constructor-arg lenient that
+* TarArchiveInputStream has a new constructor-arg lenient that
   can be used to accept certain broken archives.
   Issue: COMPRESS-469.
-o ArjArchiveEntry and SevenZArchiveEntry now implement hashCode
+* ArjArchiveEntry and SevenZArchiveEntry now implement hashCode
   and equals.
   Issue: COMPRESS-475.
-o Added a MultiReadOnlySeekableByteChannel class
+* Added a MultiReadOnlySeekableByteChannel class
   that can be used to concatenate the parts of a multi volume 7z
   archive so that SevenZFile can read them.
   Issue: COMPRESS-231.
   Thanks to Tim Underwood.
 
-Fixed Bugs:
-o ZipArchiveInputStream could forget the compression level has
+Fixed Bugs
+----------
+* ZipArchiveInputStream could forget the compression level has
   changed under certain circumstances.
-o Fixed another potential resource leak in
+* Fixed another potential resource leak in
   ParallelScatterZipCreator#writeTo.
   Issue: COMPRESS-470.
-o ArArchiveInputStream could think it had hit EOF prematurely.
+* ArArchiveInputStream could think it had hit EOF prematurely.
   Github Pull Request #74.
   Thanks to Alex Bertram.
-o Throw IOException rather than RuntimeExceptions for certain
+* Throw IOException rather than RuntimeExceptions for certain
   malformed LZ4 or Snappy inputs.
   Issue: COMPRESS-490.
-o ZipArchiveInputStream failed to read stored entries with a
+* ZipArchiveInputStream failed to read stored entries with a
   data descriptor if the data descriptor didn't use the
   signature invented by InfoZIP.
   Issue: COMPRESS-482.
 
-Changes:
-o SevenZFile now provides a way to cap memory consumption for
+Changes
+-------
+* SevenZFile now provides a way to cap memory consumption for
   LZMA(2) compressed content.
   Github Pull Request #76.
   Issue: COMPRESS-481.
   Thanks to Robin Schimpf.
-o The ARJ package has been updated to contain constants for more
+* The ARJ package has been updated to contain constants for more
   recent specifications.
   Issue: COMPRESS-464.
   Thanks to Rostislav Krasny.
-o Update optional library zstd-jni from 1.3.3-3 to 1.4.0-1.
+* Update optional library zstd-jni from 1.3.3-3 to 1.4.0-1.
   Issue: COMPRESS-484.
-o ParallelScatterZipCreator now writes the entries to the
+* ParallelScatterZipCreator now writes the entries to the
   gathered output in the same order they have been added.
   Github Pull Requests #78 and #79.
   Issue: COMPRESS-485.
   Thanks to Hervé Boutemy, Tibor Digana.
-o The Expander and Archive example classes can leak resources
+* The Expander and Archive example classes can leak resources
   they have wrapped around passed in streams or channels. The
   methods consuming streams and channels have been adapted to
   give the calling code a chance to deal with those wrapper
   resources.
   Issue: COMPRESS-486.
-o ZipArchiveInputStream and ZipFile no longer assume Commons
+* ZipArchiveInputStream and ZipFile no longer assume Commons
   Compress would understand extra fields better than the writer
   of the archive and silently turn extra fields that Commons
   Compress should understand into UnrecognizedExtraFields if
@@ -834,7 +860,7 @@
   parsing process with a new overload of
   ZipArchiveEntry#getExtraFields.
   Issue: COMPRESS-479.
-o ZipArchiveInputStream will now throw an exception if reading a
+* ZipArchiveInputStream will now throw an exception if reading a
   stored entry with a data descriptor and the data descriptor
   doesn't match what it has actually read.
 
@@ -850,7 +876,7 @@
   exception prevents users from thinking they had successfully
   read the contents of the archive.
   Issue: COMPRESS-483.
-o The 7zip tools provide a default name for archive entries
+* The 7zip tools provide a default name for archive entries
   without name; SevenZFile returns a null name for such
   entries. A new method getDefaultName has been added to derive
   the same name the 7zip tools would use and an option has been
@@ -858,58 +884,65 @@
   if it is not contained inside the archive.
   Issue: COMPRESS-478.
 
+-----------------------------------------------------------------------------
+
 Release 1.18
 ------------
 
 This release changes the OSGi Manifest entry Bundle-SymbolicName from
 org.apache.commons.compress to org.apache.commons.commons-compress.
 
-New features:
-o It is now possible to specify the arguments of zstd-jni's
+New features
+------------
+* It is now possible to specify the arguments of zstd-jni's
   ZstdOutputStream constructors via Commons Compress as well.
   Issue: COMPRESS-460.
   Thanks to Carmi Grushko.
 
-Fixed Bugs:
-o The example Expander class has been vulnerable to a path
+Fixed Bugs
+----------
+* The example Expander class has been vulnerable to a path
   traversal in the edge case that happens when the target
   directory has a sibling directory and the name of the target
   directory is a prefix of the sibling directory's name.
   Thanks to Didier Loiseau.
-o Changed the OSGi Import-Package to also optionally import
+* Changed the OSGi Import-Package to also optionally import
   javax.crypto so encrypted archives can be read.
   Issue: COMPRESS-456.
-o Changed various implementations of the close method to better
+* Changed various implementations of the close method to better
   ensure all held resources get closed even if exceptions are
   thrown during the closing the stream.
   Issue: COMPRESS-457.
-o ZipArchiveInputStream can now detect the APK Signing Block
+* ZipArchiveInputStream can now detect the APK Signing Block
   used in signed Android APK files and treats it as an "end of
   archive" marker.
   Issue: COMPRESS-455.
-o The cpio streams didn't handle archives using a multi-byte
+* The cpio streams didn't handle archives using a multi-byte
   encoding properly.
   Issue: COMPRESS-459.
   Thanks to Jens Reimann.
-o ZipArchiveInputStream#read would silently return -1 on a
+* ZipArchiveInputStream#read would silently return -1 on a
   corrupted stored entry and even return > 0 after hitting the
   end of the archive.
   Issue: COMPRESS-463.
-o ArArchiveInputStream#read would allow to read from the stream
+* ArArchiveInputStream#read would allow to read from the stream
   without opening an entry at all.
   Issue: COMPRESS-462.
 
+-----------------------------------------------------------------------------
+
 Release 1.17
 ------------
 
-New features:
-o Added a unit test that is supposed to fail if we break the
+New features
+------------
+* Added a unit test that is supposed to fail if we break the
   OSGi manifest entries again.
   Issue: COMPRESS-443.
-o Add a new SkipShieldingInputStream class that can be used with
+* Add a new SkipShieldingInputStream class that can be used with
   streams that throw an IOException when skip is invoked.
   Issue: COMPRESS-449.
-o New constructors have been added to SevenZFile that accept
+* New constructors have been added to SevenZFile that accept
   char[]s rather than byte[]s in order to avoid a common error
   of using the wrong encoding when creating the byte[].  This
   change may break source compatibility for client code that
@@ -918,26 +951,28 @@
   constructor without password argument.
   Issue: COMPRESS-452.
 
-Fixed Bugs:
-o Removed the objenesis dependency from the pom as it is not
+Fixed Bugs
+----------
+* Removed the objenesis dependency from the pom as it is not
   needed at all.
-o Fixed resource leak in ParallelScatterZipCreator#writeTo.
+* Fixed resource leak in ParallelScatterZipCreator#writeTo.
   Issue: COMPRESS-446.
-o Certain errors when parsing ZIP extra fields in corrupt
+* Certain errors when parsing ZIP extra fields in corrupt
   archives are now turned into ZipException, they used to
   manifest as ArrayIndexOutOfBoundsException before.
   Issue: COMPRESS-447.
-o IOUtils.copy now verifies the buffer size is bigger than 0.
+* IOUtils.copy now verifies the buffer size is bigger than 0.
   Issue: COMPRESS-451.
-o ZipArchiveInputStream failed to read some files with stored
+* ZipArchiveInputStream failed to read some files with stored
   entries using a data descriptor.
   Issue: COMPRESS-454.
 
-Changes:
-o Fixed some code examples.
+Changes
+-------
+* Fixed some code examples.
   Github Pull Request #63.
   Thanks to Marchenko Sergey.
-o The streams returned by ZipFile and most other decompressing
+* The streams returned by ZipFile and most other decompressing
   streams now provide information about the number of compressed
   and uncompressed bytes read so far. This may be used to detect
   a ZipBomb if the compression ratio exceeds a certain
@@ -946,192 +981,211 @@
   current entry.
   Issue: COMPRESS-445.
   Thanks to Andreas Beeker.
-o Added a workaround for a bug in AdoptOpenJDK for S/390 to
+* Added a workaround for a bug in AdoptOpenJDK for S/390 to
   BZip2CompressorInputStream.
   Issue: COMPRESS-453.
 
+-----------------------------------------------------------------------------
+
 Release 1.16.1
 --------------
 
-Fixed Bug:
-o Fixed the OSGi manifest entry for imports that has been broken
+Fixed Bug
+---------
+* Fixed the OSGi manifest entry for imports that has been broken
   in 1.16.
   Issue: COMPRESS-442.
 
+-----------------------------------------------------------------------------
+
 Release 1.16
 ------------
 
-New features:
-o Add read-only support for Zstandard compression based on the
+New features
+------------
+* Add read-only support for Zstandard compression based on the
   Zstd-jni project.
   Issue: COMPRESS-423. Thanks to Andre F de Miranda.
-o Added auto-detection for Zstandard compressed streams.
+* Added auto-detection for Zstandard compressed streams.
   Issue: COMPRESS-425.
-o Added write-support for Zstandard compression.
+* Added write-support for Zstandard compression.
   Issue: COMPRESS-426.
-o Added read-only DEFLATE64 support to ZIP archives and as
+* Added read-only DEFLATE64 support to ZIP archives and as
   stand-alone CompressorInputStream.
   Issue: COMPRESS-380. Thanks to Christian Marquez Grabia.
-o Added read-only DEFLATE64 support to 7z archives.
+* Added read-only DEFLATE64 support to 7z archives.
   Issue: COMPRESS-437.
 
-Fixed Bugs:
-o Synchronized iteration over a synchronizedList in
+Fixed Bugs
+----------
+* Synchronized iteration over a synchronizedList in
   ParallelScatterZipCreator.
   Issue: COMPRESS-430. Thanks to Bruno P. Kinoshita.
-o ZipFile could get stuck in an infinite loop when parsing ZIP
+* ZipFile could get stuck in an infinite loop when parsing ZIP
   archives with certain strong encryption headers.
   Issue: COMPRESS-432.
-o Added improved checks to detect corrupted bzip2 streams and
+* Added improved checks to detect corrupted bzip2 streams and
   throw the expected IOException rather than obscure
   RuntimeExceptions.
   Issue: COMPRESS-424.
 
-Changes:
-o Replaces instanceof checks with a type marker in LZ77 support code.
+Changes
+-------
+* Replaces instanceof checks with a type marker in LZ77 support code.
   Issue: COMPRESS-435. Thanks to BELUGA BEHR.
-o Updated XZ for Java dependency to 1.8 in order to pick up bug fix
+* Updated XZ for Java dependency to 1.8 in order to pick up bug fix
   to LZMA2InputStream's available method.
-o ZipArchiveEntry now exposes how the name or comment have been
+* ZipArchiveEntry now exposes how the name or comment have been
   determined when the entry was read.
   Issue: COMPRESS-429. Thanks to Damiano Albani.
-o ZipFile.getInputStream will now always buffer the stream
+* ZipFile.getInputStream will now always buffer the stream
   internally in order to improve read performance.
   Issue: COMPRESS-438.
-o Speed improvement for DEFLATE64 decompression.
+* Speed improvement for DEFLATE64 decompression.
   Issue: COMPRESS-440. Thanks to Dawid Weiss.
-o Added a few extra sanity checks for the rarer compression
+* Added a few extra sanity checks for the rarer compression
   methods used in ZIP archives.
   Issue: COMPRESS-436.
-o Simplified the special handling for the dummy byte required by
+* Simplified the special handling for the dummy byte required by
   zlib when using java.util.zip.Inflater.
   Issue: COMPRESS-441.
-o Various code cleanups.
+* Various code cleanups.
   Github Pull Request #61. Thanks to Shahab Kondri.
-o TarArchiveEntry's preserveLeadingSlashes constructor argument
+* TarArchiveEntry's preserveLeadingSlashes constructor argument
   has been renamed and can now also be used to preserve the
   drive letter on Windows.
 
+-----------------------------------------------------------------------------
+
 Release 1.15
 ------------
 
-New features:
-o Added magic MANIFEST entry Automatic-Module-Name so the module
+New features
+------------
+* Added magic MANIFEST entry Automatic-Module-Name so the module
   name will be org.apache.commons.compress when the jar is used
   as an automatic module in Java9.
   Issue: COMPRESS-397.
-o Added a new utility class FixedLengthBlockOutputStream that
+* Added a new utility class FixedLengthBlockOutputStream that
   can be used to ensure writing always happens in blocks of a
   given size.
   Issue: COMPRESS-405. Thanks to Simon Spero.
-o It is now possible to specify/read custom PAX headers when
+* It is now possible to specify/read custom PAX headers when
   writing/reading tar archives.
   Issue: COMPRESS-400. Thanks to Simon Spero.
 
-Fixed Bugs:
-o Make sure "version needed to extract" in local file header and
+Fixed Bugs
+----------
+* Make sure "version needed to extract" in local file header and
   central directory of a ZIP archive agree with each other.
   Also ensure the version is set to 2.0 if DEFLATE is used.
   Issue: COMPRESS-394.
-o Don't use a data descriptor in ZIP archives when copying a raw
+* Don't use a data descriptor in ZIP archives when copying a raw
   entry that already knows its size and CRC information.
   Issue: COMPRESS-395.
-o Travis build redundantly repeats compilation and tests redundantly
+* Travis build redundantly repeats compilation and tests redundantly
   GitHub Pull Request #43. Thanks to Simon Spero.
   Issue: COMPRESS-413
-o The MANIFEST of 1.14 lacks an OSGi Import-Package for XZ for
+* The MANIFEST of 1.14 lacks an OSGi Import-Package for XZ for
   Java.
   Issue: COMPRESS-396.
-o BUILDING.md now passes the RAT check.
+* BUILDING.md now passes the RAT check.
   Issue: COMPRESS-406. Thanks to Simon Spero.
-o Made sure ChecksumCalculatingInputStream receives valid
+* Made sure ChecksumCalculatingInputStream receives valid
   checksum and input stream instances via the constructor.
   Issue: COMPRESS-412. Thanks to Michael Hausegger.
-o TarArchiveOutputStream now verifies the block and record sizes
+* TarArchiveOutputStream now verifies the block and record sizes
   specified at construction time are compatible with the tar
   specification. In particular 512 is the only record size
   accepted and the block size must be a multiple of 512.
   Issue: COMPRESS-407. Thanks to Simon Spero.
-o Fixed class names of CpioArchiveEntry and
+* Fixed class names of CpioArchiveEntry and
   CpioArchiveInputStream in various Javadocs.
   Issue: COMPRESS-415.
-o The code of the extended timestamp zip extra field incorrectly
+* The code of the extended timestamp zip extra field incorrectly
   assumed the time was stored as unsigned 32-bit int and thus
   created incorrect results for years after 2037.
   Issue: COMPRESS-416. Thanks to Simon Spero.
-o Removed ZipEncoding code that became obsolete when we started
+* Removed ZipEncoding code that became obsolete when we started
   to require Java 5 as baseline long ago.
   Issue: COMPRESS-410. Thanks to Simon Spero.
-o The tar package will no longer try to parse the major and
+* The tar package will no longer try to parse the major and
   minor device numbers unless the entry represents a character
   or block special file.
   Issue: COMPRESS-417.
-o When reading tar headers with name fields containing embedded
+* When reading tar headers with name fields containing embedded
   NULs, the name will now be terminated at the first NUL byte.
   Issue: COMPRESS-421. Thanks to Roel Spilker.
-o Simplified TarArchiveOutputStream by replacing the internal
+* Simplified TarArchiveOutputStream by replacing the internal
   buffering with new class FixedLengthBlockOutputStream.
   Issue: COMPRESS-409.
 
+-----------------------------------------------------------------------------
+
 Release 1.14
 ------------
 
-New features:
-o Added write support for Snappy.
+New features
+------------
+* Added write support for Snappy.
   Issue: COMPRESS-246.
-o Added support for LZ4 (block and frame format).
+* Added support for LZ4 (block and frame format).
   Issue: COMPRESS-271.
-o Add static detect(InputStream in) to CompressorStreamFactory
+* Add static detect(InputStream in) to CompressorStreamFactory
   and ArchiveStreamFactory
   Issue: COMPRESS-385.
-o Added a way to limit amount of memory ZCompressorStream may
+* Added a way to limit amount of memory ZCompressorStream may
   use.
   Issue: COMPRESS-382. Thanks to Tim Allison.
-o Added a way to limit amount of memory ZCompressorStream may
+* Added a way to limit amount of memory ZCompressorStream may
   use.
   Issue: COMPRESS-386. Thanks to Tim Allison.
-o Added a way to limit amount of memory LZMACompressorStream and
+* Added a way to limit amount of memory LZMACompressorStream and
   XZCompressorInputStream may use.
   Issue: COMPRESS-382. Thanks to Tim Allison.
-o Add Brotli decoder based on the Google Brotli library.
+* Add Brotli decoder based on the Google Brotli library.
   Issue: COMPRESS-392. Thanks to Philippe Mouawad.
-o ZipEntry now exposes its data offset.
+* ZipEntry now exposes its data offset.
   Issue: COMPRESS-390. Thanks to Zbynek Vyskovsky.
-o Using ZipArchiveEntry's setAlignment it is now possible to
+* Using ZipArchiveEntry's setAlignment it is now possible to
   ensure the data offset of an entry starts at a file position
   that at word or page boundaries.
   A new extra field has been added for this purpose.
   Issue: COMPRESS-391. Thanks to Zbynek Vyskovsky.
 
-Fixed Bugs:
-o SnappyCompressorInputStream slides the window too early
+Fixed Bugs
+----------
+* SnappyCompressorInputStream slides the window too early
   leading to ArrayIndexOutOfBoundsExceptions for some streams.
   Issue: COMPRESS-378.
-o ZipArchiveEntry#isUnixSymlink now only returns true if the
+* ZipArchiveEntry#isUnixSymlink now only returns true if the
   corresponding link flag is the only file-type flag set.
   Issue: COMPRESS-379. Thanks to Guillaume Boué.
-o Fixed an integer overflow in CPIO's CRC calculation.
+* Fixed an integer overflow in CPIO's CRC calculation.
   Pull Request #17. Thanks to Daniel Collin.
-o Make unit tests work on Windows paths with spaces in their names.
+* Make unit tests work on Windows paths with spaces in their names.
   Issue: COMPRESS-387.
-o Internal location pointer in ZipFile could get incremented
+* Internal location pointer in ZipFile could get incremented
   even if nothing had been read.
   Issue: COMPRESS-389.
-o LZMACompressorOutputStream#flush would throw an exception
+* LZMACompressorOutputStream#flush would throw an exception
   rather than be the NOP it promised to be.
   Issue: COMPRESS-393.
 
-Changes:
-o The blocksize for FramedSnappyCompressorInputStream can now be
+Changes
+-------
+* The blocksize for FramedSnappyCompressorInputStream can now be
   configured as some IWA files seem to be using blocks larger
   than the default 32k.
   Issue: COMPRESS-358.
-o BZip2CompressorInputstream now uses BitInputStream internally.
+* BZip2CompressorInputstream now uses BitInputStream internally.
   Pull Request #13. Thanks to Thomas Meyer.
-o Improved performance for concurrent reads from ZipFile when
+* Improved performance for concurrent reads from ZipFile when
   reading from a file.
   Issue: COMPRESS-388. Thanks to Zbynek Vyskovsky.
 
+-----------------------------------------------------------------------------
+
 Release 1.13
 ------------
 
@@ -1140,50 +1194,55 @@
 
 Changes in this version include:
 
-New features:
-o SevenZFile, SevenZOutputFile, ZipFile and
+New features
+------------
+* SevenZFile, SevenZOutputFile, ZipFile and
   ZipArchiveOutputStream can now work on non-file resources if
   they can be accessed via SeekableByteChannel.
   Issue: COMPRESS-327.
-o Allow compressor extensions through a standard JRE ServiceLoader.
+* Allow compressor extensions through a standard JRE ServiceLoader.
   Issue: COMPRESS-368.
-o Allow archive extensions through a standard JRE ServiceLoader.
+* Allow archive extensions through a standard JRE ServiceLoader.
   Issue: COMPRESS-369.
-o Add write support for the legacy LZMA format, this requires XZ
+* Add write support for the legacy LZMA format, this requires XZ
   for Java 1.6.
   Issue: COMPRESS-373.
-o Add write support for the legacy LZMA stream to 7z, this
+* Add write support for the legacy LZMA stream to 7z, this
   requires XZ for Java 1.6.
   Issue: COMPRESS-374.
-o Allow the clients of ParallelScatterZipCreator to provide
+* Allow the clients of ParallelScatterZipCreator to provide
   ZipArchiveEntryRequestSupplier.
   Issue: COMPRESS-375. Thanks to Plamen Totev.
-o Add a version-independent link to the API docs of the latest
+* Add a version-independent link to the API docs of the latest
   release.
   Issue: COMPRESS-372.
 
-Fixed Bugs:
-o BitInputStream could return bad results when overflowing
+Fixed Bugs
+----------
+* BitInputStream could return bad results when overflowing
   internally - if two consecutive reads tried to read more than
   64 bits.
   Issue: COMPRESS-363.
-o ZipArchiveInputStream.closeEntry does not properly advance to
+* ZipArchiveInputStream.closeEntry does not properly advance to
   next entry if there are junk bytes at end of data section.
   Issue: COMPRESS-364. Thanks to Mike Mole.
-o ZipArchiveInputStream now throws an Exception if it encounters
+* ZipArchiveInputStream now throws an Exception if it encounters
   a broken ZIP archive rather than signaling end-of-archive.
   Issue: COMPRESS-367. Thanks to Mike Mole.
-o ScatterZipOutputStream didn't close the StreamCompressor
+* ScatterZipOutputStream didn't close the StreamCompressor
   causing a potential resource leak.
   Issue: COMPRESS-377.
 
-Changes:
-o Update Java requirement from 6 to 7.
+Changes
+-------
+* Update Java requirement from 6 to 7.
   Issue: COMPRESS-360.
-o Clarified which TarArchiveEntry methods are useless for
+* Clarified which TarArchiveEntry methods are useless for
   entries read from an archive.
   Issue: COMPRESS-366.
 
+-----------------------------------------------------------------------------
+
 Release 1.12
 ------------
 
@@ -1197,101 +1256,104 @@
 itself. Note that a finalizer is not guaranteed to run, so the feature
 was not 100% effective in any case.
 
-New features:
-
-o FramedSnappyCompressorInputStream now supports the dialect of
+New features
+------------
+* FramedSnappyCompressorInputStream now supports the dialect of
   Snappy used by the IWA files contained within the zip archives
   used in Apple's iWork 13 files.
   Issue: COMPRESS-352.
 
-Fixed Bugs:
-
-o SevenZFile.read() throws an IllegalStateException for empty entries.
+Fixed Bugs
+----------
+* SevenZFile.read() throws an IllegalStateException for empty entries.
   Issue: COMPRESS-348.
-o TarArchiveInputStream failed to parse PAX headers that included
+* TarArchiveInputStream failed to parse PAX headers that included
   blank lines.
   Issue: COMPRESS-355. Thanks to Jeremy Gustie.
-o TarArchiveInputStream failed to parse PAX headers whose tar entry
+* TarArchiveInputStream failed to parse PAX headers whose tar entry
   name ended with a slash.
   Issue: COMPRESS-356. Thanks to Jeremy Gustie.
 
-Changes:
-o Update requirement from Java 5 to 6.
+Changes
+-------
+* Update requirement from Java 5 to 6.
   Issue: COMPRESS-349.
-o TarArchiveEntry wastefully allocates empty arrays.
+* TarArchiveEntry wastefully allocates empty arrays.
   Issue: COMPRESS-350.
-o Javadoc for BZip2CompressorInputStream(InputStream, boolean) should
+* Javadoc for BZip2CompressorInputStream(InputStream, boolean) should
   refer to IOEx, not NPE.
   Issue: COMPRESS-353.
-o PureJavaCrc32C in the snappy package is now final so it is now safe
+* PureJavaCrc32C in the snappy package is now final so it is now safe
   to call a virtual method inside the constructor.
   Issue: COMPRESS-354.
-
-o ZipArchiveInputStream and CpioArchiveInputStream could throw
+* ZipArchiveInputStream and CpioArchiveInputStream could throw
   exceptions who's messages contained potentially corrupt entry names
   read from a broken archive. They will now sanitize the names by
   replacing unprintable characters and restricting the length to 255
   characters.
   Issue: COMPRESS-351.
-o BZip2CompressorOutputStream no longer tries to finish the output
+* BZip2CompressorOutputStream no longer tries to finish the output
   stream in finalize. This is a breaking change for code that relied
   on the finalizer.
   Issue: COMPRESS-357.
 
+-----------------------------------------------------------------------------
 
 Release 1.11
 ------------
 
-New features:
-o TarArchiveInputStream now supports reading global PAX headers.
+New features
+------------
+* TarArchiveInputStream now supports reading global PAX headers.
   Issue: COMPRESS-347.
-o The PAX headers for sparse entries written by star are now
+* The PAX headers for sparse entries written by star are now
   applied.
   Issue: COMPRESS-346.
-o GNU sparse files using one of the PAX formats are now
+* GNU sparse files using one of the PAX formats are now
   detected, but cannot be extracted.
   Issue: COMPRESS-345.
-o New method SevenZFile.getEntries can be used to list the
+* New method SevenZFile.getEntries can be used to list the
   contents of a 7z archive.
   Issue: COMPRESS-341.
-o When using Zip64Mode.Always also use ZIP64 extensions inside
+* When using Zip64Mode.Always also use ZIP64 extensions inside
   the central directory.
   GitHub Pull Request #10 Thanks to Matt Hovey.
-o ZipFile.getRawInputStream() is now part of the public API
+* ZipFile.getRawInputStream() is now part of the public API
   Issue: COMPRESS-323.
-o Allow byte-for-byte replication of Zip entries.
+* Allow byte-for-byte replication of Zip entries.
   GitHub Pull Request #6. Thanks to Jason van Zyl.
-o TarArchiveEntry's preserveLeadingSlashes is now a property and used
+* TarArchiveEntry's preserveLeadingSlashes is now a property and used
   on later calls to setName, too.
   This behavior is a breaking change.
   Issue: COMPRESS-328.
-o Added read-only support for bzip2 compression used inside of
+* Added read-only support for bzip2 compression used inside of
   ZIP archives.
   GitHub Pull Request #4. Thanks to Sören Glimm.
 
-Fixed Bugs:
-o ArArchiveInputStream can now read GNU extended names that are
+Fixed Bugs
+----------
+* ArArchiveInputStream can now read GNU extended names that are
   terminated with a NUL byte rather than a linefeed.
   Issue: COMPRESS-344.
-o Native Memory Leak in Sevenz-DeflateDecoder.
+* Native Memory Leak in Sevenz-DeflateDecoder.
   Issue: COMPRESS-343. Thanks to Rene Preissel.
-o SevenZFile will now only try to drain an entry's content when
+* SevenZFile will now only try to drain an entry's content when
   moving on to the next entry if data is read from the next
   entry. This should improve performance for applications that
   try to skip over entries.
   Issue: COMPRESS-340. Thanks to Dawid Weiss.
-o file names of tar archives using the xstar format are now
+* file names of tar archives using the xstar format are now
   parsed properly.
   Issue: COMPRESS-336.
-o checksums of tars that pad the checksum field to the left are
+* checksums of tars that pad the checksum field to the left are
   now calculated properly.
   Issue: COMPRESS-335.
-o ArArchiveInputStream failed to read past the first entry when
+* ArArchiveInputStream failed to read past the first entry when
   BSD long names have been used.
   Issue: COMPRESS-334. Thanks to Jeremy Gustie.
-o Added buffering for random access which speeds up 7Z support.
+* Added buffering for random access which speeds up 7Z support.
   Issue: COMPRESS-333. Thanks to Dawid Weiss.
-o The checksum validation of TararchiveEntry is now as strict as
+* The checksum validation of TararchiveEntry is now as strict as
   the validation of GNU tar, which eliminates a few cases of
   false positives of ArchiveStreamFactory.
   This behavior is a breaking change since the check has become
@@ -1299,22 +1361,24 @@
   would also fail it when extracted with other tools and must be
   considered an invalid archive.
   Issue: COMPRESS-331.
-o SnappyCompressorInputStream and
+* SnappyCompressorInputStream and
   FramedSnappyCompressorInputStream returned 0 at the end of the
   stream under certain circumstances.
   Issue: COMPRESS-332.
-o Adjusted unit test to updates in Java8 and later that change
+* Adjusted unit test to updates in Java8 and later that change
   the logic of ZipEntry#getTime.
   Issue: COMPRESS-326.
-o TarArchiveOutputStream will now recognize GNU long name and
+* TarArchiveOutputStream will now recognize GNU long name and
   link entries even if the special entry has a different name
   than GNU tar uses itself.  This seems to be the case for
   archives created by star.
   Issue: COMPRESS-324.
-o ArrayIndexOutOfBoundsException when InfoZIP type 7875 extra
+* ArrayIndexOutOfBoundsException when InfoZIP type 7875 extra
   fields are read from the central directory.
   Issue: COMPRESS-321.
 
+-----------------------------------------------------------------------------
+
 Release 1.10
 ------------
 
@@ -1327,13 +1391,14 @@
 that extends ZCompressorInputStream will need to be recompiled in
 order to work with Compress 1.10.
 
-New features:
-o CompressorStreamFactory can now auto-detect DEFLATE streams
+New features
+------------
+* CompressorStreamFactory can now auto-detect DEFLATE streams
   with ZLIB header.
   Issue: COMPRESS-316. Thanks to Nick Burch.
-o CompressorStreamFactory can now auto-detect LZMA streams.
+* CompressorStreamFactory can now auto-detect LZMA streams.
   Issue: COMPRESS-313.
-o Added support for parallel compression. This low-level API allows
+* Added support for parallel compression. This low-level API allows
   a client to build a zip/jar file by using the class
   org.apache.commons.compress.archivers.zip.ParallelScatterZipCreator.
 
@@ -1343,7 +1408,7 @@
   handled by client code and is not part of commons-compress for this
   release.
   Issue: COMPRESS-296. Thanks to Kristian Rosenvold.
-o Cut overall object instantiation in half by changing file
+* Cut overall object instantiation in half by changing file
   header generation algorithm, for a 10-15 percent performance
   improvement.
 
@@ -1351,28 +1416,29 @@
   and createCentralFileHeader in ZipArchiveOutputStream.
   These may have some interesting additional usages in the
   near future. Thanks to Kristian Rosenvold.
-o New methods in ZipArchiveOutputStream and ZipFile allows
+* New methods in ZipArchiveOutputStream and ZipFile allows
   entries to be copied from one archive to another without
   having to re-compress them.
   Issue: COMPRESS-295. Thanks to Kristian Rosenvold.
 
-Fixed Bugs:
-o TarArchiveInputStream can now read entries with group or
+Fixed Bugs
+----------
+* TarArchiveInputStream can now read entries with group or
   user ids > 0x80000000.
   Issue: COMPRESS-314.
-o TarArchiveOutputStream can now write entries with group or
+* TarArchiveOutputStream can now write entries with group or
   user ids > 0x80000000.
   Issue: COMPRESS-315.
-o TarArchiveEntry's constructor with a File and a String arg
+* TarArchiveEntry's constructor with a File and a String arg
   didn't normalize the name.
   Issue: COMPRESS-312.
-o ZipEncodingHelper no longer reads system properties directly
+* ZipEncodingHelper no longer reads system properties directly
   to determine the default charset.
   Issue: COMPRESS-308.
-o BZip2CompressorInputStream#read would return -1 when asked to
+* BZip2CompressorInputStream#read would return -1 when asked to
   read 0 bytes.
   Issue: COMPRESS-309.
-o ArchiveStreamFactory fails to pass on the encoding when creating
+* ArchiveStreamFactory fails to pass on the encoding when creating
   some streams.
     * ArjArchiveInputStream
     * CpioArchiveInputStream
@@ -1381,28 +1447,29 @@
     * TarArchiveInputStream
     * JarArchiveOutputStream
   Issue: COMPRESS-306.
-o Restore immutability/thread-safety to ArchiveStreamFactory.
+* Restore immutability/thread-safety to ArchiveStreamFactory.
   The class is now immutable provided that the method setEntryEncoding
   is not used. The class is thread-safe.
   Issue: COMPRESS-302.
-o Restore immutability/thread-safety to CompressorStreamFactory.
+* Restore immutability/thread-safety to CompressorStreamFactory.
   The class is now immutable provided that the method
   setDecompressConcatenated is not used.  The class is thread-safe.
   Issue: COMPRESS-303.
-o ZipFile logs a warning in its finalizer when its constructor
+* ZipFile logs a warning in its finalizer when its constructor
   has thrown an exception reading the file - for example if the
   file doesn't exist.
   Issue: COMPRESS-297.
-o Improved error message when tar encounters a groupId that is
+* Improved error message when tar encounters a groupId that is
   too big to write without using the STAR or POSIX format.
   Issue: COMPRESS-290. Thanks to Kristian Rosenvold.
-o SevenZFile now throws the specific PasswordRequiredException
+* SevenZFile now throws the specific PasswordRequiredException
   when it encounters an encrypted stream but no password has
   been specified.
   Issue: COMPRESS-298.
 
-Changes:
-o Moved the package
+Changes
+-------
+* Moved the package
   org.apache.commons.compress.compressors.z._internal_ to
   org.apache.commons.compress.compressors.lzw and made it part
   of the API that is officially supported.  This will break
@@ -1414,154 +1481,173 @@
 
 https://commons.apache.org/compress/
 
+-----------------------------------------------------------------------------
 
 Release 1.9
 -----------
 
-New features:
-o Added support for DEFLATE streams without any gzip framing.
+New features
+------------
+* Added support for DEFLATE streams without any gzip framing.
   Issue: COMPRESS-263.
   Thanks to Matthias Stevens.
 
-Fixed Bugs:
-o When reading 7z files unknown file properties and properties of type
+Fixed Bugs
+----------
+* When reading 7z files unknown file properties and properties of type
   kDummy are now ignored.
   Issue: COMPRESS-287.
-o Expanding 7z archives using LZMA compression could cause an
+* Expanding 7z archives using LZMA compression could cause an
   EOFException.
   Issue: COMPRESS-286. 
-o Long-Name and -link or PAX-header entries in TAR archives always had
+* Long-Name and -link or PAX-header entries in TAR archives always had
   the current time as last modfication time, creating archives that
   are different at the byte level each time an archive was built.
   Issue: COMPRESS-289.
   Thanks to Bob Robertson.
 
-Changes:
-o Checking for XZ for Java may be expensive.  The result will now be
+Changes
+-------
+* Checking for XZ for Java may be expensive.  The result will now be
   cached outside of an OSGi environment.  You can use the new
   XZUtils#setCacheXZAvailability to overrride this default behavior.
   Issue: COMPRESS-285.
 
+-----------------------------------------------------------------------------
+
 Release 1.8.1
 -------------
 
-New features:
-o COMPRESS-272:  CompressorStreamFactory can now auto-detect Unix compress
+New features
+------------
+* COMPRESS-272:  CompressorStreamFactory can now auto-detect Unix compress
                  (".Z") streams. 
 
-Fixed Bugs:
-o COMPRESS-270:  The snappy, ar and tar inputstreams might fail to read from a
+Fixed Bugs
+----------
+* COMPRESS-270:  The snappy, ar and tar inputstreams might fail to read from a
                  non-buffered stream in certain cases. 
-o COMPRESS-277:  IOUtils#skip might skip fewer bytes than requested even though
+* COMPRESS-277:  IOUtils#skip might skip fewer bytes than requested even though
                  more could be read from the stream. 
-o COMPRESS-276:  ArchiveStreams now validate there is a current entry before
+* COMPRESS-276:  ArchiveStreams now validate there is a current entry before
                  reading or writing entry data. 
-o ArjArchiveInputStream#canReadEntryData tested the current
+* ArjArchiveInputStream#canReadEntryData tested the current
                  entry of the stream rather than its argument. 
-o COMPRESS-274:  ChangeSet#delete and deleteDir now properly deal with unnamed
+* COMPRESS-274:  ChangeSet#delete and deleteDir now properly deal with unnamed
                  entries. 
-o COMPRESS-273:  Added a few null checks to improve robustness. 
-o COMPRESS-278:  TarArchiveInputStream failed to read archives with empty
+* COMPRESS-273:  Added a few null checks to improve robustness. 
+* COMPRESS-278:  TarArchiveInputStream failed to read archives with empty
                  gid/uid fields. 
-o COMPRESS-279:  TarArchiveInputStream now again throws an exception when it
+* COMPRESS-279:  TarArchiveInputStream now again throws an exception when it
                  encounters a truncated archive while reading from the last
                  entry. 
-o COMPRESS-280:  Adapted TarArchiveInputStream#skip to the modified
+* COMPRESS-280:  Adapted TarArchiveInputStream#skip to the modified
                  IOUtils#skip method. Thanks to BELUGA BEHR. 
 
-Changes:
-o The dependency on org.tukaani:xz is now marked as optional. 
+Changes
+-------
+* The dependency on org.tukaani:xz is now marked as optional. 
+
+-----------------------------------------------------------------------------
 
 Release 1.8
 -----------
 
-New features:
-o GzipCompressorInputStream now provides access to the same
+New features
+------------
+* GzipCompressorInputStream now provides access to the same
   metadata that can be provided via GzipParameters when writing
   a gzip stream.
   Issue: COMPRESS-260. 
-o SevenZOutputFile now supports chaining multiple
+* SevenZOutputFile now supports chaining multiple
   compression/encryption/filter methods and passing options to
   the methods.
   Issue: COMPRESS-266. 
-o The (compression) method(s) can now be specified per entry in
+* The (compression) method(s) can now be specified per entry in
   SevenZOutputFile.
   Issue: COMPRESS-261. 
-o SevenZArchiveEntry "knows" which method(s) have been used to
+* SevenZArchiveEntry "knows" which method(s) have been used to
   write it to the archive.
   Issue: COMPRESS-258. 
-o The 7z package now supports the delta filter as method. 
-o The 7z package now supports BCJ filters for several platforms.
+* The 7z package now supports the delta filter as method. 
+* The 7z package now supports BCJ filters for several platforms.
   You will need a version >= 1.5 of XZ for Java to read archives
   using BCJ, though.
   Issue: COMPRESS-257. 
 
-Fixed Bugs:
-o BZip2CompressorInputStream read fewer bytes than possible from
+Fixed Bugs
+----------
+* BZip2CompressorInputStream read fewer bytes than possible from
   a truncated stream.
   Issue: COMPRESS-253. 
-o SevenZFile failed claiming the dictionary was too large when
+* SevenZFile failed claiming the dictionary was too large when
   archives used LZMA compression for headers and content and
   certain non-default dictionary sizes.
   Issue: COMPRESS-253. 
-o CompressorStreamFactory.createCompressorInputStream with
+* CompressorStreamFactory.createCompressorInputStream with
   explicit compression did not honor decompressConcatenated
   Issue: COMPRESS-259. 
-o TarArchiveInputStream will now read archives created by tar
+* TarArchiveInputStream will now read archives created by tar
   implementations that encode big numbers by not adding a
   trailing NUL.
   Issue: COMPRESS-262. 
-o ZipArchiveInputStream would return NUL bytes for the first 512
+* ZipArchiveInputStream would return NUL bytes for the first 512
   bytes of a STORED entry if it was the very first entry of the
   archive.
   Issue: COMPRESS-264. 
-o When writing PAX/POSIX headers for TAR entries with
+* When writing PAX/POSIX headers for TAR entries with
   backslashes or certain non-ASCII characters in their name
   TarArchiveOutputStream could fail.
   Issue: COMPRESS-265. 
-o ArchiveStreamFactory now throws a StreamingNotSupported - a
+* ArchiveStreamFactory now throws a StreamingNotSupported - a
   new subclass of ArchiveException - if it is asked to read from
   or write to a stream and Commons Compress doesn't support
   streaming for the format.  This currently only applies to the
   7z format.
   Issue: COMPRESS-267. 
 
+-----------------------------------------------------------------------------
+
 Release 1.7
 -----------
 
-New features:
-o Read-Only support for Snappy compression.
+New features
+------------
+* Read-Only support for Snappy compression.
   Issue: COMPRESS-147. Thanks to BELUGA BEHR.
-o Read-Only support for .Z compressed files.
+* Read-Only support for .Z compressed files.
   Issue: COMPRESS-243. Thanks to Damjan Jovanovic.
-o ZipFile and ZipArchiveInputStream now support reading entries
+* ZipFile and ZipArchiveInputStream now support reading entries
   compressed using the SHRINKING method. Thanks to Damjan Jovanovic.
-o GzipCompressorOutputStream now supports setting the compression
+* GzipCompressorOutputStream now supports setting the compression
   level and the header metadata (filename, comment, modification time,
   operating system and extra flags)
   Issue: COMPRESS-250. Thanks to Emmanuel Bourg.
-o ZipFile and ZipArchiveInputStream now support reading entries
+* ZipFile and ZipArchiveInputStream now support reading entries
   compressed using the IMPLODE method.
   Issue: COMPRESS-115. Thanks to Emmanuel Bourg.
-o ZipFile and the 7z file classes now implement Closeable and can be
+* ZipFile and the 7z file classes now implement Closeable and can be
   used in try-with-resources constructs.
 
-Fixed Bugs:
-o SevenZOutputFile#closeArchiveEntry throws an exception when using
+Fixed Bugs
+----------
+* SevenZOutputFile#closeArchiveEntry throws an exception when using
   LZMA2 compression on Java8.  Issue: COMPRESS-241.
-o 7z reading of big 64bit values could be wrong.
+* 7z reading of big 64bit values could be wrong.
   Issue: COMPRESS-244. Thanks to Nico Kruber.
-o TarArchiveInputStream could fail to read an archive completely.
+* TarArchiveInputStream could fail to read an archive completely.
   Issue: COMPRESS-245.
-o The time-setters in X5455_ExtendedTimestamp now set the
+* The time-setters in X5455_ExtendedTimestamp now set the
   corresponding flags explicitly - i.e. they set the bit if the valus
   is not-null and reset it otherwise.  This may cause
   incompatibilities if you use setFlags to unset a bit and later set
   the time to a non-null value - the flag will now be set.
   Issue: COMPRESS-242.
-o SevenZOutputFile would create invalid archives if more than six
+* SevenZOutputFile would create invalid archives if more than six
   empty files or directories were included.  Issue: COMPRESS-252.
 
+-----------------------------------------------------------------------------
+
 Release 1.6
 -----------
 
@@ -1574,176 +1660,187 @@
 
 Changes in this version include:
 
-New features:
-o Added support for 7z archives.  Most compression algorithms
+New features
+------------
+* Added support for 7z archives.  Most compression algorithms
   can be read and written, LZMA and encryption are only
   supported when reading.  Issue: COMPRESS-54. Thanks to Damjan Jovanovic. 
-o Added read-only support for ARJ archives that don't use
+* Added read-only support for ARJ archives that don't use
   compression.  Issue: COMPRESS-226. Thanks to Damjan Jovanovic. 
-o DumpArchiveInputStream now supports an encoding parameter that
+* DumpArchiveInputStream now supports an encoding parameter that
   can be used to specify the encoding of file names. 
-o The CPIO streams now support an encoding parameter that can be
+* The CPIO streams now support an encoding parameter that can be
   used to specify the encoding of file names. 
-o Read-only support for LZMA standalone compression has been added.
+* Read-only support for LZMA standalone compression has been added.
   Issue: COMPRESS-111.
 
-Fixed Bugs:
-o TarBuffer.tryToConsumeSecondEOFRecord could throw a
+Fixed Bugs
+----------
+* TarBuffer.tryToConsumeSecondEOFRecord could throw a
   NullPointerException  Issue: COMPRESS-223. Thanks to Jeremy Gustie. 
-o Parsing of zip64 extra fields has become more lenient in order
+* Parsing of zip64 extra fields has become more lenient in order
   to be able to read archives created by DotNetZip and maybe
   other archivers as well.  Issue: COMPRESS-228. 
-o TAR will now properly read the names of symbolic links with
+* TAR will now properly read the names of symbolic links with
   long names that use the GNU variant to specify the long file
   name.  Issue: COMPRESS-229. Thanks to Christoph Gysin. 
-o ZipFile#getInputStream could return null if the archive
+* ZipFile#getInputStream could return null if the archive
   contained duplicate entries.
   The class now also provides two new methods to obtain all
   entries of a given name rather than just the first one.
   Issue: COMPRESS-227. 
-o CpioArchiveInputStream failed to read archives created by
+* CpioArchiveInputStream failed to read archives created by
   Redline RPM.  Issue: COMPRESS-236. Thanks to Andrew Duffy. 
-o TarArchiveOutputStream now properly handles link names that
+* TarArchiveOutputStream now properly handles link names that
   are too long to fit into a traditional TAR header.  Issue:
   COMPRESS-237. Thanks to Emmanuel Bourg.
-o The auto-detecting create*InputStream methods of Archive and
+* The auto-detecting create*InputStream methods of Archive and
   CompressorStreamFactory could fail to detect the format of
   blocking input streams.  Issue: COMPRESS-239. 
 
-Changes:
-o Readabilty patch to TarArchiveInputStream.  Issue:
+Changes
+-------
+* Readabilty patch to TarArchiveInputStream.  Issue:
   COMPRESS-232. Thanks to BELUGA BEHR.
-o Performance improvements to TarArchiveInputStream, in
+* Performance improvements to TarArchiveInputStream, in
   particular to the skip method.  Issue: COMPRESS-234. Thanks to
   BELUGA BEHR. 
 
+-----------------------------------------------------------------------------
+
 Release 1.5
 -----------
 
-New features:
-
-o CompressorStreamFactory has an option to create decompressing
+New features
+------------
+* CompressorStreamFactory has an option to create decompressing
   streams that decompress the full input for formats that support
   multiple concatenated streams.
   Issue: COMPRESS-220.
 
-Fixed Bugs:
-
-o Typo in CompressorStreamFactory Javadoc
+Fixed Bugs
+----------
+* Typo in CompressorStreamFactory Javadoc
   Issue: COMPRESS-218.
   Thanks to Gili.
-o ArchiveStreamFactory's tar stream detection created false positives
+* ArchiveStreamFactory's tar stream detection created false positives
   for AIFF files.
   Issue: COMPRESS-191.
   Thanks to Jukka Zitting.
-o XZ for Java didn't provide an OSGi bundle.  Compress' dependency on
+* XZ for Java didn't provide an OSGi bundle.  Compress' dependency on
   it has now been marked optional so Compress itself can still be used
   in an OSGi context.
   Issue: COMPRESS-199.
   Thanks to Jukka Zitting.
-o When specifying the encoding explicitly TarArchiveOutputStream would
+* When specifying the encoding explicitly TarArchiveOutputStream would
   write unreadable names in GNU mode or even cause errors in POSIX
   mode for file names longer than 66 characters.
   Issue: COMPRESS-200.
   Thanks to Christian Schlichtherle.
-o Writing TAR PAX headers failed if the generated entry name ended
+* Writing TAR PAX headers failed if the generated entry name ended
   with a "/".
   Issue: COMPRESS-203.
-o ZipArchiveInputStream sometimes failed to provide input to the
+* ZipArchiveInputStream sometimes failed to provide input to the
   Inflater when it needed it, leading to reads returning 0.
   Issue: COMPRESS-189.
   Thanks to Daniel Lowe.
-o TarArchiveInputStream ignored the encoding for GNU long name
+* TarArchiveInputStream ignored the encoding for GNU long name
   entries.
   Issue: COMPRESS-212.
-o TarArchiveInputStream could leave the second EOF record inside the
+* TarArchiveInputStream could leave the second EOF record inside the
   stream it had just finished reading.
   Issue: COMPRESS-206.
   Thanks to Peter De Maeyer.
-o DumpArchiveInputStream no longer implicitly closes the original
+* DumpArchiveInputStream no longer implicitly closes the original
   input stream when it reaches the end of the archive.
-o ZipArchiveInputStream now consumes the remainder of the archive when
+* ZipArchiveInputStream now consumes the remainder of the archive when
   getNextZipEntry returns null.
-o Unit tests could fail if the source tree was checked out to a
+* Unit tests could fail if the source tree was checked out to a
   directory tree containign spaces.
   Issue: COMPRESS-205.
   Thanks to Daniel Lowe.
-o Fixed a potential ArrayIndexOutOfBoundsException when reading STORED
+* Fixed a potential ArrayIndexOutOfBoundsException when reading STORED
   entries from ZipArchiveInputStream.
   Issue: COMPRESS-219.
-o CompressorStreamFactory can now be used without XZ for Java being
+* CompressorStreamFactory can now be used without XZ for Java being
   available.
   Issue: COMPRESS-221.
 
-Changes:
-
-o Improved exception message if a zip archive cannot be read because
+Changes
+-------
+* Improved exception message if a zip archive cannot be read because
   of an unsupported compression method.
   Issue: COMPRESS-188.
   Thanks to Harald Kuhn.
-o ArchiveStreamFactory has a setting for file name encoding that sets
+* ArchiveStreamFactory has a setting for file name encoding that sets
   up encoding for ZIP and TAR streams.
   Issue: COMPRESS-192.
   Thanks to Jukka Zitting.
-o TarArchiveEntry now has a method to verify its checksum.
+* TarArchiveEntry now has a method to verify its checksum.
   Issue: COMPRESS-191.
   Thanks to Jukka Zitting.
-o Split/spanned ZIP archives are now properly detected by
+* Split/spanned ZIP archives are now properly detected by
   ArchiveStreamFactory but will cause an
   UnsupportedZipFeatureException when read.
-o ZipArchiveInputStream now reads archives that start with a "PK00"
+* ZipArchiveInputStream now reads archives that start with a "PK00"
   signature.  Archives with this signatures are created when the
   archiver was willing to split the archive but in the end only needed
   a single segment - so didn't split anything.
   Issue: COMPRESS-208.
-o TarArchiveEntry has a new constructor that allows setting linkFlag
+* TarArchiveEntry has a new constructor that allows setting linkFlag
   and preserveLeadingSlashes at the same time.
   Issue: COMPRESS-201.
-o ChangeSetPerformer has a new perform overload that uses a ZipFile
+* ChangeSetPerformer has a new perform overload that uses a ZipFile
   instance as input.
   Issue: COMPRESS-159.
-o Garbage collection pressure has been reduced by reusing temporary
+* Garbage collection pressure has been reduced by reusing temporary
   byte arrays in classes.
   Issue: COMPRESS-172.
   Thanks to Thomas Mair.
-o Can now handle zip extra field 0x5455 - Extended Timestamp.
+* Can now handle zip extra field 0x5455 - Extended Timestamp.
   Issue: COMPRESS-210.
   Thanks to Julius Davies.
-o handle zip extra field 0x7875 - Info Zip New Unix Extra Field.
+* handle zip extra field 0x7875 - Info Zip New Unix Extra Field.
   Issue: COMPRESS-211.
   Thanks to Julius Davies.
-o ZipShort, ZipLong, ZipEightByteInteger should implement Serializable
+* ZipShort, ZipLong, ZipEightByteInteger should implement Serializable
   Issue: COMPRESS-213.
   Thanks to Julius Davies.
-o better support for Unix symlinks in ZipFile entries.
+* better support for Unix symlinks in ZipFile entries.
   Issue: COMPRESS-214.
   Thanks to Julius Davies.
-o ZipFile's initialization has been improved for non-Zip64 archives.
+* ZipFile's initialization has been improved for non-Zip64 archives.
   Issue: COMPRESS-215.
   Thanks to Robin Power.
-o Updated XZ for Java dependency to 1.2 as this version provides
+* Updated XZ for Java dependency to 1.2 as this version provides
   proper OSGi manifest attributes.
 
+-----------------------------------------------------------------------------
+
 Release 1.4.1
 -------------
 
 This is a security bugfix release, see
 https://commons.apache.org/proper/commons-compress/security.html#Fixed_in_Apache_Commons_Compress_1.4.1
 
-Fixed Bugs:
-
-o Ported libbzip2's fallback sort algorithm to
+Fixed Bugs
+----------
+* Ported libbzip2's fallback sort algorithm to
   BZip2CompressorOutputStream to speed up compression in certain
   edge cases.
 
+-----------------------------------------------------------------------------
+
 Release 1.4
 -----------
 
-New features:
-o COMPRESS-156:  Support for the XZ format has been added. 
+New features
+------------
+* COMPRESS-156:  Support for the XZ format has been added. 
 
-Fixed Bugs:
-o COMPRESS-183:  The tar package now allows the encoding of file names to be
+Fixed Bugs
+----------
+* COMPRESS-183:  The tar package now allows the encoding of file names to be
                  specified and can optionally use PAX extension headers to
                  write non-ASCII file names.
                  The stream classes now write (or expect to read) archives that
@@ -1752,41 +1849,44 @@
                  eight bits of each character which effectively only worked for
                  ASCII and ISO-8859-1 file names.
                  This new default behavior is a breaking change. 
-o COMPRESS-184:  TarArchiveInputStream failed to parse PAX headers that
+* COMPRESS-184:  TarArchiveInputStream failed to parse PAX headers that
                  contained non-ASCII characters. 
-o COMPRESS-178:  TarArchiveInputStream throws IllegalArgumentException instead of IOException 
-o COMPRESS-179:  TarUtils.formatLongOctalOrBinaryBytes() assumes the field will be 12 bytes long 
-o COMPRESS-175:  GNU Tar sometimes uses binary encoding for UID and GID 
-o COMPRESS-171:  ArchiveStreamFactory.createArchiveInputStream would claim
+* COMPRESS-178:  TarArchiveInputStream throws IllegalArgumentException instead of IOException 
+* COMPRESS-179:  TarUtils.formatLongOctalOrBinaryBytes() assumes the field will be 12 bytes long 
+* COMPRESS-175:  GNU Tar sometimes uses binary encoding for UID and GID 
+* COMPRESS-171:  ArchiveStreamFactory.createArchiveInputStream would claim
                  short text files were TAR archives. 
-o COMPRESS-164:  ZipFile didn't work properly for archives using unicode extra
+* COMPRESS-164:  ZipFile didn't work properly for archives using unicode extra
                  fields rather than UTF-8 filenames and the EFS-Flag. 
-o COMPRESS-169:  For corrupt archives ZipFile would throw a RuntimeException in
+* COMPRESS-169:  For corrupt archives ZipFile would throw a RuntimeException in
                  some cases and an IOException in others.  It will now
                  consistently throw an IOException. 
 
-Changes:
-o COMPRESS-182:  The tar package can now write archives that use star/GNU/BSD
+Changes
+-------
+* COMPRESS-182:  The tar package can now write archives that use star/GNU/BSD
                  extensions or use the POSIX/PAX variant to store numeric
                  values that don't fit into the traditional header fields. 
-o COMPRESS-181:  Added a workaround for a Bug some tar implementations that add
+* COMPRESS-181:  Added a workaround for a Bug some tar implementations that add
                  a NUL byte as first byte in numeric header fields. 
-o COMPRESS-176:  Added a workaround for a Bug in WinZIP which uses backslashes
+* COMPRESS-176:  Added a workaround for a Bug in WinZIP which uses backslashes
                  as path separators in Unicode Extra Fields. 
-o COMPRESS-131:  ArrayOutOfBounds while decompressing bz2. Added test case - code already seems to have been fixed. 
-o COMPRESS-146:  BZip2CompressorInputStream now optionally supports reading of
+* COMPRESS-131:  ArrayOutOfBounds while decompressing bz2. Added test case - code already seems to have been fixed. 
+* COMPRESS-146:  BZip2CompressorInputStream now optionally supports reading of
                  concatenated .bz2 files. 
-o COMPRESS-154:  GZipCompressorInputStream now optionally supports reading of
+* COMPRESS-154:  GZipCompressorInputStream now optionally supports reading of
                  concatenated .gz files. 
-o COMPRESS-16:  The tar package can now read archives that use star/GNU/BSD
+* COMPRESS-16:  The tar package can now read archives that use star/GNU/BSD
                  extensions for files that are longer than 8 GByte as well as
                  archives that use the POSIX/PAX variant. 
-o COMPRESS-165:  The tar package can now write archives that use star/GNU/BSD
+* COMPRESS-165:  The tar package can now write archives that use star/GNU/BSD
                  extensions for files that are longer than 8 GByte as well as
                  archives that use the POSIX/PAX variant. 
-o COMPRESS-166:  The tar package can now use the POSIX/PAX variant for writing
+* COMPRESS-166:  The tar package can now use the POSIX/PAX variant for writing
                  entries with names longer than 100 characters. 
 
+-----------------------------------------------------------------------------
+
 Release 1.3
 -----------
 
@@ -1794,149 +1894,162 @@
 
 Changes in this version include:
 
-New features:
-o Support for the Pack200 format has been added.  Issue: COMPRESS-142. 
-o Read-only support for the format used by the Unix dump(8) tool
+New features
+------------
+* Support for the Pack200 format has been added.  Issue: COMPRESS-142. 
+* Read-only support for the format used by the Unix dump(8) tool
   has been added.  Issue: COMPRESS-132. 
 
-Fixed Bugs:
-o BZip2CompressorInputStream's getBytesRead method always
+Fixed Bugs
+----------
+* BZip2CompressorInputStream's getBytesRead method always
   returned 0. 
-o ZipArchiveInputStream and ZipArchiveOutputStream could leak
+* ZipArchiveInputStream and ZipArchiveOutputStream could leak
   resources on some JDKs.  Issue: COMPRESS-152. 
-o TarArchiveOutputStream's getBytesWritten method didn't count
+* TarArchiveOutputStream's getBytesWritten method didn't count
   correctly.  Issue: COMPRESS-160. 
 
-Changes:
-o The ZIP package now supports Zip64 extensions.  Issue: COMPRESS-36. 
-o The AR package now supports the BSD dialect of storing file
+Changes
+-------
+* The ZIP package now supports Zip64 extensions.  Issue: COMPRESS-36. 
+* The AR package now supports the BSD dialect of storing file
   names longer than 16 chars (both reading and writing).
   Issue: COMPRESS-144. 
 
+-----------------------------------------------------------------------------
+
 Release 1.2
 -----------
 
-New features:
-o COMPRESS-123:  ZipArchiveEntry has a new method getRawName that provides the
+New features
+------------
+* COMPRESS-123:  ZipArchiveEntry has a new method getRawName that provides the
         original bytes that made up the name.  This may allow user
         code to detect the encoding. 
-o COMPRESS-122:  TarArchiveEntry provides access to the flags that determine
+* COMPRESS-122:  TarArchiveEntry provides access to the flags that determine
         whether it is an archived symbolic link, pipe or other
         "uncommon" file system object. 
 
 Fixed Bugs:
-o COMPRESS-129:  ZipArchiveInputStream could fail with a "Truncated ZIP" error
+* COMPRESS-129:  ZipArchiveInputStream could fail with a "Truncated ZIP" error
         message for entries between 2 GByte and 4 GByte in size. 
-o COMPRESS-145:  TarArchiveInputStream now detects sparse entries using the
+* COMPRESS-145:  TarArchiveInputStream now detects sparse entries using the
         oldgnu format and properly reports it cannot extract their
         contents. 
-o COMPRESS-130:  The Javadoc for ZipArchiveInputStream#skip now matches the
+* COMPRESS-130:  The Javadoc for ZipArchiveInputStream#skip now matches the
         implementation, the code has been made more defensive. 
-o COMPRESS-140:  ArArchiveInputStream fails if entries contain only blanks for
+* COMPRESS-140:  ArArchiveInputStream fails if entries contain only blanks for
         userId or groupId. Thanks to Trejkaz. 
-o COMPRESS-139:  ZipFile may leak resources on some JDKs. 
-o COMPRESS-125:  BZip2CompressorInputStream throws IOException if
+* COMPRESS-139:  ZipFile may leak resources on some JDKs. 
+* COMPRESS-125:  BZip2CompressorInputStream throws IOException if
         underlying stream returns available() == 0.
         Removed the check. 
-o COMPRESS-127:  Calling close() on inputStream returned by
+* COMPRESS-127:  Calling close() on inputStream returned by
         CompressorStreamFactory.createCompressorInputStream()
         does not close the underlying input stream. 
-o COMPRESS-119:  TarArchiveOutputStream#finish now writes all buffered
+* COMPRESS-119:  TarArchiveOutputStream#finish now writes all buffered
         data to the stream 
 
-Changes:
-o ZipFile now implements finalize which closes the underlying
+Changes
+-------
+* ZipFile now implements finalize which closes the underlying
         file. 
-o COMPRESS-117:  Certain tar files not recognised by
+* COMPRESS-117:  Certain tar files not recognised by
         ArchiveStreamFactory. 
 
+-----------------------------------------------------------------------------
+
 Release 1.1
 -----------
 
-New features:
-o COMPRESS-108:  Command-line interface to list archive contents.
+New features
+------------
+* COMPRESS-108:  Command-line interface to list archive contents.
        Usage: java -jar commons-compress-n.m.jar archive-name [zip|tar|etc] 
-o COMPRESS-109:  Tar implementation does not support Pax headers
+* COMPRESS-109:  Tar implementation does not support Pax headers
        Added support for reading pax headers.
        Note: does not support global pax headers 
-o COMPRESS-103:  ZipArchiveInputStream can optionally extract data that used
+* COMPRESS-103:  ZipArchiveInputStream can optionally extract data that used
         the STORED compression method and a data descriptor.
         Doing so in a stream is not safe in general, so you have to
         explicitly enable the feature.  By default the stream will
         throw an exception if it encounters such an entry. 
-o COMPRESS-98:  The ZIP classes will throw specialized exceptions if any
+* COMPRESS-98:  The ZIP classes will throw specialized exceptions if any
         attempt is made to read or write data that uses zip features
         not supported (yet). 
-o COMPRESS-99:  ZipFile#getEntries returns entries in a predictable order -
+* COMPRESS-99:  ZipFile#getEntries returns entries in a predictable order -
         the order they appear inside the central directory.
         A new method getEntriesInPhysicalOrder returns entries in
         order of the entry data, i.e. the order ZipArchiveInputStream
         would see. 
-o The Archive*Stream and ZipFile classes now have
+* The Archive*Stream and ZipFile classes now have
         can(Read|Write)EntryData methods that can be used to check
         whether a given entry's data can be read/written.
         The method currently returns false for ZIP archives if an
         entry uses an unsupported compression method or encryption. 
-o COMPRESS-89:  The ZIP classes now detect encrypted entries. 
-o COMPRESS-97:  Added autodetection of compression format to
+* COMPRESS-89:  The ZIP classes now detect encrypted entries. 
+* COMPRESS-97:  Added autodetection of compression format to
         CompressorStreamFactory. 
-o COMPRESS-95:  Improve ExceptionMessages in ArchiveStreamFactory Thanks to Joerg Bellmann. 
-o A new constructor of TarArchiveEntry can create entries with
+* COMPRESS-95:  Improve ExceptionMessages in ArchiveStreamFactory Thanks to Joerg Bellmann. 
+* A new constructor of TarArchiveEntry can create entries with
         names that start with slashes - the default is to strip
         leading slashes in order to create relative path names. 
-o ArchiveEntry now has a getLastModifiedDate method. 
-o COMPRESS-78:  Add a BZip2Utils class modelled after GZipUtils Thanks to Jukka Zitting. 
+* ArchiveEntry now has a getLastModifiedDate method. 
+* COMPRESS-78:  Add a BZip2Utils class modelled after GZipUtils Thanks to Jukka Zitting. 
 
-Fixed Bugs:
-o COMPRESS-72:  Move acknowledgements from NOTICE to README 
-o COMPRESS-113:  TarArchiveEntry.parseTarHeader() includes the trailing space/NUL when parsing the octal size 
-o COMPRESS-118:  TarUtils.parseName does not properly handle characters outside the range 0-127 
-o COMPRESS-107:  ArchiveStreamFactory does not recognise tar files created by Ant 
-o COMPRESS-110:  Support "ustar" prefix field, which is used when file paths are longer
+Fixed Bugs
+----------
+* COMPRESS-72:  Move acknowledgements from NOTICE to README 
+* COMPRESS-113:  TarArchiveEntry.parseTarHeader() includes the trailing space/NUL when parsing the octal size 
+* COMPRESS-118:  TarUtils.parseName does not properly handle characters outside the range 0-127 
+* COMPRESS-107:  ArchiveStreamFactory does not recognise tar files created by Ant 
+* COMPRESS-110:  Support "ustar" prefix field, which is used when file paths are longer
        than 100 characters. 
-o COMPRESS-100:  ZipArchiveInputStream will throw an exception if it detects an
+* COMPRESS-100:  ZipArchiveInputStream will throw an exception if it detects an
         entry that uses a data descriptor for a STORED entry since it
         cannot reliably find the end of data for this "compression"
         method. 
-o COMPRESS-101:  ZipArchiveInputStream should now properly read archives that
+* COMPRESS-101:  ZipArchiveInputStream should now properly read archives that
         use data descriptors but without the "unofficial" signature. 
-o COMPRESS-74:  ZipArchiveInputStream failed to update the number of bytes
+* COMPRESS-74:  ZipArchiveInputStream failed to update the number of bytes
         read properly. 
-o ArchiveInputStream has a new method getBytesRead that should
+* ArchiveInputStream has a new method getBytesRead that should
         be preferred over getCount since the later may truncate the
         number of bytes read for big archives. 
-o COMPRESS-85:  The cpio archives created by CpioArchiveOutputStream couldn't
+* COMPRESS-85:  The cpio archives created by CpioArchiveOutputStream couldn't
         be read by many existing native implementations because the
         archives contained multiple entries with the same inode/device
         combinations and weren't padded to a blocksize of 512 bytes. 
-o COMPRESS-73:  ZipArchiveEntry, ZipFile and ZipArchiveInputStream are now
+* COMPRESS-73:  ZipArchiveEntry, ZipFile and ZipArchiveInputStream are now
         more lenient when parsing extra fields. 
-o COMPRESS-82:  cpio is terribly slow.
+* COMPRESS-82:  cpio is terribly slow.
         Documented that buffered streams are needed for performance 
-o Improved exception message if the extra field data in ZIP
+* Improved exception message if the extra field data in ZIP
         archives cannot be parsed. 
-o COMPRESS-17:  Tar format unspecified - current support documented. 
-o COMPRESS-94:  ZipArchiveEntry's equals method was broken for entries created
+* COMPRESS-17:  Tar format unspecified - current support documented. 
+* COMPRESS-94:  ZipArchiveEntry's equals method was broken for entries created
         with the String-arg constructor.  This lead to broken ZIP
         archives if two different entries had the same hash code. Thanks to Anon Devs. 
-o COMPRESS-87:  ZipArchiveInputStream could repeatedly return 0 on read() when
+* COMPRESS-87:  ZipArchiveInputStream could repeatedly return 0 on read() when
         the archive was truncated. Thanks to Antoni Mylka. 
-o COMPRESS-86:  Tar archive entries holding the file name for names longer
+* COMPRESS-86:  Tar archive entries holding the file name for names longer
         than 100 characters in GNU longfile mode didn't properly
         specify they'd be using the "oldgnu" extension. 
-o COMPRESS-83:  Delegate all read and write methods in GZip stream in order to
+* COMPRESS-83:  Delegate all read and write methods in GZip stream in order to
         speed up operations. 
-o The ar and cpio streams now properly read and write last
+* The ar and cpio streams now properly read and write last
         modified times. 
-o COMPRESS-81:  TarOutputStream can leave garbage at the end of the archive 
+* COMPRESS-81:  TarOutputStream can leave garbage at the end of the archive 
 
-Changes:
-o COMPRESS-112:  ArArchiveInputStream does not handle GNU extended filename records (//) 
-o COMPRESS-105:  Document that the name of an ZipArchiveEntry determines whether
+Changes
+-------
+* COMPRESS-112:  ArArchiveInputStream does not handle GNU extended filename records (//) 
+* COMPRESS-105:  Document that the name of an ZipArchiveEntry determines whether
        an entry is considered a directory or not.
        If you don't use the constructor with the File argument the entry's
         name must end in a "/" in order for the entry to be known as a directory. 
-o COMPRESS-79:  Move DOS/Java time conversions into Zip utility class. 
-o COMPRESS-75:  ZipArchiveInputStream does not show location in file
+* COMPRESS-79:  Move DOS/Java time conversions into Zip utility class. 
+* COMPRESS-75:  ZipArchiveInputStream does not show location in file
        where a problem occurred. 
 
+-----------------------------------------------------------------------------
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 14f7486..dcf2f12 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -89,9 +89,6 @@
       <action type="add" dev="ggregory" due-to="Gary Gregory">Add and use ArchiveInputStream.getCharset().</action>
       <action type="add" dev="ggregory" due-to="Gary Gregory">Add and use ArchiveEntry.resolveIn(Path).</action>
       <action type="add" dev="ggregory" due-to="Gary Gregory">Add Maven property project.build.outputTimestamp for build reproducibility.</action>
-      <action type="add" dev="ggregory" due-to="Gary Gregory">Add dependency on commons-codec:commons-codec:1.16.1.</action>
-      <action type="add" dev="ggregory" due-to="Gary Gregory">Add dependency on org.apache.commons:commons-lang3:3.14.0.</action>
-      <action type="add" dev="ggregory" due-to="Gary Gregory">Add dependency on commons-io:commons-io:2.15.1.</action>
       <!-- UPDATE -->
       <action type="update" dev="ggregory" due-to="Gary Gregory">Bump commons-lang3 from 3.13.0 to 3.14.0.</action>
       <action type="update" dev="ggregory" due-to="Dependabot">Bump com.github.marschall:memoryfilesystem from 2.6.1 to 2.8.0 #444, #458.</action>
@@ -100,6 +97,9 @@
       <action type="update" dev="ggregory" due-to="Dependabot">Bump com.github.luben:zstd-jni from 1.5.5-10 to 1.5.5-11 #448.</action>
       <action type="update" dev="ggregory" due-to="Dependabot">Bump org.slf4j:slf4j-api from 2.0.9 to 2.0.12.</action>
       <action type="update" dev="ggregory" due-to="Dependabot">Bump commons-codec:commons-codec from 1.16.0 to 1.16.1.</action>
+      <action type="update" dev="ggregory" due-to="Gary Gregory">Add dependency on commons-codec:commons-codec:1.16.1.</action>
+      <action type="update" dev="ggregory" due-to="Gary Gregory">Add dependency on org.apache.commons:commons-lang3:3.14.0.</action>
+      <action type="update" dev="ggregory" due-to="Gary Gregory">Add dependency on commons-io:commons-io:2.15.1.</action>
     </release> 
     <release version="1.25.0" date="2023-11-12" description="Minor feature and maintenance release.">
       <!-- ADD -->
diff --git a/src/changes/release-notes.vm b/src/changes/release-notes.vm
index d94f9ab..eef36aa 100644
--- a/src/changes/release-notes.vm
+++ b/src/changes/release-notes.vm
@@ -100,7 +100,6 @@
 #if ($release.getActions('update').size() !=0)
 Changes
 -------
-
 #foreach($actionItem in $release.getActions('update'))
 ## Use replaceAll to fix up LF-only line ends on Windows.
 #set($action=$actionItem.getAction().replaceAll("\n","
@@ -125,7 +124,6 @@
 #if ($release.getActions('remove').size() !=0)
 Removed
 -------
-
 #foreach($actionItem in $release.getActions('remove'))
 ## Use replaceAll to fix up LF-only line ends on Windows.
 #set($action=$actionItem.getAction().replaceAll("\n","
@@ -152,7 +150,6 @@
 
 Resources
 ---------
-
 Historical list of changes: ${project.url}changes-report.html
 
 For complete information on ${project.name}, including instructions on how to submit bug reports,
@@ -165,4 +162,4 @@
 Have fun!
 -Apache Commons Team
 
-==============================================================================
+-----------------------------------------------------------------------------