public void iterateSimpleCycles(@NotNull Consumer<? super List<Node>> consumer) {
    if (myGraph == null) {
      throw new IllegalArgumentException("Null graph.");
    }
    initState(consumer);

    int startIndex = 0;
    int size = myGraph.getNodes().size();
    while (startIndex < size) {
      Pair<Graph<Node>, Integer> minSCCGResult = findMinSCSG(startIndex);
      if (minSCCGResult != null) {
        startIndex = minSCCGResult.getSecond();
        Graph<Node> scg = minSCCGResult.getFirst();
        Node startV = toV(startIndex);

        //for (E e : scg.outgoingEdgesOf(startV)) {
        //  Node Node = myGraph.getEdgeTarget(e);
        scg.getOut(startV).forEachRemaining(Node -> {
          myBlocked.remove(Node);
          getBSet(Node).clear();
        });
        findCyclesInSCG(startIndex, startIndex, scg);
        startIndex++;
      }
      else {
        break;
      }
    }

    clearState();
  }
public void iterateSimpleCycles(@NotNull Consumer<? super List<Node>> consumer)