diff --git a/graphics/graphics-shapes/bcv/native/current.txt b/graphics/graphics-shapes/bcv/native/current.txt
new file mode 100644
index 0000000..dd8ee15
--- /dev/null
+++ b/graphics/graphics-shapes/bcv/native/current.txt
@@ -0,0 +1,102 @@
+// Klib ABI Dump
+// Targets: [iosArm64, iosSimulatorArm64, iosX64, linuxArm64, linuxX64, macosArm64, macosX64, tvosArm64, tvosSimulatorArm64, tvosX64, watchosArm32, watchosArm64, watchosSimulatorArm64, watchosX64]
+// Rendering settings:
+// - Signature version: 2
+// - Show manifest properties: true
+// - Show declarations: true
+
+// Library unique name: <androidx.graphics:graphics-shapes>
+abstract fun interface androidx.graphics.shapes/PointTransformer { // androidx.graphics.shapes/PointTransformer|null[0]
+    abstract fun transform(kotlin/Float, kotlin/Float): androidx.collection/FloatFloatPair // androidx.graphics.shapes/PointTransformer.transform|transform(kotlin.Float;kotlin.Float){}[0]
+}
+abstract interface androidx.graphics.shapes/MutablePoint { // androidx.graphics.shapes/MutablePoint|null[0]
+    abstract var x // androidx.graphics.shapes/MutablePoint.x|{}x[0]
+        abstract fun <get-x>(): kotlin/Float // androidx.graphics.shapes/MutablePoint.x.<get-x>|<get-x>(){}[0]
+        abstract fun <set-x>(kotlin/Float) // androidx.graphics.shapes/MutablePoint.x.<set-x>|<set-x>(kotlin.Float){}[0]
+    abstract var y // androidx.graphics.shapes/MutablePoint.y|{}y[0]
+        abstract fun <get-y>(): kotlin/Float // androidx.graphics.shapes/MutablePoint.y.<get-y>|<get-y>(){}[0]
+        abstract fun <set-y>(kotlin/Float) // androidx.graphics.shapes/MutablePoint.y.<set-y>|<set-y>(kotlin.Float){}[0]
+}
+final class androidx.graphics.shapes/CornerRounding { // androidx.graphics.shapes/CornerRounding|null[0]
+    constructor <init>(kotlin/Float =..., kotlin/Float =...) // androidx.graphics.shapes/CornerRounding.<init>|<init>(kotlin.Float;kotlin.Float){}[0]
+    final object Companion { // androidx.graphics.shapes/CornerRounding.Companion|null[0]
+        final val Unrounded // androidx.graphics.shapes/CornerRounding.Companion.Unrounded|{}Unrounded[0]
+            final fun <get-Unrounded>(): androidx.graphics.shapes/CornerRounding // androidx.graphics.shapes/CornerRounding.Companion.Unrounded.<get-Unrounded>|<get-Unrounded>(){}[0]
+    }
+    final val radius // androidx.graphics.shapes/CornerRounding.radius|{}radius[0]
+        final fun <get-radius>(): kotlin/Float // androidx.graphics.shapes/CornerRounding.radius.<get-radius>|<get-radius>(){}[0]
+    final val smoothing // androidx.graphics.shapes/CornerRounding.smoothing|{}smoothing[0]
+        final fun <get-smoothing>(): kotlin/Float // androidx.graphics.shapes/CornerRounding.smoothing.<get-smoothing>|<get-smoothing>(){}[0]
+}
+final class androidx.graphics.shapes/Morph { // androidx.graphics.shapes/Morph|null[0]
+    constructor <init>(androidx.graphics.shapes/RoundedPolygon, androidx.graphics.shapes/RoundedPolygon) // androidx.graphics.shapes/Morph.<init>|<init>(androidx.graphics.shapes.RoundedPolygon;androidx.graphics.shapes.RoundedPolygon){}[0]
+    final fun asCubics(kotlin/Float): kotlin.collections/List<androidx.graphics.shapes/Cubic> // androidx.graphics.shapes/Morph.asCubics|asCubics(kotlin.Float){}[0]
+    final fun calculateBounds(kotlin/FloatArray =..., kotlin/Boolean =...): kotlin/FloatArray // androidx.graphics.shapes/Morph.calculateBounds|calculateBounds(kotlin.FloatArray;kotlin.Boolean){}[0]
+    final fun calculateMaxBounds(kotlin/FloatArray =...): kotlin/FloatArray // androidx.graphics.shapes/Morph.calculateMaxBounds|calculateMaxBounds(kotlin.FloatArray){}[0]
+    final inline fun forEachCubic(kotlin/Float, androidx.graphics.shapes/MutableCubic =..., kotlin/Function1<androidx.graphics.shapes/MutableCubic, kotlin/Unit>) // androidx.graphics.shapes/Morph.forEachCubic|forEachCubic(kotlin.Float;androidx.graphics.shapes.MutableCubic;kotlin.Function1<androidx.graphics.shapes.MutableCubic,kotlin.Unit>){}[0]
+    final val morphMatch // androidx.graphics.shapes/Morph.morphMatch|{}morphMatch[0]
+        final fun <get-morphMatch>(): kotlin.collections/List<kotlin/Pair<androidx.graphics.shapes/Cubic, androidx.graphics.shapes/Cubic>> // androidx.graphics.shapes/Morph.morphMatch.<get-morphMatch>|<get-morphMatch>(){}[0]
+}
+final class androidx.graphics.shapes/MutableCubic : androidx.graphics.shapes/Cubic { // androidx.graphics.shapes/MutableCubic|null[0]
+    constructor <init>() // androidx.graphics.shapes/MutableCubic.<init>|<init>(){}[0]
+    final fun interpolate(androidx.graphics.shapes/Cubic, androidx.graphics.shapes/Cubic, kotlin/Float) // androidx.graphics.shapes/MutableCubic.interpolate|interpolate(androidx.graphics.shapes.Cubic;androidx.graphics.shapes.Cubic;kotlin.Float){}[0]
+    final fun transform(androidx.graphics.shapes/PointTransformer) // androidx.graphics.shapes/MutableCubic.transform|transform(androidx.graphics.shapes.PointTransformer){}[0]
+}
+final class androidx.graphics.shapes/RoundedPolygon { // androidx.graphics.shapes/RoundedPolygon|null[0]
+    final fun calculateBounds(kotlin/FloatArray =..., kotlin/Boolean =...): kotlin/FloatArray // androidx.graphics.shapes/RoundedPolygon.calculateBounds|calculateBounds(kotlin.FloatArray;kotlin.Boolean){}[0]
+    final fun calculateMaxBounds(kotlin/FloatArray =...): kotlin/FloatArray // androidx.graphics.shapes/RoundedPolygon.calculateMaxBounds|calculateMaxBounds(kotlin.FloatArray){}[0]
+    final fun equals(kotlin/Any?): kotlin/Boolean // androidx.graphics.shapes/RoundedPolygon.equals|equals(kotlin.Any?){}[0]
+    final fun hashCode(): kotlin/Int // androidx.graphics.shapes/RoundedPolygon.hashCode|hashCode(){}[0]
+    final fun normalized(): androidx.graphics.shapes/RoundedPolygon // androidx.graphics.shapes/RoundedPolygon.normalized|normalized(){}[0]
+    final fun toString(): kotlin/String // androidx.graphics.shapes/RoundedPolygon.toString|toString(){}[0]
+    final fun transformed(androidx.graphics.shapes/PointTransformer): androidx.graphics.shapes/RoundedPolygon // androidx.graphics.shapes/RoundedPolygon.transformed|transformed(androidx.graphics.shapes.PointTransformer){}[0]
+    final object Companion // androidx.graphics.shapes/RoundedPolygon.Companion|null[0]
+    final val centerX // androidx.graphics.shapes/RoundedPolygon.centerX|{}centerX[0]
+        final fun <get-centerX>(): kotlin/Float // androidx.graphics.shapes/RoundedPolygon.centerX.<get-centerX>|<get-centerX>(){}[0]
+    final val centerY // androidx.graphics.shapes/RoundedPolygon.centerY|{}centerY[0]
+        final fun <get-centerY>(): kotlin/Float // androidx.graphics.shapes/RoundedPolygon.centerY.<get-centerY>|<get-centerY>(){}[0]
+    final val cubics // androidx.graphics.shapes/RoundedPolygon.cubics|{}cubics[0]
+        final fun <get-cubics>(): kotlin.collections/List<androidx.graphics.shapes/Cubic> // androidx.graphics.shapes/RoundedPolygon.cubics.<get-cubics>|<get-cubics>(){}[0]
+}
+final fun (androidx.graphics.shapes/RoundedPolygon.Companion).androidx.graphics.shapes/circle(kotlin/Int =..., kotlin/Float =..., kotlin/Float =..., kotlin/Float =...): androidx.graphics.shapes/RoundedPolygon // androidx.graphics.shapes/circle|circle@androidx.graphics.shapes.RoundedPolygon.Companion(kotlin.Int;kotlin.Float;kotlin.Float;kotlin.Float){}[0]
+final fun (androidx.graphics.shapes/RoundedPolygon.Companion).androidx.graphics.shapes/pill(kotlin/Float =..., kotlin/Float =..., kotlin/Float =..., kotlin/Float =..., kotlin/Float =...): androidx.graphics.shapes/RoundedPolygon // androidx.graphics.shapes/pill|pill@androidx.graphics.shapes.RoundedPolygon.Companion(kotlin.Float;kotlin.Float;kotlin.Float;kotlin.Float;kotlin.Float){}[0]
+final fun (androidx.graphics.shapes/RoundedPolygon.Companion).androidx.graphics.shapes/pillStar(kotlin/Float =..., kotlin/Float =..., kotlin/Int =..., kotlin/Float =..., androidx.graphics.shapes/CornerRounding =..., androidx.graphics.shapes/CornerRounding? =..., kotlin.collections/List<androidx.graphics.shapes/CornerRounding>? =..., kotlin/Float =..., kotlin/Float =..., kotlin/Float =..., kotlin/Float =...): androidx.graphics.shapes/RoundedPolygon // androidx.graphics.shapes/pillStar|pillStar@androidx.graphics.shapes.RoundedPolygon.Companion(kotlin.Float;kotlin.Float;kotlin.Int;kotlin.Float;androidx.graphics.shapes.CornerRounding;androidx.graphics.shapes.CornerRounding?;kotlin.collections.List<androidx.graphics.shapes.CornerRounding>?;kotlin.Float;kotlin.Float;kotlin.Float;kotlin.Float){}[0]
+final fun (androidx.graphics.shapes/RoundedPolygon.Companion).androidx.graphics.shapes/rectangle(kotlin/Float =..., kotlin/Float =..., androidx.graphics.shapes/CornerRounding =..., kotlin.collections/List<androidx.graphics.shapes/CornerRounding>? =..., kotlin/Float =..., kotlin/Float =...): androidx.graphics.shapes/RoundedPolygon // androidx.graphics.shapes/rectangle|rectangle@androidx.graphics.shapes.RoundedPolygon.Companion(kotlin.Float;kotlin.Float;androidx.graphics.shapes.CornerRounding;kotlin.collections.List<androidx.graphics.shapes.CornerRounding>?;kotlin.Float;kotlin.Float){}[0]
+final fun (androidx.graphics.shapes/RoundedPolygon.Companion).androidx.graphics.shapes/star(kotlin/Int, kotlin/Float =..., kotlin/Float =..., androidx.graphics.shapes/CornerRounding =..., androidx.graphics.shapes/CornerRounding? =..., kotlin.collections/List<androidx.graphics.shapes/CornerRounding>? =..., kotlin/Float =..., kotlin/Float =...): androidx.graphics.shapes/RoundedPolygon // androidx.graphics.shapes/star|star@androidx.graphics.shapes.RoundedPolygon.Companion(kotlin.Int;kotlin.Float;kotlin.Float;androidx.graphics.shapes.CornerRounding;androidx.graphics.shapes.CornerRounding?;kotlin.collections.List<androidx.graphics.shapes.CornerRounding>?;kotlin.Float;kotlin.Float){}[0]
+final fun androidx.graphics.shapes/Cubic(kotlin/Float, kotlin/Float, kotlin/Float, kotlin/Float, kotlin/Float, kotlin/Float, kotlin/Float, kotlin/Float): androidx.graphics.shapes/Cubic // androidx.graphics.shapes/Cubic|Cubic(kotlin.Float;kotlin.Float;kotlin.Float;kotlin.Float;kotlin.Float;kotlin.Float;kotlin.Float;kotlin.Float){}[0]
+final fun androidx.graphics.shapes/RoundedPolygon(androidx.graphics.shapes/RoundedPolygon): androidx.graphics.shapes/RoundedPolygon // androidx.graphics.shapes/RoundedPolygon|RoundedPolygon(androidx.graphics.shapes.RoundedPolygon){}[0]
+final fun androidx.graphics.shapes/RoundedPolygon(kotlin/FloatArray, androidx.graphics.shapes/CornerRounding =..., kotlin.collections/List<androidx.graphics.shapes/CornerRounding>? =..., kotlin/Float =..., kotlin/Float =...): androidx.graphics.shapes/RoundedPolygon // androidx.graphics.shapes/RoundedPolygon|RoundedPolygon(kotlin.FloatArray;androidx.graphics.shapes.CornerRounding;kotlin.collections.List<androidx.graphics.shapes.CornerRounding>?;kotlin.Float;kotlin.Float){}[0]
+final fun androidx.graphics.shapes/RoundedPolygon(kotlin/Int, kotlin/Float =..., kotlin/Float =..., kotlin/Float =..., androidx.graphics.shapes/CornerRounding =..., kotlin.collections/List<androidx.graphics.shapes/CornerRounding>? =...): androidx.graphics.shapes/RoundedPolygon // androidx.graphics.shapes/RoundedPolygon|RoundedPolygon(kotlin.Int;kotlin.Float;kotlin.Float;kotlin.Float;androidx.graphics.shapes.CornerRounding;kotlin.collections.List<androidx.graphics.shapes.CornerRounding>?){}[0]
+open class androidx.graphics.shapes/Cubic { // androidx.graphics.shapes/Cubic|null[0]
+    final fun div(kotlin/Float): androidx.graphics.shapes/Cubic // androidx.graphics.shapes/Cubic.div|div(kotlin.Float){}[0]
+    final fun div(kotlin/Int): androidx.graphics.shapes/Cubic // androidx.graphics.shapes/Cubic.div|div(kotlin.Int){}[0]
+    final fun plus(androidx.graphics.shapes/Cubic): androidx.graphics.shapes/Cubic // androidx.graphics.shapes/Cubic.plus|plus(androidx.graphics.shapes.Cubic){}[0]
+    final fun reverse(): androidx.graphics.shapes/Cubic // androidx.graphics.shapes/Cubic.reverse|reverse(){}[0]
+    final fun split(kotlin/Float): kotlin/Pair<androidx.graphics.shapes/Cubic, androidx.graphics.shapes/Cubic> // androidx.graphics.shapes/Cubic.split|split(kotlin.Float){}[0]
+    final fun times(kotlin/Float): androidx.graphics.shapes/Cubic // androidx.graphics.shapes/Cubic.times|times(kotlin.Float){}[0]
+    final fun times(kotlin/Int): androidx.graphics.shapes/Cubic // androidx.graphics.shapes/Cubic.times|times(kotlin.Int){}[0]
+    final fun transformed(androidx.graphics.shapes/PointTransformer): androidx.graphics.shapes/Cubic // androidx.graphics.shapes/Cubic.transformed|transformed(androidx.graphics.shapes.PointTransformer){}[0]
+    final object Companion { // androidx.graphics.shapes/Cubic.Companion|null[0]
+        final fun circularArc(kotlin/Float, kotlin/Float, kotlin/Float, kotlin/Float, kotlin/Float, kotlin/Float): androidx.graphics.shapes/Cubic // androidx.graphics.shapes/Cubic.Companion.circularArc|circularArc(kotlin.Float;kotlin.Float;kotlin.Float;kotlin.Float;kotlin.Float;kotlin.Float){}[0]
+        final fun straightLine(kotlin/Float, kotlin/Float, kotlin/Float, kotlin/Float): androidx.graphics.shapes/Cubic // androidx.graphics.shapes/Cubic.Companion.straightLine|straightLine(kotlin.Float;kotlin.Float;kotlin.Float;kotlin.Float){}[0]
+    }
+    final val anchor0X // androidx.graphics.shapes/Cubic.anchor0X|{}anchor0X[0]
+        final fun <get-anchor0X>(): kotlin/Float // androidx.graphics.shapes/Cubic.anchor0X.<get-anchor0X>|<get-anchor0X>(){}[0]
+    final val anchor0Y // androidx.graphics.shapes/Cubic.anchor0Y|{}anchor0Y[0]
+        final fun <get-anchor0Y>(): kotlin/Float // androidx.graphics.shapes/Cubic.anchor0Y.<get-anchor0Y>|<get-anchor0Y>(){}[0]
+    final val anchor1X // androidx.graphics.shapes/Cubic.anchor1X|{}anchor1X[0]
+        final fun <get-anchor1X>(): kotlin/Float // androidx.graphics.shapes/Cubic.anchor1X.<get-anchor1X>|<get-anchor1X>(){}[0]
+    final val anchor1Y // androidx.graphics.shapes/Cubic.anchor1Y|{}anchor1Y[0]
+        final fun <get-anchor1Y>(): kotlin/Float // androidx.graphics.shapes/Cubic.anchor1Y.<get-anchor1Y>|<get-anchor1Y>(){}[0]
+    final val control0X // androidx.graphics.shapes/Cubic.control0X|{}control0X[0]
+        final fun <get-control0X>(): kotlin/Float // androidx.graphics.shapes/Cubic.control0X.<get-control0X>|<get-control0X>(){}[0]
+    final val control0Y // androidx.graphics.shapes/Cubic.control0Y|{}control0Y[0]
+        final fun <get-control0Y>(): kotlin/Float // androidx.graphics.shapes/Cubic.control0Y.<get-control0Y>|<get-control0Y>(){}[0]
+    final val control1X // androidx.graphics.shapes/Cubic.control1X|{}control1X[0]
+        final fun <get-control1X>(): kotlin/Float // androidx.graphics.shapes/Cubic.control1X.<get-control1X>|<get-control1X>(){}[0]
+    final val control1Y // androidx.graphics.shapes/Cubic.control1Y|{}control1Y[0]
+        final fun <get-control1Y>(): kotlin/Float // androidx.graphics.shapes/Cubic.control1Y.<get-control1Y>|<get-control1Y>(){}[0]
+    open fun equals(kotlin/Any?): kotlin/Boolean // androidx.graphics.shapes/Cubic.equals|equals(kotlin.Any?){}[0]
+    open fun hashCode(): kotlin/Int // androidx.graphics.shapes/Cubic.hashCode|hashCode(){}[0]
+    open fun toString(): kotlin/String // androidx.graphics.shapes/Cubic.toString|toString(){}[0]
+}
diff --git a/graphics/graphics-shapes/build.gradle b/graphics/graphics-shapes/build.gradle
index ce89977..307d1fa 100644
--- a/graphics/graphics-shapes/build.gradle
+++ b/graphics/graphics-shapes/build.gradle
@@ -97,7 +97,6 @@
             }
         }
     }
-    enableBinaryCompatibilityValidator = false
 }
 
 android {
