
# including out/soong/.intermediates/external/kotlinc/kotlin-stdlib/android_common/proguard_flags

# including out/soong/.intermediates/external/kotlinc/kotlin-stdlib-jdk7/android_common/proguard_flags

# including out/soong/.intermediates/external/kotlinc/kotlin-stdlib-jdk8/android_common/proguard_flags

# including out/soong/.intermediates/external/kotlinc/kotlin-annotations/android_common/proguard_flags

# including external/kotlinx.serialization/rules/common.pro
# Keep `Companion` object fields of serializable classes.
# This avoids serializer lookup through `getDeclaredClasses` as done for named companion objects.
-if @kotlinx.serialization.Serializable class **
-keepclassmembers class <1> {
    static <1>$Companion Companion;
}

# Keep `serializer()` on companion objects (both default and named) of serializable classes.
-if @kotlinx.serialization.Serializable class ** {
    static **$* *;
}
-keepclassmembers class <2>$<3> {
    kotlinx.serialization.KSerializer serializer(...);
}

# Keep `INSTANCE.serializer()` of serializable objects.
-if @kotlinx.serialization.Serializable class ** {
    public static ** INSTANCE;
}
-keepclassmembers class <1> {
    public static <1> INSTANCE;
    kotlinx.serialization.KSerializer serializer(...);
}

# @Serializable and @Polymorphic are used at runtime for polymorphic serialization.
-keepattributes RuntimeVisibleAnnotations,AnnotationDefault

# Don't print notes about potential mistakes or omissions in the configuration for kotlinx-serialization classes
# See also https://github.com/Kotlin/kotlinx.serialization/issues/1900
-dontnote kotlinx.serialization.**

# Serialization core uses `java.lang.ClassValue` for caching inside these specified classes.
# If there is no `java.lang.ClassValue` (for example, in Android), then R8/ProGuard will print a warning.
# However, since in this case they will not be used, we can disable these warnings
-dontwarn kotlinx.serialization.internal.ClassValueReferences

# disable optimisation for descriptor field because in some versions of ProGuard, optimization generates incorrect bytecode that causes a verification error
# see https://github.com/Kotlin/kotlinx.serialization/issues/2719
-keepclassmembers public class **$$serializer {
    private ** descriptor;
}

# including external/kotlinx.serialization/rules/r8.pro
# Rule to save runtime annotations on serializable class.
# If the R8 full mode is used, annotations are removed from classes-files.
#
# For the annotation serializer, it is necessary to read the `Serializable` annotation inside the serializer<T>() function - if it is present,
# then `SealedClassSerializer` is used, if absent, then `PolymorphicSerializer'.
#
# When using R8 full mode, all interfaces will be serialized using `PolymorphicSerializer`.
#
# see https://github.com/Kotlin/kotlinx.serialization/issues/2050

 -if @kotlinx.serialization.Serializable class **
 -keep, allowshrinking, allowoptimization, allowobfuscation, allowaccessmodification class <1>


# Rule to save INSTANCE field and serializer function for Kotlin serializable objects.
#
# R8 full mode works differently if the instance is not explicitly accessed in the code.
#
# see https://github.com/Kotlin/kotlinx.serialization/issues/2861
# see https://issuetracker.google.com/issues/379996140

-keepclassmembers @kotlinx.serialization.Serializable class ** {
    public static ** INSTANCE;
    kotlinx.serialization.KSerializer serializer(...);
}

# including out/soong/.intermediates/prebuilts/sdk/current/androidx/m2repository/androidx/annotation/annotation-jvm/1.11.0-alpha01/androidx.annotation_annotation/android_common/proguard_flags
# Rules extracted from:
# out/soong/.intermediates/prebuilts/sdk/current/androidx/m2repository/androidx/annotation/annotation-jvm/1.11.0-alpha01/androidx.annotation_annotation/android_common/combined/androidx.annotation_annotation.jar:META-INF/proguard/androidx-annotations.pro
-keep,allowobfuscation @interface androidx.annotation.Keep
-keep @androidx.annotation.Keep class * {*;}

-keepclasseswithmembers class * {
    @androidx.annotation.Keep <methods>;
}

