Commit 9e35567 for zlib

commit 9e35567064baded660f61732b247ef5abc809014
Author: Mark Adler <git@madler.net>
Date:   Tue Feb 17 02:31:51 2026 -0800

    Version 1.3.2

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 7161516..e103c40 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -3,7 +3,7 @@ cmake_minimum_required(VERSION 3.12...3.31)
 project(
     zlib
     LANGUAGES C
-    VERSION 1.3.1.2
+    VERSION 1.3.2
     HOMEPAGE_URL "https://zlib.net/"
     DESCRIPTION "a general-purpose lossless data-compression library")

diff --git a/ChangeLog b/ChangeLog
index 0571d81..312753e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,31 @@

                 ChangeLog file for zlib

+Changes in 1.3.2 (17 Feb 2026)
+- Continued rewrite of CMake build [Vollstrecker]
+- Various portability improvements
+- Various github workflow additions and improvements
+- Check for negative lengths in crc32_combine functions
+- Copy only the initialized window contents in inflateCopy
+- Prevent the use of insecure functions without an explicit request
+- Add compressBound_z and deflateBound_z functions for large values
+- Use atomics to build inflate fixed tables once
+- Add definition of ZLIB_INSECURE to build tests with c89 and c94
+- Add --undefined option to ./configure for UBSan checker
+- Copy only the initialized deflate state in deflateCopy
+- Zero inflate state on allocation
+- Remove untgz from contrib
+- Add _z versions of the compress and uncompress functions
+- Vectorize the CRC-32 calculation on the s390x
+- Set bit 11 of the zip header flags in minizip if UTF-8
+- Update OS/400 support
+- Add a test to configure to check for a working compiler
+- Check for invalid NULL pointer inputs to zlib operations
+- Add --mandir to ./configure to specify manual directory
+- Add LICENSE.Info-Zip to contrib/minizip
+- Remove vstudio projects in lieu of cmake-generated projects
+- Replace strcpy() with memcpy() in contrib/minizip
+
 Changes in 1.3.1.2 (8 Dec 2025)
 - Improve portability to RISC OS
 - Permit compiling contrib/minizip/unzip.c with decryption
diff --git a/LICENSE b/LICENSE
index 61229c3..b7a69d0 100644
--- a/LICENSE
+++ b/LICENSE
@@ -1,6 +1,6 @@
 Copyright notice:

- (C) 1995-2025 Jean-loup Gailly and Mark Adler
+ (C) 1995-2026 Jean-loup Gailly and Mark Adler

   This software is provided 'as-is', without any express or implied
   warranty.  In no event will the authors be held liable for any damages
diff --git a/Makefile.in b/Makefile.in
index d1f0b8e..bee83ed 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -1,5 +1,5 @@
 # Makefile for zlib
-# Copyright (C) 1995-2024 Jean-loup Gailly, Mark Adler
+# Copyright (C) 1995-2026 Jean-loup Gailly, Mark Adler
 # For conditions of distribution and use, see copyright notice in zlib.h

 # To compile and test, type:
@@ -31,7 +31,7 @@ VGFMAFLAG=

 STATICLIB=libz.a
 SHAREDLIB=libz.so
-SHAREDLIBV=libz.so.1.3.1.2
+SHAREDLIBV=libz.so.1.3.2
 SHAREDLIBM=libz.so.1
 LIBS=$(STATICLIB) $(SHAREDLIBV)

diff --git a/README b/README
index 4723b8e..2b1e6f3 100644
--- a/README
+++ b/README
@@ -1,6 +1,6 @@
 ZLIB DATA COMPRESSION LIBRARY

-zlib 1.3.1.2 is a general purpose data compression library.  All the code is
+zlib 1.3.2 is a general purpose data compression library.  All the code is
 thread safe (though see the FAQ for caveats).  The data format used by the zlib
 library is described by RFCs (Request for Comments) 1950 to 1952 at
 https://datatracker.ietf.org/doc/html/rfc1950 (zlib format), rfc1951 (deflate
@@ -31,7 +31,7 @@ Mark Nelson <markn@ieee.org> wrote an article about zlib for the Jan.  1997
 issue of Dr.  Dobb's Journal; a copy of the article is available at
 https://zlib.net/nelson/ .

-The changes made in version 1.3.1.2 are documented in the file ChangeLog.
+The changes made in version 1.3.2 are documented in the file ChangeLog.

 Unsupported third party contributions are provided in directory contrib/ .

@@ -81,7 +81,7 @@ Acknowledgments:

 Copyright notice:

- (C) 1995-2025 Jean-loup Gailly and Mark Adler
+ (C) 1995-2026 Jean-loup Gailly and Mark Adler

   This software is provided 'as-is', without any express or implied
   warranty.  In no event will the authors be held liable for any damages
diff --git a/compress.c b/compress.c
index 410d6e5..bd74b94 100644
--- a/compress.c
+++ b/compress.c
@@ -1,5 +1,5 @@
 /* compress.c -- compress a memory buffer
- * Copyright (C) 1995-2005, 2014, 2016 Jean-loup Gailly, Mark Adler
+ * Copyright (C) 1995-2026 Jean-loup Gailly, Mark Adler
  * For conditions of distribution and use, see copyright notice in zlib.h
  */

diff --git a/contrib/delphi/ZLib.pas b/contrib/delphi/ZLib.pas
index b167b69..cda3b09 100644
--- a/contrib/delphi/ZLib.pas
+++ b/contrib/delphi/ZLib.pas
@@ -152,7 +152,7 @@ procedure DecompressToUserBuf(const InBuf: Pointer; InBytes: Integer;
   const OutBuf: Pointer; BufSize: Integer);

 const
-  zlib_version = '1.3.1.2';
+  zlib_version = '1.3.2';

 type
   EZlibError = class(Exception);
