DecompileClassesText

This is an autogenerated documentation file for the script: DecompileClassesText

Run it

$ ./androanalyze scripts_builtin/DecompileClassesText.py --package-names com.spotify.music

View the results

Non-Binary

$ ./androquery result -sn DecompileClassesText -pn com.spotify.music

 Empty

Binary

For the case that the result may exceed 16MB, it is stored in MongoDB’s gridFS. Therefore we need to use a different query syntax:

View the meta data:

$ ./androquery result -sn DecompileClassesText -pn com.spotify.music -nd

 {
     "chunkSize": 261120,
     "filename": "com.spotify.music_2.2.0.636_DecompileClassesText.java",
     "length": 12011520,
     "uploadDate": "2015-06-26T17:31:14.699000",
     "md5": "ecab0172ceaccb5a85f96f579af01573",
     "metadata": {
         "apk meta": {
             "package name": "com.spotify.music",
             "version name": "2.2.0.636",
             "sha256": "bbf2c7d7b8fbbce68a97a2f0fd7e854e29b1ea9e3836615e7e6a35095915a607",
             "import date": "2015-04-14T15:10:06.364000",
             "build_date": "2015-02-11T12:25:40",
             "path": "/mnt/stuff/btsync/apks_manual_downloads/02.03.2015_top_free_4/apps_topselling_free/MUSIC_AND_AUDIO/com.spotify.music.apk",
             "tag": null
         },
         "script meta": {
             "name": "DecompileClassesText",
             "sha256": "fb5ecf5b3d21d304d12908035b9be2e5488f98a280831c518f1f7f505fa4f940",
             "analysis date": "2015-06-26T17:13:38.530000",
             "version": "0.1"
         },
         "decompiled_classes": null
     }
 }

View the raw data:

