anchor.diff:    LStrStream: TStringStream;
     LMemStream: TMemoryStream;
   
  -  procedure DoDecompress(ASource, ADestination: TStream);
  +  procedure DoDecompress(ASource, ADestination: TStream;
  +    const AContentEncoding: string);
     var
  +    LWindowBits: Integer;
       LDecompressor: TZDecompressionStream;
     begin
  +    LWindowBits := 15;
  +    if AContentEncoding = ENC_GZIP
  +      then Inc(LWindowBits, 16); //REF: https://stackoverflow.com/a/52815667/8018798
  +
       ASource.Seek(0, TSeekOrigin.soBeginning);
   
  -    LDecompressor := TZDecompressionStream.Create(ASource);
  +    LDecompressor := TZDecompressionStream.Create(ASource, LWindowBits);
       try
         ADestination.Seek(0, TSeekOrigin.soBeginning);
         ADestination.CopyFrom(LDecompressor, 0);
  
positive.code: var
    LStrStream: TStringStream;
    LMemStream: TMemoryStream;
  
    procedure DoCompress(ASource, ADestination: TStream);
    var
      LCompressor: TZCompressionStream;
    begin
      ASource.Seek(0, TSeekOrigin.soBeginning);
  
      LCompressor := TZCompressionStream.Create(clDefault, ADestination);
      try
        LCompressor.CopyFrom(ASource, ASource.Size);
      finally
  
negative.code: var
    LStrStream: TStringStream;
    LMemStream: TFileStream;
    LContentEncoding: string;
  
    procedure DoCompress(ASource, ADestination: TStream;
      const AContentEncoding: string);
    var
      LWindowBits: Integer;
      LCompressor: TZCompressionStream;
    begin
      LWindowBits := 15;
      if AContentEncoding = ENC_GZIP
        then Inc(LWindowBits, 16); //REF: https://stackoverflow.com/a/52815667/8018798
  
      ASource.Seek(0, TSeekOrigin.soBeginning);
      LCompressor := TZCompressionStream.Create(ADestination, zcDefault, LWindowBits);
      try
        LCompressor.CopyFrom(ASource, ASource.Size);
      finally
  