diff --git a/.repackage-assets/maven_local.png b/.repackage-assets/maven_local.png
new file mode 100644
index 0000000000..6624d4c995
Binary files /dev/null and b/.repackage-assets/maven_local.png differ
diff --git a/README.md b/README.md
index 6667ce2fd3..d879e38057 100644
--- a/README.md
+++ b/README.md
@@ -125,19 +125,20 @@ Video roadmap and changelog is available [here](https://github.com/GetStream/pro
- [X] Screensharing from mobile
- [X] Picture of the video stream at the highest resolution + docs on how to add a button for this (Daniel)
- [X] Audio & Video filters. Support (Daniel)
-- [ ] Default livestream player UI + docs (Jaewoong/ Daniel)
-- [ ] Implement Chat overlay for Dogfooding (Jaewoong)
-- [ ] Add Dogfooding instructions + directs Google Play (Jaewoong)
-- [ ] Reaction dialog API for Compose (Jaewoong)
-- [ ] Android SDK development.md cleanup (Daniel)
-- [ ] Upgrade to more recent versions of webrtc (Kanat)
-- [ ] Review foreground service vs backend for audio rooms etc. (Daniel)
-- [ ] Support participant.custom field which was previously ignored. ParticipantState line 216 (Daniel)
+- [X] Implement Chat overlay for Dogfooding (Jaewoong)
+- [X] Migrate Stream Chat SDK v6 stable (Jaewoong)
+- [X] Add Dogfooding instructions + directs Google Play (Jaewoong)
+- [X] Support participant.custom field which was previously ignored. ParticipantState line 216 (Daniel)
+- [X] Default livestream player UI + docs (Jaewoong)
+- [X] Reaction dialog API for Compose (Jaewoong)
+- [X] Android SDK development.md cleanup (Jaewoong)
+- [X] Upgrade to more recent versions of webrtc (Jaewoong/Kanat)
+- [X] Review foreground service vs backend for audio rooms etc. (Aleks)
+- [X] Enable SFU switching
- [ ] Logging is too verbose (rtc is very noisy), clean it up to focus on the essential for info and higher (Daniel)
### 0.5.0 milestone
-- [ ] Enable SFU switching
- [ ] H264 workaround on Samsung 23? (see https://github.com/livekit/client-sdk-android/blob/main/livekit-android-sdk/src/main/java/io/livekit/android/webrtc/SimulcastVideoEncoderFactoryWrapper.kt#L34 and
- https://github.com/react-native-webrtc/react-native-webrtc/issues/983#issuecomment-975624906)
- [ ] Test coverage
diff --git a/benchmark/build.gradle.kts b/benchmark/build.gradle.kts
index 6e8cdecd27..da1c00d1ca 100644
--- a/benchmark/build.gradle.kts
+++ b/benchmark/build.gradle.kts
@@ -63,7 +63,7 @@ android {
}
}
- flavorDimensions("environment")
+ flavorDimensions += "environment"
productFlavors {
create("dogfooding") {
dimension = "environment"
diff --git a/benchmark/src/main/kotlin/io/getstream/video/android/benchmark/BaselineProfileGenerator.kt b/benchmark/src/main/kotlin/io/getstream/video/android/benchmark/BaselineProfileGenerator.kt
index 95199cdec3..db7240c698 100644
--- a/benchmark/src/main/kotlin/io/getstream/video/android/benchmark/BaselineProfileGenerator.kt
+++ b/benchmark/src/main/kotlin/io/getstream/video/android/benchmark/BaselineProfileGenerator.kt
@@ -19,11 +19,6 @@ package io.getstream.video.android.benchmark
import android.os.Build
import androidx.annotation.RequiresApi
import androidx.benchmark.macro.junit4.BaselineProfileRule
-import androidx.test.uiautomator.By
-import androidx.test.uiautomator.BySelector
-import androidx.test.uiautomator.UiDevice
-import androidx.test.uiautomator.UiObject2
-import androidx.test.uiautomator.Until
import org.junit.Rule
import org.junit.Test
@@ -43,76 +38,6 @@ internal class BaselineProfileGenerator {
startActivityAndWait()
device.waitForIdle()
- // -------------
- // Authenticate
- // -------------
- device.authenticateAndNavigateToHome()
-
- // -------------
- // JoinCall
- // -------------
- device.navigateFromJoinCallToLobby()
-
- // -------------
- // Lobby
- // -------------
- device.navigateFromLobbyToCall()
-
- // -------------
- // Call
- // -------------
- device.testCall()
+ dogfoodingScenarios()
}
}
-
-private fun UiDevice.authenticateAndNavigateToHome() {
- wait(Until.hasObject(By.res("authenticate")), 5_000)
-
- // Click the Authenticate button and login.
- waitForObject(By.res("authenticate"))?.click()
-
- waitForIdle()
-}
-
-private fun UiDevice.navigateFromJoinCallToLobby() {
- wait(Until.hasObject(By.res("start_new_call")), 5_000)
-
- // wait for the Join Call button and navigate to the lobby screen by clicking.
- waitForObject(By.res("start_new_call"))?.click()
-
- waitForIdle()
-}
-
-private fun UiDevice.navigateFromLobbyToCall() {
- waitForObject(By.text(getPermissionText()), 5_000)?.click()
- waitForObject(By.text(getPermissionText()), 5_000)?.click()
-
- wait(Until.hasObject(By.res("call_lobby")), 15_000)
- wait(Until.hasObject(By.res("participant_video_renderer")), 15_000)
-
- // wait for the Start Call button and navigate to the call screen by clicking.
- waitForObject(By.res("start_call"), 15_000)?.click()
-
- waitForIdle()
-}
-
-private fun UiDevice.testCall() {
- wait(Until.hasObject(By.res("call_content")), 5_000)
- wait(Until.hasObject(By.res("video_renderer")), 5_000)
- waitForIdle()
-}
-
-private fun UiDevice.waitForObject(selector: BySelector, timeout: Long = 5_000): UiObject2? {
- if (wait(Until.hasObject(selector), timeout)) {
- return findObject(selector)
- }
- return null
-}
-
-private fun getPermissionText(): String {
- return when {
- Build.VERSION.SDK_INT <= 28 -> "ALLOW"
- Build.VERSION.SDK_INT == 29 -> "Allow only while using the app"
- else -> "While using the app"
- }
-}
diff --git a/benchmark/src/main/kotlin/io/getstream/video/android/benchmark/DogfoodingScenarios.kt b/benchmark/src/main/kotlin/io/getstream/video/android/benchmark/DogfoodingScenarios.kt
new file mode 100644
index 0000000000..5b0791d697
--- /dev/null
+++ b/benchmark/src/main/kotlin/io/getstream/video/android/benchmark/DogfoodingScenarios.kt
@@ -0,0 +1,81 @@
+/*
+ * Copyright (c) 2014-2023 Stream.io Inc. All rights reserved.
+ *
+ * Licensed under the Stream License;
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://github.com/GetStream/stream-video-android/blob/main/LICENSE
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package io.getstream.video.android.benchmark
+
+import androidx.benchmark.macro.MacrobenchmarkScope
+import androidx.test.uiautomator.By
+import androidx.test.uiautomator.UiDevice
+import androidx.test.uiautomator.Until
+
+internal fun MacrobenchmarkScope.dogfoodingScenarios() {
+ // -------------
+ // Authenticate
+ // -------------
+ device.authenticateAndNavigateToHome()
+
+ // -------------
+ // JoinCall
+ // -------------
+ device.navigateFromJoinCallToLobby()
+
+ // -------------
+ // Lobby
+ // -------------
+ device.navigateFromLobbyToCall()
+
+ // -------------
+ // Call
+ // -------------
+ device.testCall()
+}
+
+internal fun UiDevice.authenticateAndNavigateToHome() {
+ wait(Until.hasObject(By.res("authenticate")), 5_000)
+
+ // Click the Authenticate button and login.
+ waitForObject(By.res("authenticate"))?.click()
+
+ waitForIdle()
+}
+
+internal fun UiDevice.navigateFromJoinCallToLobby() {
+ wait(Until.hasObject(By.res("start_new_call")), 5_000)
+
+ // wait for the Join Call button and navigate to the lobby screen by clicking.
+ waitForObject(By.res("start_new_call"))?.click()
+
+ waitForIdle()
+}
+
+internal fun UiDevice.navigateFromLobbyToCall() {
+ waitForObject(By.text(getPermissionText()), 5_000)?.click()
+ waitForObject(By.text(getPermissionText()), 5_000)?.click()
+
+ wait(Until.hasObject(By.res("call_lobby")), 15_000)
+ wait(Until.hasObject(By.res("participant_video_renderer")), 15_000)
+
+ // wait for the Start Call button and navigate to the call screen by clicking.
+ waitForObject(By.res("start_call"), 15_000)?.click()
+
+ waitForIdle()
+}
+
+internal fun UiDevice.testCall() {
+ wait(Until.hasObject(By.res("call_content")), 5_000)
+ wait(Until.hasObject(By.res("video_renderer")), 5_000)
+ waitForIdle()
+}
diff --git a/benchmark/src/main/kotlin/io/getstream/video/android/benchmark/StartupBenchmarks.kt b/benchmark/src/main/kotlin/io/getstream/video/android/benchmark/StartupBenchmarks.kt
index eea83b5340..096418e07b 100644
--- a/benchmark/src/main/kotlin/io/getstream/video/android/benchmark/StartupBenchmarks.kt
+++ b/benchmark/src/main/kotlin/io/getstream/video/android/benchmark/StartupBenchmarks.kt
@@ -49,15 +49,9 @@ class StartupBenchmarks {
},
measureBlock = {
startActivityAndWait()
+ device.waitForIdle()
- // TODO Add interactions to wait for when your app is fully drawn.
- // The app is fully drawn when Activity.reportFullyDrawn is called.
- // For Jetpack Compose, you can use ReportDrawn, ReportDrawnWhen and ReportDrawnAfter
- // from the AndroidX Activity library.
-
- // Check the UiAutomator documentation for more information on how to
- // interact with the app.
- // https://d.android.com/training/testing/other-components/ui-automator
+ dogfoodingScenarios()
},
)
}
diff --git a/benchmark/src/main/kotlin/io/getstream/video/android/benchmark/Utils.kt b/benchmark/src/main/kotlin/io/getstream/video/android/benchmark/Utils.kt
new file mode 100644
index 0000000000..7aae4bd436
--- /dev/null
+++ b/benchmark/src/main/kotlin/io/getstream/video/android/benchmark/Utils.kt
@@ -0,0 +1,38 @@
+/*
+ * Copyright (c) 2014-2023 Stream.io Inc. All rights reserved.
+ *
+ * Licensed under the Stream License;
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://github.com/GetStream/stream-video-android/blob/main/LICENSE
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package io.getstream.video.android.benchmark
+
+import android.os.Build
+import androidx.test.uiautomator.BySelector
+import androidx.test.uiautomator.UiDevice
+import androidx.test.uiautomator.UiObject2
+import androidx.test.uiautomator.Until
+
+internal fun UiDevice.waitForObject(selector: BySelector, timeout: Long = 5_000): UiObject2? {
+ if (wait(Until.hasObject(selector), timeout)) {
+ return findObject(selector)
+ }
+ return null
+}
+
+internal fun getPermissionText(): String {
+ return when {
+ Build.VERSION.SDK_INT <= 28 -> "ALLOW"
+ Build.VERSION.SDK_INT == 29 -> "Allow only while using the app"
+ else -> "While using the app"
+ }
+}
diff --git a/build.gradle.kts b/build.gradle.kts
index 20856f6375..de471f962b 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -15,6 +15,7 @@ plugins {
alias(libs.plugins.kotlin.android) apply false
alias(libs.plugins.kotlin.serialization) apply false
alias(libs.plugins.kotlin.compatibility.validator) apply false
+ alias(libs.plugins.ksp) apply false
alias(libs.plugins.wire) apply false
alias(libs.plugins.nexus) apply false
alias(libs.plugins.google.gms) apply false
diff --git a/buildSrc/src/main/kotlin/io/getstream/video/android/Configuration.kt b/buildSrc/src/main/kotlin/io/getstream/video/android/Configuration.kt
index b6cd411d41..d4669ed884 100644
--- a/buildSrc/src/main/kotlin/io/getstream/video/android/Configuration.kt
+++ b/buildSrc/src/main/kotlin/io/getstream/video/android/Configuration.kt
@@ -5,11 +5,11 @@ object Configuration {
const val targetSdk = 34
const val minSdk = 24
const val majorVersion = 0
- const val minorVersion = 3
- const val patchVersion = 4
+ const val minorVersion = 4
+ const val patchVersion = 0
const val versionName = "$majorVersion.$minorVersion.$patchVersion"
- const val versionCode = 9
+ const val versionCode = 10
const val snapshotVersionName = "$majorVersion.$minorVersion.${patchVersion + 1}-SNAPSHOT"
const val artifactGroup = "io.getstream"
- const val streamVideoCallGooglePlayVersion = "1.0.0"
+ const val streamVideoCallGooglePlayVersion = "1.0.1"
}
diff --git a/development.md b/development.md
index f089150d57..91bac04ef1 100644
--- a/development.md
+++ b/development.md
@@ -1,20 +1,19 @@
## Build process
-- Snapshots build are created automatically from the "development" branch. Configuration.kt has the version number
-- Testing app. Merge code into "main". Github will build a new zipped apk. You can upload a new testing app here: https://console.firebase.google.com/project/stream-video-9b586/appdistribution/app/android:io.getstream.video.android.dogfooding/releases
-- Release versions are created when you create a new release tag on github
-- TODO: Updating the sample app in play store?
+- Snapshots build are created automatically from the "development" branch. Configuration.kt has the version number.
+- Testing app. Merge code into "main". Github will build a new zipped apk. It will be automatically published on Google Play via GitHub Actions CI builds.
+- You can release a new SDK version on Maven Central by creating a new release tag on Github. To release a new version, inquiry to Jaewoong.
## Build vars
You can copy environment variables like this:
+
```
cp env.properties.sample .env.properties
```
-build.gradle.kts for each repo reads the .env.properties file and translated it into
-build variables. So CORE_TEST_LOCAL in the stream-video-android-core is turned into
+`build.gradle.kts` for each repo reads the `.env.properties` file and translated it into build variables. So `CORE_TEST_LOCAL` in the stream-video-android-core is turned into the build config property once you build the project.
```kotlin
BuildConfig.CORE_TEST_LOCAL
@@ -32,22 +31,20 @@ BuildConfig.CORE_TEST_LOCAL
## OpenAPI build
-Clone the protocol
-```bash
-```
+Run the generate openapi. This command line will automatically pull/update the latest version of the protocol repository and generate Open API classes.
-Run the generate openapi
```bash
./generate-openapi.sh
```
Note that now you have your generated files here:
+
* ~/workspace/generated/
The code for android is here
* ~/workspace/stream-video-android/
-You can see the diff here
+You can see the diff here:
```bash
diff -rq ~/workspace/generated/src/main/kotlin/org/openapitools/client ~/workspace/stream-video-android/src/main/kotlin/org/openapitools/client
@@ -71,7 +68,7 @@ Typically a combination of integration testing and unit testing is best.
We use Truth and Mockk for testing
-Here's an example test
+Here's an example test:
```kotlin
@RunWith(RobolectricTestRunner::class)
@@ -88,29 +85,38 @@ public class MyTest : IntegrationTestBase() {
}
```
-Check the docs on TestBase, TestHelper and IntegrationTestBase for more utility functions for testing
+Check the docs on `TestBase`, `TestHelper` and `IntegrationTestBase` for more utility functions for testing.
## Architecture
+The SDK architecture consists of several modules and they depend on each other.
+
+- stream-video-android-core: This is the most fundamental module, which implements socket connections to the Stream server, WebRTC, and the rest of the video calling protocols.
+- stream-video-android-model: A pure Android module that contains several domain models of the Stream SDK.
+- stream-video-android-datastore: An Android module that offers persistence of Stream's domain data, such as `User`, `Device`, which are used by the core module.
+- stream-video-android-ui-common: An ui common module contains the common resources, such as colors, strings, drawables, and so on to share those resources with the compose and xml modules.
+- stream-video-android-compose: Video Compose SDK that provides several UI components to implement seamless video call, audio room, and livestream with highly optimized performance.
+- stream-video-android-mock: A test module that provides several ways to create a mock (real) objects of the Stream's domain object. This is very useful to write unit test codes and previews for Compose.
+- stream-video-android-tooling: An internal module that helps to trace the Stream SDK.
+
### API calls
-* StreamVideoImpl makes the API calls to the coordinator. Internally there are 4 retrofit APIs it calls
-* CallClient makes the API calls to the SFU on the edge
-* StreamVideoImpl.developmentMode determines if we should log an error or fail fast.
-Typically for development you want to fail fast and loud. For production you want to ignore most non-critical errors.
-* PersistentSocket is subclassed by CoordinatorSocket and SfuSocket. It keeps a websocket connection
+* `StreamVideoImpl` makes the API calls to the coordinator. Internally there are 4 retrofit APIs it calls.
+* `ConnectionModule` makes the API calls to the SFU on the edge.
+* `StreamVideoImpl.developmentMode` determines if we should log an error or fail fast.
+* Typically for development you want to fail fast and loud. For production you want to ignore most non-critical errors.
+* `PersistentSocket` is subclassed by `CoordinatorSocket` and `SfuSocket`. It keeps a websocket connection.
### State management
-* All events are routed via the StreamVideoImpl.subscribe method. Both the SFU & Coordinator events
-* Based on these events the following state is updated: client.state, call.state, member and participant state
-* client.fireEvent is used for firing local events and testing
-* client.handleEvent updates client state, call state and after that calls any listeners
+* All events are routed via the `StreamVideoImpl.subscribe` method. Both the SFU & Coordinator events.
+* Based on these events the following state is updated: `client.state`, `call.state`, member and participant state.
+* `client.fireEvent` is used for firing local events and testing.
+* `client.handleEvent` updates client state, call state and after that calls any listeners.
## WebRTC layer
-* RtcSession maintains all the tracks and the webrtc logic
- https://www.notion.so/stream-wiki/WebRTC-SFU-Setup-37b5a4a260264d3f92332774e5ec9ee9#ee96064deb73480383f6be2a6a36a315
+* RtcSession maintains all the tracks and the webrtc logic: https://www.notion.so/stream-wiki/WebRTC-SFU-Setup-37b5a4a260264d3f92332774e5ec9ee9#ee96064deb73480383f6be2a6a36a315
### RTC offer/answer cycle
@@ -127,16 +133,18 @@ Camera/device changes -> listener in ActiveSFUSession -> updates the tracks.
### RTC dynascale
** Part one **
-We try to render the video if participant.videoEnabled is true
-VideoRenderer is responsible for marking:
+We try to render the video if `participant.videoEnabled` is `true`.
+
+`VideoRenderer` is responsible for marking:
- the video as visible
- the resolution that the video is rendered at
-And calls RtcSession.updateTrackDimensions
+- And calls `RtcSession.updateTrackDimensions`
+
+All resolutions are stored in `RtcSession.trackDimensions`.
-All resolutions are stored in RtcSession.trackDimensions.
Which is a map of participants, track types and resolutions that the video is displayed at.
-Whenever visibility or resolutions change, we call updateParticipantSubscriptions
+Whenever visibility or resolutions change, we call `updateParticipantSubscriptions`
- It runs debounced (100ms delay)
- It only calls update subscriptions if the list of tracks we sub to changed
@@ -144,16 +152,14 @@ This ensures that we can run large tracks (since video is lazy loaded at the rig
** Part two **
-The SFU tells us what resolution to publish using the ChangePublishQualityEvent event.
+The SFU tells us what resolution to publish using the `ChangePublishQualityEvent` event.
So it will say: disable "f" (full) and only send h and q (half and quarter)
-
### ParticipantState
* Participants have a session id. the session id is unique
* Each participant has a trackPrefix
-* New media streams have a streamID, which starts with the trackPrefix
- val (trackPrefix, trackType) = mediaStream.id.split(':');
+* New media streams have a streamID, which starts with the trackPrefix `val (trackPrefix, trackType) = mediaStream.id.split(':');`
* Note that members are unique per user, not per session
## Compose
@@ -172,15 +178,17 @@ CallComposable()
A better approach is to show the underlying components, so people understand how to swap them out
```
-Call {
- ParticipantGrid(card= { ParticipantCard() })
- CallControls {
- ChatButton()
- FlipVideoButton()
- MuteAudioButton()
- MuteVideoButton()
+CallContent(
+ videoRenderer = { ParticipantGrid(card= { ParticipantCard() }) }
+ callControls = {
+ CallControls {
+ ChatButton()
+ FlipVideoButton()
+ MuteAudioButton()
+ MuteVideoButton()
+ }
}
-}
+)
```
The second approach is better since:
@@ -194,16 +202,16 @@ With the second approach everything is easy to understand and customize.
### Ringing
-* Push notifications or the coordinator WS can trigger a callCreatedEvent with ring=true
+* Push notifications or the coordinator WS can trigger a callCreatedEvent with `ring=true`
* The UI should show an incoming call interface
* Clicking accept or reject fires triggers the accept/reject API endpoints
-* Call members have an accepted_at, rejected_at field
+* Call members have an `accepted_at`, `rejected_at` field
### Media Manager
The media manager should support capturing local video with or without joining a call
-* Camera2Capturer starts capture the video
+* `Camera2Capturer` starts capture the video
* It captures it on SurfaceTextureHelper
* The webrtc part needs to know the video capture resolution
@@ -216,32 +224,21 @@ The media manager should support capturing local video with or without joining a
### Dynascale
Sfu -> Client
-- ChangePublishQualityEvent triggers RtcSession.updatePublishQuality. It enables/disables different resolutions in the simulcast
+- `ChangePublishQualityEvent` triggers `RtcSession.updatePublishQuality`. It enables/disables different resolutions in the simulcast
Client -> Sfu
- updateParticipantsSubscriptions subscribes to the participants we want to display
- call.initRender tracks the resolution we render the video at. It writes it to updateParticipantTrackSize
-Question:
-- How do we know if a given video element is visible or not?
-- https://developer.android.com/jetpack/compose/side-effects#disposableeffect
-- https://proandroiddev.com/the-life-cycle-of-a-view-in-android-6a2c4665b95e (onDetachedFromWindow)
-- Our VideoRenderer removes the sink. But it doesn't unsubcribe from the SFU.
-- Requirements for any custom video renderer: Informs the state of the size it's rendering at, informs if it's visible or not
-
-Current issues
-- The view layer doesn't update the state to mark a participant as not displayed
-- updateParticipantsSubscriptions should run whenever the UI changes with a debounce of 100ms or so
-
Goals
- A customer integrating without the SDK knowing the size and visibility of video elements will lead to crashes in large calls. So we should prevent that.
### Knowing if participant is publishing tracks
-- JoinCallResponse, ParticipantJoinedEvent contain published_tracks
-- TrackPublishedEvent, TrackUnpublishedEvent
-- Locally you call updateMuteState. It's not clear what this does.
-Is muting connected to track publish/unpublish?
+- `JoinCallResponse`, `ParticipantJoinedEvent` contain `published_tracks`
+- `TrackPublishedEvent`, `TrackUnpublishedEvent`
+- Locally you call `updateMuteState`. It's not clear what this does.
+- Is muting connected to track publish/unpublish?
### Retry Behaviour
@@ -318,8 +315,8 @@ When we have time we should rebuild this with:
There are 2 common ways how you can get your tests that use coroutines to hang forever
Scenario 1 - Tests block:
-- Never use Dispatchers.Main/IO directly. Always use DispatcherProvider.IO/Main
-- Solution: Replace Dispatchers.Main with DispatcherProvider.Main
+- Never use `Dispatchers.Main/IO` directly. Always use `DispatcherProvider.IO/Main`
+- Solution: Replace `Dispatchers.Main` with `DispatcherProvider.Main`
Scenario 2 - Tests block:
- Inside of runTest the coroutine dispatcher waits for all coroutines to finish
diff --git a/docusaurus/docs/Android/02-tutorials/01-video-calling.mdx b/docusaurus/docs/Android/02-tutorials/01-video-calling.mdx
index af9d8c3eab..79802ecb6e 100644
--- a/docusaurus/docs/Android/02-tutorials/01-video-calling.mdx
+++ b/docusaurus/docs/Android/02-tutorials/01-video-calling.mdx
@@ -31,7 +31,7 @@ If you're new to android, note that there are 2 `build.gradle` files, you want t
```kotlin
dependencies {
// Stream Video Compose SDK
- implementation("io.getstream:stream-video-android-compose:0.3.4")
+ implementation("io.getstream:stream-video-android-compose:0.4.0")
// Optionally add Jetpack Compose if Android studio didn't automatically include them
implementation(platform("androidx.compose:compose-bom:2023.08.00"))
diff --git a/docusaurus/docs/Android/02-tutorials/02-audio-room.mdx b/docusaurus/docs/Android/02-tutorials/02-audio-room.mdx
index 1e7eb5ac19..66bd0858b2 100644
--- a/docusaurus/docs/Android/02-tutorials/02-audio-room.mdx
+++ b/docusaurus/docs/Android/02-tutorials/02-audio-room.mdx
@@ -35,7 +35,7 @@ If you're new to android, note that there are 2 `build.gradle` files, you want t
```groovy
dependencies {
// Stream Video Compose SDK
- implementation("io.getstream:stream-video-android-compose:0.3.4")
+ implementation("io.getstream:stream-video-android-compose:0.4.0")
// Jetpack Compose (optional/ android studio typically adds them when you create a new project)
implementation(platform("androidx.compose:compose-bom:2023.08.00"))
diff --git a/docusaurus/docs/Android/02-tutorials/03-livestream.mdx b/docusaurus/docs/Android/02-tutorials/03-livestream.mdx
index 4e3a2637f4..10ca8f9c0d 100644
--- a/docusaurus/docs/Android/02-tutorials/03-livestream.mdx
+++ b/docusaurus/docs/Android/02-tutorials/03-livestream.mdx
@@ -35,7 +35,7 @@ If you're new to android, note that there are 2 `build.gradle` files, you want t
```kotlin
dependencies {
// Stream Video Compose SDK
- implementation("io.getstream:stream-video-android-compose:0.3.4")
+ implementation("io.getstream:stream-video-android-compose:0.4.0")
// Jetpack Compose (optional/ android studio typically adds them when you create a new project)
implementation(platform("androidx.compose:compose-bom:2023.08.00"))
@@ -292,7 +292,7 @@ There are many possibilities and the [participant state docs](../03-guides/03-ca
The livestream layout is built using standard Jetpack Compose. The [VideoRenderer](../04-ui-components/02-video-renderer.mdx) component is provided by Stream.
**VideoRenderer** renders the video and a fallback. You can use it for rendering the local and remote video.
-If you want to learn more about building an advanced UIs for watching a livestream, check out [Cookbook: Watching a livestream](../05-ui-cookbook/15-watching-livestream.mdx).
+If you want to learn more about building an advanced UIs for watching a livestream, check out [Cookbook: Watching a livestream](../05-ui-cookbook/16-watching-livestream.mdx).
#### Backstage mode
@@ -349,11 +349,11 @@ Let's show how to broadcast your call to HLS:
```kotlin
call.startHLS()
-val hlsUrl = call.state.egress.value?.hls
+val hlsUrl = call.state.egress.value?.hls?.playlistUrl
Log.i("Tutorial", "HLS url = $hlsUrl")
```
-You can view the HLS video feed using any HLS capable video player.
+You can play the HLS video feed using any HLS capable video player, such as [ExoPlayer](https://github.com/google/ExoPlayer).
### 7 - Advanced Features
@@ -363,8 +363,8 @@ It also went into more details about HLS & RTMP-in.
There are several advanced features that can improve the livestreaming experience:
* ** [Co-hosts](../03-guides/02-joining-creating-calls.mdx) ** You can add members to your livestream with elevated permissions. So you can have co-hosts, moderators etc.
-* ** [Custom events](../03-guides/08-reactions-and-custom-events.mdx) ** You can use custom events on the call to share any additional data. Think about showing the score for a game, or any other realtime use case.
-* ** [Reactions & Chat](../03-guides/08-reactions-and-custom-events.mdx) ** Users can react to the livestream, and you can add chat. This makes for a more engaging experience.
+* ** [Custom events](../03-guides/09-reactions-and-custom-events.mdx) ** You can use custom events on the call to share any additional data. Think about showing the score for a game, or any other realtime use case.
+* ** [Reactions & Chat](../03-guides/09-reactions-and-custom-events.mdx) ** Users can react to the livestream, and you can add chat. This makes for a more engaging experience.
* ** [Notifications](../06-advanced/01-ringing.mdx) ** You can notify users via push notifications when the livestream starts
* ** [Recording](../06-advanced/06-recording.mdx) ** The call recording functionality allows you to record the call with various options and layouts
diff --git a/docusaurus/docs/Android/03-guides/06-keeping-the-call-alive.mdx b/docusaurus/docs/Android/03-guides/06-keeping-the-call-alive.mdx
new file mode 100644
index 0000000000..8a21508571
--- /dev/null
+++ b/docusaurus/docs/Android/03-guides/06-keeping-the-call-alive.mdx
@@ -0,0 +1,52 @@
+---
+title: Keeping the call alive in the background
+description: How to keep the call alive
+---
+
+Ensuring uninterrupted video and audio calls is vital.
+Our SDK's default feature keeps calls active in the background, allowing users to multitask seamlessly.
+On this page you will learn how to tailor this feature to your needs.
+
+# Out of the box
+
+By default, our SDK ensures continuous calls by initiating a [foreground service](https://developer.android.com/guide/components/foreground-services).
+This service keeps the process active and the call running, even if the application's UI is no longer visible.
+The SDK already provides the required declarations in the manifest.
+
+Our foreground service displays a notification indicating an ongoing call.
+This notification allows users to either exit the call or seamlessly return to it.
+It appears during active calls and vanishes when the user leaves the call.
+
+![Keeping the call alive in the background](../assets/foreground_service_notification.png)
+
+## Customizing the notification
+
+Easily customize notification text by overriding predefined strings, tailoring the messaging to your preferences.
+
+```xml
+
+ ongoing_calls
+ Ongoing calls
+ Ongoing call alerts
+ Call in progress
+ There is a call in progress, tap to go back to the call.
+ Leave
+
+```
+For additional customization options and tailored behavior, please refer to our comprehensive [push notification setup](../06-advanced/02-push-notifications/02-setup.mdx) guide.
+
+## Disable the foreground service & hide the notification
+You can entirely deactivate this functionality by setting the `runForegroundServiceForCalls` flag to false during the [initialization process](../01-basics/03-quickstart.mdx).
+
+```kotlin {7}
+val client = StreamVideoBuilder(
+ context = context,
+ apiKey = apiKey,
+ geo = GEO.GlobalEdgeNetwork,
+ user = user,
+ token = token,
+ runForegroundServiceForCalls = false
+).build()
+```
+
+
diff --git a/docusaurus/docs/Android/03-guides/06-querying-calls.mdx b/docusaurus/docs/Android/03-guides/07-querying-calls.mdx
similarity index 100%
rename from docusaurus/docs/Android/03-guides/06-querying-calls.mdx
rename to docusaurus/docs/Android/03-guides/07-querying-calls.mdx
diff --git a/docusaurus/docs/Android/03-guides/07-permissions-and-moderation.mdx b/docusaurus/docs/Android/03-guides/08-permissions-and-moderation.mdx
similarity index 100%
rename from docusaurus/docs/Android/03-guides/07-permissions-and-moderation.mdx
rename to docusaurus/docs/Android/03-guides/08-permissions-and-moderation.mdx
diff --git a/docusaurus/docs/Android/03-guides/08-reactions-and-custom-events.mdx b/docusaurus/docs/Android/03-guides/09-reactions-and-custom-events.mdx
similarity index 100%
rename from docusaurus/docs/Android/03-guides/08-reactions-and-custom-events.mdx
rename to docusaurus/docs/Android/03-guides/09-reactions-and-custom-events.mdx
diff --git a/docusaurus/docs/Android/05-ui-cookbook/15-watching-livestream.mdx b/docusaurus/docs/Android/05-ui-cookbook/15-hostling-livestream.mdx
similarity index 96%
rename from docusaurus/docs/Android/05-ui-cookbook/15-watching-livestream.mdx
rename to docusaurus/docs/Android/05-ui-cookbook/15-hostling-livestream.mdx
index 1a3f4b2ac2..3473c3d82e 100644
--- a/docusaurus/docs/Android/05-ui-cookbook/15-watching-livestream.mdx
+++ b/docusaurus/docs/Android/05-ui-cookbook/15-hostling-livestream.mdx
@@ -1,21 +1,19 @@
---
-title: Watching a livestream
-description: How to watch a livestream on android with Kotlin
+title: Hosting a livestream
+description: How to host a livestream on Android with Kotlin
---
-This cookbook tutorial walks you through how to build an advanced UIs for watching a livestream on Android.
+This cookbook tutorial walks you through how to build an advanced UIs for hosting a livestream on Android.
:::note
In this cookbook tutorial, we will assume that you already know how to join a livestream call. If you haven't familiarized yourself with the [Livestream Tutorial](../02-tutorials/03-livestream.mdx) yet, we highly recommend doing so before proceeding with this cookbook.
:::
-When you build a livestreaming UI, there are a few things to keep in mind:
+When you build a UI to host livestreaming, there are a few things to keep in mind:
-* UI for when the video isn't loaded yet
-* A message to show when the livestream didn't start yet
-* What to show when the livestream stopped
+* Start/Stop the broadcasting
+* Toggling the device options, such as a camera and microphone
* How to indicate when there are connection problems
-* Muting the volume
* Number of participants
* Duration of the call
diff --git a/docusaurus/docs/Android/05-ui-cookbook/16-watching-livestream.mdx b/docusaurus/docs/Android/05-ui-cookbook/16-watching-livestream.mdx
new file mode 100644
index 0000000000..acca6e0cb3
--- /dev/null
+++ b/docusaurus/docs/Android/05-ui-cookbook/16-watching-livestream.mdx
@@ -0,0 +1,151 @@
+---
+title: Watching a livestream
+description: How to watch a livestream on Android with Kotlin
+---
+
+This cookbook tutorial walks you through how to build an advanced UIs for watching a livestream on Android.
+
+:::note
+We will assume that you already know how to join a livestream call. If you haven't familiarized yourself with the [Livestream Tutorial](../02-tutorials/03-livestream.mdx) yet, we highly recommend doing so before proceeding with this cookbook.
+:::
+
+In this cookbook tutorial, you'll learn how to build the result below at the end:
+
+| On Backstage | On Live |
+| --- | --- |
+| ![LiveStream Backstage](../assets/cookbook/livestream-watching-backstage.png) | ![LiveStream Live](../assets/cookbook/livestream-watching-live.png) |
+
+### Watching Livestreaming
+
+The Stream Compose SDK offers a pre-built UI component, `LivestreamPlayer`, designed to simplify the creation of a livestream viewing screen. This component includes a video renderer, displays information such as the number of participants and call duration, and provides controls for pausing and resuming the livestream.
+
+You can use the `LivestreamPlayer` like the sample below:
+
+```kotlin
+val call = client.call("livestream", callId)
+lifecycleScope.launch {
+ // join the call
+ val result = call.join(create = true)
+ result.onError {
+ Toast.makeText(applicationContext, "uh oh $it", Toast.LENGTH_SHORT).show()
+ }
+}
+
+setContent {
+ LivestreamPlayer(call = call)
+}
+```
+
+If you run the above example, you'll see the screen below:
+
+![Watching Livestream](../assets/cookbook/livestream-watching-backstage.png)
+
+As indicated in the message above, it appears that the host hasn't initiated the livestream.
+
+Now, if you run the hosting a livestream sample and start a broadcasting following the [Livestream Tutorial](../02-tutorials/03-livestream.mdx), you'll see the livestreaming screen below:
+
+![LiveStream Live](../assets/cookbook/livestream-watching-live.png)
+
+### LivestreamPlayer
+
+The `LivestreamPlayer` component offers streamlined customization options for each element:
+
+```kotlin
+LivestreamPlayer(
+ call = call,
+ enablePausing = true,
+ onPausedPlayer = { isPaused -> Log.d("livestream", "paused: $isPaused") },
+ backstageContent = {
+ Text(
+ modifier = Modifier.align(Alignment.Center),
+ text = "Waiting for live host",
+ )
+ },
+ rendererContent = {
+ val livestream by call.state.livestream.collectAsState()
+
+ VideoRenderer(
+ modifier = Modifier.fillMaxSize(),
+ call = call,
+ video = livestream,
+ )
+ },
+ overlayContent = {
+ val totalParticipants by call.state.totalParticipants.collectAsState()
+ val duration by call.state.duration.collectAsState()
+
+ Row(
+ modifier = Modifier.align(Alignment.Center),
+ verticalAlignment = Alignment.CenterVertically,
+ ) {
+ Text(text = totalParticipants.toString())
+
+ Text(text = (duration ?: 0).toString())
+ }
+ }
+)
+```
+
+As you can observe in the example above, you have the flexibility to extensively customize every element of the `LivestreamPlayer`. Each element serves a distinct purpose:
+
+* `enablePausing`: Enables pausing or resuming the livestream video.
+* `onPausedPlayer`: Listen to pause or resume the livestream video.
+* `backstageContent`: Content shown when the host has not yet started the live stream.
+* `rendererContent`: The rendered stream originating from the host.
+* `overlayContent`: The default content is displayed to indicate participant counts, live stream duration, and device settings controls. You can overlay anything that you want by customizing this Composable parameter.
+
+You can utilize each element depending on your situations and requirements.
+
+`LivestreamPlayer` also provides pausing/resuming the livestream video by clicking on the video renderer.
+
+If you click on the video renderer, it will pause or resume like the image below:
+
+![LiveStream Live Pausing](../assets/cookbook/livestream-watching-live-pause.png)
+
+### Build Your Own LivestreamPlayer
+
+You can also create your own custom livestream player without relying on Stream's pre-built UI component.
+
+The key logic to consider includes:
+
+* UI for when the video isn't loaded yet
+* A message to show when the livestream didn't start yet
+* What to show when the livestream stopped
+* How to indicate when there are connection problems
+* Muting the volume
+* Number of participants
+* Duration of the call
+
+The `call.state` provides the means to monitor whether the livestream is in the background, the count of participants, and more. You can leverage this information to construct your own custom livestream player.
+
+```kotlin
+val backstage: Boolean by call.state.backstage.collectAsState()
+val livestream: ParticipantState.Video? by call.state.livestream.collectAsState()
+val totalParticipants: ParticipantCount? by call.state.totalParticipants.collectAsState()
+val duration: kotlin.time.Duration? by call.state.duration.collectAsState()
+```
+
+Then now you can implement a your livestream player like the example below:
+
+```kotlin
+if (backstage) {
+ Text(text = "Waiting for live host")
+} else {
+ VideoRenderer(
+ modifier = Modifier.fillMaxSize(),
+ call = call,
+ video = livestream,
+ )
+
+ Row(
+ modifier = Modifier.align(Alignment.Center),
+ verticalAlignment = Alignment.CenterVertically,
+ ) {
+ Text(text = totalParticipants.toString())
+
+ Text(text = (duration ?: 0).toString())
+ }
+}
+```
+
+In this cookbook tutorial, you have learned how to create an advanced live streaming screen. If you wish to refer to the code, feel free to explore the [GitHub Repository](https://github.com/GetStream/stream-video-android/tree/develop/tutorials/tutorial-livestream).
\ No newline at end of file
diff --git a/docusaurus/docs/Android/06-advanced/02-push-notifications/02-setup.mdx b/docusaurus/docs/Android/06-advanced/02-push-notifications/02-setup.mdx
index 4bfb0e4e48..41259463d5 100644
--- a/docusaurus/docs/Android/06-advanced/02-push-notifications/02-setup.mdx
+++ b/docusaurus/docs/Android/06-advanced/02-push-notifications/02-setup.mdx
@@ -68,9 +68,9 @@ The different actions we provide are:
* `io.getstream.video.android.action.INCOMING_CALL`: Action used to process an incoming call. The `activity` that handles this action should show options to accept/reject the call. You can use our [RigningCallContent](../../04-ui-components/04-call/04-ringing-call.mdx) component to build your screen. This screen can be shown when the device is locked, by adding some arguments on the manifest.
* `io.getstream.video.android.action.ACCEPT_CALL`: Action used to accept an incoming call. The `activity` that handles this action should accept the call and show the call screen. You can use our [CallContent](../../04-ui-components/04-call/03-call-content.mdx) component to build your screen.
* `io.getstream.video.android.action.LIVE_CALL`: Action used to go into a live call. The `activity` that handles this action should show the live call screen. You can use our [CallContent](../../04-ui-components/04-call/03-call-content.mdx) component to build your screen.
-
+* `io.getstream.video.android.action.ONGOING_CALL`: Action used to get back into already running call. The `activity` that handles this action should show the call screen. You can use our [CallContent](../../04-ui-components/04-call/03-call-content.mdx) component to build your screen.
These actions need to be included on the `AndroidManifest` while you declare your activities:
-``` xml {4,6-7,9-11,14,17-19,22,25-27}
+``` xml {4,9-11,15,18-20,24,27-29,33,36-38}
+
+
+
+
+
+
+
+
```
@@ -125,7 +136,7 @@ To do this, implement the `NotificationHandler` interface and show your own noti
-```kotlin {7-12,15-20}
+```kotlin {7-12,15-20,23-27}
class MyNotificationHandler(private val context: Context) : NotificationHandler {
private val notificationManager: NotificationManager by lazy {
context.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
@@ -146,6 +157,14 @@ class MyNotificationHandler(private val context: Context) : NotificationHandler
.build()
notificationManager.notify(notificationId, notification)
}
+
+ // Called when the foreground service is started, to supply the notification
+ override fun getOngoingCallNotification(callId: StreamCallId): Notification? {
+ val notification = NotificationCompat.Builder(context, notificationChannelId)
+ ... // Configure your own notification
+ .build()
+ return notification
+ }
}
```
@@ -179,6 +198,15 @@ class MyNotificationHandler implements NotificationHandler {
.build();
notificationManager.notify(notificationId, notification);
}
+
+ // Called when the foreground service is started, to supply the notification
+ @Override
+ public Notification getOngoingCallNotification(@NonNull StreamCallId callId) {
+ Notification notification = new NotificationCompat.Builder(context, notificationChannelId)
+ ... // Configure your own notification
+ .build();
+ return notification;
+ }
}
```
@@ -248,6 +276,11 @@ class MyNotificationHandler(application: Application) : DefaultNotificationHandl
override fun onLiveCall(callId: StreamCallId, callDisplayName: String) {
[...]
}
+
+ // Override this method if you want a custom notification when there is an ongoing call
+ override fun getOngoingCallNotification(callId: StreamCallId): Notification? {
+ [...]
+ }
}
```
diff --git a/docusaurus/docs/Android/06-advanced/07-chat-with-video.mdx b/docusaurus/docs/Android/06-advanced/07-chat-with-video.mdx
index 7d117d8aca..2f9400d1b0 100644
--- a/docusaurus/docs/Android/06-advanced/07-chat-with-video.mdx
+++ b/docusaurus/docs/Android/06-advanced/07-chat-with-video.mdx
@@ -31,7 +31,7 @@ Let the project sync. It should have all the dependencies required for you to fi
```groovy
dependencies {
// Stream Video Compose SDK
- implementation("io.getstream:stream-video-android-compose:0.3.4")
+ implementation("io.getstream:stream-video-android-compose:0.4.0")
// Stream Chat
implementation(libs.stream.chat.compose)
diff --git a/docusaurus/docs/Android/06-advanced/11-custom-data.mdx b/docusaurus/docs/Android/06-advanced/11-custom-data.mdx
new file mode 100644
index 0000000000..389770b113
--- /dev/null
+++ b/docusaurus/docs/Android/06-advanced/11-custom-data.mdx
@@ -0,0 +1,31 @@
+---
+title: Custom Data
+description: How can you use custom data in your applications?
+---
+
+Custom data is additional information that can be added to the default data of Stream. It is a dictionary of key-value pairs that can be attached to users, events, and pretty much almost every domain model in the Stream SDK.
+
+On Android, custom data is represented as `Map` where the `Any` value can be a String, Integer, Double, Long, Boolean, List, Map or null. The values inside the lists and maps can also only contain the listed types. Custom classes are not supported and we recommend to convert your custom object to a JSON String.
+
+## Adding Custom Data
+
+Adding extra data can be done through the Server-Side SDKs or through the Client SDKs. In the Android Stream Video SDK, you can add extra data when creating/updating a user, event, reaction and other models.
+As a simple example, let's see how you can add a new custom field to a Video Reaction.
+
+```kotlin
+call.sendReaction(
+ type = "default",
+ emoji = ":fireworks:",
+ custom = mapOf(Pair("yourCustomKey", "customStringValue"))
+)
+```
+
+## Reading Custom Data
+
+All of the most important domain models in the SDK have an `customData` property that you can read the additional information added by your app.
+
+The following code snippet shows how to get an email from a user's custom data.
+
+```Kotlin
+val email = user.custom["email"]
+```
\ No newline at end of file
diff --git a/docusaurus/docs/Android/assets/cookbook/livestream-watching-backstage.png b/docusaurus/docs/Android/assets/cookbook/livestream-watching-backstage.png
new file mode 100644
index 0000000000..9f53c99168
Binary files /dev/null and b/docusaurus/docs/Android/assets/cookbook/livestream-watching-backstage.png differ
diff --git a/docusaurus/docs/Android/assets/cookbook/livestream-watching-live-pause.png b/docusaurus/docs/Android/assets/cookbook/livestream-watching-live-pause.png
new file mode 100644
index 0000000000..c8fd8c12c5
Binary files /dev/null and b/docusaurus/docs/Android/assets/cookbook/livestream-watching-live-pause.png differ
diff --git a/docusaurus/docs/Android/assets/cookbook/livestream-watching-live.png b/docusaurus/docs/Android/assets/cookbook/livestream-watching-live.png
new file mode 100644
index 0000000000..bdb5055042
Binary files /dev/null and b/docusaurus/docs/Android/assets/cookbook/livestream-watching-live.png differ
diff --git a/docusaurus/docs/Android/assets/foreground_service_notification.png b/docusaurus/docs/Android/assets/foreground_service_notification.png
new file mode 100644
index 0000000000..4be9b44cfa
Binary files /dev/null and b/docusaurus/docs/Android/assets/foreground_service_notification.png differ
diff --git a/dogfooding/build.gradle.kts b/dogfooding/build.gradle.kts
index 1d6576d547..be88329662 100644
--- a/dogfooding/build.gradle.kts
+++ b/dogfooding/build.gradle.kts
@@ -30,9 +30,9 @@ plugins {
id(libs.plugins.firebase.crashlytics.get().pluginId)
id(libs.plugins.kotlin.serialization.get().pluginId)
id(libs.plugins.hilt.get().pluginId)
+ id(libs.plugins.ksp.get().pluginId)
id(libs.plugins.play.publisher.get().pluginId)
id(libs.plugins.baseline.profile.get().pluginId)
- kotlin("kapt")
}
android {
@@ -113,7 +113,7 @@ android {
}
}
- flavorDimensions("environment")
+ flavorDimensions += "environment"
productFlavors {
create("dogfooding") {
dimension = "environment"
@@ -245,10 +245,11 @@ dependencies {
// hilt
implementation(libs.hilt.android)
- kapt(libs.hilt.compiler)
+ ksp(libs.hilt.compiler)
// firebase
implementation(libs.firebase.crashlytics)
+ implementation(libs.firebase.analytics)
// Play Install Referrer library - used to extract the meeting link from demo flow after install
implementation(libs.play.install.referrer)
diff --git a/dogfooding/src/main/AndroidManifest.xml b/dogfooding/src/main/AndroidManifest.xml
index ebe1e2a8d3..019a480f28 100644
--- a/dogfooding/src/main/AndroidManifest.xml
+++ b/dogfooding/src/main/AndroidManifest.xml
@@ -50,9 +50,14 @@
android:name="io.getstream.video.android.ui.call.CallActivity"
android:configChanges="screenSize|smallestScreenSize|screenLayout|orientation"
android:exported="true"
+ android:launchMode="singleTask"
android:hardwareAccelerated="true"
android:supportsPictureInPicture="true"
- android:windowSoftInputMode="adjustResize" />
+ android:windowSoftInputMode="adjustResize">
+
+
+
+
(Landroidx/activity/ComponentActivity;)V
Landroidx/activity/ComponentActivity$2;
HSPLandroidx/activity/ComponentActivity$2;->(Landroidx/activity/ComponentActivity;)V
-PLandroidx/activity/ComponentActivity$2;->onLaunch(ILandroidx/activity/result/contract/ActivityResultContract;Ljava/lang/Object;Landroidx/core/app/ActivityOptionsCompat;)V
+HSPLandroidx/activity/ComponentActivity$2;->onLaunch(ILandroidx/activity/result/contract/ActivityResultContract;Ljava/lang/Object;Landroidx/core/app/ActivityOptionsCompat;)V
Landroidx/activity/ComponentActivity$3;
HSPLandroidx/activity/ComponentActivity$3;->(Landroidx/activity/ComponentActivity;)V
HSPLandroidx/activity/ComponentActivity$3;->onStateChanged(Landroidx/lifecycle/LifecycleOwner;Landroidx/lifecycle/Lifecycle$Event;)V
@@ -53,12 +53,12 @@ Landroidx/activity/ComponentDialog$$ExternalSyntheticApiModelOutline0;
HSPLandroidx/activity/ComponentDialog$$ExternalSyntheticApiModelOutline0;->m$1(Landroid/graphics/Canvas;)V
HSPLandroidx/activity/ComponentDialog$$ExternalSyntheticApiModelOutline0;->m$1(Landroid/view/autofill/AutofillManager;Landroid/view/autofill/AutofillManager$AutofillCallback;)V
HSPLandroidx/activity/ComponentDialog$$ExternalSyntheticApiModelOutline0;->m$4()Landroid/graphics/BlendMode;
-PLandroidx/activity/ComponentDialog$$ExternalSyntheticApiModelOutline0;->m$7()Landroid/graphics/BlendMode;
+HSPLandroidx/activity/ComponentDialog$$ExternalSyntheticApiModelOutline0;->m$7()Landroid/graphics/BlendMode;
HSPLandroidx/activity/ComponentDialog$$ExternalSyntheticApiModelOutline0;->m()Landroid/graphics/BlendMode;
HSPLandroidx/activity/ComponentDialog$$ExternalSyntheticApiModelOutline0;->m()Landroid/graphics/ColorSpace$Named;
HSPLandroidx/activity/ComponentDialog$$ExternalSyntheticApiModelOutline0;->m()Ljava/lang/Class;
-PLandroidx/activity/ComponentDialog$$ExternalSyntheticApiModelOutline0;->m()V
-PLandroidx/activity/ComponentDialog$$ExternalSyntheticApiModelOutline0;->m(ILandroid/graphics/BlendMode;)Landroid/graphics/BlendModeColorFilter;
+HSPLandroidx/activity/ComponentDialog$$ExternalSyntheticApiModelOutline0;->m()V
+HSPLandroidx/activity/ComponentDialog$$ExternalSyntheticApiModelOutline0;->m(ILandroid/graphics/BlendMode;)Landroid/graphics/BlendModeColorFilter;
HSPLandroidx/activity/ComponentDialog$$ExternalSyntheticApiModelOutline0;->m(Landroid/graphics/Canvas;)V
HSPLandroidx/activity/ComponentDialog$$ExternalSyntheticApiModelOutline0;->m(Landroid/util/DisplayMetrics;IILandroid/graphics/Bitmap$Config;ZLandroid/graphics/ColorSpace;)Landroid/graphics/Bitmap;
HSPLandroidx/activity/ComponentDialog$$ExternalSyntheticApiModelOutline0;->m(Landroid/view/View;I)V
@@ -103,13 +103,13 @@ HSPLandroidx/activity/ViewTreeOnBackPressedDispatcherOwner$findViewTreeOnBackPre
Landroidx/activity/ViewTreeOnBackPressedDispatcherOwner$findViewTreeOnBackPressedDispatcherOwner$2;
HSPLandroidx/activity/ViewTreeOnBackPressedDispatcherOwner$findViewTreeOnBackPressedDispatcherOwner$2;->()V
HSPLandroidx/activity/ViewTreeOnBackPressedDispatcherOwner$findViewTreeOnBackPressedDispatcherOwner$2;->()V
-HSPLandroidx/activity/ViewTreeOnBackPressedDispatcherOwner$findViewTreeOnBackPressedDispatcherOwner$2;->invoke(Landroid/view/View;)Landroidx/activity/OnBackPressedDispatcherOwner;
+HPLandroidx/activity/ViewTreeOnBackPressedDispatcherOwner$findViewTreeOnBackPressedDispatcherOwner$2;->invoke(Landroid/view/View;)Landroidx/activity/OnBackPressedDispatcherOwner;
HSPLandroidx/activity/ViewTreeOnBackPressedDispatcherOwner$findViewTreeOnBackPressedDispatcherOwner$2;->invoke(Ljava/lang/Object;)Ljava/lang/Object;
Landroidx/activity/compose/ActivityResultLauncherHolder;
HSPLandroidx/activity/compose/ActivityResultLauncherHolder;->()V
-PLandroidx/activity/compose/ActivityResultLauncherHolder;->launch(Ljava/lang/Object;Landroidx/core/app/ActivityOptionsCompat;)V
+HSPLandroidx/activity/compose/ActivityResultLauncherHolder;->launch(Ljava/lang/Object;Landroidx/core/app/ActivityOptionsCompat;)V
HSPLandroidx/activity/compose/ActivityResultLauncherHolder;->setLauncher(Landroidx/activity/result/ActivityResultLauncher;)V
-PLandroidx/activity/compose/ActivityResultLauncherHolder;->unregister()V
+HSPLandroidx/activity/compose/ActivityResultLauncherHolder;->unregister()V
Landroidx/activity/compose/ActivityResultRegistryKt;
HPLandroidx/activity/compose/ActivityResultRegistryKt;->rememberLauncherForActivityResult(Landroidx/activity/result/contract/ActivityResultContract;Lkotlin/jvm/functions/Function1;Landroidx/compose/runtime/Composer;I)Landroidx/activity/compose/ManagedActivityResultLauncher;
Landroidx/activity/compose/ActivityResultRegistryKt$rememberLauncherForActivityResult$1;
@@ -120,7 +120,7 @@ Landroidx/activity/compose/ActivityResultRegistryKt$rememberLauncherForActivityR
HSPLandroidx/activity/compose/ActivityResultRegistryKt$rememberLauncherForActivityResult$1$1;->(Landroidx/compose/runtime/State;)V
Landroidx/activity/compose/ActivityResultRegistryKt$rememberLauncherForActivityResult$1$invoke$$inlined$onDispose$1;
HSPLandroidx/activity/compose/ActivityResultRegistryKt$rememberLauncherForActivityResult$1$invoke$$inlined$onDispose$1;->(Landroidx/activity/compose/ActivityResultLauncherHolder;)V
-PLandroidx/activity/compose/ActivityResultRegistryKt$rememberLauncherForActivityResult$1$invoke$$inlined$onDispose$1;->dispose()V
+HSPLandroidx/activity/compose/ActivityResultRegistryKt$rememberLauncherForActivityResult$1$invoke$$inlined$onDispose$1;->dispose()V
Landroidx/activity/compose/ActivityResultRegistryKt$rememberLauncherForActivityResult$key$1;
HSPLandroidx/activity/compose/ActivityResultRegistryKt$rememberLauncherForActivityResult$key$1;->()V
HSPLandroidx/activity/compose/ActivityResultRegistryKt$rememberLauncherForActivityResult$key$1;->()V
@@ -167,7 +167,7 @@ HSPLandroidx/activity/compose/LocalOnBackPressedDispatcherOwner$LocalOnBackPress
Landroidx/activity/compose/ManagedActivityResultLauncher;
HSPLandroidx/activity/compose/ManagedActivityResultLauncher;->()V
HSPLandroidx/activity/compose/ManagedActivityResultLauncher;->(Landroidx/activity/compose/ActivityResultLauncherHolder;Landroidx/compose/runtime/State;)V
-PLandroidx/activity/compose/ManagedActivityResultLauncher;->launch(Ljava/lang/Object;Landroidx/core/app/ActivityOptionsCompat;)V
+HSPLandroidx/activity/compose/ManagedActivityResultLauncher;->launch(Ljava/lang/Object;Landroidx/core/app/ActivityOptionsCompat;)V
Landroidx/activity/contextaware/ContextAware;
Landroidx/activity/contextaware/ContextAwareHelper;
HSPLandroidx/activity/contextaware/ContextAwareHelper;->()V
@@ -180,54 +180,58 @@ Landroidx/activity/result/ActivityResultCallback;
Landroidx/activity/result/ActivityResultCaller;
Landroidx/activity/result/ActivityResultLauncher;
HSPLandroidx/activity/result/ActivityResultLauncher;->()V
-PLandroidx/activity/result/ActivityResultLauncher;->launch(Ljava/lang/Object;)V
+HSPLandroidx/activity/result/ActivityResultLauncher;->launch(Ljava/lang/Object;)V
Landroidx/activity/result/ActivityResultRegistry;
HSPLandroidx/activity/result/ActivityResultRegistry;->()V
HPLandroidx/activity/result/ActivityResultRegistry;->bindRcKey(ILjava/lang/String;)V
HSPLandroidx/activity/result/ActivityResultRegistry;->generateRandomNumber()I
PLandroidx/activity/result/ActivityResultRegistry;->onSaveInstanceState(Landroid/os/Bundle;)V
HPLandroidx/activity/result/ActivityResultRegistry;->register(Ljava/lang/String;Landroidx/activity/result/contract/ActivityResultContract;Landroidx/activity/result/ActivityResultCallback;)Landroidx/activity/result/ActivityResultLauncher;
-HPLandroidx/activity/result/ActivityResultRegistry;->registerKey(Ljava/lang/String;)V
+HSPLandroidx/activity/result/ActivityResultRegistry;->registerKey(Ljava/lang/String;)V
HPLandroidx/activity/result/ActivityResultRegistry;->unregister(Ljava/lang/String;)V
Landroidx/activity/result/ActivityResultRegistry$3;
HSPLandroidx/activity/result/ActivityResultRegistry$3;->(Landroidx/activity/result/ActivityResultRegistry;Ljava/lang/String;Landroidx/activity/result/contract/ActivityResultContract;)V
-PLandroidx/activity/result/ActivityResultRegistry$3;->launch(Ljava/lang/Object;Landroidx/core/app/ActivityOptionsCompat;)V
-PLandroidx/activity/result/ActivityResultRegistry$3;->unregister()V
+HSPLandroidx/activity/result/ActivityResultRegistry$3;->launch(Ljava/lang/Object;Landroidx/core/app/ActivityOptionsCompat;)V
+HSPLandroidx/activity/result/ActivityResultRegistry$3;->unregister()V
Landroidx/activity/result/ActivityResultRegistry$CallbackAndContract;
HSPLandroidx/activity/result/ActivityResultRegistry$CallbackAndContract;->(Landroidx/activity/result/ActivityResultCallback;Landroidx/activity/result/contract/ActivityResultContract;)V
+Landroidx/activity/result/ActivityResultRegistry$LifecycleContainer;
Landroidx/activity/result/ActivityResultRegistryOwner;
Landroidx/activity/result/contract/ActivityResultContract;
HSPLandroidx/activity/result/contract/ActivityResultContract;->()V
-PLandroidx/activity/result/contract/ActivityResultContracts$RequestMultiplePermissions;->()V
-PLandroidx/activity/result/contract/ActivityResultContracts$RequestMultiplePermissions;->()V
-PLandroidx/activity/result/contract/ActivityResultContracts$RequestMultiplePermissions;->createIntent(Landroid/content/Context;Ljava/lang/Object;)Landroid/content/Intent;
-PLandroidx/activity/result/contract/ActivityResultContracts$RequestMultiplePermissions;->createIntent(Landroid/content/Context;[Ljava/lang/String;)Landroid/content/Intent;
-PLandroidx/activity/result/contract/ActivityResultContracts$RequestMultiplePermissions;->getSynchronousResult(Landroid/content/Context;Ljava/lang/Object;)Landroidx/activity/result/contract/ActivityResultContract$SynchronousResult;
-PLandroidx/activity/result/contract/ActivityResultContracts$RequestMultiplePermissions;->getSynchronousResult(Landroid/content/Context;[Ljava/lang/String;)Landroidx/activity/result/contract/ActivityResultContract$SynchronousResult;
-PLandroidx/activity/result/contract/ActivityResultContracts$RequestMultiplePermissions$Companion;->()V
-PLandroidx/activity/result/contract/ActivityResultContracts$RequestMultiplePermissions$Companion;->(Lkotlin/jvm/internal/DefaultConstructorMarker;)V
-PLandroidx/activity/result/contract/ActivityResultContracts$RequestMultiplePermissions$Companion;->createIntent$activity_release([Ljava/lang/String;)Landroid/content/Intent;
-PLandroidx/activity/result/contract/ActivityResultContracts$RequestPermission;->()V
+Landroidx/activity/result/contract/ActivityResultContracts$RequestMultiplePermissions;
+HSPLandroidx/activity/result/contract/ActivityResultContracts$RequestMultiplePermissions;->()V
+HSPLandroidx/activity/result/contract/ActivityResultContracts$RequestMultiplePermissions;->()V
+HSPLandroidx/activity/result/contract/ActivityResultContracts$RequestMultiplePermissions;->createIntent(Landroid/content/Context;Ljava/lang/Object;)Landroid/content/Intent;
+HSPLandroidx/activity/result/contract/ActivityResultContracts$RequestMultiplePermissions;->createIntent(Landroid/content/Context;[Ljava/lang/String;)Landroid/content/Intent;
+HSPLandroidx/activity/result/contract/ActivityResultContracts$RequestMultiplePermissions;->getSynchronousResult(Landroid/content/Context;Ljava/lang/Object;)Landroidx/activity/result/contract/ActivityResultContract$SynchronousResult;
+HSPLandroidx/activity/result/contract/ActivityResultContracts$RequestMultiplePermissions;->getSynchronousResult(Landroid/content/Context;[Ljava/lang/String;)Landroidx/activity/result/contract/ActivityResultContract$SynchronousResult;
+Landroidx/activity/result/contract/ActivityResultContracts$RequestMultiplePermissions$Companion;
+HSPLandroidx/activity/result/contract/ActivityResultContracts$RequestMultiplePermissions$Companion;->()V
+HSPLandroidx/activity/result/contract/ActivityResultContracts$RequestMultiplePermissions$Companion;->(Lkotlin/jvm/internal/DefaultConstructorMarker;)V
+HSPLandroidx/activity/result/contract/ActivityResultContracts$RequestMultiplePermissions$Companion;->createIntent$activity_release([Ljava/lang/String;)Landroid/content/Intent;
+Landroidx/activity/result/contract/ActivityResultContracts$RequestPermission;
+HSPLandroidx/activity/result/contract/ActivityResultContracts$RequestPermission;->()V
Landroidx/arch/core/executor/ArchTaskExecutor;
HSPLandroidx/arch/core/executor/ArchTaskExecutor;->()V
HSPLandroidx/arch/core/executor/ArchTaskExecutor;->()V
-PLandroidx/arch/core/executor/ArchTaskExecutor;->executeOnDiskIO(Ljava/lang/Runnable;)V
-PLandroidx/arch/core/executor/ArchTaskExecutor;->getIOThreadExecutor()Ljava/util/concurrent/Executor;
+HSPLandroidx/arch/core/executor/ArchTaskExecutor;->executeOnDiskIO(Ljava/lang/Runnable;)V
+HSPLandroidx/arch/core/executor/ArchTaskExecutor;->getIOThreadExecutor()Ljava/util/concurrent/Executor;
HPLandroidx/arch/core/executor/ArchTaskExecutor;->getInstance()Landroidx/arch/core/executor/ArchTaskExecutor;
HPLandroidx/arch/core/executor/ArchTaskExecutor;->isMainThread()Z
-PLandroidx/arch/core/executor/ArchTaskExecutor;->lambda$static$1(Ljava/lang/Runnable;)V
+HSPLandroidx/arch/core/executor/ArchTaskExecutor;->lambda$static$1(Ljava/lang/Runnable;)V
Landroidx/arch/core/executor/ArchTaskExecutor$$ExternalSyntheticLambda0;
HSPLandroidx/arch/core/executor/ArchTaskExecutor$$ExternalSyntheticLambda0;->()V
Landroidx/arch/core/executor/ArchTaskExecutor$$ExternalSyntheticLambda1;
HSPLandroidx/arch/core/executor/ArchTaskExecutor$$ExternalSyntheticLambda1;->()V
-PLandroidx/arch/core/executor/ArchTaskExecutor$$ExternalSyntheticLambda1;->execute(Ljava/lang/Runnable;)V
+HSPLandroidx/arch/core/executor/ArchTaskExecutor$$ExternalSyntheticLambda1;->execute(Ljava/lang/Runnable;)V
Landroidx/arch/core/executor/DefaultTaskExecutor;
HSPLandroidx/arch/core/executor/DefaultTaskExecutor;->()V
-PLandroidx/arch/core/executor/DefaultTaskExecutor;->executeOnDiskIO(Ljava/lang/Runnable;)V
+HSPLandroidx/arch/core/executor/DefaultTaskExecutor;->executeOnDiskIO(Ljava/lang/Runnable;)V
HPLandroidx/arch/core/executor/DefaultTaskExecutor;->isMainThread()Z
Landroidx/arch/core/executor/DefaultTaskExecutor$1;
HSPLandroidx/arch/core/executor/DefaultTaskExecutor$1;->(Landroidx/arch/core/executor/DefaultTaskExecutor;)V
-PLandroidx/arch/core/executor/DefaultTaskExecutor$1;->newThread(Ljava/lang/Runnable;)Ljava/lang/Thread;
+HSPLandroidx/arch/core/executor/DefaultTaskExecutor$1;->newThread(Ljava/lang/Runnable;)Ljava/lang/Thread;
Landroidx/arch/core/executor/TaskExecutor;
HSPLandroidx/arch/core/executor/TaskExecutor;->()V
Landroidx/arch/core/internal/FastSafeIterableMap;
@@ -251,11 +255,12 @@ HPLandroidx/arch/core/internal/SafeIterableMap;->remove(Ljava/lang/Object;)Ljava
HPLandroidx/arch/core/internal/SafeIterableMap;->size()I
Landroidx/arch/core/internal/SafeIterableMap$AscendingIterator;
HSPLandroidx/arch/core/internal/SafeIterableMap$AscendingIterator;->(Landroidx/arch/core/internal/SafeIterableMap$Entry;Landroidx/arch/core/internal/SafeIterableMap$Entry;)V
-PLandroidx/arch/core/internal/SafeIterableMap$DescendingIterator;->(Landroidx/arch/core/internal/SafeIterableMap$Entry;Landroidx/arch/core/internal/SafeIterableMap$Entry;)V
-PLandroidx/arch/core/internal/SafeIterableMap$DescendingIterator;->forward(Landroidx/arch/core/internal/SafeIterableMap$Entry;)Landroidx/arch/core/internal/SafeIterableMap$Entry;
+Landroidx/arch/core/internal/SafeIterableMap$DescendingIterator;
+HSPLandroidx/arch/core/internal/SafeIterableMap$DescendingIterator;->(Landroidx/arch/core/internal/SafeIterableMap$Entry;Landroidx/arch/core/internal/SafeIterableMap$Entry;)V
+HSPLandroidx/arch/core/internal/SafeIterableMap$DescendingIterator;->forward(Landroidx/arch/core/internal/SafeIterableMap$Entry;)Landroidx/arch/core/internal/SafeIterableMap$Entry;
Landroidx/arch/core/internal/SafeIterableMap$Entry;
HPLandroidx/arch/core/internal/SafeIterableMap$Entry;->(Ljava/lang/Object;Ljava/lang/Object;)V
-HPLandroidx/arch/core/internal/SafeIterableMap$Entry;->getKey()Ljava/lang/Object;
+HSPLandroidx/arch/core/internal/SafeIterableMap$Entry;->getKey()Ljava/lang/Object;
HPLandroidx/arch/core/internal/SafeIterableMap$Entry;->getValue()Ljava/lang/Object;
Landroidx/arch/core/internal/SafeIterableMap$IteratorWithAdditions;
HSPLandroidx/arch/core/internal/SafeIterableMap$IteratorWithAdditions;->(Landroidx/arch/core/internal/SafeIterableMap;)V
@@ -264,8 +269,8 @@ HSPLandroidx/arch/core/internal/SafeIterableMap$IteratorWithAdditions;->next()Lj
HPLandroidx/arch/core/internal/SafeIterableMap$IteratorWithAdditions;->next()Ljava/util/Map$Entry;
HSPLandroidx/arch/core/internal/SafeIterableMap$IteratorWithAdditions;->supportRemove(Landroidx/arch/core/internal/SafeIterableMap$Entry;)V
Landroidx/arch/core/internal/SafeIterableMap$ListIterator;
-HPLandroidx/arch/core/internal/SafeIterableMap$ListIterator;->(Landroidx/arch/core/internal/SafeIterableMap$Entry;Landroidx/arch/core/internal/SafeIterableMap$Entry;)V
-HPLandroidx/arch/core/internal/SafeIterableMap$ListIterator;->hasNext()Z
+HSPLandroidx/arch/core/internal/SafeIterableMap$ListIterator;->(Landroidx/arch/core/internal/SafeIterableMap$Entry;Landroidx/arch/core/internal/SafeIterableMap$Entry;)V
+HSPLandroidx/arch/core/internal/SafeIterableMap$ListIterator;->hasNext()Z
HSPLandroidx/arch/core/internal/SafeIterableMap$ListIterator;->next()Ljava/lang/Object;
HPLandroidx/arch/core/internal/SafeIterableMap$ListIterator;->next()Ljava/util/Map$Entry;
HPLandroidx/arch/core/internal/SafeIterableMap$ListIterator;->nextNode()Landroidx/arch/core/internal/SafeIterableMap$Entry;
@@ -274,9 +279,21 @@ Landroidx/arch/core/internal/SafeIterableMap$SupportRemove;
HSPLandroidx/arch/core/internal/SafeIterableMap$SupportRemove;->()V
Landroidx/collection/ArrayMap;
HSPLandroidx/collection/ArrayMap;->()V
-PLandroidx/collection/ArrayMap;->keySet()Ljava/util/Set;
-PLandroidx/collection/ArrayMap$KeySet;->(Landroidx/collection/ArrayMap;)V
-PLandroidx/collection/ArrayMap$KeySet;->isEmpty()Z
+HSPLandroidx/collection/ArrayMap;->keySet()Ljava/util/Set;
+PLandroidx/collection/ArrayMap;->removeAll(Ljava/util/Collection;)Z
+HSPLandroidx/collection/ArrayMap;->values()Ljava/util/Collection;
+Landroidx/collection/ArrayMap$KeyIterator;
+HSPLandroidx/collection/ArrayMap$KeyIterator;->(Landroidx/collection/ArrayMap;)V
+Landroidx/collection/ArrayMap$KeySet;
+HSPLandroidx/collection/ArrayMap$KeySet;->(Landroidx/collection/ArrayMap;)V
+HSPLandroidx/collection/ArrayMap$KeySet;->isEmpty()Z
+HSPLandroidx/collection/ArrayMap$KeySet;->iterator()Ljava/util/Iterator;
+PLandroidx/collection/ArrayMap$KeySet;->removeAll(Ljava/util/Collection;)Z
+Landroidx/collection/ArrayMap$ValueCollection;
+HSPLandroidx/collection/ArrayMap$ValueCollection;->(Landroidx/collection/ArrayMap;)V
+HSPLandroidx/collection/ArrayMap$ValueCollection;->iterator()Ljava/util/Iterator;
+Landroidx/collection/ArrayMap$ValueIterator;
+HSPLandroidx/collection/ArrayMap$ValueIterator;->(Landroidx/collection/ArrayMap;)V
Landroidx/collection/ArraySet;
HSPLandroidx/collection/ArraySet;->()V
HSPLandroidx/collection/ArraySet;->()V
@@ -292,19 +309,25 @@ HSPLandroidx/collection/ContainerHelpers;->()V
HSPLandroidx/collection/ContainerHelpers;->binarySearch([III)I
HSPLandroidx/collection/ContainerHelpers;->idealByteArraySize(I)I
HSPLandroidx/collection/ContainerHelpers;->idealIntArraySize(I)I
-PLandroidx/collection/LruCache;->(I)V
+Landroidx/collection/IndexBasedArrayIterator;
+HSPLandroidx/collection/IndexBasedArrayIterator;->(I)V
+HSPLandroidx/collection/IndexBasedArrayIterator;->hasNext()Z
+Landroidx/collection/LruCache;
+HSPLandroidx/collection/LruCache;->(I)V
+PLandroidx/collection/LruCache;->remove(Ljava/lang/Object;)Ljava/lang/Object;
Landroidx/collection/SimpleArrayMap;
HSPLandroidx/collection/SimpleArrayMap;->()V
HSPLandroidx/collection/SimpleArrayMap;->allocArrays(I)V
-HSPLandroidx/collection/SimpleArrayMap;->binarySearchHashes([III)I
+HPLandroidx/collection/SimpleArrayMap;->binarySearchHashes([III)I
+HSPLandroidx/collection/SimpleArrayMap;->clear()V
HSPLandroidx/collection/SimpleArrayMap;->containsKey(Ljava/lang/Object;)Z
HSPLandroidx/collection/SimpleArrayMap;->freeArrays([I[Ljava/lang/Object;I)V
-HSPLandroidx/collection/SimpleArrayMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
-HSPLandroidx/collection/SimpleArrayMap;->getOrDefault(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
-HSPLandroidx/collection/SimpleArrayMap;->indexOf(Ljava/lang/Object;I)I
-HSPLandroidx/collection/SimpleArrayMap;->indexOfKey(Ljava/lang/Object;)I
-PLandroidx/collection/SimpleArrayMap;->isEmpty()Z
-HSPLandroidx/collection/SimpleArrayMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
+HPLandroidx/collection/SimpleArrayMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
+HPLandroidx/collection/SimpleArrayMap;->getOrDefault(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
+HPLandroidx/collection/SimpleArrayMap;->indexOf(Ljava/lang/Object;I)I
+HPLandroidx/collection/SimpleArrayMap;->indexOfKey(Ljava/lang/Object;)I
+HSPLandroidx/collection/SimpleArrayMap;->isEmpty()Z
+HPLandroidx/collection/SimpleArrayMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
Landroidx/collection/SparseArrayCompat;
HSPLandroidx/collection/SparseArrayCompat;->()V
HSPLandroidx/collection/SparseArrayCompat;->()V
@@ -312,7 +335,7 @@ HSPLandroidx/collection/SparseArrayCompat;->(I)V
HSPLandroidx/collection/SparseArrayCompat;->get(I)Ljava/lang/Object;
HPLandroidx/collection/SparseArrayCompat;->get(ILjava/lang/Object;)Ljava/lang/Object;
HSPLandroidx/collection/SparseArrayCompat;->indexOfKey(I)I
-HPLandroidx/collection/SparseArrayCompat;->keyAt(I)I
+HSPLandroidx/collection/SparseArrayCompat;->keyAt(I)I
HSPLandroidx/collection/SparseArrayCompat;->put(ILjava/lang/Object;)V
HSPLandroidx/collection/SparseArrayCompat;->replace(ILjava/lang/Object;)Ljava/lang/Object;
HPLandroidx/collection/SparseArrayCompat;->size()I
@@ -353,14 +376,14 @@ HSPLandroidx/compose/animation/AnimatedContentKt$AnimatedContent$6$1$4$1;->invok
HSPLandroidx/compose/animation/AnimatedContentKt$AnimatedContent$6$1$4$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;
Landroidx/compose/animation/AnimatedContentKt$AnimatedContent$6$1$4$1$invoke$$inlined$onDispose$1;
HSPLandroidx/compose/animation/AnimatedContentKt$AnimatedContent$6$1$4$1$invoke$$inlined$onDispose$1;->(Landroidx/compose/runtime/snapshots/SnapshotStateList;Ljava/lang/Object;Landroidx/compose/animation/AnimatedContentTransitionScopeImpl;)V
-PLandroidx/compose/animation/AnimatedContentKt$AnimatedContent$6$1$4$1$invoke$$inlined$onDispose$1;->dispose()V
+HSPLandroidx/compose/animation/AnimatedContentKt$AnimatedContent$6$1$4$1$invoke$$inlined$onDispose$1;->dispose()V
Landroidx/compose/animation/AnimatedContentKt$AnimatedContent$9;
HPLandroidx/compose/animation/AnimatedContentKt$AnimatedContent$9;->(Landroidx/compose/animation/core/Transition;Landroidx/compose/ui/Modifier;Lkotlin/jvm/functions/Function1;Landroidx/compose/ui/Alignment;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function4;II)V
Landroidx/compose/animation/AnimatedContentKt$SizeTransform$1;
HSPLandroidx/compose/animation/AnimatedContentKt$SizeTransform$1;->()V
HSPLandroidx/compose/animation/AnimatedContentKt$SizeTransform$1;->()V
-PLandroidx/compose/animation/AnimatedContentKt$SizeTransform$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
-PLandroidx/compose/animation/AnimatedContentKt$SizeTransform$1;->invoke-TemP2vQ(JJ)Landroidx/compose/animation/core/SpringSpec;
+HSPLandroidx/compose/animation/AnimatedContentKt$SizeTransform$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
+HSPLandroidx/compose/animation/AnimatedContentKt$SizeTransform$1;->invoke-TemP2vQ(JJ)Landroidx/compose/animation/core/SpringSpec;
Landroidx/compose/animation/AnimatedContentMeasurePolicy;
HSPLandroidx/compose/animation/AnimatedContentMeasurePolicy;->(Landroidx/compose/animation/AnimatedContentTransitionScopeImpl;)V
HSPLandroidx/compose/animation/AnimatedContentMeasurePolicy;->getRootScope()Landroidx/compose/animation/AnimatedContentTransitionScopeImpl;
@@ -382,28 +405,32 @@ HSPLandroidx/compose/animation/AnimatedContentTransitionScopeImpl;->getContentAl
HSPLandroidx/compose/animation/AnimatedContentTransitionScopeImpl;->getInitialState()Ljava/lang/Object;
HSPLandroidx/compose/animation/AnimatedContentTransitionScopeImpl;->getTargetSizeMap$animation_release()Ljava/util/Map;
HSPLandroidx/compose/animation/AnimatedContentTransitionScopeImpl;->getTargetState()Ljava/lang/Object;
-PLandroidx/compose/animation/AnimatedContentTransitionScopeImpl;->setAnimatedSize$animation_release(Landroidx/compose/runtime/State;)V
+HSPLandroidx/compose/animation/AnimatedContentTransitionScopeImpl;->setAnimatedSize$animation_release(Landroidx/compose/runtime/State;)V
HSPLandroidx/compose/animation/AnimatedContentTransitionScopeImpl;->setContentAlignment$animation_release(Landroidx/compose/ui/Alignment;)V
HSPLandroidx/compose/animation/AnimatedContentTransitionScopeImpl;->setLayoutDirection$animation_release(Landroidx/compose/ui/unit/LayoutDirection;)V
HSPLandroidx/compose/animation/AnimatedContentTransitionScopeImpl;->setMeasuredSize-ozmzZPI$animation_release(J)V
Landroidx/compose/animation/AnimatedContentTransitionScopeImpl$ChildData;
HSPLandroidx/compose/animation/AnimatedContentTransitionScopeImpl$ChildData;->(Z)V
-PLandroidx/compose/animation/AnimatedContentTransitionScopeImpl$ChildData;->equals(Ljava/lang/Object;)Z
+HSPLandroidx/compose/animation/AnimatedContentTransitionScopeImpl$ChildData;->equals(Ljava/lang/Object;)Z
HSPLandroidx/compose/animation/AnimatedContentTransitionScopeImpl$ChildData;->isTarget()Z
HSPLandroidx/compose/animation/AnimatedContentTransitionScopeImpl$ChildData;->modifyParentData(Landroidx/compose/ui/unit/Density;Ljava/lang/Object;)Ljava/lang/Object;
HSPLandroidx/compose/animation/AnimatedContentTransitionScopeImpl$ChildData;->setTarget(Z)V
-PLandroidx/compose/animation/AnimatedContentTransitionScopeImpl$SizeModifier;->(Landroidx/compose/animation/AnimatedContentTransitionScopeImpl;Landroidx/compose/animation/core/Transition$DeferredAnimation;Landroidx/compose/runtime/State;)V
-PLandroidx/compose/animation/AnimatedContentTransitionScopeImpl$SizeModifier;->getSizeTransform()Landroidx/compose/runtime/State;
+Landroidx/compose/animation/AnimatedContentTransitionScopeImpl$SizeModifier;
+HSPLandroidx/compose/animation/AnimatedContentTransitionScopeImpl$SizeModifier;->(Landroidx/compose/animation/AnimatedContentTransitionScopeImpl;Landroidx/compose/animation/core/Transition$DeferredAnimation;Landroidx/compose/runtime/State;)V
+HSPLandroidx/compose/animation/AnimatedContentTransitionScopeImpl$SizeModifier;->getSizeTransform()Landroidx/compose/runtime/State;
HPLandroidx/compose/animation/AnimatedContentTransitionScopeImpl$SizeModifier;->measure-3p2s80s(Landroidx/compose/ui/layout/MeasureScope;Landroidx/compose/ui/layout/Measurable;J)Landroidx/compose/ui/layout/MeasureResult;
-PLandroidx/compose/animation/AnimatedContentTransitionScopeImpl$SizeModifier$measure$1;->(Landroidx/compose/ui/layout/Placeable;J)V
-PLandroidx/compose/animation/AnimatedContentTransitionScopeImpl$SizeModifier$measure$1;->invoke(Landroidx/compose/ui/layout/Placeable$PlacementScope;)V
-PLandroidx/compose/animation/AnimatedContentTransitionScopeImpl$SizeModifier$measure$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;
-PLandroidx/compose/animation/AnimatedContentTransitionScopeImpl$SizeModifier$measure$size$1;->(Landroidx/compose/animation/AnimatedContentTransitionScopeImpl;Landroidx/compose/animation/AnimatedContentTransitionScopeImpl$SizeModifier;)V
+Landroidx/compose/animation/AnimatedContentTransitionScopeImpl$SizeModifier$measure$1;
+HSPLandroidx/compose/animation/AnimatedContentTransitionScopeImpl$SizeModifier$measure$1;->(Landroidx/compose/ui/layout/Placeable;J)V
+HSPLandroidx/compose/animation/AnimatedContentTransitionScopeImpl$SizeModifier$measure$1;->invoke(Landroidx/compose/ui/layout/Placeable$PlacementScope;)V
+HSPLandroidx/compose/animation/AnimatedContentTransitionScopeImpl$SizeModifier$measure$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;
+Landroidx/compose/animation/AnimatedContentTransitionScopeImpl$SizeModifier$measure$size$1;
+HSPLandroidx/compose/animation/AnimatedContentTransitionScopeImpl$SizeModifier$measure$size$1;->(Landroidx/compose/animation/AnimatedContentTransitionScopeImpl;Landroidx/compose/animation/AnimatedContentTransitionScopeImpl$SizeModifier;)V
HPLandroidx/compose/animation/AnimatedContentTransitionScopeImpl$SizeModifier$measure$size$1;->invoke(Landroidx/compose/animation/core/Transition$Segment;)Landroidx/compose/animation/core/FiniteAnimationSpec;
-PLandroidx/compose/animation/AnimatedContentTransitionScopeImpl$SizeModifier$measure$size$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;
-PLandroidx/compose/animation/AnimatedContentTransitionScopeImpl$SizeModifier$measure$size$2;->(Landroidx/compose/animation/AnimatedContentTransitionScopeImpl;)V
-PLandroidx/compose/animation/AnimatedContentTransitionScopeImpl$SizeModifier$measure$size$2;->invoke(Ljava/lang/Object;)Ljava/lang/Object;
-HPLandroidx/compose/animation/AnimatedContentTransitionScopeImpl$SizeModifier$measure$size$2;->invoke-YEO4UFw(Ljava/lang/Object;)J
+HSPLandroidx/compose/animation/AnimatedContentTransitionScopeImpl$SizeModifier$measure$size$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;
+Landroidx/compose/animation/AnimatedContentTransitionScopeImpl$SizeModifier$measure$size$2;
+HSPLandroidx/compose/animation/AnimatedContentTransitionScopeImpl$SizeModifier$measure$size$2;->(Landroidx/compose/animation/AnimatedContentTransitionScopeImpl;)V
+HSPLandroidx/compose/animation/AnimatedContentTransitionScopeImpl$SizeModifier$measure$size$2;->invoke(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLandroidx/compose/animation/AnimatedContentTransitionScopeImpl$SizeModifier$measure$size$2;->invoke-YEO4UFw(Ljava/lang/Object;)J
Landroidx/compose/animation/AnimatedEnterExitMeasurePolicy;
HSPLandroidx/compose/animation/AnimatedEnterExitMeasurePolicy;->(Landroidx/compose/animation/AnimatedVisibilityScopeImpl;)V
HPLandroidx/compose/animation/AnimatedEnterExitMeasurePolicy;->measure-3p2s80s(Landroidx/compose/ui/layout/MeasureScope;Ljava/util/List;J)Landroidx/compose/ui/layout/MeasureResult;
@@ -414,7 +441,7 @@ HSPLandroidx/compose/animation/AnimatedEnterExitMeasurePolicy$measure$1;->invoke
Landroidx/compose/animation/AnimatedVisibilityKt;
HPLandroidx/compose/animation/AnimatedVisibilityKt;->AnimatedEnterExitImpl(Landroidx/compose/animation/core/Transition;Lkotlin/jvm/functions/Function1;Landroidx/compose/ui/Modifier;Landroidx/compose/animation/EnterTransition;Landroidx/compose/animation/ExitTransition;Lkotlin/jvm/functions/Function3;Landroidx/compose/runtime/Composer;I)V
HPLandroidx/compose/animation/AnimatedVisibilityKt;->AnimatedVisibility(Landroidx/compose/animation/core/Transition;Lkotlin/jvm/functions/Function1;Landroidx/compose/ui/Modifier;Landroidx/compose/animation/EnterTransition;Landroidx/compose/animation/ExitTransition;Lkotlin/jvm/functions/Function3;Landroidx/compose/runtime/Composer;II)V
-PLandroidx/compose/animation/AnimatedVisibilityKt;->access$AnimatedEnterExitImpl(Landroidx/compose/animation/core/Transition;Lkotlin/jvm/functions/Function1;Landroidx/compose/ui/Modifier;Landroidx/compose/animation/EnterTransition;Landroidx/compose/animation/ExitTransition;Lkotlin/jvm/functions/Function3;Landroidx/compose/runtime/Composer;I)V
+HSPLandroidx/compose/animation/AnimatedVisibilityKt;->access$AnimatedEnterExitImpl(Landroidx/compose/animation/core/Transition;Lkotlin/jvm/functions/Function1;Landroidx/compose/ui/Modifier;Landroidx/compose/animation/EnterTransition;Landroidx/compose/animation/ExitTransition;Lkotlin/jvm/functions/Function3;Landroidx/compose/runtime/Composer;I)V
HPLandroidx/compose/animation/AnimatedVisibilityKt;->targetEnterExit(Landroidx/compose/animation/core/Transition;Lkotlin/jvm/functions/Function1;Ljava/lang/Object;Landroidx/compose/runtime/Composer;I)Landroidx/compose/animation/EnterExitState;
Landroidx/compose/animation/AnimatedVisibilityKt$AnimatedEnterExitImpl$1$1;
HSPLandroidx/compose/animation/AnimatedVisibilityKt$AnimatedEnterExitImpl$1$1;->(Landroidx/compose/animation/core/Transition;Landroidx/compose/runtime/MutableState;Lkotlin/coroutines/Continuation;)V
@@ -430,28 +457,32 @@ HSPLandroidx/compose/animation/AnimatedVisibilityKt$AnimatedEnterExitImpl$1$1$2;
HSPLandroidx/compose/animation/AnimatedVisibilityKt$AnimatedEnterExitImpl$1$1$2;->emit(ZLkotlin/coroutines/Continuation;)Ljava/lang/Object;
Landroidx/compose/animation/AnimatedVisibilityKt$AnimatedEnterExitImpl$2;
HPLandroidx/compose/animation/AnimatedVisibilityKt$AnimatedEnterExitImpl$2;->(Landroidx/compose/animation/core/Transition;Lkotlin/jvm/functions/Function1;Landroidx/compose/ui/Modifier;Landroidx/compose/animation/EnterTransition;Landroidx/compose/animation/ExitTransition;Lkotlin/jvm/functions/Function3;I)V
-PLandroidx/compose/animation/AnimatedVisibilityKt$AnimatedEnterExitImpl$2;->invoke(Landroidx/compose/runtime/Composer;I)V
-PLandroidx/compose/animation/AnimatedVisibilityKt$AnimatedEnterExitImpl$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
+HSPLandroidx/compose/animation/AnimatedVisibilityKt$AnimatedEnterExitImpl$2;->invoke(Landroidx/compose/runtime/Composer;I)V
+HSPLandroidx/compose/animation/AnimatedVisibilityKt$AnimatedEnterExitImpl$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
Landroidx/compose/animation/AnimatedVisibilityScope;
Landroidx/compose/animation/AnimatedVisibilityScopeImpl;
HSPLandroidx/compose/animation/AnimatedVisibilityScopeImpl;->(Landroidx/compose/animation/core/Transition;)V
HSPLandroidx/compose/animation/AnimatedVisibilityScopeImpl;->getTargetSize$animation_release()Landroidx/compose/runtime/MutableState;
-PLandroidx/compose/animation/ColorVectorConverterKt;->()V
-PLandroidx/compose/animation/ColorVectorConverterKt;->getVectorConverter(Landroidx/compose/ui/graphics/Color$Companion;)Lkotlin/jvm/functions/Function1;
-PLandroidx/compose/animation/ColorVectorConverterKt$ColorToVector$1;->()V
-PLandroidx/compose/animation/ColorVectorConverterKt$ColorToVector$1;->()V
-PLandroidx/compose/animation/ColorVectorConverterKt$ColorToVector$1;->invoke(Landroidx/compose/ui/graphics/colorspace/ColorSpace;)Landroidx/compose/animation/core/TwoWayConverter;
-PLandroidx/compose/animation/ColorVectorConverterKt$ColorToVector$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;
-PLandroidx/compose/animation/ColorVectorConverterKt$ColorToVector$1$1;->()V
-PLandroidx/compose/animation/ColorVectorConverterKt$ColorToVector$1$1;->()V
-PLandroidx/compose/animation/ColorVectorConverterKt$ColorToVector$1$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;
+Landroidx/compose/animation/ColorVectorConverterKt;
+HSPLandroidx/compose/animation/ColorVectorConverterKt;->()V
+HSPLandroidx/compose/animation/ColorVectorConverterKt;->getVectorConverter(Landroidx/compose/ui/graphics/Color$Companion;)Lkotlin/jvm/functions/Function1;
+Landroidx/compose/animation/ColorVectorConverterKt$ColorToVector$1;
+HSPLandroidx/compose/animation/ColorVectorConverterKt$ColorToVector$1;->()V
+HSPLandroidx/compose/animation/ColorVectorConverterKt$ColorToVector$1;->()V
+HSPLandroidx/compose/animation/ColorVectorConverterKt$ColorToVector$1;->invoke(Landroidx/compose/ui/graphics/colorspace/ColorSpace;)Landroidx/compose/animation/core/TwoWayConverter;
+HSPLandroidx/compose/animation/ColorVectorConverterKt$ColorToVector$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;
+Landroidx/compose/animation/ColorVectorConverterKt$ColorToVector$1$1;
+HSPLandroidx/compose/animation/ColorVectorConverterKt$ColorToVector$1$1;->()V
+HSPLandroidx/compose/animation/ColorVectorConverterKt$ColorToVector$1$1;->()V
+HSPLandroidx/compose/animation/ColorVectorConverterKt$ColorToVector$1$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;
HPLandroidx/compose/animation/ColorVectorConverterKt$ColorToVector$1$1;->invoke-8_81llA(J)Landroidx/compose/animation/core/AnimationVector4D;
-PLandroidx/compose/animation/ColorVectorConverterKt$ColorToVector$1$2;->(Landroidx/compose/ui/graphics/colorspace/ColorSpace;)V
+Landroidx/compose/animation/ColorVectorConverterKt$ColorToVector$1$2;
+HSPLandroidx/compose/animation/ColorVectorConverterKt$ColorToVector$1$2;->(Landroidx/compose/ui/graphics/colorspace/ColorSpace;)V
Landroidx/compose/animation/ContentTransform;
HSPLandroidx/compose/animation/ContentTransform;->()V
HPLandroidx/compose/animation/ContentTransform;->(Landroidx/compose/animation/EnterTransition;Landroidx/compose/animation/ExitTransition;FLandroidx/compose/animation/SizeTransform;)V
HSPLandroidx/compose/animation/ContentTransform;->(Landroidx/compose/animation/EnterTransition;Landroidx/compose/animation/ExitTransition;FLandroidx/compose/animation/SizeTransform;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
-PLandroidx/compose/animation/ContentTransform;->getInitialContentExit()Landroidx/compose/animation/ExitTransition;
+HSPLandroidx/compose/animation/ContentTransform;->getInitialContentExit()Landroidx/compose/animation/ExitTransition;
HSPLandroidx/compose/animation/ContentTransform;->getSizeTransform()Landroidx/compose/animation/SizeTransform;
HSPLandroidx/compose/animation/ContentTransform;->getTargetContentEnter()Landroidx/compose/animation/EnterTransition;
HSPLandroidx/compose/animation/ContentTransform;->getTargetContentZIndex()F
@@ -459,7 +490,7 @@ Landroidx/compose/animation/EnterExitState;
HSPLandroidx/compose/animation/EnterExitState;->$values()[Landroidx/compose/animation/EnterExitState;
HSPLandroidx/compose/animation/EnterExitState;->()V
HSPLandroidx/compose/animation/EnterExitState;->(Ljava/lang/String;I)V
-PLandroidx/compose/animation/EnterExitState;->values()[Landroidx/compose/animation/EnterExitState;
+HSPLandroidx/compose/animation/EnterExitState;->values()[Landroidx/compose/animation/EnterExitState;
Landroidx/compose/animation/EnterExitTransitionKt;
HSPLandroidx/compose/animation/EnterExitTransitionKt;->()V
HPLandroidx/compose/animation/EnterExitTransitionKt;->access$createModifier$lambda$8(Landroidx/compose/runtime/State;)F
@@ -481,13 +512,16 @@ HSPLandroidx/compose/animation/EnterExitTransitionKt$TransformOriginVectorConver
Landroidx/compose/animation/EnterExitTransitionKt$TransformOriginVectorConverter$2;
HSPLandroidx/compose/animation/EnterExitTransitionKt$TransformOriginVectorConverter$2;->()V
HSPLandroidx/compose/animation/EnterExitTransitionKt$TransformOriginVectorConverter$2;->()V
-PLandroidx/compose/animation/EnterExitTransitionKt$WhenMappings;->()V
-PLandroidx/compose/animation/EnterExitTransitionKt$createModifier$2$1;->(Landroidx/compose/runtime/State;)V
+Landroidx/compose/animation/EnterExitTransitionKt$WhenMappings;
+HSPLandroidx/compose/animation/EnterExitTransitionKt$WhenMappings;->()V
+Landroidx/compose/animation/EnterExitTransitionKt$createModifier$2$1;
+HSPLandroidx/compose/animation/EnterExitTransitionKt$createModifier$2$1;->(Landroidx/compose/runtime/State;)V
HPLandroidx/compose/animation/EnterExitTransitionKt$createModifier$2$1;->invoke(Landroidx/compose/ui/graphics/GraphicsLayerScope;)V
HPLandroidx/compose/animation/EnterExitTransitionKt$createModifier$2$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;
-PLandroidx/compose/animation/EnterExitTransitionKt$createModifier$alpha$2;->(Landroidx/compose/animation/EnterTransition;Landroidx/compose/animation/ExitTransition;)V
+Landroidx/compose/animation/EnterExitTransitionKt$createModifier$alpha$2;
+HSPLandroidx/compose/animation/EnterExitTransitionKt$createModifier$alpha$2;->(Landroidx/compose/animation/EnterTransition;Landroidx/compose/animation/ExitTransition;)V
HPLandroidx/compose/animation/EnterExitTransitionKt$createModifier$alpha$2;->invoke(Landroidx/compose/animation/core/Transition$Segment;Landroidx/compose/runtime/Composer;I)Landroidx/compose/animation/core/FiniteAnimationSpec;
-PLandroidx/compose/animation/EnterExitTransitionKt$createModifier$alpha$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
+HSPLandroidx/compose/animation/EnterExitTransitionKt$createModifier$alpha$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
Landroidx/compose/animation/EnterExitTransitionKt$shrinkExpand$1;
HSPLandroidx/compose/animation/EnterExitTransitionKt$shrinkExpand$1;->(Landroidx/compose/animation/core/Transition;Landroidx/compose/runtime/State;Landroidx/compose/runtime/State;Ljava/lang/String;)V
HSPLandroidx/compose/animation/EnterExitTransitionKt$shrinkExpand$1;->invoke$lambda$1(Landroidx/compose/runtime/MutableState;)Z
@@ -504,7 +538,7 @@ Landroidx/compose/animation/EnterTransition;
HSPLandroidx/compose/animation/EnterTransition;->()V
HSPLandroidx/compose/animation/EnterTransition;->()V
HSPLandroidx/compose/animation/EnterTransition;->(Lkotlin/jvm/internal/DefaultConstructorMarker;)V
-PLandroidx/compose/animation/EnterTransition;->equals(Ljava/lang/Object;)Z
+HSPLandroidx/compose/animation/EnterTransition;->equals(Ljava/lang/Object;)Z
Landroidx/compose/animation/EnterTransition$Companion;
HSPLandroidx/compose/animation/EnterTransition$Companion;->()V
HSPLandroidx/compose/animation/EnterTransition$Companion;->(Lkotlin/jvm/internal/DefaultConstructorMarker;)V
@@ -516,7 +550,7 @@ HSPLandroidx/compose/animation/ExitTransition;->()V
HSPLandroidx/compose/animation/ExitTransition;->()V
HSPLandroidx/compose/animation/ExitTransition;->(Lkotlin/jvm/internal/DefaultConstructorMarker;)V
HSPLandroidx/compose/animation/ExitTransition;->access$getNone$cp()Landroidx/compose/animation/ExitTransition;
-PLandroidx/compose/animation/ExitTransition;->equals(Ljava/lang/Object;)Z
+HSPLandroidx/compose/animation/ExitTransition;->equals(Ljava/lang/Object;)Z
Landroidx/compose/animation/ExitTransition$Companion;
HSPLandroidx/compose/animation/ExitTransition$Companion;->()V
HSPLandroidx/compose/animation/ExitTransition$Companion;->(Lkotlin/jvm/internal/DefaultConstructorMarker;)V
@@ -525,35 +559,41 @@ Landroidx/compose/animation/ExitTransitionImpl;
HSPLandroidx/compose/animation/ExitTransitionImpl;->(Landroidx/compose/animation/TransitionData;)V
HSPLandroidx/compose/animation/ExitTransitionImpl;->getData$animation_release()Landroidx/compose/animation/TransitionData;
Landroidx/compose/animation/Fade;
-HPLandroidx/compose/animation/Fade;->(FLandroidx/compose/animation/core/FiniteAnimationSpec;)V
-PLandroidx/compose/animation/Fade;->equals(Ljava/lang/Object;)Z
-PLandroidx/compose/animation/Fade;->getAlpha()F
-PLandroidx/compose/animation/Fade;->getAnimationSpec()Landroidx/compose/animation/core/FiniteAnimationSpec;
-PLandroidx/compose/animation/FlingCalculator;->(FLandroidx/compose/ui/unit/Density;)V
-PLandroidx/compose/animation/FlingCalculator;->computeDeceleration(Landroidx/compose/ui/unit/Density;)F
-PLandroidx/compose/animation/FlingCalculatorKt;->()V
-PLandroidx/compose/animation/FlingCalculatorKt;->access$computeDeceleration(FF)F
-PLandroidx/compose/animation/FlingCalculatorKt;->computeDeceleration(FF)F
-PLandroidx/compose/animation/LayoutModifierWithPassThroughIntrinsics;->()V
-PLandroidx/compose/animation/SingleValueAnimationKt;->()V
+HSPLandroidx/compose/animation/Fade;->(FLandroidx/compose/animation/core/FiniteAnimationSpec;)V
+HSPLandroidx/compose/animation/Fade;->equals(Ljava/lang/Object;)Z
+HSPLandroidx/compose/animation/Fade;->getAlpha()F
+HSPLandroidx/compose/animation/Fade;->getAnimationSpec()Landroidx/compose/animation/core/FiniteAnimationSpec;
+Landroidx/compose/animation/FlingCalculator;
+HSPLandroidx/compose/animation/FlingCalculator;->(FLandroidx/compose/ui/unit/Density;)V
+HSPLandroidx/compose/animation/FlingCalculator;->computeDeceleration(Landroidx/compose/ui/unit/Density;)F
+Landroidx/compose/animation/FlingCalculatorKt;
+HSPLandroidx/compose/animation/FlingCalculatorKt;->()V
+HSPLandroidx/compose/animation/FlingCalculatorKt;->access$computeDeceleration(FF)F
+HSPLandroidx/compose/animation/FlingCalculatorKt;->computeDeceleration(FF)F
+Landroidx/compose/animation/LayoutModifierWithPassThroughIntrinsics;
+HSPLandroidx/compose/animation/LayoutModifierWithPassThroughIntrinsics;->()V
+Landroidx/compose/animation/SingleValueAnimationKt;
+HSPLandroidx/compose/animation/SingleValueAnimationKt;->()V
HPLandroidx/compose/animation/SingleValueAnimationKt;->animateColorAsState-euL9pac(JLandroidx/compose/animation/core/AnimationSpec;Ljava/lang/String;Lkotlin/jvm/functions/Function1;Landroidx/compose/runtime/Composer;II)Landroidx/compose/runtime/State;
Landroidx/compose/animation/SizeTransform;
Landroidx/compose/animation/SizeTransformImpl;
HSPLandroidx/compose/animation/SizeTransformImpl;->(ZLkotlin/jvm/functions/Function2;)V
-PLandroidx/compose/animation/SizeTransformImpl;->createAnimationSpec-TemP2vQ(JJ)Landroidx/compose/animation/core/FiniteAnimationSpec;
-PLandroidx/compose/animation/SizeTransformImpl;->getClip()Z
-PLandroidx/compose/animation/SplineBasedFloatDecayAnimationSpec;->()V
-PLandroidx/compose/animation/SplineBasedFloatDecayAnimationSpec;->(Landroidx/compose/ui/unit/Density;)V
-PLandroidx/compose/animation/SplineBasedFloatDecayAnimationSpec_androidKt;->()V
-PLandroidx/compose/animation/SplineBasedFloatDecayAnimationSpec_androidKt;->getPlatformFlingScrollFriction()F
+HSPLandroidx/compose/animation/SizeTransformImpl;->createAnimationSpec-TemP2vQ(JJ)Landroidx/compose/animation/core/FiniteAnimationSpec;
+HSPLandroidx/compose/animation/SizeTransformImpl;->getClip()Z
+Landroidx/compose/animation/SplineBasedFloatDecayAnimationSpec;
+HSPLandroidx/compose/animation/SplineBasedFloatDecayAnimationSpec;->()V
+HSPLandroidx/compose/animation/SplineBasedFloatDecayAnimationSpec;->(Landroidx/compose/ui/unit/Density;)V
+Landroidx/compose/animation/SplineBasedFloatDecayAnimationSpec_androidKt;
+HSPLandroidx/compose/animation/SplineBasedFloatDecayAnimationSpec_androidKt;->()V
+HSPLandroidx/compose/animation/SplineBasedFloatDecayAnimationSpec_androidKt;->getPlatformFlingScrollFriction()F
HPLandroidx/compose/animation/SplineBasedFloatDecayAnimationSpec_androidKt;->rememberSplineBasedDecay(Landroidx/compose/runtime/Composer;I)Landroidx/compose/animation/core/DecayAnimationSpec;
Landroidx/compose/animation/TransitionData;
HSPLandroidx/compose/animation/TransitionData;->(Landroidx/compose/animation/Fade;Landroidx/compose/animation/Slide;Landroidx/compose/animation/ChangeSize;Landroidx/compose/animation/Scale;)V
HSPLandroidx/compose/animation/TransitionData;->(Landroidx/compose/animation/Fade;Landroidx/compose/animation/Slide;Landroidx/compose/animation/ChangeSize;Landroidx/compose/animation/Scale;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
-PLandroidx/compose/animation/TransitionData;->equals(Ljava/lang/Object;)Z
+HSPLandroidx/compose/animation/TransitionData;->equals(Ljava/lang/Object;)Z
HSPLandroidx/compose/animation/TransitionData;->getChangeSize()Landroidx/compose/animation/ChangeSize;
-PLandroidx/compose/animation/TransitionData;->getFade()Landroidx/compose/animation/Fade;
-PLandroidx/compose/animation/TransitionData;->getScale()Landroidx/compose/animation/Scale;
+HSPLandroidx/compose/animation/TransitionData;->getFade()Landroidx/compose/animation/Fade;
+HSPLandroidx/compose/animation/TransitionData;->getScale()Landroidx/compose/animation/Scale;
HSPLandroidx/compose/animation/TransitionData;->getSlide()Landroidx/compose/animation/Slide;
Landroidx/compose/animation/core/Animatable;
HSPLandroidx/compose/animation/core/Animatable;->()V
@@ -561,34 +601,17 @@ HPLandroidx/compose/animation/core/Animatable;->(Ljava/lang/Object;Landroi
HSPLandroidx/compose/animation/core/Animatable;->(Ljava/lang/Object;Landroidx/compose/animation/core/TwoWayConverter;Ljava/lang/Object;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
HSPLandroidx/compose/animation/core/Animatable;->access$clampToBounds(Landroidx/compose/animation/core/Animatable;Ljava/lang/Object;)Ljava/lang/Object;
HSPLandroidx/compose/animation/core/Animatable;->access$endAnimation(Landroidx/compose/animation/core/Animatable;)V
-HSPLandroidx/compose/animation/core/Animatable;->access$setRunning(Landroidx/compose/animation/core/Animatable;Z)V
HSPLandroidx/compose/animation/core/Animatable;->access$setTargetValue(Landroidx/compose/animation/core/Animatable;Ljava/lang/Object;)V
-HSPLandroidx/compose/animation/core/Animatable;->animateTo$default(Landroidx/compose/animation/core/Animatable;Ljava/lang/Object;Landroidx/compose/animation/core/AnimationSpec;Ljava/lang/Object;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
-HSPLandroidx/compose/animation/core/Animatable;->animateTo(Ljava/lang/Object;Landroidx/compose/animation/core/AnimationSpec;Ljava/lang/Object;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
HPLandroidx/compose/animation/core/Animatable;->asState()Landroidx/compose/runtime/State;
HSPLandroidx/compose/animation/core/Animatable;->clampToBounds(Ljava/lang/Object;)Ljava/lang/Object;
HPLandroidx/compose/animation/core/Animatable;->createVector(Ljava/lang/Object;F)Landroidx/compose/animation/core/AnimationVector;
HSPLandroidx/compose/animation/core/Animatable;->endAnimation()V
HSPLandroidx/compose/animation/core/Animatable;->getInternalState$animation_core_release()Landroidx/compose/animation/core/AnimationState;
HSPLandroidx/compose/animation/core/Animatable;->getTargetValue()Ljava/lang/Object;
-HSPLandroidx/compose/animation/core/Animatable;->getTypeConverter()Landroidx/compose/animation/core/TwoWayConverter;
HPLandroidx/compose/animation/core/Animatable;->getValue()Ljava/lang/Object;
-HSPLandroidx/compose/animation/core/Animatable;->getVelocity()Ljava/lang/Object;
-HSPLandroidx/compose/animation/core/Animatable;->getVelocityVector()Landroidx/compose/animation/core/AnimationVector;
-HSPLandroidx/compose/animation/core/Animatable;->runAnimation(Landroidx/compose/animation/core/Animation;Ljava/lang/Object;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
HSPLandroidx/compose/animation/core/Animatable;->setRunning(Z)V
HSPLandroidx/compose/animation/core/Animatable;->setTargetValue(Ljava/lang/Object;)V
HSPLandroidx/compose/animation/core/Animatable;->snapTo(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
-Landroidx/compose/animation/core/Animatable$runAnimation$2;
-HSPLandroidx/compose/animation/core/Animatable$runAnimation$2;->(Landroidx/compose/animation/core/Animatable;Ljava/lang/Object;Landroidx/compose/animation/core/Animation;JLkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;)V
-HSPLandroidx/compose/animation/core/Animatable$runAnimation$2;->create(Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;
-HSPLandroidx/compose/animation/core/Animatable$runAnimation$2;->invoke(Ljava/lang/Object;)Ljava/lang/Object;
-HSPLandroidx/compose/animation/core/Animatable$runAnimation$2;->invoke(Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
-HSPLandroidx/compose/animation/core/Animatable$runAnimation$2;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;
-Landroidx/compose/animation/core/Animatable$runAnimation$2$1;
-HSPLandroidx/compose/animation/core/Animatable$runAnimation$2$1;->(Landroidx/compose/animation/core/Animatable;Landroidx/compose/animation/core/AnimationState;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/internal/Ref$BooleanRef;)V
-HSPLandroidx/compose/animation/core/Animatable$runAnimation$2$1;->invoke(Landroidx/compose/animation/core/AnimationScope;)V
-HSPLandroidx/compose/animation/core/Animatable$runAnimation$2$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;
Landroidx/compose/animation/core/Animatable$snapTo$2;
HSPLandroidx/compose/animation/core/Animatable$snapTo$2;->(Landroidx/compose/animation/core/Animatable;Ljava/lang/Object;Lkotlin/coroutines/Continuation;)V
HSPLandroidx/compose/animation/core/Animatable$snapTo$2;->create(Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;
@@ -598,50 +621,31 @@ HPLandroidx/compose/animation/core/Animatable$snapTo$2;->invokeSuspend(Ljava/lan
Landroidx/compose/animation/core/AnimatableKt;
HSPLandroidx/compose/animation/core/AnimatableKt;->Animatable$default(FFILjava/lang/Object;)Landroidx/compose/animation/core/Animatable;
HPLandroidx/compose/animation/core/AnimatableKt;->Animatable(FF)Landroidx/compose/animation/core/Animatable;
-PLandroidx/compose/animation/core/AnimateAsStateKt;->()V
+Landroidx/compose/animation/core/AnimateAsStateKt;
+HSPLandroidx/compose/animation/core/AnimateAsStateKt;->()V
HPLandroidx/compose/animation/core/AnimateAsStateKt;->animateDpAsState-AjpBEmI(FLandroidx/compose/animation/core/AnimationSpec;Ljava/lang/String;Lkotlin/jvm/functions/Function1;Landroidx/compose/runtime/Composer;II)Landroidx/compose/runtime/State;
HPLandroidx/compose/animation/core/AnimateAsStateKt;->animateValueAsState(Ljava/lang/Object;Landroidx/compose/animation/core/TwoWayConverter;Landroidx/compose/animation/core/AnimationSpec;Ljava/lang/Object;Ljava/lang/String;Lkotlin/jvm/functions/Function1;Landroidx/compose/runtime/Composer;II)Landroidx/compose/runtime/State;
-PLandroidx/compose/animation/core/AnimateAsStateKt$animateValueAsState$2;->(Lkotlinx/coroutines/channels/Channel;Ljava/lang/Object;)V
-PLandroidx/compose/animation/core/AnimateAsStateKt$animateValueAsState$2;->invoke()Ljava/lang/Object;
-PLandroidx/compose/animation/core/AnimateAsStateKt$animateValueAsState$2;->invoke()V
-PLandroidx/compose/animation/core/AnimateAsStateKt$animateValueAsState$3;->(Lkotlinx/coroutines/channels/Channel;Landroidx/compose/animation/core/Animatable;Landroidx/compose/runtime/State;Landroidx/compose/runtime/State;Lkotlin/coroutines/Continuation;)V
-PLandroidx/compose/animation/core/AnimateAsStateKt$animateValueAsState$3;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;
+Landroidx/compose/animation/core/AnimateAsStateKt$animateValueAsState$2;
+HSPLandroidx/compose/animation/core/AnimateAsStateKt$animateValueAsState$2;->(Lkotlinx/coroutines/channels/Channel;Ljava/lang/Object;)V
+HSPLandroidx/compose/animation/core/AnimateAsStateKt$animateValueAsState$2;->invoke()Ljava/lang/Object;
+HSPLandroidx/compose/animation/core/AnimateAsStateKt$animateValueAsState$2;->invoke()V
+Landroidx/compose/animation/core/AnimateAsStateKt$animateValueAsState$3;
+HSPLandroidx/compose/animation/core/AnimateAsStateKt$animateValueAsState$3;->(Lkotlinx/coroutines/channels/Channel;Landroidx/compose/animation/core/Animatable;Landroidx/compose/runtime/State;Landroidx/compose/runtime/State;Lkotlin/coroutines/Continuation;)V
+HSPLandroidx/compose/animation/core/AnimateAsStateKt$animateValueAsState$3;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;
HPLandroidx/compose/animation/core/AnimateAsStateKt$animateValueAsState$3;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;
+Landroidx/compose/animation/core/AnimateAsStateKt$animateValueAsState$3$1;
HPLandroidx/compose/animation/core/AnimateAsStateKt$animateValueAsState$3$1;->(Ljava/lang/Object;Landroidx/compose/animation/core/Animatable;Landroidx/compose/runtime/State;Landroidx/compose/runtime/State;Lkotlin/coroutines/Continuation;)V
HPLandroidx/compose/animation/core/AnimateAsStateKt$animateValueAsState$3$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;
HPLandroidx/compose/animation/core/AnimateAsStateKt$animateValueAsState$3$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;
Landroidx/compose/animation/core/Animation;
HPLandroidx/compose/animation/core/Animation;->isFinishedFromNanos(J)Z
-Landroidx/compose/animation/core/AnimationEndReason;
-HSPLandroidx/compose/animation/core/AnimationEndReason;->$values()[Landroidx/compose/animation/core/AnimationEndReason;
-HSPLandroidx/compose/animation/core/AnimationEndReason;->()V
-HSPLandroidx/compose/animation/core/AnimationEndReason;->(Ljava/lang/String;I)V
-Landroidx/compose/animation/core/AnimationKt;
-HSPLandroidx/compose/animation/core/AnimationKt;->TargetBasedAnimation(Landroidx/compose/animation/core/AnimationSpec;Landroidx/compose/animation/core/TwoWayConverter;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Landroidx/compose/animation/core/TargetBasedAnimation;
-Landroidx/compose/animation/core/AnimationResult;
-HSPLandroidx/compose/animation/core/AnimationResult;->()V
-HSPLandroidx/compose/animation/core/AnimationResult;->(Landroidx/compose/animation/core/AnimationState;Landroidx/compose/animation/core/AnimationEndReason;)V
-Landroidx/compose/animation/core/AnimationScope;
-HSPLandroidx/compose/animation/core/AnimationScope;->()V
-HSPLandroidx/compose/animation/core/AnimationScope;->(Ljava/lang/Object;Landroidx/compose/animation/core/TwoWayConverter;Landroidx/compose/animation/core/AnimationVector;JLjava/lang/Object;JZLkotlin/jvm/functions/Function0;)V
-HSPLandroidx/compose/animation/core/AnimationScope;->getFinishedTimeNanos()J
-HSPLandroidx/compose/animation/core/AnimationScope;->getLastFrameTimeNanos()J
-HSPLandroidx/compose/animation/core/AnimationScope;->getStartTimeNanos()J
-HSPLandroidx/compose/animation/core/AnimationScope;->getValue()Ljava/lang/Object;
-HSPLandroidx/compose/animation/core/AnimationScope;->getVelocityVector()Landroidx/compose/animation/core/AnimationVector;
-HSPLandroidx/compose/animation/core/AnimationScope;->isRunning()Z
-HSPLandroidx/compose/animation/core/AnimationScope;->setFinishedTimeNanos$animation_core_release(J)V
-HSPLandroidx/compose/animation/core/AnimationScope;->setLastFrameTimeNanos$animation_core_release(J)V
-HSPLandroidx/compose/animation/core/AnimationScope;->setRunning$animation_core_release(Z)V
-HSPLandroidx/compose/animation/core/AnimationScope;->setValue$animation_core_release(Ljava/lang/Object;)V
-HSPLandroidx/compose/animation/core/AnimationScope;->setVelocityVector$animation_core_release(Landroidx/compose/animation/core/AnimationVector;)V
Landroidx/compose/animation/core/AnimationSpec;
Landroidx/compose/animation/core/AnimationSpecKt;
-PLandroidx/compose/animation/core/AnimationSpecKt;->access$convert(Landroidx/compose/animation/core/TwoWayConverter;Ljava/lang/Object;)Landroidx/compose/animation/core/AnimationVector;
-PLandroidx/compose/animation/core/AnimationSpecKt;->convert(Landroidx/compose/animation/core/TwoWayConverter;Ljava/lang/Object;)Landroidx/compose/animation/core/AnimationVector;
-PLandroidx/compose/animation/core/AnimationSpecKt;->infiniteRepeatable-9IiC70o$default(Landroidx/compose/animation/core/DurationBasedAnimationSpec;Landroidx/compose/animation/core/RepeatMode;JILjava/lang/Object;)Landroidx/compose/animation/core/InfiniteRepeatableSpec;
-PLandroidx/compose/animation/core/AnimationSpecKt;->infiniteRepeatable-9IiC70o(Landroidx/compose/animation/core/DurationBasedAnimationSpec;Landroidx/compose/animation/core/RepeatMode;J)Landroidx/compose/animation/core/InfiniteRepeatableSpec;
-PLandroidx/compose/animation/core/AnimationSpecKt;->keyframes(Lkotlin/jvm/functions/Function1;)Landroidx/compose/animation/core/KeyframesSpec;
+HSPLandroidx/compose/animation/core/AnimationSpecKt;->access$convert(Landroidx/compose/animation/core/TwoWayConverter;Ljava/lang/Object;)Landroidx/compose/animation/core/AnimationVector;
+HSPLandroidx/compose/animation/core/AnimationSpecKt;->convert(Landroidx/compose/animation/core/TwoWayConverter;Ljava/lang/Object;)Landroidx/compose/animation/core/AnimationVector;
+HSPLandroidx/compose/animation/core/AnimationSpecKt;->infiniteRepeatable-9IiC70o$default(Landroidx/compose/animation/core/DurationBasedAnimationSpec;Landroidx/compose/animation/core/RepeatMode;JILjava/lang/Object;)Landroidx/compose/animation/core/InfiniteRepeatableSpec;
+HSPLandroidx/compose/animation/core/AnimationSpecKt;->infiniteRepeatable-9IiC70o(Landroidx/compose/animation/core/DurationBasedAnimationSpec;Landroidx/compose/animation/core/RepeatMode;J)Landroidx/compose/animation/core/InfiniteRepeatableSpec;
+HSPLandroidx/compose/animation/core/AnimationSpecKt;->keyframes(Lkotlin/jvm/functions/Function1;)Landroidx/compose/animation/core/KeyframesSpec;
HSPLandroidx/compose/animation/core/AnimationSpecKt;->spring$default(FFLjava/lang/Object;ILjava/lang/Object;)Landroidx/compose/animation/core/SpringSpec;
HPLandroidx/compose/animation/core/AnimationSpecKt;->spring(FFLjava/lang/Object;)Landroidx/compose/animation/core/SpringSpec;
HSPLandroidx/compose/animation/core/AnimationSpecKt;->tween$default(IILandroidx/compose/animation/core/Easing;ILjava/lang/Object;)Landroidx/compose/animation/core/TweenSpec;
@@ -650,19 +654,11 @@ Landroidx/compose/animation/core/AnimationState;
HSPLandroidx/compose/animation/core/AnimationState;->()V
HPLandroidx/compose/animation/core/AnimationState;->(Landroidx/compose/animation/core/TwoWayConverter;Ljava/lang/Object;Landroidx/compose/animation/core/AnimationVector;JJZ)V
HSPLandroidx/compose/animation/core/AnimationState;->(Landroidx/compose/animation/core/TwoWayConverter;Ljava/lang/Object;Landroidx/compose/animation/core/AnimationVector;JJZILkotlin/jvm/internal/DefaultConstructorMarker;)V
-HSPLandroidx/compose/animation/core/AnimationState;->getLastFrameTimeNanos()J
-HSPLandroidx/compose/animation/core/AnimationState;->getTypeConverter()Landroidx/compose/animation/core/TwoWayConverter;
HPLandroidx/compose/animation/core/AnimationState;->getValue()Ljava/lang/Object;
HSPLandroidx/compose/animation/core/AnimationState;->getVelocityVector()Landroidx/compose/animation/core/AnimationVector;
-HSPLandroidx/compose/animation/core/AnimationState;->isRunning()Z
-HSPLandroidx/compose/animation/core/AnimationState;->setFinishedTimeNanos$animation_core_release(J)V
HSPLandroidx/compose/animation/core/AnimationState;->setLastFrameTimeNanos$animation_core_release(J)V
-HSPLandroidx/compose/animation/core/AnimationState;->setRunning$animation_core_release(Z)V
HSPLandroidx/compose/animation/core/AnimationState;->setValue$animation_core_release(Ljava/lang/Object;)V
-HSPLandroidx/compose/animation/core/AnimationState;->setVelocityVector$animation_core_release(Landroidx/compose/animation/core/AnimationVector;)V
Landroidx/compose/animation/core/AnimationStateKt;
-HSPLandroidx/compose/animation/core/AnimationStateKt;->copy$default(Landroidx/compose/animation/core/AnimationState;Ljava/lang/Object;Landroidx/compose/animation/core/AnimationVector;JJZILjava/lang/Object;)Landroidx/compose/animation/core/AnimationState;
-HSPLandroidx/compose/animation/core/AnimationStateKt;->copy(Landroidx/compose/animation/core/AnimationState;Ljava/lang/Object;Landroidx/compose/animation/core/AnimationVector;JJZ)Landroidx/compose/animation/core/AnimationState;
HPLandroidx/compose/animation/core/AnimationStateKt;->createZeroVectorFrom(Landroidx/compose/animation/core/TwoWayConverter;Ljava/lang/Object;)Landroidx/compose/animation/core/AnimationVector;
Landroidx/compose/animation/core/AnimationVector;
HSPLandroidx/compose/animation/core/AnimationVector;->()V
@@ -679,41 +675,47 @@ HPLandroidx/compose/animation/core/AnimationVector1D;->newVector$animation_core_
HPLandroidx/compose/animation/core/AnimationVector1D;->newVector$animation_core_release()Landroidx/compose/animation/core/AnimationVector;
HSPLandroidx/compose/animation/core/AnimationVector1D;->reset$animation_core_release()V
HPLandroidx/compose/animation/core/AnimationVector1D;->set$animation_core_release(IF)V
-PLandroidx/compose/animation/core/AnimationVector2D;->()V
-PLandroidx/compose/animation/core/AnimationVector2D;->(FF)V
-PLandroidx/compose/animation/core/AnimationVector2D;->get$animation_core_release(I)F
-PLandroidx/compose/animation/core/AnimationVector2D;->getSize$animation_core_release()I
-PLandroidx/compose/animation/core/AnimationVector2D;->getV1()F
-PLandroidx/compose/animation/core/AnimationVector2D;->getV2()F
-PLandroidx/compose/animation/core/AnimationVector2D;->newVector$animation_core_release()Landroidx/compose/animation/core/AnimationVector2D;
-PLandroidx/compose/animation/core/AnimationVector2D;->newVector$animation_core_release()Landroidx/compose/animation/core/AnimationVector;
-PLandroidx/compose/animation/core/AnimationVector2D;->set$animation_core_release(IF)V
-PLandroidx/compose/animation/core/AnimationVector4D;->()V
+Landroidx/compose/animation/core/AnimationVector2D;
+HSPLandroidx/compose/animation/core/AnimationVector2D;->()V
+HSPLandroidx/compose/animation/core/AnimationVector2D;->(FF)V
+HSPLandroidx/compose/animation/core/AnimationVector2D;->get$animation_core_release(I)F
+HSPLandroidx/compose/animation/core/AnimationVector2D;->getSize$animation_core_release()I
+HSPLandroidx/compose/animation/core/AnimationVector2D;->getV1()F
+HSPLandroidx/compose/animation/core/AnimationVector2D;->getV2()F
+HSPLandroidx/compose/animation/core/AnimationVector2D;->newVector$animation_core_release()Landroidx/compose/animation/core/AnimationVector2D;
+HSPLandroidx/compose/animation/core/AnimationVector2D;->newVector$animation_core_release()Landroidx/compose/animation/core/AnimationVector;
+HSPLandroidx/compose/animation/core/AnimationVector2D;->set$animation_core_release(IF)V
+Landroidx/compose/animation/core/AnimationVector4D;
+HSPLandroidx/compose/animation/core/AnimationVector4D;->()V
HPLandroidx/compose/animation/core/AnimationVector4D;->(FFFF)V
-PLandroidx/compose/animation/core/AnimationVector4D;->get$animation_core_release(I)F
-PLandroidx/compose/animation/core/AnimationVector4D;->getSize$animation_core_release()I
-PLandroidx/compose/animation/core/AnimationVector4D;->newVector$animation_core_release()Landroidx/compose/animation/core/AnimationVector4D;
-PLandroidx/compose/animation/core/AnimationVector4D;->newVector$animation_core_release()Landroidx/compose/animation/core/AnimationVector;
-PLandroidx/compose/animation/core/AnimationVector4D;->set$animation_core_release(IF)V
+HSPLandroidx/compose/animation/core/AnimationVector4D;->get$animation_core_release(I)F
+HSPLandroidx/compose/animation/core/AnimationVector4D;->getSize$animation_core_release()I
+HSPLandroidx/compose/animation/core/AnimationVector4D;->newVector$animation_core_release()Landroidx/compose/animation/core/AnimationVector4D;
+HSPLandroidx/compose/animation/core/AnimationVector4D;->newVector$animation_core_release()Landroidx/compose/animation/core/AnimationVector;
+HSPLandroidx/compose/animation/core/AnimationVector4D;->set$animation_core_release(IF)V
Landroidx/compose/animation/core/AnimationVectorsKt;
HPLandroidx/compose/animation/core/AnimationVectorsKt;->copy(Landroidx/compose/animation/core/AnimationVector;)Landroidx/compose/animation/core/AnimationVector;
-HSPLandroidx/compose/animation/core/AnimationVectorsKt;->copyFrom(Landroidx/compose/animation/core/AnimationVector;Landroidx/compose/animation/core/AnimationVector;)V
HPLandroidx/compose/animation/core/AnimationVectorsKt;->newInstance(Landroidx/compose/animation/core/AnimationVector;)Landroidx/compose/animation/core/AnimationVector;
Landroidx/compose/animation/core/Animations;
-PLandroidx/compose/animation/core/ComplexDouble;->(DD)V
-PLandroidx/compose/animation/core/ComplexDouble;->access$get_imaginary$p(Landroidx/compose/animation/core/ComplexDouble;)D
-PLandroidx/compose/animation/core/ComplexDouble;->access$get_real$p(Landroidx/compose/animation/core/ComplexDouble;)D
-PLandroidx/compose/animation/core/ComplexDouble;->access$set_imaginary$p(Landroidx/compose/animation/core/ComplexDouble;D)V
-PLandroidx/compose/animation/core/ComplexDouble;->access$set_real$p(Landroidx/compose/animation/core/ComplexDouble;D)V
-PLandroidx/compose/animation/core/ComplexDoubleKt;->complexSqrt(D)Landroidx/compose/animation/core/ComplexDouble;
+Landroidx/compose/animation/core/ComplexDouble;
+HSPLandroidx/compose/animation/core/ComplexDouble;->(DD)V
+HSPLandroidx/compose/animation/core/ComplexDouble;->access$get_imaginary$p(Landroidx/compose/animation/core/ComplexDouble;)D
+HSPLandroidx/compose/animation/core/ComplexDouble;->access$get_real$p(Landroidx/compose/animation/core/ComplexDouble;)D
+HSPLandroidx/compose/animation/core/ComplexDouble;->access$set_imaginary$p(Landroidx/compose/animation/core/ComplexDouble;D)V
+HSPLandroidx/compose/animation/core/ComplexDouble;->access$set_real$p(Landroidx/compose/animation/core/ComplexDouble;D)V
+Landroidx/compose/animation/core/ComplexDoubleKt;
+HSPLandroidx/compose/animation/core/ComplexDoubleKt;->complexSqrt(D)Landroidx/compose/animation/core/ComplexDouble;
Landroidx/compose/animation/core/CubicBezierEasing;
HSPLandroidx/compose/animation/core/CubicBezierEasing;->()V
HSPLandroidx/compose/animation/core/CubicBezierEasing;->(FFFF)V
HPLandroidx/compose/animation/core/CubicBezierEasing;->equals(Ljava/lang/Object;)Z
HPLandroidx/compose/animation/core/CubicBezierEasing;->evaluateCubic(FFF)F
HPLandroidx/compose/animation/core/CubicBezierEasing;->transform(F)F
-PLandroidx/compose/animation/core/DecayAnimationSpecImpl;->(Landroidx/compose/animation/core/FloatDecayAnimationSpec;)V
-PLandroidx/compose/animation/core/DecayAnimationSpecKt;->generateDecayAnimationSpec(Landroidx/compose/animation/core/FloatDecayAnimationSpec;)Landroidx/compose/animation/core/DecayAnimationSpec;
+Landroidx/compose/animation/core/DecayAnimationSpec;
+Landroidx/compose/animation/core/DecayAnimationSpecImpl;
+HSPLandroidx/compose/animation/core/DecayAnimationSpecImpl;->(Landroidx/compose/animation/core/FloatDecayAnimationSpec;)V
+Landroidx/compose/animation/core/DecayAnimationSpecKt;
+HSPLandroidx/compose/animation/core/DecayAnimationSpecKt;->generateDecayAnimationSpec(Landroidx/compose/animation/core/FloatDecayAnimationSpec;)Landroidx/compose/animation/core/DecayAnimationSpec;
Landroidx/compose/animation/core/DurationBasedAnimationSpec;
Landroidx/compose/animation/core/Easing;
Landroidx/compose/animation/core/EasingKt;
@@ -723,82 +725,98 @@ HSPLandroidx/compose/animation/core/EasingKt;->getLinearEasing()Landroidx/compos
Landroidx/compose/animation/core/EasingKt$LinearEasing$1;
HSPLandroidx/compose/animation/core/EasingKt$LinearEasing$1;->()V
HSPLandroidx/compose/animation/core/EasingKt$LinearEasing$1;->()V
-PLandroidx/compose/animation/core/EasingKt$LinearEasing$1;->transform(F)F
+HSPLandroidx/compose/animation/core/EasingKt$LinearEasing$1;->transform(F)F
Landroidx/compose/animation/core/FiniteAnimationSpec;
Landroidx/compose/animation/core/FloatAnimationSpec;
-PLandroidx/compose/animation/core/FloatSpringSpec;->()V
+Landroidx/compose/animation/core/FloatDecayAnimationSpec;
+Landroidx/compose/animation/core/FloatSpringSpec;
+HSPLandroidx/compose/animation/core/FloatSpringSpec;->()V
HPLandroidx/compose/animation/core/FloatSpringSpec;->(FFF)V
-PLandroidx/compose/animation/core/FloatSpringSpec;->(FFFILkotlin/jvm/internal/DefaultConstructorMarker;)V
+HSPLandroidx/compose/animation/core/FloatSpringSpec;->(FFFILkotlin/jvm/internal/DefaultConstructorMarker;)V
HPLandroidx/compose/animation/core/FloatSpringSpec;->getDurationNanos(FFF)J
-PLandroidx/compose/animation/core/FloatSpringSpec;->getEndVelocity(FFF)F
+HSPLandroidx/compose/animation/core/FloatSpringSpec;->getEndVelocity(FFF)F
Landroidx/compose/animation/core/FloatTweenSpec;
HSPLandroidx/compose/animation/core/FloatTweenSpec;->()V
HSPLandroidx/compose/animation/core/FloatTweenSpec;->(IILandroidx/compose/animation/core/Easing;)V
HPLandroidx/compose/animation/core/FloatTweenSpec;->clampPlayTime(J)J
HPLandroidx/compose/animation/core/FloatTweenSpec;->getValueFromNanos(JFFF)F
HPLandroidx/compose/animation/core/FloatTweenSpec;->getVelocityFromNanos(JFFF)F
-PLandroidx/compose/animation/core/InfiniteAnimationPolicyKt;->withInfiniteAnimationFrameNanos(Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
-PLandroidx/compose/animation/core/InfiniteRepeatableSpec;->()V
-PLandroidx/compose/animation/core/InfiniteRepeatableSpec;->(Landroidx/compose/animation/core/DurationBasedAnimationSpec;Landroidx/compose/animation/core/RepeatMode;J)V
-PLandroidx/compose/animation/core/InfiniteRepeatableSpec;->(Landroidx/compose/animation/core/DurationBasedAnimationSpec;Landroidx/compose/animation/core/RepeatMode;JLkotlin/jvm/internal/DefaultConstructorMarker;)V
-PLandroidx/compose/animation/core/InfiniteRepeatableSpec;->vectorize(Landroidx/compose/animation/core/TwoWayConverter;)Landroidx/compose/animation/core/VectorizedAnimationSpec;
-PLandroidx/compose/animation/core/InfiniteTransition;->()V
-PLandroidx/compose/animation/core/InfiniteTransition;->(Ljava/lang/String;)V
-PLandroidx/compose/animation/core/InfiniteTransition;->access$getStartTimeNanos$p(Landroidx/compose/animation/core/InfiniteTransition;)J
-PLandroidx/compose/animation/core/InfiniteTransition;->access$get_animations$p(Landroidx/compose/animation/core/InfiniteTransition;)Landroidx/compose/runtime/collection/MutableVector;
-PLandroidx/compose/animation/core/InfiniteTransition;->access$onFrame(Landroidx/compose/animation/core/InfiniteTransition;J)V
-PLandroidx/compose/animation/core/InfiniteTransition;->access$setRefreshChildNeeded(Landroidx/compose/animation/core/InfiniteTransition;Z)V
-PLandroidx/compose/animation/core/InfiniteTransition;->access$setStartTimeNanos$p(Landroidx/compose/animation/core/InfiniteTransition;J)V
-PLandroidx/compose/animation/core/InfiniteTransition;->addAnimation$animation_core_release(Landroidx/compose/animation/core/InfiniteTransition$TransitionAnimationState;)V
-PLandroidx/compose/animation/core/InfiniteTransition;->isRunning()Z
+Landroidx/compose/animation/core/InfiniteAnimationPolicyKt;
+HSPLandroidx/compose/animation/core/InfiniteAnimationPolicyKt;->withInfiniteAnimationFrameNanos(Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
+Landroidx/compose/animation/core/InfiniteRepeatableSpec;
+HSPLandroidx/compose/animation/core/InfiniteRepeatableSpec;->()V
+HSPLandroidx/compose/animation/core/InfiniteRepeatableSpec;->(Landroidx/compose/animation/core/DurationBasedAnimationSpec;Landroidx/compose/animation/core/RepeatMode;J)V
+HSPLandroidx/compose/animation/core/InfiniteRepeatableSpec;->(Landroidx/compose/animation/core/DurationBasedAnimationSpec;Landroidx/compose/animation/core/RepeatMode;JLkotlin/jvm/internal/DefaultConstructorMarker;)V
+HSPLandroidx/compose/animation/core/InfiniteRepeatableSpec;->vectorize(Landroidx/compose/animation/core/TwoWayConverter;)Landroidx/compose/animation/core/VectorizedAnimationSpec;
+Landroidx/compose/animation/core/InfiniteTransition;
+HSPLandroidx/compose/animation/core/InfiniteTransition;->()V
+HSPLandroidx/compose/animation/core/InfiniteTransition;->(Ljava/lang/String;)V
+HSPLandroidx/compose/animation/core/InfiniteTransition;->access$getStartTimeNanos$p(Landroidx/compose/animation/core/InfiniteTransition;)J
+HSPLandroidx/compose/animation/core/InfiniteTransition;->access$get_animations$p(Landroidx/compose/animation/core/InfiniteTransition;)Landroidx/compose/runtime/collection/MutableVector;
+HSPLandroidx/compose/animation/core/InfiniteTransition;->access$onFrame(Landroidx/compose/animation/core/InfiniteTransition;J)V
+HSPLandroidx/compose/animation/core/InfiniteTransition;->access$setRefreshChildNeeded(Landroidx/compose/animation/core/InfiniteTransition;Z)V
+HSPLandroidx/compose/animation/core/InfiniteTransition;->access$setStartTimeNanos$p(Landroidx/compose/animation/core/InfiniteTransition;J)V
+HSPLandroidx/compose/animation/core/InfiniteTransition;->addAnimation$animation_core_release(Landroidx/compose/animation/core/InfiniteTransition$TransitionAnimationState;)V
+HSPLandroidx/compose/animation/core/InfiniteTransition;->isRunning()Z
HPLandroidx/compose/animation/core/InfiniteTransition;->onFrame(J)V
-PLandroidx/compose/animation/core/InfiniteTransition;->removeAnimation$animation_core_release(Landroidx/compose/animation/core/InfiniteTransition$TransitionAnimationState;)V
-PLandroidx/compose/animation/core/InfiniteTransition;->run$animation_core_release(Landroidx/compose/runtime/Composer;I)V
-PLandroidx/compose/animation/core/InfiniteTransition;->setRefreshChildNeeded(Z)V
-PLandroidx/compose/animation/core/InfiniteTransition;->setRunning(Z)V
-PLandroidx/compose/animation/core/InfiniteTransition$TransitionAnimationState;->(Landroidx/compose/animation/core/InfiniteTransition;Ljava/lang/Object;Ljava/lang/Object;Landroidx/compose/animation/core/TwoWayConverter;Landroidx/compose/animation/core/AnimationSpec;Ljava/lang/String;)V
-PLandroidx/compose/animation/core/InfiniteTransition$TransitionAnimationState;->getInitialValue$animation_core_release()Ljava/lang/Object;
-PLandroidx/compose/animation/core/InfiniteTransition$TransitionAnimationState;->getTargetValue$animation_core_release()Ljava/lang/Object;
-PLandroidx/compose/animation/core/InfiniteTransition$TransitionAnimationState;->getValue()Ljava/lang/Object;
-PLandroidx/compose/animation/core/InfiniteTransition$TransitionAnimationState;->isFinished$animation_core_release()Z
+HSPLandroidx/compose/animation/core/InfiniteTransition;->removeAnimation$animation_core_release(Landroidx/compose/animation/core/InfiniteTransition$TransitionAnimationState;)V
+HSPLandroidx/compose/animation/core/InfiniteTransition;->run$animation_core_release(Landroidx/compose/runtime/Composer;I)V
+HSPLandroidx/compose/animation/core/InfiniteTransition;->setRefreshChildNeeded(Z)V
+HSPLandroidx/compose/animation/core/InfiniteTransition;->setRunning(Z)V
+Landroidx/compose/animation/core/InfiniteTransition$TransitionAnimationState;
+HSPLandroidx/compose/animation/core/InfiniteTransition$TransitionAnimationState;->(Landroidx/compose/animation/core/InfiniteTransition;Ljava/lang/Object;Ljava/lang/Object;Landroidx/compose/animation/core/TwoWayConverter;Landroidx/compose/animation/core/AnimationSpec;Ljava/lang/String;)V
+HSPLandroidx/compose/animation/core/InfiniteTransition$TransitionAnimationState;->getInitialValue$animation_core_release()Ljava/lang/Object;
+HSPLandroidx/compose/animation/core/InfiniteTransition$TransitionAnimationState;->getTargetValue$animation_core_release()Ljava/lang/Object;
+HSPLandroidx/compose/animation/core/InfiniteTransition$TransitionAnimationState;->getValue()Ljava/lang/Object;
+HSPLandroidx/compose/animation/core/InfiniteTransition$TransitionAnimationState;->isFinished$animation_core_release()Z
HPLandroidx/compose/animation/core/InfiniteTransition$TransitionAnimationState;->onPlayTimeChanged$animation_core_release(J)V
-PLandroidx/compose/animation/core/InfiniteTransition$TransitionAnimationState;->reset$animation_core_release()V
-PLandroidx/compose/animation/core/InfiniteTransition$TransitionAnimationState;->setValue$animation_core_release(Ljava/lang/Object;)V
-PLandroidx/compose/animation/core/InfiniteTransition$run$1;->(Landroidx/compose/runtime/MutableState;Landroidx/compose/animation/core/InfiniteTransition;Lkotlin/coroutines/Continuation;)V
-PLandroidx/compose/animation/core/InfiniteTransition$run$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;
+HSPLandroidx/compose/animation/core/InfiniteTransition$TransitionAnimationState;->reset$animation_core_release()V
+HSPLandroidx/compose/animation/core/InfiniteTransition$TransitionAnimationState;->setValue$animation_core_release(Ljava/lang/Object;)V
+Landroidx/compose/animation/core/InfiniteTransition$run$1;
+HSPLandroidx/compose/animation/core/InfiniteTransition$run$1;->(Landroidx/compose/runtime/MutableState;Landroidx/compose/animation/core/InfiniteTransition;Lkotlin/coroutines/Continuation;)V
+HSPLandroidx/compose/animation/core/InfiniteTransition$run$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;
HPLandroidx/compose/animation/core/InfiniteTransition$run$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;
-PLandroidx/compose/animation/core/InfiniteTransition$run$1$1;->(Landroidx/compose/runtime/MutableState;Landroidx/compose/animation/core/InfiniteTransition;Lkotlin/jvm/internal/Ref$FloatRef;Lkotlinx/coroutines/CoroutineScope;)V
+Landroidx/compose/animation/core/InfiniteTransition$run$1$1;
+HSPLandroidx/compose/animation/core/InfiniteTransition$run$1$1;->(Landroidx/compose/runtime/MutableState;Landroidx/compose/animation/core/InfiniteTransition;Lkotlin/jvm/internal/Ref$FloatRef;Lkotlinx/coroutines/CoroutineScope;)V
HPLandroidx/compose/animation/core/InfiniteTransition$run$1$1;->invoke(J)V
-PLandroidx/compose/animation/core/InfiniteTransition$run$1$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;
-PLandroidx/compose/animation/core/InfiniteTransition$run$2;->(Landroidx/compose/animation/core/InfiniteTransition;I)V
-PLandroidx/compose/animation/core/InfiniteTransitionKt;->animateFloat(Landroidx/compose/animation/core/InfiniteTransition;FFLandroidx/compose/animation/core/InfiniteRepeatableSpec;Ljava/lang/String;Landroidx/compose/runtime/Composer;II)Landroidx/compose/runtime/State;
-PLandroidx/compose/animation/core/InfiniteTransitionKt;->animateValue(Landroidx/compose/animation/core/InfiniteTransition;Ljava/lang/Object;Ljava/lang/Object;Landroidx/compose/animation/core/TwoWayConverter;Landroidx/compose/animation/core/InfiniteRepeatableSpec;Ljava/lang/String;Landroidx/compose/runtime/Composer;II)Landroidx/compose/runtime/State;
-PLandroidx/compose/animation/core/InfiniteTransitionKt;->rememberInfiniteTransition(Ljava/lang/String;Landroidx/compose/runtime/Composer;II)Landroidx/compose/animation/core/InfiniteTransition;
-PLandroidx/compose/animation/core/InfiniteTransitionKt$animateValue$1;->(Ljava/lang/Object;Landroidx/compose/animation/core/InfiniteTransition$TransitionAnimationState;Ljava/lang/Object;Landroidx/compose/animation/core/InfiniteRepeatableSpec;)V
-PLandroidx/compose/animation/core/InfiniteTransitionKt$animateValue$1;->invoke()Ljava/lang/Object;
-PLandroidx/compose/animation/core/InfiniteTransitionKt$animateValue$1;->invoke()V
-PLandroidx/compose/animation/core/InfiniteTransitionKt$animateValue$2;->(Landroidx/compose/animation/core/InfiniteTransition;Landroidx/compose/animation/core/InfiniteTransition$TransitionAnimationState;)V
-PLandroidx/compose/animation/core/InfiniteTransitionKt$animateValue$2;->invoke(Landroidx/compose/runtime/DisposableEffectScope;)Landroidx/compose/runtime/DisposableEffectResult;
-PLandroidx/compose/animation/core/InfiniteTransitionKt$animateValue$2;->invoke(Ljava/lang/Object;)Ljava/lang/Object;
-PLandroidx/compose/animation/core/InfiniteTransitionKt$animateValue$2$invoke$$inlined$onDispose$1;->(Landroidx/compose/animation/core/InfiniteTransition;Landroidx/compose/animation/core/InfiniteTransition$TransitionAnimationState;)V
-PLandroidx/compose/animation/core/InfiniteTransitionKt$animateValue$2$invoke$$inlined$onDispose$1;->dispose()V
-PLandroidx/compose/animation/core/KeyframesSpec;->()V
-PLandroidx/compose/animation/core/KeyframesSpec;->(Landroidx/compose/animation/core/KeyframesSpec$KeyframesSpecConfig;)V
-PLandroidx/compose/animation/core/KeyframesSpec;->vectorize(Landroidx/compose/animation/core/TwoWayConverter;)Landroidx/compose/animation/core/VectorizedDurationBasedAnimationSpec;
-PLandroidx/compose/animation/core/KeyframesSpec;->vectorize(Landroidx/compose/animation/core/TwoWayConverter;)Landroidx/compose/animation/core/VectorizedKeyframesSpec;
-PLandroidx/compose/animation/core/KeyframesSpec$KeyframeEntity;->()V
-PLandroidx/compose/animation/core/KeyframesSpec$KeyframeEntity;->(Ljava/lang/Object;Landroidx/compose/animation/core/Easing;)V
-PLandroidx/compose/animation/core/KeyframesSpec$KeyframeEntity;->(Ljava/lang/Object;Landroidx/compose/animation/core/Easing;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
-PLandroidx/compose/animation/core/KeyframesSpec$KeyframeEntity;->setEasing$animation_core_release(Landroidx/compose/animation/core/Easing;)V
-PLandroidx/compose/animation/core/KeyframesSpec$KeyframeEntity;->toPair$animation_core_release(Lkotlin/jvm/functions/Function1;)Lkotlin/Pair;
-PLandroidx/compose/animation/core/KeyframesSpec$KeyframesSpecConfig;->()V
-PLandroidx/compose/animation/core/KeyframesSpec$KeyframesSpecConfig;->()V
-PLandroidx/compose/animation/core/KeyframesSpec$KeyframesSpecConfig;->at(Ljava/lang/Object;I)Landroidx/compose/animation/core/KeyframesSpec$KeyframeEntity;
-PLandroidx/compose/animation/core/KeyframesSpec$KeyframesSpecConfig;->getDelayMillis()I
-PLandroidx/compose/animation/core/KeyframesSpec$KeyframesSpecConfig;->getDurationMillis()I
-PLandroidx/compose/animation/core/KeyframesSpec$KeyframesSpecConfig;->getKeyframes$animation_core_release()Ljava/util/Map;
-PLandroidx/compose/animation/core/KeyframesSpec$KeyframesSpecConfig;->setDurationMillis(I)V
-PLandroidx/compose/animation/core/KeyframesSpec$KeyframesSpecConfig;->with(Landroidx/compose/animation/core/KeyframesSpec$KeyframeEntity;Landroidx/compose/animation/core/Easing;)V
+HSPLandroidx/compose/animation/core/InfiniteTransition$run$1$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;
+Landroidx/compose/animation/core/InfiniteTransition$run$2;
+HSPLandroidx/compose/animation/core/InfiniteTransition$run$2;->(Landroidx/compose/animation/core/InfiniteTransition;I)V
+Landroidx/compose/animation/core/InfiniteTransitionKt;
+HSPLandroidx/compose/animation/core/InfiniteTransitionKt;->animateFloat(Landroidx/compose/animation/core/InfiniteTransition;FFLandroidx/compose/animation/core/InfiniteRepeatableSpec;Ljava/lang/String;Landroidx/compose/runtime/Composer;II)Landroidx/compose/runtime/State;
+HSPLandroidx/compose/animation/core/InfiniteTransitionKt;->animateValue(Landroidx/compose/animation/core/InfiniteTransition;Ljava/lang/Object;Ljava/lang/Object;Landroidx/compose/animation/core/TwoWayConverter;Landroidx/compose/animation/core/InfiniteRepeatableSpec;Ljava/lang/String;Landroidx/compose/runtime/Composer;II)Landroidx/compose/runtime/State;
+HSPLandroidx/compose/animation/core/InfiniteTransitionKt;->rememberInfiniteTransition(Ljava/lang/String;Landroidx/compose/runtime/Composer;II)Landroidx/compose/animation/core/InfiniteTransition;
+Landroidx/compose/animation/core/InfiniteTransitionKt$animateValue$1;
+HSPLandroidx/compose/animation/core/InfiniteTransitionKt$animateValue$1;->(Ljava/lang/Object;Landroidx/compose/animation/core/InfiniteTransition$TransitionAnimationState;Ljava/lang/Object;Landroidx/compose/animation/core/InfiniteRepeatableSpec;)V
+HSPLandroidx/compose/animation/core/InfiniteTransitionKt$animateValue$1;->invoke()Ljava/lang/Object;
+HSPLandroidx/compose/animation/core/InfiniteTransitionKt$animateValue$1;->invoke()V
+Landroidx/compose/animation/core/InfiniteTransitionKt$animateValue$2;
+HSPLandroidx/compose/animation/core/InfiniteTransitionKt$animateValue$2;->(Landroidx/compose/animation/core/InfiniteTransition;Landroidx/compose/animation/core/InfiniteTransition$TransitionAnimationState;)V
+HSPLandroidx/compose/animation/core/InfiniteTransitionKt$animateValue$2;->invoke(Landroidx/compose/runtime/DisposableEffectScope;)Landroidx/compose/runtime/DisposableEffectResult;
+HSPLandroidx/compose/animation/core/InfiniteTransitionKt$animateValue$2;->invoke(Ljava/lang/Object;)Ljava/lang/Object;
+Landroidx/compose/animation/core/InfiniteTransitionKt$animateValue$2$invoke$$inlined$onDispose$1;
+HSPLandroidx/compose/animation/core/InfiniteTransitionKt$animateValue$2$invoke$$inlined$onDispose$1;->(Landroidx/compose/animation/core/InfiniteTransition;Landroidx/compose/animation/core/InfiniteTransition$TransitionAnimationState;)V
+HSPLandroidx/compose/animation/core/InfiniteTransitionKt$animateValue$2$invoke$$inlined$onDispose$1;->dispose()V
+Landroidx/compose/animation/core/KeyframesSpec;
+HSPLandroidx/compose/animation/core/KeyframesSpec;->()V
+HSPLandroidx/compose/animation/core/KeyframesSpec;->(Landroidx/compose/animation/core/KeyframesSpec$KeyframesSpecConfig;)V
+HSPLandroidx/compose/animation/core/KeyframesSpec;->vectorize(Landroidx/compose/animation/core/TwoWayConverter;)Landroidx/compose/animation/core/VectorizedDurationBasedAnimationSpec;
+HSPLandroidx/compose/animation/core/KeyframesSpec;->vectorize(Landroidx/compose/animation/core/TwoWayConverter;)Landroidx/compose/animation/core/VectorizedKeyframesSpec;
+Landroidx/compose/animation/core/KeyframesSpec$KeyframeEntity;
+HSPLandroidx/compose/animation/core/KeyframesSpec$KeyframeEntity;->()V
+HSPLandroidx/compose/animation/core/KeyframesSpec$KeyframeEntity;->(Ljava/lang/Object;Landroidx/compose/animation/core/Easing;)V
+HSPLandroidx/compose/animation/core/KeyframesSpec$KeyframeEntity;->(Ljava/lang/Object;Landroidx/compose/animation/core/Easing;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+HSPLandroidx/compose/animation/core/KeyframesSpec$KeyframeEntity;->setEasing$animation_core_release(Landroidx/compose/animation/core/Easing;)V
+HSPLandroidx/compose/animation/core/KeyframesSpec$KeyframeEntity;->toPair$animation_core_release(Lkotlin/jvm/functions/Function1;)Lkotlin/Pair;
+Landroidx/compose/animation/core/KeyframesSpec$KeyframesSpecConfig;
+HSPLandroidx/compose/animation/core/KeyframesSpec$KeyframesSpecConfig;->()V
+HSPLandroidx/compose/animation/core/KeyframesSpec$KeyframesSpecConfig;->()V
+HSPLandroidx/compose/animation/core/KeyframesSpec$KeyframesSpecConfig;->at(Ljava/lang/Object;I)Landroidx/compose/animation/core/KeyframesSpec$KeyframeEntity;
+HSPLandroidx/compose/animation/core/KeyframesSpec$KeyframesSpecConfig;->getDelayMillis()I
+HSPLandroidx/compose/animation/core/KeyframesSpec$KeyframesSpecConfig;->getDurationMillis()I
+HSPLandroidx/compose/animation/core/KeyframesSpec$KeyframesSpecConfig;->getKeyframes$animation_core_release()Ljava/util/Map;
+HSPLandroidx/compose/animation/core/KeyframesSpec$KeyframesSpecConfig;->setDurationMillis(I)V
+HSPLandroidx/compose/animation/core/KeyframesSpec$KeyframesSpecConfig;->with(Landroidx/compose/animation/core/KeyframesSpec$KeyframeEntity;Landroidx/compose/animation/core/Easing;)V
Landroidx/compose/animation/core/MutableTransitionState;
HSPLandroidx/compose/animation/core/MutableTransitionState;->()V
HSPLandroidx/compose/animation/core/MutableTransitionState;->(Ljava/lang/Object;)V
@@ -827,75 +845,57 @@ HSPLandroidx/compose/animation/core/MutatorMutex$mutate$2;->create(Ljava/lang/Ob
HSPLandroidx/compose/animation/core/MutatorMutex$mutate$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
HSPLandroidx/compose/animation/core/MutatorMutex$mutate$2;->invoke(Lkotlinx/coroutines/CoroutineScope;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
HPLandroidx/compose/animation/core/MutatorMutex$mutate$2;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;
-PLandroidx/compose/animation/core/RepeatMode;->$values()[Landroidx/compose/animation/core/RepeatMode;
-PLandroidx/compose/animation/core/RepeatMode;->()V
-PLandroidx/compose/animation/core/RepeatMode;->(Ljava/lang/String;I)V
+Landroidx/compose/animation/core/RepeatMode;
+HSPLandroidx/compose/animation/core/RepeatMode;->$values()[Landroidx/compose/animation/core/RepeatMode;
+HSPLandroidx/compose/animation/core/RepeatMode;->()V
+HSPLandroidx/compose/animation/core/RepeatMode;->(Ljava/lang/String;I)V
+Landroidx/compose/animation/core/SpringEstimationKt;
HPLandroidx/compose/animation/core/SpringEstimationKt;->estimateAnimationDurationMillis(DDDDD)J
-PLandroidx/compose/animation/core/SpringEstimationKt;->estimateAnimationDurationMillis(FFFFF)J
-PLandroidx/compose/animation/core/SpringEstimationKt;->estimateDurationInternal(Landroidx/compose/animation/core/ComplexDouble;Landroidx/compose/animation/core/ComplexDouble;DDDD)J
-PLandroidx/compose/animation/core/SpringSimulation;->(F)V
-PLandroidx/compose/animation/core/SpringSimulation;->getDampingRatio()F
-PLandroidx/compose/animation/core/SpringSimulation;->getStiffness()F
-PLandroidx/compose/animation/core/SpringSimulation;->setDampingRatio(F)V
-PLandroidx/compose/animation/core/SpringSimulation;->setStiffness(F)V
+HSPLandroidx/compose/animation/core/SpringEstimationKt;->estimateAnimationDurationMillis(FFFFF)J
+HSPLandroidx/compose/animation/core/SpringEstimationKt;->estimateDurationInternal(Landroidx/compose/animation/core/ComplexDouble;Landroidx/compose/animation/core/ComplexDouble;DDDD)J
+Landroidx/compose/animation/core/SpringSimulation;
+HSPLandroidx/compose/animation/core/SpringSimulation;->(F)V
+HSPLandroidx/compose/animation/core/SpringSimulation;->getDampingRatio()F
+HSPLandroidx/compose/animation/core/SpringSimulation;->getStiffness()F
+HSPLandroidx/compose/animation/core/SpringSimulation;->setDampingRatio(F)V
+HSPLandroidx/compose/animation/core/SpringSimulation;->setStiffness(F)V
Landroidx/compose/animation/core/SpringSpec;
HSPLandroidx/compose/animation/core/SpringSpec;->()V
HPLandroidx/compose/animation/core/SpringSpec;->(FFLjava/lang/Object;)V
HSPLandroidx/compose/animation/core/SpringSpec;->(FFLjava/lang/Object;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
-PLandroidx/compose/animation/core/SpringSpec;->equals(Ljava/lang/Object;)Z
-PLandroidx/compose/animation/core/SpringSpec;->vectorize(Landroidx/compose/animation/core/TwoWayConverter;)Landroidx/compose/animation/core/VectorizedAnimationSpec;
+HSPLandroidx/compose/animation/core/SpringSpec;->equals(Ljava/lang/Object;)Z
+HSPLandroidx/compose/animation/core/SpringSpec;->vectorize(Landroidx/compose/animation/core/TwoWayConverter;)Landroidx/compose/animation/core/VectorizedAnimationSpec;
HPLandroidx/compose/animation/core/SpringSpec;->vectorize(Landroidx/compose/animation/core/TwoWayConverter;)Landroidx/compose/animation/core/VectorizedSpringSpec;
-PLandroidx/compose/animation/core/StartOffset;->constructor-impl$default(IIILkotlin/jvm/internal/DefaultConstructorMarker;)J
-PLandroidx/compose/animation/core/StartOffset;->constructor-impl(II)J
-PLandroidx/compose/animation/core/StartOffset;->constructor-impl(J)J
-PLandroidx/compose/animation/core/StartOffsetType;->()V
-PLandroidx/compose/animation/core/StartOffsetType;->access$getDelay$cp()I
-PLandroidx/compose/animation/core/StartOffsetType;->constructor-impl(I)I
-PLandroidx/compose/animation/core/StartOffsetType$Companion;->()V
-PLandroidx/compose/animation/core/StartOffsetType$Companion;->(Lkotlin/jvm/internal/DefaultConstructorMarker;)V
-PLandroidx/compose/animation/core/StartOffsetType$Companion;->getDelay-Eo1U57Q()I
+Landroidx/compose/animation/core/StartOffset;
+HSPLandroidx/compose/animation/core/StartOffset;->constructor-impl$default(IIILkotlin/jvm/internal/DefaultConstructorMarker;)J
+HSPLandroidx/compose/animation/core/StartOffset;->constructor-impl(II)J
+HSPLandroidx/compose/animation/core/StartOffset;->constructor-impl(J)J
+Landroidx/compose/animation/core/StartOffsetType;
+HSPLandroidx/compose/animation/core/StartOffsetType;->()V
+HSPLandroidx/compose/animation/core/StartOffsetType;->access$getDelay$cp()I
+HSPLandroidx/compose/animation/core/StartOffsetType;->constructor-impl(I)I
+Landroidx/compose/animation/core/StartOffsetType$Companion;
+HSPLandroidx/compose/animation/core/StartOffsetType$Companion;->()V
+HSPLandroidx/compose/animation/core/StartOffsetType$Companion;->(Lkotlin/jvm/internal/DefaultConstructorMarker;)V
+HSPLandroidx/compose/animation/core/StartOffsetType$Companion;->getDelay-Eo1U57Q()I
Landroidx/compose/animation/core/SuspendAnimationKt;
-HSPLandroidx/compose/animation/core/SuspendAnimationKt;->access$doAnimationFrameWithScale(Landroidx/compose/animation/core/AnimationScope;JFLandroidx/compose/animation/core/Animation;Landroidx/compose/animation/core/AnimationState;Lkotlin/jvm/functions/Function1;)V
-HPLandroidx/compose/animation/core/SuspendAnimationKt;->animate(Landroidx/compose/animation/core/AnimationState;Landroidx/compose/animation/core/Animation;JLkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
-HSPLandroidx/compose/animation/core/SuspendAnimationKt;->callWithFrameNanos(Landroidx/compose/animation/core/Animation;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
-HSPLandroidx/compose/animation/core/SuspendAnimationKt;->doAnimationFrame(Landroidx/compose/animation/core/AnimationScope;JJLandroidx/compose/animation/core/Animation;Landroidx/compose/animation/core/AnimationState;Lkotlin/jvm/functions/Function1;)V
-HSPLandroidx/compose/animation/core/SuspendAnimationKt;->doAnimationFrameWithScale(Landroidx/compose/animation/core/AnimationScope;JFLandroidx/compose/animation/core/Animation;Landroidx/compose/animation/core/AnimationState;Lkotlin/jvm/functions/Function1;)V
HPLandroidx/compose/animation/core/SuspendAnimationKt;->getDurationScale(Lkotlin/coroutines/CoroutineContext;)F
-HSPLandroidx/compose/animation/core/SuspendAnimationKt;->updateState(Landroidx/compose/animation/core/AnimationScope;Landroidx/compose/animation/core/AnimationState;)V
-Landroidx/compose/animation/core/SuspendAnimationKt$animate$4;
-HSPLandroidx/compose/animation/core/SuspendAnimationKt$animate$4;->(Lkotlin/coroutines/Continuation;)V
-HSPLandroidx/compose/animation/core/SuspendAnimationKt$animate$4;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;
-Landroidx/compose/animation/core/SuspendAnimationKt$animate$6;
-HSPLandroidx/compose/animation/core/SuspendAnimationKt$animate$6;->(Lkotlin/jvm/internal/Ref$ObjectRef;Ljava/lang/Object;Landroidx/compose/animation/core/Animation;Landroidx/compose/animation/core/AnimationVector;Landroidx/compose/animation/core/AnimationState;FLkotlin/jvm/functions/Function1;)V
-HSPLandroidx/compose/animation/core/SuspendAnimationKt$animate$6;->invoke(J)V
-HSPLandroidx/compose/animation/core/SuspendAnimationKt$animate$6;->invoke(Ljava/lang/Object;)Ljava/lang/Object;
-Landroidx/compose/animation/core/SuspendAnimationKt$animate$6$1;
-HSPLandroidx/compose/animation/core/SuspendAnimationKt$animate$6$1;->(Landroidx/compose/animation/core/AnimationState;)V
-Landroidx/compose/animation/core/SuspendAnimationKt$animate$9;
-HSPLandroidx/compose/animation/core/SuspendAnimationKt$animate$9;->(Lkotlin/jvm/internal/Ref$ObjectRef;FLandroidx/compose/animation/core/Animation;Landroidx/compose/animation/core/AnimationState;Lkotlin/jvm/functions/Function1;)V
-HSPLandroidx/compose/animation/core/SuspendAnimationKt$animate$9;->invoke(J)V
-HSPLandroidx/compose/animation/core/SuspendAnimationKt$animate$9;->invoke(Ljava/lang/Object;)Ljava/lang/Object;
-Landroidx/compose/animation/core/SuspendAnimationKt$callWithFrameNanos$2;
-HSPLandroidx/compose/animation/core/SuspendAnimationKt$callWithFrameNanos$2;->(Lkotlin/jvm/functions/Function1;)V
-HSPLandroidx/compose/animation/core/SuspendAnimationKt$callWithFrameNanos$2;->invoke(J)Ljava/lang/Object;
-HSPLandroidx/compose/animation/core/SuspendAnimationKt$callWithFrameNanos$2;->invoke(Ljava/lang/Object;)Ljava/lang/Object;
Landroidx/compose/animation/core/TargetBasedAnimation;
HSPLandroidx/compose/animation/core/TargetBasedAnimation;->()V
HPLandroidx/compose/animation/core/TargetBasedAnimation;->(Landroidx/compose/animation/core/AnimationSpec;Landroidx/compose/animation/core/TwoWayConverter;Ljava/lang/Object;Ljava/lang/Object;Landroidx/compose/animation/core/AnimationVector;)V
-PLandroidx/compose/animation/core/TargetBasedAnimation;->(Landroidx/compose/animation/core/AnimationSpec;Landroidx/compose/animation/core/TwoWayConverter;Ljava/lang/Object;Ljava/lang/Object;Landroidx/compose/animation/core/AnimationVector;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+HSPLandroidx/compose/animation/core/TargetBasedAnimation;->(Landroidx/compose/animation/core/AnimationSpec;Landroidx/compose/animation/core/TwoWayConverter;Ljava/lang/Object;Ljava/lang/Object;Landroidx/compose/animation/core/AnimationVector;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
HPLandroidx/compose/animation/core/TargetBasedAnimation;->(Landroidx/compose/animation/core/VectorizedAnimationSpec;Landroidx/compose/animation/core/TwoWayConverter;Ljava/lang/Object;Ljava/lang/Object;Landroidx/compose/animation/core/AnimationVector;)V
HPLandroidx/compose/animation/core/TargetBasedAnimation;->getDurationNanos()J
HSPLandroidx/compose/animation/core/TargetBasedAnimation;->getTargetValue()Ljava/lang/Object;
HPLandroidx/compose/animation/core/TargetBasedAnimation;->getTypeConverter()Landroidx/compose/animation/core/TwoWayConverter;
HPLandroidx/compose/animation/core/TargetBasedAnimation;->getValueFromNanos(J)Ljava/lang/Object;
HPLandroidx/compose/animation/core/TargetBasedAnimation;->getVelocityVectorFromNanos(J)Landroidx/compose/animation/core/AnimationVector;
-HSPLandroidx/compose/animation/core/TargetBasedAnimation;->isInfinite()Z
Landroidx/compose/animation/core/Transition;
HSPLandroidx/compose/animation/core/Transition;->()V
HPLandroidx/compose/animation/core/Transition;->(Landroidx/compose/animation/core/MutableTransitionState;Ljava/lang/String;)V
HSPLandroidx/compose/animation/core/Transition;->(Ljava/lang/Object;Ljava/lang/String;)V
-PLandroidx/compose/animation/core/Transition;->access$onChildAnimationUpdated(Landroidx/compose/animation/core/Transition;)V
-PLandroidx/compose/animation/core/Transition;->addAnimation$animation_core_release(Landroidx/compose/animation/core/Transition$TransitionAnimationState;)Z
+HSPLandroidx/compose/animation/core/Transition;->access$onChildAnimationUpdated(Landroidx/compose/animation/core/Transition;)V
+HSPLandroidx/compose/animation/core/Transition;->addAnimation$animation_core_release(Landroidx/compose/animation/core/Transition$TransitionAnimationState;)Z
HSPLandroidx/compose/animation/core/Transition;->addTransition$animation_core_release(Landroidx/compose/animation/core/Transition;)Z
HPLandroidx/compose/animation/core/Transition;->animateTo$animation_core_release(Ljava/lang/Object;Landroidx/compose/runtime/Composer;I)V
HPLandroidx/compose/animation/core/Transition;->getCurrentState()Ljava/lang/Object;
@@ -907,56 +907,59 @@ HPLandroidx/compose/animation/core/Transition;->getTargetState()Ljava/lang/Objec
HSPLandroidx/compose/animation/core/Transition;->getUpdateChildrenNeeded$animation_core_release()Z
HSPLandroidx/compose/animation/core/Transition;->isRunning()Z
HPLandroidx/compose/animation/core/Transition;->isSeeking()Z
-PLandroidx/compose/animation/core/Transition;->onChildAnimationUpdated()V
+HSPLandroidx/compose/animation/core/Transition;->onChildAnimationUpdated()V
HPLandroidx/compose/animation/core/Transition;->onFrame$animation_core_release(JF)V
HSPLandroidx/compose/animation/core/Transition;->onTransitionEnd$animation_core_release()V
HSPLandroidx/compose/animation/core/Transition;->onTransitionStart$animation_core_release(J)V
-PLandroidx/compose/animation/core/Transition;->removeAnimation$animation_core_release(Landroidx/compose/animation/core/Transition$DeferredAnimation;)V
-PLandroidx/compose/animation/core/Transition;->removeAnimation$animation_core_release(Landroidx/compose/animation/core/Transition$TransitionAnimationState;)V
-PLandroidx/compose/animation/core/Transition;->removeTransition$animation_core_release(Landroidx/compose/animation/core/Transition;)Z
+HSPLandroidx/compose/animation/core/Transition;->removeAnimation$animation_core_release(Landroidx/compose/animation/core/Transition$DeferredAnimation;)V
+HSPLandroidx/compose/animation/core/Transition;->removeAnimation$animation_core_release(Landroidx/compose/animation/core/Transition$TransitionAnimationState;)V
+HSPLandroidx/compose/animation/core/Transition;->removeTransition$animation_core_release(Landroidx/compose/animation/core/Transition;)Z
HSPLandroidx/compose/animation/core/Transition;->setCurrentState$animation_core_release(Ljava/lang/Object;)V
HPLandroidx/compose/animation/core/Transition;->setPlayTimeNanos(J)V
HSPLandroidx/compose/animation/core/Transition;->setSeeking$animation_core_release(Z)V
-PLandroidx/compose/animation/core/Transition;->setSegment(Landroidx/compose/animation/core/Transition$Segment;)V
+HSPLandroidx/compose/animation/core/Transition;->setSegment(Landroidx/compose/animation/core/Transition$Segment;)V
HSPLandroidx/compose/animation/core/Transition;->setStartTimeNanos(J)V
-PLandroidx/compose/animation/core/Transition;->setTargetState$animation_core_release(Ljava/lang/Object;)V
+HSPLandroidx/compose/animation/core/Transition;->setTargetState$animation_core_release(Ljava/lang/Object;)V
HPLandroidx/compose/animation/core/Transition;->setUpdateChildrenNeeded$animation_core_release(Z)V
HPLandroidx/compose/animation/core/Transition;->updateTarget$animation_core_release(Ljava/lang/Object;Landroidx/compose/runtime/Composer;I)V
-PLandroidx/compose/animation/core/Transition$DeferredAnimation;->(Landroidx/compose/animation/core/Transition;Landroidx/compose/animation/core/TwoWayConverter;Ljava/lang/String;)V
+Landroidx/compose/animation/core/Transition$DeferredAnimation;
+HSPLandroidx/compose/animation/core/Transition$DeferredAnimation;->(Landroidx/compose/animation/core/Transition;Landroidx/compose/animation/core/TwoWayConverter;Ljava/lang/String;)V
HPLandroidx/compose/animation/core/Transition$DeferredAnimation;->animate(Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;)Landroidx/compose/runtime/State;
-PLandroidx/compose/animation/core/Transition$DeferredAnimation;->getData$animation_core_release()Landroidx/compose/animation/core/Transition$DeferredAnimation$DeferredAnimationData;
-PLandroidx/compose/animation/core/Transition$DeferredAnimation;->setData$animation_core_release(Landroidx/compose/animation/core/Transition$DeferredAnimation$DeferredAnimationData;)V
-PLandroidx/compose/animation/core/Transition$DeferredAnimation$DeferredAnimationData;->(Landroidx/compose/animation/core/Transition$DeferredAnimation;Landroidx/compose/animation/core/Transition$TransitionAnimationState;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;)V
-PLandroidx/compose/animation/core/Transition$DeferredAnimation$DeferredAnimationData;->getAnimation()Landroidx/compose/animation/core/Transition$TransitionAnimationState;
-PLandroidx/compose/animation/core/Transition$DeferredAnimation$DeferredAnimationData;->getValue()Ljava/lang/Object;
-PLandroidx/compose/animation/core/Transition$DeferredAnimation$DeferredAnimationData;->setTargetValueByState(Lkotlin/jvm/functions/Function1;)V
-PLandroidx/compose/animation/core/Transition$DeferredAnimation$DeferredAnimationData;->setTransitionSpec(Lkotlin/jvm/functions/Function1;)V
+HSPLandroidx/compose/animation/core/Transition$DeferredAnimation;->getData$animation_core_release()Landroidx/compose/animation/core/Transition$DeferredAnimation$DeferredAnimationData;
+HSPLandroidx/compose/animation/core/Transition$DeferredAnimation;->setData$animation_core_release(Landroidx/compose/animation/core/Transition$DeferredAnimation$DeferredAnimationData;)V
+Landroidx/compose/animation/core/Transition$DeferredAnimation$DeferredAnimationData;
+HSPLandroidx/compose/animation/core/Transition$DeferredAnimation$DeferredAnimationData;->(Landroidx/compose/animation/core/Transition$DeferredAnimation;Landroidx/compose/animation/core/Transition$TransitionAnimationState;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;)V
+HSPLandroidx/compose/animation/core/Transition$DeferredAnimation$DeferredAnimationData;->getAnimation()Landroidx/compose/animation/core/Transition$TransitionAnimationState;
+HSPLandroidx/compose/animation/core/Transition$DeferredAnimation$DeferredAnimationData;->getValue()Ljava/lang/Object;
+HSPLandroidx/compose/animation/core/Transition$DeferredAnimation$DeferredAnimationData;->setTargetValueByState(Lkotlin/jvm/functions/Function1;)V
+HSPLandroidx/compose/animation/core/Transition$DeferredAnimation$DeferredAnimationData;->setTransitionSpec(Lkotlin/jvm/functions/Function1;)V
HPLandroidx/compose/animation/core/Transition$DeferredAnimation$DeferredAnimationData;->updateAnimationStates(Landroidx/compose/animation/core/Transition$Segment;)V
Landroidx/compose/animation/core/Transition$Segment;
-PLandroidx/compose/animation/core/Transition$Segment;->isTransitioningTo(Ljava/lang/Object;Ljava/lang/Object;)Z
+HSPLandroidx/compose/animation/core/Transition$Segment;->isTransitioningTo(Ljava/lang/Object;Ljava/lang/Object;)Z
Landroidx/compose/animation/core/Transition$SegmentImpl;
HSPLandroidx/compose/animation/core/Transition$SegmentImpl;->