-keepclasseswithmembers class * {
    @androidx.annotation.Keep <fields>;
}

-keepclasseswithmembers class * {
    @androidx.annotation.Keep <init>(...);
}

-keepclassmembers,allowobfuscation class * {
  @androidx.annotation.DoNotInline <methods>;
}


# including out/soong/.intermediates/prebuilts/tools/common/m2/guava-listenablefuture-prebuilt-jar/android_common/proguard_flags

# including out/soong/.intermediates/prebuilts/sdk/current/androidx/m2repository/androidx/concurrent/concurrent-futures/1.3.0-alpha01/androidx.concurrent_concurrent-futures/android_common/proguard_flags
# Rules extracted from:
# out/soong/.intermediates/prebuilts/sdk/current/androidx/m2repository/androidx/concurrent/concurrent-futures/1.3.0-alpha01/androidx.concurrent_concurrent-futures/android_common/combined/androidx.concurrent_concurrent-futures.jar:META-INF/proguard/androidx-annotations.pro
-keep,allowobfuscation @interface androidx.annotation.Keep
-keep @androidx.annotation.Keep class * {*;}

-keepclasseswithmembers class * {
    @androidx.annotation.Keep <methods>;
}

-keepclasseswithmembers class * {
    @androidx.annotation.Keep <fields>;
}

-keepclasseswithmembers class * {
    @androidx.annotation.Keep <init>(...);
}

-keepclassmembers,allowobfuscation class * {
  @androidx.annotation.DoNotInline <methods>;
}


# including out/soong/.intermediates/prebuilts/sdk/current/androidx/m2repository/androidx/collection/collection-jvm/1.5.0/androidx.collection_collection/android_common/proguard_flags
# Rules extracted from:
# out/soong/.intermediates/prebuilts/sdk/current/androidx/m2repository/androidx/collection/collection-jvm/1.5.0/androidx.collection_collection/android_common/combined/androidx.collection_collection.jar:META-INF/proguard/androidx-annotations.pro
-keep,allowobfuscation @interface androidx.annotation.Keep
-keep @androidx.annotation.Keep class * {*;}

-keepclasseswithmembers class * {
    @androidx.annotation.Keep <methods>;
}

-keepclasseswithmembers class * {
    @androidx.annotation.Keep <fields>;
}

-keepclasseswithmembers class * {
    @androidx.annotation.Keep <init>(...);
}

-keepclassmembers,allowobfuscation class * {
  @androidx.annotation.DoNotInline <methods>;
}


# including out/soong/.intermediates/prebuilts/sdk/current/androidx/m2repository/androidx/annotation/annotation-experimental/1.6.0-alpha01/androidx.annotation_annotation-experimental/android_common/aar/proguard.txt
# Intentionally empty proguard rules to indicate this library is safe to shrink

# including out/soong/.intermediates/prebuilts/misc/common/androidx-media3/androidx.media3.media3-common-nodeps/android_common/aar/proguard.txt
# Proguard rules specific to the common module.

# Don't warn about checkerframework and Kotlin annotations
-dontwarn org.checkerframework.**
-dontwarn kotlin.annotations.jvm.**
-dontwarn javax.annotation.**

# From https://github.com/google/guava/wiki/UsingProGuardWithGuava
-dontwarn java.lang.ClassValue
-dontwarn java.lang.SafeVarargs
-dontwarn javax.lang.model.element.Modifier
-dontwarn sun.misc.Unsafe

# Don't warn about Guava's compile-only dependencies.
# These lines are needed for ProGuard but not R8.
-dontwarn com.google.errorprone.annotations.**
-dontwarn com.google.j2objc.annotations.**
-dontwarn org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement

# Workaround for https://issuetracker.google.com/issues/112297269
# This is needed for ProGuard but not R8.
-keepclassmembernames class com.google.common.base.Function { *; }

# including out/soong/.intermediates/prebuilts/misc/common/androidx-media3/androidx.media3.media3-container-nodeps/android_common/aar/proguard.txt

# including out/soong/.intermediates/prebuilts/misc/common/androidx-media3/androidx.media3.media3-database-nodeps/android_common/aar/proguard.txt

