private static StackTraceElement [] dumpThreadInfos(ThreadInfo @NotNull [] threadInfo, @NotNull Writer f) {
    StackTraceElement[] edtStack = null;
    for (ThreadInfo info : threadInfo) {
      if (info != null) {
        String name = info.getThreadName();
        StackTraceElement[] stackTrace = info.getStackTrace();
        if (edtStack == null && isEDT(name)) {
          edtStack = stackTrace;
        }
        if (isIdleDefaultCoroutineDispatch(name, stackTrace)) {
          // avoid 64 coroutine dispatch idle threads littering thread dump
          continue;
        }
        dumpCallStack(info, f, stackTrace);
      }
    }
    return edtStack;
  }
private static StackTraceElement [] dumpThreadInfos(ThreadInfo @NotNull [] threadInfo, @NotNull Writer f)