diff --git a/contrib/dotzlib/DotZLib/UnitTests.cs b/contrib/dotzlib/DotZLib/UnitTests.cs
index 6b532e2..2714a4b 100644
--- a/contrib/dotzlib/DotZLib/UnitTests.cs
+++ b/contrib/dotzlib/DotZLib/UnitTests.cs
@@ -156,7 +156,7 @@ namespace DotZLibTests
         public void Info_Version()
         {
             Info info = new Info();
-            Assert.AreEqual("1.3.1.2", Info.Version);
+            Assert.AreEqual("1.3.2", Info.Version);
             Assert.AreEqual(32, info.SizeOfUInt);
             Assert.AreEqual(32, info.SizeOfULong);
             Assert.AreEqual(32, info.SizeOfPointer);
diff --git a/contrib/infback9/inftree9.c b/contrib/infback9/inftree9.c
index 0f06e0f..cb96cf8 100644
--- a/contrib/infback9/inftree9.c
+++ b/contrib/infback9/inftree9.c
@@ -1,5 +1,5 @@
 /* inftree9.c -- generate Huffman trees for efficient decoding
- * Copyright (C) 1995-2025 Mark Adler
+ * Copyright (C) 1995-2026 Mark Adler
  * For conditions of distribution and use, see copyright notice in zlib.h
  */

@@ -9,7 +9,7 @@
 #define MAXBITS 15

 const char inflate9_copyright[] =
-   " inflate9 1.3.1.2 Copyright 1995-2025 Mark Adler ";
+   " inflate9 1.3.2 Copyright 1995-2026 Mark Adler ";
 /*
   If you use the zlib library in a product, an acknowledgment is welcome
   in the documentation of your product. If for some reason you cannot
@@ -59,7 +59,7 @@ int inflate_table9(codetype type, unsigned short FAR *lens, unsigned codes,
     static const unsigned short lext[31] = { /* Length codes 257..285 extra */
         128, 128, 128, 128, 128, 128, 128, 128, 129, 129, 129, 129,
         130, 130, 130, 130, 131, 131, 131, 131, 132, 132, 132, 132,
-        133, 133, 133, 133, 144, 64, 204};
+        133, 133, 133, 133, 144, 199, 75};
     static const unsigned short dbase[32] = { /* Distance codes 0..31 base */
         1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49,
         65, 97, 129, 193, 257, 385, 513, 769, 1025, 1537, 2049, 3073,
diff --git a/contrib/minizip/MiniZip64_info.txt b/contrib/minizip/MiniZip64_info.txt
index 86487d1..7ca3d05 100644
--- a/contrib/minizip/MiniZip64_info.txt
+++ b/contrib/minizip/MiniZip64_info.txt
@@ -1,4 +1,4 @@
-MiniZip - Copyright (c) 1998-2010 - by Gilles Vollant - version 1.1 64 bits from Mathias Svensson
+MiniZip - Copyright (c) 1998-2026 - by Gilles Vollant - version 1.1 64 bits from Mathias Svensson

 Introduction
 ---------------------
diff --git a/contrib/minizip/configure.ac b/contrib/minizip/configure.ac
index 339d6dc..b739fa0 100644
--- a/contrib/minizip/configure.ac
+++ b/contrib/minizip/configure.ac
@@ -1,7 +1,7 @@
 #                                               -*- Autoconf -*-
 # Process this file with autoconf to produce a configure script.

-AC_INIT([minizip], [1.3.1.2], [bugzilla.redhat.com])
+AC_INIT([minizip], [1.3.2], [bugzilla.redhat.com])
 AC_CONFIG_SRCDIR([minizip.c])
 AM_INIT_AUTOMAKE([foreign])
 LT_INIT
diff --git a/contrib/minizip/crypt.h b/contrib/minizip/crypt.h
index d1827c3..dd54893 100644
--- a/contrib/minizip/crypt.h
+++ b/contrib/minizip/crypt.h
@@ -1,9 +1,6 @@
 /* crypt.h -- base code for crypt/uncrypt ZIPfile

-
-   Version 1.01e, February 12th, 2005
-
-   Copyright (C) 1998-2005 Gilles Vollant
+   Copyright (C) 1998-2026 Gilles Vollant

    This code is a modified version of crypting code in Infozip distribution

diff --git a/contrib/minizip/ioapi.c b/contrib/minizip/ioapi.c
index 0498988..3ee9751 100644
--- a/contrib/minizip/ioapi.c
+++ b/contrib/minizip/ioapi.c
@@ -1,7 +1,7 @@
 /* ioapi.h -- IO base function header for compress/uncompress .zip
    part of the MiniZip project - ( https://www.winimage.com/zLibDll/minizip.html )

-         Copyright (C) 1998-2010 Gilles Vollant (minizip) ( https://www.winimage.com/zLibDll/minizip.html )
+         Copyright (C) 1998-2026 Gilles Vollant (minizip) ( https://www.winimage.com/zLibDll/minizip.html )

          Modifications for Zip64 support
          Copyright (C) 2009-2010 Mathias Svensson ( https://result42.com )
diff --git a/contrib/minizip/ioapi.h b/contrib/minizip/ioapi.h
index 569857f..a521123 100644
--- a/contrib/minizip/ioapi.h
+++ b/contrib/minizip/ioapi.h
@@ -1,7 +1,7 @@
 /* ioapi.h -- IO base function header for compress/uncompress .zip
    part of the MiniZip project - ( https://www.winimage.com/zLibDll/minizip.html )

-         Copyright (C) 1998-2010 Gilles Vollant (minizip) ( https://www.winimage.com/zLibDll/minizip.html )
+         Copyright (C) 1998-2026 Gilles Vollant (minizip) ( https://www.winimage.com/zLibDll/minizip.html )

          Modifications for Zip64 support
          Copyright (C) 2009-2010 Mathias Svensson ( https://result42.com )
diff --git a/contrib/minizip/iowin32.c b/contrib/minizip/iowin32.c
index abd5153..810ab2c 100644
--- a/contrib/minizip/iowin32.c
+++ b/contrib/minizip/iowin32.c
@@ -1,8 +1,7 @@
 /* iowin32.c -- IO base function header for compress/uncompress .zip
-     Version 1.1, February 14h, 2010
      part of the MiniZip project - ( https://www.winimage.com/zLibDll/minizip.html )

-         Copyright (C) 1998-2010 Gilles Vollant (minizip) ( https://www.winimage.com/zLibDll/minizip.html )
+         Copyright (C) 1998-2026 Gilles Vollant (minizip) ( https://www.winimage.com/zLibDll/minizip.html )

          Modifications for Zip64 support
          Copyright (C) 2009-2010 Mathias Svensson ( https://result42.com )
diff --git a/contrib/minizip/iowin32.h b/contrib/minizip/iowin32.h
index 345ac93..65be627 100644
--- a/contrib/minizip/iowin32.h
+++ b/contrib/minizip/iowin32.h
@@ -1,8 +1,7 @@
 /* iowin32.h -- IO base function header for compress/uncompress .zip
-     Version 1.1, February 14h, 2010
      part of the MiniZip project - ( https://www.winimage.com/zLibDll/minizip.html )

-         Copyright (C) 1998-2010 Gilles Vollant (minizip) ( https://www.winimage.com/zLibDll/minizip.html )
+         Copyright (C) 1998-2026 Gilles Vollant (minizip) ( https://www.winimage.com/zLibDll/minizip.html )

          Modifications for Zip64 support
          Copyright (C) 2009-2010 Mathias Svensson ( https://result42.com )
diff --git a/contrib/minizip/miniunz.c b/contrib/minizip/miniunz.c
index 8aa788f..cd577ea 100644
--- a/contrib/minizip/miniunz.c
+++ b/contrib/minizip/miniunz.c
@@ -1,9 +1,8 @@
 /*
    miniunz.c
-   Version 1.1, February 14h, 2010
    sample part of the MiniZip project - ( https://www.winimage.com/zLibDll/minizip.html )

-         Copyright (C) 1998-2010 Gilles Vollant (minizip) ( https://www.winimage.com/zLibDll/minizip.html )
+         Copyright (C) 1998-2026 Gilles Vollant (minizip) ( https://www.winimage.com/zLibDll/minizip.html )

          Modifications of Unzip for Zip64
          Copyright (C) 2007-2008 Even Rouault
diff --git a/contrib/minizip/minizip.c b/contrib/minizip/minizip.c
index 46a6d79..f68bea1 100644
--- a/contrib/minizip/minizip.c
+++ b/contrib/minizip/minizip.c
@@ -1,9 +1,8 @@
 /*
    minizip.c
-   Version 1.1, February 14h, 2010
    sample part of the MiniZip project - ( https://www.winimage.com/zLibDll/minizip.html )

-         Copyright (C) 1998-2010 Gilles Vollant (minizip) ( https://www.winimage.com/zLibDll/minizip.html )
+         Copyright (C) 1998-2026 Gilles Vollant (minizip) ( https://www.winimage.com/zLibDll/minizip.html )

          Modifications of Unzip for Zip64
          Copyright (C) 2007-2008 Even Rouault
diff --git a/contrib/minizip/skipset.h b/contrib/minizip/skipset.h
index 9bef185..ec4d4ab 100644
--- a/contrib/minizip/skipset.h
+++ b/contrib/minizip/skipset.h
@@ -1,5 +1,5 @@
 /* skipset.h -- set operations using a skiplist
-// Copyright (C) 2024 Mark Adler
+// Copyright (C) 2024-2026 Mark Adler
 // See MiniZip_info.txt for the license.

 // This implements a skiplist set, i.e. just keys, no data, with ~O(log n) time
diff --git a/contrib/minizip/unzip.c b/contrib/minizip/unzip.c
index 44c51bd..d7ff21c 100644
--- a/contrib/minizip/unzip.c
+++ b/contrib/minizip/unzip.c
@@ -1,8 +1,7 @@
 /* unzip.c -- IO for uncompress .zip files using zlib
-   Version 1.1, February 14h, 2010
    part of the MiniZip project - ( https://www.winimage.com/zLibDll/minizip.html )

-         Copyright (C) 1998-2010 Gilles Vollant (minizip) ( https://www.winimage.com/zLibDll/minizip.html )
+         Copyright (C) 1998-2026 Gilles Vollant (minizip) ( https://www.winimage.com/zLibDll/minizip.html )

          Modifications of Unzip for Zip64
          Copyright (C) 2007-2008 Even Rouault
diff --git a/contrib/minizip/unzip.h b/contrib/minizip/unzip.h
index a3f1894..9c98b60 100644
--- a/contrib/minizip/unzip.h
+++ b/contrib/minizip/unzip.h
@@ -1,8 +1,7 @@
 /* unzip.h -- IO for uncompress .zip files using zlib
-   Version 1.1, February 14h, 2010
    part of the MiniZip project - ( https://www.winimage.com/zLibDll/minizip.html )

-         Copyright (C) 1998-2010 Gilles Vollant (minizip) ( https://www.winimage.com/zLibDll/minizip.html )
+         Copyright (C) 1998-2026 Gilles Vollant (minizip) ( https://www.winimage.com/zLibDll/minizip.html )

          Modifications of Unzip for Zip64
          Copyright (C) 2007-2008 Even Rouault
diff --git a/contrib/minizip/zip.c b/contrib/minizip/zip.c
index 0ec6fe1..31005c5 100644
--- a/contrib/minizip/zip.c
+++ b/contrib/minizip/zip.c
@@ -1,8 +1,7 @@
 /* zip.c -- IO on .zip files using zlib
-   Version 1.1, February 14h, 2010
    part of the MiniZip project - ( https://www.winimage.com/zLibDll/minizip.html )

-         Copyright (C) 1998-2010 Gilles Vollant (minizip) ( https://www.winimage.com/zLibDll/minizip.html )
+         Copyright (C) 1998-2026 Gilles Vollant (minizip) ( https://www.winimage.com/zLibDll/minizip.html )

          Modifications for Zip64 support
          Copyright (C) 2009-2010 Mathias Svensson ( https://result42.com )
diff --git a/contrib/minizip/zip.h b/contrib/minizip/zip.h
index 522c6c7..9962440 100644
--- a/contrib/minizip/zip.h
+++ b/contrib/minizip/zip.h
@@ -1,8 +1,7 @@
 /* zip.h -- IO on .zip files using zlib
-   Version 1.1, February 14h, 2010
    part of the MiniZip project - ( https://www.winimage.com/zLibDll/minizip.html )

-         Copyright (C) 1998-2010 Gilles Vollant (minizip) ( https://www.winimage.com/zLibDll/minizip.html )
+         Copyright (C) 1998-2026 Gilles Vollant (minizip) ( https://www.winimage.com/zLibDll/minizip.html )

          Modifications for Zip64 support
          Copyright (C) 2009-2010 Mathias Svensson ( https://result42.com )
diff --git a/contrib/nuget/nuget.csproj b/contrib/nuget/nuget.csproj
index 0639134..ead9a20 100644
--- a/contrib/nuget/nuget.csproj
+++ b/contrib/nuget/nuget.csproj
@@ -6,8 +6,8 @@
     <PackageId Condition="$([MSBuild]::IsOSPlatform('Windows'))">$(PackageId).win</PackageId>
     <PackageId Condition="$([MSBuild]::IsOSPlatform('Linux'))">$(PackageId).linux</PackageId>
     <PackageId Condition="$([MSBuild]::IsOSPlatform('OSX'))">$(PackageId).osx</PackageId>
-    <Copyright>(C) 1995-2025 Jean-loup Gailly and Mark Adler</Copyright>
-    <version>1.3.1.2</version>
+    <Copyright>(C) 1995-2026 Jean-loup Gailly and Mark Adler</Copyright>
+    <version>1.3.2</version>
     <PackageDescription>NuGet Package for consuming native builds of zlib into .NET without complexity.</PackageDescription>
     <PackageReadmeFile>README</PackageReadmeFile>
     <!--
diff --git a/contrib/pascal/zlibpas.pas b/contrib/pascal/zlibpas.pas
index 8715da8..603ff82 100644
--- a/contrib/pascal/zlibpas.pas
+++ b/contrib/pascal/zlibpas.pas
@@ -10,7 +10,7 @@ unit zlibpas;
 interface

 const
-  ZLIB_VERSION = '1.3.1.2';
+  ZLIB_VERSION = '1.3.2';
   ZLIB_VERNUM  = $12a0;

 type
diff --git a/contrib/puff/pufftest.c b/contrib/puff/pufftest.c
index 6cad56f..b022992 100644
--- a/contrib/puff/pufftest.c
+++ b/contrib/puff/pufftest.c
@@ -1,8 +1,7 @@
 /*
  * pufftest.c
- * Copyright (C) 2002-2013 Mark Adler
+ * Copyright (C) 2002-2026 Mark Adler
  * For conditions of distribution and use, see copyright notice in puff.h
- * version 2.3, 21 Jan 2013
  */

 /* Example of how to use puff().
diff --git a/contrib/zlib1-dll/CMakeLists.txt b/contrib/zlib1-dll/CMakeLists.txt
index c9825aa..8662512 100644
--- a/contrib/zlib1-dll/CMakeLists.txt
+++ b/contrib/zlib1-dll/CMakeLists.txt
@@ -3,7 +3,7 @@ cmake_minimum_required(VERSION 3.12...3.31)
 project(
     zlib1-dll
     LANGUAGES C
-    VERSION 1.3.1.2
+    VERSION 1.3.2
     HOMEPAGE_URL "https://zlib.net/"
     DESCRIPTION "zlib1.dll is the legacy DLL with zlib and minizip")

diff --git a/crc32.c b/crc32.c
index 97eb5fd..d9ade51 100644
--- a/crc32.c
+++ b/crc32.c
@@ -1,5 +1,5 @@
 /* crc32.c -- compute the CRC-32 of a data stream
- * Copyright (C) 1995-2022 Mark Adler
+ * Copyright (C) 1995-2026 Mark Adler
  * For conditions of distribution and use, see copyright notice in zlib.h
  *
  * This interleaved implementation of a CRC makes use of pipelined multiple
diff --git a/deflate.c b/deflate.c
index 96c48dd..d7d2c7c 100644
--- a/deflate.c
+++ b/deflate.c
@@ -1,5 +1,5 @@
 /* deflate.c -- compress data using the deflation algorithm
- * Copyright (C) 1995-2025 Jean-loup Gailly and Mark Adler
+ * Copyright (C) 1995-2026 Jean-loup Gailly and Mark Adler
  * For conditions of distribution and use, see copyright notice in zlib.h
  */

@@ -52,7 +52,7 @@
 #include "deflate.h"

 const char deflate_copyright[] =
-   " deflate 1.3.1.2 Copyright 1995-2025 Jean-loup Gailly and Mark Adler ";
+   " deflate 1.3.2 Copyright 1995-2026 Jean-loup Gailly and Mark Adler ";
 /*
   If you use the zlib library in a product, an acknowledgment is welcome
   in the documentation of your product. If for some reason you cannot
diff --git a/deflate.h b/deflate.h
index 15c015e..0732ba8 100644
--- a/deflate.h
+++ b/deflate.h
@@ -1,5 +1,5 @@
 /* deflate.h -- internal compression state
- * Copyright (C) 1995-2024 Jean-loup Gailly
+ * Copyright (C) 1995-2026 Jean-loup Gailly
  * For conditions of distribution and use, see copyright notice in zlib.h
  */

diff --git a/gzguts.h b/gzguts.h
index c3d473a..266305d 100644
--- a/gzguts.h
+++ b/gzguts.h
@@ -1,5 +1,5 @@
 /* gzguts.h -- zlib internal header definitions for gz* operations
- * Copyright (C) 2004-2025 Mark Adler
+ * Copyright (C) 2004-2026 Mark Adler
  * For conditions of distribution and use, see copyright notice in zlib.h
  */

diff --git a/gzlib.c b/gzlib.c
index 934688c..7a37a96 100644
--- a/gzlib.c
+++ b/gzlib.c
@@ -1,5 +1,5 @@
 /* gzlib.c -- zlib functions common to reading and writing gzip files
- * Copyright (C) 2004-2025 Mark Adler
+ * Copyright (C) 2004-2026 Mark Adler
  * For conditions of distribution and use, see copyright notice in zlib.h
  */

diff --git a/gzread.c b/gzread.c
index bbabf52..8b3e369 100644
--- a/gzread.c
+++ b/gzread.c
@@ -1,5 +1,5 @@
 /* gzread.c -- zlib functions for reading gzip files
- * Copyright (C) 2004-2025 Mark Adler
+ * Copyright (C) 2004-2026 Mark Adler
  * For conditions of distribution and use, see copyright notice in zlib.h
  */

diff --git a/gzwrite.c b/gzwrite.c
index 18c820e..13a3700 100644
--- a/gzwrite.c
+++ b/gzwrite.c
@@ -1,5 +1,5 @@
 /* gzwrite.c -- zlib functions for writing gzip files
- * Copyright (C) 2004-2025 Mark Adler
+ * Copyright (C) 2004-2026 Mark Adler
  * For conditions of distribution and use, see copyright notice in zlib.h
  */

diff --git a/infback.c b/infback.c
index 8cb7654..e6443fe 100644
--- a/infback.c
+++ b/infback.c
@@ -1,5 +1,5 @@
 /* infback.c -- inflate using a call-back interface
- * Copyright (C) 1995-2025 Mark Adler
+ * Copyright (C) 1995-2026 Mark Adler
  * For conditions of distribution and use, see copyright notice in zlib.h
  */

diff --git a/inffast.c b/inffast.c
index 818886f..d1657f3 100644
--- a/inffast.c
+++ b/inffast.c
@@ -1,5 +1,5 @@
 /* inffast.c -- fast decoding
- * Copyright (C) 1995-2025 Mark Adler
+ * Copyright (C) 1995-2026 Mark Adler
  * For conditions of distribution and use, see copyright notice in zlib.h
  */

diff --git a/inflate.c b/inflate.c
index 91c01f9..5f5d492 100644
--- a/inflate.c
+++ b/inflate.c
@@ -1,5 +1,5 @@
 /* inflate.c -- zlib decompression
- * Copyright (C) 1995-2025 Mark Adler
+ * Copyright (C) 1995-2026 Mark Adler
  * For conditions of distribution and use, see copyright notice in zlib.h
  */

diff --git a/inftrees.c b/inftrees.c
index 8dc0d08..dcbc64e 100644
--- a/inftrees.c
+++ b/inftrees.c
@@ -1,5 +1,5 @@
 /* inftrees.c -- generate Huffman trees for efficient decoding
- * Copyright (C) 1995-2025 Mark Adler
+ * Copyright (C) 1995-2026 Mark Adler
  * For conditions of distribution and use, see copyright notice in zlib.h
  */

@@ -23,7 +23,7 @@
 #define MAXBITS 15

 const char inflate_copyright[] =
-   " inflate 1.3.1.2 Copyright 1995-2025 Mark Adler ";
+   " inflate 1.3.2 Copyright 1995-2026 Mark Adler ";
 /*
   If you use the zlib library in a product, an acknowledgment is welcome
   in the documentation of your product. If for some reason you cannot
@@ -71,7 +71,7 @@ int ZLIB_INTERNAL inflate_table(codetype type, unsigned short FAR *lens,
         35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0};
     static const unsigned short lext[31] = { /* Length codes 257..285 extra */
         16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18,
-        19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 64, 204};
+        19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 199, 75};
     static const unsigned short dbase[32] = { /* Distance codes 0..29 base */
         1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193,
         257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145,
diff --git a/inftrees.h b/inftrees.h
index 00ec96e..84d0536 100644
--- a/inftrees.h
+++ b/inftrees.h
@@ -1,5 +1,5 @@
 /* inftrees.h -- header to use inftrees.c
- * Copyright (C) 1995-2005, 2010 Mark Adler
+ * Copyright (C) 1995-2026 Mark Adler
  * For conditions of distribution and use, see copyright notice in zlib.h
  */

diff --git a/os400/README400 b/os400/README400
index 2cfe7a3..9314a68 100644
--- a/os400/README400
+++ b/os400/README400
@@ -1,4 +1,4 @@
-        ZLIB version 1.3.1.2 for OS/400 installation instructions
+        ZLIB version 1.3.2 for OS/400 installation instructions

 1) Download and unpack the zlib tarball to some IFS directory.
    (i.e.: /path/to/the/zlib/ifs/source/directory)
