anchor.diff:  %%% ######## {userauth, client|server} ####
   
   %%---- userauth request to server
  -handle_event(_, 
  +handle_event(internal, 
   	     Msg = #ssh_msg_userauth_request{service = ServiceName, method = Method},
   	     StateName = {userauth,server},
   	     D0 = #data{ssh_params=Ssh0}) ->
  
positive.code: 
  %%% ######## {key_exchange_dh_gex_init, server, init|renegotiate} ####
  
  handle_event(_, #ssh_msg_kex_dh_gex_init{} = Msg, {key_exchange_dh_gex_init,server,ReNeg}, D) ->
      {ok, KexGexReply, Ssh1} =  ssh_transport:handle_kex_dh_gex_init(Msg, D#data.ssh_params),
      send_bytes(KexGexReply, D),
      {ok, NewKeys, Ssh2} = ssh_transport:new_keys_message(Ssh1),
  
negative.code:      state_enter].
  
  
  %%% ######## {hello, client|server} ####
  %% The very first event that is sent when the we are set as controlling process of Socket
  handle_event(cast, socket_control, {hello,_}=StateName, #data{ssh_params = Ssh0} = D) ->
      VsnMsg = ssh_transport:hello_version_msg(string_version(Ssh0)),
      send_bytes(VsnMsg, D),
      case inet:getopts(Socket=D#data.socket, [recbuf]) of
  