anchor.diff:  // limitations under the License.
   
   import 'dart:async';
  +import 'dart:convert';
   import 'dart:io';
   
   import 'package:ardknob/ardproto.dart';
   import 'package:ardknob/display.dart';
  +import 'package:ardknob/flightgear.dart';
   import 'package:ardknob/pages.dart';
   
   import 'package:logging/logging.dart';
  
positive.code:     print("Error($e) listening to $port: ${e.stackTrace}");
      exit(-1);
    }
  
    var proto = new ArdProto(port);
    var display = new Display(proto);
  
negative.code:     ..add(new NavRadioPage(nav1))
      ..add(new NavRadioPage(nav2))
      ..add(new AltitudePage());
  
    var send = await RawDatagramSocket.bind(InternetAddress.ANY_IP_V4, 1236);
    props.onUpdate.listen((update) {
      log.info('sending: $update to 1235');
      send.send(UTF8.encode(update), InternetAddress.LOOPBACK_IP_V4, 1235);
    });
  
    var sock = await RawDatagramSocket.bind(InternetAddress.ANY_IP_V4, 1234);
    await for (var event in sock) {
      //print(event);
      if (event == RawSocketEvent.READ) {
        Datagram dg = sock.receive();
        props.parse(dg.data);
      }
    }
  }
  
  class NavRadioPage extends Page {
  