# including out/soong/.intermediates/prebuilts/sdk/current/androidx/m2repository/androidx/exifinterface/exifinterface/1.4.0-alpha01/androidx.exifinterface_exifinterface/android_common/aar/proguard.txt

# including out/soong/.intermediates/prebuilts/misc/common/androidx-media3/androidx.media3.media3-datasource-nodeps/android_common/aar/proguard.txt
# Proguard rules specific to the DataSource module.

# Constant folding for resource integers may mean that a resource passed to this method appears to be unused. Keep the method to prevent this from happening.
-keepclassmembers class androidx.media3.datasource.RawResourceDataSource {
  public static android.net.Uri buildRawResourceUri(int);
}

# Constructors accessed via reflection in DefaultDataSource
-dontnote androidx.media3.datasource.rtmp.RtmpDataSource
-keepclassmembers class androidx.media3.datasource.rtmp.RtmpDataSource {
  <init>();
}

# including out/soong/.intermediates/prebuilts/misc/common/androidx-media3/androidx.media3.media3-decoder-nodeps/android_common/aar/proguard.txt

# including out/soong/.intermediates/prebuilts/misc/common/androidx-media3/androidx.media3.media3-extractor-nodeps/android_common/aar/proguard.txt
# Proguard rules specific to the extractor module.

# Methods accessed via reflection in DefaultExtractorsFactory
-dontnote androidx.media3.decoder.flac.FlacExtractor
-keepclassmembers class androidx.media3.decoder.flac.FlacExtractor {
  <init>(int);
}
-dontnote androidx.media3.decoder.flac.FlacLibrary
-keepclassmembers class androidx.media3.decoder.flac.FlacLibrary {
  public static boolean isAvailable();
}
-dontnote androidx.media3.decoder.midi.MidiExtractor
-keepclassmembers class androidx.media3.decoder.midi.MidiExtractor {
  <init>();
}

# Don't warn about checkerframework and Kotlin annotations
-dontwarn org.checkerframework.**
-dontwarn kotlin.annotations.jvm.**
-dontwarn javax.annotation.**

# including out/soong/.intermediates/prebuilts/sdk/current/androidx/m2repository/androidx/core/core-viewtree/1.1.0-alpha01/androidx.core_core-viewtree/android_common/aar/proguard.txt
# Intentionally empty proguard rules to indicate this library is safe to shrink

# including out/soong/.intermediates/prebuilts/sdk/current/androidx/m2repository/androidx/interpolator/interpolator/1.1.0-alpha01/androidx.interpolator_interpolator/android_common/aar/proguard.txt

# including out/soong/.intermediates/prebuilts/sdk/current/androidx/m2repository/androidx/lifecycle/lifecycle-common-jvm/2.10.0-alpha04/androidx.lifecycle_lifecycle-common/android_common/proguard_flags
# Rules extracted from:
# out/soong/.intermediates/prebuilts/sdk/current/androidx/m2repository/androidx/lifecycle/lifecycle-common-jvm/2.10.0-alpha04/androidx.lifecycle_lifecycle-common/android_common/withres/androidx.lifecycle_lifecycle-common.jar:META-INF/com.android.tools/r8/coroutines.pro
# When editing this file, update the following files as well:
# - META-INF/proguard/coroutines.pro
# - META-INF/com.android.tools/proguard/coroutines.pro

# Most of volatile fields are updated with AFU and should not be mangled
-keepclassmembers class kotlinx.coroutines.** {
    volatile <fields>;
}

# Same story for the standard library's SafeContinuation that also uses AtomicReferenceFieldUpdater
-keepclassmembers class kotlin.coroutines.SafeContinuation {
    volatile <fields>;
}

# These classes are only required by kotlinx.coroutines.debug.internal.AgentPremain, which is only loaded when
# kotlinx-coroutines-core is used as a Java agent, so these are not needed in contexts where ProGuard is used.
-dontwarn java.lang.instrument.ClassFileTransformer
-dontwarn sun.misc.SignalHandler
-dontwarn java.lang.instrument.Instrumentation
-dontwarn sun.misc.Signal

