diff -u -r -N squid-3.5.26/aclocal.m4 squid-3.5.27/aclocal.m4
--- squid-3.5.26/aclocal.m4	2017-06-02 01:51:22.000000000 +1200
+++ squid-3.5.27/aclocal.m4	2017-08-20 07:56:56.000000000 +1200
@@ -1,6 +1,6 @@
-# generated automatically by aclocal 1.15 -*- Autoconf -*-
+# generated automatically by aclocal 1.15.1 -*- Autoconf -*-
 
-# Copyright (C) 1996-2014 Free Software Foundation, Inc.
+# Copyright (C) 1996-2017 Free Software Foundation, Inc.
 
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -10052,7 +10052,7 @@
 m4_ifndef([_LT_PROG_FC],		[AC_DEFUN([_LT_PROG_FC])])
 m4_ifndef([_LT_PROG_CXX],		[AC_DEFUN([_LT_PROG_CXX])])
 
-# Copyright (C) 2002-2014 Free Software Foundation, Inc.
+# Copyright (C) 2002-2017 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -10067,7 +10067,7 @@
 [am__api_version='1.15'
 dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
 dnl require some minimum version.  Point them to the right macro.
-m4_if([$1], [1.15], [],
+m4_if([$1], [1.15.1], [],
       [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
 ])
 
@@ -10083,14 +10083,14 @@
 # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
 # This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
 AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
-[AM_AUTOMAKE_VERSION([1.15])dnl
+[AM_AUTOMAKE_VERSION([1.15.1])dnl
 m4_ifndef([AC_AUTOCONF_VERSION],
   [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
 _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
 
 # AM_AUX_DIR_EXPAND                                         -*- Autoconf -*-
 
-# Copyright (C) 2001-2014 Free Software Foundation, Inc.
+# Copyright (C) 2001-2017 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -10142,7 +10142,7 @@
 
 # AM_CONDITIONAL                                            -*- Autoconf -*-
 
-# Copyright (C) 1997-2014 Free Software Foundation, Inc.
+# Copyright (C) 1997-2017 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -10173,7 +10173,7 @@
 Usually this means the macro was only invoked conditionally.]])
 fi])])
 
-# Copyright (C) 1999-2014 Free Software Foundation, Inc.
+# Copyright (C) 1999-2017 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -10364,7 +10364,7 @@
 
 # Generate code to set up dependency tracking.              -*- Autoconf -*-
 
-# Copyright (C) 1999-2014 Free Software Foundation, Inc.
+# Copyright (C) 1999-2017 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -10440,7 +10440,7 @@
 
 # Do all the work for Automake.                             -*- Autoconf -*-
 
-# Copyright (C) 1996-2014 Free Software Foundation, Inc.
+# Copyright (C) 1996-2017 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -10637,7 +10637,7 @@
 done
 echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
 
-# Copyright (C) 2001-2014 Free Software Foundation, Inc.
+# Copyright (C) 2001-2017 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -10658,7 +10658,7 @@
 fi
 AC_SUBST([install_sh])])
 
-# Copyright (C) 2003-2014 Free Software Foundation, Inc.
+# Copyright (C) 2003-2017 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -10680,7 +10680,7 @@
 # Add --enable-maintainer-mode option to configure.         -*- Autoconf -*-
 # From Jim Meyering
 
-# Copyright (C) 1996-2014 Free Software Foundation, Inc.
+# Copyright (C) 1996-2017 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -10715,7 +10715,7 @@
 
 # Check to see how 'make' treats includes.	            -*- Autoconf -*-
 
-# Copyright (C) 2001-2014 Free Software Foundation, Inc.
+# Copyright (C) 2001-2017 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -10765,7 +10765,7 @@
 
 # Fake the existence of programs that GNU maintainers use.  -*- Autoconf -*-
 
-# Copyright (C) 1997-2014 Free Software Foundation, Inc.
+# Copyright (C) 1997-2017 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -10804,7 +10804,7 @@
 
 # Helper functions for option handling.                     -*- Autoconf -*-
 
-# Copyright (C) 2001-2014 Free Software Foundation, Inc.
+# Copyright (C) 2001-2017 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -10833,7 +10833,7 @@
 AC_DEFUN([_AM_IF_OPTION],
 [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
 
-# Copyright (C) 1999-2014 Free Software Foundation, Inc.
+# Copyright (C) 1999-2017 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -10880,7 +10880,7 @@
 # For backward compatibility.
 AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])])
 
-# Copyright (C) 2001-2014 Free Software Foundation, Inc.
+# Copyright (C) 2001-2017 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -10899,7 +10899,7 @@
 
 # Check to make sure that the build environment is sane.    -*- Autoconf -*-
 
-# Copyright (C) 1996-2014 Free Software Foundation, Inc.
+# Copyright (C) 1996-2017 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -10980,7 +10980,7 @@
 rm -f conftest.file
 ])
 
-# Copyright (C) 2009-2014 Free Software Foundation, Inc.
+# Copyright (C) 2009-2017 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -11040,7 +11040,7 @@
 _AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl
 ])
 
-# Copyright (C) 2001-2014 Free Software Foundation, Inc.
+# Copyright (C) 2001-2017 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -11068,7 +11068,7 @@
 INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
 AC_SUBST([INSTALL_STRIP_PROGRAM])])
 
-# Copyright (C) 2006-2014 Free Software Foundation, Inc.
+# Copyright (C) 2006-2017 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -11087,7 +11087,7 @@
 
 # Check how to create a tarball.                            -*- Autoconf -*-
 
-# Copyright (C) 2004-2014 Free Software Foundation, Inc.
+# Copyright (C) 2004-2017 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff -u -r -N squid-3.5.26/cfgaux/depcomp squid-3.5.27/cfgaux/depcomp
--- squid-3.5.26/cfgaux/depcomp	2017-06-02 01:54:55.000000000 +1200
+++ squid-3.5.27/cfgaux/depcomp	2017-08-20 07:57:02.000000000 +1200
@@ -1,9 +1,9 @@
 #! /bin/sh
 # depcomp - compile a program generating dependencies as side-effects
 
-scriptversion=2013-05-30.07; # UTC
+scriptversion=2016-01-11.22; # UTC
 
-# Copyright (C) 1999-2014 Free Software Foundation, Inc.
+# Copyright (C) 1999-2017 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -786,6 +786,6 @@
 # eval: (add-hook 'write-file-hooks 'time-stamp)
 # time-stamp-start: "scriptversion="
 # time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-time-zone: "UTC"
+# time-stamp-time-zone: "UTC0"
 # time-stamp-end: "; # UTC"
 # End:
diff -u -r -N squid-3.5.26/ChangeLog squid-3.5.27/ChangeLog
--- squid-3.5.26/ChangeLog	2017-06-02 01:49:00.000000000 +1200
+++ squid-3.5.27/ChangeLog	2017-08-20 06:48:49.000000000 +1200
@@ -1,3 +1,15 @@
+Changes to squid-3.5.27 (20 Aug 2017):
+
+	- Regression Bug #4112: ssl_engine does not accept cryptodev
+	- Bug 4687: Wrong names of components in man page, section SEE ALSO
+	- Bug 4671: various GCC 7 compile errors
+	- Bug 4464: Reduce "!Comm::MonitorsRead(serverConnection->fd)" assertions
+	- Bug 2833: Collapse internal revalidation requests (SMP-unaware caches)
+	- Bug 2833: Do not respond with HTTP/304 to unconditional requests
+	- Fix message packing error handling in mgr and snmp SMP Forwarders
+	- Fix mgr query handoff from the original recipient to Coordinator.
+	- ... and some documentation updates
+
 Changes to squid-3.5.26 (01 Jun 2017):
 
 	- Bug 4711: SubjectAlternativeNames is missing in some generated certificates
@@ -9,7 +21,7 @@
 	- Bug 3772: message from FTP server gets mangled
 	- Bug 3102: FTP directory listing drops fist character of file names
 	- Add OpenSSL library details to -v output
-	- ... and some documentatino updates
+	- ... and some documentation updates
 
 Changes to squid-3.5.25 (02 Apr 2017):
 
diff -u -r -N squid-3.5.26/compat/Makefile.in squid-3.5.27/compat/Makefile.in
--- squid-3.5.26/compat/Makefile.in	2017-06-02 01:52:56.000000000 +1200
+++ squid-3.5.27/compat/Makefile.in	2017-08-20 07:56:58.000000000 +1200
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff -u -r -N squid-3.5.26/compat/os/macosx.h squid-3.5.27/compat/os/macosx.h
--- squid-3.5.26/compat/os/macosx.h	2017-06-02 01:49:00.000000000 +1200
+++ squid-3.5.27/compat/os/macosx.h	2017-08-20 06:48:49.000000000 +1200
@@ -28,11 +28,6 @@
 
 #include "compat/cmsg.h"
 
-// MacOS GCC 4.0.1 and 4.2.1 supply __GNUC_GNU_INLINE__ but do not actually define  __attribute__((gnu_inline))
-#if defined(__cplusplus) && !defined(_SQUID_EXTERNNEW_)
-#define _SQUID_EXTERNNEW_ extern inline
-#endif
-
 #endif /* _SQUID_APPLE_ */
 #endif /* SQUID_OS_MACOSX_H */
 
diff -u -r -N squid-3.5.26/compat/os/sgi.h squid-3.5.27/compat/os/sgi.h
--- squid-3.5.26/compat/os/sgi.h	2017-06-02 01:49:00.000000000 +1200
+++ squid-3.5.27/compat/os/sgi.h	2017-08-20 06:48:49.000000000 +1200
@@ -25,15 +25,6 @@
 #define _ABI_SOURCE
 #endif /* USE_ASYNC_IO */
 
-#if defined(__cplusplus) && !defined(_SQUID_EXTERNNEW_) && !defined(_GNUC_)
-/*
- * The gcc compiler treats extern inline functions as being extern,
- * while the SGI MIPSpro compilers treat them as inline. To get equivalent
- * behavior, remove the inline keyword.
- */
-#define _SQUID_EXTERNNEW_ extern
-#endif
-
 #endif /* _SQUID_SGI_ */
 #endif /* SQUID_OS_SGI_H */
 
diff -u -r -N squid-3.5.26/compat/os/solaris.h squid-3.5.27/compat/os/solaris.h
--- squid-3.5.26/compat/os/solaris.h	2017-06-02 01:49:00.000000000 +1200
+++ squid-3.5.27/compat/os/solaris.h	2017-08-20 06:48:49.000000000 +1200
@@ -59,13 +59,6 @@
 #endif
 
 /*
- * SunPro CC handles extern inline as inline, PLUS extern symbols.
- */
-#if !defined(_SQUID_EXTERNNEW_) && defined(__SUNPRO_CC)
-#define _SQUID_EXTERNNEW_ extern
-#endif
-
-/*
  * SunStudio CC does not define C++ portability API __FUNCTION__
  */
 #if defined(__SUNPRO_CC) && !defined(__FUNCTION__)
diff -u -r -N squid-3.5.26/configure squid-3.5.27/configure
--- squid-3.5.26/configure	2017-06-02 01:55:26.000000000 +1200
+++ squid-3.5.27/configure	2017-08-20 07:57:03.000000000 +1200
@@ -1,7 +1,7 @@
 #! /bin/sh
 # From configure.ac Revision.
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for Squid Web Proxy 3.5.26.
+# Generated by GNU Autoconf 2.69 for Squid Web Proxy 3.5.27.
 #
 # Report bugs to <http://bugs.squid-cache.org/>.
 #
@@ -595,8 +595,8 @@
 # Identity of this package.
 PACKAGE_NAME='Squid Web Proxy'
 PACKAGE_TARNAME='squid'
-PACKAGE_VERSION='3.5.26'
-PACKAGE_STRING='Squid Web Proxy 3.5.26'
+PACKAGE_VERSION='3.5.27'
+PACKAGE_STRING='Squid Web Proxy 3.5.27'
 PACKAGE_BUGREPORT='http://bugs.squid-cache.org/'
 PACKAGE_URL=''
 
