-keepclassmembers enum co.pushe.plus.** { *; }
-keepclassmembers enum androidx.work.** { *; }

-keep class * extends co.pushe.plus.internal.PusheComponentInitializer {
    public void preInitialize(android.content.Context);
    public io.reactivex.Completable postInitialize(android.content.Context);
}
-keep class co.pushe.plus.internal.PusheInitializer { *; }

-keep class co.pushe.plus.** extends co.pushe.plus.internal.task.PusheTask { *; }

-optimizations !class/unboxing/enum

# -- Moshi --
-dontwarn okio.**
-dontwarn javax.annotation.**
-keepclasseswithmembers class * {
    <init>(...);
    @com.squareup.moshi.* <methods>;
}
-keep @com.squareup.moshi.JsonQualifier interface *

-keep class **JsonAdapter {
    <init>(...);
    <fields>;
}
-keepnames @com.squareup.moshi.JsonClass class *

-dontwarn org.codehaus.mojo.animal_sniffer.*

# Keep Exception names
-keepnames class co.pushe.plus.** extends java.lang.Exception

-keep class co.pushe.plus.datalytics.DatalyticsInitializer { *; }
-if class co.pushe.plus.datalytics.messages.upstream.CellCDMA
-keepnames class co.pushe.plus.datalytics.messages.upstream.CellCDMA
-if class co.pushe.plus.datalytics.messages.upstream.CellCDMA
-keep class co.pushe.plus.datalytics.messages.upstream.CellCDMAJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}

-if class co.pushe.plus.datalytics.messages.upstream.CellTdscdma
-keepnames class co.pushe.plus.datalytics.messages.upstream.CellTdscdma
-if class co.pushe.plus.datalytics.messages.upstream.CellTdscdma
-keep class co.pushe.plus.datalytics.messages.upstream.CellTdscdmaJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}

-if class co.pushe.plus.datalytics.messages.upstream.WifiInfoMessage
-keepnames class co.pushe.plus.datalytics.messages.upstream.WifiInfoMessage
-if class co.pushe.plus.datalytics.messages.upstream.WifiInfoMessage
-keep class co.pushe.plus.datalytics.messages.upstream.WifiInfoMessageJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}
-if class co.pushe.plus.datalytics.messages.upstream.WifiInfoMessage
-keepnames class kotlin.jvm.internal.DefaultConstructorMarker
-if class co.pushe.plus.datalytics.messages.upstream.WifiInfoMessage
-keepclassmembers class co.pushe.plus.datalytics.messages.upstream.WifiInfoMessage {
    public synthetic <init>(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String,int,kotlin.jvm.internal.DefaultConstructorMarker);
}

-if class co.pushe.plus.datalytics.messages.upstream.CellWCDMA
-keepnames class co.pushe.plus.datalytics.messages.upstream.CellWCDMA
-if class co.pushe.plus.datalytics.messages.upstream.CellWCDMA
-keep class co.pushe.plus.datalytics.messages.upstream.CellWCDMAJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}

-if class co.pushe.plus.datalytics.messages.upstream.AppInstallMessage
-keepnames class co.pushe.plus.datalytics.messages.upstream.AppInstallMessage
-if class co.pushe.plus.datalytics.messages.upstream.AppInstallMessage
-keep class co.pushe.plus.datalytics.messages.upstream.AppInstallMessageJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}
-if class co.pushe.plus.datalytics.messages.upstream.AppInstallMessage
-keepnames class kotlin.jvm.internal.DefaultConstructorMarker
-if class co.pushe.plus.datalytics.messages.upstream.AppInstallMessage
-keepclassmembers class co.pushe.plus.datalytics.messages.upstream.AppInstallMessage {
    public synthetic <init>(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.util.List,int,kotlin.jvm.internal.DefaultConstructorMarker);
}

-if class co.pushe.plus.datalytics.messages.upstream.ScreenOnOffMessage
-keepnames class co.pushe.plus.datalytics.messages.upstream.ScreenOnOffMessage
-if class co.pushe.plus.datalytics.messages.upstream.ScreenOnOffMessage
-keep class co.pushe.plus.datalytics.messages.upstream.ScreenOnOffMessageJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}
-if class co.pushe.plus.datalytics.messages.upstream.ScreenOnOffMessage
-keepnames class kotlin.jvm.internal.DefaultConstructorMarker
-if class co.pushe.plus.datalytics.messages.upstream.ScreenOnOffMessage
-keepclassmembers class co.pushe.plus.datalytics.messages.upstream.ScreenOnOffMessage {
    public synthetic <init>(java.lang.String,java.lang.String,int,kotlin.jvm.internal.DefaultConstructorMarker);
}

