code: def Collect(self, knowledge_base):
      
      environment_variable = knowledge_base.GetEnvironmentVariable(
          'programdata')
      allusersprofile = getattr(environment_variable, 'value', None)
  
      if not allusersprofile:
        environment_variable = knowledge_base.GetEnvironmentVariable(
            'allusersprofile')
        allusersprofile = getattr(environment_variable, 'value', None)
  
        if allusersprofile:
          environment_variable = artifacts.EnvironmentVariableArtifact(
              case_sensitive=False, name='programdata', value=allusersprofile)
  
          try:
            logger.debug('setting environment variable: {0:s} to: "{1:s}"'.format(
                'programdata', allusersprofile))
            knowledge_base.AddEnvironmentVariable(environment_variable)
          except KeyError:
            # TODO: add and store preprocessing errors.
            pass
docs: Collects values from the knowledge base.
  
      Args:
        knowledge_base (KnowledgeBase): to fill with preprocessing information.
  
      Raises:
        PreProcessFail: if the preprocessing fails.