diff --git a/private/tools/java/com/github/bazelbuild/rules_jvm_external/resolver/gradle/GradleResolver.java b/private/tools/java/com/github/bazelbuild/rules_jvm_external/resolver/gradle/GradleResolver.java
index 8d928bb..b6eea23 100644
--- a/private/tools/java/com/github/bazelbuild/rules_jvm_external/resolver/gradle/GradleResolver.java
+++ b/private/tools/java/com/github/bazelbuild/rules_jvm_external/resolver/gradle/GradleResolver.java
@@ -275,7 +275,10 @@
     }
 
     // After building the graph, contract relocation stubs (keep aggregating POMs)
-    collapseRelocations(graph, coordinateHashes, conflicts, artifactsByNode);
+    collapseRelocations(graph, coordinateHashes, conflicts, paths, artifactsByNode);
+
+    // Collapse aggregating dependencies (dependencies with only classified artifacts)
+    collapseAggregatingDependencies(graph, paths, artifactsByNode);
 
     return new ResolutionResult(graph, conflicts, paths);
   }
@@ -367,6 +370,7 @@
       MutableGraph<Coordinates> graph,
       Map<Coordinates, String> coordinateHashes,
       Set<Conflict> conflicts,
+      Map<Coordinates, Path> paths,
       Map<Coordinates, List<GradleResolvedArtifact>> artifactsByNode) {
     List<Coordinates> toRemove = new ArrayList<>();
 
@@ -395,21 +399,40 @@
       }
 
       // Find the target node in the graph by matching G:A:V (ignore classifier/extension)
+      // If the exact version isn't found, look for any version of the same artifact
+      // since relocation means the artifact has moved regardless of version
       Coordinates targetNode = null;
+      Coordinates targetNodeAnyVersion = null;
+
       for (Coordinates candidate : graph.nodes()) {
         if (candidate.getGroupId().equals(target.getGroupId())
-            && candidate.getArtifactId().equals(target.getArtifactId())
-            && candidate.getVersion().equals(target.getVersion())) {
-          // Prefer non-POM node if possible
-          if (targetNode == null) {
-            targetNode = candidate;
-          } else if (!"pom".equals(candidate.getExtension())
-              && "pom".equals(targetNode.getExtension())) {
-            targetNode = candidate;
+            && candidate.getArtifactId().equals(target.getArtifactId())) {
+
+          if (candidate.getVersion().equals(target.getVersion())) {
+            // Exact version match - prefer non-POM node if possible
+            if (targetNode == null) {
+              targetNode = candidate;
+            } else if (!"pom".equals(candidate.getExtension())
+                && "pom".equals(targetNode.getExtension())) {
+              targetNode = candidate;
+            }
+          } else {
+            // Different version - keep track in case we need it
+            if (targetNodeAnyVersion == null) {
+              targetNodeAnyVersion = candidate;
+            } else if (!"pom".equals(candidate.getExtension())
+                && "pom".equals(targetNodeAnyVersion.getExtension())) {
+              targetNodeAnyVersion = candidate;
+            }
           }
         }
       }
 
+      // If exact version not found, use any version of the target artifact
+      if (targetNode == null) {
+        targetNode = targetNodeAnyVersion;
+      }
+
       if (targetNode == null) {
         // Could not find the relocation target in the graph; be conservative and skip
         continue;
@@ -446,6 +469,7 @@
     // Remove after iteration to avoid concurrent modification
     for (Coordinates n : toRemove) {
       graph.removeNode(n);
+      paths.remove(n);
     }
   }
 
@@ -479,6 +503,93 @@
     return null;
   }
 
