public boolean equals(Object obj) {
    synchronized (mySections) {
      if (!(obj instanceof CompositeAppearance appearance)) return false;
      if (SwingUtilities.isEventDispatchThread()) {
        return appearance.mySections.equals(mySections);
      }
      else {
        return new ArrayList<>(appearance.mySections).equals(new ArrayList<>(mySections));
      }
    }
  }
public boolean equals(Object obj)