import java.util.*;
import Node.Details;

class Node<E> {
    public class Details {
        public E data;
    }
    public Details addNode(Node<E> child) {
        return new Details();
    }
}

class Test {
  public static void main(String[] args) {
     Map<String, Details> m = null;
     Map<String, Node.Details> sorted1;
     sorted1 = m;
  }
}
