anchor.diff:  	"ssh-userauth" ->
   	    Ssh0 = #ssh{session_id=SessionId} = D#data.ssh_params,
   	    {ok, {Reply, Ssh}} = ssh_auth:handle_userauth_request(Msg, SessionId, Ssh0),
  -	    ok = send_bytes(Reply, D),
  +	    send_bytes(Reply, D),
   	    {next_state, {userauth,server}, D#data{ssh_params = Ssh}};
   
   	_ ->
  
positive.code: %% The very first event that is sent when the we are set as controlling process of Socket
  handle_event(_, socket_control, {hello,_}, D) ->
      VsnMsg = ssh_transport:hello_version_msg(string_version(D#data.ssh_params)),
      ok = send_bytes(VsnMsg, D),
      case inet:getopts(Socket=D#data.socket, [recbuf]) of
  	{ok, [{recbuf,Size}]} ->
  	    %% Set the socket to the hello text line handling mode:
  
negative.code: %%%---- diffie-hellman
  handle_event(_, #ssh_msg_kexdh_init{} = Msg, {key_exchange,server,ReNeg}, D) ->
      {ok, KexdhReply, Ssh1} = ssh_transport:handle_kexdh_init(Msg, D#data.ssh_params),
      send_bytes(KexdhReply, D),
      {ok, NewKeys, Ssh} = ssh_transport:new_keys_message(Ssh1),
      send_bytes(NewKeys, D),
      {next_state, {new_keys,server,ReNeg}, D#data{ssh_params=Ssh}};
  
  handle_event(_, #ssh_msg_kexdh_reply{} = Msg, {key_exchange,client,ReNeg}, D) ->
      {ok, NewKeys, Ssh} = ssh_transport:handle_kexdh_reply(Msg, D#data.ssh_params),
      send_bytes(NewKeys, D),
      {next_state, {new_keys,client,ReNeg}, D#data{ssh_params=Ssh}};
  
  %%%---- diffie-hellman group exchange
  handle_event(_, #ssh_msg_kex_dh_gex_request{} = Msg, {key_exchange,server,ReNeg}, D) ->
      {ok, GexGroup, Ssh} = ssh_transport:handle_kex_dh_gex_request(Msg, D#data.ssh_params),
      send_bytes(GexGroup, D),
      {next_state, {key_exchange_dh_gex_init,server,ReNeg}, D#data{ssh_params=Ssh}};
  
  handle_event(_, #ssh_msg_kex_dh_gex_request_old{} = Msg, {key_exchange,server,ReNeg}, D) ->
      {ok, GexGroup, Ssh} = ssh_transport:handle_kex_dh_gex_request(Msg, D#data.ssh_params),
      send_bytes(GexGroup, D),
      {next_state, {key_exchange_dh_gex_init,server,ReNeg}, D#data{ssh_params=Ssh}};
  
  handle_event(_, #ssh_msg_kex_dh_gex_group{} = Msg, {key_exchange,client,ReNeg}, D) ->
      {ok, KexGexInit, Ssh} = ssh_transport:handle_kex_dh_gex_group(Msg, D#data.ssh_params),
      send_bytes(KexGexInit, D),
      {next_state, {key_exchange_dh_gex_reply,client,ReNeg}, D#data{ssh_params=Ssh}};
  
  %%%---- elliptic curve diffie-hellman
  handle_event(_, #ssh_msg_kex_ecdh_init{} = Msg, {key_exchange,server,ReNeg}, D) ->
      {ok, KexEcdhReply, Ssh1} = ssh_transport:handle_kex_ecdh_init(Msg, D#data.ssh_params),
      send_bytes(KexEcdhReply, D),
      {ok, NewKeys, Ssh} = ssh_transport:new_keys_message(Ssh1),
      send_bytes(NewKeys, D),
      {next_state, {new_keys,server,ReNeg}, D#data{ssh_params=Ssh}};
  
  handle_event(_, #ssh_msg_kex_ecdh_reply{} = Msg, {key_exchange,client,ReNeg}, D) ->
      {ok, NewKeys, Ssh} = ssh_transport:handle_kex_ecdh_reply(Msg, D#data.ssh_params),
      send_bytes(NewKeys, D),
      {next_state, {new_keys,client,ReNeg}, D#data{ssh_params=Ssh}};
  
  
  