code: def _GetNextInterval(self):
      
      ranges = [x.CurrentRange() for x in self.fingers]
      starts = set([r.start for r in ranges if r])
      ends = set([r.end for r in ranges if r])
      if not starts:
        return None
      min_start = min(starts)
      starts.remove(min_start)
      ends |= starts
      min_end = min(ends)
      if min_end - min_start > self.BLOCK_SIZE:
        min_end = min_start + self.BLOCK_SIZE
      return Range(min_start, min_end)
docs: Returns the next Range of the file that is to be hashed.
  
      For all fingers, inspect their next expected range, and return the
      lowest uninterrupted range of interest. If the range is larger than
      BLOCK_SIZE, truncate it.
  
      Returns:
        Next range of interest in a Range namedtuple.