$ ./androquery result -sn DecompileClassesText -pn com.spotify.music -nd -r

 package com.spotify.mobile.android.util.ui;
 public class d implements android.view.Window$Callback {
     private android.view.Window$Callback a;

     public d(android.view.Window$Callback p1)
     {
         this.a = p1;
         return;
     }

     public boolean dispatchGenericMotionEvent(android.view.MotionEvent p2)
     {
         return this.a.dispatchGenericMotionEvent(p2);
     }

     public boolean dispatchKeyEvent(android.view.KeyEvent p2)
     {
         return this.a.dispatchKeyEvent(p2);
     }

     public boolean dispatchKeyShortcutEvent(android.view.KeyEvent p2)
     {
         return this.a.dispatchKeyShortcutEvent(p2);
     }

     public boolean dispatchPopulateAccessibilityEvent(android.view.accessibility.AccessibilityEvent p2)
     {
         return this.a.dispatchPopulateAccessibilityEvent(p2);
     }

     public boolean dispatchTouchEvent(android.view.MotionEvent p2)
     {
         return this.a.dispatchTouchEvent(p2);
     }

     public boolean dispatchTrackballEvent(android.view.MotionEvent p2)
     {
         return this.a.dispatchTrackballEvent(p2);
     }

     public void onActionModeFinished(android.view.ActionMode p2)
     {
         this.a.onActionModeFinished(p2);
         return;
     }

     public void onActionModeStarted(android.view.ActionMode p2)
     {
         this.a.onActionModeStarted(p2);
         return;
     }

     public void onAttachedToWindow()
     {
         this.a.onAttachedToWindow();
         return;
     }

     public void onContentChanged()
     {
         this.a.onContentChanged();
         return;
     }

     public boolean onCreatePanelMenu(int p2, android.view.Menu p3)
     {
         return this.a.onCreatePanelMenu(p2, p3);
     }

     public android.view.View onCreatePanelView(int p2)
     {
         return this.a.onCreatePanelView(p2);
     }

     public void onDetachedFromWindow()
     {
         this.a.onDetachedFromWindow();
         return;
     }

     public boolean onMenuItemSelected(int p2, android.view.MenuItem p3)
     {
         return this.a.onMenuItemSelected(p2, p3);
     }

     public boolean onMenuOpened(int p2, android.view.Menu p3)
     {
         return this.a.onMenuOpened(p2, p3);
     }

     public void onPanelClosed(int p2, android.view.Menu p3)
     {
         this.a.onPanelClosed(p2, p3);
         return;
     }

     public boolean onPreparePanel(int p2, android.view.View p3, android.view.Menu p4)
     {
         return this.a.onPreparePanel(p2, p3, p4);
     }

     public boolean onSearchRequested()
     {
         return this.a.onSearchRequested();
     }

     public void onWindowAttributesChanged(android.view.WindowManager$LayoutParams p2)
     {
         this.a.onWindowAttributesChanged(p2);
         return;
     }

     public void onWindowFocusChanged(boolean p2)
     {
         this.a.onWindowFocusChanged(p2);
         return;
     }

     public android.view.ActionMode onWindowStartingActionMode(android.view.ActionMode$Callback p2)
     {
         return this.a.onWindowStartingActionMode(p2);
     }
 }
 package com.a.a.a;
 public interface a implements android.os.IInterface {

     public abstract int a();

     public abstract android.os.Bundle a();

     public abstract android.os.Bundle a();

     public abstract android.os.Bundle a();

     public abstract int b();
 }
 package com.a.a.a;
 public abstract class b extends android.os.Binder implements com.a.a.a.a {

     public static com.a.a.a.a a(android.os.IBinder p2)
     {
         com.a.a.a.a v0_3;
         if (p2 != null) {
             com.a.a.a.a v0_1 = p2.queryLocalInterface("com.android.vending.billing.IInAppBillingService");
             if ((v0_1 == null) || (!(v0_1 instanceof com.a.a.a.a))) {
                 v0_3 = new com.a.a.a.c(p2);
             } else {
                 v0_3 = ((com.a.a.a.a) v0_1);
             }
         } else {
             v0_3 = 0;
         }
         return v0_3;
     }

     public boolean onTransact(int p9, android.os.Parcel p10, android.os.Parcel p11, int p12)
     {
         int v0_1;
         switch (p9) {
             case 1:
                 p10.enforceInterface("com.android.vending.billing.IInAppBillingService");
                 int v0_19 = this.a(p10.readInt(), p10.readString(), p10.readString());
                 p11.writeNoException();
                 p11.writeInt(v0_19);
                 v0_1 = 1;
                 break;
             case 2:
                 int v0_13;
                 p10.enforceInterface("com.android.vending.billing.IInAppBillingService");
                 String v1_3 = p10.readInt();
                 String v2_3 = p10.readString();
                 String v3_2 = p10.readString();
                 if (p10.readInt() == 0) {
                     v0_13 = 0;
                 } else {
                     v0_13 = ((android.os.Bundle) android.os.Bundle.CREATOR.createFromParcel(p10));
                 }
                 int v0_16 = this.a(v1_3, v2_3, v3_2, v0_13);
                 p11.writeNoException();
                 if (v0_16 == 0) {
                     p11.writeInt(0);
                 } else {
                     p11.writeInt(1);
                     v0_16.writeToParcel(p11, 1);
                 }
                 v0_1 = 1;
                 break;
             case 3:
                 p10.enforceInterface("com.android.vending.billing.IInAppBillingService");
                 int v0_10 = this.a(p10.readInt(), p10.readString(), p10.readString(), p10.readString(), p10.readString());
                 p11.writeNoException();
                 if (v0_10 == 0) {
                     p11.writeInt(0);
                 } else {
                     p11.writeInt(1);
                     v0_10.writeToParcel(p11, 1);
                 }
                 v0_1 = 1;
                 break;
             case 4:
                 p10.enforceInterface("com.android.vending.billing.IInAppBillingService");
                 int v0_7 = this.a(p10.readInt(), p10.readString(), p10.readString(), p10.readString());
                 p11.writeNoException();
                 if (v0_7 == 0) {
                     p11.writeInt(0);
                 } else {
                     p11.writeInt(1);
                     v0_7.writeToParcel(p11, 1);
                 }
                 v0_1 = 1;
                 break;
             case 5:
                 p10.enforceInterface("com.android.vending.billing.IInAppBillingService");
                 int v0_4 = this.b(p10.readInt(), p10.readString(), p10.readString());
                 p11.writeNoException();
                 p11.writeInt(v0_4);
                 v0_1 = 1;
                 break;
             case 1598968902:
                 p11.writeString("com.android.vending.billing.IInAppBillingService");
                 v0_1 = 1;
                 break;
             default:
                 v0_1 = super.onTransact(p9, p10, p11, p12);
         }
         return v0_1;
     }
 }
 package com.a.a.a;
 final class c implements com.a.a.a.a {
     private android.os.IBinder a;

     c(android.os.IBinder p1)
     {
         this.a = p1;
         return;
     }

     public final int a(int p6, String p7, String p8)
     {
         android.os.Parcel v1 = android.os.Parcel.obtain();
         android.os.Parcel v2 = android.os.Parcel.obtain();
         try {
             v1.writeInterfaceToken("com.android.vending.billing.IInAppBillingService");
             v1.writeInt(p6);
             v1.writeString(p7);
             v1.writeString(p8);
             this.a.transact(1, v1, v2, 0);
             v2.readException();
             Throwable v0_2 = v2.readInt();
             v2.recycle();
             v1.recycle();
             return v0_2;
         } catch (Throwable v0_3) {
             v2.recycle();
             v1.recycle();
             throw v0_3;
         }
     }

     public final android.os.Bundle a(int p6, String p7, String p8, android.os.Bundle p9)
     {
         android.os.Parcel v1 = android.os.Parcel.obtain();
         android.os.Parcel v2 = android.os.Parcel.obtain();
         try {
             v1.writeInterfaceToken("com.android.vending.billing.IInAppBillingService");
             v1.writeInt(p6);
             v1.writeString(p7);
             v1.writeString(p8);
         } catch (int v0_9) {
             v2.recycle();
             v1.recycle();
             throw v0_9;
         }
         if (p9 == null) {
             v1.writeInt(0);
         } else {
             v1.writeInt(1);
             p9.writeToParcel(v1, 0);
         }
         int v0_6;
         this.a.transact(2, v1, v2, 0);
         v2.readException();
         if (v2.readInt() == 0) {
             v0_6 = 0;
         } else {
             v0_6 = ((android.os.Bundle) android.os.Bundle.CREATOR.createFromParcel(v2));
         }
         v2.recycle();
         v1.recycle();
         return v0_6;
     }

     public final android.os.Bundle a(int p6, String p7, String p8, String p9)
     {
         android.os.Parcel v1 = android.os.Parcel.obtain();
         android.os.Parcel v2 = android.os.Parcel.obtain();
         try {
             int v0_3;
             v1.writeInterfaceToken("com.android.vending.billing.IInAppBillingService");
             v1.writeInt(p6);
             v1.writeString(p7);
             v1.writeString(p8);
             v1.writeString(p9);
             this.a.transact(4, v1, v2, 0);
             v2.readException();
         } catch (int v0_6) {
             v2.recycle();
             v1.recycle();
             throw v0_6;
         }
         if (v2.readInt() == 0) {
             v0_3 = 0;
         } else {
             v0_3 = ((android.os.Bundle) android.os.Bundle.CREATOR.createFromParcel(v2));
         }
         v2.recycle();
         v1.recycle();
         return v0_3;
     }

     public final android.os.Bundle a(int p6, String p7, String p8, String p9, String p10)
     {
         android.os.Parcel v1 = android.os.Parcel.obtain();
         android.os.Parcel v2 = android.os.Parcel.obtain();
         try {
             int v0_3;
             v1.writeInterfaceToken("com.android.vending.billing.IInAppBillingService");
             v1.writeInt(p6);
             v1.writeString(p7);
             v1.writeString(p8);
             v1.writeString(p9);
             v1.writeString(p10);
             this.a.transact(3, v1, v2, 0);
             v2.readException();
         } catch (int v0_6) {
             v2.recycle();
             v1.recycle();
             throw v0_6;
         }
         if (v2.readInt() == 0) {
             v0_3 = 0;
         } else {
             v0_3 = ((android.os.Bundle) android.os.Bundle.CREATOR.createFromParcel(v2));
         }
         v2.recycle();
         v1.recycle();
         return v0_3;
     }

     public final android.os.IBinder asBinder()
     {
         return this.a;
     }

     public final int b(int p6, String p7, String p8)
     {
         android.os.Parcel v1 = android.os.Parcel.obtain();
         android.os.Parcel v2 = android.os.Parcel.obtain();
         try {
             v1.writeInterfaceToken("com.android.vending.billing.IInAppBillingService");
             v1.writeInt(p6);
             v1.writeString(p7);
             v1.writeString(p8);
             this.a.transact(5, v1, v2, 0);
             v2.readException();
             Throwable v0_2 = v2.readInt();
             v2.recycle();
             v1.recycle();
             return v0_2;
         } catch (Throwable v0_3) {
             v2.recycle();
             v1.recycle();
             throw v0_3;
         }
     }
 }
 package com.b.a;
 final class a$1 implements java.util.concurrent.Callable {
     final synthetic com.b.a.a a;

     a$1(com.b.a.a p1)
     {
         this.a = p1;
         return;
     }

     private Void a()
     {
         try {
             if (com.b.a.a.a(this.a) != null) {
                 com.b.a.a.b(this.a);
                 if (com.b.a.a.c(this.a)) {
                     com.b.a.a.d(this.a);
                     com.b.a.a.e(this.a);
                 }
             } else {
             }
         } catch (com.b.a.a v0_7) {
             throw v0_7;
         }
         return 0;
     }

     public final synthetic Object call()
     {
         return this.a();
     }
 }
 package com.b.a;
 final class a$2 extends java.io.OutputStream {

     a$2()
     {
         return;
     }

     public final void write(int p1)
     {
         return;
     }
 }
 package com.b.a;
 public final class a implements java.io.Closeable {
     static final java.util.regex.Pattern a;
     private static final java.io.OutputStream p;
     final java.util.concurrent.ThreadPoolExecutor b;
     private final java.io.File c;
     private final java.io.File d;
     private final java.io.File e;
     private final java.io.File f;
     private final int g;
     private long h;
     private final int i;
     private long j;
     private java.io.Writer k;
     private final java.util.LinkedHashMap l;
     private int m;
     private long n;
     private final java.util.concurrent.Callable o;

     static a()
     {
         com.b.a.a.a = java.util.regex.Pattern.compile("[a-z0-9_-]{1,64}");
         com.b.a.a.p = new com.b.a.a$2();
         return;
     }

     private a(java.io.File p9)
     {
         this.j = 0;
         this.l = new java.util.LinkedHashMap(0, 1061158912, 1);
         this.n = 0;
         this.b = new java.util.concurrent.ThreadPoolExecutor(0, 1, 60, java.util.concurrent.TimeUnit.SECONDS, new java.util.concurrent.LinkedBlockingQueue());
         this.o = new com.b.a.a$1(this);
         this.c = p9;
         this.g = 1;
         this.d = new java.io.File(p9, "journal");
         this.e = new java.io.File(p9, "journal.tmp");
         this.f = new java.io.File(p9, "journal.bkp");
         this.i = 1;
         this.h = 10485760;
         return;
     }

     public static com.b.a.a a(java.io.File p6)
     {
         if (10485760 > 0) {
             void v0_3 = new java.io.File(p6, "journal.bkp");
             if (v0_3.exists()) {
                 String v1_3 = new java.io.File(p6, "journal");
                 if (!v1_3.exists()) {
                     com.b.a.a.a(v0_3, v1_3, 0);
                 } else {
                     v0_3.delete();
                 }
             }
             void v0_7;
             void v0_5 = new com.b.a.a(p6);
             if (!v0_5.d.exists()) {
                 p6.mkdirs();
                 v0_7 = new com.b.a.a(p6).e();
             } else {
                 try {
                     v0_7 = v0_5.c().d();
                     v0_7.k = new java.io.BufferedWriter(new java.io.OutputStreamWriter(new java.io.FileOutputStream(v0_7.d, 1), com.b.a.g.a));
                 } catch (String v1_8) {
                     System.out.println(new StringBuilder("DiskLruCache ").append(p6).append(" is corrupt: ").append(v1_8.getMessage()).append(", removing").toString());
                     v0_7.i();
                 }
             }
             return v0_7;
         } else {
             throw new IllegalArgumentException("maxSize <= 0");
         }
     }

     static synthetic java.io.Writer a(com.b.a.a p1)
     {
         return p1.k;
     }

     static synthetic void a(com.b.a.a p0, com.b.a.b p1, boolean p2)
     {
         p0.a(p1, p2);
         return;
     }

     private declared_synchronized void a(com.b.a.b p11, boolean p12)
     {
         java.util.concurrent.ThreadPoolExecutor v0_0 = 0;
         try {
             StringBuilder v2_0 = p11.a;
         } catch (java.util.concurrent.ThreadPoolExecutor v0_20) {
             throw v0_20;
         }
         if (v2_0.d == p11) {
             if ((!p12) || (v2_0.c)) {
                 while (v0_0 < this.i) {
                     int v1_17 = v2_0.b(v0_0);
                     if (!p12) {
                         com.b.a.a.b(v1_17);
                     } else {
                         if (v1_17.exists()) {
                             boolean v3_7 = v2_0.a(v0_0);
                             v1_17.renameTo(v3_7);
                             long v4_2 = v2_0.b[v0_0];
                             long v6 = v3_7.length();
                             v2_0.b[v0_0] = v6;
                             this.j = ((this.j - v4_2) + v6);
                         }
                     }
                     v0_0++;
                 }
                 this.m = (this.m + 1);
                 v2_0.d = 0;
                 if ((v2_0.c | p12) == 0) {
                     this.l.remove(v2_0.a);
                     this.k.write(new StringBuilder("REMOVE ").append(v2_0.a).append(10).toString());
                 } else {
                     v2_0.c = 1;
                     this.k.write(new StringBuilder("CLEAN ").append(v2_0.a).append(v2_0.a()).append(10).toString());
                     if (p12) {
                         java.util.concurrent.ThreadPoolExecutor v0_10 = this.n;
                         this.n = (1 + v0_10);
                         v2_0.e = v0_10;
                     }
                 }
                 this.k.flush();
                 if ((this.j > this.h) || (this.f())) {
                     this.b.submit(this.o);
                 }
             } else {
                 int v1_2 = 0;
                 while (v1_2 < this.i) {
                     if (p11.b[v1_2]) {
                         if (v2_0.b(v1_2).exists()) {
                             v1_2++;
                         } else {
                             p11.c();
                         }
                     } else {
                         p11.c();
                         throw new IllegalStateException(new StringBuilder("Newly created entry didn\'t create value for index ").append(v1_2).toString());
                     }
                 }
             }
             return;
         } else {
             throw new IllegalStateException();
         }
     }

     private static void a(java.io.File p1, java.io.File p2, boolean p3)
     {
         if (p3) {
             com.b.a.a.b(p2);
         }
         if (p1.renameTo(p2)) {
             return;
         } else {
             throw new java.io.IOException();
         }
     }

     static synthetic java.io.OutputStream b()
     {
         return com.b.a.a.p;
     }

     static synthetic void b(com.b.a.a p0)
     {
         p0.h();
         return;
     }

     private static void b(java.io.File p1)
     {
         if ((!p1.exists()) || (p1.delete())) {
             return;
         } else {
             throw new java.io.IOException();
         }
     }

     private void c()
     {
         com.b.a.f v1_1 = new com.b.a.f(new java.io.FileInputStream(this.d), com.b.a.g.a);
         try {
             int v0_2 = v1_1.a();
             int v2_2 = v1_1.a();
             boolean v3_0 = v1_1.a();
             String v4 = v1_1.a();
             String v5 = v1_1.a();
         } catch (int v0_14) {
             com.b.a.g.a(v1_1);
             throw v0_14;
         }
         if (("libcore.io.DiskLruCache".equals(v0_2)) && (("1".equals(v2_2)) && ((Integer.toString(this.g).equals(v3_0)) && ((Integer.toString(this.i).equals(v4)) && ("".equals(v5)))))) {
             int v0_3 = 0;
             try {
                 while(true) {
                     this.d(v1_1.a());
                     v0_3++;
                 }
             } catch (int v2) {
                 this.m = (v0_3 - this.l.size());
                 com.b.a.g.a(v1_1);
                 return;
             }
         } else {
             throw new java.io.IOException(new StringBuilder("unexpected journal header: [").append(v0_2).append(", ").append(v2_2).append(", ").append(v4).append(", ").append(v5).append("]").toString());
         }
     }

     static synthetic boolean c(com.b.a.a p1)
     {
         return p1.f();
     }

     private void d()
     {
         com.b.a.a.b(this.e);
         java.util.Iterator v3 = this.l.values().iterator();
         while (v3.hasNext()) {
             com.b.a.d v0_5 = ((com.b.a.d) v3.next());
             if (v0_5.d != null) {
                 v0_5.d = 0;
                 int v1_2 = 0;
                 while (v1_2 < this.i) {
                     com.b.a.a.b(v0_5.a(v1_2));
                     com.b.a.a.b(v0_5.b(v1_2));
                     v1_2++;
                 }
                 v3.remove();
             } else {
                 int v1_3 = 0;
                 while (v1_3 < this.i) {
                     this.j = (this.j + v0_5.b[v1_3]);
                     v1_3++;
                 }
             }
         }
         return;
     }

     static synthetic void d(com.b.a.a p0)
     {
         p0.e();
         return;
     }

     private void d(String p9)
     {
         String v2_0 = p9.indexOf(32);
         if (v2_0 != -1) {
             com.b.a.b v1_1;
             boolean v0_0 = (v2_0 + 1);
             int v3 = p9.indexOf(32, v0_0);
             if (v3 != -1) {
                 v1_1 = p9.substring(v0_0, v3);
                 boolean v0_5 = ((com.b.a.d) this.l.get(v1_1));
                 if (!v0_5) {
                     v0_5 = new com.b.a.d(this, v1_1, 0);
                     this.l.put(v1_1, v0_5);
                 }
                 if ((v3 == -1) || ((v2_0 != 5) || (!p9.startsWith("CLEAN")))) {
                     if ((v3 != -1) || ((v2_0 != 5) || (!p9.startsWith("DIRTY")))) {
                         if ((v3 != -1) || ((v2_0 != 4) || (!p9.startsWith("READ")))) {
                             throw new java.io.IOException(new StringBuilder("unexpected journal line: ").append(p9).toString());
                         }
                     } else {
                         v0_5.d = new com.b.a.b(this, v0_5, 0);
                     }
                 } else {
                     com.b.a.b v1_17 = p9.substring((v3 + 1)).split(" ");
                     v0_5.c = 1;
                     v0_5.d = 0;
                     v0_5.a(v1_17);
                 }
             } else {
                 boolean v0_2 = p9.substring(v0_0);
                 if ((v2_0 != 6) || (!p9.startsWith("REMOVE"))) {
                     v1_1 = v0_2;
                 } else {
                     this.l.remove(v0_2);
                 }
             }
             return;
         } else {
             throw new java.io.IOException(new StringBuilder("unexpected journal line: ").append(p9).toString());
         }
     }

     static synthetic int e(com.b.a.a p1)
     {
         p1.m = 0;
         return 0;
     }

     private declared_synchronized void e()
     {
         try {
             if (this.k != null) {
                 this.k.close();
             }
         } catch (java.io.BufferedWriter v0_32) {
             throw v0_32;
         }
         java.io.OutputStreamWriter v1_1 = new java.io.BufferedWriter(new java.io.OutputStreamWriter(new java.io.FileOutputStream(this.e), com.b.a.g.a));
         try {
             v1_1.write("libcore.io.DiskLruCache");
             v1_1.write("\n");
             v1_1.write("1");
             v1_1.write("\n");
             v1_1.write(Integer.toString(this.g));
             v1_1.write("\n");
             v1_1.write(Integer.toString(this.i));
             v1_1.write("\n");
             v1_1.write("\n");
             java.io.FileOutputStream v2_2 = this.l.values().iterator();
         } catch (java.io.BufferedWriter v0_31) {
             v1_1.close();
             throw v0_31;
         }
         while (v2_2.hasNext()) {
             java.io.BufferedWriter v0_26 = ((com.b.a.d) v2_2.next());
             if (v0_26.d == null) {
                 v1_1.write(new StringBuilder("CLEAN ").append(v0_26.a).append(v0_26.a()).append(10).toString());
             } else {
                 v1_1.write(new StringBuilder("DIRTY ").append(v0_26.a).append(10).toString());
             }
         }
         v1_1.close();
         if (this.d.exists()) {
             com.b.a.a.a(this.d, this.f, 1);
         }
         com.b.a.a.a(this.e, this.d, 0);
         this.f.delete();
         this.k = new java.io.BufferedWriter(new java.io.OutputStreamWriter(new java.io.FileOutputStream(this.d, 1), com.b.a.g.a));
         return;
     }

     private static void e(String p3)
     {
         if (com.b.a.a.a.matcher(p3).matches()) {
             return;
         } else {
             throw new IllegalArgumentException(new StringBuilder("keys must match regex [a-z0-9_-]{1,64}: \"").append(p3).append("\"").toString());
         }
     }

     static synthetic int f(com.b.a.a p1)
     {
         return p1.i;
     }

     private boolean f()
     {
         if ((this.m < 2000) || (this.m < this.l.size())) {
             int v0_2 = 0;
         } else {
             v0_2 = 1;
         }
         return v0_2;
     }

     static synthetic java.io.File g(com.b.a.a p1)
     {
         return p1.c;
     }

     private void g()
     {
         if (this.k != null) {
             return;
         } else {
             throw new IllegalStateException("cache is closed");
         }
     }

     private void h()
     {
         while (this.j > this.h) {
             this.c(((String) ((java.util.Map$Entry) this.l.entrySet().iterator().next()).getKey()));
         }
         return;
     }

     private void i()
     {
         this.close();
         com.b.a.g.a(this.c);
         return;
     }

     public final declared_synchronized com.b.a.e a(String p10)
     {
         com.b.a.e v1_0 = 0;
         try {
             this.g();
             com.b.a.a.e(p10);
             int v0_2 = ((com.b.a.d) this.l.get(p10));
         } catch (int v0_4) {
             throw v0_4;
         }
         if ((v0_2 != 0) && (v0_2.c)) {
             java.io.InputStream[] v6 = new java.io.InputStream[this.i];
             String v3_2 = 0;
             try {
                 while (v3_2 < this.i) {
                     v6[v3_2] = new java.io.FileInputStream(v0_2.a(v3_2));
                     v3_2++;
                 }
             } catch (int v0) {
                 int v0_3 = 0;
             }
             this.m = (this.m + 1);
             this.k.append(new StringBuilder("READ ").append(p10).append(10).toString());
             if (this.f()) {
                 this.b.submit(this.o);
             }
             v1_0 = new com.b.a.e(this, p10, v0_2.e, v6, v0_2.b, 0);
         }
         return v1_0;
     }

     public final declared_synchronized void a()
     {
         try {
             this.g();
             this.h();
             this.k.flush();
             return;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     public final declared_synchronized com.b.a.b b(String p7)
     {
         try {
             java.io.Writer v0_3;
             this.g();
             com.b.a.a.e(p7);
             java.io.Writer v0_2 = ((com.b.a.d) this.l.get(p7));
         } catch (java.io.Writer v0_6) {
             throw v0_6;
         }
         if ((-1 == -1) || ((v0_2 != null) && (v0_2.e == -1))) {
             java.io.Writer v1_1;
             if (v0_2 != null) {
                 if (v0_2.d == null) {
                     v1_1 = v0_2;
                 } else {
                     v0_3 = 0;
                     return v0_3;
                 }
             } else {
                 java.io.Writer v0_5 = new com.b.a.d(this, p7, 0);
                 this.l.put(p7, v0_5);
                 v1_1 = v0_5;
             }
             v0_3 = new com.b.a.b(this, v1_1, 0);
             v1_1.d = v0_3;
             this.k.write(new StringBuilder("DIRTY ").append(p7).append(10).toString());
             this.k.flush();
         } else {
             v0_3 = 0;
         }
         return v0_3;
     }

     public final declared_synchronized boolean c(String p7)
     {
         String v1_0 = 0;
         try {
             java.io.IOException v0_9;
             this.g();
             com.b.a.a.e(p7);
             java.io.IOException v0_2 = ((com.b.a.d) this.l.get(p7));
         } catch (java.io.IOException v0_12) {
             throw v0_12;
         }
         if ((v0_2 != null) && (v0_2.d == null)) {
             while (v1_0 < this.i) {
                 long[] v2_4 = v0_2.a(v1_0);
                 if ((!v2_4.exists()) || (v2_4.delete())) {
                     this.j = (this.j - v0_2.b[v1_0]);
                     v0_2.b[v1_0] = 0;
                     v1_0++;
                 } else {
                     throw new java.io.IOException(new StringBuilder("failed to delete ").append(v2_4).toString());
                 }
             }
             this.m = (this.m + 1);
             this.k.append(new StringBuilder("REMOVE ").append(p7).append(10).toString());
             this.l.remove(p7);
             if (this.f()) {
                 this.b.submit(this.o);
             }
             v0_9 = 1;
         } else {
             v0_9 = 0;
         }
         return v0_9;
     }

     public final declared_synchronized void close()
     {
         try {
             if (this.k != null) {
                 java.util.Iterator v1_2 = new java.util.ArrayList(this.l.values()).iterator();
                 while (v1_2.hasNext()) {
                     com.b.a.b v0_7 = ((com.b.a.d) v1_2.next());
                     if (v0_7.d != null) {
                         v0_7.d.c();
                     }
                 }
                 this.h();
                 this.k.close();
                 this.k = 0;
             }
         } catch (com.b.a.b v0_8) {
             throw v0_8;
         }
         return;
     }
 }
 package com.b.a;
 public final class b {
     final com.b.a.d a;
     final boolean[] b;
     boolean c;
     final synthetic com.b.a.a d;
     private boolean e;

     private b(com.b.a.a p2, com.b.a.d p3)
     {
         boolean[] v0_2;
         this.d = p2;
         this.a = p3;
         if (!p3.c) {
             v0_2 = new boolean[com.b.a.a.f(p2)];
         } else {
             v0_2 = 0;
         }
         this.b = v0_2;
         return;
     }

     synthetic b(com.b.a.a p1, com.b.a.d p2, byte p3)
     {
         this(p1, p2);
         return;
     }

     public final java.io.OutputStream a()
     {
         try {
             if (this.a.d == this) {
                 if (!this.a.c) {
                     this.b[0] = 1;
                 }
                 java.io.FileOutputStream v1_3 = new java.io.FileOutputStream(this.a.b(0));
                 java.io.OutputStream v0_12 = new com.b.a.c(this, v1_3, 0);
                 return v0_12;
             } else {
                 throw new IllegalStateException();
             }
         } catch (java.io.OutputStream v0_16) {
             throw v0_16;
         }
     }

     public final void b()
     {
         if (!this.c) {
             com.b.a.a.a(this.d, this, 1);
         } else {
             com.b.a.a.a(this.d, this, 0);
             this.d.c(this.a.a);
         }
         this.e = 1;
         return;
     }

     public final void c()
     {
         com.b.a.a.a(this.d, this, 0);
         return;
     }
 }
 package com.b.a;
 final class c extends java.io.FilterOutputStream {
     final synthetic com.b.a.b a;

     private c(com.b.a.b p1, java.io.OutputStream p2)
     {
         this.a = p1;
         this(p2);
         return;
     }

     synthetic c(com.b.a.b p1, java.io.OutputStream p2, byte p3)
     {
         this(p1, p2);
         return;
     }

     public final void close()
     {
         try {
             this.out.close();
         } catch (com.b.a.b v0) {
             this.a.c = 1;
         }
         return;
     }

     public final void flush()
     {
         try {
             this.out.flush();
         } catch (com.b.a.b v0) {
             this.a.c = 1;
         }
         return;
     }

     public final void write(int p3)
     {
         try {
             this.out.write(p3);
         } catch (com.b.a.b v0) {
             this.a.c = 1;
         }
         return;
     }

     public final void write(byte[] p3, int p4, int p5)
     {
         try {
             this.out.write(p3, p4, p5);
         } catch (com.b.a.b v0) {
             this.a.c = 1;
         }
         return;
     }
 }
 package com.b.a;
 final class d {
     final String a;
     final long[] b;
     boolean c;
     com.b.a.b d;
     long e;
     final synthetic com.b.a.a f;

     private d(com.b.a.a p2, String p3)
     {
         this.f = p2;
         this.a = p3;
         long[] v0_1 = new long[com.b.a.a.f(p2)];
         this.b = v0_1;
         return;
     }

     synthetic d(com.b.a.a p1, String p2, byte p3)
     {
         this(p1, p2);
         return;
     }

     private static java.io.IOException b(String[] p3)
     {
         throw new java.io.IOException(new StringBuilder("unexpected journal line: ").append(java.util.Arrays.toString(p3)).toString());
     }

     public final java.io.File a(int p5)
     {
         return new java.io.File(com.b.a.a.g(this.f), new StringBuilder().append(this.a).append(".").append(p5).toString());
     }

     public final String a()
     {
         StringBuilder v1_1 = new StringBuilder();
         long[] v2 = this.b;
         int v3 = v2.length;
         String v0_0 = 0;
         while (v0_0 < v3) {
             v1_1.append(32).append(v2[v0_0]);
             v0_0++;
         }
         return v1_1.toString();
     }

     final void a(String[] p5)
     {
         if (p5.length == com.b.a.a.f(this.f)) {
             int v0_1 = 0;
             try {
                 while (v0_1 < p5.length) {
                     this.b[v0_1] = Long.parseLong(p5[v0_1]);
                     v0_1++;
                 }
             } catch (int v0) {
                 throw com.b.a.d.b(p5);
             }
             return;
         } else {
             throw com.b.a.d.b(p5);
         }
     }

     public final java.io.File b(int p5)
     {
         return new java.io.File(com.b.a.a.g(this.f), new StringBuilder().append(this.a).append(".").append(p5).append(".tmp").toString());
     }
 }
 package com.b.a;
 public final class e implements java.io.Closeable {
     public final java.io.InputStream[] a;
     final synthetic com.b.a.a b;
     private final String c;
     private final long d;
     private final long[] e;

     private e(com.b.a.a p2, String p3, long p4, java.io.InputStream[] p6, long[] p7)
     {
         this.b = p2;
         this.c = p3;
         this.d = p4;
         this.a = p6;
         this.e = p7;
         return;
     }

     synthetic e(com.b.a.a p2, String p3, long p4, java.io.InputStream[] p6, long[] p7, byte p8)
     {
         this(p2, p3, p4, p6, p7);
         return;
     }

     public final void close()
     {
         java.io.InputStream[] v1 = this.a;
         int v2 = v1.length;
         int v0 = 0;
         while (v0 < v2) {
             com.b.a.g.a(v1[v0]);
             v0++;
         }
         return;
     }
 }
 package com.b.a;
 final class f$1 extends java.io.ByteArrayOutputStream {
     final synthetic com.b.a.f a;

     f$1(com.b.a.f p1, int p2)
     {
         this.a = p1;
         this(p2);
         return;
     }

     public final String toString()
     {
         if ((this.count <= 0) || (this.buf[(this.count - 1)] != 13)) {
             java.io.UnsupportedEncodingException v0_3 = this.count;
         } else {
             v0_3 = (this.count - 1);
         }
         try {
             return new String(this.buf, 0, v0_3, this.a.a.name());
         } catch (java.io.UnsupportedEncodingException v0_5) {
             throw new AssertionError(v0_5);
         }
     }
 }
 package com.b.a;
 final class f implements java.io.Closeable {
     final java.nio.charset.Charset a;
     private final java.io.InputStream b;
     private byte[] c;
     private int d;
     private int e;

     public f(java.io.InputStream p2, java.nio.charset.Charset p3)
     {
         this(p2, p3, 0);
         return;
     }

     private f(java.io.InputStream p3, java.nio.charset.Charset p4, byte p5)
     {
         if ((p3 != null) && (p4 != null)) {
             if (p4.equals(com.b.a.g.a)) {
                 this.b = p3;
                 this.a = p4;
                 byte[] v0_3 = new byte[8192];
                 this.c = v0_3;
                 return;
             } else {
                 throw new IllegalArgumentException("Unsupported encoding");
             }
         } else {
             throw new NullPointerException();
         }
     }

     private void b()
     {
         java.io.EOFException v0_1 = this.b.read(this.c, 0, this.c.length);
         if (v0_1 != -1) {
             this.d = 0;
             this.e = v0_1;
             return;
         } else {
             throw new java.io.EOFException();
         }
     }

     public final String a()
     {
         try {
             if (this.c != null) {
                 if (this.d >= this.e) {
                     this.b();
                 }
                 byte[] v2_0 = this.d;
                 while (v2_0 != this.e) {
                     if (this.c[v2_0] != 10) {
                         v2_0++;
                     } else {
                         if ((v2_0 == this.d) || (this.c[(v2_0 - 1)] != 13)) {
                             int v1_5 = v2_0;
                         } else {
                             v1_5 = (v2_0 - 1);
                         }
                         String v0_10 = new String(this.c, this.d, (v1_5 - this.d), this.a.name());
                         this.d = (v2_0 + 1);
                     }
                     return v0_10;
                 }
                 int v1_2 = new com.b.a.f$1(this, ((this.e - this.d) + 80));
                 while(true) {
                     v1_2.write(this.c, this.d, (this.e - this.d));
                     this.e = -1;
                     this.b();
                     String v0_8 = this.d;
                     if (v0_8 != this.e) {
                         if (this.c[v0_8] != 10) {
                             v0_8++;
                             while (v0_8 == this.e) {
                             }
                         } else {
                             if (v0_8 != this.d) {
                                 v1_2.write(this.c, this.d, (v0_8 - this.d));
                             }
                             this.d = (v0_8 + 1);
                             v0_10 = v1_2.toString();
                         }
                     }
                     return v0_10;
                 }
             } else {
                 throw new java.io.IOException("LineReader is closed");
             }
         } catch (String v0_20) {
             throw v0_20;
         }
     }

     public final void close()
     {
         try {
             if (this.c != null) {
                 this.c = 0;
                 this.b.close();
             }
         } catch (java.io.InputStream v0_3) {
             throw v0_3;
         }
         return;
     }
 }
 package com.b.a;
 public final class g {
     static final java.nio.charset.Charset a;
     static final java.nio.charset.Charset b;

     static g()
     {
         com.b.a.g.a = java.nio.charset.Charset.forName("US-ASCII");
         com.b.a.g.b = java.nio.charset.Charset.forName("UTF-8");
         return;
     }

     static void a(java.io.Closeable p1)
     {
         if (p1 != null) {
             try {
                 p1.close();
             } catch (Exception v0) {
                 throw v0;
             } catch (Exception v0) {
             }
         }
         return;
     }

     static void a(java.io.File p5)
     {
         String v1_0 = p5.listFiles();
         if (v1_0 != null) {
             String v2_0 = v1_0.length;
             int v0_0 = 0;
             while (v0_0 < v2_0) {
                 String v3 = v1_0[v0_0];
                 if (v3.isDirectory()) {
                     com.b.a.g.a(v3);
                 }
                 if (v3.delete()) {
                     v0_0++;
                 } else {
                     throw new java.io.IOException(new StringBuilder("failed to delete file: ").append(v3).toString());
                 }
             }
             return;
         } else {
             throw new java.io.IOException(new StringBuilder("not a readable directory: ").append(p5).toString());
         }
     }
 }
 package com.c;
 public final class a {
     private javax.crypto.spec.IvParameterSpec a;
     private javax.crypto.spec.SecretKeySpec b;
     private javax.crypto.Cipher c;

     public a(String p4, String p5)
     {
         this.a = new javax.crypto.spec.IvParameterSpec(p5.getBytes());
         this.b = new javax.crypto.spec.SecretKeySpec(p4.getBytes(), "AES");
         try {
             this.c = javax.crypto.Cipher.getInstance("AES/CBC/NoPadding");
         } catch (javax.crypto.NoSuchPaddingException v0_7) {
             v0_7.printStackTrace();
         } catch (javax.crypto.NoSuchPaddingException v0_6) {
             v0_6.printStackTrace();
         }
         return;
     }

     public static String a(byte[] p6)
     {
         String v0_1;
         if (p6 != null) {
             int v2 = p6.length;
             v0_1 = "";
             int v1_1 = 0;
             while (v1_1 < v2) {
                 if ((p6[v1_1] & 255) >= 16) {
                     v0_1 = new StringBuilder().append(v0_1).append(Integer.toHexString((p6[v1_1] & 255))).toString();
                 } else {
                     v0_1 = new StringBuilder().append(v0_1).append("0").append(Integer.toHexString((p6[v1_1] & 255))).toString();
                 }
                 v1_1++;
             }
         } else {
             v0_1 = 0;
         }
         return v0_1;
     }

     private static String b(String p4)
     {
         int v1 = (16 - (p4.length() % 16));
         int v0_2 = 0;
         while (v0_2 < v1) {
             p4 = new StringBuilder().append(p4).append(32).toString();
             v0_2++;
         }
         return p4;
     }

     public final byte[] a(String p5)
     {
         if ((p5 != null) && (p5.length() != 0)) {
             try {
                 this.c.init(1, this.b, this.a);
                 return this.c.doFinal(com.c.a.b(p5).getBytes());
             } catch (String v0_4) {
                 throw new Exception(new StringBuilder("[encrypt] ").append(v0_4.getMessage()).toString());
             }
         } else {
             throw new Exception("Empty string");
         }
     }
 }
 package com.c;
 public final class b {
     private static long d;
     private android.content.SharedPreferences a;
     private java.util.concurrent.Semaphore b;
     private com.c.g c;

     static b()
     {
         com.c.b.d = 0;
         return;
     }

     public b(android.content.Context p4, com.c.g p5)
     {
         this.a = p4.getSharedPreferences("mat_queue", 0);
         this.b = new java.util.concurrent.Semaphore(1, 1);
         this.c = p5;
         return;
     }

     static synthetic long a(long p0)
     {
         com.c.b.d = p0;
         return p0;
     }

     static synthetic java.util.concurrent.Semaphore a(com.c.b p1)
     {
         return p1.b;
     }

     static synthetic long b()
     {
         return com.c.b.d;
     }

     static synthetic com.c.g b(com.c.b p1)
     {
         return p1.c;
     }

     protected final declared_synchronized int a()
     {
         try {
             return this.a.getInt("queuesize", 0);
         } catch (Throwable v0_2) {
             throw v0_2;
         }
     }

     protected final declared_synchronized void a(int p3)
     {
         try {
             Throwable v0_1 = this.a.edit();
         } catch (Throwable v0_2) {
             throw v0_2;
         }
         if (p3 < 0) {
             p3 = 0;
         }
         v0_1.putInt("queuesize", p3);
         v0_1.commit();
         return;
     }

     protected final declared_synchronized void a(String p2)
     {
         try {
             this.a((this.a() - 1));
             Throwable v0_3 = this.a.edit();
             v0_3.remove(p2);
             v0_3.commit();
             return;
         } catch (Throwable v0_4) {
             throw v0_4;
         }
     }

     protected final declared_synchronized void a(org.json.JSONObject p3, String p4)
     {
         try {
             Throwable v0_1 = this.a.edit();
             v0_1.putString(p4, p3.toString());
             v0_1.commit();
             return;
         } catch (Throwable v0_2) {
             throw v0_2;
         }
     }

     protected final declared_synchronized String b(String p3)
     {
         try {
             return this.a.getString(p3, 0);
         } catch (Throwable v0_2) {
             throw v0_2;
         }
     }
 }
 package com.c;
 public final class c implements java.lang.Runnable {
     final synthetic com.c.b a;
     private String b;
     private String c;
     private org.json.JSONObject d;
     private boolean e;

     protected c(com.c.b p2, String p3, String p4, org.json.JSONObject p5, boolean p6)
     {
         this.a = p2;
         this.b = 0;
         this.c = 0;
         this.d = 0;
         this.e = 0;
         this.b = p3;
         this.c = p4;
         this.d = p5;
         this.e = p6;
         return;
     }

     public final void run()
     {
         try {
             com.c.b.a(this.a).acquire();
             java.util.concurrent.Semaphore v0_3 = new org.json.JSONObject();
             try {
                 v0_3.put("link", this.b);
                 v0_3.put("data", this.c);
                 v0_3.put("post_body", this.d);
                 v0_3.put("first_session", this.e);
             } catch (java.util.concurrent.Semaphore v0_4) {
                 android.util.Log.w("MobileAppTracker", "Failed creating event for queueing");
                 v0_4.printStackTrace();
                 com.c.b.a(this.a).release();
                 return;
             }
             String v1_7 = (this.a.a() + 1);
             this.a.a(v1_7);
             this.a.a(v0_3, Integer.toString(v1_7));
             com.c.b.a(this.a).release();
             return;
         } catch (java.util.concurrent.Semaphore v0_9) {
             android.util.Log.w("MobileAppTracker", "Interrupted adding event to queue");
             v0_9.printStackTrace();
             com.c.b.a(this.a).release();
             return;
         } catch (java.util.concurrent.Semaphore v0_12) {
             com.c.b.a(this.a).release();
             throw v0_12;
         }
     }
 }
 package com.c;
 public final class d implements java.lang.Runnable {
     final synthetic com.c.b a;

     protected d(com.c.b p1)
     {
         this.a = p1;
         return;
     }

     public final void run()
     {
         int v3 = this.a.a();
         if (v3 != 0) {
             try {
                 com.c.b.a(this.a).acquire();
                 int v0_3 = 1;
             } catch (int v0_15) {
                 com.c.b.a(this.a).release();
                 throw v0_15;
             } catch (int v0_12) {
                 v0_12.printStackTrace();
                 com.c.b.a(this.a).release();
             }
             if (v3 > 50) {
                 v0_3 = ((v3 - 50) + 1);
             }
             while (v0_3 <= v3) {
                 long v4_0 = Integer.toString(v0_3);
                 String v5_0 = this.a.b(v4_0);
                 if (v5_0 == null) {
                     android.util.Log.d("MobileAppTracker", "Null request skipped from queue");
                     this.a.a(v4_0);
                 } else {
                     try {
                         org.json.JSONException v1_5 = new org.json.JSONObject(v5_0);
                         long v6_0 = v1_5.getString("link");
                         org.json.JSONObject v2_3 = v1_5.getString("data");
                         StringBuilder v7_1 = v1_5.getJSONObject("post_body");
                     } catch (int v0_7) {
                         v0_7.printStackTrace();
                         this.a.a(v4_0);
                         com.c.b.a(this.a).release();
                         return;
                     }
                     if (v1_5.getBoolean("first_session")) {
                         com.c.b.b(this.a);
                         try {
                             com.c.b.b(this.a).l.wait(60000);
                         } catch (int v0_11) {
                             throw v0_11;
                         }
                     }
                     if (com.c.b.b(this.a) == null) {
                         android.util.Log.d("MobileAppTracker", "Dropping queued request because no MAT object was found");
                         this.a.a(v4_0);
                     } else {
                         if (!com.c.b.b(this.a).a(v6_0, v2_3, v7_1)) {
                             v0_3--;
                             org.json.JSONObject v2_5 = v6_0.indexOf("&sdk_retry_attempt=");
                             if (v2_5 > null) {
                                 org.json.JSONException v1_17 = -1;
                                 StringBuilder v7_2 = (v2_5 + 19);
                                 org.json.JSONObject v2_6 = (v7_2 + 1);
                                 try {
                                     while(true) {
                                         try {
                                             v1_17 = Integer.parseInt(v6_0.substring(v7_2, v2_6));
                                             v2_6++;
                                         } catch (org.json.JSONObject v2) {
                                             org.json.JSONException v1_21 = v6_0.replaceFirst("&sdk_retry_attempt=\\d+", new StringBuilder("&sdk_retry_attempt=").append((v1_17 + 1)).toString());
                                             try {
                                                 org.json.JSONObject v2_9 = new org.json.JSONObject(v5_0);
                                                 v2_9.put("link", v1_21);
                                                 this.a.a(v2_9, v4_0);
                                             } catch (org.json.JSONException v1_23) {
                                                 v1_23.printStackTrace();
                                             }
                                         }
                                     }
                                 } catch (org.json.JSONObject v2) {
                                 }
                             }
                             if (com.c.b.b() != 0) {
                                 if (com.c.b.b() > 30) {
                                     if (com.c.b.b() > 90) {
                                         if (com.c.b.b() > 600) {
                                             if (com.c.b.b() > 3600) {
                                                 com.c.b.a(86400);
                                             } else {
                                                 com.c.b.a(21600);
                                             }
                                         } else {
                                             com.c.b.a(3600);
                                         }
                                     } else {
                                         com.c.b.a(600);
                                     }
                                 } else {
                                     com.c.b.a(90);
                                 }
                             } else {
                                 com.c.b.a(30);
                             }
                             try {
                                 Thread.sleep(((long) (((1.0 + (0.1 * Math.random())) * ((double) com.c.b.b())) * 1000.0)));
                             } catch (org.json.JSONException v1) {
                             }
                         } else {
                             this.a.a(v4_0);
                             com.c.b.a(0);
                         }
                     }
                 }
                 v0_3++;
             }
             com.c.b.a(this.a).release();
         }
         return;
     }
 }
 package com.c;
 public interface e {
 }
 package com.c;
 public interface f {
 }
 package com.c;
 public final class g {
     private static volatile com.c.g t;
     protected com.c.e a;
     protected com.c.f b;
     protected boolean c;
     protected boolean d;
     protected boolean e;
     protected boolean f;
     protected boolean g;
     protected boolean h;
     protected android.content.BroadcastReceiver i;
     protected com.c.h j;
     protected android.content.Context k;
     protected java.util.concurrent.ExecutorService l;
     protected java.util.concurrent.ExecutorService m;
     protected com.c.b n;
     private final String o;
     private com.c.r p;
     private com.c.a q;
     private boolean r;
     private boolean s;

     static g()
     {
         com.c.g.t = 0;
         return;
     }

     protected g()
     {
         this.o = "heF9BATUfWuISyO8";
         return;
     }

     public static declared_synchronized com.c.g a()
     {
         try {
             return com.c.g.t;
         } catch (Throwable v1_1) {
             throw v1_1;
         }
     }

     public static void a(android.content.Context p2, String p3, String p4)
     {
         void v0_1 = new com.c.g();
         com.c.g.t = v0_1;
         v0_1.k = p2.getApplicationContext();
         com.c.g.t.m = java.util.concurrent.Executors.newSingleThreadExecutor();
         com.c.g.t.a(p3, p4);
         return;
     }

     static synthetic void a(com.c.g p0, Object p1, String p2, String p3)
     {
         p0.a(p1, p2, p3);
         return;
     }

     private declared_synchronized void a(Object p7, String p8, String p9)
     {
         try {
             if (this.d) {
                 this.b();
                 this.j.a("conversion");
                 com.c.h v0_3 = new java.util.Date();
                 if (!(p7 instanceof String)) {
                     if (!(p7 instanceof Integer)) {
                         android.util.Log.d("MobileAppTracker", "Received invalid event name or id value, not measuring event");
                     } else {
                         this.j.c(Integer.toString(((Integer) p7).intValue()));
                     }
                 } else {
                     if (p7.equals("close")) {
                     } else {
                         if ((!p7.equals("open")) && ((!p7.equals("install")) && ((!p7.equals("update")) && (!p7.equals("session"))))) {
                             this.j.d(((String) p7));
                         } else {
                             this.j.a("session");
                             new java.util.Date((v0_3.getTime() + 60000));
                         }
                     }
                 }
                 this.j.m(Double.toString(0));
                 this.j.b(p8);
                 this.j.l(p9);
                 com.c.h v0_12 = com.c.m.a(this.r, this.s);
                 boolean v1_19 = com.c.m.a();
                 org.json.JSONObject v2_4 = com.c.m.b();
                 if (this.b != null) {
                 }
                 this.a(v0_12, v1_19, v2_4, this.g);
                 this.g = 0;
                 this.b();
                 if (this.a != null) {
                 }
                 this.j.b();
             }
         } catch (com.c.h v0_15) {
             throw v0_15;
         }
         return;
     }

     private void a(String p6, String p7)
     {
         com.c.h.a(this.k, p6);
         this.j = com.c.h.a();
         this.l = java.util.concurrent.Executors.newSingleThreadExecutor();
         this.p = new com.c.r();
         this.q = new com.c.a(p7.trim(), "heF9BATUfWuISyO8");
         this.g = 1;
         this.d = 0;
         this.c = 0;
         this.r = 0;
         this.s = 0;
         this.n = new com.c.b(this.k, this);
         this.b();
         this.i = new com.c.s(this);
         if (this.c) {
             try {
                 this.k.unregisterReceiver(this.i);
             } catch (IllegalArgumentException v0) {
             }
             this.c = 0;
         }
         this.k.registerReceiver(this.i, new android.content.IntentFilter("android.net.conn.CONNECTIVITY_CHANGE"));
         this.c = 1;
         this.d = 1;
         return;
     }

     private void a(String p8, String p9, org.json.JSONObject p10, boolean p11)
     {
         java.util.concurrent.ExecutorService v6 = this.l;
         com.c.b v1 = this.n;
         v1.getClass();
         v6.execute(new com.c.c(v1, p8, p9, p10, p11));
         return;
     }

     private static boolean a(android.content.Context p1)
     {
         int v0_5;
         int v0_3 = ((android.net.ConnectivityManager) p1.getSystemService("connectivity")).getActiveNetworkInfo();
         if ((v0_3 == 0) || (!v0_3.isConnected())) {
             v0_5 = 0;
         } else {
             v0_5 = 1;
         }
         return v0_5;
     }

     static synthetic boolean a(com.c.g p0, boolean p1)
     {
         p0.r = p1;
         return p1;
     }

     public final void a(String p3)
     {
         this.m.execute(new com.c.u(this, p3));
         return;
     }

     public final void a(String p4, boolean p5)
     {
         int v0;
         if (!p5) {
             v0 = 0;
         } else {
             v0 = 1;
         }
         this.m.execute(new com.c.j(this, p4, v0));
         return;
     }

     public final void a(boolean p3)
     {
         this.m.execute(new com.c.i(this, p3));
         return;
     }

     protected final boolean a(String p6, String p7, org.json.JSONObject p8)
     {
         boolean v1_0 = 1;
         com.c.e v0_0 = 0;
         if (this.r) {
             android.util.Log.d("MobileAppTracker", "Sending event to server...");
         }
         com.c.h v2_6 = this.p.a(new StringBuilder().append(p6).append("&data=").append(com.c.m.a(p7, this.q)).toString(), p8, this.r);
         if (v2_6 != null) {
             if (v2_6.has("success")) {
                 if (this.a != null) {
                     try {
                         if (v2_6.getString("success").equals("true")) {
                             v0_0 = 1;
                         }
                     } catch (boolean v1_1) {
                         v1_1.printStackTrace();
                         v1_0 = 0;
                         return v1_0;
                     }
                     // Both branches of the condition point to the same code.
                     // if (v0_0 == null) {
                     // }
                 }
                 try {
                     if (v2_6.getString("site_event_type").equals("open")) {
                         com.c.e v0_5 = v2_6.getString("log_id");
                         if (this.j.ac().equals("")) {
                             this.j.j(v0_5);
                         }
                         this.j.i(v0_5);
                     }
                 } catch (com.c.e v0) {
                 }
             } else {
                 if (this.r) {
                     android.util.Log.d("MobileAppTracker", "Request failed, event will remain in queue");
                 }
                 v1_0 = 0;
             }
         } else {
             // Both branches of the condition point to the same code.
             // if (this.a == null) {
             // }
         }
         return v1_0;
     }

     protected final void b()
     {
         if (com.c.g.a(this.k)) {
             java.util.concurrent.ExecutorService v0_2 = this.l;
             com.c.b v2 = this.n;
             v2.getClass();
             v0_2.execute(new com.c.d(v2));
         }
         return;
     }

     public final void b(String p3)
     {
         this.m.execute(new com.c.k(this, p3));
         return;
     }

     public final void c()
     {
         this.m.execute(new com.c.t(this));
         return;
     }

     public final void c(String p3)
     {
         this.m.execute(new com.c.l(this, p3));
         return;
     }

     public final String d()
     {
         return this.j.n();
     }

     public final void d(String p3)
     {
         this.m.execute(new com.c.n(this, p3));
         return;
     }

     public final String e()
     {
         return this.j.aj();
     }

     public final void e(String p3)
     {
         this.m.execute(new com.c.o(this, p3));
         return;
     }

     public final void f()
     {
         this.m.execute(new com.c.p(this));
         return;
     }
 }
 package com.c;
 public final class h {
     private static com.c.h b;
     private String A;
     private String B;
     private String C;
     private String D;
     private String E;
     private String F;
     private String G;
     private String H;
     private String I;
     private String J;
     private String K;
     private String L;
     private String M;
     private String N;
     private String O;
     private String P;
     private String Q;
     private String R;
     private String S;
     private android.location.Location T;
     private String U;
     private String V;
     private String W;
     private String X;
     private String Y;
     private String Z;
     private android.content.Context a;
     private String aA;
     private String aB;
     private String aC;
     private String aD;
     private String aE;
     private String aF;
     private String aG;
     private String aH;
     private String aa;
     private String ab;
     private String ac;
     private String ad;
     private String ae;
     private String af;
     private String ag;
     private String ah;
     private String ai;
     private String aj;
     private String ak;
     private String al;
     private String am;
     private String an;
     private String ao;
     private String ap;
     private String aq;
     private String ar;
     private String as;
     private String at;
     private String au;
     private String av;
     private String aw;
     private String ax;
     private String ay;
     private String az;
     private String c;
     private String d;
     private String e;
     private String f;
     private String g;
     private String h;
     private String i;
     private String j;
     private String k;
     private String l;
     private String m;
     private String n;
     private String o;
     private String p;
     private String q;
     private String r;
     private String s;
     private String t;
     private String u;
     private String v;
     private String w;
     private String x;
     private String y;
     private String z;

     static h()
     {
         com.c.h.b = 0;
         return;
     }

     public h()
     {
         this.c = 0;
         this.d = 0;
         this.e = 0;
         this.f = 0;
         this.g = 0;
         this.h = 0;
         this.i = 0;
         this.j = 0;
         this.k = 0;
         this.l = 0;
         this.m = 0;
         this.n = 0;
         this.o = 0;
         this.p = 0;
         this.q = 0;
         this.r = 0;
         this.s = 0;
         this.t = 0;
         this.u = 0;
         this.v = 0;
         this.w = 0;
         this.x = 0;
         this.y = 0;
         this.z = 0;
         this.A = 0;
         this.B = 0;
         this.C = 0;
         this.D = 0;
         this.E = 0;
         this.F = 0;
         this.G = 0;
         this.H = 0;
         this.I = 0;
         this.J = 0;
         this.K = 0;
         this.L = 0;
         this.M = 0;
         this.N = 0;
         this.O = 0;
         this.P = 0;
         this.Q = 0;
         this.R = 0;
         this.S = 0;
         this.T = 0;
         this.U = 0;
         this.V = 0;
         this.W = 0;
         this.X = 0;
         this.Y = 0;
         this.Z = 0;
         this.aa = 0;
         this.ab = 0;
         this.ac = 0;
         this.ad = 0;
         this.ae = 0;
         this.af = 0;
         this.ag = 0;
         this.ah = 0;
         this.ai = 0;
         this.aj = 0;
         this.ak = 0;
         this.al = 0;
         this.am = 0;
         this.an = 0;
         this.ao = 0;
         this.ap = 0;
         this.aq = 0;
         this.ar = 0;
         this.as = 0;
         this.at = 0;
         this.au = 0;
         this.av = 0;
         this.aw = 0;
         this.ax = 0;
         this.ay = 0;
         this.az = 0;
         this.aA = 0;
         this.aB = 0;
         this.aC = 0;
         this.aD = 0;
         this.aE = 0;
         this.aF = 0;
         this.aG = 0;
         this.aH = 0;
         return;
     }

     private declared_synchronized void A(String p2)
     {
         try {
             this.R = p2;
             return;
         } catch (Throwable v0) {
             throw v0;
         }
     }

     private declared_synchronized void B(String p3)
     {
         try {
             this.a("mat_id", "mat_id", p3);
             return;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     private declared_synchronized void C(String p2)
     {
         try {
             this.W = p2;
             return;
         } catch (Throwable v0) {
             throw v0;
         }
     }

     private declared_synchronized void D(String p2)
     {
         try {
             this.X = p2;
             return;
         } catch (Throwable v0) {
             throw v0;
         }
     }

     private declared_synchronized void E(String p2)
     {
         try {
             this.Y = p2;
             return;
         } catch (Throwable v0) {
             throw v0;
         }
     }

     private declared_synchronized void F(String p2)
     {
         try {
             this.ag = p2;
             return;
         } catch (Throwable v0) {
             throw v0;
         }
     }

     private declared_synchronized void G(String p2)
     {
         try {
             this.ah = p2;
             return;
         } catch (Throwable v0) {
             throw v0;
         }
     }

     private declared_synchronized void H(String p2)
     {
         try {
             this.ai = p2;
             return;
         } catch (Throwable v0) {
             throw v0;
         }
     }

     public static com.c.h a()
     {
         return com.c.h.b;
     }

     private declared_synchronized String a(String p3, String p4)
     {
         try {
             return this.a.getSharedPreferences(p3, 0).getString(p4, "");
         } catch (Throwable v0_3) {
             throw v0_3;
         }
     }

     public static void a(android.content.Context p1, String p2)
     {
         if (com.c.h.b == null) {
             com.c.h v0_2 = new com.c.h();
             com.c.h.b = v0_2;
             v0_2.a = p1;
             com.c.h.b.b(p1, p2);
         }
         return;
     }

     static synthetic void a(com.c.h p0, String p1)
     {
         p0.an = p1;
         return;
     }

     private declared_synchronized void a(String p3, String p4, String p5)
     {
         try {
             this.a.getSharedPreferences(p3, 0).edit().putString(p4, p5).commit();
             return;
         } catch (Throwable v0_4) {
             throw v0_4;
         }
     }

     private declared_synchronized void aS()
     {
         try {
             this.u = 0;
             return;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     private declared_synchronized void aT()
     {
         try {
             this.v = 0;
             return;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     private declared_synchronized void aU()
     {
         try {
             this.w = 0;
             return;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     private declared_synchronized void aV()
     {
         try {
             this.x = 0;
             return;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     private declared_synchronized void aW()
     {
         try {
             this.y = 0;
             return;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     private declared_synchronized void aX()
     {
         try {
             this.z = 0;
             return;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     private declared_synchronized void aY()
     {
         try {
             this.A = 0;
             return;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     private declared_synchronized void aZ()
     {
         try {
             this.B = 0;
             return;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     private declared_synchronized boolean b(android.content.Context p9, String p10)
     {
         try {
             this.p(p10.trim());
             this.b("USD");
             new android.os.Handler(android.os.Looper.getMainLooper()).post(new com.c.q(this, this.a));
             IndexOutOfBoundsException v0_5 = this.a.getPackageName();
             this.k(v0_5);
             String v3_4 = this.a.getPackageManager();
             try {
                 this.q(v3_4.getApplicationLabel(v3_4.getApplicationInfo(v0_5, 0)).toString());
                 this.y(Long.toString((new java.util.Date(new java.io.File(v3_4.getApplicationInfo(v0_5, 0).sourceDir).lastModified()).getTime() / 1000)));
             } catch (int v4) {
             }
             try {
                 this.r(Integer.toString(v3_4.getPackageInfo(v0_5, 0).versionCode));
             } catch (int v4) {
                 this.r("0");
             }
             String v3_7;
             IndexOutOfBoundsException v0_20;
             this.z(v3_4.getInstallerPackageName(v0_5));
             this.x(android.os.Build.MODEL);
             this.u(android.os.Build.MANUFACTURER);
             this.w(System.getProperty("os.arch"));
             this.E(android.os.Build$VERSION.RELEASE);
             this.F(Float.toString(p9.getResources().getDisplayMetrics().density));
             IndexOutOfBoundsException v0_18 = ((android.view.WindowManager) p9.getSystemService("window"));
             if (android.os.Build$VERSION.SDK_INT < 13) {
                 v3_7 = v0_18.getDefaultDisplay().getWidth();
                 v0_20 = v0_18.getDefaultDisplay().getHeight();
             } else {
                 int v4_19 = new android.graphics.Point();
                 v0_18.getDefaultDisplay().getSize(v4_19);
                 v3_7 = v4_19.x;
                 v0_20 = v4_19.y;
             }
             this.H(Integer.toString(v3_7));
             this.G(Integer.toString(v0_20));
             if (!((android.net.ConnectivityManager) this.a.getSystemService("connectivity")).getNetworkInfo(1).isConnected()) {
                 this.s("mobile");
             } else {
                 this.s("WIFI");
             }
             this.A(java.util.Locale.getDefault().getDisplayLanguage(java.util.Locale.US));
             IndexOutOfBoundsException v0_34 = ((android.telephony.TelephonyManager) this.a.getSystemService("phone"));
             if (v0_34 == null) {
                 this.t(java.util.Locale.getDefault().getCountry());
             } else {
                 if (v0_34.getNetworkCountryIso() != null) {
                     this.t(v0_34.getNetworkCountryIso());
                 }
                 this.v(v0_34.getNetworkOperatorName());
                 IndexOutOfBoundsException v0_37 = v0_34.getNetworkOperator();
                 if (v0_37 != null) {
                     try {
                         String v3_17 = v0_37.substring(0, 3);
                         IndexOutOfBoundsException v0_38 = v0_37.substring(3);
                         this.C(v3_17);
                         this.D(v0_38);
                     } catch (IndexOutOfBoundsException v0) {
                     }
                 }
             }
             IndexOutOfBoundsException v0_39 = this.Z();
             if ((v0_39 == null) || (v0_39.length() == 0)) {
                 this.B(java.util.UUID.randomUUID().toString());
             }
             IndexOutOfBoundsException v0_44 = 1;
             return v0_44;
         } catch (IndexOutOfBoundsException v0_43) {
             android.util.Log.d("MobileAppTracker", "MobileAppTracker initialization failed");
             v0_43.printStackTrace();
             v0_44 = 0;
             return v0_44;
         } catch (IndexOutOfBoundsException v0_45) {
             throw v0_45;
         }
     }

     private declared_synchronized void ba()
     {
         try {
             this.C = 0;
             return;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     private declared_synchronized void bb()
     {
         try {
             this.E = 0;
             return;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     private declared_synchronized void bc()
     {
         try {
             this.G = 0;
             return;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     private declared_synchronized void bd()
     {
         try {
             this.H = 0;
             return;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     private declared_synchronized void be()
     {
         try {
             this.I = 0;
             return;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     private declared_synchronized void bf()
     {
         try {
             this.ao = 0;
             return;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     private declared_synchronized void bg()
     {
         try {
             this.ap = 0;
             return;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     private declared_synchronized void bh()
     {
         try {
             this.aq = 0;
             return;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     private declared_synchronized void bi()
     {
         try {
             this.ar = 0;
             return;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     private declared_synchronized void bj()
     {
         try {
             this.as = 0;
             return;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     private declared_synchronized void bk()
     {
         try {
             this.at = 0;
             return;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     private declared_synchronized void bl()
     {
         try {
             this.au = 0;
             return;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     private declared_synchronized void bm()
     {
         try {
             this.av = 0;
             return;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     private declared_synchronized void bn()
     {
         try {
             this.aw = 0;
             return;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     private declared_synchronized void bo()
     {
         try {
             this.ax = 0;
             return;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     private declared_synchronized void bp()
     {
         try {
             this.ay = 0;
             return;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     private declared_synchronized void bq()
     {
         try {
             this.az = 0;
             return;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     private declared_synchronized void br()
     {
         try {
             this.aA = 0;
             return;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     private declared_synchronized void bs()
     {
         try {
             this.aB = 0;
             return;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     private declared_synchronized void bt()
     {
         try {
             this.aC = 0;
             return;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     private declared_synchronized void bu()
     {
         try {
             this.aD = 0;
             return;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     private declared_synchronized void bv()
     {
         try {
             this.aE = 0;
             return;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     private declared_synchronized void bw()
     {
         try {
             this.aF = 0;
             return;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     private declared_synchronized void bx()
     {
         try {
             this.aG = 0;
             return;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     private declared_synchronized void by()
     {
         try {
             this.aH = 0;
             return;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     private declared_synchronized void p(String p2)
     {
         try {
             this.d = p2;
             return;
         } catch (Throwable v0) {
             throw v0;
         }
     }

     private declared_synchronized void q(String p2)
     {
         try {
             this.j = p2;
             return;
         } catch (Throwable v0) {
             throw v0;
         }
     }

     private declared_synchronized void r(String p2)
     {
         try {
             this.k = p2;
             return;
         } catch (Throwable v0) {
             throw v0;
         }
     }

     private declared_synchronized void s(String p2)
     {
         try {
             this.l = p2;
             return;
         } catch (Throwable v0) {
             throw v0;
         }
     }

     private declared_synchronized void t(String p2)
     {
         try {
             this.m = p2;
             return;
         } catch (Throwable v0) {
             throw v0;
         }
     }

     private declared_synchronized void u(String p2)
     {
         try {
             this.o = p2;
             return;
         } catch (Throwable v0) {
             throw v0;
         }
     }

     private declared_synchronized void v(String p2)
     {
         try {
             this.p = p2;
             return;
         } catch (Throwable v0) {
             throw v0;
         }
     }

     private declared_synchronized void w(String p2)
     {
         try {
             this.q = p2;
             return;
         } catch (Throwable v0) {
             throw v0;
         }
     }

     private declared_synchronized void x(String p2)
     {
         try {
             this.t = p2;
             return;
         } catch (Throwable v0) {
             throw v0;
         }
     }

     private declared_synchronized void y(String p2)
     {
         try {
             this.P = p2;
             return;
         } catch (Throwable v0) {
             throw v0;
         }
     }

     private declared_synchronized void z(String p2)
     {
         try {
             this.Q = p2;
             return;
         } catch (Throwable v0) {
             throw v0;
         }
     }

     public final declared_synchronized String A()
     {
         try {
             return this.A;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     public final declared_synchronized String B()
     {
         try {
             return this.B;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     public final declared_synchronized String C()
     {
         try {
             return this.C;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     public final declared_synchronized String D()
     {
         try {
             return this.D;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     public final declared_synchronized String E()
     {
         try {
             return this.E;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     public final declared_synchronized String F()
     {
         try {
             return this.F;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     public final declared_synchronized String G()
     {
         try {
             return this.G;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     public final declared_synchronized String H()
     {
         try {
             return this.H;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     public final declared_synchronized String I()
     {
         try {
             return this.I;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     public final declared_synchronized String J()
     {
         try {
             return this.J;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     public final declared_synchronized String K()
     {
         try {
             return this.K;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     public final declared_synchronized String L()
     {
         try {
             return this.L;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     public final declared_synchronized String M()
     {
         try {
             return this.M;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     public final declared_synchronized String N()
     {
         try {
             return this.N;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     public final declared_synchronized String O()
     {
         try {
             return this.O;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     public final declared_synchronized String P()
     {
         try {
             return this.P;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     public final declared_synchronized String Q()
     {
         try {
             return this.Q;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     public final declared_synchronized String R()
     {
         try {
             return this.a("mat_log_id_install", "logId");
         } catch (Throwable v0_2) {
             throw v0_2;
         }
     }

     public final declared_synchronized String S()
     {
         try {
             return this.a("mat_referrer", "referrer");
         } catch (Throwable v0_2) {
             throw v0_2;
         }
     }

     public final declared_synchronized String T()
     {
         try {
             return this.a("mat_is_paying_user", "mat_is_paying_user");
         } catch (Throwable v0_2) {
             throw v0_2;
         }
     }

     public final declared_synchronized String U()
     {
         try {
             return this.R;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     public final declared_synchronized String V()
     {
         try {
             return this.a("mat_log_id_last_open", "logId");
         } catch (Throwable v0_2) {
             throw v0_2;
         }
     }

     public final declared_synchronized String W()
     {
         try {
             return this.S;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     public final declared_synchronized String X()
     {
         try {
             return this.U;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     public final declared_synchronized String Y()
     {
         try {
             return this.V;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     public final declared_synchronized String Z()
     {
         try {
             return this.a("mat_id", "mat_id");
         } catch (Throwable v0_2) {
             throw v0_2;
         }
     }

     public final declared_synchronized void a(String p2)
     {
         try {
             this.c = p2;
             return;
         } catch (Throwable v0) {
             throw v0;
         }
     }

     public final declared_synchronized String aA()
     {
         try {
             return this.aq;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     public final declared_synchronized String aB()
     {
         try {
             return this.ar;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     public final declared_synchronized String aC()
     {
         try {
             return this.as;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     public final declared_synchronized String aD()
     {
         try {
             return this.at;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     public final declared_synchronized String aE()
     {
         try {
             return this.au;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     public final declared_synchronized String aF()
     {
         try {
             return this.av;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     public final declared_synchronized String aG()
     {
         try {
             return this.aw;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     public final declared_synchronized String aH()
     {
         try {
             return this.ax;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     public final declared_synchronized String aI()
     {
         try {
             return this.ay;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     public final declared_synchronized String aJ()
     {
         try {
             return this.az;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     public final declared_synchronized String aK()
     {
         try {
             return this.aA;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     public final declared_synchronized String aL()
     {
         try {
             return this.aB;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     public final declared_synchronized String aM()
     {
         try {
             return this.aC;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     public final declared_synchronized String aN()
     {
         try {
             return this.aD;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     public final declared_synchronized String aO()
     {
         try {
             return this.aE;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     public final declared_synchronized String aP()
     {
         try {
             return this.aF;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     public final declared_synchronized String aQ()
     {
         try {
             return this.aG;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     public final declared_synchronized String aR()
     {
         try {
             return this.aH;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     public final declared_synchronized String aa()
     {
         try {
             return this.W;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     public final declared_synchronized String ab()
     {
         try {
             return this.X;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     public final declared_synchronized String ac()
     {
         try {
             return this.a("mat_log_id_open", "logId");
         } catch (Throwable v0_2) {
             throw v0_2;
         }
     }

     public final declared_synchronized String ad()
     {
         try {
             return this.Y;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     public final declared_synchronized String ae()
     {
         try {
             return this.Z;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     public final declared_synchronized String af()
     {
         try {
             return this.aa;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     public final declared_synchronized String ag()
     {
         try {
             return this.ab;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     public final declared_synchronized String ah()
     {
         try {
             return this.ac;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     public final declared_synchronized String ai()
     {
         try {
             return this.ad;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     public final declared_synchronized String aj()
     {
         try {
             return this.ae;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     public final declared_synchronized String ak()
     {
         try {
             return this.af;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     public final declared_synchronized String al()
     {
         try {
             return this.ag;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     public final declared_synchronized String am()
     {
         try {
             return this.ah;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     public final declared_synchronized String an()
     {
         try {
             return this.ai;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     public final declared_synchronized String ao()
     {
         try {
             return "3.4.2";
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     public final declared_synchronized String ap()
     {
         try {
             return this.aj;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     public final declared_synchronized String aq()
     {
         try {
             return this.ak;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     public final declared_synchronized String ar()
     {
         try {
             return this.al;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     public final declared_synchronized String as()
     {
         try {
             return this.am;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     public final declared_synchronized String at()
     {
         try {
             return this.a("mat_log_id_update", "logId");
         } catch (Throwable v0_2) {
             throw v0_2;
         }
     }

     public final declared_synchronized String au()
     {
         try {
             return this.an;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     public final declared_synchronized String av()
     {
         try {
             return this.a("mat_user_ids", "user_email");
         } catch (Throwable v0_2) {
             throw v0_2;
         }
     }

     public final declared_synchronized String aw()
     {
         try {
             return this.a("mat_user_ids", "user_id");
         } catch (Throwable v0_2) {
             throw v0_2;
         }
     }

     public final declared_synchronized String ax()
     {
         try {
             return this.a("mat_user_ids", "user_name");
         } catch (Throwable v0_2) {
             throw v0_2;
         }
     }

     public final declared_synchronized String ay()
     {
         try {
             return this.ao;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     public final declared_synchronized String az()
     {
         try {
             return this.ap;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     public final declared_synchronized void b()
     {
         try {
             this.c(0);
             this.d(0);
             this.m(0);
             this.b("USD");
             this.l(0);
             this.aY();
             this.aX();
             this.bb();
             this.bc();
             this.be();
             this.bd();
             this.aZ();
             this.ba();
             this.aS();
             this.aT();
             this.aU();
             this.aV();
             this.aW();
             this.bg();
             this.bf();
             this.bh();
             this.bu();
             this.bv();
             this.bw();
             this.bx();
             this.by();
             this.bs();
             this.br();
             this.bq();
             this.bt();
             this.bo();
             this.bp();
             this.bm();
             this.bl();
             this.bk();
             this.bn();
             this.bi();
             this.bj();
             return;
         } catch (Throwable v0_5) {
             throw v0_5;
         }
     }

     public final declared_synchronized void b(String p2)
     {
         try {
             this.n = p2;
             return;
         } catch (Throwable v0) {
             throw v0;
         }
     }

     public final declared_synchronized String c()
     {
         try {
             return this.c;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     public final declared_synchronized void c(String p2)
     {
         try {
             this.D = p2;
             return;
         } catch (Throwable v0) {
             throw v0;
         }
     }

     public final declared_synchronized String d()
     {
         try {
             return this.d;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     public final declared_synchronized void d(String p2)
     {
         try {
             this.F = p2;
             return;
         } catch (Throwable v0) {
             throw v0;
         }
     }

     public final declared_synchronized String e()
     {
         try {
             return this.e;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     public final declared_synchronized void e(String p2)
     {
         try {
             this.J = p2;
             return;
         } catch (Throwable v0) {
             throw v0;
         }
     }

     public final declared_synchronized String f()
     {
         try {
             return this.f;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     public final declared_synchronized void f(String p2)
     {
         try {
             this.M = p2;
             return;
         } catch (Throwable v0) {
             throw v0;
         }
     }

     public final declared_synchronized String g()
     {
         try {
             return this.g;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     public final declared_synchronized void g(String p2)
     {
         try {
             this.N = p2;
             return;
         } catch (Throwable v0) {
             throw v0;
         }
     }

     public final declared_synchronized String h()
     {
         try {
             return this.h;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     public final declared_synchronized void h(String p3)
     {
         try {
             this.a("mat_referrer", "referrer", p3);
             return;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     public final declared_synchronized String i()
     {
         try {
             return this.i;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     public final declared_synchronized void i(String p3)
     {
         try {
             this.a("mat_log_id_last_open", "logId", p3);
             return;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     public final declared_synchronized String j()
     {
         try {
             return this.j;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     public final declared_synchronized void j(String p3)
     {
         try {
             this.a("mat_log_id_open", "logId", p3);
             return;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     public final declared_synchronized String k()
     {
         try {
             return this.k;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     public final declared_synchronized void k(String p2)
     {
         try {
             this.Z = p2;
             return;
         } catch (Throwable v0) {
             throw v0;
         }
     }

     public final declared_synchronized String l()
     {
         try {
             return this.l;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     public final declared_synchronized void l(String p2)
     {
         try {
             this.ae = p2;
             return;
         } catch (Throwable v0) {
             throw v0;
         }
     }

     public final declared_synchronized String m()
     {
         try {
             return this.m;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     public final declared_synchronized void m(String p2)
     {
         try {
             this.af = p2;
             return;
         } catch (Throwable v0) {
             throw v0;
         }
     }

     public final declared_synchronized String n()
     {
         try {
             return this.n;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     public final declared_synchronized void n(String p2)
     {
         try {
             this.aj = p2;
             return;
         } catch (Throwable v0) {
             throw v0;
         }
     }

     public final declared_synchronized String o()
     {
         try {
             return this.o;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     public final declared_synchronized void o(String p3)
     {
         try {
             this.a("mat_user_ids", "user_id", p3);
             return;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     public final declared_synchronized String p()
     {
         try {
             return this.p;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     public final declared_synchronized String q()
     {
         try {
             return this.q;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     public final declared_synchronized String r()
     {
         try {
             return this.r;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     public final declared_synchronized String s()
     {
         try {
             return this.s;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     public final declared_synchronized String t()
     {
         try {
             return this.t;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     public final declared_synchronized String u()
     {
         try {
             return this.u;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     public final declared_synchronized String v()
     {
         try {
             return this.v;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     public final declared_synchronized String w()
     {
         try {
             return this.w;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     public final declared_synchronized String x()
     {
         try {
             return this.x;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     public final declared_synchronized String y()
     {
         try {
             return this.y;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }

     public final declared_synchronized String z()
     {
         try {
             return this.z;
         } catch (Throwable v0_1) {
             throw v0_1;
         }
     }
 }
 package com.c;
 final class i implements java.lang.Runnable {
     final synthetic boolean a;
     final synthetic com.c.g b;

     i(com.c.g p1, boolean p2)
     {
         this.b = p1;
         this.a = p2;
         return;
     }

     public final void run()
     {
         if (!this.a) {
             this.b.j.e(Integer.toString(0));
         } else {
             this.b.j.e(Integer.toString(1));
         }
         return;
     }
 }
 package com.c;
 final class j implements java.lang.Runnable {
     final synthetic String a;
     final synthetic int b;
     final synthetic com.c.g c;

     j(com.c.g p1, String p2, int p3)
     {
         this.c = p1;
         this.a = p2;
         this.b = p3;
         return;
     }

     public final void run()
     {
         this.c.j.f(this.a);
         this.c.j.g(Integer.toString(this.b));
         this.c.e = 1;
         if ((this.c.f) && (!this.c.h)) {
             try {
                 this.c.l.notifyAll();
                 this.c.h = 1;
             } catch (Throwable v0_13) {
                 throw v0_13;
             }
         }
         return;
     }
 }
 package com.c;
 final class k implements java.lang.Runnable {
     final synthetic String a;
     final synthetic com.c.g b;

     k(com.c.g p1, String p2)
     {
         this.b = p1;
         this.a = p2;
         return;
     }

     public final void run()
     {
         this.b.j.h(this.a);
         return;
     }
 }
 package com.c;
 final class l implements java.lang.Runnable {
     final synthetic String a;
     final synthetic com.c.g b;

     l(com.c.g p1, String p2)
     {
         this.b = p1;
         this.a = p2;
         return;
     }

     public final void run()
     {
         if ((this.a != null) && (!this.a.equals(""))) {
             this.b.j.k(this.a);
         } else {
             this.b.j.k(this.b.k.getPackageName());
         }
         return;
     }
 }
 package com.c;
 final class m {
     private static com.c.h a;

     public static declared_synchronized String a()
     {
         try {
             com.c.m.a = com.c.h.a();
             Throwable v0_2 = new StringBuilder();
             v0_2.append(new StringBuilder("connection_type=").append(com.c.m.a.l()).toString());
             com.c.m.a(v0_2, "age", com.c.m.a.e());
             com.c.m.a(v0_2, "altitude", com.c.m.a.g());
             com.c.m.a(v0_2, "android_id", com.c.m.a.h());
             com.c.m.a(v0_2, "app_ad_tracking", com.c.m.a.i());
             com.c.m.a(v0_2, "app_name", com.c.m.a.j());
             com.c.m.a(v0_2, "app_version", com.c.m.a.k());
             com.c.m.a(v0_2, "country_code", com.c.m.a.m());
             com.c.m.a(v0_2, "currency_code", com.c.m.a.n());
             com.c.m.a(v0_2, "device_brand", com.c.m.a.o());

Source


# encoding: utf-8

__author__ = "Nils Tobias Schmidt"
__email__ = "schmidt89 at informatik.uni-marburg.de"

from androlyze.model.script.AndroScript import AndroScript
from androlyze.log.Log import log

CAT_DECOMPILE = "decompiled_classes"

class DecompileClassesText(AndroScript):
    ''' Get the source code from the apk for each class. '''
    
    VERSION = "0.1"
    
    def _analyze(self, apk, dalvik_vm_format, vm_analysis, gvm_analysis, *args, **kwargs):
        ''' This sample code is taken from `androguard` and has been modified!

        See Also
        --------
        http://code.google.com/p/androguard/wiki/RE#Source_Code
        '''

        res = self.res

        res.register_keys([CAT_DECOMPILE])

        # androguard.core.bytecodes.dvm.ClassDefItem
        for clazz in dalvik_vm_format.get_classes():
            try:
                key = clazz.get_name() 
                # skip android classes
                if key.find("Landroid") != -1:
                    continue
                self.cres += clazz.get_source()
            except Exception as e:
                log.exception(e)

    def custom_result_object(self):
        return ("", "java")

    ############################################################
    #---Options
    ############################################################    

    def needs_dalvik_vm_format(self):
        return True
    
    def needs_vmanalysis(self):
        return True