anchor.diff:  
   %% @doc Return the full list of query string values.
   -spec qs_vals(Req) -> {list({binary(), binary() | true}), Req} when Req::req().
  -qs_vals(Req=#http_req{raw_qs=RawQs, qs_vals=undefined,
  +qs_vals(Req=#http_req{qs=RawQs, qs_vals=undefined,
   		urldecode={URLDecFun, URLDecArg}}) ->
   	QsVals = cowboy_http:x_www_form_urlencoded(
   		RawQs, fun(Bin) -> URLDecFun(Bin, URLDecArg) end),
   	qs_vals(Req#http_req{qs_vals=QsVals});
   qs_vals(Req=#http_req{qs_vals=QsVals}) ->
   	{QsVals, Req}.
  -
  -%% @doc Return the raw query string directly taken from the request.
  --spec raw_qs(Req) -> {binary(), Req} when Req::req().
  -raw_qs(Req) ->
  -	{Req#http_req.raw_qs, Req}.
   
   %% @doc Return the request URL as a binary without the path and query string.
   %%
  
positive.code: new(Socket, Transport, Connection, Method, Version, Path, Qs,
  		OnResponse, URLDecode) ->
  	#http_req{socket=Socket, transport=Transport, connection=Connection,
  		pid=self(), method=Method, version=Version, path=Path, raw_qs=Qs,
  		onresponse=OnResponse, urldecode=URLDecode}.
  
  %% @doc Return the HTTP method of the request.
  
negative.code: %% missing.
  -spec qs_val(binary(), Req, Default)
  	-> {binary() | true | Default, Req} when Req::req(), Default::any().
  qs_val(Name, Req=#http_req{qs=RawQs, qs_vals=undefined,
  		urldecode={URLDecFun, URLDecArg}}, Default) when is_binary(Name) ->
  	QsVals = cowboy_http:x_www_form_urlencoded(
  		RawQs, fun(Bin) -> URLDecFun(Bin, URLDecArg) end),
  