diff --git a/os400/make.sh b/os400/make.sh
index e9643f5..4391579 100644
--- a/os400/make.sh
+++ b/os400/make.sh
@@ -276,7 +276,7 @@ fi
 echo '#pragma comment(user, "ZLIB version '"${VERSION}"'")' > os400.c
 echo '#pragma comment(user, __DATE__)' >> os400.c
 echo '#pragma comment(user, __TIME__)' >> os400.c
-echo '#pragma comment(copyright, "Copyright (C) 1995-2017 Jean-Loup Gailly, Mark Adler. OS/400 version by P. Monnerat.")' >> os400.c
+echo '#pragma comment(copyright, "Copyright (C) 1995-2026 Jean-Loup Gailly, Mark Adler. OS/400 version by P. Monnerat.")' >> os400.c
 make_module     OS400           os400.c
 LINK=                           # No need to rebuild service program yet.
 MODULES=
diff --git a/os400/zlibfixed.rpgle b/os400/zlibfixed.rpgle
index b2e3e09..75060f3 100644
--- a/os400/zlibfixed.rpgle
+++ b/os400/zlibfixed.rpgle
@@ -1,7 +1,7 @@
       *  ZLIB.INC - Interface to the general purpose compression library
       *
       *  ILE RPG400 version by Patrick Monnerat, DATASPHERE.