# Only used in `kotlinx.coroutines.internal.ExceptionsConstructor`.
# The case when it is not available is hidden in a `try`-`catch`, as well as a check for Android.
-dontwarn java.lang.ClassValue

# An annotation used for build tooling, won't be directly accessed.
-dontwarn org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement

# including out/soong/.intermediates/prebuilts/sdk/current/androidx/m2repository/androidx/arch/core/core-common/2.3.0-alpha01/androidx.arch.core_core-common/android_common/proguard_flags
# Rules extracted from:
# out/soong/.intermediates/prebuilts/sdk/current/androidx/m2repository/androidx/arch/core/core-common/2.3.0-alpha01/androidx.arch.core_core-common/android_common/combined/androidx.arch.core_core-common.jar:META-INF/proguard/androidx-annotations.pro
-keep,allowobfuscation @interface androidx.annotation.Keep
-keep @androidx.annotation.Keep class * {*;}

-keepclasseswithmembers class * {
    @androidx.annotation.Keep <methods>;
}

-keepclasseswithmembers class * {
    @androidx.annotation.Keep <fields>;
}

-keepclasseswithmembers class * {
    @androidx.annotation.Keep <init>(...);
}

-keepclassmembers,allowobfuscation class * {
  @androidx.annotation.DoNotInline <methods>;
}


# including out/soong/.intermediates/prebuilts/sdk/current/androidx/m2repository/androidx/arch/core/core-runtime/2.3.0-alpha01/androidx.arch.core_core-runtime/android_common/aar/proguard.txt

# including out/soong/.intermediates/prebuilts/sdk/current/androidx/m2repository/androidx/tracing/tracing-android/1.3.0-rc01/androidx.tracing_tracing/android_common/aar/proguard.txt
# Intentionally empty proguard rules to indicate this library is safe to shrink

# including out/soong/.intermediates/prebuilts/sdk/current/androidx/m2repository/androidx/startup/startup-runtime/1.2.0-alpha02/androidx.startup_startup-runtime/android_common/aar/proguard.txt
# It's important that we preserve initializer names, given they are used in the AndroidManifest.xml.
-keepnames class * extends androidx.startup.Initializer

# These Proguard rules ensures that ComponentInitializers are are neither shrunk nor obfuscated,
# and are a part of the primary dex file. This is because they are discovered and instantiated
# during application startup.
-keep class * extends androidx.startup.Initializer {
    # Keep the public no-argument constructor while allowing other methods to be optimized.
    <init>();
}

-assumenosideeffects class androidx.startup.StartupLogger { public static <methods>; }

# including out/soong/.intermediates/prebuilts/sdk/current/androidx/m2repository/androidx/profileinstaller/profileinstaller/1.5.0-alpha01/androidx.profileinstaller_profileinstaller/android_common/aar/proguard.txt
# Intentionally empty proguard rules to indicate this library is safe to shrink

# including out/soong/.intermediates/prebuilts/sdk/current/androidx/m2repository/androidx/lifecycle/lifecycle-runtime-android/2.10.0-alpha04/androidx.lifecycle_lifecycle-runtime/android_common/aar/proguard.txt
-keepattributes AnnotationDefault,
                RuntimeVisibleAnnotations,
                RuntimeVisibleParameterAnnotations,
                RuntimeVisibleTypeAnnotations

-keepclassmembers enum androidx.lifecycle.Lifecycle$Event {
    <fields>;
}

-keep class * implements androidx.lifecycle.GeneratedAdapter {
    <init>(...);
}

-keepclassmembers class ** {
    @androidx.lifecycle.OnLifecycleEvent *;
}

# The deprecated `android.app.Fragment` creates `Fragment` instances using reflection.
# See: b/338958225, b/341537875
-keepclasseswithmembers,allowobfuscation public class androidx.lifecycle.ReportFragment {
    public <init>();
}

# this rule is need to work properly when app is compiled with api 28, see b/142778206
# Also this rule prevents registerIn from being inlined.
-keepclassmembers class androidx.lifecycle.ReportFragment$LifecycleCallbacks { *; }

