anchor.diff:      */
      
      void _processData(data) {
  -     var remData = data;
  +     if (_remData != null) {
  +       // append data to remaining data
  +       _remData.addAll(data);
  +     } else {
  +       // No remaining data
  +       _remData = data;
  +     }
        
  +     var lenBefore, lenAfter;
        do {
  -     remData = _processMqttMessage(remData);
  -     } while (remData != null);     
  +       lenBefore = _remData.length;
  +       _remData = _processMqttMessage(_remData);
  +       lenAfter = (_remData != null) ? _remData.length : 0;
  +     } while (lenBefore != lenAfter && lenAfter >= 2);     
      }
      
      /**
  
positive.code:      */
      int _handlePublish(data) {
        MqttMessagePublish m = new MqttMessagePublish.decode(data, debugMessage);     
        
        // QOS_1 and QOS_2 messages need to be acked
        if (m.QoS > 0) {   
  
negative.code:   Map<int, Completer>  _messagesToCompleteMap;
    final String _userName;
    final String _password;
    var _remData;
    
    var _liveTimer;
    
  