anchor.diff:      if (analysisServer == null) {
         return _returnFailure(request, 'Analysis server is not running');
       }
  -    HttpResponse response = request.response;
  -    response.statusCode = HttpStatus.OK;
  -    response.headers.contentType = _htmlContent;
  -    response.write('<html>');
  -    response.write('<head>');
  -    response.write('<title>Dart Analysis Server - Overlays</title>');
  -    response.write('</head>');
  -    response.write('<body>');
  -    response.write('<h1>Dart Analysis Server - Overlays</h1>');
  -    response.write('<table border="1">');
  -    int count = 0;
  -    _overlayContents.clear();
  -    analysisServer.folderMap.forEach((_, AnalysisContextImpl context) {
  -      context.visitContentCache((Source source, int stamp, String contents) {
  -        count++;
  -        response.write('<tr>');
  -        String linkRef = '$OVERLAY_PATH?id=$count';
  -        String linkText = HTML_ESCAPE.convert(source.toString());
  -        response.write('<td><a href="$linkRef">$linkText</a></td>');
  -        response.write(
  -            '<td>${new DateTime.fromMillisecondsSinceEpoch(stamp)}</td>');
  -        response.write('</tr>');
  -        _overlayContents[count] = contents;
  +
  +    _writeResponse(request, (StringBuffer buffer) {
  +      _writePage(
  +          buffer,
  +          'Analysis Server - Overlays',
  +          [],
  +          (StringBuffer buffer) {
  +        buffer.write('<table border="1">');
  +        int count = 0;
  +        _overlayContents.clear();
  +        analysisServer.folderMap.forEach((_, AnalysisContextImpl context) {
  +          context.visitContentCache(
  +              (Source source, int stamp, String contents) {
  +            count++;
  +            buffer.write('<tr>');
  +            String linkRef = '$OVERLAY_PATH?id=$count';
  +            String linkText = HTML_ESCAPE.convert(source.toString());
  +            buffer.write('<td><a href="$linkRef">$linkText</a></td>');
  +            buffer.write(
  +                '<td>${new DateTime.fromMillisecondsSinceEpoch(stamp)}</td>');
  +            buffer.write('</tr>');
  +            _overlayContents[count] = contents;
  +          });
  +        });
  +        buffer.write('<tr><td colspan="2">Total: $count entries.</td></tr>');
  +        buffer.write('</table>');
         });
       });
  -    response.write('<tr><td colspan="2">Total: $count entries.</td></tr>');
  -    response.write('</table>');
  -    response.write('</body>');
  -    response.write('</html>');
  -    response.close();
     }
   
     /**
      * Return a response indicating the status of the analysis server.
      */
     void _returnServerStatus(HttpRequest request) {
  -    HttpResponse response = request.response;
  -    response.statusCode = HttpStatus.OK;
  -    response.headers.contentType = _htmlContent;
  -    response.write('<html>');
  -    response.write('<head>');
  -    response.write('<title>Dart Analysis Server - Status</title>');
  -    response.write('<style>');
  -    response.write('td.right {text-align: right;}');
  -    response.write('</style>');
  -    response.write('</head>');
  -    response.write('<body>');
  -    response.write('<h1>Analysis Server</h1>');
  -    AnalysisServer analysisServer = _server.analysisServer;
  -    if (analysisServer == null) {
  -      response.write('<p>Not running</p>');
  -    } else {
  -      if (analysisServer.statusAnalyzing) {
  -        response.write('<p>Running (analyzing)</p>');
  -      } else {
  -        response.write('<p>Running (not analyzing)</p>');
  -      }
  -      response.write('<p>Instrumentation status: ');
  -      if (AnalysisEngine.instance.instrumentationService.isActive) {
  -        response.write('<span style="color:red">active</span>');
  -      } else {
  -        response.write('inactive');
  -      }
  -      response.write('</p>');
  -      response.write('<h1>Analysis Contexts</h1>');
  -      response.write('<h2>Summary</h2>');
  -      response.write('<table>');
  -      List headerRowText = ['Context'];
  -      headerRowText.addAll(CacheState.values);
  -      _writeRow(response, headerRowText, header: true);
  -      Map<Folder, AnalysisContext> folderMap = analysisServer.folderMap;
  -      List<Folder> folders = folderMap.keys.toList();
  -      folders.sort(
  -          (Folder first, Folder second) => first.shortName.compareTo(second.shortName));
  -      folders.forEach((Folder folder) {
  -        AnalysisContextImpl context = folderMap[folder];
  -        String key = folder.shortName;
  -        AnalysisContextStatistics statistics = context.statistics;
  -        Map<CacheState, int> totals = <CacheState, int>{};
  -        for (CacheState state in CacheState.values) {
  -          totals[state] = 0;
  -        }
  -        statistics.cacheRows.forEach((AnalysisContextStatistics_CacheRow row) {
  -          for (CacheState state in CacheState.values) {
  -            totals[state] += row.getCount(state);
  -          }
  -        });
  -        List rowText = [
  -            '<a href="#context_${HTML_ESCAPE.convert(key)}">$key</a>'];
  -        for (CacheState state in CacheState.values) {
  -          rowText.add(totals[state]);
  -        }
  -        _writeRow(response, rowText, classes: [null, "right"]);
  -      });
  -      response.write('</table>');
  -      folders.forEach((Folder folder) {
  -        AnalysisContextImpl context = folderMap[folder];
  -        String key = folder.shortName;
  -        response.write(
  -            '<h2><a name="context_${HTML_ESCAPE.convert(key)}">Analysis Context: $key</a></h2>');
  -        AnalysisContextStatistics statistics = context.statistics;
  -        response.write('<table>');
  -        _writeRow(response, headerRowText, header: true);
  -        statistics.cacheRows.forEach((AnalysisContextStatistics_CacheRow row) {
  -          List rowText = [row.name];
  -          for (CacheState state in CacheState.values) {
  -            String text = row.getCount(state).toString();
  -            Map<String, String> params = <String, String>{
  -              STATE_QUERY_PARAM: state.toString(),
  -              CONTEXT_QUERY_PARAM: folder.path,
  -              DESCRIPTOR_QUERY_PARAM: row.name
  -            };
  -            rowText.add(_makeLink(CACHE_STATE_PATH, params, text));
  -          }
  -          _writeRow(response, rowText, classes: [null, "right"]);
  -        });
  -        response.write('</table>');
  -        List<CaughtException> exceptions = statistics.exceptions;
  -        if (!exceptions.isEmpty) {
  -          response.write('<h2>Exceptions</h2>');
  -          exceptions.forEach((CaughtException exception) {
  -            StringBuffer buffer = new StringBuffer();
  -            _writeException(buffer, exception);
  -            response.write(buffer.toString());
  -          });
  -        }
  -      });
  -    }
  -    response.write('<h1>Most recent strings printed by analysis server</h2>');
  -    response.write('<pre>');
  -    response.write(HTML_ESCAPE.convert(_printBuffer.join('\n')));
  -    response.write('</pre>');
  -    response.write('</body>');
  -    response.write('</html>');
  -    response.close();
  -  }
  -
  -  /**
  -   * Return a response indicating the status of the analysis server.
  -   */
  -  void _returnServerStatus2(HttpRequest request) {
       _writeResponse(request, (StringBuffer buffer) {
         _writePage(buffer, 'Analysis Server - Status', [], (StringBuffer buffer) {
           if (_writeServerStatus(buffer)) {
  
positive.code:           'Query parameter $DESCRIPTOR_QUERY_PARAM required');
      }
  
      AnalysisServer analysisServer = _server.analysisServer;
      if (analysisServer == null) {
        return _returnFailure(request, 'Analysis server not running');
      }
      HttpResponse response = request.response;
      response.statusCode = HttpStatus.OK;
      response.headers.contentType = _htmlContent;
      response.write('<html>');
      response.write('<head>');
      response.write('<title>Dart Analysis Server - Search result</title>');
      response.write('</head>');
      response.write('<body>');
      response.write('<h1>');
      response.write('Files with state ${HTML_ESCAPE.convert(stateQueryParam)}');
      response.write(' for descriptor ${HTML_ESCAPE.convert(descriptorFilter)}');
      response.write(' in context ${HTML_ESCAPE.convert(contextFilter)}');
      response.write('</h1>');
      response.write('<ul>');
      int count = 0;
      analysisServer.folderMap.forEach(
          (Folder folder, AnalysisContextImpl context) {
        if (folder.path != contextFilter) {
          return;
        }
        context.visitCacheItems(
            (Source source, SourceEntry dartEntry, DataDescriptor rowDesc, CacheState state)
                {
          if (state != stateFilter || rowDesc.toString() != descriptorFilter) {
            return;
          }
          String link = _makeLink(CACHE_ENTRY_PATH, {
            CONTEXT_QUERY_PARAM: folder.path,
            SOURCE_QUERY_PARAM: source.uri.toString()
          }, HTML_ESCAPE.convert(source.fullName));
          response.write('<li>$link</li>');
          count++;
        });
      });
      response.write('</ul>');
      response.write('<p>$count files found</p>');
      response.write('</body>');
      response.write('</html>');
      response.close();
    }
  
    /**
  
negative.code:     String href = HTML_ESCAPE.convert(uri.toString());
      String classAttribute = hasError ? ' class="error"' : '';
      return '<a href="$href"$classAttribute>$innerHtml</a>';
    }
  
    /**
  