anchor.diff:  find(_Vendor, _Attribute, []) ->
   	{error, not_found}.
   
  --spec get_all(Attribute :: byte(), Attributes :: attributes()) ->
  -	[Value :: term()].
  +-spec get_all(Attribute, Attributes) -> Result
  +	when
  +		Attribute :: byte(),
  +		Attributes :: attributes(),
  +		Value :: term(),
  +		Result :: [Value].
   %% @doc Returns all values for an `Attribute' which may occur
   %% 	more than once in	the RADIUS protocol `Attributes' list.
   %%
  
positive.code: 		length(Password) rem 16 == 0 ->
  	hide(SharedSecret, Authenticator, Password, []).
  
  -spec unhide(SharedSecret :: string() | binary(),
  		Authenticator :: [byte()] | binary(),
  		UserPassword :: string() | binary()) ->
  	Password :: string().
  %% @doc Return the password hidden in the User-Password attribute.
  %%
  unhide(SharedSecret, Authenticator, UserPassword)
  
negative.code: 	end,
  	lists:filtermap(F, Attributes).
  
  -spec codec(Attributes) -> Attributes
  	when
  		Attributes :: binary() | attributes().
  %% @doc Encode or decode a binary RADIUS protocol attributes field.
  %%
  codec(Attributes) when is_binary(Attributes) ->
  	attributes(Attributes, 0, new());
  codec(Attributes) when is_list(Attributes) ->
  	attributes(Attributes, <<>>).
  
  -spec hide(SharedSecret, Authenticator, Password) -> UserPassword
  	when
  		SharedSecret :: string() | binary(),
  		Authenticator :: [byte()] | binary(),
  		Password :: string() | binary(),
  		UserPassword :: string().
  %% @doc Hide the password in the User-Password attribute.
  %%
  hide(SharedSecret, Authenticator, Password)
  