org_eclipse_lemminx_services_extensions_HTMLCompletionExtensionsTest_java
org.eclipse.lemminx.services.XMLCompletions
private void collectOpenTagSuggestions(boolean hasOpenBracket, Range replaceRange, CompletionRequest completionRequest, CompletionResponse completionResponse, CancelChecker cancelChecker) {
        try {
            DOMDocument document = completionRequest.getXMLDocument();
            String text = document.getText();
            int tagNameEnd = document.offsetAt(replaceRange.getEnd());
            int newOffset = XMLCompletions.getOffsetFollowedBy(text, tagNameEnd, ScannerState.WithinEndTag, TokenType.EndTagClose);
            if (newOffset != -1) {
                replaceRange.setEnd(document.positionAt(++newOffset));
            }
        }
        catch (BadLocationException document) {
            // empty catch block
        }
        completionRequest.setHasOpenBracket(hasOpenBracket);
        completionRequest.setReplaceRange(replaceRange);
        for (ICompletionParticipant participant : this.getCompletionParticipants()) {
            try {
                participant.onTagOpen(completionRequest, completionResponse, cancelChecker);
            }
            catch (CancellationException e) {
                throw e;
            }
            catch (Exception e) {
                LOGGER.log(Level.SEVERE, "While performing ICompletionParticipant#onTagOpen for participant '" + participant.getClass().getName() + "'.", e);
            }
        }
        DOMElement parentNode = completionRequest.getParentElement();
        if (parentNode != null && !parentNode.getOwnerDocument().hasGrammar()) {
            HashSet seenElements = new HashSet();
            if (parentNode != null && parentNode.isElement() && parentNode.hasChildNodes()) {
                parentNode.getChildren().forEach(node -> {
                    DOMElement element;
                    DOMElement dOMElement = element = node.isElement() ? (DOMElement)node : null;
                    if (element == null || element.getTagName() == null || seenElements.contains(element.getTagName())) {
                        return;
                    }
                    String tag = element.getTagName();
                    seenElements.add(tag);
                    CompletionItem item = new CompletionItem();
                    item.setLabel(tag);
                    item.setKind(CompletionItemKind.Property);
                    item.setFilterText(completionRequest.getFilterForStartTagName(tag));
                    StringBuilder xml = new StringBuilder();
                    xml.append("<");
                    xml.append(tag);
                    if (element.isSelfClosed()) {
                        xml.append(" />");
                    } else {
                        xml.append(">");
                        if (completionRequest.isCompletionSnippetsSupported()) {
                            xml.append("$0");
                        }
                        if (XMLCompletions.isGenerateEndTag(completionRequest, tag)) {
                            xml.append("</").append(tag).append(">");
                        }
                    }
                    item.setTextEdit(Either.forLeft(new TextEdit(replaceRange, xml.toString())));
                    item.setInsertTextFormat(InsertTextFormat.Snippet);
                    completionResponse.addCompletionItem(item);
                });
            }
        }
    }
 -> java.util.List.size(): int -> java.util.List.get(int): java.lang.Object -> java.lang.String.length(): int -> java.lang.String.codePointAt(int): int -> java.lang.Integer.valueOf(int): java.lang.Integer -> java.util.function.Predicate.test(java.lang.Object): boolean -> java.lang.Integer.intValue(): int -> java.lang.Integer.intValue(): int -> java.lang.Integer.intValue(): int -> java.lang.Integer.intValue(): int -> java.lang.Integer.intValue(): int -> java.lang.String.codePointAt(int): int -> java.lang.String.codePointAt(int): int -> java.lang.String.codePointAt(int): int -> java.lang.String.codePointAt(int): int -> java.lang.String.codePointAt(int): int -> java.lang.String.codePointAt(int): int -> java.lang.String.codePointAt(int): int -> java.lang.String.codePointAt(int): int -> java.lang.String.codePointAt(int): int -> java.util.Collection.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.Collection.forEach(java.util.function.Consumer): void -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.toString(): java.lang.String -> java.util.List.add(java.lang.Object): boolean -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.toString(): java.lang.String -> java.util.List.add(java.lang.Object): boolean -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.toString(): java.lang.String -> java.util.List.add(java.lang.Object): boolean -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.toString(): java.lang.String -> java.util.List.add(java.lang.Object): boolean -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.toString(): java.lang.String -> java.util.List.add(java.lang.Object): boolean -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.toString(): java.lang.String -> java.util.List.add(java.lang.Object): boolean -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.Map.get(java.lang.Object): java.lang.Object -> java.lang.String.indexOf(java.lang.String): int -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.toString(): java.lang.String -> java.util.List.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.lang.String.indexOf(java.lang.String): int -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.toString(): java.lang.String -> java.util.List.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.List.isEmpty(): boolean -> java.util.List.stream(): java.util.stream.Stream -> java.util.stream.Stream.filter(java.util.function.Predicate): java.util.stream.Stream -> java.util.stream.Stream.map(java.util.function.Function): java.util.stream.Stream -> java.util.stream.Collectors.toList(): java.util.stream.Collector -> java.util.stream.Stream.collect(java.util.stream.Collector): java.lang.Object -> java.util.List.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.List.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.Iterator.hasNext(): boolean -> java.util.List.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.List.isEmpty(): boolean -> java.util.Iterator.hasNext(): boolean -> java.util.Collection.isEmpty(): boolean -> java.util.List.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.lang.String.equals(java.lang.Object): boolean -> java.lang.String.equals(java.lang.Object): boolean -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.lang.String.equals(java.lang.Object): boolean -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.lang.String.equals(java.lang.Object): boolean -> java.util.Iterator.hasNext(): boolean -> java.util.Collection.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.List.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.lang.Object.equals(java.lang.Object): boolean -> java.util.Collections.emptyList(): java.util.List -> java.util.Collection.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.Iterator.hasNext(): boolean -> java.util.List.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.Iterator.hasNext(): boolean -> java.util.List.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.Iterator.hasNext(): boolean -> java.util.List.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.lang.String.indexOf(java.lang.String): int -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.toString(): java.lang.String -> java.util.List.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.lang.String.equals(java.lang.Object): boolean -> java.lang.String.equals(java.lang.Object): boolean -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.lang.String.equals(java.lang.Object): boolean -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.lang.String.equals(java.lang.Object): boolean -> java.util.Iterator.hasNext(): boolean -> java.util.List.isEmpty(): boolean -> java.util.List.forEach(java.util.function.Consumer): void -> java.util.Set.contains(java.lang.Object): boolean -> java.util.Set.add(java.lang.Object): boolean -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.toString(): java.lang.String -> java.util.List.add(java.lang.Object): boolean
 [CALL] [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] [CALL] [CALL] [EXIT] [CALL] [CALL] [EXIT] -> java.util.List.size(): int -> java.util.List.get(int): java.lang.Object [CALL] [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [CALL] [CALL] -> java.lang.String.length(): int [EXIT] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [CALL] [CALL] [EXIT] [CALL] [EXIT] [CALL] [CALL] [CALL] [CALL] -> java.lang.String.codePointAt(int): int [EXIT] [EXIT] -> java.lang.Integer.valueOf(int): java.lang.Integer -> java.util.function.Predicate.test(java.lang.Object): boolean [CALL] -> java.lang.Integer.intValue(): int -> java.lang.Integer.intValue(): int -> java.lang.Integer.intValue(): int -> java.lang.Integer.intValue(): int -> java.lang.Integer.intValue(): int [EXIT] [EXIT] [EXIT] [CALL] [CALL] [CALL] -> java.lang.String.codePointAt(int): int [EXIT] [EXIT] [EXIT] [CALL] [CALL] [CALL] -> java.lang.String.codePointAt(int): int [EXIT] [EXIT] [CALL] [EXIT] [CALL] [CALL] -> java.lang.String.codePointAt(int): int [EXIT] [EXIT] [CALL] [EXIT] [CALL] [CALL] -> java.lang.String.codePointAt(int): int [EXIT] [EXIT] [CALL] [EXIT] [CALL] [CALL] -> java.lang.String.codePointAt(int): int [EXIT] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [CALL] [EXIT] [CALL] [CALL] [CALL] -> java.lang.String.codePointAt(int): int [EXIT] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [CALL] -> java.lang.String.codePointAt(int): int [EXIT] [EXIT] [CALL] [EXIT] [CALL] [CALL] [CALL] -> java.lang.String.codePointAt(int): int [EXIT] [EXIT] [EXIT] [CALL] [CALL] [CALL] -> java.lang.String.codePointAt(int): int [EXIT] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [EXIT] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [CALL] [CALL] [EXIT] [EXIT] [EXIT] -> java.util.Collection.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object [CALL] [CALL] [EXIT] -> java.util.Collection.forEach(java.util.function.Consumer): void [CALL] [CALL] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.toString(): java.lang.String [CALL] [CALL] [EXIT] [CALL] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] -> java.util.List.add(java.lang.Object): boolean [EXIT] [EXIT] [CALL] [CALL] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.toString(): java.lang.String [CALL] [CALL] [EXIT] [CALL] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] -> java.util.List.add(java.lang.Object): boolean [EXIT] [EXIT] [CALL] [CALL] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.toString(): java.lang.String [CALL] [CALL] [EXIT] [CALL] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] -> java.util.List.add(java.lang.Object): boolean [EXIT] [EXIT] [CALL] [CALL] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.toString(): java.lang.String [CALL] [CALL] [EXIT] [CALL] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] -> java.util.List.add(java.lang.Object): boolean [EXIT] [EXIT] [CALL] [CALL] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.toString(): java.lang.String [CALL] [CALL] [EXIT] [CALL] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] -> java.util.List.add(java.lang.Object): boolean [EXIT] [EXIT] [CALL] [CALL] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.toString(): java.lang.String [CALL] [CALL] [EXIT] [CALL] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] -> java.util.List.add(java.lang.Object): boolean [EXIT] [EXIT] [EXIT] -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object [CALL] [CALL] [EXIT] [CALL] [CALL] -> java.util.Map.get(java.lang.Object): java.lang.Object [EXIT] [EXIT] [CALL] [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [CALL] [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [CALL] [EXIT] -> java.lang.String.indexOf(java.lang.String): int [EXIT] [CALL] [CALL] [CALL] [EXIT] [CALL] [CALL] [CALL] [CALL] -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.toString(): java.lang.String [CALL] [EXIT] [EXIT] [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [CALL] [EXIT] [EXIT] [CALL] [CALL] [CALL] [CALL] [CALL] [CALL] [EXIT] [EXIT] -> java.util.List.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object [CALL] [CALL] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [CALL] [EXIT] -> java.lang.String.indexOf(java.lang.String): int [EXIT] [CALL] [CALL] [CALL] [EXIT] [CALL] [CALL] [CALL] [CALL] -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.toString(): java.lang.String [CALL] [EXIT] [EXIT] [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [EXIT] [EXIT] [EXIT] -> java.util.List.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object [CALL] [EXIT] [CALL] [CALL] [CALL] [CALL] [CALL] [CALL] [CALL] [EXIT] -> java.util.List.isEmpty(): boolean -> java.util.List.stream(): java.util.stream.Stream -> java.util.stream.Stream.filter(java.util.function.Predicate): java.util.stream.Stream -> java.util.stream.Stream.map(java.util.function.Function): java.util.stream.Stream -> java.util.stream.Collectors.toList(): java.util.stream.Collector -> java.util.stream.Stream.collect(java.util.stream.Collector): java.lang.Object [CALL] [CALL] [CALL] [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [CALL] [EXIT] [EXIT] -> java.util.List.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object [CALL] [CALL] [EXIT] [EXIT] [EXIT] [CALL] [EXIT] [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [CALL] [EXIT] [EXIT] [EXIT] [EXIT] -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object [CALL] [CALL] [CALL] [CALL] [EXIT] [EXIT] -> java.util.List.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object [CALL] [CALL] [EXIT] [EXIT] -> java.util.Iterator.hasNext(): boolean [EXIT] [EXIT] [CALL] [CALL] [CALL] [CALL] [CALL] [EXIT] [EXIT] -> java.util.List.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object [CALL] [CALL] [EXIT] [EXIT] -> java.util.Iterator.hasNext(): boolean [EXIT] [EXIT] [EXIT] -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object [CALL] [EXIT] [CALL] [CALL] [CALL] [CALL] [EXIT] [EXIT] -> java.util.List.isEmpty(): boolean [EXIT] [EXIT] -> java.util.Iterator.hasNext(): boolean -> java.util.Collection.isEmpty(): boolean [CALL] [CALL] [EXIT] [EXIT] [CALL] [CALL] -> java.util.List.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object [CALL] [EXIT] -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object [CALL] [EXIT] -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object [CALL] [EXIT] -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object [CALL] -> java.lang.String.equals(java.lang.Object): boolean -> java.lang.String.equals(java.lang.Object): boolean [EXIT] -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object [CALL] -> java.lang.String.equals(java.lang.Object): boolean [EXIT] -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object [CALL] -> java.lang.String.equals(java.lang.Object): boolean [EXIT] -> java.util.Iterator.hasNext(): boolean [CALL] [CALL] [EXIT] [EXIT] [EXIT] [EXIT] [EXIT] [EXIT] [EXIT] -> java.util.Collection.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean [CALL] [CALL] [CALL] [EXIT] [EXIT] [CALL] [CALL] [CALL] [EXIT] [EXIT] -> java.util.List.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object [CALL] [CALL] [EXIT] [EXIT] [EXIT] -> java.lang.Object.equals(java.lang.Object): boolean [EXIT] [CALL] [CALL] [EXIT] -> java.util.Collections.emptyList(): java.util.List [EXIT] -> java.util.Collection.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean [EXIT] -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.Iterator.hasNext(): boolean [CALL] [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [CALL] [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [CALL] [CALL] [CALL] [CALL] [EXIT] [EXIT] -> java.util.List.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object [CALL] [CALL] [EXIT] [EXIT] -> java.util.Iterator.hasNext(): boolean [EXIT] [EXIT] [CALL] [CALL] [CALL] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [CALL] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [CALL] [CALL] [CALL] [CALL] [EXIT] [EXIT] [CALL] -> java.util.List.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object [CALL] [EXIT] -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.Iterator.hasNext(): boolean [EXIT] [CALL] [CALL] [CALL] [EXIT] [EXIT] -> java.util.List.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object [CALL] [CALL] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [CALL] [EXIT] -> java.lang.String.indexOf(java.lang.String): int [EXIT] [CALL] [CALL] [CALL] [EXIT] [CALL] [CALL] [CALL] [CALL] -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.toString(): java.lang.String [CALL] [EXIT] [EXIT] [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] -> java.util.List.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object [CALL] [EXIT] -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object [CALL] [EXIT] -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object [CALL] [EXIT] -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object [CALL] -> java.lang.String.equals(java.lang.Object): boolean -> java.lang.String.equals(java.lang.Object): boolean [EXIT] -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object [CALL] -> java.lang.String.equals(java.lang.Object): boolean [EXIT] -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object [CALL] -> java.lang.String.equals(java.lang.Object): boolean [EXIT] -> java.util.Iterator.hasNext(): boolean [CALL] [CALL] [EXIT] [EXIT] [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [CALL] [EXIT] [EXIT] -> java.util.List.isEmpty(): boolean [EXIT] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [EXIT] -> java.util.List.forEach(java.util.function.Consumer): void [CALL] [CALL] [CALL] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [EXIT] -> java.util.Set.contains(java.lang.Object): boolean [CALL] [EXIT] -> java.util.Set.add(java.lang.Object): boolean [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder [CALL] [EXIT] -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.toString(): java.lang.String [CALL] [CALL] [EXIT] [CALL] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] -> java.util.List.add(java.lang.Object): boolean [EXIT] [EXIT] [CALL] [CALL] [CALL] [EXIT] [EXIT] [EXIT] [EXIT]