anchor.diff:  -export([start_link/7]). 
   
   %% gen_fsm callbacks
  --export([init/1, hello/2, certify/2, cipher/2, connection/2, connection/3, 
  +-export([init/1, hello/2, certify/2, cipher/2, connection/2, 
   	 abbreviated/2, handle_event/3,
            handle_sync_event/4, handle_info/3, terminate/3, code_change/4]).
   
  
positive.code: mpint_binary(Binary)  ->
      Size = byte_size(Binary),
      <<?UINT32(Size), Binary/binary>>.
  
negative.code: 			     tls_handshake_buffer = Buf0,
  			     negotiated_version = Version}) ->
      Handle = 
  	fun({#hello_request{} = Packet, _}, {next_state, connection = SName, State}) ->
  		%% This message should not be included in handshake
  		%% message hashes. Starts new handshake (renegotiation)
  		Hs0 = ssl_handshake:init_hashes(),
  		?MODULE:SName(Packet, State#state{tls_handshake_hashes=Hs0});
  	   ({#hello_request{} = Packet, _}, {next_state, SName, State}) ->
  		%% This message should not be included in handshake
  		%% message hashes. If allready in negotiation it will be ignored!
  		?MODULE:SName(Packet, State);
  	    ({#client_hello{} = Packet, Raw}, {next_state, connection = SName, State}) ->
  		Hs0 = ssl_handshake:init_hashes(),
  		Hs1 = ssl_handshake:update_hashes(Hs0, Raw),
  		?MODULE:SName(Packet, State#state{tls_handshake_hashes=Hs1,
  						  renegotiation = true});
  	    ({Packet, Raw}, {next_state, SName, State = #state{tls_handshake_hashes=Hs0}}) ->	
  		Hs1 = ssl_handshake:update_hashes(Hs0, Raw),
  		?MODULE:SName(Packet, State#state{tls_handshake_hashes=Hs1});
  	   (_, StopState) -> StopState
  	end,
      try
  	{Packets, Buf} = ssl_handshake:get_tls_handshake(Data,Buf0, KeyAlg,Version),
  	Start = {next_state, StateName, State0#state{tls_handshake_buffer = Buf}},
  	lists:foldl(Handle, Start, Packets)
      catch throw:#alert{} = Alert ->
  	    handle_own_alert(Alert, Version, StateName, State0), 
  