-if class co.pushe.plus.datalytics.messages.upstream.VariableDataMessage
-keepnames class co.pushe.plus.datalytics.messages.upstream.VariableDataMessage
-if class co.pushe.plus.datalytics.messages.upstream.VariableDataMessage
-keep class co.pushe.plus.datalytics.messages.upstream.VariableDataMessageJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}
-if class co.pushe.plus.datalytics.messages.upstream.VariableDataMessage
-keepnames class kotlin.jvm.internal.DefaultConstructorMarker
-if class co.pushe.plus.datalytics.messages.upstream.VariableDataMessage
-keepclassmembers class co.pushe.plus.datalytics.messages.upstream.VariableDataMessage {
    public synthetic <init>(java.lang.String,java.lang.String,long,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,int,kotlin.jvm.internal.DefaultConstructorMarker);
}

-if class co.pushe.plus.datalytics.messages.upstream.CellGSM
-keepnames class co.pushe.plus.datalytics.messages.upstream.CellGSM
-if class co.pushe.plus.datalytics.messages.upstream.CellGSM
-keep class co.pushe.plus.datalytics.messages.upstream.CellGSMJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}

-if class co.pushe.plus.datalytics.messages.upstream.CellLTE
-keepnames class co.pushe.plus.datalytics.messages.upstream.CellLTE
-if class co.pushe.plus.datalytics.messages.upstream.CellLTE
-keep class co.pushe.plus.datalytics.messages.upstream.CellLTEJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}

-if class co.pushe.plus.datalytics.messages.upstream.CellArrayWCDMA
-keepnames class co.pushe.plus.datalytics.messages.upstream.CellArrayWCDMA
-if class co.pushe.plus.datalytics.messages.upstream.CellArrayWCDMA
-keep class co.pushe.plus.datalytics.messages.upstream.CellArrayWCDMAJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}
-if class co.pushe.plus.datalytics.messages.upstream.CellArrayWCDMA
-keepnames class kotlin.jvm.internal.DefaultConstructorMarker
-if class co.pushe.plus.datalytics.messages.upstream.CellArrayWCDMA
-keepclassmembers class co.pushe.plus.datalytics.messages.upstream.CellArrayWCDMA {
    public synthetic <init>(co.pushe.plus.datalytics.messages.upstream.CellWCDMA,co.pushe.plus.datalytics.messages.upstream.SSP,int,kotlin.jvm.internal.DefaultConstructorMarker);
}

-if class co.pushe.plus.datalytics.messages.upstream.CellInfoDefaultMessage
-keepnames class co.pushe.plus.datalytics.messages.upstream.CellInfoDefaultMessage
-if class co.pushe.plus.datalytics.messages.upstream.CellInfoDefaultMessage
-keep class co.pushe.plus.datalytics.messages.upstream.CellInfoDefaultMessageJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}
-if class co.pushe.plus.datalytics.messages.upstream.CellInfoDefaultMessage
-keepnames class kotlin.jvm.internal.DefaultConstructorMarker
-if class co.pushe.plus.datalytics.messages.upstream.CellInfoDefaultMessage
-keepclassmembers class co.pushe.plus.datalytics.messages.upstream.CellInfoDefaultMessage {
    public synthetic <init>(java.util.List,int,kotlin.jvm.internal.DefaultConstructorMarker);
}

-if class co.pushe.plus.datalytics.messages.upstream.CellArrayUnknown
-keepnames class co.pushe.plus.datalytics.messages.upstream.CellArrayUnknown
-if class co.pushe.plus.datalytics.messages.upstream.CellArrayUnknown
-keep class co.pushe.plus.datalytics.messages.upstream.CellArrayUnknownJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}
-if class co.pushe.plus.datalytics.messages.upstream.CellArrayUnknown
-keepnames class kotlin.jvm.internal.DefaultConstructorMarker
-if class co.pushe.plus.datalytics.messages.upstream.CellArrayUnknown
-keepclassmembers class co.pushe.plus.datalytics.messages.upstream.CellArrayUnknown {
    public synthetic <init>(java.util.Map,int,kotlin.jvm.internal.DefaultConstructorMarker);
}