+  private void collapseAggregatingDependencies(
+      MutableGraph<Coordinates> graph,
+      Map<Coordinates, Path> paths,
+      Map<Coordinates, List<GradleResolvedArtifact>> artifactsByNode) {
+    List<Coordinates> toRemove = new ArrayList<>();
+
+    for (Coordinates node : graph.nodes()) {
+      List<GradleResolvedArtifact> artifacts = artifactsByNode.get(node);
+      if (artifacts == null || artifacts.isEmpty()) {
+        continue;
+      }
+
+      // Check if this is an aggregating dependency:
+      // A dependency is aggregating if it has only POM files (no JAR/AAR artifacts)
+      // We check the actual filename since the extension field may not be reliable
+      boolean hasNonPomArtifact = false;
+
+      for (GradleResolvedArtifact artifact : artifacts) {
+        File file = artifact.getFile();
+        // Check the actual file name to see if it's a POM
+        if (file != null && !file.getName().endsWith(".pom")) {
+          hasNonPomArtifact = true;
+          break;
+        }
+      }
+
+      // If there are non-POM artifacts, this is not an aggregating dependency
+      if (hasNonPomArtifact) {
+        continue;
+      }
+
+      // This node only has POM artifacts. Check if it's an aggregating dependency.
+      // An aggregating dependency is one where:
+      // 1. It only has a POM file (checked above)
+      // 2. Either:
+      //    a) Its successors are all classified variants of the SAME artifact, OR
+      //    b) There exist other nodes in the graph with the same G:A:V but with classifiers
+      //       (indicating this is a base coordinate for classified variants)
+      boolean isAggregating = false;
+      Set<Coordinates> successors = graph.successors(node);
+
+      if (!successors.isEmpty()) {
+        // Check if all successors are classified variants of this node
+        // (same group:artifact:version, but with classifiers)
+        boolean allSuccessorsAreClassifiedVariants = true;
+        for (Coordinates successor : successors) {
+          boolean isClassifiedVariant =
+              successor.getGroupId().equals(node.getGroupId())
+                  && successor.getArtifactId().equals(node.getArtifactId())
+                  && successor.getVersion().equals(node.getVersion())
+                  && successor.getClassifier() != null
+                  && !successor.getClassifier().isEmpty();
+
+          if (!isClassifiedVariant) {
+            allSuccessorsAreClassifiedVariants = false;
+            break;
+          }
+        }
+
+        isAggregating = allSuccessorsAreClassifiedVariants;
+      } else {
+        // No successors - check if there are classified variants in the graph
+        for (Coordinates other : graph.nodes()) {
+          if (other.getGroupId().equals(node.getGroupId())
+              && other.getArtifactId().equals(node.getArtifactId())
+              && other.getVersion().equals(node.getVersion())
+              && other.getClassifier() != null
+              && !other.getClassifier().isEmpty()) {
+            isAggregating = true;
+            break;
+          }
+        }
+      }
+
+      // Only remove if this is truly an aggregating dependency
+      if (isAggregating) {
+        toRemove.add(node);
+      }
+    }
+
+    // Remove aggregating base coordinates after iteration
+    for (Coordinates n : toRemove) {
+      graph.removeNode(n);
+      paths.remove(n);
+    }
+  }
+
   private Repository createRepository(URI uri) {
     Netrc.Credential credential = netrc.getCredential(uri.getHost());
     if (credential == null) {
diff --git a/tests/com/github/bazelbuild/rules_jvm_external/resolver/ResolverTestBase.java b/tests/com/github/bazelbuild/rules_jvm_external/resolver/ResolverTestBase.java
index 6e9f318..3755835 100644
--- a/tests/com/github/bazelbuild/rules_jvm_external/resolver/ResolverTestBase.java
+++ b/tests/com/github/bazelbuild/rules_jvm_external/resolver/ResolverTestBase.java
@@ -748,6 +748,45 @@
     assertEquals(Set.of(childA, childB), graph.successors(aggregator));
   }
 
+  @Test
+  public void shouldHandleRelocationWithVersionConflict() {
+    // This test reproduces the mysql-connector-java issue where:
+    // - mysql:mysql-connector-java:8.0.33 is a relocation POM pointing to
+    // com.mysql:mysql-connector-j
+    // - When both the old coordinate (8.0.33) and new coordinate (8.4.0) are requested,
+    // - The resolver should handle the version conflict and pick the higher version
+
+    // The old artifact that has been relocated
+    Coordinates oldCoord = new Coordinates("mysql:mysql-connector-java:8.0.33");
+    // The new artifact at the same version as the relocation
+    Coordinates newCoordSameVersion = new Coordinates("com.mysql:mysql-connector-j:8.0.33");
+    // The new artifact at a higher version
+    Coordinates newCoordHigherVersion = new Coordinates("com.mysql:mysql-connector-j:8.4.0");
+
+    Path repo =
+        MavenRepo.create()
+            // Add the new coordinate at both versions
+            .add(newCoordSameVersion)
+            .add(newCoordHigherVersion)
+            // Add the relocation POM: old -> new (at same version)
+            .addRelocation(oldCoord, newCoordSameVersion)
+            .getPath();
+
+    // Request both the old coordinate and the new coordinate at different version
+    Graph<Coordinates> graph =
+        resolver
+            .resolve(prepareRequestFor(repo.toUri(), oldCoord, newCoordHigherVersion))
+            .getResolution();
+
+    // The resolver should:
+    // 1. Follow the relocation from mysql:mysql-connector-java:8.0.33 to
+    // com.mysql:mysql-connector-j:8.0.33
+    // 2. Resolve the version conflict between 8.0.33 and 8.4.0
+    // 3. Pick the higher version (8.4.0)
+    // The graph should only contain the higher version of the new coordinate
+    assertEquals(Set.of(newCoordHigherVersion), graph.nodes());
+  }
+
   protected Model createModel(Coordinates coords) {
     Model model = new Model();
     model.setModelVersion("4.0.0");
diff --git a/tests/com/github/bazelbuild/rules_jvm_external/resolver/gradle/GradleResolverTest.java b/tests/com/github/bazelbuild/rules_jvm_external/resolver/gradle/GradleResolverTest.java
index 28f85d3..6460603 100644
--- a/tests/com/github/bazelbuild/rules_jvm_external/resolver/gradle/GradleResolverTest.java
+++ b/tests/com/github/bazelbuild/rules_jvm_external/resolver/gradle/GradleResolverTest.java
@@ -182,4 +182,69 @@
           e.getCause().getMessage());
     }
   }
