code: def _ParseValueData(self, knowledge_base, value_data):
      
      if not isinstance(value_data, py2to3.UNICODE_TYPE):
        raise errors.PreProcessFail(
            'Unsupported Windows Registry value type: {0:s} for '
            'artifact: {1:s}.'.format(
                type(value_data), self.ARTIFACT_DEFINITION_NAME))
  
      # Map the Windows time zone name to a Python equivalent name.
      lookup_key = value_data.replace(' ', '')
  
      time_zone = time_zones.TIME_ZONES.get(lookup_key, value_data)
      # TODO: check if time zone is set in knowledge base.
      if time_zone:
        try:
          # Catch and warn about unsupported preprocessor plugin.
          knowledge_base.SetTimeZone(time_zone)
        except ValueError:
          # TODO: add and store preprocessing errors.
          time_zone = value_data
          logger.warning('Unable to map: "{0:s}" to time zone'.format(
              value_data))
docs: Parses Windows Registry value data for a preprocessing attribute.
  
      Args:
        knowledge_base (KnowledgeBase): to fill with preprocessing information.
        value_data (object): Windows Registry value data.
  
      Raises:
        errors.PreProcessFail: if the preprocessing fails.