-      *  Version 1.3.1.2
+      *  Version 1.3.2
       *
       *
       *  WARNING:
@@ -22,14 +22,14 @@
       *
       *  Versioning information.
       *
-     D ZLIB_VERSION    C                   '1.3.1.2'
-     D ZLIB_VERNUM     C                   X'12a0'
+     D ZLIB_VERSION    C                   '1.3.2'
+     D ZLIB_VERNUM     C                   X'1320'
      D ZLIB_VER_MAJOR  C                   1
      D ZLIB_VER_MINOR  C                   3
      D ZLIB_VER_REVISION...
-     D                 C                   1
-     D ZLIB_VER_SUBREVISION...
      D                 C                   2
+     D ZLIB_VER_SUBREVISION...
+     D                 C                   0
       *
       *  Other equates.
       *
@@ -535,6 +535,20 @@
      D  buf                       65535    const options(*varsize)              Bytes to accumulate
      D  len                          20U 0 value                                Buffer length
       *
+     D crc32_combine_gen...
+     D                 PR            10U 0 extproc('crc32_combine_gen')         Operator
+     D  len2                         20U 0 value                                Buffer length
+      *
+     D crc32_combine_gen64...
+     D                 PR            10U 0 extproc('crc32_combine_gen64')       Operator
+     D  len2                         20U 0 value                                Buffer length
+      *
+     D crc32_combine_op...
+     D                 PR            10U 0 extproc('crc32_combine_op')          New Checksum
+     D  crc1                         10U 0 value                                Old checksum
+     D  crc2                         10U 0 value                                Old checksum
+     D  op                           10U 0 value                                Operator
+      *
       **************************************************************************
       *                     Miscellaneous function prototypes
       **************************************************************************