@@ -1636,7 +1636,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures Squid Web Proxy 3.5.26 to adapt to many kinds of systems.
+\`configure' configures Squid Web Proxy 3.5.27 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1707,7 +1707,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of Squid Web Proxy 3.5.26:";;
+     short | recursive ) echo "Configuration of Squid Web Proxy 3.5.27:";;
    esac
   cat <<\_ACEOF
 
@@ -2119,7 +2119,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-Squid Web Proxy configure 3.5.26
+Squid Web Proxy configure 3.5.27
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -3223,7 +3223,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by Squid Web Proxy $as_me 3.5.26, which was
+It was created by Squid Web Proxy $as_me 3.5.27, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -4090,7 +4090,7 @@
 
 # Define the identity of the package.
  PACKAGE='squid'
- VERSION='3.5.26'
+ VERSION='3.5.27'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -41876,7 +41876,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by Squid Web Proxy $as_me 3.5.26, which was
+This file was extended by Squid Web Proxy $as_me 3.5.27, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -41942,7 +41942,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-Squid Web Proxy config.status 3.5.26
+Squid Web Proxy config.status 3.5.27
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
diff -u -r -N squid-3.5.26/configure.ac squid-3.5.27/configure.ac
--- squid-3.5.26/configure.ac	2017-06-02 01:55:25.000000000 +1200
+++ squid-3.5.27/configure.ac	2017-08-20 07:57:03.000000000 +1200
@@ -5,7 +5,7 @@
 ## Please see the COPYING and CONTRIBUTORS files for details.
 ##
 
-AC_INIT([Squid Web Proxy],[3.5.26],[http://bugs.squid-cache.org/],[squid])
+AC_INIT([Squid Web Proxy],[3.5.27],[http://bugs.squid-cache.org/],[squid])
 AC_PREREQ(2.61)
 AC_CONFIG_HEADERS([include/autoconf.h])
 AC_CONFIG_AUX_DIR(cfgaux)
diff -u -r -N squid-3.5.26/contrib/Makefile.in squid-3.5.27/contrib/Makefile.in
--- squid-3.5.26/contrib/Makefile.in	2017-06-02 01:52:57.000000000 +1200
+++ squid-3.5.27/contrib/Makefile.in	2017-08-20 07:56:58.000000000 +1200
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff -u -r -N squid-3.5.26/doc/Makefile.in squid-3.5.27/doc/Makefile.in
--- squid-3.5.26/doc/Makefile.in	2017-06-02 01:52:57.000000000 +1200
+++ squid-3.5.27/doc/Makefile.in	2017-08-20 07:56:58.000000000 +1200
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff -u -r -N squid-3.5.26/doc/manuals/Makefile.in squid-3.5.27/doc/manuals/Makefile.in
--- squid-3.5.26/doc/manuals/Makefile.in	2017-06-02 01:52:58.000000000 +1200
+++ squid-3.5.27/doc/manuals/Makefile.in	2017-08-20 07:56:58.000000000 +1200
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff -u -r -N squid-3.5.26/doc/release-notes/Makefile.in squid-3.5.27/doc/release-notes/Makefile.in
--- squid-3.5.26/doc/release-notes/Makefile.in	2017-06-02 01:52:58.000000000 +1200
+++ squid-3.5.27/doc/release-notes/Makefile.in	2017-08-20 07:56:58.000000000 +1200
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff -u -r -N squid-3.5.26/doc/release-notes/release-3.5.html squid-3.5.27/doc/release-notes/release-3.5.html
--- squid-3.5.26/doc/release-notes/release-3.5.html	2017-06-02 10:41:39.000000000 +1200
+++ squid-3.5.27/doc/release-notes/release-3.5.html	2017-08-20 08:13:15.000000000 +1200
@@ -2,10 +2,10 @@
 <HTML>
 <HEAD>
  <META NAME="GENERATOR" CONTENT="LinuxDoc-Tools 0.9.72">
- <TITLE>Squid 3.5.26 release notes</TITLE>
+ <TITLE>Squid 3.5.27 release notes</TITLE>
 </HEAD>
 <BODY>
-<H1>Squid 3.5.26 release notes</H1>
+<H1>Squid 3.5.27 release notes</H1>
 
 <H2>Squid Developers</H2>
 <HR>
@@ -64,7 +64,7 @@
 <HR>
 <H2><A NAME="s1">1.</A> <A HREF="#toc1">Notice</A></H2>
 
-<P>The Squid Team are pleased to announce the release of Squid-3.5.26.</P>
+<P>The Squid Team are pleased to announce the release of Squid-3.5.27.</P>
 <P>This new release is available for download from 
 <A HREF="http://www.squid-cache.org/Versions/v3/3.5/">http://www.squid-cache.org/Versions/v3/3.5/</A> or the
 <A HREF="http://www.squid-cache.org/Download/http-mirrors.html">mirrors</A>.</P>
diff -u -r -N squid-3.5.26/errors/Makefile.in squid-3.5.27/errors/Makefile.in
--- squid-3.5.26/errors/Makefile.in	2017-06-02 01:52:59.000000000 +1200
+++ squid-3.5.27/errors/Makefile.in	2017-08-20 07:56:58.000000000 +1200
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff -u -r -N squid-3.5.26/helpers/basic_auth/DB/basic_db_auth.8 squid-3.5.27/helpers/basic_auth/DB/basic_db_auth.8
--- squid-3.5.26/helpers/basic_auth/DB/basic_db_auth.8	2017-06-02 10:41:45.000000000 +1200
+++ squid-3.5.27/helpers/basic_auth/DB/basic_db_auth.8	2017-08-20 08:13:15.000000000 +1200
@@ -1,4 +1,4 @@
-.\" Automatically generated by Pod::Man 4.08 (Pod::Simple 3.32)
+.\" Automatically generated by Pod::Man 4.09 (Pod::Simple 3.35)
 .\"
 .\" Standard preamble:
 .\" ========================================================================
@@ -129,7 +129,7 @@
 .\" ========================================================================
 .\"
 .IX Title "BASIC_DB_AUTH 8"
-.TH BASIC_DB_AUTH 8 "2017-06-01" "perl v5.24.1" "User Contributed Perl Documentation"
+.TH BASIC_DB_AUTH 8 "2017-08-19" "perl v5.26.0" "User Contributed Perl Documentation"
 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
 .\" way too many mistakes in technical documents.
 .if n .ad l
diff -u -r -N squid-3.5.26/helpers/basic_auth/DB/Makefile.in squid-3.5.27/helpers/basic_auth/DB/Makefile.in
--- squid-3.5.26/helpers/basic_auth/DB/Makefile.in	2017-06-02 01:53:00.000000000 +1200
+++ squid-3.5.27/helpers/basic_auth/DB/Makefile.in	2017-08-20 07:56:59.000000000 +1200
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff -u -r -N squid-3.5.26/helpers/basic_auth/fake/Makefile.in squid-3.5.27/helpers/basic_auth/fake/Makefile.in
--- squid-3.5.26/helpers/basic_auth/fake/Makefile.in	2017-06-02 01:53:13.000000000 +1200
+++ squid-3.5.27/helpers/basic_auth/fake/Makefile.in	2017-08-20 07:56:59.000000000 +1200
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff -u -r -N squid-3.5.26/helpers/basic_auth/getpwnam/Makefile.in squid-3.5.27/helpers/basic_auth/getpwnam/Makefile.in
--- squid-3.5.26/helpers/basic_auth/getpwnam/Makefile.in	2017-06-02 01:53:14.000000000 +1200
+++ squid-3.5.27/helpers/basic_auth/getpwnam/Makefile.in	2017-08-20 07:56:59.000000000 +1200
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff -u -r -N squid-3.5.26/helpers/basic_auth/LDAP/Makefile.in squid-3.5.27/helpers/basic_auth/LDAP/Makefile.in
--- squid-3.5.26/helpers/basic_auth/LDAP/Makefile.in	2017-06-02 01:53:01.000000000 +1200
+++ squid-3.5.27/helpers/basic_auth/LDAP/Makefile.in	2017-08-20 07:56:59.000000000 +1200
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff -u -r -N squid-3.5.26/helpers/basic_auth/Makefile.in squid-3.5.27/helpers/basic_auth/Makefile.in
--- squid-3.5.26/helpers/basic_auth/Makefile.in	2017-06-02 01:53:03.000000000 +1200
+++ squid-3.5.27/helpers/basic_auth/Makefile.in	2017-08-20 07:56:59.000000000 +1200
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff -u -r -N squid-3.5.26/helpers/basic_auth/MSNT-multi-domain/basic_msnt_multi_domain_auth.8 squid-3.5.27/helpers/basic_auth/MSNT-multi-domain/basic_msnt_multi_domain_auth.8
--- squid-3.5.26/helpers/basic_auth/MSNT-multi-domain/basic_msnt_multi_domain_auth.8	2017-06-02 10:41:53.000000000 +1200
+++ squid-3.5.27/helpers/basic_auth/MSNT-multi-domain/basic_msnt_multi_domain_auth.8	2017-08-20 08:13:15.000000000 +1200
@@ -1,4 +1,4 @@
-.\" Automatically generated by Pod::Man 4.08 (Pod::Simple 3.32)
+.\" Automatically generated by Pod::Man 4.09 (Pod::Simple 3.35)
 .\"
 .\" Standard preamble:
 .\" ========================================================================
@@ -129,7 +129,7 @@
 .\" ========================================================================
 .\"
 .IX Title "BASIC_MSNT_MULTI_DOMAIN_AUTH 1"
-.TH BASIC_MSNT_MULTI_DOMAIN_AUTH 1 "2017-06-01" "perl v5.24.1" "User Contributed Perl Documentation"
+.TH BASIC_MSNT_MULTI_DOMAIN_AUTH 1 "2017-08-19" "perl v5.26.0" "User Contributed Perl Documentation"
 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
 .\" way too many mistakes in technical documents.
 .if n .ad l
diff -u -r -N squid-3.5.26/helpers/basic_auth/MSNT-multi-domain/Makefile.in squid-3.5.27/helpers/basic_auth/MSNT-multi-domain/Makefile.in
--- squid-3.5.26/helpers/basic_auth/MSNT-multi-domain/Makefile.in	2017-06-02 01:53:02.000000000 +1200
+++ squid-3.5.27/helpers/basic_auth/MSNT-multi-domain/Makefile.in	2017-08-20 07:56:59.000000000 +1200
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff -u -r -N squid-3.5.26/helpers/basic_auth/NCSA/basic_ncsa_auth.8 squid-3.5.27/helpers/basic_auth/NCSA/basic_ncsa_auth.8
--- squid-3.5.26/helpers/basic_auth/NCSA/basic_ncsa_auth.8	2017-06-02 01:49:00.000000000 +1200
+++ squid-3.5.27/helpers/basic_auth/NCSA/basic_ncsa_auth.8	2017-08-20 06:48:49.000000000 +1200
@@ -18,15 +18,15 @@
 .PP
 This authenticator accepts:
 .BR
-* Blowfish - for passwords 72 characters or less in length
+ * Blowfish \- for passwords 72 characters or less in length.
 .BR
-* SHA256 - with salting and magic strings
+ * SHA256 \- with salting and magic strings.
 .BR
-* SHA512 - with salting and magic strings
+ * SHA512 \- with salting and magic strings.
 .BR
-* MD5 - with optional salt and magic strings
+ * MD5 \- with optional salt and magic strings.
 .BR
-* DES - for passwords 8 characters or less in length
+ * DES \- for passwords 8 characters or less in length.
 .
 NOTE: Blowfish and SHA algorithms require system-specific support.
 .
diff -u -r -N squid-3.5.26/helpers/basic_auth/NCSA/Makefile.in squid-3.5.27/helpers/basic_auth/NCSA/Makefile.in
--- squid-3.5.26/helpers/basic_auth/NCSA/Makefile.in	2017-06-02 01:53:04.000000000 +1200
+++ squid-3.5.27/helpers/basic_auth/NCSA/Makefile.in	2017-08-20 07:56:59.000000000 +1200
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff -u -r -N squid-3.5.26/helpers/basic_auth/NIS/Makefile.in squid-3.5.27/helpers/basic_auth/NIS/Makefile.in
--- squid-3.5.26/helpers/basic_auth/NIS/Makefile.in	2017-06-02 01:53:05.000000000 +1200
+++ squid-3.5.27/helpers/basic_auth/NIS/Makefile.in	2017-08-20 07:56:59.000000000 +1200
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff -u -r -N squid-3.5.26/helpers/basic_auth/PAM/Makefile.in squid-3.5.27/helpers/basic_auth/PAM/Makefile.in
--- squid-3.5.26/helpers/basic_auth/PAM/Makefile.in	2017-06-02 01:53:06.000000000 +1200
+++ squid-3.5.27/helpers/basic_auth/PAM/Makefile.in	2017-08-20 07:56:59.000000000 +1200
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff -u -r -N squid-3.5.26/helpers/basic_auth/POP3/basic_pop3_auth.8 squid-3.5.27/helpers/basic_auth/POP3/basic_pop3_auth.8
--- squid-3.5.26/helpers/basic_auth/POP3/basic_pop3_auth.8	2017-06-02 10:42:03.000000000 +1200
+++ squid-3.5.27/helpers/basic_auth/POP3/basic_pop3_auth.8	2017-08-20 08:13:16.000000000 +1200
@@ -1,4 +1,4 @@
-.\" Automatically generated by Pod::Man 4.08 (Pod::Simple 3.32)
+.\" Automatically generated by Pod::Man 4.09 (Pod::Simple 3.35)
 .\"
 .\" Standard preamble:
 .\" ========================================================================
@@ -129,7 +129,7 @@
 .\" ========================================================================
 .\"
 .IX Title "BASIC_POP3_AUTH 8"
-.TH BASIC_POP3_AUTH 8 "2017-06-01" "perl v5.24.1" "User Contributed Perl Documentation"
+.TH BASIC_POP3_AUTH 8 "2017-08-19" "perl v5.26.0" "User Contributed Perl Documentation"
 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
 .\" way too many mistakes in technical documents.
 .if n .ad l
diff -u -r -N squid-3.5.26/helpers/basic_auth/POP3/Makefile.in squid-3.5.27/helpers/basic_auth/POP3/Makefile.in
--- squid-3.5.26/helpers/basic_auth/POP3/Makefile.in	2017-06-02 01:53:07.000000000 +1200
+++ squid-3.5.27/helpers/basic_auth/POP3/Makefile.in	2017-08-20 07:56:59.000000000 +1200
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff -u -r -N squid-3.5.26/helpers/basic_auth/RADIUS/Makefile.in squid-3.5.27/helpers/basic_auth/RADIUS/Makefile.in
--- squid-3.5.26/helpers/basic_auth/RADIUS/Makefile.in	2017-06-02 01:53:08.000000000 +1200
+++ squid-3.5.27/helpers/basic_auth/RADIUS/Makefile.in	2017-08-20 07:56:59.000000000 +1200
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff -u -r -N squid-3.5.26/helpers/basic_auth/SASL/Makefile.in squid-3.5.27/helpers/basic_auth/SASL/Makefile.in
--- squid-3.5.26/helpers/basic_auth/SASL/Makefile.in	2017-06-02 01:53:09.000000000 +1200
+++ squid-3.5.27/helpers/basic_auth/SASL/Makefile.in	2017-08-20 07:56:59.000000000 +1200
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff -u -r -N squid-3.5.26/helpers/basic_auth/SMB/Makefile.in squid-3.5.27/helpers/basic_auth/SMB/Makefile.in
--- squid-3.5.26/helpers/basic_auth/SMB/Makefile.in	2017-06-02 01:53:10.000000000 +1200
+++ squid-3.5.27/helpers/basic_auth/SMB/Makefile.in	2017-08-20 07:56:59.000000000 +1200
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff -u -r -N squid-3.5.26/helpers/basic_auth/SMB_LM/Makefile.in squid-3.5.27/helpers/basic_auth/SMB_LM/Makefile.in
--- squid-3.5.26/helpers/basic_auth/SMB_LM/Makefile.in	2017-06-02 01:53:11.000000000 +1200
+++ squid-3.5.27/helpers/basic_auth/SMB_LM/Makefile.in	2017-08-20 07:56:59.000000000 +1200
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff -u -r -N squid-3.5.26/helpers/basic_auth/SSPI/Makefile.in squid-3.5.27/helpers/basic_auth/SSPI/Makefile.in
--- squid-3.5.26/helpers/basic_auth/SSPI/Makefile.in	2017-06-02 01:53:12.000000000 +1200
+++ squid-3.5.27/helpers/basic_auth/SSPI/Makefile.in	2017-08-20 07:56:59.000000000 +1200
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff -u -r -N squid-3.5.26/helpers/digest_auth/eDirectory/Makefile.in squid-3.5.27/helpers/digest_auth/eDirectory/Makefile.in
--- squid-3.5.26/helpers/digest_auth/eDirectory/Makefile.in	2017-06-02 01:53:17.000000000 +1200
+++ squid-3.5.27/helpers/digest_auth/eDirectory/Makefile.in	2017-08-20 07:56:59.000000000 +1200
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff -u -r -N squid-3.5.26/helpers/digest_auth/file/Makefile.in squid-3.5.27/helpers/digest_auth/file/Makefile.in
--- squid-3.5.26/helpers/digest_auth/file/Makefile.in	2017-06-02 01:53:18.000000000 +1200
+++ squid-3.5.27/helpers/digest_auth/file/Makefile.in	2017-08-20 07:56:59.000000000 +1200
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff -u -r -N squid-3.5.26/helpers/digest_auth/LDAP/Makefile.in squid-3.5.27/helpers/digest_auth/LDAP/Makefile.in
--- squid-3.5.26/helpers/digest_auth/LDAP/Makefile.in	2017-06-02 01:53:15.000000000 +1200
+++ squid-3.5.27/helpers/digest_auth/LDAP/Makefile.in	2017-08-20 07:56:59.000000000 +1200
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff -u -r -N squid-3.5.26/helpers/digest_auth/Makefile.in squid-3.5.27/helpers/digest_auth/Makefile.in
--- squid-3.5.26/helpers/digest_auth/Makefile.in	2017-06-02 01:53:16.000000000 +1200
+++ squid-3.5.27/helpers/digest_auth/Makefile.in	2017-08-20 07:56:59.000000000 +1200
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff -u -r -N squid-3.5.26/helpers/external_acl/AD_group/Makefile.in squid-3.5.27/helpers/external_acl/AD_group/Makefile.in
--- squid-3.5.26/helpers/external_acl/AD_group/Makefile.in	2017-06-02 01:53:19.000000000 +1200
+++ squid-3.5.27/helpers/external_acl/AD_group/Makefile.in	2017-08-20 07:56:59.000000000 +1200
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff -u -r -N squid-3.5.26/helpers/external_acl/delayer/ext_delayer_acl.8 squid-3.5.27/helpers/external_acl/delayer/ext_delayer_acl.8
--- squid-3.5.26/helpers/external_acl/delayer/ext_delayer_acl.8	2017-06-02 10:42:29.000000000 +1200
+++ squid-3.5.27/helpers/external_acl/delayer/ext_delayer_acl.8	2017-08-20 08:13:16.000000000 +1200
@@ -1,4 +1,4 @@
-.\" Automatically generated by Pod::Man 4.08 (Pod::Simple 3.32)
+.\" Automatically generated by Pod::Man 4.09 (Pod::Simple 3.35)
 .\"
 .\" Standard preamble:
 .\" ========================================================================
@@ -129,7 +129,7 @@
 .\" ========================================================================
 .\"
 .IX Title "EXT_DELAYER_ACL 8"
-.TH EXT_DELAYER_ACL 8 "2017-06-01" "perl v5.24.1" "User Contributed Perl Documentation"
+.TH EXT_DELAYER_ACL 8 "2017-08-19" "perl v5.26.0" "User Contributed Perl Documentation"
 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
 .\" way too many mistakes in technical documents.
 .if n .ad l
diff -u -r -N squid-3.5.26/helpers/external_acl/delayer/Makefile.in squid-3.5.27/helpers/external_acl/delayer/Makefile.in
--- squid-3.5.26/helpers/external_acl/delayer/Makefile.in	2017-06-02 01:53:24.000000000 +1200
+++ squid-3.5.27/helpers/external_acl/delayer/Makefile.in	2017-08-20 07:56:59.000000000 +1200
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff -u -r -N squid-3.5.26/helpers/external_acl/eDirectory_userip/Makefile.in squid-3.5.27/helpers/external_acl/eDirectory_userip/Makefile.in
--- squid-3.5.26/helpers/external_acl/eDirectory_userip/Makefile.in	2017-06-02 01:53:25.000000000 +1200
+++ squid-3.5.27/helpers/external_acl/eDirectory_userip/Makefile.in	2017-08-20 07:56:59.000000000 +1200
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff -u -r -N squid-3.5.26/helpers/external_acl/file_userip/Makefile.in squid-3.5.27/helpers/external_acl/file_userip/Makefile.in
--- squid-3.5.26/helpers/external_acl/file_userip/Makefile.in	2017-06-02 01:53:26.000000000 +1200
+++ squid-3.5.27/helpers/external_acl/file_userip/Makefile.in	2017-08-20 07:56:59.000000000 +1200
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff -u -r -N squid-3.5.26/helpers/external_acl/kerberos_ldap_group/Makefile.in squid-3.5.27/helpers/external_acl/kerberos_ldap_group/Makefile.in
--- squid-3.5.26/helpers/external_acl/kerberos_ldap_group/Makefile.in	2017-06-02 01:53:27.000000000 +1200
+++ squid-3.5.27/helpers/external_acl/kerberos_ldap_group/Makefile.in	2017-08-20 07:56:59.000000000 +1200
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff -u -r -N squid-3.5.26/helpers/external_acl/LDAP_group/ChangeLog squid-3.5.27/helpers/external_acl/LDAP_group/ChangeLog
--- squid-3.5.26/helpers/external_acl/LDAP_group/ChangeLog	2017-06-02 01:49:00.000000000 +1200
+++ squid-3.5.27/helpers/external_acl/LDAP_group/ChangeLog	2017-08-20 06:48:49.000000000 +1200
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 1996-2015 The Squid Software Foundation and contributors
+ * Copyright (C) 1996-2017 The Squid Software Foundation and contributors
  *
  * Squid software is distributed under GPLv2+ license and includes
  * contributions from numerous individuals and organizations.
diff -u -r -N squid-3.5.26/helpers/external_acl/LDAP_group/Makefile.in squid-3.5.27/helpers/external_acl/LDAP_group/Makefile.in
--- squid-3.5.26/helpers/external_acl/LDAP_group/Makefile.in	2017-06-02 01:53:20.000000000 +1200
+++ squid-3.5.27/helpers/external_acl/LDAP_group/Makefile.in	2017-08-20 07:56:59.000000000 +1200
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff -u -r -N squid-3.5.26/helpers/external_acl/LM_group/Makefile.in squid-3.5.27/helpers/external_acl/LM_group/Makefile.in
--- squid-3.5.26/helpers/external_acl/LM_group/Makefile.in	2017-06-02 01:53:22.000000000 +1200
+++ squid-3.5.27/helpers/external_acl/LM_group/Makefile.in	2017-08-20 07:56:59.000000000 +1200
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff -u -r -N squid-3.5.26/helpers/external_acl/Makefile.in squid-3.5.27/helpers/external_acl/Makefile.in
--- squid-3.5.26/helpers/external_acl/Makefile.in	2017-06-02 01:53:22.000000000 +1200
+++ squid-3.5.27/helpers/external_acl/Makefile.in	2017-08-20 07:56:59.000000000 +1200
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff -u -r -N squid-3.5.26/helpers/external_acl/session/Makefile.in squid-3.5.27/helpers/external_acl/session/Makefile.in
--- squid-3.5.26/helpers/external_acl/session/Makefile.in	2017-06-02 01:53:28.000000000 +1200
+++ squid-3.5.27/helpers/external_acl/session/Makefile.in	2017-08-20 07:56:59.000000000 +1200
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff -u -r -N squid-3.5.26/helpers/external_acl/SQL_session/ext_sql_session_acl.8 squid-3.5.27/helpers/external_acl/SQL_session/ext_sql_session_acl.8
--- squid-3.5.26/helpers/external_acl/SQL_session/ext_sql_session_acl.8	2017-06-02 10:42:45.000000000 +1200
+++ squid-3.5.27/helpers/external_acl/SQL_session/ext_sql_session_acl.8	2017-08-20 08:13:16.000000000 +1200
@@ -1,4 +1,4 @@
-.\" Automatically generated by Pod::Man 4.08 (Pod::Simple 3.32)
+.\" Automatically generated by Pod::Man 4.09 (Pod::Simple 3.35)
 .\"
 .\" Standard preamble:
 .\" ========================================================================
@@ -129,7 +129,7 @@
 .\" ========================================================================
 .\"
 .IX Title "EXT_SQL_SESSION_ACL 8"
-.TH EXT_SQL_SESSION_ACL 8 "2017-06-01" "perl v5.24.1" "User Contributed Perl Documentation"
+.TH EXT_SQL_SESSION_ACL 8 "2017-08-19" "perl v5.26.0" "User Contributed Perl Documentation"
 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
 .\" way too many mistakes in technical documents.
 .if n .ad l
diff -u -r -N squid-3.5.26/helpers/external_acl/SQL_session/Makefile.in squid-3.5.27/helpers/external_acl/SQL_session/Makefile.in
--- squid-3.5.26/helpers/external_acl/SQL_session/Makefile.in	2017-06-02 01:53:23.000000000 +1200
+++ squid-3.5.27/helpers/external_acl/SQL_session/Makefile.in	2017-08-20 07:56:59.000000000 +1200
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff -u -r -N squid-3.5.26/helpers/external_acl/time_quota/Makefile.in squid-3.5.27/helpers/external_acl/time_quota/Makefile.in
--- squid-3.5.26/helpers/external_acl/time_quota/Makefile.in	2017-06-02 01:53:29.000000000 +1200
+++ squid-3.5.27/helpers/external_acl/time_quota/Makefile.in	2017-08-20 07:56:59.000000000 +1200
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff -u -r -N squid-3.5.26/helpers/external_acl/unix_group/Makefile.in squid-3.5.27/helpers/external_acl/unix_group/Makefile.in
--- squid-3.5.26/helpers/external_acl/unix_group/Makefile.in	2017-06-02 01:53:30.000000000 +1200
+++ squid-3.5.27/helpers/external_acl/unix_group/Makefile.in	2017-08-20 07:56:59.000000000 +1200
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff -u -r -N squid-3.5.26/helpers/external_acl/wbinfo_group/ext_wbinfo_group_acl.8 squid-3.5.27/helpers/external_acl/wbinfo_group/ext_wbinfo_group_acl.8
--- squid-3.5.26/helpers/external_acl/wbinfo_group/ext_wbinfo_group_acl.8	2017-06-02 10:42:51.000000000 +1200
+++ squid-3.5.27/helpers/external_acl/wbinfo_group/ext_wbinfo_group_acl.8	2017-08-20 08:13:16.000000000 +1200
@@ -1,4 +1,4 @@
-.\" Automatically generated by Pod::Man 4.08 (Pod::Simple 3.32)
+.\" Automatically generated by Pod::Man 4.09 (Pod::Simple 3.35)
 .\"
 .\" Standard preamble:
 .\" ========================================================================
@@ -129,7 +129,7 @@
 .\" ========================================================================
 .\"
 .IX Title "EXT_WBINFO_GROUP_ACL 8"
-.TH EXT_WBINFO_GROUP_ACL 8 "2017-06-01" "perl v5.24.1" "User Contributed Perl Documentation"
+.TH EXT_WBINFO_GROUP_ACL 8 "2017-08-19" "perl v5.26.0" "User Contributed Perl Documentation"
 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
 .\" way too many mistakes in technical documents.
 .if n .ad l
diff -u -r -N squid-3.5.26/helpers/external_acl/wbinfo_group/Makefile.in squid-3.5.27/helpers/external_acl/wbinfo_group/Makefile.in
--- squid-3.5.26/helpers/external_acl/wbinfo_group/Makefile.in	2017-06-02 01:53:31.000000000 +1200
+++ squid-3.5.27/helpers/external_acl/wbinfo_group/Makefile.in	2017-08-20 07:56:59.000000000 +1200
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff -u -r -N squid-3.5.26/helpers/log_daemon/DB/log_db_daemon.8 squid-3.5.27/helpers/log_daemon/DB/log_db_daemon.8
--- squid-3.5.26/helpers/log_daemon/DB/log_db_daemon.8	2017-06-02 10:42:55.000000000 +1200
+++ squid-3.5.27/helpers/log_daemon/DB/log_db_daemon.8	2017-08-20 08:13:16.000000000 +1200
@@ -1,4 +1,4 @@
-.\" Automatically generated by Pod::Man 4.08 (Pod::Simple 3.32)
+.\" Automatically generated by Pod::Man 4.09 (Pod::Simple 3.35)
 .\"
 .\" Standard preamble:
 .\" ========================================================================
@@ -129,7 +129,7 @@
 .\" ========================================================================
 .\"
 .IX Title "LOG_DB_DAEMON 8"
-.TH LOG_DB_DAEMON 8 "2017-06-01" "perl v5.24.1" "User Contributed Perl Documentation"
+.TH LOG_DB_DAEMON 8 "2017-08-19" "perl v5.26.0" "User Contributed Perl Documentation"
 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
 .\" way too many mistakes in technical documents.
 .if n .ad l
diff -u -r -N squid-3.5.26/helpers/log_daemon/DB/Makefile.in squid-3.5.27/helpers/log_daemon/DB/Makefile.in
--- squid-3.5.26/helpers/log_daemon/DB/Makefile.in	2017-06-02 01:53:32.000000000 +1200
+++ squid-3.5.27/helpers/log_daemon/DB/Makefile.in	2017-08-20 07:56:59.000000000 +1200
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff -u -r -N squid-3.5.26/helpers/log_daemon/file/Makefile.in squid-3.5.27/helpers/log_daemon/file/Makefile.in
--- squid-3.5.26/helpers/log_daemon/file/Makefile.in	2017-06-02 01:53:34.000000000 +1200
+++ squid-3.5.27/helpers/log_daemon/file/Makefile.in	2017-08-20 07:57:00.000000000 +1200
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff -u -r -N squid-3.5.26/helpers/log_daemon/Makefile.in squid-3.5.27/helpers/log_daemon/Makefile.in
--- squid-3.5.26/helpers/log_daemon/Makefile.in	2017-06-02 01:53:33.000000000 +1200
+++ squid-3.5.27/helpers/log_daemon/Makefile.in	2017-08-20 07:57:00.000000000 +1200
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff -u -r -N squid-3.5.26/helpers/Makefile.in squid-3.5.27/helpers/Makefile.in
--- squid-3.5.26/helpers/Makefile.in	2017-06-02 01:52:59.000000000 +1200
+++ squid-3.5.27/helpers/Makefile.in	2017-08-20 07:56:58.000000000 +1200
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff -u -r -N squid-3.5.26/helpers/negotiate_auth/kerberos/Makefile.in squid-3.5.27/helpers/negotiate_auth/kerberos/Makefile.in
--- squid-3.5.26/helpers/negotiate_auth/kerberos/Makefile.in	2017-06-02 01:53:37.000000000 +1200
+++ squid-3.5.27/helpers/negotiate_auth/kerberos/Makefile.in	2017-08-20 07:57:00.000000000 +1200
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff -u -r -N squid-3.5.26/helpers/negotiate_auth/Makefile.in squid-3.5.27/helpers/negotiate_auth/Makefile.in
--- squid-3.5.26/helpers/negotiate_auth/Makefile.in	2017-06-02 01:53:34.000000000 +1200
+++ squid-3.5.27/helpers/negotiate_auth/Makefile.in	2017-08-20 07:57:00.000000000 +1200
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff -u -r -N squid-3.5.26/helpers/negotiate_auth/SSPI/Makefile.in squid-3.5.27/helpers/negotiate_auth/SSPI/Makefile.in
--- squid-3.5.26/helpers/negotiate_auth/SSPI/Makefile.in	2017-06-02 01:53:35.000000000 +1200
+++ squid-3.5.27/helpers/negotiate_auth/SSPI/Makefile.in	2017-08-20 07:57:00.000000000 +1200
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff -u -r -N squid-3.5.26/helpers/negotiate_auth/wrapper/Makefile.in squid-3.5.27/helpers/negotiate_auth/wrapper/Makefile.in
--- squid-3.5.26/helpers/negotiate_auth/wrapper/Makefile.in	2017-06-02 01:53:38.000000000 +1200
+++ squid-3.5.27/helpers/negotiate_auth/wrapper/Makefile.in	2017-08-20 07:57:00.000000000 +1200
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff -u -r -N squid-3.5.26/helpers/ntlm_auth/fake/Makefile.in squid-3.5.27/helpers/ntlm_auth/fake/Makefile.in
--- squid-3.5.26/helpers/ntlm_auth/fake/Makefile.in	2017-06-02 01:53:41.000000000 +1200
+++ squid-3.5.27/helpers/ntlm_auth/fake/Makefile.in	2017-08-20 07:57:00.000000000 +1200
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff -u -r -N squid-3.5.26/helpers/ntlm_auth/Makefile.in squid-3.5.27/helpers/ntlm_auth/Makefile.in
--- squid-3.5.26/helpers/ntlm_auth/Makefile.in	2017-06-02 01:53:38.000000000 +1200
+++ squid-3.5.27/helpers/ntlm_auth/Makefile.in	2017-08-20 07:57:00.000000000 +1200
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff -u -r -N squid-3.5.26/helpers/ntlm_auth/smb_lm/Makefile.in squid-3.5.27/helpers/ntlm_auth/smb_lm/Makefile.in
--- squid-3.5.26/helpers/ntlm_auth/smb_lm/Makefile.in	2017-06-02 01:53:42.000000000 +1200
+++ squid-3.5.27/helpers/ntlm_auth/smb_lm/Makefile.in	2017-08-20 07:57:00.000000000 +1200
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff -u -r -N squid-3.5.26/helpers/ntlm_auth/SSPI/Makefile.in squid-3.5.27/helpers/ntlm_auth/SSPI/Makefile.in
--- squid-3.5.26/helpers/ntlm_auth/SSPI/Makefile.in	2017-06-02 01:53:39.000000000 +1200
+++ squid-3.5.27/helpers/ntlm_auth/SSPI/Makefile.in	2017-08-20 07:57:00.000000000 +1200
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff -u -r -N squid-3.5.26/helpers/ssl/Makefile.in squid-3.5.27/helpers/ssl/Makefile.in
--- squid-3.5.26/helpers/ssl/Makefile.in	2017-06-02 01:53:42.000000000 +1200
+++ squid-3.5.27/helpers/ssl/Makefile.in	2017-08-20 07:57:00.000000000 +1200
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff -u -r -N squid-3.5.26/helpers/storeid_rewrite/file/Makefile.in squid-3.5.27/helpers/storeid_rewrite/file/Makefile.in
--- squid-3.5.26/helpers/storeid_rewrite/file/Makefile.in	2017-06-02 01:53:44.000000000 +1200
+++ squid-3.5.27/helpers/storeid_rewrite/file/Makefile.in	2017-08-20 07:57:00.000000000 +1200
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff -u -r -N squid-3.5.26/helpers/storeid_rewrite/file/storeid_file_rewrite.8 squid-3.5.27/helpers/storeid_rewrite/file/storeid_file_rewrite.8
--- squid-3.5.26/helpers/storeid_rewrite/file/storeid_file_rewrite.8	2017-06-02 10:43:23.000000000 +1200
+++ squid-3.5.27/helpers/storeid_rewrite/file/storeid_file_rewrite.8	2017-08-20 08:13:17.000000000 +1200
@@ -1,4 +1,4 @@
-.\" Automatically generated by Pod::Man 4.08 (Pod::Simple 3.32)
+.\" Automatically generated by Pod::Man 4.09 (Pod::Simple 3.35)
 .\"
 .\" Standard preamble:
 .\" ========================================================================
@@ -129,7 +129,7 @@
 .\" ========================================================================
 .\"
 .IX Title "STOREID_FILE_REWRITE 8"
-.TH STOREID_FILE_REWRITE 8 "2017-06-01" "perl v5.24.1" "User Contributed Perl Documentation"
+.TH STOREID_FILE_REWRITE 8 "2017-08-19" "perl v5.26.0" "User Contributed Perl Documentation"
 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
 .\" way too many mistakes in technical documents.
 .if n .ad l
diff -u -r -N squid-3.5.26/helpers/storeid_rewrite/Makefile.in squid-3.5.27/helpers/storeid_rewrite/Makefile.in
--- squid-3.5.26/helpers/storeid_rewrite/Makefile.in	2017-06-02 01:53:43.000000000 +1200
+++ squid-3.5.27/helpers/storeid_rewrite/Makefile.in	2017-08-20 07:57:00.000000000 +1200
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff -u -r -N squid-3.5.26/helpers/url_rewrite/fake/Makefile.in squid-3.5.27/helpers/url_rewrite/fake/Makefile.in
--- squid-3.5.26/helpers/url_rewrite/fake/Makefile.in	2017-06-02 01:53:46.000000000 +1200
+++ squid-3.5.27/helpers/url_rewrite/fake/Makefile.in	2017-08-20 07:57:00.000000000 +1200
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff -u -r -N squid-3.5.26/helpers/url_rewrite/Makefile.in squid-3.5.27/helpers/url_rewrite/Makefile.in
--- squid-3.5.26/helpers/url_rewrite/Makefile.in	2017-06-02 01:53:44.000000000 +1200
+++ squid-3.5.27/helpers/url_rewrite/Makefile.in	2017-08-20 07:57:00.000000000 +1200
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff -u -r -N squid-3.5.26/icons/Makefile.in squid-3.5.27/icons/Makefile.in
--- squid-3.5.26/icons/Makefile.in	2017-06-02 01:53:46.000000000 +1200
+++ squid-3.5.27/icons/Makefile.in	2017-08-20 07:57:00.000000000 +1200
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff -u -r -N squid-3.5.26/include/SquidNew.h squid-3.5.27/include/SquidNew.h
--- squid-3.5.26/include/SquidNew.h	2017-06-02 01:49:00.000000000 +1200
+++ squid-3.5.27/include/SquidNew.h	1970-01-01 12:00:00.000000000 +1200
@@ -1,41 +0,0 @@
-/*
- * Copyright (C) 1996-2017 The Squid Software Foundation and contributors
- *
- * Squid software is distributed under GPLv2+ license and includes
- * contributions from numerous individuals and organizations.
- * Please see the COPYING and CONTRIBUTORS files for details.
- */
-
-#ifndef SQUID_NEW_H
-#define SQUID_NEW_H
-
-#if !defined(__SUNPRO_CC) && !defined(__clang__)
-/* Any code using libstdc++ must have externally resolvable overloads
- * for void * operator new - which means in the .o for the binary,
- * or in a shared library. static libs don't propogate the symbol
- * so, look in the translation unit containing main() in squid
- * for the extern version in squid
- */
-#include <new>
-
-_SQUID_EXTERNNEW_ void *operator new(size_t size) throw (std::bad_alloc)
-{
-    return xmalloc(size);
-}
-_SQUID_EXTERNNEW_ void operator delete (void *address) throw()
-{
-    xfree(address);
-}
-_SQUID_EXTERNNEW_ void *operator new[] (size_t size) throw (std::bad_alloc)
-{
-    return xmalloc(size);
-}
-_SQUID_EXTERNNEW_ void operator delete[] (void *address) throw()
-{
-    xfree(address);
-}
-
-#endif /* !__SUNPRO_CC && !__clang__*/
-
-#endif /* SQUID_NEW_H */
-
diff -u -r -N squid-3.5.26/include/util.h squid-3.5.27/include/util.h
--- squid-3.5.26/include/util.h	2017-06-02 01:49:00.000000000 +1200
+++ squid-3.5.27/include/util.h	2017-08-20 06:48:49.000000000 +1200
@@ -19,23 +19,6 @@
 SQUIDCEXTERN int tvSubUsec(struct timeval, struct timeval);
 SQUIDCEXTERN double tvSubDsec(struct timeval, struct timeval);
 SQUIDCEXTERN void Tolower(char *);
-#if defined(__cplusplus)
-/*
- * Any code using libstdc++ must have externally resolvable overloads
- * for void * operator new - which means in the .o for the binary,
- * or in a shared library. static libs don't propogate the symbol
- * so, look in the translation unit containing main() in squid
- * for the extern version in squid
- */
-#if !defined(_SQUID_EXTERNNEW_)
-#if defined(__GNUC_STDC_INLINE__) || defined(__GNUC_GNU_INLINE__)
-#define _SQUID_EXTERNNEW_ extern inline __attribute__((gnu_inline))
-#else
-#define _SQUID_EXTERNNEW_ extern inline
-#endif
-#endif
-#include "SquidNew.h"
-#endif
 
 SQUIDCEXTERN time_t parse_iso3307_time(const char *buf);
 
diff -u -r -N squid-3.5.26/include/version.h squid-3.5.27/include/version.h
--- squid-3.5.26/include/version.h	2017-06-02 01:55:26.000000000 +1200
+++ squid-3.5.27/include/version.h	2017-08-20 07:57:03.000000000 +1200
@@ -7,7 +7,7 @@
  */
 
 #ifndef SQUID_RELEASE_TIME
-#define SQUID_RELEASE_TIME 1496324930
+#define SQUID_RELEASE_TIME 1503172613
 #endif
 
 /*
diff -u -r -N squid-3.5.26/lib/libTrie/Makefile.in squid-3.5.27/lib/libTrie/Makefile.in
--- squid-3.5.26/lib/libTrie/Makefile.in	2017-06-02 01:53:49.000000000 +1200
+++ squid-3.5.27/lib/libTrie/Makefile.in	2017-08-20 07:57:00.000000000 +1200
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff -u -r -N squid-3.5.26/lib/libTrie/test/Makefile.in squid-3.5.27/lib/libTrie/test/Makefile.in
--- squid-3.5.26/lib/libTrie/test/Makefile.in	2017-06-02 01:53:50.000000000 +1200
+++ squid-3.5.27/lib/libTrie/test/Makefile.in	2017-08-20 07:57:00.000000000 +1200
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff -u -r -N squid-3.5.26/lib/Makefile.in squid-3.5.27/lib/Makefile.in
--- squid-3.5.26/lib/Makefile.in	2017-06-02 01:53:48.000000000 +1200
+++ squid-3.5.27/lib/Makefile.in	2017-08-20 07:57:00.000000000 +1200
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff -u -r -N squid-3.5.26/lib/ntlmauth/Makefile.in squid-3.5.27/lib/ntlmauth/Makefile.in
--- squid-3.5.26/lib/ntlmauth/Makefile.in	2017-06-02 01:53:52.000000000 +1200
+++ squid-3.5.27/lib/ntlmauth/Makefile.in	2017-08-20 07:57:00.000000000 +1200
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff -u -r -N squid-3.5.26/lib/profiler/Makefile.in squid-3.5.27/lib/profiler/Makefile.in
--- squid-3.5.26/lib/profiler/Makefile.in	2017-06-02 01:53:53.000000000 +1200
+++ squid-3.5.27/lib/profiler/Makefile.in	2017-08-20 07:57:00.000000000 +1200
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff -u -r -N squid-3.5.26/lib/rfcnb/Makefile.in squid-3.5.27/lib/rfcnb/Makefile.in
--- squid-3.5.26/lib/rfcnb/Makefile.in	2017-06-02 01:53:54.000000000 +1200
+++ squid-3.5.27/lib/rfcnb/Makefile.in	2017-08-20 07:57:00.000000000 +1200
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff -u -r -N squid-3.5.26/lib/smblib/Makefile.in squid-3.5.27/lib/smblib/Makefile.in
--- squid-3.5.26/lib/smblib/Makefile.in	2017-06-02 01:53:55.000000000 +1200
+++ squid-3.5.27/lib/smblib/Makefile.in	2017-08-20 07:57:00.000000000 +1200
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff -u -r -N squid-3.5.26/lib/snmplib/Makefile.in squid-3.5.27/lib/snmplib/Makefile.in
--- squid-3.5.26/lib/snmplib/Makefile.in	2017-06-02 01:53:56.000000000 +1200
+++ squid-3.5.27/lib/snmplib/Makefile.in	2017-08-20 07:57:00.000000000 +1200
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff -u -r -N squid-3.5.26/libltdl/aclocal.m4 squid-3.5.27/libltdl/aclocal.m4
--- squid-3.5.26/libltdl/aclocal.m4	2017-06-02 01:52:18.000000000 +1200
+++ squid-3.5.27/libltdl/aclocal.m4	2017-08-20 07:57:29.000000000 +1200
@@ -1,6 +1,6 @@
-# generated automatically by aclocal 1.15 -*- Autoconf -*-
+# generated automatically by aclocal 1.15.1 -*- Autoconf -*-
 
-# Copyright (C) 1996-2014 Free Software Foundation, Inc.
+# Copyright (C) 1996-2017 Free Software Foundation, Inc.
 
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -20,7 +20,7 @@
 If you have problems, you may need to regenerate the build system entirely.
 To do so, use the procedure documented by the package, typically 'autoreconf'.])])
 
-# Copyright (C) 2002-2014 Free Software Foundation, Inc.
+# Copyright (C) 2002-2017 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -35,7 +35,7 @@
 [am__api_version='1.15'
 dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
 dnl require some minimum version.  Point them to the right macro.
-m4_if([$1], [1.15], [],
+m4_if([$1], [1.15.1], [],
       [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
 ])
 
@@ -51,14 +51,14 @@
 # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
 # This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
 AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
-[AM_AUTOMAKE_VERSION([1.15])dnl
+[AM_AUTOMAKE_VERSION([1.15.1])dnl
 m4_ifndef([AC_AUTOCONF_VERSION],
   [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
 _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
 
 # AM_AUX_DIR_EXPAND                                         -*- Autoconf -*-
 
-# Copyright (C) 2001-2014 Free Software Foundation, Inc.
+# Copyright (C) 2001-2017 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -110,7 +110,7 @@
 
 # AM_CONDITIONAL                                            -*- Autoconf -*-
 
-# Copyright (C) 1997-2014 Free Software Foundation, Inc.
+# Copyright (C) 1997-2017 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -141,7 +141,7 @@
 Usually this means the macro was only invoked conditionally.]])
 fi])])
 
-# Copyright (C) 1999-2014 Free Software Foundation, Inc.
+# Copyright (C) 1999-2017 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -332,7 +332,7 @@
 
 # Generate code to set up dependency tracking.              -*- Autoconf -*-
 
-# Copyright (C) 1999-2014 Free Software Foundation, Inc.
+# Copyright (C) 1999-2017 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -408,7 +408,7 @@
 
 # Do all the work for Automake.                             -*- Autoconf -*-
 
-# Copyright (C) 1996-2014 Free Software Foundation, Inc.
+# Copyright (C) 1996-2017 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -605,7 +605,7 @@
 done
 echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
 
-# Copyright (C) 2001-2014 Free Software Foundation, Inc.
+# Copyright (C) 2001-2017 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -626,7 +626,7 @@
 fi
 AC_SUBST([install_sh])])
 
-# Copyright (C) 2003-2014 Free Software Foundation, Inc.
+# Copyright (C) 2003-2017 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -647,7 +647,7 @@
 
 # Check to see how 'make' treats includes.	            -*- Autoconf -*-
 
-# Copyright (C) 2001-2014 Free Software Foundation, Inc.
+# Copyright (C) 2001-2017 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -697,7 +697,7 @@
 
 # Fake the existence of programs that GNU maintainers use.  -*- Autoconf -*-
 
-# Copyright (C) 1997-2014 Free Software Foundation, Inc.
+# Copyright (C) 1997-2017 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -736,7 +736,7 @@
 
 # Helper functions for option handling.                     -*- Autoconf -*-
 
-# Copyright (C) 2001-2014 Free Software Foundation, Inc.
+# Copyright (C) 2001-2017 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -765,7 +765,7 @@
 AC_DEFUN([_AM_IF_OPTION],
 [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
 
-# Copyright (C) 1999-2014 Free Software Foundation, Inc.
+# Copyright (C) 1999-2017 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -812,7 +812,7 @@
 # For backward compatibility.
 AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])])
 
-# Copyright (C) 2001-2014 Free Software Foundation, Inc.
+# Copyright (C) 2001-2017 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -831,7 +831,7 @@
 
 # Check to make sure that the build environment is sane.    -*- Autoconf -*-
 
-# Copyright (C) 1996-2014 Free Software Foundation, Inc.
+# Copyright (C) 1996-2017 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -912,7 +912,7 @@
 rm -f conftest.file
 ])
 
-# Copyright (C) 2009-2014 Free Software Foundation, Inc.
+# Copyright (C) 2009-2017 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -972,7 +972,7 @@
 _AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl
 ])
 
-# Copyright (C) 2001-2014 Free Software Foundation, Inc.
+# Copyright (C) 2001-2017 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -1000,7 +1000,7 @@
 INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
 AC_SUBST([INSTALL_STRIP_PROGRAM])])
 
-# Copyright (C) 2006-2014 Free Software Foundation, Inc.
+# Copyright (C) 2006-2017 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -1019,7 +1019,7 @@
 
 # Check how to create a tarball.                            -*- Autoconf -*-
 
-# Copyright (C) 2004-2014 Free Software Foundation, Inc.
+# Copyright (C) 2004-2017 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff -u -r -N squid-3.5.26/libltdl/Makefile.in squid-3.5.27/libltdl/Makefile.in
--- squid-3.5.26/libltdl/Makefile.in	2017-06-02 02:21:40.000000000 +1200
+++ squid-3.5.27/libltdl/Makefile.in	2017-08-20 07:57:30.000000000 +1200
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -933,7 +933,7 @@
 	  ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
 	|| chmod -R a+r "$(distdir)"
 dist-gzip: distdir
-	tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
+	tardir=$(distdir) && $(am__tar) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).tar.gz
 	$(am__post_remove_distdir)
 
 dist-bzip2: distdir
@@ -959,7 +959,7 @@
 	@echo WARNING: "Support for shar distribution archives is" \
 	               "deprecated." >&2
 	@echo WARNING: "It will be removed altogether in Automake 2.0" >&2
-	shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
+	shar $(distdir) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).shar.gz
 	$(am__post_remove_distdir)
 
 dist-zip: distdir
@@ -977,7 +977,7 @@
 distcheck: dist
 	case '$(DIST_ARCHIVES)' in \
 	*.tar.gz*) \
-	  GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\
+	  eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).tar.gz | $(am__untar) ;;\
 	*.tar.bz2*) \
 	  bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
 	*.tar.lz*) \
@@ -987,7 +987,7 @@
 	*.tar.Z*) \
 	  uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
 	*.shar.gz*) \
-	  GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\
+	  eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).shar.gz | unshar ;;\
 	*.zip*) \
 	  unzip $(distdir).zip ;;\
 	esac
diff -u -r -N squid-3.5.26/Makefile.in squid-3.5.27/Makefile.in
--- squid-3.5.26/Makefile.in	2017-06-02 01:52:55.000000000 +1200
+++ squid-3.5.27/Makefile.in	2017-08-20 07:56:58.000000000 +1200
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -745,7 +745,7 @@
 	  ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
 	|| chmod -R a+r "$(distdir)"
 dist-gzip: distdir
-	tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
+	tardir=$(distdir) && $(am__tar) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).tar.gz
 	$(am__post_remove_distdir)
 dist-bzip2: distdir
 	tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2
@@ -770,7 +770,7 @@
 	@echo WARNING: "Support for shar distribution archives is" \
 	               "deprecated." >&2
 	@echo WARNING: "It will be removed altogether in Automake 2.0" >&2
-	shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
+	shar $(distdir) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).shar.gz
 	$(am__post_remove_distdir)
 
 dist-zip: distdir
@@ -788,7 +788,7 @@
 distcheck: dist
 	case '$(DIST_ARCHIVES)' in \
 	*.tar.gz*) \
-	  GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\
+	  eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).tar.gz | $(am__untar) ;;\
 	*.tar.bz2*) \
 	  bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
 	*.tar.lz*) \
@@ -798,7 +798,7 @@
 	*.tar.Z*) \
 	  uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
 	*.shar.gz*) \
-	  GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\
+	  eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).shar.gz | unshar ;;\
 	*.zip*) \
 	  unzip $(distdir).zip ;;\
 	esac
diff -u -r -N squid-3.5.26/RELEASENOTES.html squid-3.5.27/RELEASENOTES.html
--- squid-3.5.26/RELEASENOTES.html	2017-06-02 10:41:39.000000000 +1200
+++ squid-3.5.27/RELEASENOTES.html	2017-08-20 08:13:15.000000000 +1200
@@ -2,10 +2,10 @@
 <HTML>
 <HEAD>
  <META NAME="GENERATOR" CONTENT="LinuxDoc-Tools 0.9.72">
- <TITLE>Squid 3.5.26 release notes</TITLE>
+ <TITLE>Squid 3.5.27 release notes</TITLE>
 </HEAD>
 <BODY>
-<H1>Squid 3.5.26 release notes</H1>
+<H1>Squid 3.5.27 release notes</H1>
 
 <H2>Squid Developers</H2>
 <HR>
@@ -64,7 +64,7 @@
 <HR>
 <H2><A NAME="s1">1.</A> <A HREF="#toc1">Notice</A></H2>
 
-<P>The Squid Team are pleased to announce the release of Squid-3.5.26.</P>
+<P>The Squid Team are pleased to announce the release of Squid-3.5.27.</P>
 <P>This new release is available for download from 
 <A HREF="http://www.squid-cache.org/Versions/v3/3.5/">http://www.squid-cache.org/Versions/v3/3.5/</A> or the
 <A HREF="http://www.squid-cache.org/Download/http-mirrors.html">mirrors</A>.</P>
diff -u -r -N squid-3.5.26/scripts/Makefile.in squid-3.5.27/scripts/Makefile.in
--- squid-3.5.26/scripts/Makefile.in	2017-06-02 01:53:57.000000000 +1200
+++ squid-3.5.27/scripts/Makefile.in	2017-08-20 07:57:00.000000000 +1200
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff -u -r -N squid-3.5.26/src/acl/Makefile.in squid-3.5.27/src/acl/Makefile.in
--- squid-3.5.26/src/acl/Makefile.in	2017-06-02 01:54:05.000000000 +1200
+++ squid-3.5.27/src/acl/Makefile.in	2017-08-20 07:57:00.000000000 +1200
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff -u -r -N squid-3.5.26/src/adaptation/ecap/Makefile.in squid-3.5.27/src/adaptation/ecap/Makefile.in
--- squid-3.5.26/src/adaptation/ecap/Makefile.in	2017-06-02 01:54:10.000000000 +1200
+++ squid-3.5.27/src/adaptation/ecap/Makefile.in	2017-08-20 07:57:01.000000000 +1200
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff -u -r -N squid-3.5.26/src/adaptation/icap/Makefile.in squid-3.5.27/src/adaptation/icap/Makefile.in
--- squid-3.5.26/src/adaptation/icap/Makefile.in	2017-06-02 01:54:11.000000000 +1200
+++ squid-3.5.27/src/adaptation/icap/Makefile.in	2017-08-20 07:57:01.000000000 +1200
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff -u -r -N squid-3.5.26/src/adaptation/Makefile.in squid-3.5.27/src/adaptation/Makefile.in
--- squid-3.5.26/src/adaptation/Makefile.in	2017-06-02 01:54:07.000000000 +1200
+++ squid-3.5.27/src/adaptation/Makefile.in	2017-08-20 07:57:01.000000000 +1200
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff -u -r -N squid-3.5.26/src/anyp/Makefile.in squid-3.5.27/src/anyp/Makefile.in
--- squid-3.5.26/src/anyp/Makefile.in	2017-06-02 01:54:13.000000000 +1200
+++ squid-3.5.27/src/anyp/Makefile.in	2017-08-20 07:57:01.000000000 +1200
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff -u -r -N squid-3.5.26/src/auth/basic/Makefile.in squid-3.5.27/src/auth/basic/Makefile.in
--- squid-3.5.26/src/auth/basic/Makefile.in	2017-06-02 01:54:16.000000000 +1200
+++ squid-3.5.27/src/auth/basic/Makefile.in	2017-08-20 07:57:01.000000000 +1200
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff -u -r -N squid-3.5.26/src/auth/digest/Makefile.in squid-3.5.27/src/auth/digest/Makefile.in
--- squid-3.5.26/src/auth/digest/Makefile.in	2017-06-02 01:54:17.000000000 +1200
+++ squid-3.5.27/src/auth/digest/Makefile.in	2017-08-20 07:57:01.000000000 +1200
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff -u -r -N squid-3.5.26/src/auth/Makefile.in squid-3.5.27/src/auth/Makefile.in
--- squid-3.5.26/src/auth/Makefile.in	2017-06-02 01:54:14.000000000 +1200
+++ squid-3.5.27/src/auth/Makefile.in	2017-08-20 07:57:01.000000000 +1200
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff -u -r -N squid-3.5.26/src/auth/negotiate/Makefile.in squid-3.5.27/src/auth/negotiate/Makefile.in
--- squid-3.5.26/src/auth/negotiate/Makefile.in	2017-06-02 01:54:18.000000000 +1200
+++ squid-3.5.27/src/auth/negotiate/Makefile.in	2017-08-20 07:57:01.000000000 +1200
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff -u -r -N squid-3.5.26/src/auth/ntlm/Makefile.in squid-3.5.27/src/auth/ntlm/Makefile.in
--- squid-3.5.26/src/auth/ntlm/Makefile.in	2017-06-02 01:54:20.000000000 +1200
+++ squid-3.5.27/src/auth/ntlm/Makefile.in	2017-08-20 07:57:01.000000000 +1200
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff -u -r -N squid-3.5.26/src/base/Makefile.in squid-3.5.27/src/base/Makefile.in
--- squid-3.5.26/src/base/Makefile.in	2017-06-02 01:54:21.000000000 +1200
+++ squid-3.5.27/src/base/Makefile.in	2017-08-20 07:57:01.000000000 +1200
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff -u -r -N squid-3.5.26/src/base/RefCount.h squid-3.5.27/src/base/RefCount.h
--- squid-3.5.26/src/base/RefCount.h	2017-06-02 01:49:00.000000000 +1200
+++ squid-3.5.27/src/base/RefCount.h	2017-08-20 06:48:49.000000000 +1200
@@ -54,9 +54,7 @@
 
     C & operator * () const {return *const_cast<C *>(p_); }
 
-    C const * getRaw() const {return p_; }
-
-    C * getRaw() {return const_cast<C *>(p_); }
+    C * getRaw() const { return const_cast<C *>(p_); }
 
     bool operator == (const RefCount& p) const {
         return p.p_ == p_;
diff -u -r -N squid-3.5.26/src/clients/FtpGateway.cc squid-3.5.27/src/clients/FtpGateway.cc
--- squid-3.5.26/src/clients/FtpGateway.cc	2017-06-02 01:49:00.000000000 +1200
+++ squid-3.5.27/src/clients/FtpGateway.cc	2017-08-20 06:48:49.000000000 +1200
@@ -153,8 +153,8 @@
     virtual void timeout(const CommTimeoutCbParams &io);
     void ftpAcceptDataConnection(const CommAcceptCbParams &io);
 
-    static HttpReply *ftpAuthRequired(HttpRequest * request, const char *realm);
-    const char *ftpRealm(void);
+    static HttpReply *ftpAuthRequired(HttpRequest * request, SBuf &realm);
+    SBuf ftpRealm();
     void loginFailed(void);
 
     virtual void haveParsedReplyHeaders();
@@ -192,7 +192,7 @@
 
 #define FTP_LOGIN_NOT_ESCAPED   0
 
-#define CTRL_BUFLEN 1024
+#define CTRL_BUFLEN 16*1024
 static char cbuf[CTRL_BUFLEN];
 
 /*
@@ -1189,7 +1189,8 @@
 {
     if (!checkAuth(&request->header)) {
         /* create appropriate reply */
-        HttpReply *reply = ftpAuthRequired(request, ftpRealm());
+        SBuf realm(ftpRealm()); // local copy so SBuf wont disappear too early
+        HttpReply *reply = ftpAuthRequired(request, realm);
         entry->replaceHttpReply(reply);
         serverComplete();
         return;
@@ -1290,7 +1291,9 @@
 
 #if HAVE_AUTH_MODULE_BASIC
     /* add Authenticate header */
-    newrep->header.putAuth("Basic", ftpRealm());
+    // XXX: performance regression. c_str() may reallocate
+    SBuf realm(ftpRealm()); // local copy so SBuf wont disappear too early
+    newrep->header.putAuth("Basic", realm.c_str());
 #endif
 
     // add it to the store entry for response....
@@ -1298,18 +1301,19 @@
     serverComplete();
 }
 
-const char *
+SBuf
 Ftp::Gateway::ftpRealm()
 {
-    static char realm[8192];
+    SBuf realm;
 
     /* This request is not fully authenticated */
-    if (!request) {
-        snprintf(realm, 8192, "FTP %s unknown", user);
-    } else if (request->port == 21) {
-        snprintf(realm, 8192, "FTP %s %s", user, request->GetHost());
-    } else {
-        snprintf(realm, 8192, "FTP %s %s port %d", user, request->GetHost(), request->port);
+    realm.appendf("FTP %s ", user);
+    if (!request)
+        realm.append("unknown", 7);
+    else {
+        realm.append(request->GetHost());
+        if (request->port != 21)
+            realm.appendf(" port %d", request->port);
     }
     return realm;
 }
@@ -2673,13 +2677,14 @@
 }
 
 HttpReply *
-Ftp::Gateway::ftpAuthRequired(HttpRequest * request, const char *realm)
+Ftp::Gateway::ftpAuthRequired(HttpRequest * request, SBuf &realm)
 {
     ErrorState err(ERR_CACHE_ACCESS_DENIED, Http::scUnauthorized, request);
     HttpReply *newrep = err.BuildHttpReply();
 #if HAVE_AUTH_MODULE_BASIC
     /* add Authenticate header */
-    newrep->header.putAuth("Basic", realm);
+    // XXX: performance regression. c_str() may reallocate
+    newrep->header.putAuth("Basic", realm.c_str());
 #endif
     return newrep;
 }
diff -u -r -N squid-3.5.26/src/clients/FtpRelay.cc squid-3.5.27/src/clients/FtpRelay.cc
--- squid-3.5.26/src/clients/FtpRelay.cc	2017-06-02 01:49:00.000000000 +1200
+++ squid-3.5.27/src/clients/FtpRelay.cc	2017-08-20 06:48:49.000000000 +1200
@@ -210,9 +210,10 @@
                 mgr->unpinConnection(false);
                 ctrl.close();
             } else {
-                mgr->pinConnection(ctrl.conn, fwd->request,
-                                   ctrl.conn->getPeer(),
-                                   fwd->request->flags.connectionAuth);
+                CallJobHere1(9, 4, mgr,
+                             ConnStateData,
+                             notePinnedConnectionBecameIdle,
+                             ConnStateData::PinnedIdleContext(ctrl.conn, fwd->request));
                 ctrl.forget();
             }
         }
diff -u -r -N squid-3.5.26/src/clients/Makefile.in squid-3.5.27/src/clients/Makefile.in
--- squid-3.5.26/src/clients/Makefile.in	2017-06-02 01:54:22.000000000 +1200
+++ squid-3.5.27/src/clients/Makefile.in	2017-08-20 07:57:01.000000000 +1200
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff -u -r -N squid-3.5.26/src/client_side.cc squid-3.5.27/src/client_side.cc
--- squid-3.5.26/src/client_side.cc	2017-06-02 01:49:00.000000000 +1200
+++ squid-3.5.27/src/client_side.cc	2017-08-20 06:48:49.000000000 +1200
@@ -836,6 +836,7 @@
     assert(areAllContextsForThisConnection());
     freeAllContexts();
 
+    // XXX: Closing pinned conn is too harsh: The Client may want to continue!
     unpinConnection(true);
 
     if (Comm::IsConnOpen(clientConnection))
@@ -1559,6 +1560,13 @@
 
     debugs(33, 3, HERE << "ConnnStateData(" << conn->clientConnection << "), Context(" << clientConnection << ")");
     connIsFinished();
+    conn->kick();
+}
+
+void
+ConnStateData::kick()
+{
+    ConnStateData * conn = this; // XXX: Remove this diff minimization hack
 
     if (conn->pinning.pinned && !Comm::IsConnOpen(conn->pinning.serverConnection)) {
         debugs(33, 2, HERE << conn->clientConnection << " Connection was pinned but server side gone. Terminating client connection");
@@ -3240,6 +3248,13 @@
         if (in.buf.isEmpty())
             break;
 
+        // Prohibit concurrent requests when using a pinned to-server connection
+        // because our Client classes do not support request pipelining.
+        if (pinning.pinned && !pinning.readHandler) {
+            debugs(33, 3, clientConnection << " waits for busy " << pinning.serverConnection);
+            break;
+        }
+
         /* Limit the number of concurrent requests */
         if (concurrentRequestQueueFilled())
             break;
@@ -4434,22 +4449,19 @@
 }
 
 void
-ConnStateData::httpsPeeked(Comm::ConnectionPointer serverConnection)
+ConnStateData::httpsPeeked(PinnedIdleContext pic)
 {
     Must(sslServerBump != NULL);
+    Must(sslServerBump->request == pic.request);
+    Must(currentobject == NULL || currentobject->http == NULL || currentobject->http->request == pic.request.getRaw());
 
-    if (Comm::IsConnOpen(serverConnection)) {
-        pinConnection(serverConnection, NULL, NULL, false);
+    if (Comm::IsConnOpen(pic.connection)) {
+        notePinnedConnectionBecameIdle(pic);
 
         debugs(33, 5, HERE << "bumped HTTPS server: " << sslConnectHostOrIp);
-    } else {
+    } else
         debugs(33, 5, HERE << "Error while bumping: " << sslConnectHostOrIp);
 
-        //  copy error detail from bump-server-first request to CONNECT request
-        if (currentobject != NULL && currentobject->http != NULL && currentobject->http->request)
-            currentobject->http->request->detailError(sslServerBump->request->errType, sslServerBump->request->errDetail);
-    }
-
     getSslContextStart();
 }
 
@@ -4952,19 +4964,35 @@
 }
 
 void
-ConnStateData::pinConnection(const Comm::ConnectionPointer &pinServer, HttpRequest *request, CachePeer *aPeer, bool auth, bool monitor)
+ConnStateData::pinBusyConnection(const Comm::ConnectionPointer &pinServer, const HttpRequest::Pointer &request)
 {
-    if (!Comm::IsConnOpen(pinning.serverConnection) ||
-            pinning.serverConnection->fd != pinServer->fd)
-        pinNewConnection(pinServer, request, aPeer, auth);
+    pinConnection(pinServer, request);
+}
 
-    if (monitor)
-        startPinnedConnectionMonitoring();
+void
+ConnStateData::notePinnedConnectionBecameIdle(PinnedIdleContext pic)
+{
+    Must(pic.connection != NULL);
+    Must(pic.request != NULL);
+    pinConnection(pic.connection, pic.request);
+
+    // monitor pinned server connection for remote-end closures.
+    startPinnedConnectionMonitoring();
+
+    if (!currentobject)
+        kick(); // in case clientParseRequests() was blocked by a busy pic.connection
 }
 
+/// Forward future client requests using the given server connection.
 void
-ConnStateData::pinNewConnection(const Comm::ConnectionPointer &pinServer, HttpRequest *request, CachePeer *aPeer, bool auth)
+ConnStateData::pinConnection(const Comm::ConnectionPointer &pinServer, const HttpRequest::Pointer &request)
 {
+    if (Comm::IsConnOpen(pinning.serverConnection) &&
+            pinning.serverConnection->fd == pinServer->fd) {
+        debugs(33, 3, "already pinned" << pinServer);
+        return;
+    }
+
     unpinConnection(true); // closes pinned connection, if any, and resets fields
 
     pinning.serverConnection = pinServer;
@@ -4973,23 +5001,21 @@
 
     Must(pinning.serverConnection != NULL);
 
-    // when pinning an SSL bumped connection, the request may be NULL
     const char *pinnedHost = "[unknown]";
-    if (request) {
+    if (request != NULL) {
         pinning.host = xstrdup(request->GetHost());
         pinning.port = request->port;
         pinnedHost = pinning.host;
+        pinning.auth = request->flags.connectionAuth;
     } else {
         pinning.port = pinServer->remote.port();
     }
     pinning.pinned = true;
-    if (aPeer)
-        pinning.peer = cbdataReference(aPeer);
-    pinning.auth = auth;
+    pinning.peer = cbdataReference(pinServer->getPeer());
     char stmp[MAX_IPSTRLEN];
     char desc[FD_DESC_SZ];
     snprintf(desc, FD_DESC_SZ, "%s pinned connection for %s (%d)",
-             (auth || !aPeer) ? pinnedHost : aPeer->name,
+             (pinning.auth || !pinning.peer) ? pinnedHost : pinning.peer->name,
              clientConnection->remote.toUrl(stmp,MAX_IPSTRLEN),
              clientConnection->fd);
     fd_note(pinning.serverConnection->fd, desc);
@@ -5164,3 +5190,9 @@
      * connection has gone away */
 }
 
+std::ostream &
+operator <<(std::ostream &os, const ConnStateData::PinnedIdleContext &pic)
+{
+    return os << pic.connection << ", request=" << pic.request;
+}
+
diff -u -r -N squid-3.5.26/src/client_side.h squid-3.5.27/src/client_side.h
--- squid-3.5.26/src/client_side.h	2017-06-02 01:49:00.000000000 +1200
+++ squid-3.5.27/src/client_side.h	2017-08-20 06:48:49.000000000 +1200
@@ -26,6 +26,8 @@
 #include "ssl/support.h"
 #endif
 
+#include <iosfwd>
+
 class ConnStateData;
 class ClientHttpRequest;
 class clientStreamNode;
@@ -188,6 +190,11 @@
     /// Traffic parsing
     bool clientParseRequests();
     void readNextRequest();
+
+    // In v3.5, usually called via ClientSocketContext::keepaliveNextRequest().
+    /// try to make progress on a transaction or read more I/O
+    void kick();
+
     ClientSocketContext::Pointer getCurrentContext() const;
     void addContextToQueue(ClientSocketContext * context);
     int getConcurrentRequestCount() const;
@@ -287,9 +294,21 @@
     bool handleReadData();
     bool handleRequestBodyData();
 
-    /// Forward future client requests using the given server connection.
-    /// Optionally, monitor pinned server connection for remote-end closures.
-    void pinConnection(const Comm::ConnectionPointer &pinServerConn, HttpRequest *request, CachePeer *peer, bool auth, bool monitor = true);
+    /// parameters for the async notePinnedConnectionBecameIdle() call
+    class PinnedIdleContext
+    {
+    public:
+        PinnedIdleContext(const Comm::ConnectionPointer &conn, const HttpRequest::Pointer &req): connection(conn), request(req) {}
+
+        Comm::ConnectionPointer connection; ///< to-server connection to be pinned
+        HttpRequest::Pointer request; ///< to-server request that initiated serverConnection
+    };
+
+    /// Called when a pinned connection becomes available for forwarding the next request.
+    void notePinnedConnectionBecameIdle(PinnedIdleContext pic);
+    /// Forward future client requests using the given to-server connection.
+    /// The connection is still being used by the current client request.
+    void pinBusyConnection(const Comm::ConnectionPointer &pinServerConn, const HttpRequest::Pointer &request);
     /// Undo pinConnection() and, optionally, close the pinned connection.
     void unpinConnection(const bool andClose);
     /// Returns validated pinnned server connection (and stops its monitoring).
@@ -345,7 +364,7 @@
     /// generated
     void doPeekAndSpliceStep();
     /// called by FwdState when it is done bumping the server
-    void httpsPeeked(Comm::ConnectionPointer serverConnection);
+    void httpsPeeked(PinnedIdleContext pic);
 
     /// Start to create dynamic SSL_CTX for host or uses static port SSL context.
     void getSslContextStart();
@@ -449,7 +468,7 @@
     void clientAfterReadingRequests();
     bool concurrentRequestQueueFilled() const;
 
-    void pinNewConnection(const Comm::ConnectionPointer &pinServer, HttpRequest *request, CachePeer *aPeer, bool auth);
+    void pinConnection(const Comm::ConnectionPointer &pinServerConn, const HttpRequest::Pointer &request);
 
     /* PROXY protocol functionality */
     bool proxyProtocolValidateClient();
@@ -516,5 +535,7 @@
 void clientProcessRequest(ConnStateData *conn, HttpParser *hp, ClientSocketContext *context, const HttpRequestMethod& method, Http::ProtocolVersion http_ver);
 void clientPostHttpsAccept(ConnStateData *connState);
 
+std::ostream &operator <<(std::ostream &os, const ConnStateData::PinnedIdleContext &pic);
+
 #endif /* SQUID_CLIENTSIDE_H */
 
diff -u -r -N squid-3.5.26/src/client_side_reply.cc squid-3.5.27/src/client_side_reply.cc
--- squid-3.5.26/src/client_side_reply.cc	2017-06-02 01:49:00.000000000 +1200
+++ squid-3.5.27/src/client_side_reply.cc	2017-08-20 06:48:49.000000000 +1200
@@ -72,8 +72,8 @@
     HTTPMSGUNLOCK(reply);
 }
 
-clientReplyContext::clientReplyContext(ClientHttpRequest *clientContext) : http (cbdataReference(clientContext)), old_entry (NULL), old_sc(NULL), deleting(false),
-    collapsedRevalidation(crNone)
+clientReplyContext::clientReplyContext(ClientHttpRequest *clientContext) : http (cbdataReference(clientContext)), old_entry (NULL),
+    old_sc(NULL), old_lastmod(-1), deleting(false), collapsedRevalidation(crNone)
 {}
 
 /** Create an error in the store awaiting the client side to read it.
@@ -185,6 +185,8 @@
     debugs(88, 3, "clientReplyContext::saveState: saving store context");
     old_entry = http->storeEntry();
     old_sc = sc;
+    old_lastmod = http->request->lastmod;
+    old_etag = http->request->etag;
     old_reqsize = reqsize;
     tempBuffer.offset = reqofs;
     /* Prevent accessing the now saved entries */
@@ -204,9 +206,13 @@
     sc = old_sc;
     reqsize = old_reqsize;
     reqofs = tempBuffer.offset;
+    http->request->lastmod = old_lastmod;
+    http->request->etag = old_etag;
     /* Prevent accessed the old saved entries */
     old_entry = NULL;
     old_sc = NULL;
+    old_lastmod = -1;
+    old_etag.clean();
     old_reqsize = 0;
     tempBuffer.offset = 0;
 }
@@ -396,8 +402,8 @@
     if (result.flags.error && !EBIT_TEST(http->storeEntry()->flags, ENTRY_ABORTED))
         return;
 
-    if (collapsedRevalidation == crSlave && EBIT_TEST(http->storeEntry()->flags, KEY_PRIVATE)) {
-        debugs(88, 3, "CF slave hit private " << *http->storeEntry() << ". MISS");
+    if (collapsedRevalidation == crSlave && !http->storeEntry()->mayStartHitting()) {
+        debugs(88, 3, "CF slave hit private non-shareable " << *http->storeEntry() << ". MISS");
         // restore context to meet processMiss() expectations
         restoreState();
         http->logType = LOG_TCP_MISS;
@@ -530,7 +536,7 @@
     // The previously identified hit suddenly became unsharable!
     // This is common for collapsed forwarding slaves but might also
     // happen to regular hits because we are called asynchronously.
-    if (EBIT_TEST(e->flags, KEY_PRIVATE)) {
+    if (!e->mayStartHitting()) {
         debugs(88, 3, "unsharable " << *e << ". MISS");
         http->logType = LOG_TCP_MISS;
         processMiss();
diff -u -r -N squid-3.5.26/src/client_side_reply.h squid-3.5.27/src/client_side_reply.h
--- squid-3.5.26/src/client_side_reply.h	2017-06-02 01:49:00.000000000 +1200
+++ squid-3.5.27/src/client_side_reply.h	2017-08-20 06:48:49.000000000 +1200
@@ -130,7 +130,11 @@
     void sendNotModifiedOrPreconditionFailedError();
 
     StoreEntry *old_entry;
-    store_client *old_sc;   /* ... for entry to be validated */
+    /* ... for entry to be validated */
+    store_client *old_sc;
+    time_t old_lastmod;
+    String old_etag;
+
     bool deleting;
 
     typedef enum {
diff -u -r -N squid-3.5.26/src/comm/Makefile.in squid-3.5.27/src/comm/Makefile.in
--- squid-3.5.26/src/comm/Makefile.in	2017-06-02 01:54:24.000000000 +1200
+++ squid-3.5.27/src/comm/Makefile.in	2017-08-20 07:57:01.000000000 +1200
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff -u -r -N squid-3.5.26/src/DiskIO/DiskThreads/aiops.cc squid-3.5.27/src/DiskIO/DiskThreads/aiops.cc
--- squid-3.5.26/src/DiskIO/DiskThreads/aiops.cc	2017-06-02 01:49:00.000000000 +1200
+++ squid-3.5.27/src/DiskIO/DiskThreads/aiops.cc	2017-08-20 06:48:49.000000000 +1200
@@ -290,7 +290,7 @@
     /* Create threads and get them to sit in their wait loop */
     squidaio_thread_pool = memPoolCreate("aio_thread", sizeof(squidaio_thread_t));
 
-    assert(NUMTHREADS);
+    assert(NUMTHREADS != 0);
 
     for (i = 0; i < NUMTHREADS; ++i) {
         threadp = (squidaio_thread_t *)squidaio_thread_pool->alloc();
diff -u -r -N squid-3.5.26/src/esi/Makefile.in squid-3.5.27/src/esi/Makefile.in
--- squid-3.5.26/src/esi/Makefile.in	2017-06-02 01:54:25.000000000 +1200
+++ squid-3.5.27/src/esi/Makefile.in	2017-08-20 07:57:01.000000000 +1200
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff -u -r -N squid-3.5.26/src/eui/Makefile.in squid-3.5.27/src/eui/Makefile.in
--- squid-3.5.26/src/eui/Makefile.in	2017-06-02 01:54:26.000000000 +1200
+++ squid-3.5.27/src/eui/Makefile.in	2017-08-20 07:57:01.000000000 +1200
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff -u -r -N squid-3.5.26/src/fde.cc squid-3.5.27/src/fde.cc
--- squid-3.5.26/src/fde.cc	2017-06-02 01:49:00.000000000 +1200
+++ squid-3.5.27/src/fde.cc	2017-08-20 06:48:49.000000000 +1200
@@ -85,15 +85,15 @@
 char const *
 fde::remoteAddr() const
 {
-    LOCAL_ARRAY(char, buf, MAX_IPSTRLEN );
+    static char buf[MAX_IPSTRLEN+7]; // 7 = length of ':port' strings
 
     if (type != FD_SOCKET)
         return null_string;
 
     if ( *ipaddr )
-        snprintf( buf, MAX_IPSTRLEN, "%s:%d", ipaddr, (int)remote_port);
+        snprintf(buf, sizeof(buf), "%s:%u", ipaddr, remote_port);
     else
-        local_addr.toUrl(buf,MAX_IPSTRLEN); // toHostStr does not include port.
+        local_addr.toUrl(buf, sizeof(buf)); // toHostStr does not include port.
 
     return buf;
 }
diff -u -r -N squid-3.5.26/src/format/Makefile.in squid-3.5.27/src/format/Makefile.in
--- squid-3.5.26/src/format/Makefile.in	2017-06-02 01:54:28.000000000 +1200
+++ squid-3.5.27/src/format/Makefile.in	2017-08-20 07:57:01.000000000 +1200
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff -u -r -N squid-3.5.26/src/fs/Makefile.in squid-3.5.27/src/fs/Makefile.in
--- squid-3.5.26/src/fs/Makefile.in	2017-06-02 01:54:29.000000000 +1200
+++ squid-3.5.27/src/fs/Makefile.in	2017-08-20 07:57:01.000000000 +1200
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff -u -r -N squid-3.5.26/src/fs/rock/RockSwapDir.cc squid-3.5.27/src/fs/rock/RockSwapDir.cc
--- squid-3.5.26/src/fs/rock/RockSwapDir.cc	2017-06-02 01:49:00.000000000 +1200
+++ squid-3.5.27/src/fs/rock/RockSwapDir.cc	2017-08-20 06:48:49.000000000 +1200
@@ -149,7 +149,7 @@
     e.ping_status = PING_NONE;
 
     EBIT_CLR(e.flags, RELEASE_REQUEST);
-    EBIT_CLR(e.flags, KEY_PRIVATE);
+    e.clearPrivate();
     EBIT_SET(e.flags, ENTRY_VALIDATED);
 
     e.swap_dirn = index;
diff -u -r -N squid-3.5.26/src/fs/ufs/RebuildState.cc squid-3.5.27/src/fs/ufs/RebuildState.cc
--- squid-3.5.26/src/fs/ufs/RebuildState.cc	2017-06-02 01:49:00.000000000 +1200
+++ squid-3.5.27/src/fs/ufs/RebuildState.cc	2017-08-20 06:48:49.000000000 +1200
@@ -444,7 +444,7 @@
         }
 
         if (0 == in_dir) {  /* we need to read in a new directory */
-            snprintf(fullpath, MAXPATHLEN, "%s/%02X/%02X",
+            snprintf(fullpath, sizeof(fullpath), "%s/%02X/%02X",
                      sd->path,
                      curlvl1, curlvl2);
 
@@ -489,7 +489,7 @@
                 continue;
             }
 
-            snprintf(fullfilename, MAXPATHLEN, "%s/%s",
+            snprintf(fullfilename, sizeof(fullfilename), "%s/%s",
                      fullpath, entry->d_name);
             debugs(47, 3, HERE << "Opening " << fullfilename);
             fd = file_open(fullfilename, O_RDONLY | O_BINARY);
diff -u -r -N squid-3.5.26/src/fs/ufs/RebuildState.h squid-3.5.27/src/fs/ufs/RebuildState.h
--- squid-3.5.26/src/fs/ufs/RebuildState.h	2017-06-02 01:49:00.000000000 +1200
+++ squid-3.5.27/src/fs/ufs/RebuildState.h	2017-08-20 06:48:49.000000000 +1200
@@ -54,7 +54,7 @@
     dirent_t *entry;
     DIR *td;
     char fullpath[MAXPATHLEN];
-    char fullfilename[MAXPATHLEN];
+    char fullfilename[MAXPATHLEN*2];
 
     StoreRebuildData counts;
 
diff -u -r -N squid-3.5.26/src/fs/ufs/UFSSwapDir.cc squid-3.5.27/src/fs/ufs/UFSSwapDir.cc
--- squid-3.5.26/src/fs/ufs/UFSSwapDir.cc	2017-06-02 01:49:00.000000000 +1200
+++ squid-3.5.27/src/fs/ufs/UFSSwapDir.cc	2017-08-20 06:48:49.000000000 +1200
@@ -809,7 +809,7 @@
     e->refcount = refcount;
     e->flags = newFlags;
     EBIT_CLR(e->flags, RELEASE_REQUEST);
-    EBIT_CLR(e->flags, KEY_PRIVATE);
+    e->clearPrivate();
     e->ping_status = PING_NONE;
     EBIT_CLR(e->flags, ENTRY_VALIDATED);
     mapBitSet(e->swap_filen);
diff -u -r -N squid-3.5.26/src/ftp/Makefile.in squid-3.5.27/src/ftp/Makefile.in
--- squid-3.5.26/src/ftp/Makefile.in	2017-06-02 01:54:31.000000000 +1200
+++ squid-3.5.27/src/ftp/Makefile.in	2017-08-20 07:57:01.000000000 +1200
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff -u -r -N squid-3.5.26/src/FwdState.cc squid-3.5.27/src/FwdState.cc
--- squid-3.5.26/src/FwdState.cc	2017-06-02 01:49:00.000000000 +1200
+++ squid-3.5.27/src/FwdState.cc	2017-08-20 06:48:49.000000000 +1200
@@ -246,7 +246,7 @@
 #if USE_OPENSSL
             if (request->flags.sslPeek && request->clientConnectionManager.valid()) {
                 CallJobHere1(17, 4, request->clientConnectionManager, ConnStateData,
-                             ConnStateData::httpsPeeked, Comm::ConnectionPointer(NULL));
+                             ConnStateData::httpsPeeked, ConnStateData::PinnedIdleContext(Comm::ConnectionPointer(nullptr), request));
             }
 #endif
         } else {
@@ -952,7 +952,7 @@
 #if USE_OPENSSL
     if (request->flags.sslPeek) {
         CallJobHere1(17, 4, request->clientConnectionManager, ConnStateData,
-                     ConnStateData::httpsPeeked, serverConnection());
+                     ConnStateData::httpsPeeked, ConnStateData::PinnedIdleContext(serverConnection(), request));
         unregister(serverConn); // async call owns it now
         complete(); // destroys us
         return;
diff -u -r -N squid-3.5.26/src/gopher.cc squid-3.5.27/src/gopher.cc
--- squid-3.5.26/src/gopher.cc	2017-06-02 01:49:00.000000000 +1200
+++ squid-3.5.27/src/gopher.cc	2017-08-20 06:48:49.000000000 +1200
@@ -820,7 +820,7 @@
  * This will be called when request write is complete. Schedule read of reply.
  */
 static void
-gopherSendComplete(const Comm::ConnectionPointer &conn, char *buf, size_t size, Comm::Flag errflag, int xerrno, void *data)
+gopherSendComplete(const Comm::ConnectionPointer &conn, char *, size_t size, Comm::Flag errflag, int xerrno, void *data)
 {
     GopherStateData *gopherState = (GopherStateData *) data;
     StoreEntry *entry = gopherState->entry;
@@ -840,10 +840,6 @@
         err->url = xstrdup(entry->url());
         gopherState->fwd->fail(err);
         gopherState->serverConn->close();
-
-        if (buf)
-            memFree(buf, MEM_4K_BUF);   /* Allocated by gopherSendRequest. */
-
         return;
     }
 
@@ -885,9 +881,6 @@
     AsyncCall::Pointer call =  commCbCall(5,5, "gopherReadReply",
                                           CommIoCbPtrFun(gopherReadReply, gopherState));
     entry->delayAwareRead(conn, gopherState->replybuf, BUFSIZ, call);
-
-    if (buf)
-        memFree(buf, MEM_4K_BUF);   /* Allocated by gopherSendRequest. */
 }
 
 /**
@@ -898,32 +891,31 @@
 gopherSendRequest(int fd, void *data)
 {
     GopherStateData *gopherState = (GopherStateData *)data;
-    char *buf = (char *)memAllocate(MEM_4K_BUF);
+    MemBuf mb;
+    mb.init();
 
     if (gopherState->type_id == GOPHER_CSO) {
         const char *t = strchr(gopherState->request, '?');
 
-        if (t != NULL)
+        if (t)
             ++t;        /* skip the ? */
         else
             t = "";
 
-        snprintf(buf, 4096, "query %s\r\nquit\r\n", t);
-    } else if (gopherState->type_id == GOPHER_INDEX) {
-        char *t = strchr(gopherState->request, '?');
-
-        if (t != NULL)
-            *t = '\t';
-
-        snprintf(buf, 4096, "%s\r\n", gopherState->request);
+        mb.Printf("query %s\r\nquit", t);
     } else {
-        snprintf(buf, 4096, "%s\r\n", gopherState->request);
+        if (gopherState->type_id == GOPHER_INDEX) {
+            if (char *t = strchr(gopherState->request, '?'))
+                *t = '\t';
+        }
+        mb.append(gopherState->request, strlen(gopherState->request));
     }
+    mb.append("\r\n", 2);
 
-    debugs(10, 5, HERE << gopherState->serverConn);
+    debugs(10, 5, gopherState->serverConn);
     AsyncCall::Pointer call = commCbCall(5,5, "gopherSendComplete",
                                          CommIoCbPtrFun(gopherSendComplete, gopherState));
-    Comm::Write(gopherState->serverConn, buf, strlen(buf), call, NULL);
+    Comm::Write(gopherState->serverConn, &mb, call);
 
     gopherState->entry->makePublic();
 }
diff -u -r -N squid-3.5.26/src/helper/Makefile.in squid-3.5.27/src/helper/Makefile.in
--- squid-3.5.26/src/helper/Makefile.in	2017-06-02 01:54:32.000000000 +1200
+++ squid-3.5.27/src/helper/Makefile.in	2017-08-20 07:57:01.000000000 +1200
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff -u -r -N squid-3.5.26/src/http/Makefile.in squid-3.5.27/src/http/Makefile.in
--- squid-3.5.26/src/http/Makefile.in	2017-06-02 01:54:33.000000000 +1200
+++ squid-3.5.27/src/http/Makefile.in	2017-08-20 07:57:01.000000000 +1200
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff -u -r -N squid-3.5.26/src/http.cc squid-3.5.27/src/http.cc
--- squid-3.5.26/src/http.cc	2017-06-02 01:49:00.000000000 +1200
+++ squid-3.5.27/src/http.cc	2017-08-20 06:48:49.000000000 +1200
@@ -290,7 +290,9 @@
                     (Config.onoff.surrogate_is_remote
                      && sctusable->noStoreRemote())) {
                 surrogateNoStore = true;
-                entry->makePrivate();
+                // Be conservative for now and make it non-shareable because
+                // there is no enough information here to make the decision.
+                entry->makePrivate(false);
             }
 
             /* The HttpHeader logic cannot tell if the header it's parsing is a reply to an
@@ -315,12 +317,13 @@
     }
 }
 
-int
-HttpStateData::cacheableReply()
+HttpStateData::ReuseDecision::Answers
+HttpStateData::reusableReply(HttpStateData::ReuseDecision &decision)
 {
     HttpReply const *rep = finalReply();
     HttpHeader const *hdr = &rep->header;
     const char *v;
+
 #if USE_HTTP_VIOLATIONS
 
     const RefreshPattern *R = NULL;
@@ -337,24 +340,19 @@
 #define REFRESH_OVERRIDE(flag) 0
 #endif
 
-    if (EBIT_TEST(entry->flags, RELEASE_REQUEST)) {
-        debugs(22, 3, "NO because " << *entry << " has been released.");
-        return 0;
-    }
+    if (EBIT_TEST(entry->flags, RELEASE_REQUEST))
+        return decision.make(ReuseDecision::reuseNot, "the entry has been released");
 
     // RFC 7234 section 4: a cache MUST use the most recent response
     // (as determined by the Date header field)
-    if (sawDateGoBack) {
-        debugs(22, 3, "NO because " << *entry << " has an older date header.");
-        return 0;
-    }
+    // TODO: whether such responses could be shareable?
+    if (sawDateGoBack)
+        return decision.make(ReuseDecision::reuseNot, "the response has an older date header");
 
     // Check for Surrogate/1.0 protocol conditions
     // NP: reverse-proxy traffic our parent server has instructed us never to cache
-    if (surrogateNoStore) {
-        debugs(22, 3, HERE << "NO because Surrogate-Control:no-store");
-        return 0;
-    }
+    if (surrogateNoStore)
+        return decision.make(ReuseDecision::reuseNot, "Surrogate-Control:no-store");
 
     // RFC 2616: HTTP/1.1 Cache-Control conditions
     if (!ignoreCacheControl) {
@@ -363,11 +361,10 @@
         // for now we are not reliably doing that so we waste CPU re-checking request CC
 
         // RFC 2616 section 14.9.2 - MUST NOT cache any response with request CC:no-store
-        if (request && request->cache_control && request->cache_control->noStore() &&
-                !REFRESH_OVERRIDE(ignore_no_store)) {
-            debugs(22, 3, HERE << "NO because client request Cache-Control:no-store");
-            return 0;
-        }
+        if (request && request->cache_control && request->cache_control->hasNoStore() &&
+                !REFRESH_OVERRIDE(ignore_no_store))
+            return decision.make(ReuseDecision::reuseNot,
+                                 "client request Cache-Control:no-store");
 
         // NP: request CC:no-cache only means cache READ is forbidden. STORE is permitted.
         if (rep->cache_control && rep->cache_control->hasNoCache() && rep->cache_control->noCache().size() > 0) {
@@ -376,19 +373,18 @@
              * successfully (ie, must revalidate AND these headers are prohibited on stale replies).
              * That is a bit tricky for squid right now so we avoid caching entirely.
              */
-            debugs(22, 3, HERE << "NO because server reply Cache-Control:no-cache has parameters");
-            return 0;
+            return decision.make(ReuseDecision::reuseNot,
+                                 "server reply Cache-Control:no-cache has parameters");
         }
 
         // NP: request CC:private is undefined. We ignore.
         // NP: other request CC flags are limiters on HIT/MISS. We don't care about here.
 
         // RFC 2616 section 14.9.2 - MUST NOT cache any response with CC:no-store
-        if (rep->cache_control && rep->cache_control->noStore() &&
-                !REFRESH_OVERRIDE(ignore_no_store)) {
-            debugs(22, 3, HERE << "NO because server reply Cache-Control:no-store");
-            return 0;
-        }
+        if (rep->cache_control && rep->cache_control->hasNoStore() &&
+                !REFRESH_OVERRIDE(ignore_no_store))
+            return decision.make(ReuseDecision::reuseNot,
+                                 "server reply Cache-Control:no-store");
 
         // RFC 2616 section 14.9.1 - MUST NOT cache any response with CC:private in a shared cache like Squid.
         // CC:private overrides CC:public when both are present in a response.
@@ -401,27 +397,25 @@
              * successfully (ie, must revalidate AND these headers are prohibited on stale replies).
              * That is a bit tricky for squid right now so we avoid caching entirely.
              */
-            debugs(22, 3, HERE << "NO because server reply Cache-Control:private");
-            return 0;
+            return decision.make(ReuseDecision::reuseNot,
+                                 "server reply Cache-Control:private");
         }
     }
 
     // RFC 2068, sec 14.9.4 - MUST NOT cache any response with Authentication UNLESS certain CC controls are present
     // allow HTTP violations to IGNORE those controls (ie re-block caching Auth)
     if (request && (request->flags.auth || request->flags.authSent) && !REFRESH_OVERRIDE(ignore_auth)) {
-        if (!rep->cache_control) {
-            debugs(22, 3, HERE << "NO because Authenticated and server reply missing Cache-Control");
-            return 0;
-        }
-
-        if (ignoreCacheControl) {
-            debugs(22, 3, HERE << "NO because Authenticated and ignoring Cache-Control");
-            return 0;
-        }
+        if (!rep->cache_control)
+            return decision.make(ReuseDecision::reuseNot,
+                                 "authenticated and server reply missing Cache-Control");
+
+        if (ignoreCacheControl)
+            return decision.make(ReuseDecision::reuseNot,
+                                 "authenticated and ignoring Cache-Control");
 
         bool mayStore = false;
         // HTTPbis pt6 section 3.2: a response CC:public is present
-        if (rep->cache_control->Public()) {
+        if (rep->cache_control->hasPublic()) {
             debugs(22, 3, HERE << "Authenticated but server reply Cache-Control:public");
             mayStore = true;
 
@@ -441,15 +435,13 @@
 #endif
 
             // HTTPbis pt6 section 3.2: a response CC:s-maxage is present
-        } else if (rep->cache_control->sMaxAge()) {
+        } else if (rep->cache_control->hasSMaxAge()) {
             debugs(22, 3, HERE << "Authenticated but server reply Cache-Control:s-maxage");
             mayStore = true;
         }
 
-        if (!mayStore) {
-            debugs(22, 3, HERE << "NO because Authenticated transaction");
-            return 0;
-        }
+        if (!mayStore)
+            return decision.make(ReuseDecision::reuseNot, "authenticated transaction");
 
         // NP: response CC:no-cache is equivalent to CC:must-revalidate,max-age=0. We MAY cache, and do so.
         // NP: other request CC flags are limiters on HIT/MISS/REFRESH. We don't care about here.
@@ -460,12 +452,26 @@
      * probably should not be cachable
      */
     if ((v = hdr->getStr(HDR_CONTENT_TYPE)))
-        if (!strncasecmp(v, "multipart/x-mixed-replace", 25)) {
-            debugs(22, 3, HERE << "NO because Content-Type:multipart/x-mixed-replace");
-            return 0;
-        }
+        if (!strncasecmp(v, "multipart/x-mixed-replace", 25))
+            return decision.make(ReuseDecision::reuseNot, "Content-Type:multipart/x-mixed-replace");
+
+    // TODO: if possible, provide more specific message for each status code
+    static const char *shareableError = "shareable error status code";
+    static const char *nonShareableError = "non-shareable error status code";
+    ReuseDecision::Answers statusAnswer = ReuseDecision::reuseNot;
+    const char *statusReason = nonShareableError;
 
     switch (rep->sline.status()) {
+
+    /* There are several situations when a non-cacheable response may be
+     * still shareable (e.g., among collapsed clients). We assume that these
+     * are 3xx and 5xx responses, indicating server problems and some of
+     * 4xx responses, common for all clients with a given cache key (e.g.,
+     * 404 Not Found or 414 URI Too Long). On the other hand, we should not
+     * share non-cacheable client-specific errors, such as 400 Bad Request
+     * or 406 Not Acceptable.
+     */
+
     /* Responses that are cacheable */
 
     case Http::scOkay:
@@ -482,112 +488,90 @@
          * Don't cache objects that need to be refreshed on next request,
          * unless we know how to refresh it.
          */
+        if (refreshIsCachable(entry) || REFRESH_OVERRIDE(store_stale))
+            decision.make(ReuseDecision::cachePositively, "refresh check returned cacheable");
+        else
+            decision.make(ReuseDecision::doNotCacheButShare, "refresh check returned non-cacheable");
 
-        if (!refreshIsCachable(entry) && !REFRESH_OVERRIDE(store_stale)) {
-            debugs(22, 3, "NO because refreshIsCachable() returned non-cacheable..");
-            return 0;
-        } else {
-            debugs(22, 3, HERE << "YES because HTTP status " << rep->sline.status());
-            return 1;
-        }
-        /* NOTREACHED */
         break;
 
     /* Responses that only are cacheable if the server says so */
 
     case Http::scFound:
     case Http::scTemporaryRedirect:
-        if (rep->date <= 0) {
-            debugs(22, 3, HERE << "NO because HTTP status " << rep->sline.status() << " and Date missing/invalid");
-            return 0;
-        }
-        if (rep->expires > rep->date) {
-            debugs(22, 3, HERE << "YES because HTTP status " << rep->sline.status() << " and Expires > Date");
-            return 1;
-        } else {
-            debugs(22, 3, HERE << "NO because HTTP status " << rep->sline.status() << " and Expires <= Date");
-            return 0;
-        }
-        /* NOTREACHED */
-        break;
 
-    /* Errors can be negatively cached */
+        if (rep->date <= 0)
+            decision.make(ReuseDecision::doNotCacheButShare, "Date is missing/invalid");
+        else if (rep->expires > rep->date)
+            decision.make(ReuseDecision::cachePositively, "Expires > Date");
+        else
+            decision.make(ReuseDecision::doNotCacheButShare, "Expires <= Date");
+        break;
 
+    /* These responses can be negatively cached. Most can also be shared. */
     case Http::scNoContent:
-
     case Http::scUseProxy:
-
-    case Http::scBadRequest:
-
     case Http::scForbidden:
-
     case Http::scNotFound:
-
     case Http::scMethodNotAllowed:
-
     case Http::scUriTooLong:
-
     case Http::scInternalServerError:
-
     case Http::scNotImplemented:
-
     case Http::scBadGateway:
-
     case Http::scServiceUnavailable:
-
     case Http::scGatewayTimeout:
     case Http::scMisdirectedRequest:
+        statusAnswer = ReuseDecision::doNotCacheButShare;
+        statusReason = shareableError;
+    // fall through to the actual decision making below
 
-        debugs(22, 3, "MAYBE because HTTP status " << rep->sline.status());
-        return -1;
+    case Http::scBadRequest: // no sharing; perhaps the server did not like something specific to this request
 
-        /* NOTREACHED */
+#if USE_HTTP_VIOLATIONS
+        if (Config.negativeTtl > 0)
+            decision.make(ReuseDecision::cacheNegatively, "Config.negativeTtl > 0");
+        else
+#endif
+            decision.make(statusAnswer, statusReason);
         break;
 
-    /* Some responses can never be cached */
-
-    case Http::scPartialContent:    /* Not yet supported */
-
+    /* these responses can never be cached, some
+       of them can be shared though */
     case Http::scSeeOther:
-
     case Http::scNotModified:
-
     case Http::scUnauthorized:
-
     case Http::scProxyAuthenticationRequired:
-
-    case Http::scInvalidHeader: /* Squid header parsing error */
-
-    case Http::scHeaderTooLarge:
-
     case Http::scPaymentRequired:
+    case Http::scInsufficientStorage:
+        // TODO: use more specific reason for non-error status codes
+        decision.make(ReuseDecision::doNotCacheButShare, shareableError);
+        break;
+
+    case Http::scPartialContent: /* Not yet supported. TODO: make shareable for suitable ranges */
     case Http::scNotAcceptable:
-    case Http::scRequestTimeout:
-    case Http::scConflict:
+    case Http::scRequestTimeout: // TODO: is this shareable?
+    case Http::scConflict: // TODO: is this shareable?
     case Http::scLengthRequired:
     case Http::scPreconditionFailed:
     case Http::scPayloadTooLarge:
     case Http::scUnsupportedMediaType:
     case Http::scUnprocessableEntity:
-    case Http::scLocked:
+    case Http::scLocked: // TODO: is this shareable?
     case Http::scFailedDependency:
-    case Http::scInsufficientStorage:
     case Http::scRequestedRangeNotSatisfied:
     case Http::scExpectationFailed:
-
-        debugs(22, 3, HERE << "NO because HTTP status " << rep->sline.status());
-        return 0;
-
+    case Http::scInvalidHeader: /* Squid header parsing error */
+    case Http::scHeaderTooLarge:
+        decision.make(ReuseDecision::reuseNot, nonShareableError);
+        break;
     default:
         /* RFC 2616 section 6.1.1: an unrecognized response MUST NOT be cached. */
-        debugs (11, 3, HERE << "NO because unknown HTTP status code " << rep->sline.status());
-        return 0;
 
-        /* NOTREACHED */
+        decision.make(ReuseDecision::reuseNot, "unknown status code");
         break;
     }
 
-    /* NOTREACHED */
+    return decision.answer;
 }
 
 /// assemble a variant key (vary-mark) from the given Vary header and HTTP request
@@ -898,11 +882,12 @@
 
     Ctx ctx = ctx_enter(entry->mem_obj->urlXXX());
     HttpReply *rep = finalReply();
+    const Http::StatusCode statusCode = rep->sline.status();
 
     entry->timestampsSet();
 
     /* Check if object is cacheable or not based on reply code */
-    debugs(11, 3, "HTTP CODE: " << rep->sline.status());
+    debugs(11, 3, "HTTP CODE: " << statusCode);
 
     if (const StoreEntry *oldEntry = findPreviouslyCachedEntry(entry))
         sawDateGoBack = rep->olderThan(oldEntry->getReply());
@@ -919,7 +904,9 @@
         const SBuf vary(httpMakeVaryMark(request, rep));
 
         if (vary.isEmpty()) {
-            entry->makePrivate();
+            // TODO: check whether such responses are shareable.
+            // Do not share for now.
+            entry->makePrivate(false);
             if (!fwd->reforwardableStatus(rep->sline.status()))
                 EBIT_CLR(entry->flags, ENTRY_FWD_HDR_WAIT);
             varyFailure = true;
@@ -942,30 +929,31 @@
         if (!fwd->reforwardableStatus(rep->sline.status()))
             EBIT_CLR(entry->flags, ENTRY_FWD_HDR_WAIT);
 
-        switch (cacheableReply()) {
+        ReuseDecision decision(entry, statusCode);
 
-        case 1:
-            entry->makePublic();
+        switch (reusableReply(decision)) {
+
+        case ReuseDecision::reuseNot:
+            entry->makePrivate(false);
             break;
 
-        case 0:
-            entry->makePrivate();
+        case ReuseDecision::cachePositively:
+            entry->makePublic();
             break;
 
-        case -1:
+        case ReuseDecision::cacheNegatively:
+            entry->cacheNegatively();
+            break;
 
-#if USE_HTTP_VIOLATIONS
-            if (Config.negativeTtl > 0)
-                entry->cacheNegatively();
-            else
-#endif
-                entry->makePrivate();
+        case ReuseDecision::doNotCacheButShare:
+            entry->makePrivate(true);
             break;
 
         default:
             assert(0);
             break;
         }
+        debugs(11, 3, "decided: " << decision);
     }
 
     if (!ignoreCacheControl) {
@@ -1395,9 +1383,6 @@
 void
 HttpStateData::processReplyBody()
 {
-    Ip::Address client_addr;
-    bool ispinned = false;
-
     if (!flags.headers_parsed) {
         flags.do_next_read = true;
         maybeReadVirginBody();
@@ -1447,35 +1432,49 @@
         }
         break;
 
-        case COMPLETE_PERSISTENT_MSG:
+        case COMPLETE_PERSISTENT_MSG: {
             debugs(11, 5, "processReplyBody: COMPLETE_PERSISTENT_MSG from " << serverConnection);
-            /* yes we have to clear all these! */
+
+            // TODO: Remove serverConnectionSaved but preserve exception safety.
+
             commUnsetConnTimeout(serverConnection);
             flags.do_next_read = false;
 
             comm_remove_close_handler(serverConnection->fd, closeHandler);
             closeHandler = NULL;
-            fwd->unregister(serverConnection);
 
+            Ip::Address client_addr; // XXX: Remove as unused. Why was it added?
             if (request->flags.spoofClientIp)
                 client_addr = request->client_addr;
 
+            Comm::ConnectionPointer serverConnectionSaved = serverConnection;
+            fwd->unregister(serverConnection);
+            serverConnection = NULL;
+
+            bool ispinned = false; // TODO: Rename to isOrShouldBePinned
             if (request->flags.pinned) {
                 ispinned = true;
             } else if (request->flags.connectionAuth && request->flags.authSent) {
                 ispinned = true;
             }
 
-            if (ispinned && request->clientConnectionManager.valid()) {
-                request->clientConnectionManager->pinConnection(serverConnection, request, _peer,
-                        (request->flags.connectionAuth));
+            if (ispinned) {
+                if (request->clientConnectionManager.valid()) {
+                    CallJobHere1(11, 4, request->clientConnectionManager,
+                                 ConnStateData,
+                                 notePinnedConnectionBecameIdle,
+                                 ConnStateData::PinnedIdleContext(serverConnectionSaved, request));
+                } else {
+                    // must not pool/share ispinned connections, even orphaned ones
+                    serverConnectionSaved->close();
+                }
             } else {
-                fwd->pconnPush(serverConnection, request->GetHost());
+                fwd->pconnPush(serverConnectionSaved, request->GetHost());
             }
 
-            serverConnection = NULL;
             serverComplete();
             return;
+        }
 
         case COMPLETE_NONPERSISTENT_MSG:
             debugs(11, 5, "processReplyBody: COMPLETE_NONPERSISTENT_MSG from " << serverConnection);
@@ -2429,3 +2428,29 @@
     mustStop(reason);
 }
 
+HttpStateData::ReuseDecision::ReuseDecision(const StoreEntry *e, const Http::StatusCode code)
+    : answer(HttpStateData::ReuseDecision::reuseNot), reason(nullptr), entry(e), statusCode(code) {}
+
+HttpStateData::ReuseDecision::Answers
+HttpStateData::ReuseDecision::make(const HttpStateData::ReuseDecision::Answers ans, const char *why)
+{
+    answer = ans;
+    reason = why;
+    return answer;
+}
+
+std::ostream &operator <<(std::ostream &os, const HttpStateData::ReuseDecision &d)
+{
+    static const char *ReuseMessages[] = {
+        "do not cache and do not share", // reuseNot
+        "cache positively and share", // cachePositively
+        "cache negatively and share", // cacheNegatively
+        "do not cache but share" // doNotCacheButShare
+    };
+
+    assert(d.answer >= HttpStateData::ReuseDecision::reuseNot &&
+           d.answer <= HttpStateData::ReuseDecision::doNotCacheButShare);
+    return os << ReuseMessages[d.answer] << " because " << d.reason <<
+           "; HTTP status " << d.statusCode << " " << *(d.entry);
+}
+
diff -u -r -N squid-3.5.26/src/http.h squid-3.5.27/src/http.h
--- squid-3.5.26/src/http.h	2017-06-02 01:49:00.000000000 +1200
+++ squid-3.5.27/src/http.h	2017-08-20 06:48:49.000000000 +1200
@@ -22,6 +22,23 @@
 {
 
 public:
+
+    /// assists in making and relaying entry caching/sharing decision
+    class ReuseDecision
+    {
+    public:
+        enum Answers { reuseNot = 0, cachePositively, cacheNegatively, doNotCacheButShare };
+
+        ReuseDecision(const StoreEntry *e, const Http::StatusCode code);
+        /// stores the corresponding decision
+        Answers make(const Answers ans, const char *why);
+
+        Answers answer; ///< the decision id
+        const char *reason; ///< the decision reason
+        const StoreEntry *entry; ///< entry for debugging
+        const Http::StatusCode statusCode; ///< HTTP status for debugging
+    };
+
     HttpStateData(FwdState *);
     ~HttpStateData();
 
@@ -39,8 +56,8 @@
     void readReply(const CommIoCbParams &io);
     virtual void maybeReadVirginBody(); // read response data from the network
 
-    // Determine whether the response is a cacheable representation
-    int cacheableReply();
+    // Checks whether the response is cacheable/shareable.
+    ReuseDecision::Answers reusableReply(ReuseDecision &decision);
 
     CachePeer *_peer;       /* CachePeer request made to */
     int eof;            /* reached end-of-object? */
@@ -119,6 +136,8 @@
     CBDATA_CLASS2(HttpStateData);
 };
 
+std::ostream &operator <<(std::ostream &os, const HttpStateData::ReuseDecision &d);
+
 int httpCachable(const HttpRequestMethod&);
 void httpStart(FwdState *);
 SBuf httpMakeVaryMark(HttpRequest * request, HttpReply const * reply);
diff -u -r -N squid-3.5.26/src/HttpHdrCc.cc squid-3.5.27/src/HttpHdrCc.cc
--- squid-3.5.26/src/HttpHdrCc.cc	2017-06-02 01:49:00.000000000 +1200
+++ squid-3.5.27/src/HttpHdrCc.cc	2017-08-20 06:48:49.000000000 +1200
@@ -262,8 +262,8 @@
             case CC_PUBLIC:
                 break;
             case CC_PRIVATE:
-                if (Private().size())
-                    packerPrintf(p, "=\"" SQUIDSTRINGPH "\"", SQUIDSTRINGPRINT(Private()));
+                if (private_.size())
+                    packerPrintf(p, "=\"" SQUIDSTRINGPH "\"", SQUIDSTRINGPRINT(private_));
                 break;
 
             case CC_NO_CACHE:
diff -u -r -N squid-3.5.26/src/icmp/Makefile.am squid-3.5.27/src/icmp/Makefile.am
--- squid-3.5.26/src/icmp/Makefile.am	2017-06-02 01:49:00.000000000 +1200
+++ squid-3.5.27/src/icmp/Makefile.am	2017-08-20 06:48:49.000000000 +1200
@@ -59,7 +59,8 @@
 pinger_LDFLAGS = $(LIBADD_DL)
 pinger_LDADD=\
 	libicmp-core.la \
-	../ip/libip.la \
+	$(top_builddir)/src/ip/libip.la \
+	$(top_builddir)/src/base/libbase.la \
 	$(COMPAT_LIB) \
 	$(XTRA_LIBS)
 
diff -u -r -N squid-3.5.26/src/icmp/Makefile.in squid-3.5.27/src/icmp/Makefile.in
--- squid-3.5.26/src/icmp/Makefile.in	2017-06-02 01:54:35.000000000 +1200
+++ squid-3.5.27/src/icmp/Makefile.in	2017-08-20 07:57:01.000000000 +1200
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -184,8 +184,9 @@
 am__DEPENDENCIES_2 = $(top_builddir)/compat/libcompat-squid.la \
 	$(am__DEPENDENCIES_1)
 am__DEPENDENCIES_3 =
-pinger_DEPENDENCIES = libicmp-core.la ../ip/libip.la \
-	$(am__DEPENDENCIES_2) $(am__DEPENDENCIES_3)
+pinger_DEPENDENCIES = libicmp-core.la $(top_builddir)/src/ip/libip.la \
+	$(top_builddir)/src/base/libbase.la $(am__DEPENDENCIES_2) \
+	$(am__DEPENDENCIES_3)
 pinger_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \
 	$(CXXFLAGS) $(pinger_LDFLAGS) $(LDFLAGS) -o $@
@@ -762,7 +763,8 @@
 pinger_LDFLAGS = $(LIBADD_DL)
 pinger_LDADD = \
 	libicmp-core.la \
-	../ip/libip.la \
+	$(top_builddir)/src/ip/libip.la \
+	$(top_builddir)/src/base/libbase.la \
 	$(COMPAT_LIB) \
 	$(XTRA_LIBS)
 
diff -u -r -N squid-3.5.26/src/ident/Makefile.in squid-3.5.27/src/ident/Makefile.in
--- squid-3.5.26/src/ident/Makefile.in	2017-06-02 01:54:36.000000000 +1200
+++ squid-3.5.27/src/ident/Makefile.in	2017-08-20 07:57:01.000000000 +1200
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff -u -r -N squid-3.5.26/src/ip/Makefile.in squid-3.5.27/src/ip/Makefile.in
--- squid-3.5.26/src/ip/Makefile.in	2017-06-02 01:54:38.000000000 +1200
+++ squid-3.5.27/src/ip/Makefile.in	2017-08-20 07:57:01.000000000 +1200
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff -u -r -N squid-3.5.26/src/ipc/Forwarder.cc squid-3.5.27/src/ipc/Forwarder.cc
--- squid-3.5.26/src/ipc/Forwarder.cc	2017-06-02 01:49:00.000000000 +1200
+++ squid-3.5.27/src/ipc/Forwarder.cc	2017-08-20 06:48:49.000000000 +1200
@@ -62,6 +62,7 @@
         // assume the pack() call failed because the message did not fit
         // TODO: add a more specific exception?
         handleError();
+        return;
     }
 
     SendMessage(Ipc::Port::CoordinatorAddr(), message);
diff -u -r -N squid-3.5.26/src/ipc/Forwarder.h squid-3.5.27/src/ipc/Forwarder.h
--- squid-3.5.26/src/ipc/Forwarder.h	2017-06-02 01:49:00.000000000 +1200
+++ squid-3.5.27/src/ipc/Forwarder.h	2017-08-20 06:48:49.000000000 +1200
@@ -47,12 +47,14 @@
     virtual void handleError();
     virtual void handleTimeout();
     virtual void handleException(const std::exception& e);
-    virtual void handleRemoteAck();
 
 private:
     static void RequestTimedOut(void* param);
     void requestTimedOut();
     void removeTimeoutEvent();
+
+    void handleRemoteAck();
+
     static AsyncCall::Pointer DequeueRequest(unsigned int requestId);
 
 protected:
diff -u -r -N squid-3.5.26/src/ipc/Makefile.in squid-3.5.27/src/ipc/Makefile.in
--- squid-3.5.26/src/ipc/Makefile.in	2017-06-02 01:54:39.000000000 +1200
+++ squid-3.5.27/src/ipc/Makefile.in	2017-08-20 07:57:01.000000000 +1200
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff -u -r -N squid-3.5.26/src/log/Makefile.in squid-3.5.27/src/log/Makefile.in
--- squid-3.5.26/src/log/Makefile.in	2017-06-02 01:54:41.000000000 +1200
+++ squid-3.5.27/src/log/Makefile.in	2017-08-20 07:57:01.000000000 +1200
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff -u -r -N squid-3.5.26/src/Makefile.in squid-3.5.27/src/Makefile.in
--- squid-3.5.26/src/Makefile.in	2017-06-02 01:54:04.000000000 +1200
+++ squid-3.5.27/src/Makefile.in	2017-08-20 07:57:00.000000000 +1200
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff -u -r -N squid-3.5.26/src/MemStore.cc squid-3.5.27/src/MemStore.cc
--- squid-3.5.26/src/MemStore.cc	2017-06-02 01:49:00.000000000 +1200
+++ squid-3.5.27/src/MemStore.cc	2017-08-20 06:48:49.000000000 +1200
@@ -299,7 +299,7 @@
     e.ping_status = PING_NONE;
 
     EBIT_CLR(e.flags, RELEASE_REQUEST);
-    EBIT_CLR(e.flags, KEY_PRIVATE);
+    e.clearPrivate();
     EBIT_SET(e.flags, ENTRY_VALIDATED);
 
     MemObject::MemCache &mc = e.mem_obj->memCache;
diff -u -r -N squid-3.5.26/src/mgr/Forwarder.cc squid-3.5.27/src/mgr/Forwarder.cc
--- squid-3.5.26/src/mgr/Forwarder.cc	2017-06-02 01:49:00.000000000 +1200
+++ squid-3.5.27/src/mgr/Forwarder.cc	2017-08-20 06:48:49.000000000 +1200
@@ -102,17 +102,6 @@
     mustStop("commClosed");
 }
 
-/// called when Coordinator starts processing the request
-void
-Mgr::Forwarder::handleRemoteAck()
-{
-    Ipc::Forwarder::handleRemoteAck();
-
-    Must(entry != NULL);
-    EBIT_CLR(entry->flags, ENTRY_FWD_HDR_WAIT);
-    entry->complete();
-}
-
 /// send error page
 void
 Mgr::Forwarder::sendError(ErrorState *error)
diff -u -r -N squid-3.5.26/src/mgr/Forwarder.h squid-3.5.27/src/mgr/Forwarder.h
--- squid-3.5.26/src/mgr/Forwarder.h	2017-06-02 01:49:00.000000000 +1200
+++ squid-3.5.27/src/mgr/Forwarder.h	2017-08-20 06:48:49.000000000 +1200
@@ -40,7 +40,6 @@
     virtual void handleError();
     virtual void handleTimeout();
     virtual void handleException(const std::exception& e);
-    virtual void handleRemoteAck();
 
 private:
     void noteCommClosed(const CommCloseCbParams& params);
diff -u -r -N squid-3.5.26/src/mgr/Makefile.in squid-3.5.27/src/mgr/Makefile.in
--- squid-3.5.26/src/mgr/Makefile.in	2017-06-02 01:54:42.000000000 +1200
+++ squid-3.5.27/src/mgr/Makefile.in	2017-08-20 07:57:01.000000000 +1200
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff -u -r -N squid-3.5.26/src/parser/Makefile.in squid-3.5.27/src/parser/Makefile.in
--- squid-3.5.26/src/parser/Makefile.in	2017-06-02 01:54:43.000000000 +1200
+++ squid-3.5.27/src/parser/Makefile.in	2017-08-20 07:57:01.000000000 +1200
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff -u -r -N squid-3.5.26/src/repl/Makefile.in squid-3.5.27/src/repl/Makefile.in
--- squid-3.5.26/src/repl/Makefile.in	2017-06-02 01:54:45.000000000 +1200
+++ squid-3.5.27/src/repl/Makefile.in	2017-08-20 07:57:01.000000000 +1200
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff -u -r -N squid-3.5.26/src/servers/FtpServer.cc squid-3.5.27/src/servers/FtpServer.cc
--- squid-3.5.26/src/servers/FtpServer.cc	2017-06-02 01:49:00.000000000 +1200
+++ squid-3.5.27/src/servers/FtpServer.cc	2017-08-20 06:48:49.000000000 +1200
@@ -301,12 +301,8 @@
     Must(http != NULL);
     HttpRequest *const request = http->request;
     Must(request != NULL);
-
-    // this is not an idle connection, so we do not want I/O monitoring
-    const bool monitor = false;
-
     // make FTP peer connection exclusive to our request
-    pinConnection(conn, request, conn->getPeer(), false, monitor);
+    pinBusyConnection(conn, request);
 }
 
 void
diff -u -r -N squid-3.5.26/src/servers/Makefile.in squid-3.5.27/src/servers/Makefile.in
--- squid-3.5.26/src/servers/Makefile.in	2017-06-02 01:54:46.000000000 +1200
+++ squid-3.5.27/src/servers/Makefile.in	2017-08-20 07:57:01.000000000 +1200
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff -u -r -N squid-3.5.26/src/snmp/Makefile.in squid-3.5.27/src/snmp/Makefile.in
--- squid-3.5.26/src/snmp/Makefile.in	2017-06-02 01:54:48.000000000 +1200
+++ squid-3.5.27/src/snmp/Makefile.in	2017-08-20 07:57:02.000000000 +1200
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff -u -r -N squid-3.5.26/src/squid.8.in squid-3.5.27/src/squid.8.in
--- squid-3.5.26/src/squid.8.in	2017-06-02 01:49:00.000000000 +1200
+++ squid-3.5.27/src/squid.8.in	2017-08-20 06:48:49.000000000 +1200
@@ -265,11 +265,11 @@
 .SH SEE ALSO
 .if !'po4a'hide' .B cachemgr.cgi "(8), "
 .if !'po4a'hide' .B squidclient "(1), "
-.if !'po4a'hide' .B pam_auth "(8), "
-.if !'po4a'hide' .B squid_ldap_auth "(8), "
-.if !'po4a'hide' .B squid_ldap_group "(8), "
+.if !'po4a'hide' .B basic_pam_auth "(8), "
+.if !'po4a'hide' .B basic_ldap_auth "(8), "
+.if !'po4a'hide' .B ext_ldap_group_acl "(8), "
 .if !'po4a'hide' .B ext_session_acl "(8), "
-.if !'po4a'hide' .B squid_unix_group "(8), "
+.if !'po4a'hide' .B ext_unix_group_acl "(8), "
 .br
 The Squid FAQ wiki
 .if !'po4a'hide' http://wiki.squid-cache.org/SquidFaq
diff -u -r -N squid-3.5.26/src/SquidNew.cc squid-3.5.27/src/SquidNew.cc
--- squid-3.5.26/src/SquidNew.cc	2017-06-02 01:49:00.000000000 +1200
+++ squid-3.5.27/src/SquidNew.cc	2017-08-20 06:48:49.000000000 +1200
@@ -8,29 +8,45 @@
 
 /* DEBUG: none          Memory Allocation */
 
-#define _SQUID_EXTERNNEW_
-
 #include "squid.h"
 
-#ifdef __SUNPRO_CC
+#if !defined(__clang__)
 
 #include <new>
-void *operator new(size_t size) throw (std::bad_alloc)
+
+void *operator new(size_t size)
+{
+    return xmalloc(size);
+}
+void operator delete(void *address)
+{
+    xfree(address);
+}
+void *operator new[](size_t size)
+{
+    return xmalloc(size);
+}
+void operator delete[](void *address)
+{
+    xfree(address);
+}
+
+void *operator new(size_t size, const std::nothrow_t &tag)
 {
     return xmalloc(size);
 }
-void operator delete (void *address) throw()
+void operator delete(void *address, const std::nothrow_t &tag)
 {
-    xfree (address);
+    xfree(address);
 }
-void *operator new[] (size_t size) throw (std::bad_alloc)
+void *operator new[](size_t size, const std::nothrow_t &tag)
 {
     return xmalloc(size);
 }
-void operator delete[] (void *address) throw()
+void operator delete[](void *address, const std::nothrow_t &tag)
 {
-    xfree (address);
+    xfree(address);
 }
 
-#endif /* __SUNPRO_CC */
+#endif /* !defined(__clang__) */
 
diff -u -r -N squid-3.5.26/src/ssl/Makefile.in squid-3.5.27/src/ssl/Makefile.in
--- squid-3.5.26/src/ssl/Makefile.in	2017-06-02 01:54:50.000000000 +1200
+++ squid-3.5.27/src/ssl/Makefile.in	2017-08-20 07:57:02.000000000 +1200
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff -u -r -N squid-3.5.26/src/ssl/support.cc squid-3.5.27/src/ssl/support.cc
--- squid-3.5.26/src/ssl/support.cc	2017-06-02 01:49:00.000000000 +1200
+++ squid-3.5.27/src/ssl/support.cc	2017-08-20 06:48:49.000000000 +1200
@@ -737,6 +737,7 @@
 
 #if HAVE_OPENSSL_ENGINE_H
     if (Config.SSL.ssl_engine) {
+        ENGINE_load_builtin_engines();
         ENGINE *e;
         if (!(e = ENGINE_by_id(Config.SSL.ssl_engine)))
             fatalf("Unable to find SSL engine '%s'\n", Config.SSL.ssl_engine);
diff -u -r -N squid-3.5.26/src/store.cc squid-3.5.27/src/store.cc
--- squid-3.5.26/src/store.cc	2017-06-02 01:49:00.000000000 +1200
+++ squid-3.5.27/src/store.cc	2017-08-20 06:48:49.000000000 +1200
@@ -171,11 +171,18 @@
 }
 
 void
-StoreEntry::makePrivate()
+StoreEntry::makePrivate(const bool shareable)
 {
     /* This object should never be cached at all */
     expireNow();
-    releaseRequest(); /* delete object when not used */
+    releaseRequest(shareable); /* delete object when not used */
+}
+
+void
+StoreEntry::clearPrivate()
+{
+    EBIT_CLR(flags, KEY_PRIVATE);
+    shareableWhenPrivate = false;
 }
 
 void
@@ -365,7 +372,8 @@
     ping_status(PING_NONE),
     store_status(STORE_PENDING),
     swap_status(SWAPOUT_NONE),
-    lock_count(0)
+    lock_count(0),
+    shareableWhenPrivate(false)
 {
     debugs(20, 5, "StoreEntry constructed, this=" << this);
 }
@@ -504,14 +512,14 @@
 }
 
 void
-StoreEntry::releaseRequest()
+StoreEntry::releaseRequest(const bool shareable)
 {
     if (EBIT_TEST(flags, RELEASE_REQUEST))
         return;
 
     setReleaseFlag(); // makes validToSend() false, preventing future hits
 
-    setPrivateKey();
+    setPrivateKey(shareable);
 }
 
 int
@@ -623,12 +631,16 @@
  * concept'.
  */
 void
-StoreEntry::setPrivateKey()
+StoreEntry::setPrivateKey(const bool shareable)
 {
     const cache_key *newkey;
 
-    if (key && EBIT_TEST(flags, KEY_PRIVATE))
-        return;                 /* is already private */
+    if (key && EBIT_TEST(flags, KEY_PRIVATE)) {
+        // The entry is already private, but it may be still shareable.
+        if (!shareable)
+            shareableWhenPrivate = false;
+        return;
+    }
 
     if (key) {
         setReleaseFlag(); // will markForUnlink(); all caches/workers will know
@@ -649,6 +661,7 @@
 
     assert(hash_lookup(store_table, newkey) == NULL);
     EBIT_SET(flags, KEY_PRIVATE);
+    shareableWhenPrivate = shareable;
     hashInsert(newkey);
 }
 
@@ -705,14 +718,17 @@
     if (StoreEntry *e2 = (StoreEntry *)hash_lookup(store_table, newkey)) {
         assert(e2 != this);
         debugs(20, 3, "Making old " << *e2 << " private.");
-        e2->setPrivateKey();
-        e2->release();
+
+        // TODO: check whether there is any sense in keeping old entry
+        // shareable here. Leaving it non-shareable for now.
+        e2->setPrivateKey(false);
+        e2->release(false);
     }
 
     if (key)
         hashDelete();
 
-    EBIT_CLR(flags, KEY_PRIVATE);
+    clearPrivate();
 
     hashInsert(newkey);
 
@@ -830,7 +846,7 @@
     e->lock("storeCreateEntry");
 
     if (neighbors_do_private_keys || !flags.hierarchical)
-        e->setPrivateKey();
+        e->setPrivateKey(false);
     else
         e->setPublicKey();
 
@@ -1264,7 +1280,7 @@
 
 /* release an object from a cache */
 void
-StoreEntry::release()
+StoreEntry::release(const bool shareable)
 {
     PROF_start(storeRelease);
     debugs(20, 3, "releasing " << *this << ' ' << getMD5Text());
@@ -1274,7 +1290,7 @@
     if (locked()) {
         expireNow();
         debugs(20, 3, "storeRelease: Only setting RELEASE_REQUEST bit");
-        releaseRequest();
+        releaseRequest(shareable);
         PROF_stop(storeRelease);
         return;
     }
@@ -1282,7 +1298,7 @@
     Store::Root().memoryUnlink(*this);
 
     if (StoreController::store_dirs_rebuilding && swap_filen > -1) {
-        setPrivateKey();
+        setPrivateKey(shareable);
 
         if (swap_filen > -1) {
             // lock the entry until rebuilding is done
@@ -2181,7 +2197,11 @@
         if (EBIT_TEST(e.flags, REFRESH_REQUEST)) os << 'F';
         if (EBIT_TEST(e.flags, ENTRY_REVALIDATE_STALE)) os << 'E';
         if (EBIT_TEST(e.flags, ENTRY_DISPATCHED)) os << 'D';
-        if (EBIT_TEST(e.flags, KEY_PRIVATE)) os << 'I';
+        if (EBIT_TEST(e.flags, KEY_PRIVATE)) {
+            os << 'I';
+            if (e.shareableWhenPrivate)
+                os << 'H';
+        }
         if (EBIT_TEST(e.flags, ENTRY_FWD_HDR_WAIT)) os << 'W';
         if (EBIT_TEST(e.flags, ENTRY_NEGCACHED)) os << 'N';
         if (EBIT_TEST(e.flags, ENTRY_VALIDATED)) os << 'V';
diff -u -r -N squid-3.5.26/src/Store.h squid-3.5.27/src/Store.h
--- squid-3.5.26/src/Store.h	2017-06-02 01:49:00.000000000 +1200
+++ squid-3.5.27/src/Store.h	2017-08-20 06:48:49.000000000 +1200
@@ -95,15 +95,19 @@
     void abort();
     void unlink();
     void makePublic(const KeyScope keyScope = ksDefault);
-    void makePrivate();
+    void makePrivate(const bool shareable);
+    /// A low-level method just resetting "private key" flags.
+    /// To avoid key inconsistency please use forcePublicKey()
+    /// or similar instead.
+    void clearPrivate();
     void setPublicKey(const KeyScope keyScope = ksDefault);
     /// Resets existing public key to a public key with default scope,
     /// releasing the old default-scope entry (if any).
     /// Does nothing if the existing public key already has default scope.
     void clearPublicKeyScope();
-    void setPrivateKey();
+    void setPrivateKey(const bool shareable);
     void expireNow();
-    void releaseRequest();
+    void releaseRequest(const bool shareable = false);
     void negativeCache();
     void cacheNegatively();     /** \todo argh, why both? */
     void invokeHandlers();
@@ -230,7 +234,13 @@
     /// update last reference timestamp and related Store metadata
     void touch();
 
-    virtual void release();
+    virtual void release(const bool shareable = false);
+
+    /// May the caller commit to treating this [previously locked]
+    /// entry as a cache hit?
+    bool mayStartHitting() const {
+        return !EBIT_TEST(flags, KEY_PRIVATE) || shareableWhenPrivate;
+    }
 
 #if USE_ADAPTATION
     /// call back producer when more buffer space is available
@@ -252,6 +262,13 @@
 
     unsigned short lock_count;      /* Assume < 65536! */
 
+    /// Nobody can find/lock KEY_PRIVATE entries, but some transactions
+    /// (e.g., collapsed requests) find/lock a public entry before it becomes
+    /// private. May such transactions start using the now-private entry
+    /// they previously locked? This member should not affect transactions
+    /// that already started reading from the entry.
+    bool shareableWhenPrivate;
+
 #if USE_ADAPTATION
     /// producer callback registered with deferProducer
     AsyncCall::Pointer deferredProducer;
@@ -259,6 +276,8 @@
 
     bool validLength() const;
     bool hasOneOfEtags(const String &reqETags, const bool allowWeakMatch) const;
+
+    friend std::ostream &operator <<(std::ostream &os, const StoreEntry &e);
 };
 
 std::ostream &operator <<(std::ostream &os, const StoreEntry &e);
diff -u -r -N squid-3.5.26/src/tests/stub_client_side.cc squid-3.5.27/src/tests/stub_client_side.cc
--- squid-3.5.26/src/tests/stub_client_side.cc	2017-06-02 01:49:00.000000000 +1200
+++ squid-3.5.27/src/tests/stub_client_side.cc	2017-08-20 06:48:49.000000000 +1200
@@ -60,7 +60,8 @@
 void ConnStateData::noteBodyConsumerAborted(BodyPipe::Pointer) STUB
 bool ConnStateData::handleReadData() STUB_RETVAL(false)
 bool ConnStateData::handleRequestBodyData() STUB_RETVAL(false)
-void ConnStateData::pinConnection(const Comm::ConnectionPointer &pinServerConn, HttpRequest *request, CachePeer *peer, bool auth, bool monitor) STUB
+void ConnStateData::pinBusyConnection(const Comm::ConnectionPointer &, const HttpRequest::Pointer &) STUB
+void ConnStateData::notePinnedConnectionBecameIdle(PinnedIdleContext) STUB
 void ConnStateData::unpinConnection(const bool andClose) STUB
 const Comm::ConnectionPointer ConnStateData::validatePinnedConnection(HttpRequest *request, const CachePeer *peer) STUB_RETVAL(NULL)
 void ConnStateData::clientPinnedConnectionClosed(const CommCloseCbParams &io) STUB
@@ -70,7 +71,7 @@
 void ConnStateData::swanSong() STUB
 void ConnStateData::quitAfterError(HttpRequest *request) STUB
 #if USE_OPENSSL
-void ConnStateData::httpsPeeked(Comm::ConnectionPointer serverConnection) STUB
+void ConnStateData::httpsPeeked(PinnedIdleContext) STUB
 void ConnStateData::getSslContextStart() STUB
 void ConnStateData::getSslContextDone(SSL_CTX * sslContext, bool isNew) STUB
 void ConnStateData::sslCrtdHandleReplyWrapper(void *data, const Helper::Reply &reply) STUB
diff -u -r -N squid-3.5.26/src/tests/stub_libmgr.cc squid-3.5.27/src/tests/stub_libmgr.cc
--- squid-3.5.26/src/tests/stub_libmgr.cc	2017-06-02 01:49:00.000000000 +1200
+++ squid-3.5.27/src/tests/stub_libmgr.cc	2017-08-20 06:48:49.000000000 +1200
@@ -100,7 +100,6 @@
 void Mgr::Forwarder::handleError() STUB
 void Mgr::Forwarder::handleTimeout() STUB
 void Mgr::Forwarder::handleException(const std::exception& e) STUB
-void Mgr::Forwarder::handleRemoteAck() STUB
 
 #include "mgr/FunAction.h"
 Mgr::Action::Pointer Mgr::FunAction::Create(const CommandPointer &cmd, OBJH *aHandler) STUB_RETVAL(dummyAction)
diff -u -r -N squid-3.5.26/src/tests/stub_store.cc squid-3.5.27/src/tests/stub_store.cc
--- squid-3.5.26/src/tests/stub_store.cc	2017-06-02 01:49:00.000000000 +1200
+++ squid-3.5.27/src/tests/stub_store.cc	2017-08-20 06:48:49.000000000 +1200
@@ -43,11 +43,11 @@
 void StoreEntry::abort() STUB
 void StoreEntry::unlink() STUB
 void StoreEntry::makePublic(const KeyScope keyScope) STUB
-void StoreEntry::makePrivate() STUB
+void StoreEntry::makePrivate(const bool shareable) STUB
 void StoreEntry::setPublicKey(const KeyScope keyScope) STUB
-void StoreEntry::setPrivateKey() STUB
+void StoreEntry::setPrivateKey(const bool shareable) STUB
 void StoreEntry::expireNow() STUB
-void StoreEntry::releaseRequest() STUB
+void StoreEntry::releaseRequest(const bool shareable) STUB
 void StoreEntry::negativeCache() STUB
 void StoreEntry::cacheNegatively() STUB
 void StoreEntry::purgeMem() STUB
@@ -99,7 +99,7 @@
 int64_t StoreEntry::contentLen() const STUB_RETVAL(0)
 void StoreEntry::lock(const char *) STUB
 void StoreEntry::touch() STUB
-void StoreEntry::release() STUB
+void StoreEntry::release(const bool shareable) STUB
 
 NullStoreEntry *NullStoreEntry::getInstance() STUB_RETVAL(NULL)
 const char *NullStoreEntry::getMD5Text() const STUB_RETVAL(NULL)
diff -u -r -N squid-3.5.26/src/tests/testStoreController.cc squid-3.5.27/src/tests/testStoreController.cc
--- squid-3.5.26/src/tests/testStoreController.cc	2017-06-02 01:49:00.000000000 +1200
+++ squid-3.5.27/src/tests/testStoreController.cc	2017-08-20 06:48:49.000000000 +1200
@@ -116,7 +116,7 @@
     e->lastModified(squid_curtime);
     e->refcount = 1;
     EBIT_CLR(e->flags, RELEASE_REQUEST);
-    EBIT_CLR(e->flags, KEY_PRIVATE);
+    e->clearPrivate();
     e->ping_status = PING_NONE;
     EBIT_CLR(e->flags, ENTRY_VALIDATED);
     e->hashInsert((const cache_key *)name.termedBuf()); /* do it after we clear KEY_PRIVATE */
diff -u -r -N squid-3.5.26/src/tests/testStoreHashIndex.cc squid-3.5.27/src/tests/testStoreHashIndex.cc
--- squid-3.5.26/src/tests/testStoreHashIndex.cc	2017-06-02 01:49:00.000000000 +1200
+++ squid-3.5.27/src/tests/testStoreHashIndex.cc	2017-08-20 06:48:49.000000000 +1200
@@ -97,7 +97,7 @@
     e->lastModified(squid_curtime);
     e->refcount = 1;
     EBIT_CLR(e->flags, RELEASE_REQUEST);
-    EBIT_CLR(e->flags, KEY_PRIVATE);
+    e->clearPrivate();
     e->ping_status = PING_NONE;
     EBIT_CLR(e->flags, ENTRY_VALIDATED);
     e->hashInsert((const cache_key *)name.termedBuf()); /* do it after we clear KEY_PRIVATE */
diff -u -r -N squid-3.5.26/test-suite/Makefile.in squid-3.5.27/test-suite/Makefile.in
--- squid-3.5.26/test-suite/Makefile.in	2017-06-02 01:54:51.000000000 +1200
+++ squid-3.5.27/test-suite/Makefile.in	2017-08-20 07:57:02.000000000 +1200
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff -u -r -N squid-3.5.26/tools/Makefile.in squid-3.5.27/tools/Makefile.in
--- squid-3.5.26/tools/Makefile.in	2017-06-02 01:54:53.000000000 +1200
+++ squid-3.5.27/tools/Makefile.in	2017-08-20 07:57:02.000000000 +1200
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff -u -r -N squid-3.5.26/tools/purge/Makefile.in squid-3.5.27/tools/purge/Makefile.in
--- squid-3.5.26/tools/purge/Makefile.in	2017-06-02 01:54:54.000000000 +1200
+++ squid-3.5.27/tools/purge/Makefile.in	2017-08-20 07:57:02.000000000 +1200
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff -u -r -N squid-3.5.26/tools/squidclient/Makefile.in squid-3.5.27/tools/squidclient/Makefile.in
--- squid-3.5.26/tools/squidclient/Makefile.in	2017-06-02 01:54:55.000000000 +1200
+++ squid-3.5.27/tools/squidclient/Makefile.in	2017-08-20 07:57:02.000000000 +1200
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff -u -r -N squid-3.5.26/tools/systemd/Makefile.in squid-3.5.27/tools/systemd/Makefile.in
--- squid-3.5.26/tools/systemd/Makefile.in	2017-06-02 01:54:57.000000000 +1200
+++ squid-3.5.27/tools/systemd/Makefile.in	2017-08-20 07:57:02.000000000 +1200
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff -u -r -N squid-3.5.26/tools/sysvinit/Makefile.in squid-3.5.27/tools/sysvinit/Makefile.in
--- squid-3.5.26/tools/sysvinit/Makefile.in	2017-06-02 01:54:57.000000000 +1200
+++ squid-3.5.27/tools/sysvinit/Makefile.in	2017-08-20 07:57:02.000000000 +1200
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
