// Path: json-unit-core/src/main/java/net/javacrumbs/jsonunit/core/internal/JsonUtils.java
// static String prettyPrint(Map<String, Object> map) {
//     StringBuilder builder = new StringBuilder();
//     builder.append("{");
//     Iterator<Entry<String, Object>> entries = map.entrySet().stream().sorted(comparingByKey()).iterator();
//     while (entries.hasNext()) {
//         Entry<String, Object> entry = entries.next();
//         builder.append('"').append(entry.getKey()).append('"').append(":");
//         appendQuoteString(entry.getValue(), builder);
//         if (entries.hasNext()) {
//             builder.append(",");
//         }
//     }
//     builder.append("}");
//     return builder.toString();
// }


import java.math.BigDecimal;
import java.util.Collections;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.LinkedList;
import static net.javacrumbs.jsonunit.core.internal.JsonUtils.prettyPrint;
        public Object getValue() {
            return null;
        }

        @Override
        public void ___do_not_implement_this_interface_seriously() {}

        @Override
        public String toString() {
            return "<missing>";
        }
    };
    interface ValueExtractor {
        Object getValue(Node node);
    }

    class JsonMap extends LinkedHashMap<String, Object> implements NodeWrapper {
        private final Node wrappedNode;

        JsonMap(Node node) {
            wrappedNode = node;
            Iterator<KeyValue> fields = node.fields();
            while (fields.hasNext()) {
                KeyValue keyValue = fields.next();
                put(keyValue.getKey(), keyValue.getValue().getValue());
            }
        }

        @Override
        public String toString() {
// Path: json-unit-core/src/main/java/net/javacrumbs/jsonunit/core/internal/JsonUtils.java
// static String prettyPrint(Map<String, Object> map) {
//     StringBuilder builder = new StringBuilder();
//     builder.append("{");
//     Iterator<Entry<String, Object>> entries = map.entrySet().stream().sorted(comparingByKey()).iterator();
//     while (entries.hasNext()) {
//         Entry<String, Object> entry = entries.next();
//         builder.append('"').append(entry.getKey()).append('"').append(":");
//         appendQuoteString(entry.getValue(), builder);
//         if (entries.hasNext()) {
//             builder.append(",");
//         }
//     }
//     builder.append("}");
//     return builder.toString();
// }


// Path: json-unit-core/src/main/java/net/javacrumbs/jsonunit/core/internal/Node.java
import java.math.BigDecimal;
import java.util.Collections;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.LinkedList;
import static net.javacrumbs.jsonunit.core.internal.JsonUtils.prettyPrint;

        public Object getValue() {
            return null;
        }

        @Override
        public void ___do_not_implement_this_interface_seriously() {}

        @Override
        public String toString() {
            return "<missing>";
        }
    };
    interface ValueExtractor {
        Object getValue(Node node);
    }

    class JsonMap extends LinkedHashMap<String, Object> implements NodeWrapper {
        private final Node wrappedNode;

        JsonMap(Node node) {
            wrappedNode = node;
            Iterator<KeyValue> fields = node.fields();
            while (fields.hasNext()) {
                KeyValue keyValue = fields.next();
                put(keyValue.getKey(), keyValue.getValue().getValue());
            }
        }

        @Override
        public String toString() {
            return prettyPrint(this);