anchor.diff:  %% @doc Chnage the state of the fsm based on the event sent
   %% by the diameter service.
   %% @hidden
  -change_state(start, StateData) ->
  -	{next_state, started, StateData, 0};
  -change_state({up, _, _, _, _}, StateData) ->
  -	{next_state, started, StateData, 0};
  -change_state({up, _, _, __}, StateData) ->
  -	{next_state, started, StateData, 0};
  -change_state({down, _, _,  _}, StateData) ->
  +change_state(_State, {closed, _, _, _}, StateData) ->
   	{next_state, wait_for_stop, StateData, 0};
  -change_state({reconnect, _, _}, StateData) ->
  -	{next_state, started, StateData, 0};
  -change_state({closed, _, _, _}, StateData) ->
  +change_state(_State, {watchdog, _, _, {_, down}, _}, StateData) ->
   	{next_state, wait_for_stop, StateData, 0};
  -change_state({watchdog, _, _, {_, down}, _}, StateData) ->
  +change_state(_State, stop, StateData) ->
   	{next_state, wait_for_stop, StateData, 0};
  -change_state({watchdog, _, _, _, _}, StateData) ->
  -	{next_state, started, StateData, 0};
  -change_state(stop, StateData) ->
  -	{next_state, wait_for_stop, StateData, 0}.
  -
  +change_state(State, _Event, StateData) ->
  +	{next_state, State, StateData, 0}.
  +
  
positive.code: %%  internal functions
  %%----------------------------------------------------------------------
  
  -spec service_options(Name) -> Options
  	when
  		Name :: atom(),
  		Options :: list().
  %% @doc Returns options for a DIAMETER service
  %% @hidden
  service_options(Name) ->
  	[{'Origin-Host', atom_to_list(Name) ++ ".example.com"},
  		{'Origin-Realm', "example.com"},{'Vendor-Id', 193},
  		{'Product-Name', "Server"}, {'Auth-Application-Id', [0]},
  		{restrict_connections, false}, {string_decode, false},
  		{application, [{alias, common},
  				{dictionary, diameter_gen_base_rfc6733},
  				{module, ocs_diameter_auth_service_callback}]}].
  
  -spec transport_options(Transport, Address, Port) -> Options
  
negative.code: 							{port, Port}]}],
  	{listen, Opts}.
  
  -spec change_state(StateName, Event, StateData) -> Result
  	when
  		StateName :: atom(),
  		Event :: term(),
  		StateData :: #statedata{},
  		Result :: {next_state, NextStateName, NewStateData}
  			| {next_state, NextStateName, NewStateData, Timeout}
  