-if class co.pushe.plus.datalytics.messages.downstream.ScheduleCollectionMessage
-keepnames class co.pushe.plus.datalytics.messages.downstream.ScheduleCollectionMessage
-if class co.pushe.plus.datalytics.messages.downstream.ScheduleCollectionMessage
-keep class co.pushe.plus.datalytics.messages.downstream.ScheduleCollectionMessageJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}
-if class co.pushe.plus.datalytics.messages.downstream.ScheduleCollectionMessage
-keepnames class kotlin.jvm.internal.DefaultConstructorMarker
-if class co.pushe.plus.datalytics.messages.downstream.ScheduleCollectionMessage
-keepclassmembers class co.pushe.plus.datalytics.messages.downstream.ScheduleCollectionMessage {
    public synthetic <init>(co.pushe.plus.datalytics.messages.downstream.CollectionMode,java.lang.Long,java.lang.Boolean,int,kotlin.jvm.internal.DefaultConstructorMarker);
}

-if class co.pushe.plus.datalytics.messages.downstream.RemoveGeofenceMessage
-keepnames class co.pushe.plus.datalytics.messages.downstream.RemoveGeofenceMessage
-if class co.pushe.plus.datalytics.messages.downstream.RemoveGeofenceMessage
-keep class co.pushe.plus.datalytics.messages.downstream.RemoveGeofenceMessageJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}

-if class co.pushe.plus.datalytics.messages.upstream.CellArrayTdscdma
-keepnames class co.pushe.plus.datalytics.messages.upstream.CellArrayTdscdma
-if class co.pushe.plus.datalytics.messages.upstream.CellArrayTdscdma
-keep class co.pushe.plus.datalytics.messages.upstream.CellArrayTdscdmaJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}
-if class co.pushe.plus.datalytics.messages.upstream.CellArrayTdscdma
-keepnames class kotlin.jvm.internal.DefaultConstructorMarker
-if class co.pushe.plus.datalytics.messages.upstream.CellArrayTdscdma
-keepclassmembers class co.pushe.plus.datalytics.messages.upstream.CellArrayTdscdma {
    public synthetic <init>(co.pushe.plus.datalytics.messages.upstream.CellTdscdma,co.pushe.plus.datalytics.messages.upstream.SSP,int,kotlin.jvm.internal.DefaultConstructorMarker);
}

-if class co.pushe.plus.datalytics.messages.upstream.CellArray
-keepnames class co.pushe.plus.datalytics.messages.upstream.CellArray
-if class co.pushe.plus.datalytics.messages.upstream.CellArray
-keep class co.pushe.plus.datalytics.messages.upstream.CellArrayJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}
-if class co.pushe.plus.datalytics.messages.upstream.CellArray
-keepnames class kotlin.jvm.internal.DefaultConstructorMarker
-if class co.pushe.plus.datalytics.messages.upstream.CellArray
-keepclassmembers class co.pushe.plus.datalytics.messages.upstream.CellArray {
    public synthetic <init>(kotlin.jvm.internal.DefaultConstructorMarker);
}

-if class co.pushe.plus.datalytics.messages.upstream.ApplicationDetailsMessage
-keepnames class co.pushe.plus.datalytics.messages.upstream.ApplicationDetailsMessage
-if class co.pushe.plus.datalytics.messages.upstream.ApplicationDetailsMessage
-keep class co.pushe.plus.datalytics.messages.upstream.ApplicationDetailsMessageJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}
-if class co.pushe.plus.datalytics.messages.upstream.ApplicationDetailsMessage
-keepnames class kotlin.jvm.internal.DefaultConstructorMarker
-if class co.pushe.plus.datalytics.messages.upstream.ApplicationDetailsMessage
-keepclassmembers class co.pushe.plus.datalytics.messages.upstream.ApplicationDetailsMessage {
    public synthetic <init>(java.lang.String,java.lang.String,java.lang.String,java.lang.Long,java.lang.Long,java.lang.String,java.util.List,java.lang.Boolean,int,kotlin.jvm.internal.DefaultConstructorMarker);
}

-if class co.pushe.plus.datalytics.messages.upstream.ConstantDataMessage
-keepnames class co.pushe.plus.datalytics.messages.upstream.ConstantDataMessage
-if class co.pushe.plus.datalytics.messages.upstream.ConstantDataMessage
-keep class co.pushe.plus.datalytics.messages.upstream.ConstantDataMessageJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}
-if class co.pushe.plus.datalytics.messages.upstream.ConstantDataMessage
-keepnames class kotlin.jvm.internal.DefaultConstructorMarker
-if class co.pushe.plus.datalytics.messages.upstream.ConstantDataMessage
-keepclassmembers class co.pushe.plus.datalytics.messages.upstream.ConstantDataMessage {
    public synthetic <init>(java.lang.String,java.lang.String,java.lang.String,int,kotlin.jvm.internal.DefaultConstructorMarker);
}