diff --git a/os400/zlibfree.rpgle b/os400/zlibfree.rpgle
index 5ae31ba..b35c468 100644
--- a/os400/zlibfree.rpgle
+++ b/os400/zlibfree.rpgle
@@ -2,7 +2,7 @@
 //  ZLIB.INC - Interface to the general purpose compression library

 //  ILE RPG400 version by Patrick Monnerat, DATASPHERE.
-//  Version 1.3.1.1
+//  Version 1.3.2


 //  WARNING:
@@ -23,12 +23,12 @@

 //  Versioning information.

-Dcl-C ZLIB_VERSION '1.3.1.1';
-Dcl-C ZLIB_VERNUM X'12A0';
+Dcl-C ZLIB_VERSION '1.3.2';
+Dcl-C ZLIB_VERNUM X'1320';
 Dcl-C ZLIB_VER_MAJOR 1;
 Dcl-C ZLIB_VER_MINOR 3;
-Dcl-C ZLIB_VER_REVISION 1;
-Dcl-C ZLIB_VER_SUBREVISION 1;
+Dcl-C ZLIB_VER_REVISION 2;
+Dcl-C ZLIB_VER_SUBREVISION 0;

 //  Other equates.

@@ -113,6 +113,13 @@ Dcl-Pr compress Int(10) Extproc('compress');
     sourceLen Uns(10) Value; // Source length
 End-Pr;

