anchor.diff:  
   class HttpComms extends Comms {
       Http.Client _client;
  +    _ReadBuffer _readBuffer;
   
       HttpComms(String myserver) : super(myserver) {
           if (server.endsWith("/")) server = server.substring(0, server.length - 1);
  +
  +        final int bytesPerPoint = 3 * 4 /* + 4*4 */;
  +        final int pointsPerTile = 1024 * 64;
  +        _readBuffer = new _ReadBuffer(bytesPerPoint * pointsPerTile);
       }
   
       @override
  
positive.code:             ws.binaryType = "arraybuffer";
              ws.onMessage.listen((MessageEvent e) {
                  ByteBuffer buf = e.data;
                  readBuffer.push(buf);
              });
              ws.onClose.listen((_) {
                  readBuffer.flush(force: true);
                  c.complete(null);
                  log("done");
              });
  
negative.code:     Future<bool> readAsBytes(String webpath, FlushFunc handler) {
          Completer c = new Completer();
  
          _readBuffer.open(handler);
  
          WebSocket ws = new WebSocket('ws://localhost:12345/points/');
          ws.onOpen.listen((_) {
  