gitextract_dhrtofoi/ ├── .editorconfig ├── .github/ │ ├── FUNDING.yml │ └── workflows/ │ ├── build.yml │ └── publish.yml ├── .gitignore ├── LICENSE ├── README.md ├── back-handler/ │ ├── .gitignore │ ├── api/ │ │ ├── android/ │ │ │ └── back-handler.api │ │ ├── back-handler.klib.api │ │ └── jvm/ │ │ └── back-handler.api │ ├── build.gradle.kts │ └── src/ │ ├── androidMain/ │ │ ├── AndroidManifest.xml │ │ └── kotlin/ │ │ └── com/ │ │ └── arkivanov/ │ │ └── essenty/ │ │ └── backhandler/ │ │ └── AndroidBackHandler.kt │ ├── androidUnitTest/ │ │ └── kotlin/ │ │ └── com/ │ │ └── arkivanov/ │ │ └── essenty/ │ │ └── backhandler/ │ │ ├── AndroidBackHandlerTest.kt │ │ ├── AndroidBackHandlerWithLifecycleTest.kt │ │ └── OnBackPressedCallbackAdapterTest.kt │ ├── commonMain/ │ │ └── kotlin/ │ │ └── com/ │ │ └── arkivanov/ │ │ └── essenty/ │ │ └── backhandler/ │ │ ├── BackCallback.kt │ │ ├── BackDispatcher.kt │ │ ├── BackEvent.kt │ │ ├── BackHandler.kt │ │ ├── BackHandlerOwner.kt │ │ ├── DefaultBackDispatcher.kt │ │ └── Utils.kt │ └── commonTest/ │ └── kotlin/ │ └── com/ │ └── arkivanov/ │ └── essenty/ │ └── backhandler/ │ └── DefaultBackDispatcherTest.kt ├── build.gradle.kts ├── deps.versions.toml ├── detekt.yml ├── gradle/ │ └── wrapper/ │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradle.properties ├── gradlew ├── gradlew.bat ├── instance-keeper/ │ ├── .gitignore │ ├── api/ │ │ ├── android/ │ │ │ └── instance-keeper.api │ │ ├── instance-keeper.klib.api │ │ └── jvm/ │ │ └── instance-keeper.api │ ├── build.gradle.kts │ └── src/ │ ├── androidMain/ │ │ ├── AndroidManifest.xml │ │ └── kotlin/ │ │ └── com/ │ │ └── arkivanov/ │ │ └── essenty/ │ │ └── instancekeeper/ │ │ └── AndroidExt.kt │ ├── androidUnitTest/ │ │ └── kotlin/ │ │ └── com/ │ │ └── arkivanov/ │ │ └── essenty/ │ │ └── instancekeeper/ │ │ └── AndroidInstanceKeeperTest.kt │ ├── commonMain/ │ │ └── kotlin/ │ │ └── com/ │ │ └── arkivanov/ │ │ └── essenty/ │ │ └── instancekeeper/ │ │ ├── DefaultInstanceKeeperDispatcher.kt │ │ ├── ExperimentalInstanceKeeperApi.kt │ │ ├── InstanceKeeper.kt │ │ ├── InstanceKeeperDispatcher.kt │ │ ├── InstanceKeeperExt.kt │ │ └── InstanceKeeperOwner.kt │ └── commonTest/ │ └── kotlin/ │ └── com/ │ └── arkivanov/ │ └── essenty/ │ └── instancekeeper/ │ ├── DefaultInstanceKeeperDispatcherTest.kt │ └── InstanceKeeperExtTest.kt ├── lifecycle/ │ ├── .gitignore │ ├── api/ │ │ ├── android/ │ │ │ └── lifecycle.api │ │ ├── jvm/ │ │ │ └── lifecycle.api │ │ └── lifecycle.klib.api │ ├── build.gradle.kts │ └── src/ │ ├── androidMain/ │ │ ├── AndroidManifest.xml │ │ └── kotlin/ │ │ └── com/ │ │ └── arkivanov/ │ │ └── essenty/ │ │ └── lifecycle/ │ │ └── AndroidExt.kt │ ├── commonMain/ │ │ └── kotlin/ │ │ └── com/ │ │ └── arkivanov/ │ │ └── essenty/ │ │ └── lifecycle/ │ │ ├── Lifecycle.kt │ │ ├── LifecycleExt.kt │ │ ├── LifecycleOwner.kt │ │ ├── LifecycleRegistry.kt │ │ ├── LifecycleRegistryExt.kt │ │ └── LifecycleRegistryImpl.kt │ ├── commonTest/ │ │ └── kotlin/ │ │ └── com/ │ │ └── arkivanov/ │ │ └── essenty/ │ │ └── lifecycle/ │ │ ├── LifecycleExtTest.kt │ │ └── LifecycleRegistryTest.kt │ ├── itvosMain/ │ │ └── kotlin/ │ │ └── com/ │ │ └── arkivanov/ │ │ └── essenty/ │ │ └── lifecycle/ │ │ └── ApplicationLifecycle.kt │ └── itvosTest/ │ └── kotlin/ │ └── com/ │ └── arkivanov/ │ └── essenty/ │ └── lifecycle/ │ ├── ApplicationLifecyclePlatformTest.kt │ └── ApplicationLifecycleTest.kt ├── lifecycle-coroutines/ │ ├── .gitignore │ ├── api/ │ │ ├── android/ │ │ │ └── lifecycle-coroutines.api │ │ ├── jvm/ │ │ │ └── lifecycle-coroutines.api │ │ └── lifecycle-coroutines.klib.api │ ├── build.gradle.kts │ └── src/ │ ├── commonMain/ │ │ └── kotlin/ │ │ └── com/ │ │ └── arkivanov/ │ │ └── essenty/ │ │ └── lifecycle/ │ │ └── coroutines/ │ │ ├── CoroutineScopeWithLifecycle.kt │ │ ├── DispatchersExt.kt │ │ ├── FlowWithLifecycle.kt │ │ └── RepeatOnLifecycle.kt │ └── commonTest/ │ └── kotlin/ │ └── com/ │ └── arkivanov/ │ └── essenty/ │ └── lifecycle/ │ └── coroutines/ │ ├── CoroutineScopeWithLifecycleTest.kt │ ├── DispatchersExtTest.kt │ └── LifecycleCoroutinesExtTest.kt ├── lifecycle-reaktive/ │ ├── .gitignore │ ├── api/ │ │ ├── android/ │ │ │ └── lifecycle-reaktive.api │ │ ├── jvm/ │ │ │ └── lifecycle-reaktive.api │ │ └── lifecycle-reaktive.klib.api │ ├── build.gradle.kts │ └── src/ │ ├── commonMain/ │ │ └── kotlin/ │ │ └── com/ │ │ └── arkivanov/ │ │ └── essenty/ │ │ └── lifecycle/ │ │ └── reaktive/ │ │ └── DisposableWithLifecycle.kt │ └── commonTest/ │ └── kotlin/ │ └── com/ │ └── arkivanov/ │ └── essenty/ │ └── lifecycle/ │ └── reaktive/ │ └── DisposableWithLifecycleTest.kt ├── settings.gradle.kts ├── state-keeper/ │ ├── .gitignore │ ├── api/ │ │ ├── android/ │ │ │ └── state-keeper.api │ │ ├── jvm/ │ │ │ └── state-keeper.api │ │ └── state-keeper.klib.api │ ├── build.gradle.kts │ └── src/ │ ├── androidMain/ │ │ ├── AndroidManifest.xml │ │ └── kotlin/ │ │ └── com/ │ │ └── arkivanov/ │ │ └── essenty/ │ │ └── statekeeper/ │ │ ├── AndroidExt.kt │ │ ├── BundleExt.kt │ │ └── PersistableBundleExt.kt │ ├── androidUnitTest/ │ │ └── kotlin/ │ │ └── com/ │ │ └── arkivanov/ │ │ └── essenty/ │ │ └── statekeeper/ │ │ ├── AndroidStateKeeperTest.kt │ │ ├── BundleExtTest.kt │ │ └── TestUtils.android.kt │ ├── commonMain/ │ │ └── kotlin/ │ │ └── com/ │ │ └── arkivanov/ │ │ └── essenty/ │ │ └── statekeeper/ │ │ ├── DefaultStateKeeperDispatcher.kt │ │ ├── ExperimentalStateKeeperApi.kt │ │ ├── PolymorphicSerializer.kt │ │ ├── SerializableContainer.kt │ │ ├── StateKeeper.kt │ │ ├── StateKeeperDispatcher.kt │ │ ├── StateKeeperExt.kt │ │ ├── StateKeeperOwner.kt │ │ ├── Utils.kt │ │ └── base64/ │ │ ├── Decoder.kt │ │ ├── Dictionaries.kt │ │ ├── Encoder.kt │ │ └── README.md │ ├── commonTest/ │ │ └── kotlin/ │ │ └── com/ │ │ └── arkivanov/ │ │ └── essenty/ │ │ └── statekeeper/ │ │ ├── CodingTest.kt │ │ ├── DefaultStateKeeperDispatcherTest.kt │ │ ├── PolymorphicSerializerTest.kt │ │ ├── SerializableContainerTest.kt │ │ ├── SerializableData.kt │ │ ├── StateKeeperExtTest.kt │ │ ├── TestUtils.kt │ │ └── base64/ │ │ ├── Base64ImplTest.kt │ │ └── README.md │ ├── javaMain/ │ │ └── kotlin/ │ │ └── com/ │ │ └── arkivanov/ │ │ └── essenty/ │ │ └── statekeeper/ │ │ └── Utils.java.kt │ ├── jsTest/ │ │ └── kotlin/ │ │ └── com/ │ │ └── arkivanov/ │ │ └── essenty/ │ │ └── statekeeper/ │ │ └── DefaultStateKeeperDispatcherJsTest.kt │ └── nonJavaMain/ │ └── kotlin/ │ └── com/ │ └── arkivanov/ │ └── essenty/ │ └── statekeeper/ │ └── Utils.kt ├── state-keeper-benchmarks/ │ ├── .gitignore │ ├── build.gradle.kts │ └── src/ │ ├── main/ │ │ └── res/ │ │ └── AndroidManifest.xml │ └── test/ │ └── kotlin/ │ └── com/ │ └── arkivanov/ │ └── essenty/ │ └── statekeeper/ │ └── benchmarks/ │ └── Benchmarks.kt ├── tools/ │ └── check-publication/ │ ├── .gitignore │ ├── build.gradle.kts │ └── src/ │ ├── androidMain/ │ │ └── AndroidManifest.xml │ └── commonMain/ │ └── kotlin/ │ └── com/ │ └── arkivanov/ │ └── essenty/ │ └── tools/ │ └── checkpublication/ │ └── Dummy.kt └── utils-internal/ ├── .gitignore ├── build.gradle.kts └── src/ ├── androidMain/ │ └── AndroidManifest.xml └── commonMain/ └── kotlin/ └── com/ └── arkivanov/ └── essenty/ └── utils/ └── internal/ ├── ExperimentalEssentyApi.kt └── InternalEssentyApi.kt