+Dcl-Pr compress_z Int(10) Extproc('compress_z');
+    dest Char(65535) Options(*VARSIZE); // Destination buffer
+    destLen Uns(20); // Destination length
+    source Char(65535) Const Options(*VARSIZE); // Source buffer
+    sourceLen Uns(20) Value; // Source length
+End-Pr;
+
 Dcl-Pr compress2 Int(10) Extproc('compress2');
     dest Char(65535) Options(*VARSIZE); // Destination buffer
     destLen Uns(10); // Destination length
@@ -121,10 +128,22 @@ Dcl-Pr compress2 Int(10) Extproc('compress2');
     level Int(10) Value; // Compression level
 End-Pr;

+Dcl-Pr compress2_z Int(10) Extproc('compress2_z');
+    dest Char(65535) Options(*VARSIZE); // Destination buffer
+    destLen Uns(20); // Destination length
+    source Char(65535) Const Options(*VARSIZE); // Source buffer
+    sourceLen Uns(20) Value; // Source length
+    level Int(10) Value; // Compression level
+End-Pr;
+
 Dcl-Pr compressBound Uns(10) Extproc('compressBound');
     sourceLen Uns(10) Value;
 End-Pr;

+Dcl-Pr compressBound_z Uns(10) Extproc('compressBound_z');
+    sourceLen Uns(20) Value;
+End-Pr;
+
 Dcl-Pr uncompress Int(10) Extproc('uncompress');
     dest Char(65535) Options(*VARSIZE); // Destination buffer
     destLen Uns(10); // Destination length
@@ -132,6 +151,13 @@ Dcl-Pr uncompress Int(10) Extproc('uncompress');
     sourceLen Uns(10) Value; // Source length
 End-Pr;

+Dcl-Pr uncompress_z Int(10) Extproc('uncompress_z');
+    dest Char(65535) Options(*VARSIZE); // Destination buffer
+    destLen Uns(20); // Destination length
+    source Char(65535) Const Options(*VARSIZE); // Source buffer
+    sourceLen Uns(20) Value; // Source length
+End-Pr;
+
 Dcl-Pr uncompress2 Int(10) Extproc('uncompress2');
     dest Char(65535) Options(*VARSIZE); // Destination buffer
     destLen Uns(10); // Destination length
@@ -139,6 +165,13 @@ Dcl-Pr uncompress2 Int(10) Extproc('uncompress2');
     sourceLen Uns(10); // Source length
 End-Pr;

+Dcl-Pr uncompress2_z Int(10) Extproc('uncompress2_z');
+    dest Char(65535) Options(*VARSIZE); // Destination buffer
+    destLen Uns(20); // Destination length
+    source Char(65535) Const Options(*VARSIZE); // Source buffer
+    sourceLen Uns(20); // Source length
+End-Pr;
+
 /if not defined(LARGE_FILES)
     Dcl-Pr gzopen Extproc('gzopen') Like(gzFile);
             path Pointer Value Options(*STRING); // File pathname
@@ -397,7 +430,12 @@ End-Pr;

 Dcl-Pr deflateBound Uns(10) Extproc('deflateBound'); // Change level & strat
     strm Like(z_stream); // Compression stream
-    sourcelen Uns(10) Value; // Compression level
+    sourcelen Uns(10) Value; // Source length
+End-Pr;
+
+Dcl-Pr deflateBound_z Uns(10) Extproc('deflateBound_z'); // Change level & strat
+    strm Like(z_stream); // Compression stream
+    sourcelen Uns(20) Value; // Source length
 End-Pr;

 Dcl-Pr deflatePending Int(10) Extproc('deflatePending'); // Change level & strat
@@ -542,7 +580,7 @@ End-Pr;
 Dcl-Pr crc32_combine Uns(10) Extproc('crc32_combine'); // New checksum
     crc1 Uns(10) Value; // Old checksum
     crc2 Uns(10) Value; // Old checksum
-    len2 Uns(20) Value; // Buffer length
+    len2 Uns(20) Value; // 2nd Buffer length
 End-Pr;

 Dcl-Pr crc32_z Uns(10) Extproc('crc32_z'); // New checksum
@@ -551,6 +589,20 @@ Dcl-Pr crc32_z Uns(10) Extproc('crc32_z'); // New checksum
     len Uns(20) Value; // Buffer length
 End-Pr;