-if class co.pushe.plus.datalytics.messages.upstream.CellArrayNr
-keepnames class co.pushe.plus.datalytics.messages.upstream.CellArrayNr
-if class co.pushe.plus.datalytics.messages.upstream.CellArrayNr
-keep class co.pushe.plus.datalytics.messages.upstream.CellArrayNrJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}
-if class co.pushe.plus.datalytics.messages.upstream.CellArrayNr
-keepnames class kotlin.jvm.internal.DefaultConstructorMarker
-if class co.pushe.plus.datalytics.messages.upstream.CellArrayNr
-keepclassmembers class co.pushe.plus.datalytics.messages.upstream.CellArrayNr {
    public synthetic <init>(co.pushe.plus.datalytics.messages.upstream.CellNr,co.pushe.plus.datalytics.messages.upstream.SSP,int,kotlin.jvm.internal.DefaultConstructorMarker);
}

-if class co.pushe.plus.datalytics.messages.upstream.CellArrayLTE
-keepnames class co.pushe.plus.datalytics.messages.upstream.CellArrayLTE
-if class co.pushe.plus.datalytics.messages.upstream.CellArrayLTE
-keep class co.pushe.plus.datalytics.messages.upstream.CellArrayLTEJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}
-if class co.pushe.plus.datalytics.messages.upstream.CellArrayLTE
-keepnames class kotlin.jvm.internal.DefaultConstructorMarker
-if class co.pushe.plus.datalytics.messages.upstream.CellArrayLTE
-keepclassmembers class co.pushe.plus.datalytics.messages.upstream.CellArrayLTE {
    public synthetic <init>(co.pushe.plus.datalytics.messages.upstream.CellLTE,co.pushe.plus.datalytics.messages.upstream.SSP,int,kotlin.jvm.internal.DefaultConstructorMarker);
}

-if class co.pushe.plus.datalytics.messages.upstream.CellInfoMessage
-keepnames class co.pushe.plus.datalytics.messages.upstream.CellInfoMessage
-if class co.pushe.plus.datalytics.messages.upstream.CellInfoMessage
-keep class co.pushe.plus.datalytics.messages.upstream.CellInfoMessageJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}
-if class co.pushe.plus.datalytics.messages.upstream.CellInfoMessage
-keepnames class kotlin.jvm.internal.DefaultConstructorMarker
-if class co.pushe.plus.datalytics.messages.upstream.CellInfoMessage
-keepclassmembers class co.pushe.plus.datalytics.messages.upstream.CellInfoMessage {
    public synthetic <init>(java.util.List,int,kotlin.jvm.internal.DefaultConstructorMarker);
}

-if class co.pushe.plus.datalytics.messages.upstream.SSP
-keepnames class co.pushe.plus.datalytics.messages.upstream.SSP
-if class co.pushe.plus.datalytics.messages.upstream.SSP
-keep class co.pushe.plus.datalytics.messages.upstream.SSPJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}

-if class co.pushe.plus.datalytics.CollectorSettings
-keepnames class co.pushe.plus.datalytics.CollectorSettings
-if class co.pushe.plus.datalytics.CollectorSettings
-keep class co.pushe.plus.datalytics.CollectorSettingsJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}

-if class co.pushe.plus.datalytics.messages.upstream.AppUninstallMessage
-keepnames class co.pushe.plus.datalytics.messages.upstream.AppUninstallMessage
-if class co.pushe.plus.datalytics.messages.upstream.AppUninstallMessage
-keep class co.pushe.plus.datalytics.messages.upstream.AppUninstallMessageJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}
-if class co.pushe.plus.datalytics.messages.upstream.AppUninstallMessage
-keepnames class kotlin.jvm.internal.DefaultConstructorMarker
-if class co.pushe.plus.datalytics.messages.upstream.AppUninstallMessage
-keepclassmembers class co.pushe.plus.datalytics.messages.upstream.AppUninstallMessage {
    public synthetic <init>(java.lang.String,int,kotlin.jvm.internal.DefaultConstructorMarker);
}

