anchor.diff:     % http request with payload
      Url = make_url(Uri, Heads, S#fsm.scheme),
      _   = pipe:b(Pipe, {http, Url, {Method, Heads}}),
  -   {Chunk, Buffer, Http} = htstream:parse(S#fsm.iobuffer, S#fsm.dec),
  +   {Chunk, Buffer, Http} = htstream:decode(S#fsm.iobuffer, S#fsm.dec),
      handle_request(htstream:state(Http), Chunk, Pipe, S#fsm{url=Url, iobuffer=Buffer, dec=Http});
   
   handle_listen(_, Chunk, Pipe, S) ->
  
positive.code:       {Chunk, Buffer, Http} = htstream:decode(iolist_to_binary([S#fsm.iobuffer, Pckt]), S#fsm.dec),
        handle_request(htstream:state(Http), Chunk, Pipe, S#fsm{iobuffer=Buffer, dec=Http})
     catch _:Reason ->
        handle_failure(Reason, Pipe, S),
        {next_state, 'LISTEN', S}
     end;
  
  
negative.code:    };
  
  handle_response({Code, _Uri, Heads0}, Pipe, State, S) ->
     Heads = [{'Server', ?HTTP_SERVER},{'Transfer-Encoding', chunked} | Heads0],
     {Pckt, _, Http} = htstream:encode({Code, Heads}, S#fsm.enc),
     _ = pipe:b(Pipe, {send, S#fsm.peer, Pckt}),
     {next_state, State,  S#fsm{enc=Http}}.
  