anchor.diff:          N -> <<Binary/binary, 0:(N*8)>>
       end.
   
  +cancel_timer(Ref) ->
  +    case erlang:cancel_timer(Ref) of
  +	false ->
  +	    receive {timeout, Ref, _} -> 0
  +	    after 0 -> false
  +	    end;
  +	RemainingTime ->
  +	    RemainingTime
  +    end.
  +
   format_mac(<<A:8, B:8, C:8, D:8, E:8, F:8>>) ->
       flat_format("~2.16.0b:~2.16.0b:~2.16.0b:~2.16.0b:~2.16.0b:~2.16.0b", [A, B, C, D, E, F]);
   format_mac(MAC) ->
  
positive.code: 
  stop_eapol_timer(#state{eapol_timer = TRef} = State)
    when is_reference(TRef) ->
      gen_fsm:cancel_timer(TRef),
      State#state{eapol_timer = undefined};
  stop_eapol_timer(State) ->
      State.
  
negative.code:     Interval = 500,
      State = stop_eapol_timer(State0),
      lager:debug("Starting EAPOL Timer ~w ms", [Interval]),
      TRef = erlang:send_after(Interval, self(), {eapol_retransmit, Msg}),
      State#state{eapol_timer = TRef}.
  
  send_eapol(EAPData, State = #state{mac = StationMAC, radio_mac = BSS}) ->
  