# including out/soong/.intermediates/prebuilts/sdk/current/androidx/m2repository/androidx/versionedparcelable/versionedparcelable/1.2.0-rc01/androidx.versionedparcelable_versionedparcelable/android_common/aar/proguard.txt
-keep class * implements androidx.versionedparcelable.VersionedParcelable
-keep public class android.support.**Parcelizer { *; }
-keep public class androidx.**Parcelizer { *; }
-keep public class androidx.versionedparcelable.ParcelImpl

# including out/soong/.intermediates/prebuilts/sdk/current/androidx/m2repository/androidx/core/core/1.19.0-alpha01/androidx.core_core/android_common/aar/proguard.txt
# Never inline methods, but allow shrinking and obfuscation.
-keepclassmembernames,allowobfuscation,allowshrinking class androidx.core.view.ViewCompat$Api* {
  <methods>;
}
-keepclassmembernames,allowobfuscation,allowshrinking class androidx.core.view.WindowInsetsCompat$*Impl* {
  <methods>;
}
-keepclassmembernames,allowobfuscation,allowshrinking class androidx.core.app.NotificationCompat$*$Api*Impl {
  <methods>;
}
-keepclassmembernames,allowobfuscation,allowshrinking class androidx.core.os.UserHandleCompat$Api*Impl {
  <methods>;
}
-keepclassmembernames,allowobfuscation,allowshrinking class androidx.core.widget.EdgeEffectCompat$Api*Impl {
  <methods>;
}

# including out/soong/.intermediates/prebuilts/misc/common/androidx-media3/androidx.media3.media3-exoplayer-nodeps/android_common/aar/proguard.txt
# Proguard rules specific to the core module.

# Constructors accessed via reflection in DefaultRenderersFactory
-dontnote androidx.media3.decoder.vp9.LibvpxVideoRenderer
-keepclassmembers class androidx.media3.decoder.vp9.LibvpxVideoRenderer {
  <init>(long, android.os.Handler, androidx.media3.exoplayer.video.VideoRendererEventListener, int);
}
-dontnote androidx.media3.decoder.av1.Libdav1dVideoRenderer
-keepclassmembers class androidx.media3.decoder.av1.Libdav1dVideoRenderer {
  <init>(long, android.os.Handler, androidx.media3.exoplayer.video.VideoRendererEventListener, int);
}
-dontnote androidx.media3.decoder.ffmpeg.ExperimentalFfmpegVideoRenderer
-keepclassmembers class androidx.media3.decoder.ffmpeg.ExperimentalFfmpegVideoRenderer {
  <init>(long, android.os.Handler, androidx.media3.exoplayer.video.VideoRendererEventListener, int);
}
-dontnote androidx.media3.decoder.opus.LibopusAudioRenderer
-keepclassmembers class androidx.media3.decoder.opus.LibopusAudioRenderer {
  <init>(android.os.Handler, androidx.media3.exoplayer.audio.AudioRendererEventListener, androidx.media3.exoplayer.audio.AudioSink);
}
-dontnote androidx.media3.decoder.flac.LibflacAudioRenderer
-keepclassmembers class androidx.media3.decoder.flac.LibflacAudioRenderer {
  <init>(android.os.Handler, androidx.media3.exoplayer.audio.AudioRendererEventListener, androidx.media3.exoplayer.audio.AudioSink);
}
-dontnote androidx.media3.decoder.iamf.LibiamfAudioRenderer
-keepclassmembers class androidx.media3.decoder.iamf.LibiamfAudioRenderer {
  <init>(android.content.Context, android.os.Handler, androidx.media3.exoplayer.audio.AudioRendererEventListener, androidx.media3.exoplayer.audio.AudioSink);
}
-dontnote androidx.media3.decoder.ffmpeg.FfmpegAudioRenderer
-keepclassmembers class androidx.media3.decoder.ffmpeg.FfmpegAudioRenderer {
  <init>(android.os.Handler, androidx.media3.exoplayer.audio.AudioRendererEventListener, androidx.media3.exoplayer.audio.AudioSink);
}
-dontnote androidx.media3.decoder.midi.MidiRenderer
-keepclassmembers class androidx.media3.decoder.midi.MidiRenderer {
  <init>(android.content.Context, android.os.Handler, androidx.media3.exoplayer.audio.AudioRendererEventListener, androidx.media3.exoplayer.audio.AudioSink);
}
-dontnote androidx.media3.decoder.mpegh.MpeghAudioRenderer
-keepclassmembers class androidx.media3.decoder.mpegh.MpeghAudioRenderer {
  <init>(android.os.Handler, androidx.media3.exoplayer.audio.AudioRendererEventListener, androidx.media3.exoplayer.audio.AudioSink);
}

