diff --git a/core/src/main/java/org/owasp/dependencycheck/analyzer/PinnedMavenInstallAnalyzer.java b/core/src/main/java/org/owasp/dependencycheck/analyzer/PinnedMavenInstallAnalyzer.java index 34285b80a08..c4d2f7349ae 100644 --- a/core/src/main/java/org/owasp/dependencycheck/analyzer/PinnedMavenInstallAnalyzer.java +++ b/core/src/main/java/org/owasp/dependencycheck/analyzer/PinnedMavenInstallAnalyzer.java @@ -19,11 +19,14 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.DeserializationFeature; +import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectReader; import com.github.packageurl.MalformedPackageURLException; import com.github.packageurl.PackageURL; import com.github.packageurl.PackageURLBuilder; +import java.util.Map; +import java.util.stream.Collectors; import org.owasp.dependencycheck.Engine; import org.owasp.dependencycheck.analyzer.exception.AnalysisException; import org.owasp.dependencycheck.data.nvd.ecosystem.Ecosystem; @@ -118,26 +121,48 @@ protected void analyzeDependency(Dependency dependency, Engine engine) throws An } final DependencyTree tree; + List deps; try { - final InstallFile installFile = INSTALL_FILE_READER.readValue(dependencyFile); - tree = installFile.getDependencyTree(); - } catch (IOException e) { - return; - } + JsonNode jsonNode = MAPPER.readTree(dependencyFile); + JsonNode v2Version = jsonNode.path("version"); + JsonNode v010Version = jsonNode.path("dependency_tree").path("version"); + + if (v2Version.isTextual()) { + final InstallFileV2 installFile = INSTALL_FILE_V2_READER.readValue(dependencyFile); + if (!Objects.equals(installFile.getAutogeneratedSentinel(), "THERE_IS_NO_DATA_ONLY_ZUUL")) { + return; + } + if (!Objects.equals(installFile.getVersion(), "2")) { + LOGGER.warn("Unsupported pinned maven_install.json version {}. Continuing optimistically.", installFile.getVersion()); + } + deps = installFile.getArtifacts().entrySet().stream().map(entry -> new MavenDependency( + entry.getKey() + ":" + entry.getValue().getVersion() + )).collect(Collectors.toList()); + } else if (v010Version.isTextual()) { + final InstallFile installFile = INSTALL_FILE_READER.readValue(dependencyFile); + tree = installFile.getDependencyTree(); + if (tree == null) { + return; + } else if (!Objects.equals(tree.getAutogeneratedSentinel(), "THERE_IS_NO_DATA_ONLY_ZUUL")) { + return; + } + if (!Objects.equals(tree.getVersion(), "0.1.0")) { + LOGGER.warn("Unsupported pinned maven_install.json version {}. Continuing optimistically.", tree.getVersion()); + } + deps = tree.getDependencies(); + } else { + LOGGER.warn("No pinned maven_install.json version found. Cannot Parse"); + return; + } - if (tree == null) { - return; - } else if (!Objects.equals(tree.getAutogeneratedSentinel(), "THERE_IS_NO_DATA_ONLY_ZUUL")) { + + } catch (IOException e) { + System.out.println("e"); return; } engine.removeDependency(dependency); - if (!Objects.equals(tree.getVersion(), "0.1.0")) { - LOGGER.warn("Unsupported pinned maven_install.json version {}. Continuing optimistically.", tree.getVersion()); - } - - List deps = tree.getDependencies(); if (deps == null) { deps = Collections.emptyList(); } @@ -300,7 +325,12 @@ public String getVersion() { * {@code .dependency_tree.dependencies}. */ private static class MavenDependency { + public MavenDependency(String coord) { + this.coord = coord; + } + public MavenDependency() { + } /** * The standard Maven coordinate string * {@code group:artifact[:optional classifier][:optional packaging]:version}. @@ -322,10 +352,98 @@ public String getCoord() { * A reusable reader for {@link InstallFile}. */ private static final ObjectReader INSTALL_FILE_READER; + private static final ObjectReader INSTALL_FILE_V2_READER; + private static final ObjectMapper MAPPER; static { - final ObjectMapper mapper = new ObjectMapper(); - mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); - INSTALL_FILE_READER = mapper.readerFor(InstallFile.class); + MAPPER = new ObjectMapper(); + MAPPER.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); + INSTALL_FILE_READER = MAPPER.readerFor(InstallFile.class); + INSTALL_FILE_V2_READER = MAPPER.readerFor(InstallFileV2.class); } + + /** + * Represents the entire pinned Maven dependency set in an install.json + * file. + * + *

+ * At the time of writing, the latest version is 2, and the dependencies + * are stored in {@code .artifacts}. + * + *

+ * The top-level keys we care about are {@code .artifacts}. {@code .version}. + */ + private static class InstallFileV2 { + + /** + * The file format version. + */ + @JsonProperty("version") + private String version; + + /** + * A list of Maven dependencies made available. Note that this map is transitively closed and + * pinned to a specific version of each artifact. + *

+ * The key is the Maven coordinate string, less the version + * {@code group:artifact[:optional classifier][:optional packaging]}. + *

+ * The value contains the version of the artifact. + */ + @JsonProperty("artifacts") + private Map artifacts; + + /** + * A sentinel value placed in the file to indicate that it is an auto-generated pinned maven + * install file. + */ + @JsonProperty("__AUTOGENERATED_FILE_DO_NOT_MODIFY_THIS_FILE_MANUALLY") + private String autogeneratedSentinel; + + /** + * Returns artifacts. + * + * @return artifacts + */ + public Map getArtifacts() { + return artifacts; + } + + /** + * Returns version. + * + * @return version + */ + public String getVersion() { + return version; + } + + /** + * Returns autogeneratedSentinel. + * + * @return autogeneratedSentinel + */ + public String getAutogeneratedSentinel() { + return autogeneratedSentinel; + } + } + private static class Artifactv2 { + + /** + * The version of the artifact. + */ + @JsonProperty("version") + private String version; + + /** + * Returns the value of version. + * + * @return the value of version + */ + public String getVersion() { + return version; + } + } + + } diff --git a/core/src/test/java/org/owasp/dependencycheck/analyzer/PinnedMavenInstallAnalyzerTest.java b/core/src/test/java/org/owasp/dependencycheck/analyzer/PinnedMavenInstallAnalyzerTest.java index 5732bb7d39e..c339e4234ae 100644 --- a/core/src/test/java/org/owasp/dependencycheck/analyzer/PinnedMavenInstallAnalyzerTest.java +++ b/core/src/test/java/org/owasp/dependencycheck/analyzer/PinnedMavenInstallAnalyzerTest.java @@ -80,6 +80,8 @@ public void testGetName() { public void testSupportsFiles() { assertTrue(analyzer.accept(new File("install_maven.json"))); assertTrue(analyzer.accept(new File("maven_install.json"))); + assertTrue(analyzer.accept(new File("maven_install_v010.json"))); + assertTrue(analyzer.accept(new File("maven_install_v2.json"))); assertTrue(analyzer.accept(new File("rules_jvm_external_install.json"))); assertTrue(analyzer.accept(new File("pinned_install_gplonly.json"))); assertFalse("should not accept Cloudflare install.json", analyzer.accept(new File("install.json"))); @@ -89,12 +91,12 @@ public void testSupportsFiles() { } /** - * Tests that the analyzer correctly pulls dependencies out of a pinned {@code maven_install.json}. + * Tests that the analyzer correctly pulls dependencies out of a pinned v0.1.0 {@code maven_install.json}. */ @Test - public void testAnalyzePinnedInstallJson() throws Exception { + public void testAnalyzePinnedInstallJsonV010() throws Exception { try (Engine engine = new Engine(getSettings())) { - final Dependency result = new Dependency(BaseTest.getResourceAsFile(this, "maven_install.json")); + final Dependency result = new Dependency(BaseTest.getResourceAsFile(this, "maven_install_v010.json")); engine.addDependency(result); analyzer.analyze(result, engine); assertFalse(ArrayUtils.contains(engine.getDependencies(), result)); @@ -111,6 +113,29 @@ public void testAnalyzePinnedInstallJson() throws Exception { } } + /** + * Tests that the analyzer correctly pulls dependencies out of a pinned v2 {@code maven_install.json}. + */ + @Test + public void testAnalyzePinnedInstallJsonV2() throws Exception { + try (Engine engine = new Engine(getSettings())) { + final Dependency result = new Dependency(BaseTest.getResourceAsFile(this, "maven_install_v2.json")); + engine.addDependency(result); + analyzer.analyze(result, engine); + assertFalse(ArrayUtils.contains(engine.getDependencies(), result)); + assertEquals(113, engine.getDependencies().length); + boolean found = false; + for (Dependency d : engine.getDependencies()) { + if ("io.grpc:grpc-protobuf".equals(d.getName())) { + found = true; + assertEquals("1.48.1", d.getVersion()); + assertEquals(Ecosystem.JAVA, d.getEcosystem()); + } + } + assertTrue("Expected to find com.google.errorprone:error_prone_annotations:2.3.4", found); + } + } + /** * Tests that the analyzer ignores a Cloudflare-style {@code install.json}. */ diff --git a/src/test/resources/maven_install.json b/src/test/resources/maven_install_v010.json similarity index 100% rename from src/test/resources/maven_install.json rename to src/test/resources/maven_install_v010.json diff --git a/src/test/resources/maven_install_v2.json b/src/test/resources/maven_install_v2.json new file mode 100644 index 00000000000..1ced30e0584 --- /dev/null +++ b/src/test/resources/maven_install_v2.json @@ -0,0 +1,2319 @@ +{ + "__AUTOGENERATED_FILE_DO_NOT_MODIFY_THIS_FILE_MANUALLY": "THERE_IS_NO_DATA_ONLY_ZUUL", + "__INPUT_ARTIFACTS_HASH": 1516511089, + "__RESOLVED_ARTIFACTS_HASH": -1733639136, + "conflict_resolution": { + "com.google.auto.value:auto-value-annotations:1.9": "com.google.auto.value:auto-value-annotations:1.10.4", + "com.google.code.gson:gson:2.8.9": "com.google.code.gson:gson:2.9.0", + "com.google.errorprone:error_prone_annotations:2.23.0": "com.google.errorprone:error_prone_annotations:2.24.1", + "com.google.errorprone:error_prone_annotations:2.3.2": "com.google.errorprone:error_prone_annotations:2.24.1", + "com.google.guava:failureaccess:1.0.1": "com.google.guava:failureaccess:1.0.2", + "com.google.guava:guava-testlib:31.1-jre": "com.google.guava:guava-testlib:33.0.0-jre", + "com.google.guava:guava:31.1-jre": "com.google.guava:guava:33.0.0-jre", + "com.google.j2objc:j2objc-annotations:1.3": "com.google.j2objc:j2objc-annotations:2.8", + "com.google.truth:truth:1.1.2": "com.google.truth:truth:1.4.0", + "org.checkerframework:checker-qual:3.19.0": "org.checkerframework:checker-qual:3.42.0", + "org.mockito:mockito-core:4.3.1": "org.mockito:mockito-core:5.4.0", + "org.ow2.asm:asm:9.2": "org.ow2.asm:asm:9.6", + "org.yaml:snakeyaml:1.28": "org.yaml:snakeyaml:2.0" + }, + "artifacts": { + "aopalliance:aopalliance": { + "shasums": { + "jar": "0addec670fedcd3f113c5c8091d783280d23f75e3acb841b61a9cdb079376a08" + }, + "version": "1.0" + }, + "com.beust:jcommander": { + "shasums": { + "jar": "deeac157c8de6822878d85d0c7bc8467a19cc8484d37788f7804f039dde280b1" + }, + "version": "1.82" + }, + "com.github.ben-manes.caffeine:caffeine": { + "shasums": { + "jar": "8a9b54d3506a3b92ee46b217bcee79196b21ca6d52dc2967c686a205fb2f9c15" + }, + "version": "3.0.5" + }, + "com.github.kevinstern:software-and-algorithms": { + "shasums": { + "jar": "61ab82439cef37343b14f53154c461619375373a56b9338e895709fb54e0864c" + }, + "version": "1.0" + }, + "com.github.stephenc.jcip:jcip-annotations": { + "shasums": { + "jar": "4fccff8382aafc589962c4edb262f6aa595e34f1e11e61057d1c6a96e8fc7323" + }, + "version": "1.0-1" + }, + "com.google.android:annotations": { + "shasums": { + "jar": "ba734e1e84c09d615af6a09d33034b4f0442f8772dec120efb376d86a565ae15" + }, + "version": "4.1.1.4" + }, + "com.google.api-client:google-api-client": { + "shasums": { + "jar": "f195cd6228d3f99fa7e30ff2dee60ad0f2c7923be31399a7dcdc1abd679aa22e" + }, + "version": "1.35.2" + }, + "com.google.api-client:google-api-client-gson": { + "shasums": { + "jar": "54e5be675e5c2ab0958647fcaa35c14bd8f7c08358c634f5ab786e4ed7268576" + }, + "version": "1.35.2" + }, + "com.google.api.grpc:proto-google-common-protos": { + "shasums": { + "jar": "0d830380ec66bd7e25eee63aa0a5a08578e46ad187fb72d99b44d9ba22827f91" + }, + "version": "2.9.0" + }, + "com.google.auth:google-auth-library-credentials": { + "shasums": { + "jar": "153fa3cdc153ac3ee25649e8037aeda4438256153d35acf3c27e83e4ee6165a4" + }, + "version": "1.6.0" + }, + "com.google.auth:google-auth-library-oauth2-http": { + "shasums": { + "jar": "2220f02fcfc480e3798bab43b2618d158319f9fcb357c9eb04b4a68117699808" + }, + "version": "1.6.0" + }, + "com.google.auto.service:auto-service": { + "shasums": { + "jar": "4ae44dd05b49a1109a463c0d2aaf920c24f76d1e996bb89f29481c4ff75ec526" + }, + "version": "1.0" + }, + "com.google.auto.service:auto-service-annotations": { + "shasums": { + "jar": "c7bec54b7b5588b5967e870341091c5691181d954cf2039f1bf0a6eeb837473b" + }, + "version": "1.0.1" + }, + "com.google.auto.value:auto-value": { + "shasums": { + "jar": "2067b788d4c1c96fd621ad861053a5c4d8a801cfafc77fec20d49a6e9340a745" + }, + "version": "1.8.2" + }, + "com.google.auto.value:auto-value-annotations": { + "shasums": { + "jar": "e1c45e6beadaef9797cb0d9afd5a45621ad061cd8632012f85582853a3887825" + }, + "version": "1.10.4" + }, + "com.google.auto:auto-common": { + "shasums": { + "jar": "f43f29fe2a6ebaf04b2598cdeec32a4e346d49a9404e990f5fc19c19f3a28d0e" + }, + "version": "1.2.1" + }, + "com.google.code.findbugs:jsr305": { + "shasums": { + "jar": "766ad2a0783f2687962c8ad74ceecc38a28b9f72a2d085ee438b7813e928d0c7" + }, + "version": "3.0.2" + }, + "com.google.code.gson:gson": { + "shasums": { + "jar": "c96d60551331a196dac54b745aa642cd078ef89b6f267146b705f2c2cbef052d" + }, + "version": "2.9.0" + }, + "com.google.code.java-allocation-instrumenter:java-allocation-instrumenter": { + "shasums": { + "jar": "1ef5535a8bd41cf3072469f381b9ee6ab28275311a7499f53d6e52adf976fef0" + }, + "version": "3.3.0" + }, + "com.google.errorprone:error_prone_annotation": { + "shasums": { + "jar": "64eef5d9f2cd58459221f0a664e3add6d22abe7ecf5293601f1044555f5224f1" + }, + "version": "2.23.0" + }, + "com.google.errorprone:error_prone_annotations": { + "shasums": { + "jar": "19fe2f7155d20ea093168527999da98108103ee546d1e8b726bc4b27c31a3c30" + }, + "version": "2.24.1" + }, + "com.google.errorprone:error_prone_check_api": { + "shasums": { + "jar": "4b0fc913b91d094221f1c7152fa74470eb8836cd6289b9f2de61411d72349290" + }, + "version": "2.23.0" + }, + "com.google.errorprone:error_prone_core": { + "shasums": { + "jar": "5f18d75490041ba6b446c9dc014f373b5eac1865463cdc6fd20f277e515fd9d7" + }, + "version": "2.23.0" + }, + "com.google.errorprone:error_prone_type_annotations": { + "shasums": { + "jar": "97c4e41de140f9c5ba558afd1d1e9a8babdd46208266e19733a79795b817b5ec" + }, + "version": "2.23.0" + }, + "com.google.flogger:flogger": { + "shasums": { + "jar": "b5ecd1483e041197012786f749968a62063c1964d3ecfbf96ba92a95797bb8f5" + }, + "version": "0.5.1" + }, + "com.google.flogger:flogger-system-backend": { + "shasums": { + "jar": "685de33b53eb313049bbeee7f4b7a80dd09e8e754e96b048a3edab2cebb36442" + }, + "version": "0.5.1" + }, + "com.google.flogger:google-extensions": { + "shasums": { + "jar": "8b0862cad85b9549f355fe383c6c63816d2f19529634e033ae06d0107ab110b9" + }, + "version": "0.5.1" + }, + "com.google.guava:failureaccess": { + "shasums": { + "jar": "8a8f81cf9b359e3f6dfa691a1e776985c061ef2f223c9b2c80753e1b458e8064" + }, + "version": "1.0.2" + }, + "com.google.guava:guava": { + "shasums": { + "jar": "f4d85c3e4d411694337cb873abea09b242b664bb013320be6105327c45991537" + }, + "version": "33.0.0-jre" + }, + "com.google.guava:guava-testlib": { + "shasums": { + "jar": "79626019fed282b70eef91f645a9febd5f6b9f7be46484b6b328313a481f05f0" + }, + "version": "33.0.0-jre" + }, + "com.google.guava:listenablefuture": { + "shasums": { + "jar": "b372a037d4230aa57fbeffdef30fd6123f9c0c2db85d0aced00c91b974f33f99" + }, + "version": "9999.0-empty-to-avoid-conflict-with-guava" + }, + "com.google.http-client:google-http-client": { + "shasums": { + "jar": "82ca0e08171846d1768d5ac3f13244d6fe5a54102c14735ef40bf15d57d478e5" + }, + "version": "1.42.0" + }, + "com.google.http-client:google-http-client-apache-v2": { + "shasums": { + "jar": "1fc4964236b67cf3c5651d7ac1dff668f73b7810c7f1dc0862a0e5bc01608785" + }, + "version": "1.42.0" + }, + "com.google.http-client:google-http-client-gson": { + "shasums": { + "jar": "cb852272c1cb0c8449d8b1a70f3e0f2c1efb2063e543183faa43078fb446f540" + }, + "version": "1.42.0" + }, + "com.google.inject:guice": { + "shasums": { + "jar": "4130e50bfac48099c860f0d903b91860c81a249c90f38245f8fed58fc817bc26" + }, + "version": "5.1.0" + }, + "com.google.j2objc:j2objc-annotations": { + "shasums": { + "jar": "f02a95fa1a5e95edb3ed859fd0fb7df709d121a35290eff8b74dce2ab7f4d6ed" + }, + "version": "2.8" + }, + "com.google.jimfs:jimfs": { + "shasums": { + "jar": "de16d5c8489729a8512f1a02fbd81f58f89249b72066987da4cc5c87ecb9f72d" + }, + "version": "1.2" + }, + "com.google.oauth-client:google-oauth-client": { + "shasums": { + "jar": "193edf97aefa28b93c5892bdc598bac34fa4c396588030084f290b1440e8b98a" + }, + "version": "1.34.1" + }, + "com.google.testing.compile:compile-testing": { + "shasums": { + "jar": "92cfbee5ad356a403d36688ab7bae74be65db9a117478ace34ac3ab4d1f9feb9" + }, + "version": "0.18" + }, + "com.google.testparameterinjector:test-parameter-injector": { + "shasums": { + "jar": "a1ac1820becc772baaac57c4d2a4d49b6f7920e5dfd25b293ba8fb933a11dfe2" + }, + "version": "1.15" + }, + "com.google.truth.extensions:truth-java8-extension": { + "shasums": { + "jar": "293f4e4c59ce48e8b68651321d2d9f2355534412b221369b2af8ff76e6acf381" + }, + "version": "1.4.0" + }, + "com.google.truth.extensions:truth-liteproto-extension": { + "shasums": { + "jar": "2445c955286b8bc58903a853d4b9166000c94e4b95aea6ac9da3e1fdc3e08f10" + }, + "version": "1.4.0" + }, + "com.google.truth.extensions:truth-proto-extension": { + "shasums": { + "jar": "99e6cede45cb1fe962e6ae4e95fb045df8038b01eee03eee362bb073e42f54fc" + }, + "version": "1.4.0" + }, + "com.google.truth:truth": { + "shasums": { + "jar": "235c28e96ee6701ab01cc852fb294cb0f34756f636a8154b9aef08fb1215bbc4" + }, + "version": "1.4.0" + }, + "com.google.turbine:turbine": { + "shasums": { + "jar": "3bb883977330ec99dd11d8bba0c9c9084b356189807920903984215a466c81ac" + }, + "version": "0.5.0" + }, + "com.ryanharter.auto.value:auto-value-gson-extension": { + "shasums": { + "jar": "261be84be30a56994e132d718a85efcd579197a2edb9426b84c5722c56955eca" + }, + "version": "1.3.1" + }, + "com.ryanharter.auto.value:auto-value-gson-factory": { + "shasums": { + "jar": "5a76c3d401c984999d59868f08df05a15613d1428f7764fed80b722e2a277f6c" + }, + "version": "1.3.1" + }, + "com.ryanharter.auto.value:auto-value-gson-runtime": { + "shasums": { + "jar": "84ee23b7989d4bf19930b5bd3d03c0f2efb9e73bcee3a0208a9d1b2e1979c049" + }, + "version": "1.3.1" + }, + "com.squareup:javapoet": { + "shasums": { + "jar": "2b70cdfa8c9e997b4007035a266c273c0df341f9c57c9d0b45a680ae3fd882db" + }, + "version": "1.12.0" + }, + "commons-collections:commons-collections": { + "shasums": { + "jar": "eeeae917917144a68a741d4c0dff66aa5c5c5fd85593ff217bced3fc8ca783b8" + }, + "version": "3.2.2" + }, + "commons-lang:commons-lang": { + "shasums": { + "jar": "50f11b09f877c294d56f24463f47d28f929cf5044f648661c0f0cfbae9a2f49c" + }, + "version": "2.6" + }, + "io.github.eisop:dataflow-errorprone": { + "shasums": { + "jar": "89b4f5d2bd5059f067c5982a0e5988b87dfc8a8234795d68c6f3178846de3319" + }, + "version": "3.34.0-eisop1" + }, + "io.github.java-diff-utils:java-diff-utils": { + "shasums": { + "jar": "9990a2039778f6b4cc94790141c2868864eacee0620c6c459451121a901cd5b5" + }, + "version": "4.12" + }, + "io.grpc:grpc-api": { + "shasums": { + "jar": "aeb8d7a1361aa3d8f5a191580fa7f8cbc5ceb53137a4a698590f612f791e2c45" + }, + "version": "1.48.1" + }, + "io.grpc:grpc-auth": { + "shasums": { + "jar": "ae63be5fe345ffdd5157284d90b783138eb31634e274182a8495242f9ad66a56" + }, + "version": "1.48.1" + }, + "io.grpc:grpc-context": { + "shasums": { + "jar": "2fb9007e12f768e9c968f9db292be4ea9cba2ef40fb8d179f3f8746ebdc73c1b" + }, + "version": "1.48.1" + }, + "io.grpc:grpc-core": { + "shasums": { + "jar": "6d472ee6d2b60ef3f3e6801e7cd4dbec5fbbef81e883a0de1fbc55e6defe1cb7" + }, + "version": "1.48.1" + }, + "io.grpc:grpc-netty": { + "shasums": { + "jar": "2a51593342a2ee4f8f1b946dc48d06b02d0721493238e4ae83d1ad66f8b0c9f4" + }, + "version": "1.48.1" + }, + "io.grpc:grpc-protobuf": { + "shasums": { + "jar": "6ab68b0a3bb3834af44208df058be4631425b56ef95f9b9412aa21df3311e8d3" + }, + "version": "1.48.1" + }, + "io.grpc:grpc-protobuf-lite": { + "shasums": { + "jar": "0a4c735bb80e342d418c0ef7d2add7793aaf72b91c449bde2769ea81f1869737" + }, + "version": "1.48.1" + }, + "io.grpc:grpc-stub": { + "shasums": { + "jar": "6436f19cef264fd949fb7a41e11424e373aa3b1096cad0b7e518f1c81aa60f23" + }, + "version": "1.48.1" + }, + "io.netty:netty-buffer": { + "shasums": { + "jar": "007c7d9c378df02d390567d0d7ddf542ffddb021b7313dbf502392113ffabb08" + }, + "version": "4.1.93.Final" + }, + "io.netty:netty-codec": { + "shasums": { + "jar": "990c378168dc6364c6ff569701f4f2f122fffe8998b3e189eba4c4d868ed1084" + }, + "version": "4.1.93.Final" + }, + "io.netty:netty-codec-dns": { + "shasums": { + "jar": "10a278b19d6393d5637f745007cb26d47dd16d468898dcc4a43e26d39c6cdd29" + }, + "version": "4.1.93.Final" + }, + "io.netty:netty-codec-http": { + "shasums": { + "jar": "dacf78ce78ab2d29570325db4cd2451ea589639807de95881a0fa7155a9e6b55" + }, + "version": "4.1.93.Final" + }, + "io.netty:netty-codec-http2": { + "shasums": { + "jar": "d96cc09045a1341c6d47494352aa263b87b72fb1d2ea9eca161aa73820bfe8bb" + }, + "version": "4.1.93.Final" + }, + "io.netty:netty-codec-socks": { + "shasums": { + "jar": "0ea47b5ba23ca1da8eb9146c8fc755c1271414633b1e2be2ce1df764ba0fff2a" + }, + "version": "4.1.93.Final" + }, + "io.netty:netty-common": { + "shasums": { + "jar": "443bb316599fb16e3baeba2fb58881814d7ff0b7af176fe76e38071a6e86f8c0" + }, + "version": "4.1.93.Final" + }, + "io.netty:netty-handler": { + "shasums": { + "jar": "4e5f563ae14ed713381816d582f5fcfd0615aefb29203486cdfb782d8a00a02b" + }, + "version": "4.1.93.Final" + }, + "io.netty:netty-handler-proxy": { + "shasums": { + "jar": "2ac5f7fbefa0b73ef783889069344d5515505a14b2303be693c5002c486df2b4" + }, + "version": "4.1.93.Final" + }, + "io.netty:netty-resolver": { + "shasums": { + "jar": "e59770b66e81822e5d111ac4e544d7eb0c543e0a285f52628e53941acd8ed759" + }, + "version": "4.1.93.Final" + }, + "io.netty:netty-resolver-dns": { + "shasums": { + "jar": "2744ccc1bbd653c9f65f5764ab211f51cae56aa6c2e2288850a9add9c805be56" + }, + "version": "4.1.93.Final" + }, + "io.netty:netty-tcnative-boringssl-static": { + "shasums": { + "linux-aarch_64": "8e5a30fc4a9514714367813f8027df4c9672746797b0699d83958d678e5cfeca", + "linux-x86_64": "725c26b4dd58a1aa782020952ad949bdb607235dd20ee49e5a5875c15456ca86", + "osx-aarch_64": "3b962ce1361b479ec7375f04e5d149e7b374a99ecf4f583c9aa0f0a92e5fa415", + "osx-x86_64": "9a77e8910af04becbdb535592c6a1e1a9accecde522aa1bb925a023c2c59d6dc", + "windows-x86_64": "b0d9505b09427ab655369506a802358966762edcb7cf08fc162dc2b368a2041c" + }, + "version": "2.0.56.Final" + }, + "io.netty:netty-tcnative-classes": { + "shasums": { + "jar": "eede807f0dd5eb1ad74ea1ae1094430631da63fcde00d4dc20eb0cd048bb0ac3" + }, + "version": "2.0.56.Final" + }, + "io.netty:netty-transport": { + "shasums": { + "jar": "a5a78019bc1cd43dbc3c7b7cdd3801912ca26d1f498fb560514fee497864ba96" + }, + "version": "4.1.93.Final" + }, + "io.netty:netty-transport-classes-epoll": { + "shasums": { + "jar": "23722fa366ba017137a68c5e92fc3ee27bbb341c681ac4790f61c6adb7289e26" + }, + "version": "4.1.93.Final" + }, + "io.netty:netty-transport-classes-kqueue": { + "shasums": { + "jar": "453fe595c3e12b9228b930b845140aaed93a9fb87d1a5d829c55b31d670def9f" + }, + "version": "4.1.93.Final" + }, + "io.netty:netty-transport-native-epoll": { + "shasums": { + "linux-aarch_64": "cca126fd095563fa67288300b6ac2ef4a92e623600e9a3273382211de364695d", + "linux-x86_64": "f87a502f3d257bc41f80bd0b90c19e6b4a48d0600fb26e7b5d6c2c675680fa0e" + }, + "version": "4.1.93.Final" + }, + "io.netty:netty-transport-native-kqueue": { + "shasums": { + "osx-aarch_64": "6e9f04b5a16ba95b7371a735d60851602a3f3c549981edb74eeaf90e1b8fecce", + "osx-x86_64": "bf3a21e503d26a600e2469e98f5acaadb57c18f207a51e8a7073b875c5f50e03" + }, + "version": "4.1.93.Final" + }, + "io.netty:netty-transport-native-unix-common": { + "shasums": { + "jar": "774165a1c4dbaacb17f9c1ad666b3569a6a59715ae828e7c3d47703f479a53e7", + "linux-aarch_64": "29675f1d9a2f09e426c0016e5fb89328d38afad0403f1bd1b98f985253d96ad8", + "linux-x86_64": "8923a73ba8a373f7b994906f5902ba9f6bb59d181d4ad01576a6e0c5abb09b67", + "osx-aarch_64": "6c6ecf73016d360e09a1cac31acd953f508309612f1b97d73db2ed0813d8bf14", + "osx-x86_64": "deded602209c23f624e9d91f3d4c27cbba9b303e35ea9b4693090d54ac245b6c" + }, + "version": "4.1.93.Final" + }, + "io.opencensus:opencensus-api": { + "shasums": { + "jar": "f1474d47f4b6b001558ad27b952e35eda5cc7146788877fc52938c6eba24b382" + }, + "version": "0.31.1" + }, + "io.opencensus:opencensus-contrib-http-util": { + "shasums": { + "jar": "3ea995b55a4068be22989b70cc29a4d788c2d328d1d50613a7a9afd13fdd2d0a" + }, + "version": "0.31.1" + }, + "io.perfmark:perfmark-api": { + "shasums": { + "jar": "2044542933fcdf40ad18441bec37646d150c491871157f288847e29cb81de4cb" + }, + "version": "0.25.0" + }, + "io.reactivex.rxjava3:rxjava": { + "shasums": { + "jar": "8d784075bec0b7c55042c109a4de8923b3b6d2ebd2e00912d518f07240f9c23a" + }, + "version": "3.1.2" + }, + "io.sweers.autotransient:autotransient": { + "shasums": { + "jar": "914ce84508410ee1419514925f93b1855a9f7a7b5b5d02fc07f411d2a45f1bba" + }, + "version": "1.0.0" + }, + "it.unimi.dsi:fastutil": { + "shasums": { + "jar": "d73dec5ec18f973f380869b6125d60f5cda77cf6e40e321bd06e0308ed0a40b7" + }, + "version": "7.2.1" + }, + "javax.activation:javax.activation-api": { + "shasums": { + "jar": "43fdef0b5b6ceb31b0424b208b930c74ab58fac2ceeb7b3f6fd3aeb8b5ca4393" + }, + "version": "1.2.0" + }, + "javax.annotation:javax.annotation-api": { + "shasums": { + "jar": "e04ba5195bcd555dc95650f7cc614d151e4bcd52d29a10b8aa2197f3ab89ab9b" + }, + "version": "1.3.2" + }, + "javax.inject:javax.inject": { + "shasums": { + "jar": "91c77044a50c481636c32d916fd89c9118a72195390452c81065080f957de7ff" + }, + "version": "1" + }, + "junit:junit": { + "shasums": { + "jar": "8e495b634469d64fb8acfa3495a065cbacc8a0fff55ce1e31007be4c16dc57d3" + }, + "version": "4.13.2" + }, + "net.bytebuddy:byte-buddy": { + "shasums": { + "jar": "e99761a526df0fefbbd3fe14436b0f953000cdfa5151dc63c0b18d37d9c46f1c" + }, + "version": "1.14.5" + }, + "net.bytebuddy:byte-buddy-agent": { + "shasums": { + "jar": "55f19862b870f5d85890ba5386b1b45e9bbc88d5fe1f819abe0c788b4929fa6b" + }, + "version": "1.14.5" + }, + "org.apache.commons:commons-compress": { + "shasums": { + "jar": "0aeb625c948c697ea7b205156e112363b59ed5e2551212cd4e460bdb72c7c06e" + }, + "version": "1.20" + }, + "org.apache.commons:commons-pool2": { + "shasums": { + "jar": "5efa9fbb54a58b1a12205a5fac565f6982abfeb0ff45bdbc318748ef5fd3a3ff" + }, + "version": "2.8.0" + }, + "org.apache.tomcat:tomcat-annotations-api": { + "shasums": { + "jar": "748677bebb1651a313317dfd93e984ed8f8c9e345538fa8b0ab0cbb804631953" + }, + "version": "8.0.5" + }, + "org.apache.velocity:velocity": { + "shasums": { + "jar": "ec92dae810034f4b46dbb16ef4364a4013b0efb24a8c5dd67435cae46a290d8e" + }, + "version": "1.7" + }, + "org.checkerframework:checker-compat-qual": { + "shasums": { + "jar": "d76b9afea61c7c082908023f0cbc1427fab9abd2df915c8b8a3e7a509bccbc6d" + }, + "version": "2.5.3" + }, + "org.checkerframework:checker-qual": { + "shasums": { + "jar": "ccaedd33af0b7894d9f2f3b644f4d19e43928e32902e61ac4d10777830f5aac7" + }, + "version": "3.42.0" + }, + "org.codehaus.mojo:animal-sniffer-annotations": { + "shasums": { + "jar": "2f25841c937e24959a57b630e2c4b8525b3d0f536f2e511c9b2bed30b1651d54" + }, + "version": "1.21" + }, + "org.hamcrest:hamcrest-core": { + "shasums": { + "jar": "66fdef91e9739348df7a096aa384a5685f4e875584cce89386a7a47251c4d8e9" + }, + "version": "1.3" + }, + "org.mockito:mockito-core": { + "shasums": { + "jar": "b1689b06617ea01fd777bfaedbdde512faf083d639a049f79b388d5a4e96d2e5" + }, + "version": "5.4.0" + }, + "org.objenesis:objenesis": { + "shasums": { + "jar": "02dfd0b0439a5591e35b708ed2f5474eb0948f53abf74637e959b8e4ef69bfeb" + }, + "version": "3.3" + }, + "org.ow2.asm:asm": { + "shasums": { + "jar": "3c6fac2424db3d4a853b669f4e3d1d9c3c552235e19a319673f887083c2303a1" + }, + "version": "9.6" + }, + "org.ow2.asm:asm-analysis": { + "shasums": { + "jar": "878fbe521731c072d14d2d65b983b1beae6ad06fda0007b6a8bae81f73f433c4" + }, + "version": "9.2" + }, + "org.ow2.asm:asm-commons": { + "shasums": { + "jar": "be4ce53138a238bb522cd781cf91f3ba5ce2f6ca93ec62d46a162a127225e0a6" + }, + "version": "9.2" + }, + "org.ow2.asm:asm-tree": { + "shasums": { + "jar": "aabf9bd23091a4ebfc109c1f3ee7cf3e4b89f6ba2d3f51c5243f16b3cffae011" + }, + "version": "9.2" + }, + "org.ow2.asm:asm-util": { + "shasums": { + "jar": "ff5b3cd331ae8a9a804768280da98f50f424fef23dd3c788bb320e08c94ee598" + }, + "version": "9.2" + }, + "org.pcollections:pcollections": { + "shasums": { + "jar": "34f579ba075c8da2c8a0fedd0f04e21eac2fb6c660d90d0fabb573e8b4dc6918" + }, + "version": "3.1.4" + }, + "org.reactivestreams:reactive-streams": { + "shasums": { + "jar": "1dee0481072d19c929b623e155e14d2f6085dc011529a0a0dbefc84cf571d865" + }, + "version": "1.0.3" + }, + "org.threeten:threeten-extra": { + "shasums": { + "jar": "e7def554536188fbaf8aac1a0a2f956b039cbbb5696edc3b8336c442c56ae445" + }, + "version": "1.5.0" + }, + "org.tukaani:xz": { + "shasums": { + "jar": "211b306cfc44f8f96df3a0a3ddaf75ba8c5289eed77d60d72f889bb855f535e5" + }, + "version": "1.9" + }, + "org.yaml:snakeyaml": { + "shasums": { + "jar": "880c9d896e4b74a06c549c15ca496450165d6909fa15d7e662bee8f6a66d7afa" + }, + "version": "2.0" + }, + "tools.profiler:async-profiler": { + "shasums": { + "jar": "8f798860049d01f4a2f853596d28c85d2983f0c098f165a32909b7da9c74209f" + }, + "version": "3.0" + } + }, + "dependencies": { + "com.github.ben-manes.caffeine:caffeine": [ + "com.google.errorprone:error_prone_annotations", + "org.checkerframework:checker-qual" + ], + "com.google.api-client:google-api-client": [ + "com.google.guava:guava", + "com.google.http-client:google-http-client", + "com.google.http-client:google-http-client-apache-v2", + "com.google.http-client:google-http-client-gson", + "com.google.oauth-client:google-oauth-client" + ], + "com.google.api-client:google-api-client-gson": [ + "com.google.api-client:google-api-client", + "com.google.http-client:google-http-client", + "com.google.http-client:google-http-client-gson" + ], + "com.google.auth:google-auth-library-oauth2-http": [ + "com.google.auth:google-auth-library-credentials", + "com.google.auto.value:auto-value-annotations", + "com.google.code.findbugs:jsr305", + "com.google.guava:guava", + "com.google.http-client:google-http-client", + "com.google.http-client:google-http-client-gson" + ], + "com.google.auto.service:auto-service": [ + "com.google.auto.service:auto-service-annotations", + "com.google.auto:auto-common", + "com.google.guava:guava" + ], + "com.google.auto:auto-common": [ + "com.google.guava:guava" + ], + "com.google.code.java-allocation-instrumenter:java-allocation-instrumenter": [ + "com.google.guava:guava", + "javax.annotation:javax.annotation-api", + "org.ow2.asm:asm", + "org.ow2.asm:asm-analysis", + "org.ow2.asm:asm-commons", + "org.ow2.asm:asm-tree", + "org.ow2.asm:asm-util" + ], + "com.google.errorprone:error_prone_annotation": [ + "com.google.guava:guava" + ], + "com.google.errorprone:error_prone_check_api": [ + "com.github.ben-manes.caffeine:caffeine", + "com.github.kevinstern:software-and-algorithms", + "com.google.auto.value:auto-value-annotations", + "com.google.code.findbugs:jsr305", + "com.google.errorprone:error_prone_annotation", + "com.google.errorprone:error_prone_annotations", + "com.google.inject:guice", + "io.github.eisop:dataflow-errorprone", + "io.github.java-diff-utils:java-diff-utils" + ], + "com.google.errorprone:error_prone_core": [ + "com.google.auto.service:auto-service-annotations", + "com.google.auto.value:auto-value-annotations", + "com.google.auto:auto-common", + "com.google.code.findbugs:jsr305", + "com.google.errorprone:error_prone_annotation", + "com.google.errorprone:error_prone_annotations", + "com.google.errorprone:error_prone_check_api", + "com.google.errorprone:error_prone_type_annotations", + "com.google.guava:guava", + "io.github.eisop:dataflow-errorprone", + "javax.inject:javax.inject", + "org.pcollections:pcollections" + ], + "com.google.flogger:flogger": [ + "org.checkerframework:checker-compat-qual" + ], + "com.google.flogger:flogger-system-backend": [ + "com.google.flogger:flogger", + "org.checkerframework:checker-compat-qual" + ], + "com.google.flogger:google-extensions": [ + "com.google.flogger:flogger" + ], + "com.google.guava:guava": [ + "com.google.code.findbugs:jsr305", + "com.google.errorprone:error_prone_annotations", + "com.google.guava:failureaccess", + "com.google.guava:listenablefuture", + "com.google.j2objc:j2objc-annotations", + "org.checkerframework:checker-qual" + ], + "com.google.guava:guava-testlib": [ + "com.google.code.findbugs:jsr305", + "com.google.errorprone:error_prone_annotations", + "com.google.guava:guava", + "com.google.j2objc:j2objc-annotations", + "junit:junit", + "org.checkerframework:checker-qual" + ], + "com.google.http-client:google-http-client": [ + "com.google.code.findbugs:jsr305", + "com.google.guava:guava", + "com.google.j2objc:j2objc-annotations", + "io.opencensus:opencensus-api", + "io.opencensus:opencensus-contrib-http-util" + ], + "com.google.http-client:google-http-client-apache-v2": [ + "com.google.http-client:google-http-client" + ], + "com.google.http-client:google-http-client-gson": [ + "com.google.code.gson:gson", + "com.google.http-client:google-http-client" + ], + "com.google.inject:guice": [ + "aopalliance:aopalliance", + "com.google.guava:guava", + "javax.inject:javax.inject" + ], + "com.google.jimfs:jimfs": [ + "com.google.guava:guava" + ], + "com.google.oauth-client:google-oauth-client": [ + "com.google.guava:guava", + "com.google.http-client:google-http-client", + "com.google.http-client:google-http-client-gson" + ], + "com.google.testing.compile:compile-testing": [ + "com.google.auto.value:auto-value", + "com.google.auto:auto-common", + "com.google.guava:guava", + "com.google.truth:truth", + "junit:junit" + ], + "com.google.testparameterinjector:test-parameter-injector": [ + "com.google.auto.value:auto-value-annotations", + "com.google.code.findbugs:jsr305", + "com.google.guava:guava", + "junit:junit", + "org.yaml:snakeyaml" + ], + "com.google.truth.extensions:truth-java8-extension": [ + "com.google.truth:truth", + "org.checkerframework:checker-qual" + ], + "com.google.truth.extensions:truth-liteproto-extension": [ + "com.google.auto.value:auto-value-annotations", + "com.google.errorprone:error_prone_annotations", + "com.google.guava:guava", + "com.google.truth:truth", + "org.checkerframework:checker-qual" + ], + "com.google.truth.extensions:truth-proto-extension": [ + "com.google.auto.value:auto-value-annotations", + "com.google.errorprone:error_prone_annotations", + "com.google.guava:guava", + "com.google.truth.extensions:truth-liteproto-extension", + "com.google.truth:truth", + "org.checkerframework:checker-qual" + ], + "com.google.truth:truth": [ + "com.google.auto.value:auto-value-annotations", + "com.google.errorprone:error_prone_annotations", + "com.google.guava:guava", + "junit:junit", + "org.checkerframework:checker-qual", + "org.ow2.asm:asm" + ], + "com.google.turbine:turbine": [ + "com.google.errorprone:error_prone_annotations", + "com.google.guava:guava" + ], + "com.ryanharter.auto.value:auto-value-gson-extension": [ + "com.google.auto.value:auto-value", + "com.google.auto.value:auto-value-annotations", + "com.google.code.gson:gson", + "com.ryanharter.auto.value:auto-value-gson-runtime", + "com.squareup:javapoet" + ], + "com.ryanharter.auto.value:auto-value-gson-factory": [ + "com.google.auto.value:auto-value-annotations", + "com.google.code.gson:gson", + "com.ryanharter.auto.value:auto-value-gson-extension", + "com.squareup:javapoet" + ], + "com.ryanharter.auto.value:auto-value-gson-runtime": [ + "com.google.code.gson:gson", + "io.sweers.autotransient:autotransient" + ], + "io.grpc:grpc-api": [ + "com.google.code.findbugs:jsr305", + "com.google.errorprone:error_prone_annotations", + "com.google.guava:guava", + "io.grpc:grpc-context" + ], + "io.grpc:grpc-auth": [ + "com.google.auth:google-auth-library-credentials", + "com.google.guava:guava", + "io.grpc:grpc-api" + ], + "io.grpc:grpc-core": [ + "com.google.android:annotations", + "com.google.code.gson:gson", + "com.google.errorprone:error_prone_annotations", + "com.google.guava:guava", + "io.grpc:grpc-api", + "io.perfmark:perfmark-api", + "org.codehaus.mojo:animal-sniffer-annotations" + ], + "io.grpc:grpc-netty": [ + "com.google.errorprone:error_prone_annotations", + "com.google.guava:guava", + "io.grpc:grpc-core", + "io.netty:netty-codec-http2", + "io.netty:netty-handler-proxy", + "io.netty:netty-transport-native-unix-common", + "io.perfmark:perfmark-api" + ], + "io.grpc:grpc-protobuf": [ + "com.google.api.grpc:proto-google-common-protos", + "com.google.code.findbugs:jsr305", + "com.google.guava:guava", + "io.grpc:grpc-api", + "io.grpc:grpc-protobuf-lite" + ], + "io.grpc:grpc-protobuf-lite": [ + "com.google.code.findbugs:jsr305", + "com.google.guava:guava", + "io.grpc:grpc-api" + ], + "io.grpc:grpc-stub": [ + "com.google.errorprone:error_prone_annotations", + "com.google.guava:guava", + "io.grpc:grpc-api" + ], + "io.netty:netty-buffer": [ + "io.netty:netty-common" + ], + "io.netty:netty-codec": [ + "io.netty:netty-buffer", + "io.netty:netty-common", + "io.netty:netty-transport" + ], + "io.netty:netty-codec-dns": [ + "io.netty:netty-buffer", + "io.netty:netty-codec", + "io.netty:netty-common", + "io.netty:netty-transport" + ], + "io.netty:netty-codec-http": [ + "io.netty:netty-buffer", + "io.netty:netty-codec", + "io.netty:netty-common", + "io.netty:netty-handler", + "io.netty:netty-transport" + ], + "io.netty:netty-codec-http2": [ + "io.netty:netty-buffer", + "io.netty:netty-codec", + "io.netty:netty-codec-http", + "io.netty:netty-common", + "io.netty:netty-handler", + "io.netty:netty-transport" + ], + "io.netty:netty-codec-socks": [ + "io.netty:netty-buffer", + "io.netty:netty-codec", + "io.netty:netty-common", + "io.netty:netty-transport" + ], + "io.netty:netty-handler": [ + "io.netty:netty-buffer", + "io.netty:netty-codec", + "io.netty:netty-common", + "io.netty:netty-resolver", + "io.netty:netty-transport", + "io.netty:netty-transport-native-unix-common" + ], + "io.netty:netty-handler-proxy": [ + "io.netty:netty-buffer", + "io.netty:netty-codec", + "io.netty:netty-codec-http", + "io.netty:netty-codec-socks", + "io.netty:netty-common", + "io.netty:netty-transport" + ], + "io.netty:netty-resolver": [ + "io.netty:netty-common" + ], + "io.netty:netty-resolver-dns": [ + "io.netty:netty-buffer", + "io.netty:netty-codec", + "io.netty:netty-codec-dns", + "io.netty:netty-common", + "io.netty:netty-handler", + "io.netty:netty-resolver", + "io.netty:netty-transport" + ], + "io.netty:netty-tcnative-boringssl-static:jar:linux-aarch_64": [ + "io.netty:netty-tcnative-boringssl-static:jar:linux-x86_64", + "io.netty:netty-tcnative-boringssl-static:jar:osx-aarch_64", + "io.netty:netty-tcnative-boringssl-static:jar:osx-x86_64", + "io.netty:netty-tcnative-boringssl-static:jar:windows-x86_64", + "io.netty:netty-tcnative-classes" + ], + "io.netty:netty-tcnative-boringssl-static:jar:linux-x86_64": [ + "io.netty:netty-tcnative-boringssl-static:jar:linux-aarch_64", + "io.netty:netty-tcnative-boringssl-static:jar:osx-aarch_64", + "io.netty:netty-tcnative-boringssl-static:jar:osx-x86_64", + "io.netty:netty-tcnative-boringssl-static:jar:windows-x86_64", + "io.netty:netty-tcnative-classes" + ], + "io.netty:netty-tcnative-boringssl-static:jar:osx-aarch_64": [ + "io.netty:netty-tcnative-boringssl-static:jar:linux-aarch_64", + "io.netty:netty-tcnative-boringssl-static:jar:linux-x86_64", + "io.netty:netty-tcnative-boringssl-static:jar:osx-x86_64", + "io.netty:netty-tcnative-boringssl-static:jar:windows-x86_64", + "io.netty:netty-tcnative-classes" + ], + "io.netty:netty-tcnative-boringssl-static:jar:osx-x86_64": [ + "io.netty:netty-tcnative-boringssl-static:jar:linux-aarch_64", + "io.netty:netty-tcnative-boringssl-static:jar:linux-x86_64", + "io.netty:netty-tcnative-boringssl-static:jar:osx-aarch_64", + "io.netty:netty-tcnative-boringssl-static:jar:windows-x86_64", + "io.netty:netty-tcnative-classes" + ], + "io.netty:netty-tcnative-boringssl-static:jar:windows-x86_64": [ + "io.netty:netty-tcnative-boringssl-static:jar:linux-aarch_64", + "io.netty:netty-tcnative-boringssl-static:jar:linux-x86_64", + "io.netty:netty-tcnative-boringssl-static:jar:osx-aarch_64", + "io.netty:netty-tcnative-boringssl-static:jar:osx-x86_64", + "io.netty:netty-tcnative-classes" + ], + "io.netty:netty-transport": [ + "io.netty:netty-buffer", + "io.netty:netty-common", + "io.netty:netty-resolver" + ], + "io.netty:netty-transport-classes-epoll": [ + "io.netty:netty-buffer", + "io.netty:netty-common", + "io.netty:netty-transport", + "io.netty:netty-transport-native-unix-common" + ], + "io.netty:netty-transport-classes-kqueue": [ + "io.netty:netty-buffer", + "io.netty:netty-common", + "io.netty:netty-transport", + "io.netty:netty-transport-native-unix-common" + ], + "io.netty:netty-transport-native-epoll:jar:linux-aarch_64": [ + "io.netty:netty-buffer", + "io.netty:netty-common", + "io.netty:netty-transport", + "io.netty:netty-transport-classes-epoll", + "io.netty:netty-transport-native-unix-common" + ], + "io.netty:netty-transport-native-epoll:jar:linux-x86_64": [ + "io.netty:netty-buffer", + "io.netty:netty-common", + "io.netty:netty-transport", + "io.netty:netty-transport-classes-epoll", + "io.netty:netty-transport-native-unix-common" + ], + "io.netty:netty-transport-native-kqueue:jar:osx-aarch_64": [ + "io.netty:netty-buffer", + "io.netty:netty-common", + "io.netty:netty-transport", + "io.netty:netty-transport-classes-kqueue", + "io.netty:netty-transport-native-unix-common" + ], + "io.netty:netty-transport-native-kqueue:jar:osx-x86_64": [ + "io.netty:netty-buffer", + "io.netty:netty-common", + "io.netty:netty-transport", + "io.netty:netty-transport-classes-kqueue", + "io.netty:netty-transport-native-unix-common" + ], + "io.netty:netty-transport-native-unix-common": [ + "io.netty:netty-buffer", + "io.netty:netty-common", + "io.netty:netty-transport" + ], + "io.netty:netty-transport-native-unix-common:jar:linux-aarch_64": [ + "io.netty:netty-buffer", + "io.netty:netty-common", + "io.netty:netty-transport" + ], + "io.netty:netty-transport-native-unix-common:jar:linux-x86_64": [ + "io.netty:netty-buffer", + "io.netty:netty-common", + "io.netty:netty-transport" + ], + "io.netty:netty-transport-native-unix-common:jar:osx-aarch_64": [ + "io.netty:netty-buffer", + "io.netty:netty-common", + "io.netty:netty-transport" + ], + "io.netty:netty-transport-native-unix-common:jar:osx-x86_64": [ + "io.netty:netty-buffer", + "io.netty:netty-common", + "io.netty:netty-transport" + ], + "io.opencensus:opencensus-api": [ + "io.grpc:grpc-context" + ], + "io.opencensus:opencensus-contrib-http-util": [ + "com.google.guava:guava", + "io.opencensus:opencensus-api" + ], + "io.reactivex.rxjava3:rxjava": [ + "org.reactivestreams:reactive-streams" + ], + "junit:junit": [ + "org.hamcrest:hamcrest-core" + ], + "org.apache.velocity:velocity": [ + "commons-collections:commons-collections", + "commons-lang:commons-lang" + ], + "org.mockito:mockito-core": [ + "net.bytebuddy:byte-buddy", + "net.bytebuddy:byte-buddy-agent", + "org.objenesis:objenesis" + ], + "org.ow2.asm:asm-analysis": [ + "org.ow2.asm:asm-tree" + ], + "org.ow2.asm:asm-commons": [ + "org.ow2.asm:asm", + "org.ow2.asm:asm-analysis", + "org.ow2.asm:asm-tree" + ], + "org.ow2.asm:asm-tree": [ + "org.ow2.asm:asm" + ], + "org.ow2.asm:asm-util": [ + "org.ow2.asm:asm", + "org.ow2.asm:asm-analysis", + "org.ow2.asm:asm-tree" + ] + }, + "packages": { + "aopalliance:aopalliance": [ + "org.aopalliance.aop", + "org.aopalliance.intercept" + ], + "com.beust:jcommander": [ + "com.beust.ah", + "com.beust.jcommander", + "com.beust.jcommander.converters", + "com.beust.jcommander.defaultprovider", + "com.beust.jcommander.internal", + "com.beust.jcommander.parser", + "com.beust.jcommander.validators" + ], + "com.github.ben-manes.caffeine:caffeine": [ + "com.github.benmanes.caffeine.cache", + "com.github.benmanes.caffeine.cache.stats" + ], + "com.github.kevinstern:software-and-algorithms": [ + "blogspot.software_and_algorithms.stern_library.data_structure", + "blogspot.software_and_algorithms.stern_library.geometry", + "blogspot.software_and_algorithms.stern_library.optimization", + "blogspot.software_and_algorithms.stern_library.string" + ], + "com.github.stephenc.jcip:jcip-annotations": [ + "net.jcip.annotations" + ], + "com.google.android:annotations": [ + "android.annotation" + ], + "com.google.api-client:google-api-client": [ + "com.google.api.client.googleapis", + "com.google.api.client.googleapis.apache", + "com.google.api.client.googleapis.apache.v2", + "com.google.api.client.googleapis.auth.oauth2", + "com.google.api.client.googleapis.batch", + "com.google.api.client.googleapis.batch.json", + "com.google.api.client.googleapis.compute", + "com.google.api.client.googleapis.javanet", + "com.google.api.client.googleapis.json", + "com.google.api.client.googleapis.media", + "com.google.api.client.googleapis.mtls", + "com.google.api.client.googleapis.notifications", + "com.google.api.client.googleapis.notifications.json", + "com.google.api.client.googleapis.services", + "com.google.api.client.googleapis.services.json", + "com.google.api.client.googleapis.testing", + "com.google.api.client.googleapis.testing.auth.oauth2", + "com.google.api.client.googleapis.testing.compute", + "com.google.api.client.googleapis.testing.json", + "com.google.api.client.googleapis.testing.notifications", + "com.google.api.client.googleapis.testing.services", + "com.google.api.client.googleapis.testing.services.json", + "com.google.api.client.googleapis.util" + ], + "com.google.api-client:google-api-client-gson": [ + "com.google.api.client.googleapis.notifications.json.gson" + ], + "com.google.api.grpc:proto-google-common-protos": [ + "com.google.api", + "com.google.cloud", + "com.google.cloud.audit", + "com.google.cloud.location", + "com.google.geo.type", + "com.google.logging.type", + "com.google.longrunning", + "com.google.rpc", + "com.google.rpc.context", + "com.google.type" + ], + "com.google.auth:google-auth-library-credentials": [ + "com.google.auth" + ], + "com.google.auth:google-auth-library-oauth2-http": [ + "com.google.auth.http", + "com.google.auth.oauth2" + ], + "com.google.auto.service:auto-service": [ + "com.google.auto.service.processor" + ], + "com.google.auto.service:auto-service-annotations": [ + "com.google.auto.service" + ], + "com.google.auto.value:auto-value": [ + "autovalue.shaded.com.google$.auto.common", + "autovalue.shaded.com.google$.auto.service", + "autovalue.shaded.com.google$.common.annotations", + "autovalue.shaded.com.google$.common.base", + "autovalue.shaded.com.google$.common.collect", + "autovalue.shaded.com.google$.common.hash", + "autovalue.shaded.com.google$.common.math", + "autovalue.shaded.com.google$.common.primitives", + "autovalue.shaded.com.google$.common.reflect", + "autovalue.shaded.com.google$.errorprone.annotations", + "autovalue.shaded.com.google$.errorprone.annotations.concurrent", + "autovalue.shaded.com.google$.escapevelocity", + "autovalue.shaded.com.google$.j2objc.annotations", + "autovalue.shaded.com.squareup.javapoet$", + "autovalue.shaded.net.ltgt.gradle.incap$", + "autovalue.shaded.org.checkerframework$.checker.nullness.qual", + "autovalue.shaded.org.checkerframework$.framework.qual", + "com.google.auto.value.extension", + "com.google.auto.value.extension.memoized.processor", + "com.google.auto.value.extension.serializable.processor", + "com.google.auto.value.extension.serializable.serializer", + "com.google.auto.value.extension.serializable.serializer.impl", + "com.google.auto.value.extension.serializable.serializer.interfaces", + "com.google.auto.value.extension.serializable.serializer.runtime", + "com.google.auto.value.extension.toprettystring.processor", + "com.google.auto.value.processor" + ], + "com.google.auto.value:auto-value-annotations": [ + "com.google.auto.value", + "com.google.auto.value.extension.memoized", + "com.google.auto.value.extension.serializable", + "com.google.auto.value.extension.toprettystring" + ], + "com.google.auto:auto-common": [ + "com.google.auto.common" + ], + "com.google.code.findbugs:jsr305": [ + "javax.annotation", + "javax.annotation.concurrent", + "javax.annotation.meta" + ], + "com.google.code.gson:gson": [ + "com.google.gson", + "com.google.gson.annotations", + "com.google.gson.internal", + "com.google.gson.internal.bind", + "com.google.gson.internal.bind.util", + "com.google.gson.internal.reflect", + "com.google.gson.internal.sql", + "com.google.gson.reflect", + "com.google.gson.stream" + ], + "com.google.code.java-allocation-instrumenter:java-allocation-instrumenter": [ + "com.google.monitoring.runtime.instrumentation", + "com.google.monitoring.runtime.instrumentation.asm", + "com.google.monitoring.runtime.instrumentation.asm.commons", + "com.google.monitoring.runtime.instrumentation.asm.signature", + "com.google.monitoring.runtime.instrumentation.asm.tree", + "com.google.monitoring.runtime.instrumentation.asm.tree.analysis", + "com.google.monitoring.runtime.instrumentation.asm.util", + "com.google.monitoring.runtime.instrumentation.checker.nullness.compatqual", + "com.google.monitoring.runtime.instrumentation.common.annotations", + "com.google.monitoring.runtime.instrumentation.common.base", + "com.google.monitoring.runtime.instrumentation.common.base.internal", + "com.google.monitoring.runtime.instrumentation.common.cache", + "com.google.monitoring.runtime.instrumentation.common.collect", + "com.google.monitoring.runtime.instrumentation.common.escape", + "com.google.monitoring.runtime.instrumentation.common.eventbus", + "com.google.monitoring.runtime.instrumentation.common.graph", + "com.google.monitoring.runtime.instrumentation.common.hash", + "com.google.monitoring.runtime.instrumentation.common.html", + "com.google.monitoring.runtime.instrumentation.common.io", + "com.google.monitoring.runtime.instrumentation.common.math", + "com.google.monitoring.runtime.instrumentation.common.net", + "com.google.monitoring.runtime.instrumentation.common.primitives", + "com.google.monitoring.runtime.instrumentation.common.reflect", + "com.google.monitoring.runtime.instrumentation.common.util.concurrent", + "com.google.monitoring.runtime.instrumentation.common.xml", + "com.google.monitoring.runtime.instrumentation.errorprone.annotations", + "com.google.monitoring.runtime.instrumentation.errorprone.annotations.concurrent", + "com.google.monitoring.runtime.instrumentation.j2objc.annotations", + "com.google.thirdparty.publicsuffix" + ], + "com.google.errorprone:error_prone_annotation": [ + "com.google.errorprone" + ], + "com.google.errorprone:error_prone_annotations": [ + "com.google.errorprone.annotations", + "com.google.errorprone.annotations.concurrent" + ], + "com.google.errorprone:error_prone_check_api": [ + "com.google.errorprone", + "com.google.errorprone.apply", + "com.google.errorprone.bugpatterns", + "com.google.errorprone.dataflow", + "com.google.errorprone.dataflow.nullnesspropagation", + "com.google.errorprone.dataflow.nullnesspropagation.inference", + "com.google.errorprone.fixes", + "com.google.errorprone.matchers", + "com.google.errorprone.matchers.method", + "com.google.errorprone.names", + "com.google.errorprone.predicates", + "com.google.errorprone.predicates.type", + "com.google.errorprone.scanner", + "com.google.errorprone.suppliers", + "com.google.errorprone.util" + ], + "com.google.errorprone:error_prone_core": [ + "com.google.errorprone", + "com.google.errorprone.bugpatterns", + "com.google.errorprone.bugpatterns.android", + "com.google.errorprone.bugpatterns.apidiff", + "com.google.errorprone.bugpatterns.argumentselectiondefects", + "com.google.errorprone.bugpatterns.checkreturnvalue", + "com.google.errorprone.bugpatterns.collectionincompatibletype", + "com.google.errorprone.bugpatterns.flogger", + "com.google.errorprone.bugpatterns.formatstring", + "com.google.errorprone.bugpatterns.inject", + "com.google.errorprone.bugpatterns.inject.dagger", + "com.google.errorprone.bugpatterns.inject.guice", + "com.google.errorprone.bugpatterns.inlineme", + "com.google.errorprone.bugpatterns.javadoc", + "com.google.errorprone.bugpatterns.nullness", + "com.google.errorprone.bugpatterns.overloading", + "com.google.errorprone.bugpatterns.threadsafety", + "com.google.errorprone.bugpatterns.time", + "com.google.errorprone.refaster", + "com.google.errorprone.refaster.annotation", + "com.google.errorprone.scanner" + ], + "com.google.errorprone:error_prone_type_annotations": [ + "com.google.errorprone.annotations" + ], + "com.google.flogger:flogger": [ + "com.google.common.flogger", + "com.google.common.flogger.backend", + "com.google.common.flogger.context", + "com.google.common.flogger.parameter", + "com.google.common.flogger.parser", + "com.google.common.flogger.util" + ], + "com.google.flogger:flogger-system-backend": [ + "com.google.common.flogger.backend.system" + ], + "com.google.flogger:google-extensions": [ + "com.google.common.flogger" + ], + "com.google.guava:failureaccess": [ + "com.google.common.util.concurrent.internal" + ], + "com.google.guava:guava": [ + "com.google.common.annotations", + "com.google.common.base", + "com.google.common.base.internal", + "com.google.common.cache", + "com.google.common.collect", + "com.google.common.escape", + "com.google.common.eventbus", + "com.google.common.graph", + "com.google.common.hash", + "com.google.common.html", + "com.google.common.io", + "com.google.common.math", + "com.google.common.net", + "com.google.common.primitives", + "com.google.common.reflect", + "com.google.common.util.concurrent", + "com.google.common.xml", + "com.google.thirdparty.publicsuffix" + ], + "com.google.guava:guava-testlib": [ + "com.google.common.collect.testing", + "com.google.common.collect.testing.features", + "com.google.common.collect.testing.google", + "com.google.common.collect.testing.suites", + "com.google.common.collect.testing.testers", + "com.google.common.escape.testing", + "com.google.common.testing", + "com.google.common.util.concurrent.testing" + ], + "com.google.http-client:google-http-client": [ + "com.google.api.client.http", + "com.google.api.client.http.apache", + "com.google.api.client.http.javanet", + "com.google.api.client.http.json", + "com.google.api.client.json", + "com.google.api.client.json.rpc2", + "com.google.api.client.json.webtoken", + "com.google.api.client.testing.http", + "com.google.api.client.testing.http.apache", + "com.google.api.client.testing.http.javanet", + "com.google.api.client.testing.json", + "com.google.api.client.testing.json.webtoken", + "com.google.api.client.testing.util", + "com.google.api.client.util", + "com.google.api.client.util.escape", + "com.google.api.client.util.store" + ], + "com.google.http-client:google-http-client-apache-v2": [ + "com.google.api.client.http.apache.v2" + ], + "com.google.http-client:google-http-client-gson": [ + "com.google.api.client.json.gson" + ], + "com.google.inject:guice": [ + "com.google.inject", + "com.google.inject.binder", + "com.google.inject.internal", + "com.google.inject.internal.aop", + "com.google.inject.internal.asm", + "com.google.inject.internal.util", + "com.google.inject.matcher", + "com.google.inject.multibindings", + "com.google.inject.name", + "com.google.inject.spi", + "com.google.inject.util" + ], + "com.google.j2objc:j2objc-annotations": [ + "com.google.j2objc.annotations" + ], + "com.google.jimfs:jimfs": [ + "com.google.common.jimfs" + ], + "com.google.oauth-client:google-oauth-client": [ + "com.google.api.client.auth.oauth", + "com.google.api.client.auth.oauth2", + "com.google.api.client.auth.openidconnect" + ], + "com.google.testing.compile:compile-testing": [ + "com.google.testing.compile" + ], + "com.google.testparameterinjector:test-parameter-injector": [ + "com.google.testing.junit.testparameterinjector" + ], + "com.google.truth.extensions:truth-liteproto-extension": [ + "com.google.common.truth.extensions.proto" + ], + "com.google.truth.extensions:truth-proto-extension": [ + "com.google.common.truth.extensions.proto" + ], + "com.google.truth:truth": [ + "com.google.common.truth" + ], + "com.google.turbine:turbine": [ + "com.google.common.escape", + "com.google.turbine.binder", + "com.google.turbine.binder.bound", + "com.google.turbine.binder.bytecode", + "com.google.turbine.binder.env", + "com.google.turbine.binder.lookup", + "com.google.turbine.binder.sym", + "com.google.turbine.bytecode", + "com.google.turbine.bytecode.sig", + "com.google.turbine.deps", + "com.google.turbine.diag", + "com.google.turbine.lower", + "com.google.turbine.main", + "com.google.turbine.model", + "com.google.turbine.options", + "com.google.turbine.parse", + "com.google.turbine.processing", + "com.google.turbine.proto", + "com.google.turbine.tree", + "com.google.turbine.type", + "com.google.turbine.types", + "com.google.turbine.zip" + ], + "com.ryanharter.auto.value:auto-value-gson-extension": [ + "autovaluegson.shaded.com.google.auto.common", + "autovaluegson.shaded.com.google.common.annotations", + "autovaluegson.shaded.com.google.common.base", + "autovaluegson.shaded.com.google.common.cache", + "autovaluegson.shaded.com.google.common.collect", + "autovaluegson.shaded.com.google.common.escape", + "autovaluegson.shaded.com.google.common.eventbus", + "autovaluegson.shaded.com.google.common.graph", + "autovaluegson.shaded.com.google.common.hash", + "autovaluegson.shaded.com.google.common.html", + "autovaluegson.shaded.com.google.common.io", + "autovaluegson.shaded.com.google.common.math", + "autovaluegson.shaded.com.google.common.net", + "autovaluegson.shaded.com.google.common.primitives", + "autovaluegson.shaded.com.google.common.reflect", + "autovaluegson.shaded.com.google.common.util.concurrent", + "autovaluegson.shaded.com.google.common.xml", + "com.ryanharter.auto.value.gson" + ], + "com.ryanharter.auto.value:auto-value-gson-factory": [ + "autovaluegson.factory.shaded.com.google.auto.common", + "autovaluegson.factory.shaded.com.google.common.annotations", + "autovaluegson.factory.shaded.com.google.common.base", + "autovaluegson.factory.shaded.com.google.common.cache", + "autovaluegson.factory.shaded.com.google.common.collect", + "autovaluegson.factory.shaded.com.google.common.escape", + "autovaluegson.factory.shaded.com.google.common.eventbus", + "autovaluegson.factory.shaded.com.google.common.graph", + "autovaluegson.factory.shaded.com.google.common.hash", + "autovaluegson.factory.shaded.com.google.common.html", + "autovaluegson.factory.shaded.com.google.common.io", + "autovaluegson.factory.shaded.com.google.common.math", + "autovaluegson.factory.shaded.com.google.common.net", + "autovaluegson.factory.shaded.com.google.common.primitives", + "autovaluegson.factory.shaded.com.google.common.reflect", + "autovaluegson.factory.shaded.com.google.common.util.concurrent", + "autovaluegson.factory.shaded.com.google.common.xml", + "com.ryanharter.auto.value.gson.factory" + ], + "com.ryanharter.auto.value:auto-value-gson-runtime": [ + "com.ryanharter.auto.value.gson", + "com.ryanharter.auto.value.gson.internal" + ], + "com.squareup:javapoet": [ + "com.squareup.javapoet" + ], + "commons-collections:commons-collections": [ + "org.apache.commons.collections", + "org.apache.commons.collections.bag", + "org.apache.commons.collections.bidimap", + "org.apache.commons.collections.buffer", + "org.apache.commons.collections.collection", + "org.apache.commons.collections.comparators", + "org.apache.commons.collections.functors", + "org.apache.commons.collections.iterators", + "org.apache.commons.collections.keyvalue", + "org.apache.commons.collections.list", + "org.apache.commons.collections.map", + "org.apache.commons.collections.set" + ], + "commons-lang:commons-lang": [ + "org.apache.commons.lang", + "org.apache.commons.lang.builder", + "org.apache.commons.lang.enum", + "org.apache.commons.lang.enums", + "org.apache.commons.lang.exception", + "org.apache.commons.lang.math", + "org.apache.commons.lang.mutable", + "org.apache.commons.lang.reflect", + "org.apache.commons.lang.text", + "org.apache.commons.lang.time" + ], + "io.github.eisop:dataflow-errorprone": [ + "org.checkerframework.dataflow.qual", + "org.checkerframework.errorprone.checker.builder.qual", + "org.checkerframework.errorprone.checker.calledmethods.qual", + "org.checkerframework.errorprone.checker.compilermsgs.qual", + "org.checkerframework.errorprone.checker.fenum.qual", + "org.checkerframework.errorprone.checker.formatter.qual", + "org.checkerframework.errorprone.checker.guieffect.qual", + "org.checkerframework.errorprone.checker.i18n.qual", + "org.checkerframework.errorprone.checker.i18nformatter.qual", + "org.checkerframework.errorprone.checker.index.qual", + "org.checkerframework.errorprone.checker.initialization.qual", + "org.checkerframework.errorprone.checker.interning.qual", + "org.checkerframework.errorprone.checker.lock.qual", + "org.checkerframework.errorprone.checker.mustcall.qual", + "org.checkerframework.errorprone.checker.nullness.qual", + "org.checkerframework.errorprone.checker.optional.qual", + "org.checkerframework.errorprone.checker.propkey.qual", + "org.checkerframework.errorprone.checker.regex.qual", + "org.checkerframework.errorprone.checker.signature.qual", + "org.checkerframework.errorprone.checker.signedness.qual", + "org.checkerframework.errorprone.checker.tainting.qual", + "org.checkerframework.errorprone.checker.units.qual", + "org.checkerframework.errorprone.common.aliasing.qual", + "org.checkerframework.errorprone.common.initializedfields.qual", + "org.checkerframework.errorprone.common.reflection.qual", + "org.checkerframework.errorprone.common.returnsreceiver.qual", + "org.checkerframework.errorprone.common.subtyping.qual", + "org.checkerframework.errorprone.common.util.report.qual", + "org.checkerframework.errorprone.common.value.qual", + "org.checkerframework.errorprone.dataflow.analysis", + "org.checkerframework.errorprone.dataflow.busyexpr", + "org.checkerframework.errorprone.dataflow.cfg", + "org.checkerframework.errorprone.dataflow.cfg.block", + "org.checkerframework.errorprone.dataflow.cfg.builder", + "org.checkerframework.errorprone.dataflow.cfg.node", + "org.checkerframework.errorprone.dataflow.cfg.playground", + "org.checkerframework.errorprone.dataflow.cfg.visualize", + "org.checkerframework.errorprone.dataflow.constantpropagation", + "org.checkerframework.errorprone.dataflow.expression", + "org.checkerframework.errorprone.dataflow.livevariable", + "org.checkerframework.errorprone.dataflow.reachingdef", + "org.checkerframework.errorprone.dataflow.util", + "org.checkerframework.errorprone.framework.qual", + "org.checkerframework.errorprone.javacutil", + "org.checkerframework.errorprone.javacutil.trees", + "org.checkerframework.errorprone.org.plumelib.reflection", + "org.checkerframework.errorprone.org.plumelib.util" + ], + "io.github.java-diff-utils:java-diff-utils": [ + "com.github.difflib", + "com.github.difflib.algorithm", + "com.github.difflib.algorithm.myers", + "com.github.difflib.patch", + "com.github.difflib.text", + "com.github.difflib.unifieddiff" + ], + "io.grpc:grpc-api": [ + "io.grpc" + ], + "io.grpc:grpc-auth": [ + "io.grpc.auth" + ], + "io.grpc:grpc-context": [ + "io.grpc" + ], + "io.grpc:grpc-core": [ + "io.grpc.inprocess", + "io.grpc.internal", + "io.grpc.util" + ], + "io.grpc:grpc-netty": [ + "io.grpc.netty" + ], + "io.grpc:grpc-protobuf": [ + "io.grpc.protobuf" + ], + "io.grpc:grpc-protobuf-lite": [ + "io.grpc.protobuf.lite" + ], + "io.grpc:grpc-stub": [ + "io.grpc.stub", + "io.grpc.stub.annotations" + ], + "io.netty:netty-buffer": [ + "io.netty.buffer", + "io.netty.buffer.search" + ], + "io.netty:netty-codec": [ + "io.netty.handler.codec", + "io.netty.handler.codec.base64", + "io.netty.handler.codec.bytes", + "io.netty.handler.codec.compression", + "io.netty.handler.codec.json", + "io.netty.handler.codec.marshalling", + "io.netty.handler.codec.protobuf", + "io.netty.handler.codec.serialization", + "io.netty.handler.codec.string", + "io.netty.handler.codec.xml" + ], + "io.netty:netty-codec-dns": [ + "io.netty.handler.codec.dns" + ], + "io.netty:netty-codec-http": [ + "io.netty.handler.codec.http", + "io.netty.handler.codec.http.cookie", + "io.netty.handler.codec.http.cors", + "io.netty.handler.codec.http.multipart", + "io.netty.handler.codec.http.websocketx", + "io.netty.handler.codec.http.websocketx.extensions", + "io.netty.handler.codec.http.websocketx.extensions.compression", + "io.netty.handler.codec.rtsp", + "io.netty.handler.codec.spdy" + ], + "io.netty:netty-codec-http2": [ + "io.netty.handler.codec.http2" + ], + "io.netty:netty-codec-socks": [ + "io.netty.handler.codec.socks", + "io.netty.handler.codec.socksx", + "io.netty.handler.codec.socksx.v4", + "io.netty.handler.codec.socksx.v5" + ], + "io.netty:netty-common": [ + "io.netty.util", + "io.netty.util.collection", + "io.netty.util.concurrent", + "io.netty.util.internal", + "io.netty.util.internal.logging", + "io.netty.util.internal.shaded.org.jctools.queues", + "io.netty.util.internal.shaded.org.jctools.queues.atomic", + "io.netty.util.internal.shaded.org.jctools.util", + "io.netty.util.internal.svm" + ], + "io.netty:netty-handler": [ + "io.netty.handler.address", + "io.netty.handler.flow", + "io.netty.handler.flush", + "io.netty.handler.ipfilter", + "io.netty.handler.logging", + "io.netty.handler.pcap", + "io.netty.handler.ssl", + "io.netty.handler.ssl.ocsp", + "io.netty.handler.ssl.util", + "io.netty.handler.stream", + "io.netty.handler.timeout", + "io.netty.handler.traffic" + ], + "io.netty:netty-handler-proxy": [ + "io.netty.handler.proxy" + ], + "io.netty:netty-resolver": [ + "io.netty.resolver" + ], + "io.netty:netty-resolver-dns": [ + "io.netty.resolver.dns" + ], + "io.netty:netty-tcnative-classes": [ + "io.netty.internal.tcnative" + ], + "io.netty:netty-transport": [ + "io.netty.bootstrap", + "io.netty.channel", + "io.netty.channel.embedded", + "io.netty.channel.group", + "io.netty.channel.internal", + "io.netty.channel.local", + "io.netty.channel.nio", + "io.netty.channel.oio", + "io.netty.channel.pool", + "io.netty.channel.socket", + "io.netty.channel.socket.nio", + "io.netty.channel.socket.oio" + ], + "io.netty:netty-transport-classes-epoll": [ + "io.netty.channel.epoll" + ], + "io.netty:netty-transport-classes-kqueue": [ + "io.netty.channel.kqueue" + ], + "io.netty:netty-transport-native-unix-common": [ + "io.netty.channel.unix" + ], + "io.netty:netty-transport-native-unix-common:jar:linux-aarch_64": [ + "io.netty.channel.unix" + ], + "io.netty:netty-transport-native-unix-common:jar:linux-x86_64": [ + "io.netty.channel.unix" + ], + "io.netty:netty-transport-native-unix-common:jar:osx-aarch_64": [ + "io.netty.channel.unix" + ], + "io.netty:netty-transport-native-unix-common:jar:osx-x86_64": [ + "io.netty.channel.unix" + ], + "io.opencensus:opencensus-api": [ + "io.opencensus.common", + "io.opencensus.internal", + "io.opencensus.metrics", + "io.opencensus.metrics.data", + "io.opencensus.metrics.export", + "io.opencensus.resource", + "io.opencensus.stats", + "io.opencensus.tags", + "io.opencensus.tags.propagation", + "io.opencensus.tags.unsafe", + "io.opencensus.trace", + "io.opencensus.trace.config", + "io.opencensus.trace.export", + "io.opencensus.trace.internal", + "io.opencensus.trace.propagation", + "io.opencensus.trace.samplers", + "io.opencensus.trace.unsafe" + ], + "io.opencensus:opencensus-contrib-http-util": [ + "io.opencensus.contrib.http", + "io.opencensus.contrib.http.util" + ], + "io.perfmark:perfmark-api": [ + "io.perfmark" + ], + "io.reactivex.rxjava3:rxjava": [ + "io.reactivex.rxjava3.annotations", + "io.reactivex.rxjava3.core", + "io.reactivex.rxjava3.disposables", + "io.reactivex.rxjava3.exceptions", + "io.reactivex.rxjava3.flowables", + "io.reactivex.rxjava3.functions", + "io.reactivex.rxjava3.internal.disposables", + "io.reactivex.rxjava3.internal.functions", + "io.reactivex.rxjava3.internal.fuseable", + "io.reactivex.rxjava3.internal.jdk8", + "io.reactivex.rxjava3.internal.observers", + "io.reactivex.rxjava3.internal.operators.completable", + "io.reactivex.rxjava3.internal.operators.flowable", + "io.reactivex.rxjava3.internal.operators.maybe", + "io.reactivex.rxjava3.internal.operators.mixed", + "io.reactivex.rxjava3.internal.operators.observable", + "io.reactivex.rxjava3.internal.operators.parallel", + "io.reactivex.rxjava3.internal.operators.single", + "io.reactivex.rxjava3.internal.queue", + "io.reactivex.rxjava3.internal.schedulers", + "io.reactivex.rxjava3.internal.subscribers", + "io.reactivex.rxjava3.internal.subscriptions", + "io.reactivex.rxjava3.internal.util", + "io.reactivex.rxjava3.observables", + "io.reactivex.rxjava3.observers", + "io.reactivex.rxjava3.operators", + "io.reactivex.rxjava3.parallel", + "io.reactivex.rxjava3.plugins", + "io.reactivex.rxjava3.processors", + "io.reactivex.rxjava3.schedulers", + "io.reactivex.rxjava3.subjects", + "io.reactivex.rxjava3.subscribers" + ], + "io.sweers.autotransient:autotransient": [ + "io.sweers.autotransient" + ], + "it.unimi.dsi:fastutil": [ + "it.unimi.dsi.fastutil", + "it.unimi.dsi.fastutil.booleans", + "it.unimi.dsi.fastutil.bytes", + "it.unimi.dsi.fastutil.chars", + "it.unimi.dsi.fastutil.doubles", + "it.unimi.dsi.fastutil.floats", + "it.unimi.dsi.fastutil.ints", + "it.unimi.dsi.fastutil.io", + "it.unimi.dsi.fastutil.longs", + "it.unimi.dsi.fastutil.objects", + "it.unimi.dsi.fastutil.shorts" + ], + "javax.activation:javax.activation-api": [ + "javax.activation" + ], + "javax.annotation:javax.annotation-api": [ + "javax.annotation", + "javax.annotation.security", + "javax.annotation.sql" + ], + "javax.inject:javax.inject": [ + "javax.inject" + ], + "junit:junit": [ + "junit.extensions", + "junit.framework", + "junit.runner", + "junit.textui", + "org.junit", + "org.junit.experimental", + "org.junit.experimental.categories", + "org.junit.experimental.max", + "org.junit.experimental.results", + "org.junit.experimental.runners", + "org.junit.experimental.theories", + "org.junit.experimental.theories.internal", + "org.junit.experimental.theories.suppliers", + "org.junit.function", + "org.junit.internal", + "org.junit.internal.builders", + "org.junit.internal.management", + "org.junit.internal.matchers", + "org.junit.internal.requests", + "org.junit.internal.runners", + "org.junit.internal.runners.model", + "org.junit.internal.runners.rules", + "org.junit.internal.runners.statements", + "org.junit.matchers", + "org.junit.rules", + "org.junit.runner", + "org.junit.runner.manipulation", + "org.junit.runner.notification", + "org.junit.runners", + "org.junit.runners.model", + "org.junit.runners.parameterized", + "org.junit.validator" + ], + "net.bytebuddy:byte-buddy": [ + "net.bytebuddy", + "net.bytebuddy.agent.builder", + "net.bytebuddy.asm", + "net.bytebuddy.build", + "net.bytebuddy.description", + "net.bytebuddy.description.annotation", + "net.bytebuddy.description.enumeration", + "net.bytebuddy.description.field", + "net.bytebuddy.description.method", + "net.bytebuddy.description.modifier", + "net.bytebuddy.description.type", + "net.bytebuddy.dynamic", + "net.bytebuddy.dynamic.loading", + "net.bytebuddy.dynamic.scaffold", + "net.bytebuddy.dynamic.scaffold.inline", + "net.bytebuddy.dynamic.scaffold.subclass", + "net.bytebuddy.implementation", + "net.bytebuddy.implementation.attribute", + "net.bytebuddy.implementation.auxiliary", + "net.bytebuddy.implementation.bind", + "net.bytebuddy.implementation.bind.annotation", + "net.bytebuddy.implementation.bytecode", + "net.bytebuddy.implementation.bytecode.assign", + "net.bytebuddy.implementation.bytecode.assign.primitive", + "net.bytebuddy.implementation.bytecode.assign.reference", + "net.bytebuddy.implementation.bytecode.collection", + "net.bytebuddy.implementation.bytecode.constant", + "net.bytebuddy.implementation.bytecode.member", + "net.bytebuddy.jar.asm", + "net.bytebuddy.jar.asm.commons", + "net.bytebuddy.jar.asm.signature", + "net.bytebuddy.matcher", + "net.bytebuddy.pool", + "net.bytebuddy.utility", + "net.bytebuddy.utility.dispatcher", + "net.bytebuddy.utility.nullability", + "net.bytebuddy.utility.privilege", + "net.bytebuddy.utility.visitor" + ], + "net.bytebuddy:byte-buddy-agent": [ + "net.bytebuddy.agent", + "net.bytebuddy.agent.utility.nullability" + ], + "org.apache.commons:commons-compress": [ + "org.apache.commons.compress", + "org.apache.commons.compress.archivers", + "org.apache.commons.compress.archivers.ar", + "org.apache.commons.compress.archivers.arj", + "org.apache.commons.compress.archivers.cpio", + "org.apache.commons.compress.archivers.dump", + "org.apache.commons.compress.archivers.examples", + "org.apache.commons.compress.archivers.jar", + "org.apache.commons.compress.archivers.sevenz", + "org.apache.commons.compress.archivers.tar", + "org.apache.commons.compress.archivers.zip", + "org.apache.commons.compress.changes", + "org.apache.commons.compress.compressors", + "org.apache.commons.compress.compressors.brotli", + "org.apache.commons.compress.compressors.bzip2", + "org.apache.commons.compress.compressors.deflate", + "org.apache.commons.compress.compressors.deflate64", + "org.apache.commons.compress.compressors.gzip", + "org.apache.commons.compress.compressors.lz4", + "org.apache.commons.compress.compressors.lz77support", + "org.apache.commons.compress.compressors.lzma", + "org.apache.commons.compress.compressors.lzw", + "org.apache.commons.compress.compressors.pack200", + "org.apache.commons.compress.compressors.snappy", + "org.apache.commons.compress.compressors.xz", + "org.apache.commons.compress.compressors.z", + "org.apache.commons.compress.compressors.zstandard", + "org.apache.commons.compress.parallel", + "org.apache.commons.compress.utils" + ], + "org.apache.commons:commons-pool2": [ + "org.apache.commons.pool2", + "org.apache.commons.pool2.impl", + "org.apache.commons.pool2.proxy" + ], + "org.apache.tomcat:tomcat-annotations-api": [ + "javax.annotation", + "javax.annotation.security", + "javax.annotation.sql", + "javax.ejb", + "javax.persistence", + "javax.xml.ws" + ], + "org.apache.velocity:velocity": [ + "org.apache.velocity", + "org.apache.velocity.anakia", + "org.apache.velocity.app", + "org.apache.velocity.app.event", + "org.apache.velocity.app.event.implement", + "org.apache.velocity.app.tools", + "org.apache.velocity.context", + "org.apache.velocity.convert", + "org.apache.velocity.exception", + "org.apache.velocity.io", + "org.apache.velocity.runtime", + "org.apache.velocity.runtime.directive", + "org.apache.velocity.runtime.log", + "org.apache.velocity.runtime.parser", + "org.apache.velocity.runtime.parser.node", + "org.apache.velocity.runtime.resource", + "org.apache.velocity.runtime.resource.loader", + "org.apache.velocity.runtime.resource.util", + "org.apache.velocity.runtime.visitor", + "org.apache.velocity.servlet", + "org.apache.velocity.texen", + "org.apache.velocity.texen.ant", + "org.apache.velocity.texen.util", + "org.apache.velocity.util", + "org.apache.velocity.util.introspection" + ], + "org.checkerframework:checker-compat-qual": [ + "org.checkerframework.checker.nullness.compatqual" + ], + "org.checkerframework:checker-qual": [ + "org.checkerframework.checker.builder.qual", + "org.checkerframework.checker.calledmethods.qual", + "org.checkerframework.checker.compilermsgs.qual", + "org.checkerframework.checker.fenum.qual", + "org.checkerframework.checker.formatter.qual", + "org.checkerframework.checker.guieffect.qual", + "org.checkerframework.checker.i18n.qual", + "org.checkerframework.checker.i18nformatter.qual", + "org.checkerframework.checker.index.qual", + "org.checkerframework.checker.initialization.qual", + "org.checkerframework.checker.interning.qual", + "org.checkerframework.checker.lock.qual", + "org.checkerframework.checker.mustcall.qual", + "org.checkerframework.checker.nullness.qual", + "org.checkerframework.checker.optional.qual", + "org.checkerframework.checker.propkey.qual", + "org.checkerframework.checker.regex.qual", + "org.checkerframework.checker.signature.qual", + "org.checkerframework.checker.signedness.qual", + "org.checkerframework.checker.tainting.qual", + "org.checkerframework.checker.units.qual", + "org.checkerframework.common.aliasing.qual", + "org.checkerframework.common.initializedfields.qual", + "org.checkerframework.common.reflection.qual", + "org.checkerframework.common.returnsreceiver.qual", + "org.checkerframework.common.subtyping.qual", + "org.checkerframework.common.util.count.report.qual", + "org.checkerframework.common.value.qual", + "org.checkerframework.dataflow.qual", + "org.checkerframework.framework.qual" + ], + "org.codehaus.mojo:animal-sniffer-annotations": [ + "org.codehaus.mojo.animal_sniffer" + ], + "org.hamcrest:hamcrest-core": [ + "org.hamcrest", + "org.hamcrest.core", + "org.hamcrest.internal" + ], + "org.mockito:mockito-core": [ + "org.mockito", + "org.mockito.codegen", + "org.mockito.configuration", + "org.mockito.creation.instance", + "org.mockito.exceptions.base", + "org.mockito.exceptions.misusing", + "org.mockito.exceptions.stacktrace", + "org.mockito.exceptions.verification", + "org.mockito.exceptions.verification.junit", + "org.mockito.exceptions.verification.opentest4j", + "org.mockito.hamcrest", + "org.mockito.internal", + "org.mockito.internal.configuration", + "org.mockito.internal.configuration.injection", + "org.mockito.internal.configuration.injection.filter", + "org.mockito.internal.configuration.injection.scanner", + "org.mockito.internal.configuration.plugins", + "org.mockito.internal.creation", + "org.mockito.internal.creation.bytebuddy", + "org.mockito.internal.creation.instance", + "org.mockito.internal.creation.proxy", + "org.mockito.internal.creation.settings", + "org.mockito.internal.creation.util", + "org.mockito.internal.debugging", + "org.mockito.internal.exceptions", + "org.mockito.internal.exceptions.stacktrace", + "org.mockito.internal.exceptions.util", + "org.mockito.internal.framework", + "org.mockito.internal.hamcrest", + "org.mockito.internal.handler", + "org.mockito.internal.invocation", + "org.mockito.internal.invocation.finder", + "org.mockito.internal.invocation.mockref", + "org.mockito.internal.junit", + "org.mockito.internal.listeners", + "org.mockito.internal.matchers", + "org.mockito.internal.matchers.apachecommons", + "org.mockito.internal.matchers.text", + "org.mockito.internal.progress", + "org.mockito.internal.reporting", + "org.mockito.internal.runners", + "org.mockito.internal.runners.util", + "org.mockito.internal.session", + "org.mockito.internal.stubbing", + "org.mockito.internal.stubbing.answers", + "org.mockito.internal.stubbing.defaultanswers", + "org.mockito.internal.util", + "org.mockito.internal.util.collections", + "org.mockito.internal.util.concurrent", + "org.mockito.internal.util.io", + "org.mockito.internal.util.reflection", + "org.mockito.internal.verification", + "org.mockito.internal.verification.api", + "org.mockito.internal.verification.argumentmatching", + "org.mockito.internal.verification.checkers", + "org.mockito.invocation", + "org.mockito.junit", + "org.mockito.listeners", + "org.mockito.mock", + "org.mockito.plugins", + "org.mockito.quality", + "org.mockito.session", + "org.mockito.stubbing", + "org.mockito.verification" + ], + "org.objenesis:objenesis": [ + "org.objenesis", + "org.objenesis.instantiator", + "org.objenesis.instantiator.android", + "org.objenesis.instantiator.annotations", + "org.objenesis.instantiator.basic", + "org.objenesis.instantiator.gcj", + "org.objenesis.instantiator.perc", + "org.objenesis.instantiator.sun", + "org.objenesis.instantiator.util", + "org.objenesis.strategy" + ], + "org.ow2.asm:asm": [ + "org.objectweb.asm", + "org.objectweb.asm.signature" + ], + "org.ow2.asm:asm-analysis": [ + "org.objectweb.asm.tree.analysis" + ], + "org.ow2.asm:asm-commons": [ + "org.objectweb.asm.commons" + ], + "org.ow2.asm:asm-tree": [ + "org.objectweb.asm.tree" + ], + "org.ow2.asm:asm-util": [ + "org.objectweb.asm.util" + ], + "org.pcollections:pcollections": [ + "org.pcollections" + ], + "org.reactivestreams:reactive-streams": [ + "org.reactivestreams" + ], + "org.threeten:threeten-extra": [ + "org.threeten.extra", + "org.threeten.extra.chrono", + "org.threeten.extra.scale" + ], + "org.tukaani:xz": [ + "org.tukaani.xz", + "org.tukaani.xz.check", + "org.tukaani.xz.common", + "org.tukaani.xz.delta", + "org.tukaani.xz.index", + "org.tukaani.xz.lz", + "org.tukaani.xz.lzma", + "org.tukaani.xz.rangecoder", + "org.tukaani.xz.simple" + ], + "org.yaml:snakeyaml": [ + "org.yaml.snakeyaml", + "org.yaml.snakeyaml.comments", + "org.yaml.snakeyaml.composer", + "org.yaml.snakeyaml.constructor", + "org.yaml.snakeyaml.emitter", + "org.yaml.snakeyaml.env", + "org.yaml.snakeyaml.error", + "org.yaml.snakeyaml.events", + "org.yaml.snakeyaml.extensions.compactnotation", + "org.yaml.snakeyaml.external.biz.base64Coder", + "org.yaml.snakeyaml.external.com.google.gdata.util.common.base", + "org.yaml.snakeyaml.inspector", + "org.yaml.snakeyaml.internal", + "org.yaml.snakeyaml.introspector", + "org.yaml.snakeyaml.nodes", + "org.yaml.snakeyaml.parser", + "org.yaml.snakeyaml.reader", + "org.yaml.snakeyaml.representer", + "org.yaml.snakeyaml.resolver", + "org.yaml.snakeyaml.scanner", + "org.yaml.snakeyaml.serializer", + "org.yaml.snakeyaml.tokens", + "org.yaml.snakeyaml.util" + ], + "tools.profiler:async-profiler": [ + "one.profiler" + ] + }, + "repositories": { + "https://repo1.maven.org/maven2/": [ + "aopalliance:aopalliance", + "com.beust:jcommander", + "com.github.ben-manes.caffeine:caffeine", + "com.github.kevinstern:software-and-algorithms", + "com.github.stephenc.jcip:jcip-annotations", + "com.google.android:annotations", + "com.google.api-client:google-api-client", + "com.google.api-client:google-api-client-gson", + "com.google.api.grpc:proto-google-common-protos", + "com.google.auth:google-auth-library-credentials", + "com.google.auth:google-auth-library-oauth2-http", + "com.google.auto.service:auto-service", + "com.google.auto.service:auto-service-annotations", + "com.google.auto.value:auto-value", + "com.google.auto.value:auto-value-annotations", + "com.google.auto:auto-common", + "com.google.code.findbugs:jsr305", + "com.google.code.gson:gson", + "com.google.code.java-allocation-instrumenter:java-allocation-instrumenter", + "com.google.errorprone:error_prone_annotation", + "com.google.errorprone:error_prone_annotations", + "com.google.errorprone:error_prone_check_api", + "com.google.errorprone:error_prone_core", + "com.google.errorprone:error_prone_type_annotations", + "com.google.flogger:flogger", + "com.google.flogger:flogger-system-backend", + "com.google.flogger:google-extensions", + "com.google.guava:failureaccess", + "com.google.guava:guava", + "com.google.guava:guava-testlib", + "com.google.guava:listenablefuture", + "com.google.http-client:google-http-client", + "com.google.http-client:google-http-client-apache-v2", + "com.google.http-client:google-http-client-gson", + "com.google.inject:guice", + "com.google.j2objc:j2objc-annotations", + "com.google.jimfs:jimfs", + "com.google.oauth-client:google-oauth-client", + "com.google.testing.compile:compile-testing", + "com.google.testparameterinjector:test-parameter-injector", + "com.google.truth.extensions:truth-java8-extension", + "com.google.truth.extensions:truth-liteproto-extension", + "com.google.truth.extensions:truth-proto-extension", + "com.google.truth:truth", + "com.google.turbine:turbine", + "com.ryanharter.auto.value:auto-value-gson-extension", + "com.ryanharter.auto.value:auto-value-gson-factory", + "com.ryanharter.auto.value:auto-value-gson-runtime", + "com.squareup:javapoet", + "commons-collections:commons-collections", + "commons-lang:commons-lang", + "io.github.eisop:dataflow-errorprone", + "io.github.java-diff-utils:java-diff-utils", + "io.grpc:grpc-api", + "io.grpc:grpc-auth", + "io.grpc:grpc-context", + "io.grpc:grpc-core", + "io.grpc:grpc-netty", + "io.grpc:grpc-protobuf", + "io.grpc:grpc-protobuf-lite", + "io.grpc:grpc-stub", + "io.netty:netty-buffer", + "io.netty:netty-codec", + "io.netty:netty-codec-dns", + "io.netty:netty-codec-http", + "io.netty:netty-codec-http2", + "io.netty:netty-codec-socks", + "io.netty:netty-common", + "io.netty:netty-handler", + "io.netty:netty-handler-proxy", + "io.netty:netty-resolver", + "io.netty:netty-resolver-dns", + "io.netty:netty-tcnative-boringssl-static:jar:linux-aarch_64", + "io.netty:netty-tcnative-boringssl-static:jar:linux-x86_64", + "io.netty:netty-tcnative-boringssl-static:jar:osx-aarch_64", + "io.netty:netty-tcnative-boringssl-static:jar:osx-x86_64", + "io.netty:netty-tcnative-boringssl-static:jar:windows-x86_64", + "io.netty:netty-tcnative-classes", + "io.netty:netty-transport", + "io.netty:netty-transport-classes-epoll", + "io.netty:netty-transport-classes-kqueue", + "io.netty:netty-transport-native-epoll:jar:linux-aarch_64", + "io.netty:netty-transport-native-epoll:jar:linux-x86_64", + "io.netty:netty-transport-native-kqueue:jar:osx-aarch_64", + "io.netty:netty-transport-native-kqueue:jar:osx-x86_64", + "io.netty:netty-transport-native-unix-common", + "io.netty:netty-transport-native-unix-common:jar:linux-aarch_64", + "io.netty:netty-transport-native-unix-common:jar:linux-x86_64", + "io.netty:netty-transport-native-unix-common:jar:osx-aarch_64", + "io.netty:netty-transport-native-unix-common:jar:osx-x86_64", + "io.opencensus:opencensus-api", + "io.opencensus:opencensus-contrib-http-util", + "io.perfmark:perfmark-api", + "io.reactivex.rxjava3:rxjava", + "io.sweers.autotransient:autotransient", + "it.unimi.dsi:fastutil", + "javax.activation:javax.activation-api", + "javax.annotation:javax.annotation-api", + "javax.inject:javax.inject", + "junit:junit", + "net.bytebuddy:byte-buddy", + "net.bytebuddy:byte-buddy-agent", + "org.apache.commons:commons-compress", + "org.apache.commons:commons-pool2", + "org.apache.tomcat:tomcat-annotations-api", + "org.apache.velocity:velocity", + "org.checkerframework:checker-compat-qual", + "org.checkerframework:checker-qual", + "org.codehaus.mojo:animal-sniffer-annotations", + "org.hamcrest:hamcrest-core", + "org.mockito:mockito-core", + "org.objenesis:objenesis", + "org.ow2.asm:asm", + "org.ow2.asm:asm-analysis", + "org.ow2.asm:asm-commons", + "org.ow2.asm:asm-tree", + "org.ow2.asm:asm-util", + "org.pcollections:pcollections", + "org.reactivestreams:reactive-streams", + "org.threeten:threeten-extra", + "org.tukaani:xz", + "org.yaml:snakeyaml", + "tools.profiler:async-profiler" + ] + }, + "version": "2" +}