anchor.diff:  
   %% Frame rate flood protection.
   
  -frame_rate(State0=#state{opts=Opts, frame_rate_num=Num0, frame_rate_time=Time}, Frame) ->
  +frame_rate(State0=#state{frame_rate_num=Num0, frame_rate_time=Time}, Frame) ->
   	{Result, State} = case Num0 - 1 of
   		0 ->
   			CurrentTime = erlang:monotonic_time(millisecond),
  
positive.code: 		_ -> parse(State, Buffer)
  	end.
  
  init_rate_limiting(State=#state{opts=Opts}) ->
  	{FrameRateNum, FrameRatePeriod} = maps:get(max_received_frame_rate, Opts, {10000, 10000}),
  	{ResetRateNum, ResetRatePeriod} = maps:get(max_reset_stream_rate, Opts, {10, 10000}),
  	CurrentTime = erlang:monotonic_time(millisecond),
  	State#state{
  		frame_rate_num=FrameRateNum, frame_rate_time=add_period(CurrentTime, FrameRatePeriod),
  		reset_rate_num=ResetRateNum, reset_rate_time=add_period(CurrentTime, ResetRatePeriod)
  	}.
  
  
negative.code: 					{error, State0};
  				true ->
  					%% When the option has a period of infinity we cannot reach this clause.
  					{ok, init_frame_rate_limiting(State0, CurrentTime)}
  			end;
  		Num ->
  			{ok, State0#state{frame_rate_num=Num}}
  