# Constructors accessed via reflection in DefaultDownloaderFactory
-dontnote androidx.media3.exoplayer.dash.offline.DashDownloader$Factory
-keepclassmembers class androidx.media3.exoplayer.dash.offline.DashDownloader$Factory {
  <init>(androidx.media3.datasource.cache.CacheDataSource$Factory);
}
-dontnote androidx.media3.exoplayer.hls.offline.HlsDownloader$Factory
-keepclassmembers class androidx.media3.exoplayer.hls.offline.HlsDownloader$Factory {
  <init>(androidx.media3.datasource.cache.CacheDataSource$Factory);
}
-dontnote androidx.media3.exoplayer.smoothstreaming.offline.SsDownloader$Factory
-keepclassmembers class androidx.media3.exoplayer.smoothstreaming.offline.SsDownloader$Factory {
  <init>(androidx.media3.datasource.cache.CacheDataSource$Factory);
}

# Constructors accessed via reflection in DefaultMediaSourceFactory
-dontnote androidx.media3.exoplayer.dash.DashMediaSource$Factory
-keepclasseswithmembers class androidx.media3.exoplayer.dash.DashMediaSource$Factory {
  <init>(androidx.media3.datasource.DataSource$Factory);
}
-dontnote androidx.media3.exoplayer.hls.HlsMediaSource$Factory
-keepclasseswithmembers class androidx.media3.exoplayer.hls.HlsMediaSource$Factory {
  <init>(androidx.media3.datasource.DataSource$Factory);
}
-dontnote androidx.media3.exoplayer.smoothstreaming.SsMediaSource$Factory
-keepclasseswithmembers class androidx.media3.exoplayer.smoothstreaming.SsMediaSource$Factory {
  <init>(androidx.media3.datasource.DataSource$Factory);
}
-dontnote androidx.media3.exoplayer.rtsp.RtspMediaSource$Factory
-keepclasseswithmembers class androidx.media3.exoplayer.rtsp.RtspMediaSource$Factory {
  <init>();
}

# Constructors and methods accessed via reflection in PlaybackVideoGraphWrapper
-dontnote androidx.media3.effect.SingleInputVideoGraph$Factory
-keepclasseswithmembers class androidx.media3.effect.SingleInputVideoGraph$Factory {
  <init>(androidx.media3.common.VideoFrameProcessor$Factory);
}
-dontnote androidx.media3.effect.DefaultVideoFrameProcessor$Factory$Builder
-keepclasseswithmembers class androidx.media3.effect.DefaultVideoFrameProcessor$Factory$Builder {
  <init>();
  androidx.media3.effect.DefaultVideoFrameProcessor$Factory build();
  androidx.media3.effect.DefaultVideoFrameProcessor$Factory$Builder setEnableReplayableCache(boolean);
}

# including out/soong/.intermediates/prebuilts/sdk/current/androidx/m2repository/androidx/core/core-ktx/1.19.0-alpha01/androidx.core_core-ktx/android_common/aar/proguard.txt
# Intentionally empty proguard rules to indicate this library is safe to shrink

# including out/soong/.intermediates/prebuilts/sdk/current/androidx/m2repository/androidx/lifecycle/lifecycle-viewmodel-android/2.10.0-alpha04/androidx.lifecycle_lifecycle-viewmodel/android_common/aar/proguard.txt
-keepclassmembers,allowobfuscation class * extends androidx.lifecycle.ViewModel {
    <init>();
}

-keepclassmembers,allowobfuscation class * extends androidx.lifecycle.AndroidViewModel {
    <init>(android.app.Application);
}

