input: from typing import List, Dict
  
  def optimize_code(fn: callable, params: dict, ranges: List[int]) -> Dict[str, int]:
      """
      Optimizes a given function by iterating over a specified range for each parameter.
      Returns the parameters that yield the highest score.
      
      >>> optimize_code(lambda d: sum(d.values()), {'a': 1, 'b': 2, 'c': 3}, [20, 20, 20])
      {'a': 11, 'b': 12, 'c': 13}
      """
      best_score = 0
      best_params = None
      for a in range(params['a'] - ranges[0], params['a'] + ranges[0]):
          for b in range(params['b'] - ranges[1], params['b'] + ranges[1]):
              for c in range(params['c'] - ranges[2], params['c'] + ranges[2]):
                  current_params = {'a': a, 'b': b, 'c': c}
                  score = fn(current_params)
                  if score > best_score:
                      best_score = score
                      best_params = current_params
      return best_params
  
output:     best_score = 0
      best_params = None
      for a in range(params['a'] - ranges[0], params['a'] + ranges[0]):
          for b in range(params['b'] - ranges[1], params['b'] + ranges[1]):
              for c in range(params['c'] - ranges[2], params['c'] + ranges[2]):
                  current_params = {'a': a, 'b': b, 'c': c}
                  score = fn(current_params)
                  if score > best_score:
                      best_score = score
                      best_params = current_params
      return best_params