anchor.diff:  
     _LogItemSink _logSink;
   
  +  LogItemTransformer({this.allowNonSequentialMsgs: false});
  +
     /// The MsgN of the last message in the session log.
     int get lastMsgN => _logSink.lastMsgN;
   
     /// The number of missing messages.
     int get missingMsgCount => _logSink.missingMsgCount;
  -
  -  LogItemTransformer({this.allowNonSequentialMsgs: false});
   
     @override
     List<String> convert(String input) {
  
positive.code:     StringBuffer logEntry;
      for (String line in new LineSplitter().convert(expanded)) {
        if (line.startsWith("~")) {
          if (logEntry != null) {
            _sink.add(logEntry.toString());
          }
          logEntry = new StringBuffer()..write(line);
        } else {
          if (logEntry != null) {
            logEntry.writeln();
            logEntry.write(line);
  
negative.code: 
    // Sanity check tracking: {"sessionID":"1422988642527.3444824218750","msgN":0,
    String sessionID;
    int lastMsgN = -1;
  
    /// The carry-over from the previous chunk.
    String _carry;
  