# including out/soong/.intermediates/prebuilts/sdk/current/androidx/m2repository/androidx/lifecycle/lifecycle-livedata-core/2.10.0-alpha04/androidx.lifecycle_lifecycle-livedata-core/android_common/aar/proguard.txt
# Intentionally empty proguard rules to indicate this library is safe to shrink

# including out/soong/.intermediates/prebuilts/sdk/current/androidx/m2repository/androidx/savedstate/savedstate-android/1.4.0-alpha03/androidx.savedstate_savedstate/android_common/aar/proguard.txt
# Copyright (C) 2019 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# 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.

-keepclassmembers,allowobfuscation class * implements androidx.savedstate.SavedStateRegistry$AutoRecreated {
    <init>();
}

# including out/soong/.intermediates/prebuilts/sdk/current/androidx/m2repository/androidx/lifecycle/lifecycle-viewmodel-savedstate-android/2.10.0-alpha04/androidx.lifecycle_lifecycle-viewmodel-savedstate/android_common/aar/proguard.txt
-keepclassmembers,allowobfuscation class * extends androidx.lifecycle.ViewModel {
    <init>(androidx.lifecycle.SavedStateHandle);
}

-keepclassmembers,allowobfuscation class * extends androidx.lifecycle.AndroidViewModel {
    <init>(android.app.Application,androidx.lifecycle.SavedStateHandle);
}

# including out/soong/.intermediates/prebuilts/sdk/current/androidx/m2repository/androidx/navigationevent/navigationevent-android/1.0.0-alpha08/androidx.navigationevent_navigationevent/android_common/aar/proguard.txt
# Intentionally empty proguard rules to indicate this library is safe to shrink

# including out/soong/.intermediates/prebuilts/sdk/current/androidx/m2repository/androidx/activity/activity/1.12.0-alpha08/androidx.activity_activity/android_common/aar/proguard.txt
# Intentionally empty proguard rules to indicate this library is safe to shrink

# including out/soong/.intermediates/prebuilts/sdk/current/androidx/m2repository/androidx/vectordrawable/vectordrawable/1.2.0/androidx.vectordrawable_vectordrawable/android_common/aar/proguard.txt

# including out/soong/.intermediates/prebuilts/sdk/current/androidx/m2repository/androidx/vectordrawable/vectordrawable-animated/1.2.0/androidx.vectordrawable_vectordrawable-animated/android_common/aar/proguard.txt
# Copyright (C) 2016 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# 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.

# keep setters in VectorDrawables so that animations can still work.
-keepclassmembers class androidx.vectordrawable.graphics.drawable.VectorDrawableCompat$* {
   void set*(***);
   *** get*();
}

# including out/soong/.intermediates/prebuilts/sdk/current/androidx/m2repository/androidx/appcompat/appcompat-resources/1.8.0-alpha01/androidx.appcompat_appcompat-resources/android_common/aar/proguard.txt
# Intentionally empty proguard rules to indicate this library is safe to shrink

# including out/soong/.intermediates/prebuilts/sdk/current/androidx/m2repository/androidx/cursoradapter/cursoradapter/1.1.0-alpha01/androidx.cursoradapter_cursoradapter/android_common/aar/proguard.txt

# including out/soong/.intermediates/prebuilts/sdk/current/androidx/m2repository/androidx/customview/customview/1.2.0-alpha03/androidx.customview_customview/android_common/aar/proguard.txt

# including out/soong/.intermediates/prebuilts/sdk/current/androidx/m2repository/androidx/drawerlayout/drawerlayout/1.3.0-alpha01/androidx.drawerlayout_drawerlayout/android_common/aar/proguard.txt

# including out/soong/.intermediates/prebuilts/sdk/current/androidx/m2repository/androidx/lifecycle/lifecycle-process/2.10.0-alpha04/androidx.lifecycle_lifecycle-process/android_common/aar/proguard.txt
# this rule is need to work properly when app is compiled with api 28, see b/142778206
-keepclassmembers class * extends androidx.lifecycle.EmptyActivityLifecycleCallbacks { *; }
# including out/soong/.intermediates/prebuilts/sdk/current/androidx/m2repository/androidx/emoji2/emoji2/1.6.0/androidx.emoji2_emoji2/android_common/aar/proguard.txt
# Intentionally empty proguard rules to indicate this library is safe to shrink

