code: def _read_protocol_line(self):
          
          while True:
              line = self._proc.stdout.readline().decode('utf-8')
              if not line:
                  raise jsonrpc_client_base.AppStartError(
                      self._ad, 'Unexpected EOF waiting for app to start')
              # readline() uses an empty string to mark EOF, and a single newline
              # to mark regular empty lines in the output. Don't move the strip()
              # call above the truthiness check, or this method will start
              # considering any blank output line to be EOF.
              line = line.strip()
              if (line.startswith('INSTRUMENTATION_RESULT:')
                      or line.startswith('SNIPPET ')):
                  self.log.debug(
                      'Accepted line from instrumentation output: "%s"', line)
                  return line
              self.log.debug('Discarded line from instrumentation output: "%s"',
                             line)
docs: Reads the next line of instrumentation output relevant to snippets.
  
          This method will skip over lines that don't start with 'SNIPPET' or
          'INSTRUMENTATION_RESULT'.
  
          Returns:
              (str) Next line of snippet-related instrumentation output, stripped.
  
          Raises:
              jsonrpc_client_base.AppStartError: If EOF is reached without any
                  protocol lines being read.