+
+  @Test
+  public void resolvesAggregatingDependencyWithOnlyClassifiedArtifacts()
+      throws IOException, XMLStreamException {
+    // This test validates that dependencies with only platform-specific classified artifacts
+    // (e.g., native libraries like netty-transport-native-kqueue with -osx-aarch_64.jar)
+    // are correctly marked as aggregating and resolution completes successfully
+    // without trying to download a non-existent base JAR.
+    Coordinates rootCoordinates = new Coordinates("com.example:app:1.0");
+    Coordinates nativeLibCoordinates = new Coordinates("com.example:native-lib:1.0");
+    MavenRepo mavenRepo = MavenRepo.create();
+    GradleModuleMetadataHelper moduleMetadataHelper = new GradleModuleMetadataHelper(mavenRepo);
+
+    Runfiles runfiles =
+        Runfiles.preload().withSourceRepository(AutoBazelRepository_GradleResolverTest.NAME);
+
+    // Add root artifact with dependency on native-lib
+    Path rootMetadataPath =
+        Paths.get(
+            runfiles.rlocation(
+                "rules_jvm_external/tests/com/github/bazelbuild/rules_jvm_external/resolver/gradle/fixtures/aggregatingDependency/app-1.0.module"));
+    String rootMetadata = Files.readString(rootMetadataPath);
+    moduleMetadataHelper.addToMavenRepo(rootCoordinates, rootMetadata);
+
+    // Add native-lib with only classified artifacts (no base JAR)
+    // Use POM extension to avoid creating a base JAR file
+    Path nativeLibMetadataPath =
+        Paths.get(
+            runfiles.rlocation(
+                "rules_jvm_external/tests/com/github/bazelbuild/rules_jvm_external/resolver/gradle/fixtures/aggregatingDependency/native-lib-1.0.module"));
+    String nativeLibMetadata = Files.readString(nativeLibMetadataPath);
+    Coordinates nativeLibPomCoordinates = nativeLibCoordinates.setExtension("pom");
+    moduleMetadataHelper.addToMavenRepo(nativeLibPomCoordinates, nativeLibMetadata);
+
+    // Add classified artifacts for native-lib
+    Coordinates osxAarch64 = new Coordinates("com.example:native-lib:jar:osx-aarch_64:1.0");
+    Coordinates osxX8664 = new Coordinates("com.example:native-lib:jar:osx-x86_64:1.0");
+    mavenRepo.add(osxAarch64);
+    mavenRepo.add(osxX8664);
+
+    // This should complete successfully without trying to download the base JAR
+    // (com.example:native-lib:1.0 without classifier)
+    var result = resolver.resolve(prepareRequestFor(mavenRepo.getPath().toUri(), rootCoordinates));
+    Graph<Coordinates> resolved = result.getResolution();
+
+    // Verify the graph contains the root coordinate
+    assertTrue(resolved.nodes().contains(rootCoordinates));
+
+    // The base coordinate for native-lib should NOT be in the graph
+    // because it only has a POM (it's an aggregating dependency with no base artifact)
+    assertEquals(
+        "Expected aggregating native-lib coordinate to be removed from graph",
+        false,
+        resolved.nodes().contains(nativeLibCoordinates));
+
+    // The classified artifacts should be in the graph
+    assertTrue(
+        "Expected osx-aarch_64 classified artifact in graph",
+        resolved.nodes().contains(osxAarch64));
+    assertTrue(
+        "Expected osx-x86_64 classified artifact in graph", resolved.nodes().contains(osxX8664));
+
+    // The graph should contain: app + 2 classified native-lib artifacts
+    assertEquals("Expected 3 coordinates in graph", 3, resolved.nodes().size());
+  }
 }