# including out/soong/.intermediates/prebuilts/sdk/current/androidx/m2repository/androidx/emoji2/emoji2-views-helper/1.6.0/androidx.emoji2_emoji2-views-helper/android_common/aar/proguard.txt
# Intentionally empty proguard rules to indicate this library is safe to shrink

# including out/soong/.intermediates/prebuilts/sdk/current/androidx/m2repository/androidx/loader/loader/1.2.0-alpha01/androidx.loader_loader/android_common/aar/proguard.txt

# including out/soong/.intermediates/prebuilts/sdk/current/androidx/m2repository/androidx/viewpager/viewpager/1.1.0-alpha02/androidx.viewpager_viewpager/android_common/aar/proguard.txt

# including out/soong/.intermediates/prebuilts/sdk/current/androidx/m2repository/androidx/fragment/fragment/1.9.0-alpha01/androidx.fragment_fragment/android_common/aar/proguard.txt
# Copyright (C) 2020 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# 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.

# The default FragmentFactory creates Fragment instances using reflection
-if public class ** extends androidx.fragment.app.Fragment
-keepclasseswithmembers,allowobfuscation public class <1> {
    public <init>();
}

# FragmentTransition will reflectively lookup:
# androidx.transition.FragmentTransitionSupport
# We should ensure that we keep the constructor if the code using this is alive
-if class androidx.fragment.app.FragmentTransition {
   private static androidx.fragment.app.FragmentTransitionImpl resolveSupportImpl();
}
-keep class androidx.transition.FragmentTransitionSupport {
    public <init>();
}

# including out/soong/.intermediates/prebuilts/sdk/current/androidx/m2repository/androidx/resourceinspection/resourceinspection-annotation/1.1.0-alpha01/androidx.resourceinspection_resourceinspection-annotation/android_common/proguard_flags
# Rules extracted from:
# out/soong/.intermediates/prebuilts/sdk/current/androidx/m2repository/androidx/resourceinspection/resourceinspection-annotation/1.1.0-alpha01/androidx.resourceinspection_resourceinspection-annotation/android_common/combined/androidx.resourceinspection_resourceinspection-annotation.jar:META-INF/proguard/androidx-annotations.pro
-keep,allowobfuscation @interface androidx.annotation.Keep
-keep @androidx.annotation.Keep class * {*;}

-keepclasseswithmembers class * {
    @androidx.annotation.Keep <methods>;
}

-keepclasseswithmembers class * {
    @androidx.annotation.Keep <fields>;
}

-keepclasseswithmembers class * {
    @androidx.annotation.Keep <init>(...);
}

-keepclassmembers,allowobfuscation class * {
  @androidx.annotation.DoNotInline <methods>;
}


# including out/soong/.intermediates/prebuilts/sdk/current/androidx/m2repository/androidx/appcompat/appcompat/1.8.0-alpha01/androidx.appcompat_appcompat/android_common/aar/proguard.txt
# Copyright (C) 2018 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# 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.

# Never inline methods, but allow shrinking and obfuscation.
-keepclassmembernames,allowobfuscation,allowshrinking class androidx.appcompat.widget.AppCompatTextViewAutoSizeHelper$Impl* {
  <methods>;
}

# including external/lottie/proguard.flags
-keep public class com.airbnb.lottie.LottieAnimationView {
    public *;
}

# including out/soong/.intermediates/prebuilts/misc/common/androidx-media3/androidx.media3.media3-effect-nodeps/android_common/aar/proguard.txt

# including out/soong/.intermediates/prebuilts/misc/common/androidx-media3/androidx.media3.media3-muxer-nodeps/android_common/aar/proguard.txt

# including out/soong/.intermediates/prebuilts/misc/common/androidx-media3/androidx.media3.media3-inspector-nodeps/android_common/aar/proguard.txt

# including out/soong/.intermediates/prebuilts/misc/common/androidx-media3/androidx.media3.media3-transformer-nodeps/android_common/aar/proguard.txt
