-ignorewarnings
-dontpreverify
-dontoptimize
-optimizationpasses 5
-renamesourcefileattribute SourceFile
-keepattributes *Annotation*,Signature,EnclosingMethod,InnerClasses,SourceFile,LineNumberTable
-keep public class * extends android.app.Service
-keep public class * extends android.content.BroadcastReceiver
-keep class * implements java.io.Serializable {
    public static final long serialVersionUID;
}

-repackageclasses com._ypush

# YIM
#-keep class com.ypush._YIM.YIM{*;}
-keep class com.ypush._YIM.YIM$Companion{*;}
-keep class com.ypush._YIM._YIMUtilsManager{*;}
-keep class com.ypush._YIM._YIMUserManager{*;}
-keep class com.ypush._YIM._YIMListenerManager{*;}
-keep class com.ypush._YIM._YIMPushManager{*;}
-keep class com.ypush._YIM._YIMConversationManager{*;}
-keep class com.ypush._YIM._YIMMessageManager{*;}
-keep class com.ypush._YIM._YIMTeamManager{*;}
-keep class com.ypush._YIM._YIMEventManager{*;}
-keep class com.ypush._YIM._YIMRoomManager{*;}
-keep class com.ypush._YIM.manager.**$*{*;}
-keep class com.ypush._YIM.core.**{*;}
-keep class com.ypush._YIM.model.**{*;}
-keep class com.ypush._YIM.utils.**$*{*;}

# Native methods
-keepclasseswithmembernames class io.objectbox.** {
    native <methods>;
}

# For __boxStore field in entities
-keep class io.objectbox.**{*;}
-keep class io.objectbox.BoxStore

-keep class * extends io.objectbox.Cursor {
    <init>(...);
}

# Native code expects names to match
-keep class io.objectbox.relation.ToOne {
    void setTargetId(long);
}
-keep class io.objectbox.relation.ToMany
-keep class io.objectbox.tree.LeafNode

-keep @interface io.objectbox.annotation.Entity

# Keep entity constructors
-keep @io.objectbox.annotation.Entity class * { <init>(...); }

# For relation ID fields
-keepclassmembers @io.objectbox.annotation.Entity class * {
    <fields>;
}

-keep interface io.objectbox.converter.PropertyConverter {*;}
-keep class * implements io.objectbox.converter.PropertyConverter {*;}

-keep class io.objectbox.exception.DbException {*;}
-keep class * extends io.objectbox.exception.DbException {*;}

-keep class io.objectbox.exception.DbExceptionListener {*;}
-keep class * implements io.objectbox.exception.DbExceptionListener {*;}

# for essentials
-dontwarn sun.misc.Unsafe
# SpotBugs annotations
-dontwarn edu.umd.cs.findbugs.annotations.SuppressFBWarnings

-keep class com.alibaba.sdk.android.oss.** { *; }
-dontwarn okio.**
-dontwarn org.apache.commons.codec.binary.**
# YPush
-keep class com.ypush.YPush{public *;}
-keep class com.ypush.YPush$Companion {
    <fields>;
    <methods>;
}
-keep class com.ypush.model.**{public *;}

# other
-keep class okhttp3.**{*;}
-keep class okio.**{*;}
-keep class com.google.**{*;}

-dontwarn com.huawei.android.os.BuildEx$VERSION
-dontwarn com.huawei.hianalytics.process.HiAnalyticsInstance
-dontwarn com.huawei.hianalytics.process.HiAnalyticsManager
-dontwarn java.awt.Color
-dontwarn java.awt.Font
-dontwarn java.awt.Point
-dontwarn java.awt.Rectangle
-dontwarn javax.money.CurrencyUnit
-dontwarn javax.money.Monetary
-dontwarn org.bouncycastle.crypto.BlockCipher
-dontwarn org.bouncycastle.crypto.engines.AESEngine
-dontwarn org.bouncycastle.crypto.prng.SP800SecureRandom
-dontwarn org.bouncycastle.crypto.prng.SP800SecureRandomBuilder
-dontwarn org.conscrypt.Conscrypt$ProviderBuilder
-dontwarn org.conscrypt.Conscrypt
-dontwarn org.javamoney.moneta.Money
-dontwarn org.joda.time.DateTime
-dontwarn org.joda.time.DateTimeZone
-dontwarn org.joda.time.Duration
-dontwarn org.joda.time.Instant
-dontwarn org.joda.time.LocalDate
-dontwarn org.joda.time.LocalDateTime
-dontwarn org.joda.time.LocalTime
-dontwarn org.joda.time.Period
-dontwarn org.joda.time.ReadablePartial
-dontwarn org.joda.time.format.DateTimeFormat
-dontwarn org.joda.time.format.DateTimeFormatter
-dontwarn springfox.documentation.spring.web.json.Json