+Dcl-Pr crc32_combine_gen Uns(10) Extproc('crc32_combine_gen');
+    len Uns(20) Value; // 2nd Buffer length
+End-Pr;
+
+Dcl-Pr crc32_combine_gen64 Uns(10) Extproc('crc32_combine_gen64');
+    len Uns(20) Value; // 2nd Buffer length
+End-Pr;
+
+Dcl-Pr crc32_combine_op Uns(10) Extproc('crc32_combine_op'); // New checksum
+    crc1 Uns(10) Value; // Old checksum
+    crc2 Uns(10) Value; // Old checksum
+    op Uns(10) Value; // Operator
+End-Pr;
+
 //*************************************************************************
 //                     Miscellaneous function prototypes
 //*************************************************************************
diff --git a/qnx/package.qpg b/qnx/package.qpg
index b86609a..82d65f4 100644
--- a/qnx/package.qpg
+++ b/qnx/package.qpg
@@ -25,10 +25,10 @@
       <QPG:Files>
          <QPG:Add file="../zconf.h" install="/opt/include/" user="root:sys" permission="644"/>
          <QPG:Add file="../zlib.h" install="/opt/include/" user="root:sys" permission="644"/>
-         <QPG:Add file="../libz.so.1.3.1.2" install="/opt/lib/" user="root:bin" permission="644"/>
-         <QPG:Add file="libz.so" install="/opt/lib/" component="dev" filetype="symlink" linkto="libz.so.1.3.1.2"/>
-         <QPG:Add file="libz.so.1" install="/opt/lib/" filetype="symlink" linkto="libz.so.1.3.1.2"/>
-         <QPG:Add file="../libz.so.1.3.1.2" install="/opt/lib/" component="slib"/>
+         <QPG:Add file="../libz.so.1.3.2" install="/opt/lib/" user="root:bin" permission="644"/>
+         <QPG:Add file="libz.so" install="/opt/lib/" component="dev" filetype="symlink" linkto="libz.so.1.3.2"/>
+         <QPG:Add file="libz.so.1" install="/opt/lib/" filetype="symlink" linkto="libz.so.1.3.2"/>
+         <QPG:Add file="../libz.so.1.3.2" install="/opt/lib/" component="slib"/>
       </QPG:Files>

       <QPG:PackageFilter>
@@ -63,7 +63,7 @@
             </QPM:ProductDescription>

             <QPM:ReleaseDescription>
-               <QPM:ReleaseVersion>1.3.1.2</QPM:ReleaseVersion>
+               <QPM:ReleaseVersion>1.3.2</QPM:ReleaseVersion>
                <QPM:ReleaseUrgency>Medium</QPM:ReleaseUrgency>
                <QPM:ReleaseStability>Stable</QPM:ReleaseStability>
                <QPM:ReleaseNoteMinor></QPM:ReleaseNoteMinor>
diff --git a/test/example.c b/test/example.c
index f517bb6..9cc5f76 100644
--- a/test/example.c
+++ b/test/example.c
@@ -1,5 +1,5 @@
 /* example.c -- usage example of the zlib compression library
- * Copyright (C) 1995-2006, 2011, 2016 Jean-loup Gailly
+ * Copyright (C) 1995-2026 Jean-loup Gailly
  * For conditions of distribution and use, see copyright notice in zlib.h
  */

diff --git a/test/minigzip.c b/test/minigzip.c
index fb0ef16..40da873 100644
--- a/test/minigzip.c
+++ b/test/minigzip.c
@@ -1,5 +1,5 @@
 /* minigzip.c -- simulate gzip using the zlib compression library
- * Copyright (C) 1995-2006, 2010, 2011, 2016 Jean-loup Gailly
+ * Copyright (C) 1995-2026 Jean-loup Gailly
  * For conditions of distribution and use, see copyright notice in zlib.h
  */

diff --git a/treebuild.xml b/treebuild.xml
index 3624680..cd7d7a5 100644
--- a/treebuild.xml
+++ b/treebuild.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" ?>
-<package name="zlib" version="1.3.1.2">
-    <library name="zlib" dlversion="1.3.1.2" dlname="z">
+<package name="zlib" version="1.3.2">
+    <library name="zlib" dlversion="1.3.2" dlname="z">
 	<property name="description"> zip compression library </property>
 	<property name="include-target-dir" value="$(@PACKAGE/install-includedir)" />

diff --git a/trees.c b/trees.c
index e552436..8e4da01 100644
--- a/trees.c
+++ b/trees.c
@@ -1,5 +1,5 @@
 /* trees.c -- output deflated data using Huffman coding
- * Copyright (C) 1995-2024 Jean-loup Gailly
+ * Copyright (C) 1995-2026 Jean-loup Gailly
  * detect_data_type() function provided freely by Cosmin Truta, 2006
  * For conditions of distribution and use, see copyright notice in zlib.h
  */
diff --git a/uncompr.c b/uncompr.c
index 14ef96c..2195e78 100644
--- a/uncompr.c
+++ b/uncompr.c
@@ -1,5 +1,5 @@
 /* uncompr.c -- decompress a memory buffer
- * Copyright (C) 1995-2003, 2010, 2014, 2016 Jean-loup Gailly, Mark Adler
+ * Copyright (C) 1995-2026 Jean-loup Gailly, Mark Adler
  * For conditions of distribution and use, see copyright notice in zlib.h
  */

diff --git a/win32/Makefile.gcc b/win32/Makefile.gcc
index 2fc6932..d1cdb9a 100644
--- a/win32/Makefile.gcc
+++ b/win32/Makefile.gcc
@@ -4,7 +4,7 @@
 # Last updated: Mar 2012.
 # Tested under Cygwin and MinGW.

-# Copyright (C) 1995-2003 Jean-loup Gailly.
+# Copyright (C) 1995-2026 Jean-loup Gailly.
 # For conditions of distribution and use, see copyright notice in zlib.h

 # To compile, or to compile and test, type from the top level zlib directory:
diff --git a/win32/README-WIN32.txt b/win32/README-WIN32.txt
index 79d2822..48c9120 100644
--- a/win32/README-WIN32.txt
+++ b/win32/README-WIN32.txt
@@ -1,6 +1,6 @@
 ZLIB DATA COMPRESSION LIBRARY

-zlib 1.3.1.2 is a general purpose data compression library.  All the code is
+zlib 1.3.2 is a general purpose data compression library.  All the code is
 thread safe.  The data format used by the zlib library is described by RFCs
 (Request for Comments) 1950 to 1952 in the files
 https://datatracker.ietf.org/doc/html/rfc1951 (zlib format), rfc1951.txt
