code: def TrimVariableTable(self, new_size):
      
  
      def ProcessBufferFull(variables):
        for variable in variables:
          var_index = variable.get('varTableIndex')
          if var_index is not None and (var_index >= new_size):
            variable['varTableIndex'] = 0  # Buffer full.
          members = variable.get('members')
          if members is not None:
            ProcessBufferFull(members)
  
      del self._var_table[new_size:]
      ProcessBufferFull(self.breakpoint['evaluatedExpressions'])
      for stack_frame in self.breakpoint['stackFrames']:
        ProcessBufferFull(stack_frame['arguments'])
        ProcessBufferFull(stack_frame['locals'])
      ProcessBufferFull(self._var_table)
docs: Trims the variable table in the formatted breakpoint message.
  
      Removes trailing entries in variables table. Then scans the entire
      breakpoint message and replaces references to the trimmed variables to
      point to var_index of 0 ("buffer full").
  
      Args:
        new_size: desired size of variables table.