@Override
  public boolean equals(Object o) {
    if (this == o) return true;
    if (o == null || getClass() != o.getClass()) return false;

    AnsiTerminalEmulator emulator = (AnsiTerminalEmulator)o;

    if (myIsItalic != emulator.myIsItalic) return false;
    if (myIsInverse != emulator.myIsInverse) return false;
    if (myIsConseal != emulator.myIsConseal) return false;
    if (myIsCrossedOut != emulator.myIsCrossedOut) return false;
    if (myIsFraktur != emulator.myIsFraktur) return false;
    if (myIsOverlined != emulator.myIsOverlined) return false;
    if (myFont != emulator.myFont) return false;
    if (myWeight != emulator.myWeight) return false;
    if (myUnderline != emulator.myUnderline) return false;
    if (myBlink != emulator.myBlink) return false;
    if (myFrameType != emulator.myFrameType) return false;
    if (!Objects.equals(myBackgroundColor, emulator.myBackgroundColor)) {
      return false;
    }
    if (!Objects.equals(myForegroundColor, emulator.myForegroundColor)) {
      return false;
    }

    return true;
  }
@Override
  public boolean equals(Object o)