@@ -22,7 +22,7 @@ asking for help.

 Manifest:

-The package zlib-1.3.1.2-win32-x86.zip will contain the following files:
+The package zlib-1.3.2-win32-x86.zip will contain the following files:

   README-WIN32.txt This document
   ChangeLog        Changes since previous zlib packages
@@ -72,7 +72,7 @@ are too numerous to cite here.

 Copyright notice:

-  (C) 1995-2017 Jean-loup Gailly and Mark Adler
+  (C) 1995-2026 Jean-loup Gailly and Mark Adler

   This software is provided 'as-is', without any express or implied
   warranty.  In no event will the authors be held liable for any damages
diff --git a/win32/zlib1.rc b/win32/zlib1.rc
index 66e5b51..e86ce56 100644
--- a/win32/zlib1.rc
+++ b/win32/zlib1.rc
@@ -23,7 +23,7 @@ BEGIN
       VALUE "FileDescription",	"zlib data compression library\0"
       VALUE "FileVersion",	ZLIB_VERSION "\0"
       VALUE "InternalName",	"zlib1.dll\0"
-      VALUE "LegalCopyright",	"(C) 1995-2022 Jean-loup Gailly & Mark Adler\0"
+      VALUE "LegalCopyright",	"(C) 1995-2026 Jean-loup Gailly & Mark Adler\0"
       VALUE "OriginalFilename",	"zlib1.dll\0"
       VALUE "ProductName",	"zlib\0"
       VALUE "ProductVersion",	ZLIB_VERSION "\0"
diff --git a/zconf.h b/zconf.h
index a714381..828ca61 100644
--- a/zconf.h
+++ b/zconf.h
@@ -1,5 +1,5 @@
 /* zconf.h -- configuration of the zlib compression library
- * Copyright (C) 1995-2025 Jean-loup Gailly, Mark Adler
+ * Copyright (C) 1995-2026 Jean-loup Gailly, Mark Adler
  * For conditions of distribution and use, see copyright notice in zlib.h
  */

diff --git a/zconf.h.in b/zconf.h.in
index a714381..828ca61 100644
--- a/zconf.h.in
+++ b/zconf.h.in
@@ -1,5 +1,5 @@
 /* zconf.h -- configuration of the zlib compression library
- * Copyright (C) 1995-2025 Jean-loup Gailly, Mark Adler
+ * Copyright (C) 1995-2026 Jean-loup Gailly, Mark Adler
  * For conditions of distribution and use, see copyright notice in zlib.h
  */

diff --git a/zlib.3 b/zlib.3
index 5dc8b7c..70d5f18 100644
--- a/zlib.3
+++ b/zlib.3
@@ -1,4 +1,4 @@
-.TH ZLIB 3 "8 Dec 2025"
+.TH ZLIB 3 "17 Feb 2026"
 .SH NAME
 zlib \- compression/decompression library
 .SH SYNOPSIS
@@ -105,9 +105,9 @@ before asking for help.
 Send questions and/or comments to zlib@gzip.org,
 or (for the Windows DLL version) to Gilles Vollant (info@winimage.com).
 .SH AUTHORS AND LICENSE
-Version 1.3.1.2
+Version 1.3.2
 .LP
-Copyright (C) 1995-2025 Jean-loup Gailly and Mark Adler
+Copyright (C) 1995-2026 Jean-loup Gailly and Mark Adler
 .LP
 This software is provided 'as-is', without any express or implied
 warranty.  In no event will the authors be held liable for any damages
diff --git a/zlib.3.pdf b/zlib.3.pdf
index c4bb117..0ec7c6a 100644
Binary files a/zlib.3.pdf and b/zlib.3.pdf differ
diff --git a/zlib.h b/zlib.h
index 8ffc8de..a57d336 100644
--- a/zlib.h
+++ b/zlib.h
@@ -1,7 +1,7 @@
 /* zlib.h -- interface of the 'zlib' general purpose compression library
-  version 1.3.1.2, December 8th, 2025
+  version 1.3.2, February 17th, 2026

-  Copyright (C) 1995-2025 Jean-loup Gailly and Mark Adler
+  Copyright (C) 1995-2026 Jean-loup Gailly and Mark Adler

   This software is provided 'as-is', without any express or implied
   warranty.  In no event will the authors be held liable for any damages
@@ -41,12 +41,12 @@
 extern "C" {
 #endif

-#define ZLIB_VERSION "1.3.1.2-audit"
-#define ZLIB_VERNUM 0x1312
+#define ZLIB_VERSION "1.3.2"
+#define ZLIB_VERNUM 0x1320
 #define ZLIB_VER_MAJOR 1
 #define ZLIB_VER_MINOR 3
-#define ZLIB_VER_REVISION 1
-#define ZLIB_VER_SUBREVISION 2
+#define ZLIB_VER_REVISION 2
+#define ZLIB_VER_SUBREVISION 0

 /*
     The 'zlib' compression library provides in-memory compression and
diff --git a/zlib.map b/zlib.map
index 6c4c031..7a9100f 100644
--- a/zlib.map
+++ b/zlib.map
@@ -113,4 +113,4 @@ ZLIB_1.3.2 {
 	uncompress2_z;
   local:
     inflate_fixed;
-} ZLIB_1.3.1.2;
\ No newline at end of file
+} ZLIB_1.3.1.2;
diff --git a/zutil.c b/zutil.c
index 860fadd..4ea02a9 100644
--- a/zutil.c
+++ b/zutil.c
@@ -1,5 +1,5 @@
 /* zutil.c -- target dependent utility functions for the compression library
- * Copyright (C) 1995-2017 Jean-loup Gailly
+ * Copyright (C) 1995-2026 Jean-loup Gailly
  * For conditions of distribution and use, see copyright notice in zlib.h
  */

diff --git a/zutil.h b/zutil.h
index 80f6d85..a9bc23c 100644
--- a/zutil.h
+++ b/zutil.h
@@ -1,5 +1,5 @@
 /* zutil.h -- internal interface and configuration of the compression library
- * Copyright (C) 1995-2024 Jean-loup Gailly, Mark Adler
+ * Copyright (C) 1995-2026 Jean-loup Gailly, Mark Adler
  * For conditions of distribution and use, see copyright notice in zlib.h
  */