-keeppackagenames

#Retrofit
-keepattributes Signature, InnerClasses, EnclosingMethod
-keepattributes SourceFile,LineNumberTable
-keepattributes RuntimeVisibleAnnotations, RuntimeVisibleParameterAnnotations

# Retain service method parameters when optimizing.
-keepclassmembers,allowshrinking,allowobfuscation interface * {
    @retrofit2.http.* <methods>;
}

# Ignore annotation used for build tooling.
-dontwarn org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement

# Ignore JSR 305 annotations for embedding nullability information.
-dontwarn javax.annotation.**

# Guarded by a NoClassDefFoundError try/catch and only used when on the classpath.
-dontwarn kotlin.Unit

# Top-level functions that can only be used by Kotlin.
-dontwarn retrofit2.KotlinExtensions
-dontwarn retrofit2.KotlinExtensions$*

-dontwarn okhttp3.**
-dontwarn okio.**

# With R8 full mode, it sees no subtypes of Retrofit interfaces since they are created with a Proxy
# and replaces all potential values with null. Explicitly keeping the interfaces prevents this.
-if interface * { @retrofit2.http.* <methods>; }
-keep,allowobfuscation interface <1>

-keep class com.authme.lib.liveness.repository.** { *; }
-keep class com.authme.lib.liveness.model.** { *; }
-keep interface com.authme.lib.liveness.model.** { *; }
-keep class com.authme.lib.liveness.LivenessUseCase { *; }
-keep class com.authme.lib.liveness.LivenessUtils { *; }
-keep class com.authme.lib.liveness.LivenessUtils$Companion { *; }
-keep class com.authme.lib.liveness.FasRunResult { *; }
-keep class com.authme.lib.liveness.LivenessFactory { *; }
-keep class com.authme.lib.liveness.LivenessConfigKt { *; }