anchor.diff:  
   @Command("dsa-node", description: "Get a Simple Description of a DSA Node", usage: "<path>", prefix: "DSA")
   getNodeInfo(String input) async {
  -  var node = await link.requester.getRemoteNode(input).timeout(const Duration(seconds: 3), onTimeout: () => null);
  +  RemoteNode node = await link.requester
  +    .getRemoteNode(input)
  +    .timeout(const Duration(seconds: 3), onTimeout: () => null);
   
     if (node == null) {
       return "ERROR: Node not Found.";
     }
   
  -  var childrenCount = node.children.keys.length;
  +  if (node.configs.containsKey(r"$disconnectedTs")) {
  +    return "ERROR: Node is disconnected.";
  +  }
  +
  +  var childrenCount = node.children.keys.where((k) {
  +    return node.children[k].configs[r"$disconnectedTs"] == null;
  +  }).length;
     var path = new Path(node.remotePath);
     var name = node.configs.containsKey(r"$name") ? node.configs[r"$name"] : path.name;
   
  
positive.code: 
  @Command("dsa-value", description: "Get DSA Value", usage: "<path>", prefix: "DSA")
  getDsaValue(String input) async {
    RemoteNode node = await link.requester.getRemoteNode(input).timeout(const Duration(seconds: 3), onTimeout: () => null);
  
    if (node == null) {
      return "ERROR: Node not Found.";
  
negative.code: 
  @Command("dsa-ls", description: "Get a Simple List of DSA Nodes", usage: "<path>", prefix: "DSA")
  getSimpleList(String input) async {
    var node = await link.requester
      .getRemoteNode(input)
      .timeout(const Duration(seconds: 3), onTimeout: () => null);
  
    if (node == null) {
      return "ERROR: Node not Found.";
    }
  
    var names = node.children.keys.where((k) {
      return node.children[k].configs[r"$disconnectedTs"] == null;
    }).join(", ");
  
    if (names.isEmpty) {
      return "No Children.";
  