anchor.diff:      ok.
   
   %% @private
  -code_change(_OldVsn, State, _Extra) ->
  +code_change(_, State, _) ->
       {ok, State}.
   
  
positive.code: 
  %% @private
  init([]) ->
      F = etorrent_config:fast_resume_file(),
      X = ets:file2tab(F, [{verify, true}]),
      _ = case X of
          {ok, etorrent_fast_resume} -> true;
          E ->
              ?INFO([fast_resume_no_data, E]),
              _ = ets:new(etorrent_fast_resume, [named_table, protected])
      end,
      {ok, #state{}}.
  
  %% @private
  handle_call({query_state, Id}, _From, S) ->
      {value, PL} = etorrent_table:get_torrent(Id),
      case ets:lookup(etorrent_fast_resume, proplists:get_value(filename, PL)) of
          [] -> {reply, unknown, S};
          [{_, FSPL}] when is_list(FSPL) -> {reply, {value, FSPL}, S};
  	[{_, St}] -> {reply, {value, upgrade(1, St)}, S}
      end;
  handle_call(_Request, _From, State) ->
      Reply = ok,
      {reply, Reply, State}.
  
  %% @private
  handle_cast(_Msg, State) ->
      {noreply, State}.
  
  %% @private
  handle_info(_Info, State) ->
      {noreply, State}.
  
  %% @private
  
negative.code:          terminate/2,
           code_change/3]).
  
  -record(state, {
      table=none :: atom()
  }).
  
  -define(SERVER, ?MODULE).
  -ignore_xref([{start_link, 0}]).
  