/**
         * Uses streaming decompression to inflate {@code deflated}. The input must
         * either be finished or have a trailing sync flush.
         */
        private EasyBuffer inflate(EasyBuffer deflated)
        {
            var      deflatedIn = deflated.InputStream();
            Inflater inflater   = new Inflater();
            var      inflatedIn = new InflaterInputStream(deflatedIn, inflater);
            var      result     = new EasyBuffer();

            byte[] buffer = new byte[8192];
            while (!inflater.IsNeedingInput || deflated.Size > 0)
            {
                int count = inflatedIn.Read(buffer, 0, buffer.Length);
                if (count > 0)
                {
                    result.Write(buffer, 0, count);
                }
            }
            return(result);
        }