diff --git a/tests/com/github/bazelbuild/rules_jvm_external/resolver/gradle/fixtures/BUILD.bazel b/tests/com/github/bazelbuild/rules_jvm_external/resolver/gradle/fixtures/BUILD.bazel
index e6b201f..5cacf15 100644
--- a/tests/com/github/bazelbuild/rules_jvm_external/resolver/gradle/fixtures/BUILD.bazel
+++ b/tests/com/github/bazelbuild/rules_jvm_external/resolver/gradle/fixtures/BUILD.bazel
@@ -1,6 +1,8 @@
 filegroup(
     name = "fixtures",
     srcs = [
+        "aggregatingDependency/app-1.0.module",
+        "aggregatingDependency/native-lib-1.0.module",
         "jvmAndAndroidVariants/sample-1.0.module",
         "jvmAndAndroidVariants/sample-android-1.0.module",
         "jvmAndAndroidVariants/sample-jvm-1.0.module",
diff --git a/tests/com/github/bazelbuild/rules_jvm_external/resolver/gradle/fixtures/aggregatingDependency/app-1.0.module b/tests/com/github/bazelbuild/rules_jvm_external/resolver/gradle/fixtures/aggregatingDependency/app-1.0.module
new file mode 100644
index 0000000..03952be
--- /dev/null
+++ b/tests/com/github/bazelbuild/rules_jvm_external/resolver/gradle/fixtures/aggregatingDependency/app-1.0.module
@@ -0,0 +1,56 @@
+{
+  "formatVersion": "1.1",
+  "component": {
+    "group": "com.example",
+    "module": "app",
+    "version": "1.0",
+    "attributes": { "org.gradle.status": "release" }
+  },
+  "variants": [
+    {
+      "name": "runtimeElements",
+      "attributes": {
+       "org.gradle.category": "library",
+       "org.gradle.libraryelements": "jar",
+       "org.gradle.usage": "java-runtime"
+      },
+      "dependencies": [
+        {
+          "group": "com.example",
+          "module": "native-lib",
+          "version": { "requires": "1.0" },
+          "thirdPartyCompatibility": {
+            "artifactSelector": {
+              "name": "native-lib",
+              "type": "jar",
+              "extension": "jar",
+              "classifier": "osx-aarch_64"
+            }
+          }
+        },
+        {
+          "group": "com.example",
+          "module": "native-lib",
+          "version": { "requires": "1.0" },
+          "thirdPartyCompatibility": {
+            "artifactSelector": {
+              "name": "native-lib",
+              "type": "jar",
+              "extension": "jar",
+              "classifier": "osx-x86_64"
+            }
+          }
+        }
+      ],
+      "files": [
+        {
+          "name": "app-1.0.jar",
+          "url": "app-1.0.jar",
+          "size": 100,
+          "sha1": "da39a3ee5e6b4b0d3255bfef95601890afd80709",
+          "md5": "d41d8cd98f00b204e9800998ecf8427e"
+        }
+      ]
+    }
+  ]
+}
diff --git a/tests/com/github/bazelbuild/rules_jvm_external/resolver/gradle/fixtures/aggregatingDependency/native-lib-1.0.module b/tests/com/github/bazelbuild/rules_jvm_external/resolver/gradle/fixtures/aggregatingDependency/native-lib-1.0.module
new file mode 100644
index 0000000..0531b50
--- /dev/null
+++ b/tests/com/github/bazelbuild/rules_jvm_external/resolver/gradle/fixtures/aggregatingDependency/native-lib-1.0.module
@@ -0,0 +1,47 @@
+{
+  "formatVersion": "1.1",
+  "component": {
+    "group": "com.example",
+    "module": "native-lib",
+    "version": "1.0",
+    "attributes": { "org.gradle.status": "release" }
+  },
+  "variants": [
+    {
+      "name": "runtimeElements",
+      "attributes": {
+       "org.gradle.category": "library",
+       "org.gradle.libraryelements": "jar",
+       "org.gradle.usage": "java-runtime"
+      },
+      "dependencies": [
+        {
+          "group": "com.example",
+          "module": "native-lib",
+          "version": { "requires": "1.0" },
+          "thirdPartyCompatibility": {
+            "artifactSelector": {
+              "name": "native-lib",
+              "type": "jar",
+              "extension": "jar",
+              "classifier": "osx-aarch_64"
+            }
+          }
+        },
+        {
+          "group": "com.example",
+          "module": "native-lib",
+          "version": { "requires": "1.0" },
+          "thirdPartyCompatibility": {
+            "artifactSelector": {
+              "name": "native-lib",
+              "type": "jar",
+              "extension": "jar",
+              "classifier": "osx-x86_64"
+            }
+          }
+        }
+      ]
+    }
+  ]
+}
diff --git a/tests/custom_maven_install/regression_testing_gradle_index.json b/tests/custom_maven_install/regression_testing_gradle_index.json
index 6c4961a..c30925b 100644
--- a/tests/custom_maven_install/regression_testing_gradle_index.json
+++ b/tests/custom_maven_install/regression_testing_gradle_index.json
@@ -1,9 +1,6 @@
 {
   "__AUTOGENERATED_FILE_DO_NOT_MODIFY_THIS_FILE_MANUALLY": "THERE_IS_NO_DATA_ONLY_ZUUL",
   "packages": {
-    "androidx.annotation:annotation-jvm": [
-      "androidx.annotation"
-    ],
     "androidx.arch.core:core-common": [
       "androidx.arch.core.internal",
       "androidx.arch.core.util"
@@ -37,25 +34,6 @@
     "com.google.guava:listenablefuture": [
       "com.google.common.util.concurrent"
     ],
-    "com.squareup.okhttp3:okhttp": [
-      "okhttp3",
-      "okhttp3.internal",
-      "okhttp3.internal.authenticator",
-      "okhttp3.internal.cache",
-      "okhttp3.internal.cache2",
-      "okhttp3.internal.concurrent",
-      "okhttp3.internal.connection",
-      "okhttp3.internal.http",
-      "okhttp3.internal.http1",
-      "okhttp3.internal.http2",
-      "okhttp3.internal.io",
-      "okhttp3.internal.platform",
-      "okhttp3.internal.platform.android",
-      "okhttp3.internal.proxy",
-      "okhttp3.internal.publicsuffix",
-      "okhttp3.internal.tls",
-      "okhttp3.internal.ws"
-    ],
     "com.squareup.okio:okio-jvm": [
       "okio",
       "okio.internal"
@@ -136,6 +114,134 @@
     ]
   },
   "split_package_classes": {
+    "androidx.annotation:annotation": {
+      "androidx.annotation": [
+        "AnimRes",
+        "AnimatorRes",
+        "AnyRes",
+        "AnyThread",
+        "ArrayRes",
+        "AttrRes",
+        "BinderThread",
+        "BoolRes",
+        "CallSuper",
+        "CheckResult",
+        "ChecksSdkIntAtLeast",
+        "ColorInt",
+        "ColorLong",
+        "ColorRes",
+        "ContentView",
+        "DimenRes",
+        "Dimension",
+        "DoNotInline",
+        "DrawableRes",
+        "FloatRange",
+        "FontRes",
+        "FractionRes",
+        "GuardedBy",
+        "HalfFloat",
+        "IdRes",
+        "InspectableProperty",
+        "IntDef",
+        "IntRange",
+        "IntegerRes",
+        "InterpolatorRes",
+        "Keep",
+        "LayoutRes",
+        "LongDef",
+        "MainThread",
+        "MenuRes",
+        "NavigationRes",
+        "NonNull",
+        "Nullable",
+        "PluralsRes",
+        "Px",
+        "RawRes",
+        "RequiresApi",
+        "RequiresFeature",
+        "RequiresPermission",
+        "RestrictTo",
+        "Size",
+        "StringDef",
+        "StringRes",
+        "StyleRes",
+        "StyleableRes",
+        "TransitionRes",
+        "UiThread",
+        "VisibleForTesting",
+        "WorkerThread",
+        "XmlRes"
+      ]
+    },
+    "androidx.annotation:annotation-jvm": {
+      "androidx.annotation": [
+        "AnimRes",
+        "AnimatorRes",
+        "AnyRes",
+        "AnyThread",
+        "ArrayRes",
+        "AttrRes",
+        "BinderThread",
+        "BoolRes",
+        "CallSuper",
+        "CheckResult",
+        "ChecksSdkIntAtLeast",
+        "ColorInt",
+        "ColorLong",
+        "ColorRes",
+        "ContentView",
+        "DeprecatedSinceApi",
+        "DimenRes",
+        "Dimension",
+        "Discouraged",
+        "DisplayContext",
+        "DoNotInline",
+        "DrawableRes",
+        "EmptySuper",
+        "FloatRange",
+        "FontRes",
+        "FractionRes",
+        "GravityInt",
+        "GuardedBy",
+        "HalfFloat",
+        "IdRes",
+        "InspectableProperty",
+        "IntDef",
+        "IntRange",
+        "IntegerRes",
+        "InterpolatorRes",
+        "Keep",
+        "LayoutRes",
+        "LongDef",
+        "MainThread",
+        "MenuRes",
+        "NavigationRes",
+        "NonNull",
+        "NonUiContext",
+        "Nullable",
+        "OpenForTesting",
+        "PluralsRes",
+        "Px",
+        "RawRes",
+        "RequiresApi",
+        "RequiresExtension",
+        "RequiresFeature",
+        "RequiresPermission",
+        "RestrictTo",
+        "ReturnThis",
+        "Size",
+        "StringDef",
+        "StringRes",
+        "StyleRes",
+        "StyleableRes",
+        "TransitionRes",
+        "UiContext",
+        "UiThread",
+        "VisibleForTesting",
+        "WorkerThread",
+        "XmlRes"
+      ]
+    },
     "androidx.collection:collection": {
       "androidx.collection": [
         "ArrayMap",
diff --git a/tests/custom_maven_install/regression_testing_gradle_install.json b/tests/custom_maven_install/regression_testing_gradle_install.json
index 0476c34..16a8c9a 100644
--- a/tests/custom_maven_install/regression_testing_gradle_install.json
+++ b/tests/custom_maven_install/regression_testing_gradle_install.json
@@ -1,11 +1,11 @@
 {
   "__AUTOGENERATED_FILE_DO_NOT_MODIFY_THIS_FILE_MANUALLY": "THERE_IS_NO_DATA_ONLY_ZUUL",
   "__INPUT_ARTIFACTS_HASH": 1541018928,
-  "__RESOLVED_ARTIFACTS_HASH": 128343746,
+  "__RESOLVED_ARTIFACTS_HASH": 414364530,
   "artifacts": {
     "androidx.activity:activity-ktx:aar": {
       "shasums": {
-        "jar": "b0b4206ece92919925061fdf5784dd21f0118534609e8f6d9404bdd0f5cb5a3d"
+        "jar": "eeac7fea684727bfe1f339ee86ccca16518eafb24f02f1997dd7503911f40e63"
       },
       "version": "1.7.2"
     },
@@ -17,7 +17,7 @@
     },
     "androidx.annotation:annotation": {
       "shasums": {
-        "jar": "fbc64f5c44a7added8b6eab517cf7d70555e25153bf5d44a6ed9b0e5312f7de9"
+        "jar": "9029262bddce116e6d02be499e4afdba21f24c239087b76b3b57d7e98b490a36"
       },
       "version": "1.6.0"
     },
@@ -65,13 +65,13 @@
     },
     "androidx.compose.animation:animation-core:aar": {
       "shasums": {
-        "jar": "e1a44dc558d1966e3345f5c51f63afaaf2b5aeea20f478f026594363ae910675"
+        "jar": "53413f7e572f1410930826d63a027c73288ce4c1269591ebc503a56ba163f75b"
       },
       "version": "1.2.1"
     },
     "androidx.compose.foundation:foundation-layout": {
       "shasums": {
-        "jar": "f8cbd92d3585570dce2541aefef0d59b4c591ae225d98921058e484e9abf3e42"
+        "jar": "79af00811d834b966f383fb39454cff06e4a0045e5180eac5394d72fab9a1c97"
       },
       "version": "1.5.0-beta01"
     },
@@ -239,13 +239,13 @@
     },
     "androidx.core:core:aar": {
       "shasums": {
-        "jar": "bc3f782e107b2d40cca9f0319d52e7343a0406e06febd42f9f2b509c3123438c"
+        "jar": "3c60213a2a2116a9314d3f4f9b6e7c32505353fa1143919bfb59366fef825151"
       },
       "version": "1.11.0-beta01"
     },
     "androidx.customview:customview-poolingcontainer:aar": {
       "shasums": {
-        "jar": "3584102fc49bf399c56e3b7be4bfe12000c46112320cd8cf85cc0a8f93f3e752"
+        "jar": "9fa62196c4c4e79b6a58dbb38a8c022bef8db21989d7dae2da0f6f5b66289a9c"
       },
       "version": "1.0.0"
     },
@@ -257,13 +257,13 @@
     },
     "androidx.emoji2:emoji2:aar": {
       "shasums": {
-        "jar": "f31a06c150ecb03073f55a6f7b0b74a240a6a8d727c14ce76726d020570dfa8c"
+        "jar": "faf5955d2c9b09bba92e51569f2b928419ded05b5c9649c0453c925c7da62360"
       },
       "version": "1.2.0"
     },
     "androidx.fragment:fragment-ktx:aar": {
       "shasums": {
-        "jar": "3e4595cda9bee392715959366d70790704ff240c77656e702f3c8220b3d9245a"
+        "jar": "49222903181d392cece82b5146767d4c0b0c71287376befe6830ec64a01ca17d"
       },
       "version": "1.6.1"
     },
@@ -323,7 +323,7 @@
     },
     "androidx.lifecycle:lifecycle-runtime:aar": {
       "shasums": {
-        "jar": "4867fd5279742fba8388821930cb2affe06d81a52814e7e41e70392ea0ef887c"
+        "jar": "41e71d003d437f169d4e8ada59cb1982f1b47b7d25c23010b8fc81d528a740d5"
       },
       "version": "2.6.1"
     },
@@ -341,7 +341,7 @@
     },
     "androidx.lifecycle:lifecycle-viewmodel:aar": {
       "shasums": {
-        "jar": "e4ff4338999e1c6c9c724719f5d4aa7dd61bf6f545d5256a27a9d375df9f2330"
+        "jar": "dc2e8e65db53d21659a27ed93b966dee336c1c2e8e872861677389a99b8b9134"
       },
       "version": "2.6.1"
     },
@@ -353,13 +353,13 @@
     },
     "androidx.profileinstaller:profileinstaller:aar": {
       "shasums": {
-        "jar": "34e8b2bfc74e23c1525e3da903ae449b7f1b440aef45e18159ee470e91997f48"
+        "jar": "12cbc01c8a5ae4b412caf3c5a0662ccd28002dedcff1dbe6c2ab3665be9f758c"
       },
       "version": "1.3.0"
     },
     "androidx.savedstate:savedstate-ktx:aar": {
       "shasums": {
-        "jar": "8553f87e7136c24ec5243560f48f1c32cba56daa77722f89589a5cafcb8f7894"
+        "jar": "d09553211f6703b19aefd608d6007c77132d27a281556a8e689d92764ec27d3b"
       },
       "version": "1.2.1"
     },
@@ -401,7 +401,7 @@
     },
     "com.almworks.sqlite4java:libsqlite4java-linux-i386:so": {
       "shasums": {
-        "jar": "3c93ee3f997e957715fd08b263948d460da000a6e0bb904ae525e790f39429eb"
+        "jar": "85c80b7c2905db9edabbac0d58c738da3107ae7e09454448c700e157490558ad"
       },
       "version": "1.0.392"
     },
@@ -419,7 +419,7 @@
     },
     "com.squareup.okhttp3:okhttp": {
       "shasums": {
-        "jar": "b1050081b14bb7a3a7e55a4d3ef01b5dcfabc453b4573a4fc019767191d5f4e0"
+        "jar": "7c737040a9419522e7c50cc027416a70fe7c7629e52b219935ade6b4119c7d38"
       },
       "version": "4.12.0"
     },