-if class co.pushe.plus.datalytics.messages.upstream.CellArrayCDMA
-keepnames class co.pushe.plus.datalytics.messages.upstream.CellArrayCDMA
-if class co.pushe.plus.datalytics.messages.upstream.CellArrayCDMA
-keep class co.pushe.plus.datalytics.messages.upstream.CellArrayCDMAJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}
-if class co.pushe.plus.datalytics.messages.upstream.CellArrayCDMA
-keepnames class kotlin.jvm.internal.DefaultConstructorMarker
-if class co.pushe.plus.datalytics.messages.upstream.CellArrayCDMA
-keepclassmembers class co.pushe.plus.datalytics.messages.upstream.CellArrayCDMA {
    public synthetic <init>(co.pushe.plus.datalytics.messages.upstream.CellCDMA,co.pushe.plus.datalytics.messages.upstream.SSP,int,kotlin.jvm.internal.DefaultConstructorMarker);
}

-if class co.pushe.plus.datalytics.messages.upstream.CellArrayGSM
-keepnames class co.pushe.plus.datalytics.messages.upstream.CellArrayGSM
-if class co.pushe.plus.datalytics.messages.upstream.CellArrayGSM
-keep class co.pushe.plus.datalytics.messages.upstream.CellArrayGSMJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}
-if class co.pushe.plus.datalytics.messages.upstream.CellArrayGSM
-keepnames class kotlin.jvm.internal.DefaultConstructorMarker
-if class co.pushe.plus.datalytics.messages.upstream.CellArrayGSM
-keepclassmembers class co.pushe.plus.datalytics.messages.upstream.CellArrayGSM {
    public synthetic <init>(co.pushe.plus.datalytics.messages.upstream.CellGSM,co.pushe.plus.datalytics.messages.upstream.SSP,int,kotlin.jvm.internal.DefaultConstructorMarker);
}

-if class co.pushe.plus.datalytics.messages.upstream.BootCompletedMessage
-keepnames class co.pushe.plus.datalytics.messages.upstream.BootCompletedMessage
-if class co.pushe.plus.datalytics.messages.upstream.BootCompletedMessage
-keep class co.pushe.plus.datalytics.messages.upstream.BootCompletedMessageJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}
-if class co.pushe.plus.datalytics.messages.upstream.BootCompletedMessage
-keepnames class kotlin.jvm.internal.DefaultConstructorMarker
-if class co.pushe.plus.datalytics.messages.upstream.BootCompletedMessage
-keepclassmembers class co.pushe.plus.datalytics.messages.upstream.BootCompletedMessage {
    public synthetic <init>(kotlin.jvm.internal.DefaultConstructorMarker);
}

-if class co.pushe.plus.datalytics.messages.upstream.FloatingDataMessage
-keepnames class co.pushe.plus.datalytics.messages.upstream.FloatingDataMessage
-if class co.pushe.plus.datalytics.messages.upstream.FloatingDataMessage
-keep class co.pushe.plus.datalytics.messages.upstream.FloatingDataMessageJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}
-if class co.pushe.plus.datalytics.messages.upstream.FloatingDataMessage
-keepnames class kotlin.jvm.internal.DefaultConstructorMarker
-if class co.pushe.plus.datalytics.messages.upstream.FloatingDataMessage
-keepclassmembers class co.pushe.plus.datalytics.messages.upstream.FloatingDataMessage {
    public synthetic <init>(java.lang.String,java.lang.String,java.lang.String,co.pushe.plus.utils.NetworkType,java.lang.String,java.lang.Integer,java.lang.String,java.lang.String,java.lang.String,int,kotlin.jvm.internal.DefaultConstructorMarker);
}

-if class co.pushe.plus.datalytics.messages.upstream.CellNr
-keepnames class co.pushe.plus.datalytics.messages.upstream.CellNr
-if class co.pushe.plus.datalytics.messages.upstream.CellNr
-keep class co.pushe.plus.datalytics.messages.upstream.CellNrJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}

-if class co.pushe.plus.datalytics.messages.upstream.AppIsHiddenMessage
-keepnames class co.pushe.plus.datalytics.messages.upstream.AppIsHiddenMessage
-if class co.pushe.plus.datalytics.messages.upstream.AppIsHiddenMessage
-keep class co.pushe.plus.datalytics.messages.upstream.AppIsHiddenMessageJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}
-if class co.pushe.plus.datalytics.messages.upstream.AppIsHiddenMessage
-keepnames class kotlin.jvm.internal.DefaultConstructorMarker
-if class co.pushe.plus.datalytics.messages.upstream.AppIsHiddenMessage
-keepclassmembers class co.pushe.plus.datalytics.messages.upstream.AppIsHiddenMessage {
    public synthetic <init>(boolean,int,kotlin.jvm.internal.DefaultConstructorMarker);
}


