public final class android.app.LoadedApk
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: android.app.LoadedApk
  super_class: java.lang.Object
{
  static final java.lang.String TAG;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: "LoadedApk"

  static final boolean DEBUG;
    descriptor: Z
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  private static final java.lang.String PROPERTY_NAME_APPEND_NATIVE;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "pi.append_native_lib_paths"

  private final android.app.ActivityThread mActivityThread;
    descriptor: Landroid/app/ActivityThread;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  final java.lang.String mPackageName;
    descriptor: Ljava/lang/String;
    flags: (0x0010) ACC_FINAL

  private android.content.pm.ApplicationInfo mApplicationInfo;
    descriptor: Landroid/content/pm/ApplicationInfo;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String mAppDir;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String mResDir;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String[] mOverlayDirs;
    descriptor: [Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String mDataDir;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String mLibDir;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private java.io.File mDataDirFile;
    descriptor: Ljava/io/File;
    flags: (0x0002) ACC_PRIVATE

  private java.io.File mDeviceProtectedDataDirFile;
    descriptor: Ljava/io/File;
    flags: (0x0002) ACC_PRIVATE

  private java.io.File mCredentialProtectedDataDirFile;
    descriptor: Ljava/io/File;
    flags: (0x0002) ACC_PRIVATE

  private final java.lang.ClassLoader mBaseClassLoader;
    descriptor: Ljava/lang/ClassLoader;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final boolean mSecurityViolation;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final boolean mIncludeCode;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final boolean mRegisterPackage;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final android.view.DisplayAdjustments mDisplayAdjustments;
    descriptor: Landroid/view/DisplayAdjustments;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  android.content.res.Resources mResources;
    descriptor: Landroid/content/res/Resources;
    flags: (0x0000) 

  private java.lang.ClassLoader mClassLoader;
    descriptor: Ljava/lang/ClassLoader;
    flags: (0x0002) ACC_PRIVATE

  private android.app.Application mApplication;
    descriptor: Landroid/app/Application;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String[] mSplitNames;
    descriptor: [Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String[] mSplitAppDirs;
    descriptor: [Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String[] mSplitResDirs;
    descriptor: [Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String[] mSplitClassLoaderNames;
    descriptor: [Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private final android.util.ArrayMap<android.content.Context, android.util.ArrayMap<android.content.BroadcastReceiver, android.app.LoadedApk$ReceiverDispatcher>> mReceivers;
    descriptor: Landroid/util/ArrayMap;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Landroid/util/ArrayMap<Landroid/content/Context;Landroid/util/ArrayMap<Landroid/content/BroadcastReceiver;Landroid/app/LoadedApk$ReceiverDispatcher;>;>;

  private final android.util.ArrayMap<android.content.Context, android.util.ArrayMap<android.content.BroadcastReceiver, android.app.LoadedApk$ReceiverDispatcher>> mUnregisteredReceivers;
    descriptor: Landroid/util/ArrayMap;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Landroid/util/ArrayMap<Landroid/content/Context;Landroid/util/ArrayMap<Landroid/content/BroadcastReceiver;Landroid/app/LoadedApk$ReceiverDispatcher;>;>;

  private final android.util.ArrayMap<android.content.Context, android.util.ArrayMap<android.content.ServiceConnection, android.app.LoadedApk$ServiceDispatcher>> mServices;
    descriptor: Landroid/util/ArrayMap;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Landroid/util/ArrayMap<Landroid/content/Context;Landroid/util/ArrayMap<Landroid/content/ServiceConnection;Landroid/app/LoadedApk$ServiceDispatcher;>;>;

  private final android.util.ArrayMap<android.content.Context, android.util.ArrayMap<android.content.ServiceConnection, android.app.LoadedApk$ServiceDispatcher>> mUnboundServices;
    descriptor: Landroid/util/ArrayMap;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Landroid/util/ArrayMap<Landroid/content/Context;Landroid/util/ArrayMap<Landroid/content/ServiceConnection;Landroid/app/LoadedApk$ServiceDispatcher;>;>;

  private android.app.AppComponentFactory mAppComponentFactory;
    descriptor: Landroid/app/AppComponentFactory;
    flags: (0x0002) ACC_PRIVATE

  private android.app.LoadedApk$SplitDependencyLoaderImpl mSplitLoader;
    descriptor: Landroid/app/LoadedApk$SplitDependencyLoaderImpl;
    flags: (0x0002) ACC_PRIVATE

  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 91
            ldc Landroid/app/LoadedApk;
            invokevirtual java.lang.Class.desiredAssertionStatus:()Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic android.app.LoadedApk.$assertionsDisabled:Z
         3: .line 94
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  android.app.Application getApplication();
    descriptor: ()Landroid/app/Application;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.app.LoadedApk this
         0: .line 133
            aload 0 /* this */
            getfield android.app.LoadedApk.mApplication:Landroid/app/Application;
            areturn
        end local 0 // android.app.LoadedApk this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/app/LoadedApk;

  public void <init>(android.app.ActivityThread, android.content.pm.ApplicationInfo, android.content.res.CompatibilityInfo, java.lang.ClassLoader, boolean, boolean, boolean);
    descriptor: (Landroid/app/ActivityThread;Landroid/content/pm/ApplicationInfo;Landroid/content/res/CompatibilityInfo;Ljava/lang/ClassLoader;ZZZ)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=8, args_size=8
        start local 0 // android.app.LoadedApk this
        start local 1 // android.app.ActivityThread activityThread
        start local 2 // android.content.pm.ApplicationInfo aInfo
        start local 3 // android.content.res.CompatibilityInfo compatInfo
        start local 4 // java.lang.ClassLoader baseLoader
        start local 5 // boolean securityViolation
        start local 6 // boolean includeCode
        start local 7 // boolean registerPackage
         0: .line 142
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 111
            aload 0 /* this */
            new android.view.DisplayAdjustments
            dup
            invokespecial android.view.DisplayAdjustments.<init>:()V
            putfield android.app.LoadedApk.mDisplayAdjustments:Landroid/view/DisplayAdjustments;
         2: .line 122
            aload 0 /* this */
         3: .line 123
            new android.util.ArrayMap
            dup
            invokespecial android.util.ArrayMap.<init>:()V
            putfield android.app.LoadedApk.mReceivers:Landroid/util/ArrayMap;
         4: .line 124
            aload 0 /* this */
         5: .line 125
            new android.util.ArrayMap
            dup
            invokespecial android.util.ArrayMap.<init>:()V
            putfield android.app.LoadedApk.mUnregisteredReceivers:Landroid/util/ArrayMap;
         6: .line 126
            aload 0 /* this */
         7: .line 127
            new android.util.ArrayMap
            dup
            invokespecial android.util.ArrayMap.<init>:()V
            putfield android.app.LoadedApk.mServices:Landroid/util/ArrayMap;
         8: .line 128
            aload 0 /* this */
         9: .line 129
            new android.util.ArrayMap
            dup
            invokespecial android.util.ArrayMap.<init>:()V
            putfield android.app.LoadedApk.mUnboundServices:Landroid/util/ArrayMap;
        10: .line 146
            aload 0 /* this */
            aload 1 /* activityThread */
            putfield android.app.LoadedApk.mActivityThread:Landroid/app/ActivityThread;
        11: .line 147
            aload 0 /* this */
            aload 2 /* aInfo */
            invokevirtual android.app.LoadedApk.setApplicationInfo:(Landroid/content/pm/ApplicationInfo;)V
        12: .line 148
            aload 0 /* this */
            aload 2 /* aInfo */
            getfield android.content.pm.ApplicationInfo.packageName:Ljava/lang/String;
            putfield android.app.LoadedApk.mPackageName:Ljava/lang/String;
        13: .line 149
            aload 0 /* this */
            aload 4 /* baseLoader */
            putfield android.app.LoadedApk.mBaseClassLoader:Ljava/lang/ClassLoader;
        14: .line 150
            aload 0 /* this */
            iload 5 /* securityViolation */
            putfield android.app.LoadedApk.mSecurityViolation:Z
        15: .line 151
            aload 0 /* this */
            iload 6 /* includeCode */
            putfield android.app.LoadedApk.mIncludeCode:Z
        16: .line 152
            aload 0 /* this */
            iload 7 /* registerPackage */
            putfield android.app.LoadedApk.mRegisterPackage:Z
        17: .line 153
            aload 0 /* this */
            getfield android.app.LoadedApk.mDisplayAdjustments:Landroid/view/DisplayAdjustments;
            aload 3 /* compatInfo */
            invokevirtual android.view.DisplayAdjustments.setCompatibilityInfo:(Landroid/content/res/CompatibilityInfo;)V
        18: .line 154
            aload 0 /* this */
            aload 0 /* this */
            aload 0 /* this */
            getfield android.app.LoadedApk.mApplicationInfo:Landroid/content/pm/ApplicationInfo;
            aload 0 /* this */
            getfield android.app.LoadedApk.mBaseClassLoader:Ljava/lang/ClassLoader;
            invokevirtual android.app.LoadedApk.createAppFactory:(Landroid/content/pm/ApplicationInfo;Ljava/lang/ClassLoader;)Landroid/app/AppComponentFactory;
            putfield android.app.LoadedApk.mAppComponentFactory:Landroid/app/AppComponentFactory;
        19: .line 155
            return
        end local 7 // boolean registerPackage
        end local 6 // boolean includeCode
        end local 5 // boolean securityViolation
        end local 4 // java.lang.ClassLoader baseLoader
        end local 3 // android.content.res.CompatibilityInfo compatInfo
        end local 2 // android.content.pm.ApplicationInfo aInfo
        end local 1 // android.app.ActivityThread activityThread
        end local 0 // android.app.LoadedApk this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   20     0               this  Landroid/app/LoadedApk;
            0   20     1     activityThread  Landroid/app/ActivityThread;
            0   20     2              aInfo  Landroid/content/pm/ApplicationInfo;
            0   20     3         compatInfo  Landroid/content/res/CompatibilityInfo;
            0   20     4         baseLoader  Ljava/lang/ClassLoader;
            0   20     5  securityViolation  Z
            0   20     6        includeCode  Z
            0   20     7    registerPackage  Z
    MethodParameters:
                   Name  Flags
      activityThread     
      aInfo              
      compatInfo         
      baseLoader         
      securityViolation  
      includeCode        
      registerPackage    

  private static android.content.pm.ApplicationInfo adjustNativeLibraryPaths(android.content.pm.ApplicationInfo);
    descriptor: (Landroid/content/pm/ApplicationInfo;)Landroid/content/pm/ApplicationInfo;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
         0: .line 162
            new java.lang.Error
            dup
            ldc "Unresolved compilation problems: \n\tVMRuntime cannot be resolved\n\tVMRuntime cannot be resolved\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    MethodParameters:
      Name  Flags
      info  

  void <init>(android.app.ActivityThread);
    descriptor: (Landroid/app/ActivityThread;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // android.app.LoadedApk this
        start local 1 // android.app.ActivityThread activityThread
         0: .line 188
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 111
            aload 0 /* this */
            new android.view.DisplayAdjustments
            dup
            invokespecial android.view.DisplayAdjustments.<init>:()V
            putfield android.app.LoadedApk.mDisplayAdjustments:Landroid/view/DisplayAdjustments;
         2: .line 122
            aload 0 /* this */
         3: .line 123
            new android.util.ArrayMap
            dup
            invokespecial android.util.ArrayMap.<init>:()V
            putfield android.app.LoadedApk.mReceivers:Landroid/util/ArrayMap;
         4: .line 124
            aload 0 /* this */
         5: .line 125
            new android.util.ArrayMap
            dup
            invokespecial android.util.ArrayMap.<init>:()V
            putfield android.app.LoadedApk.mUnregisteredReceivers:Landroid/util/ArrayMap;
         6: .line 126
            aload 0 /* this */
         7: .line 127
            new android.util.ArrayMap
            dup
            invokespecial android.util.ArrayMap.<init>:()V
            putfield android.app.LoadedApk.mServices:Landroid/util/ArrayMap;
         8: .line 128
            aload 0 /* this */
         9: .line 129
            new android.util.ArrayMap
            dup
            invokespecial android.util.ArrayMap.<init>:()V
            putfield android.app.LoadedApk.mUnboundServices:Landroid/util/ArrayMap;
        10: .line 189
            aload 0 /* this */
            aload 1 /* activityThread */
            putfield android.app.LoadedApk.mActivityThread:Landroid/app/ActivityThread;
        11: .line 190
            aload 0 /* this */
            new android.content.pm.ApplicationInfo
            dup
            invokespecial android.content.pm.ApplicationInfo.<init>:()V
            putfield android.app.LoadedApk.mApplicationInfo:Landroid/content/pm/ApplicationInfo;
        12: .line 191
            aload 0 /* this */
            getfield android.app.LoadedApk.mApplicationInfo:Landroid/content/pm/ApplicationInfo;
            ldc "android"
            putfield android.content.pm.ApplicationInfo.packageName:Ljava/lang/String;
        13: .line 192
            aload 0 /* this */
            ldc "android"
            putfield android.app.LoadedApk.mPackageName:Ljava/lang/String;
        14: .line 193
            aload 0 /* this */
            aconst_null
            putfield android.app.LoadedApk.mAppDir:Ljava/lang/String;
        15: .line 194
            aload 0 /* this */
            aconst_null
            putfield android.app.LoadedApk.mResDir:Ljava/lang/String;
        16: .line 195
            aload 0 /* this */
            aconst_null
            putfield android.app.LoadedApk.mSplitAppDirs:[Ljava/lang/String;
        17: .line 196
            aload 0 /* this */
            aconst_null
            putfield android.app.LoadedApk.mSplitResDirs:[Ljava/lang/String;
        18: .line 197
            aload 0 /* this */
            aconst_null
            putfield android.app.LoadedApk.mSplitClassLoaderNames:[Ljava/lang/String;
        19: .line 198
            aload 0 /* this */
            aconst_null
            putfield android.app.LoadedApk.mOverlayDirs:[Ljava/lang/String;
        20: .line 199
            aload 0 /* this */
            aconst_null
            putfield android.app.LoadedApk.mDataDir:Ljava/lang/String;
        21: .line 200
            aload 0 /* this */
            aconst_null
            putfield android.app.LoadedApk.mDataDirFile:Ljava/io/File;
        22: .line 201
            aload 0 /* this */
            aconst_null
            putfield android.app.LoadedApk.mDeviceProtectedDataDirFile:Ljava/io/File;
        23: .line 202
            aload 0 /* this */
            aconst_null
            putfield android.app.LoadedApk.mCredentialProtectedDataDirFile:Ljava/io/File;
        24: .line 203
            aload 0 /* this */
            aconst_null
            putfield android.app.LoadedApk.mLibDir:Ljava/lang/String;
        25: .line 204
            aload 0 /* this */
            aconst_null
            putfield android.app.LoadedApk.mBaseClassLoader:Ljava/lang/ClassLoader;
        26: .line 205
            aload 0 /* this */
            iconst_0
            putfield android.app.LoadedApk.mSecurityViolation:Z
        27: .line 206
            aload 0 /* this */
            iconst_1
            putfield android.app.LoadedApk.mIncludeCode:Z
        28: .line 207
            aload 0 /* this */
            iconst_0
            putfield android.app.LoadedApk.mRegisterPackage:Z
        29: .line 208
            aload 0 /* this */
            invokestatic java.lang.ClassLoader.getSystemClassLoader:()Ljava/lang/ClassLoader;
            putfield android.app.LoadedApk.mClassLoader:Ljava/lang/ClassLoader;
        30: .line 209
            aload 0 /* this */
            invokestatic android.content.res.Resources.getSystem:()Landroid/content/res/Resources;
            putfield android.app.LoadedApk.mResources:Landroid/content/res/Resources;
        31: .line 210
            aload 0 /* this */
            aload 0 /* this */
            aload 0 /* this */
            getfield android.app.LoadedApk.mApplicationInfo:Landroid/content/pm/ApplicationInfo;
            aload 0 /* this */
            getfield android.app.LoadedApk.mClassLoader:Ljava/lang/ClassLoader;
            invokevirtual android.app.LoadedApk.createAppFactory:(Landroid/content/pm/ApplicationInfo;Ljava/lang/ClassLoader;)Landroid/app/AppComponentFactory;
            putfield android.app.LoadedApk.mAppComponentFactory:Landroid/app/AppComponentFactory;
        32: .line 211
            return
        end local 1 // android.app.ActivityThread activityThread
        end local 0 // android.app.LoadedApk this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   33     0            this  Landroid/app/LoadedApk;
            0   33     1  activityThread  Landroid/app/ActivityThread;
    MethodParameters:
                Name  Flags
      activityThread  

  void installSystemApplicationInfo(android.content.pm.ApplicationInfo, java.lang.ClassLoader);
    descriptor: (Landroid/content/pm/ApplicationInfo;Ljava/lang/ClassLoader;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // android.app.LoadedApk this
        start local 1 // android.content.pm.ApplicationInfo info
        start local 2 // java.lang.ClassLoader classLoader
         0: .line 217
            getstatic android.app.LoadedApk.$assertionsDisabled:Z
            ifne 1
            aload 1 /* info */
            getfield android.content.pm.ApplicationInfo.packageName:Ljava/lang/String;
            ldc "android"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 218
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* info */
            putfield android.app.LoadedApk.mApplicationInfo:Landroid/content/pm/ApplicationInfo;
         2: .line 219
            aload 0 /* this */
            aload 2 /* classLoader */
            putfield android.app.LoadedApk.mClassLoader:Ljava/lang/ClassLoader;
         3: .line 220
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* info */
            aload 2 /* classLoader */
            invokevirtual android.app.LoadedApk.createAppFactory:(Landroid/content/pm/ApplicationInfo;Ljava/lang/ClassLoader;)Landroid/app/AppComponentFactory;
            putfield android.app.LoadedApk.mAppComponentFactory:Landroid/app/AppComponentFactory;
         4: .line 221
            return
        end local 2 // java.lang.ClassLoader classLoader
        end local 1 // android.content.pm.ApplicationInfo info
        end local 0 // android.app.LoadedApk this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    5     0         this  Landroid/app/LoadedApk;
            0    5     1         info  Landroid/content/pm/ApplicationInfo;
            0    5     2  classLoader  Ljava/lang/ClassLoader;
    MethodParameters:
             Name  Flags
      info         
      classLoader  

  private android.app.AppComponentFactory createAppFactory(android.content.pm.ApplicationInfo, java.lang.ClassLoader);
    descriptor: (Landroid/content/pm/ApplicationInfo;Ljava/lang/ClassLoader;)Landroid/app/AppComponentFactory;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // android.app.LoadedApk this
        start local 1 // android.content.pm.ApplicationInfo appInfo
        start local 2 // java.lang.ClassLoader cl
         0: .line 224
            aload 1 /* appInfo */
            getfield android.content.pm.ApplicationInfo.appComponentFactory:Ljava/lang/String;
            ifnull 6
            aload 2 /* cl */
            ifnull 6
         1: .line 226
            aload 2 /* cl */
            aload 1 /* appInfo */
            getfield android.content.pm.ApplicationInfo.appComponentFactory:Ljava/lang/String;
            invokevirtual java.lang.ClassLoader.loadClass:(Ljava/lang/String;)Ljava/lang/Class;
         2: .line 227
            invokevirtual java.lang.Class.newInstance:()Ljava/lang/Object;
            checkcast android.app.AppComponentFactory
         3: .line 226
            areturn
         4: .line 228
      StackMap locals:
      StackMap stack: java.lang.ReflectiveOperationException
            astore 3 /* e */
        start local 3 // java.lang.ReflectiveOperationException e
         5: .line 229
            ldc "LoadedApk"
            ldc "Unable to instantiate appComponentFactory"
            aload 3 /* e */
            invokestatic android.util.Slog.e:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
            pop
        end local 3 // java.lang.ReflectiveOperationException e
         6: .line 232
      StackMap locals:
      StackMap stack:
            getstatic android.app.AppComponentFactory.DEFAULT:Landroid/app/AppComponentFactory;
            areturn
        end local 2 // java.lang.ClassLoader cl
        end local 1 // android.content.pm.ApplicationInfo appInfo
        end local 0 // android.app.LoadedApk this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    7     0     this  Landroid/app/LoadedApk;
            0    7     1  appInfo  Landroid/content/pm/ApplicationInfo;
            0    7     2       cl  Ljava/lang/ClassLoader;
            5    6     3        e  Ljava/lang/ReflectiveOperationException;
      Exception table:
        from    to  target  type
           1     3       4  Class java.lang.InstantiationException
           1     3       4  Class java.lang.IllegalAccessException
           1     3       4  Class java.lang.ClassNotFoundException
    MethodParameters:
         Name  Flags
      appInfo  
      cl       

  public android.app.AppComponentFactory getAppFactory();
    descriptor: ()Landroid/app/AppComponentFactory;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.app.LoadedApk this
         0: .line 236
            aload 0 /* this */
            getfield android.app.LoadedApk.mAppComponentFactory:Landroid/app/AppComponentFactory;
            areturn
        end local 0 // android.app.LoadedApk this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/app/LoadedApk;

  public java.lang.String getPackageName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.app.LoadedApk this
         0: .line 240
            aload 0 /* this */
            getfield android.app.LoadedApk.mPackageName:Ljava/lang/String;
            areturn
        end local 0 // android.app.LoadedApk this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/app/LoadedApk;

  public android.content.pm.ApplicationInfo getApplicationInfo();
    descriptor: ()Landroid/content/pm/ApplicationInfo;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.app.LoadedApk this
         0: .line 244
            aload 0 /* this */
            getfield android.app.LoadedApk.mApplicationInfo:Landroid/content/pm/ApplicationInfo;
            areturn
        end local 0 // android.app.LoadedApk this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/app/LoadedApk;

  public int getTargetSdkVersion();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.app.LoadedApk this
         0: .line 248
            aload 0 /* this */
            getfield android.app.LoadedApk.mApplicationInfo:Landroid/content/pm/ApplicationInfo;
            getfield android.content.pm.ApplicationInfo.targetSdkVersion:I
            ireturn
        end local 0 // android.app.LoadedApk this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/app/LoadedApk;

  public boolean isSecurityViolation();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.app.LoadedApk this
         0: .line 252
            aload 0 /* this */
            getfield android.app.LoadedApk.mSecurityViolation:Z
            ireturn
        end local 0 // android.app.LoadedApk this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/app/LoadedApk;

  public android.content.res.CompatibilityInfo getCompatibilityInfo();
    descriptor: ()Landroid/content/res/CompatibilityInfo;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.app.LoadedApk this
         0: .line 256
            aload 0 /* this */
            getfield android.app.LoadedApk.mDisplayAdjustments:Landroid/view/DisplayAdjustments;
            invokevirtual android.view.DisplayAdjustments.getCompatibilityInfo:()Landroid/content/res/CompatibilityInfo;
            areturn
        end local 0 // android.app.LoadedApk this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/app/LoadedApk;

  public void setCompatibilityInfo(android.content.res.CompatibilityInfo);
    descriptor: (Landroid/content/res/CompatibilityInfo;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.app.LoadedApk this
        start local 1 // android.content.res.CompatibilityInfo compatInfo
         0: .line 260
            aload 0 /* this */
            getfield android.app.LoadedApk.mDisplayAdjustments:Landroid/view/DisplayAdjustments;
            aload 1 /* compatInfo */
            invokevirtual android.view.DisplayAdjustments.setCompatibilityInfo:(Landroid/content/res/CompatibilityInfo;)V
         1: .line 261
            return
        end local 1 // android.content.res.CompatibilityInfo compatInfo
        end local 0 // android.app.LoadedApk this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Landroid/app/LoadedApk;
            0    2     1  compatInfo  Landroid/content/res/CompatibilityInfo;
    MethodParameters:
            Name  Flags
      compatInfo  

  private static java.lang.String[] getLibrariesFor(java.lang.String);
    descriptor: (Ljava/lang/String;)[Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // java.lang.String packageName
         0: .line 273
            aconst_null
            astore 1 /* ai */
        start local 1 // android.content.pm.ApplicationInfo ai
         1: .line 275
            invokestatic android.app.ActivityThread.getPackageManager:()Landroid/content/pm/IPackageManager;
            aload 0 /* packageName */
         2: .line 276
            sipush 1024
            invokestatic android.os.UserHandle.myUserId:()I
         3: .line 275
            invokeinterface android.content.pm.IPackageManager.getApplicationInfo:(Ljava/lang/String;II)Landroid/content/pm/ApplicationInfo;
            astore 1 /* ai */
         4: .line 277
            goto 7
      StackMap locals: java.lang.String android.content.pm.ApplicationInfo
      StackMap stack: android.os.RemoteException
         5: astore 2 /* e */
        start local 2 // android.os.RemoteException e
         6: .line 278
            aload 2 /* e */
            invokevirtual android.os.RemoteException.rethrowFromSystemServer:()Ljava/lang/RuntimeException;
            athrow
        end local 2 // android.os.RemoteException e
         7: .line 281
      StackMap locals:
      StackMap stack:
            aload 1 /* ai */
            ifnonnull 9
         8: .line 282
            aconst_null
            areturn
         9: .line 285
      StackMap locals:
      StackMap stack:
            aload 1 /* ai */
            getfield android.content.pm.ApplicationInfo.sharedLibraryFiles:[Ljava/lang/String;
            areturn
        end local 1 // android.content.pm.ApplicationInfo ai
        end local 0 // java.lang.String packageName
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   10     0  packageName  Ljava/lang/String;
            1   10     1           ai  Landroid/content/pm/ApplicationInfo;
            6    7     2            e  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           1     4       5  Class android.os.RemoteException
    MethodParameters:
             Name  Flags
      packageName  

  public void updateApplicationInfo(android.content.pm.ApplicationInfo, java.util.List<java.lang.String>);
    descriptor: (Landroid/content/pm/ApplicationInfo;Ljava/util/List;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=11, locals=12, args_size=3
        start local 0 // android.app.LoadedApk this
        start local 1 // android.content.pm.ApplicationInfo aInfo
        start local 2 // java.util.List oldPaths
         0: .line 297
            aload 0 /* this */
            aload 1 /* aInfo */
            invokevirtual android.app.LoadedApk.setApplicationInfo:(Landroid/content/pm/ApplicationInfo;)V
         1: .line 299
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 3 /* newPaths */
        start local 3 // java.util.List newPaths
         2: .line 300
            aload 0 /* this */
            getfield android.app.LoadedApk.mActivityThread:Landroid/app/ActivityThread;
            aload 1 /* aInfo */
            aload 3 /* newPaths */
            invokestatic android.app.LoadedApk.makePaths:(Landroid/app/ActivityThread;Landroid/content/pm/ApplicationInfo;Ljava/util/List;)V
         3: .line 301
            new java.util.ArrayList
            dup
            aload 3 /* newPaths */
            invokeinterface java.util.List.size:()I
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 4 /* addedPaths */
        start local 4 // java.util.List addedPaths
         4: .line 303
            aload 2 /* oldPaths */
            ifnull 20
         5: .line 304
            aload 3 /* newPaths */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 6
            goto 18
      StackMap locals: android.app.LoadedApk android.content.pm.ApplicationInfo java.util.List java.util.List java.util.List top java.util.Iterator
      StackMap stack:
         6: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 5 /* path */
        start local 5 // java.lang.String path
         7: .line 305
            aload 5 /* path */
            aload 5 /* path */
            getstatic java.io.File.separator:Ljava/lang/String;
            invokevirtual java.lang.String.lastIndexOf:(Ljava/lang/String;)I
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 7 /* apkName */
        start local 7 // java.lang.String apkName
         8: .line 306
            iconst_0
            istore 8 /* match */
        start local 8 // boolean match
         9: .line 307
            aload 2 /* oldPaths */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 10
            goto 15
      StackMap locals: android.app.LoadedApk android.content.pm.ApplicationInfo java.util.List java.util.List java.util.List java.lang.String java.util.Iterator java.lang.String int top java.util.Iterator
      StackMap stack:
        10: aload 10
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 9 /* oldPath */
        start local 9 // java.lang.String oldPath
        11: .line 308
            aload 9 /* oldPath */
            aload 9 /* oldPath */
            getstatic java.io.File.separator:Ljava/lang/String;
            invokevirtual java.lang.String.lastIndexOf:(Ljava/lang/String;)I
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 11 /* oldApkName */
        start local 11 // java.lang.String oldApkName
        12: .line 309
            aload 7 /* apkName */
            aload 11 /* oldApkName */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 15
        13: .line 310
            iconst_1
            istore 8 /* match */
        14: .line 311
            goto 16
        end local 11 // java.lang.String oldApkName
        end local 9 // java.lang.String oldPath
        15: .line 307
      StackMap locals:
      StackMap stack:
            aload 10
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 10
        16: .line 314
      StackMap locals: android.app.LoadedApk android.content.pm.ApplicationInfo java.util.List java.util.List java.util.List java.lang.String java.util.Iterator java.lang.String int
      StackMap stack:
            iload 8 /* match */
            ifne 18
        17: .line 315
            aload 4 /* addedPaths */
            aload 5 /* path */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 8 // boolean match
        end local 7 // java.lang.String apkName
        end local 5 // java.lang.String path
        18: .line 304
      StackMap locals: android.app.LoadedApk android.content.pm.ApplicationInfo java.util.List java.util.List java.util.List top java.util.Iterator
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 6
        19: .line 318
            goto 21
        20: .line 319
      StackMap locals: android.app.LoadedApk android.content.pm.ApplicationInfo java.util.List java.util.List java.util.List
      StackMap stack:
            aload 4 /* addedPaths */
            aload 3 /* newPaths */
            invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
            pop
        21: .line 321
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            astore 5
            monitorenter
        22: .line 322
            aload 0 /* this */
            aload 4 /* addedPaths */
            invokevirtual android.app.LoadedApk.createOrUpdateClassLoaderLocked:(Ljava/util/List;)V
        23: .line 323
            aload 0 /* this */
            getfield android.app.LoadedApk.mResources:Landroid/content/res/Resources;
            ifnull 33
        24: .line 326
            aload 0 /* this */
            aconst_null
            invokevirtual android.app.LoadedApk.getSplitPaths:(Ljava/lang/String;)[Ljava/lang/String;
            astore 6 /* splitPaths */
        start local 6 // java.lang.String[] splitPaths
        25: .line 327
            goto 28
        end local 6 // java.lang.String[] splitPaths
      StackMap locals: android.app.LoadedApk android.content.pm.ApplicationInfo java.util.List java.util.List java.util.List android.app.LoadedApk
      StackMap stack: android.content.pm.PackageManager$NameNotFoundException
        26: pop
        27: .line 329
            new java.lang.AssertionError
            dup
            ldc "null split not found"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        start local 6 // java.lang.String[] splitPaths
        28: .line 332
      StackMap locals: java.lang.String[]
      StackMap stack:
            aload 0 /* this */
            invokestatic android.app.ResourcesManager.getInstance:()Landroid/app/ResourcesManager;
            aconst_null
            aload 0 /* this */
            getfield android.app.LoadedApk.mResDir:Ljava/lang/String;
        29: .line 333
            aload 6 /* splitPaths */
            aload 0 /* this */
            getfield android.app.LoadedApk.mOverlayDirs:[Ljava/lang/String;
            aload 0 /* this */
            getfield android.app.LoadedApk.mApplicationInfo:Landroid/content/pm/ApplicationInfo;
            getfield android.content.pm.ApplicationInfo.sharedLibraryFiles:[Ljava/lang/String;
        30: .line 334
            iconst_0
            aconst_null
            aload 0 /* this */
            invokevirtual android.app.LoadedApk.getCompatibilityInfo:()Landroid/content/res/CompatibilityInfo;
        31: .line 335
            aload 0 /* this */
            invokevirtual android.app.LoadedApk.getClassLoader:()Ljava/lang/ClassLoader;
        32: .line 332
            invokevirtual android.app.ResourcesManager.getResources:(Landroid/os/IBinder;Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;ILandroid/content/res/Configuration;Landroid/content/res/CompatibilityInfo;Ljava/lang/ClassLoader;)Landroid/content/res/Resources;
            putfield android.app.LoadedApk.mResources:Landroid/content/res/Resources;
        end local 6 // java.lang.String[] splitPaths
        33: .line 321
      StackMap locals:
      StackMap stack:
            aload 5
            monitorexit
        34: goto 37
      StackMap locals:
      StackMap stack: java.lang.Throwable
        35: aload 5
            monitorexit
        36: athrow
        37: .line 338
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* aInfo */
            aload 0 /* this */
            getfield android.app.LoadedApk.mClassLoader:Ljava/lang/ClassLoader;
            invokevirtual android.app.LoadedApk.createAppFactory:(Landroid/content/pm/ApplicationInfo;Ljava/lang/ClassLoader;)Landroid/app/AppComponentFactory;
            putfield android.app.LoadedApk.mAppComponentFactory:Landroid/app/AppComponentFactory;
        38: .line 339
            return
        end local 4 // java.util.List addedPaths
        end local 3 // java.util.List newPaths
        end local 2 // java.util.List oldPaths
        end local 1 // android.content.pm.ApplicationInfo aInfo
        end local 0 // android.app.LoadedApk this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   39     0        this  Landroid/app/LoadedApk;
            0   39     1       aInfo  Landroid/content/pm/ApplicationInfo;
            0   39     2    oldPaths  Ljava/util/List<Ljava/lang/String;>;
            2   39     3    newPaths  Ljava/util/List<Ljava/lang/String;>;
            4   39     4  addedPaths  Ljava/util/List<Ljava/lang/String;>;
            7   18     5        path  Ljava/lang/String;
            8   18     7     apkName  Ljava/lang/String;
            9   18     8       match  Z
           11   15     9     oldPath  Ljava/lang/String;
           12   15    11  oldApkName  Ljava/lang/String;
           25   26     6  splitPaths  [Ljava/lang/String;
           28   33     6  splitPaths  [Ljava/lang/String;
      Exception table:
        from    to  target  type
          24    25      26  Class android.content.pm.PackageManager$NameNotFoundException
          22    34      35  any
          35    36      35  any
    Signature: (Landroid/content/pm/ApplicationInfo;Ljava/util/List<Ljava/lang/String;>;)V
    MethodParameters:
          Name  Flags
      aInfo     
      oldPaths  

  private void setApplicationInfo(android.content.pm.ApplicationInfo);
    descriptor: (Landroid/content/pm/ApplicationInfo;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // android.app.LoadedApk this
        start local 1 // android.content.pm.ApplicationInfo aInfo
         0: .line 342
            invokestatic android.os.Process.myUid:()I
            istore 2 /* myUid */
        start local 2 // int myUid
         1: .line 343
            aload 1 /* aInfo */
            invokestatic android.app.LoadedApk.adjustNativeLibraryPaths:(Landroid/content/pm/ApplicationInfo;)Landroid/content/pm/ApplicationInfo;
            astore 1 /* aInfo */
         2: .line 344
            aload 0 /* this */
            aload 1 /* aInfo */
            putfield android.app.LoadedApk.mApplicationInfo:Landroid/content/pm/ApplicationInfo;
         3: .line 345
            aload 0 /* this */
            aload 1 /* aInfo */
            getfield android.content.pm.ApplicationInfo.sourceDir:Ljava/lang/String;
            putfield android.app.LoadedApk.mAppDir:Ljava/lang/String;
         4: .line 346
            aload 0 /* this */
            aload 1 /* aInfo */
            getfield android.content.pm.ApplicationInfo.uid:I
            iload 2 /* myUid */
            if_icmpne 5
            aload 1 /* aInfo */
            getfield android.content.pm.ApplicationInfo.sourceDir:Ljava/lang/String;
            goto 6
      StackMap locals: android.app.LoadedApk android.content.pm.ApplicationInfo int
      StackMap stack: android.app.LoadedApk
         5: aload 1 /* aInfo */
            getfield android.content.pm.ApplicationInfo.publicSourceDir:Ljava/lang/String;
      StackMap locals: android.app.LoadedApk android.content.pm.ApplicationInfo int
      StackMap stack: android.app.LoadedApk java.lang.String
         6: putfield android.app.LoadedApk.mResDir:Ljava/lang/String;
         7: .line 347
            aload 0 /* this */
            aload 1 /* aInfo */
            getfield android.content.pm.ApplicationInfo.resourceDirs:[Ljava/lang/String;
            putfield android.app.LoadedApk.mOverlayDirs:[Ljava/lang/String;
         8: .line 348
            aload 0 /* this */
            aload 1 /* aInfo */
            getfield android.content.pm.ApplicationInfo.dataDir:Ljava/lang/String;
            putfield android.app.LoadedApk.mDataDir:Ljava/lang/String;
         9: .line 349
            aload 0 /* this */
            aload 1 /* aInfo */
            getfield android.content.pm.ApplicationInfo.nativeLibraryDir:Ljava/lang/String;
            putfield android.app.LoadedApk.mLibDir:Ljava/lang/String;
        10: .line 350
            aload 0 /* this */
            aload 1 /* aInfo */
            getfield android.content.pm.ApplicationInfo.dataDir:Ljava/lang/String;
            invokestatic android.os.FileUtils.newFileOrNull:(Ljava/lang/String;)Ljava/io/File;
            putfield android.app.LoadedApk.mDataDirFile:Ljava/io/File;
        11: .line 351
            aload 0 /* this */
            aload 1 /* aInfo */
            getfield android.content.pm.ApplicationInfo.deviceProtectedDataDir:Ljava/lang/String;
            invokestatic android.os.FileUtils.newFileOrNull:(Ljava/lang/String;)Ljava/io/File;
            putfield android.app.LoadedApk.mDeviceProtectedDataDirFile:Ljava/io/File;
        12: .line 352
            aload 0 /* this */
            aload 1 /* aInfo */
            getfield android.content.pm.ApplicationInfo.credentialProtectedDataDir:Ljava/lang/String;
            invokestatic android.os.FileUtils.newFileOrNull:(Ljava/lang/String;)Ljava/io/File;
            putfield android.app.LoadedApk.mCredentialProtectedDataDirFile:Ljava/io/File;
        13: .line 354
            aload 0 /* this */
            aload 1 /* aInfo */
            getfield android.content.pm.ApplicationInfo.splitNames:[Ljava/lang/String;
            putfield android.app.LoadedApk.mSplitNames:[Ljava/lang/String;
        14: .line 355
            aload 0 /* this */
            aload 1 /* aInfo */
            getfield android.content.pm.ApplicationInfo.splitSourceDirs:[Ljava/lang/String;
            putfield android.app.LoadedApk.mSplitAppDirs:[Ljava/lang/String;
        15: .line 356
            aload 0 /* this */
            aload 1 /* aInfo */
            getfield android.content.pm.ApplicationInfo.uid:I
            iload 2 /* myUid */
            if_icmpne 16
            aload 1 /* aInfo */
            getfield android.content.pm.ApplicationInfo.splitSourceDirs:[Ljava/lang/String;
            goto 17
      StackMap locals:
      StackMap stack: android.app.LoadedApk
        16: aload 1 /* aInfo */
            getfield android.content.pm.ApplicationInfo.splitPublicSourceDirs:[Ljava/lang/String;
      StackMap locals: android.app.LoadedApk android.content.pm.ApplicationInfo int
      StackMap stack: android.app.LoadedApk java.lang.String[]
        17: putfield android.app.LoadedApk.mSplitResDirs:[Ljava/lang/String;
        18: .line 357
            aload 0 /* this */
            aload 1 /* aInfo */
            getfield android.content.pm.ApplicationInfo.splitClassLoaderNames:[Ljava/lang/String;
            putfield android.app.LoadedApk.mSplitClassLoaderNames:[Ljava/lang/String;
        19: .line 359
            aload 1 /* aInfo */
            invokevirtual android.content.pm.ApplicationInfo.requestsIsolatedSplitLoading:()Z
            ifeq 21
            aload 0 /* this */
            getfield android.app.LoadedApk.mSplitNames:[Ljava/lang/String;
            invokestatic com.android.internal.util.ArrayUtils.isEmpty:([Ljava/lang/Object;)Z
            ifne 21
        20: .line 360
            aload 0 /* this */
            new android.app.LoadedApk$SplitDependencyLoaderImpl
            dup
            aload 0 /* this */
            aload 1 /* aInfo */
            getfield android.content.pm.ApplicationInfo.splitDependencies:Landroid/util/SparseArray;
            invokespecial android.app.LoadedApk$SplitDependencyLoaderImpl.<init>:(Landroid/app/LoadedApk;Landroid/util/SparseArray;)V
            putfield android.app.LoadedApk.mSplitLoader:Landroid/app/LoadedApk$SplitDependencyLoaderImpl;
        21: .line 362
      StackMap locals:
      StackMap stack:
            return
        end local 2 // int myUid
        end local 1 // android.content.pm.ApplicationInfo aInfo
        end local 0 // android.app.LoadedApk this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   22     0   this  Landroid/app/LoadedApk;
            0   22     1  aInfo  Landroid/content/pm/ApplicationInfo;
            1   22     2  myUid  I
    MethodParameters:
       Name  Flags
      aInfo  

  public static void makePaths(android.app.ActivityThread, android.content.pm.ApplicationInfo, java.util.List<java.lang.String>);
    descriptor: (Landroid/app/ActivityThread;Landroid/content/pm/ApplicationInfo;Ljava/util/List;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // android.app.ActivityThread activityThread
        start local 1 // android.content.pm.ApplicationInfo aInfo
        start local 2 // java.util.List outZipPaths
         0: .line 367
            aload 0 /* activityThread */
            iconst_0
            aload 1 /* aInfo */
            aload 2 /* outZipPaths */
            aconst_null
            invokestatic android.app.LoadedApk.makePaths:(Landroid/app/ActivityThread;ZLandroid/content/pm/ApplicationInfo;Ljava/util/List;Ljava/util/List;)V
         1: .line 368
            return
        end local 2 // java.util.List outZipPaths
        end local 1 // android.content.pm.ApplicationInfo aInfo
        end local 0 // android.app.ActivityThread activityThread
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    2     0  activityThread  Landroid/app/ActivityThread;
            0    2     1           aInfo  Landroid/content/pm/ApplicationInfo;
            0    2     2     outZipPaths  Ljava/util/List<Ljava/lang/String;>;
    Signature: (Landroid/app/ActivityThread;Landroid/content/pm/ApplicationInfo;Ljava/util/List<Ljava/lang/String;>;)V
    MethodParameters:
                Name  Flags
      activityThread  
      aInfo           
      outZipPaths     

  public static void makePaths(android.app.ActivityThread, boolean, android.content.pm.ApplicationInfo, java.util.List<java.lang.String>, java.util.List<java.lang.String>);
    descriptor: (Landroid/app/ActivityThread;ZLandroid/content/pm/ApplicationInfo;Ljava/util/List;Ljava/util/List;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=5, args_size=5
         0: .line 456
            new java.lang.Error
            dup
            ldc "Unresolved compilation problem: \n\tVMRuntime cannot be resolved\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Signature: (Landroid/app/ActivityThread;ZLandroid/content/pm/ApplicationInfo;Ljava/util/List<Ljava/lang/String;>;Ljava/util/List<Ljava/lang/String;>;)V
    MethodParameters:
                Name  Flags
      activityThread  
      isBundledApp    
      aInfo           
      outZipPaths     
      outLibPaths     

  private static void appendApkLibPathIfNeeded(java.lang.String, android.content.pm.ApplicationInfo, java.util.List<java.lang.String>);
    descriptor: (Ljava/lang/String;Landroid/content/pm/ApplicationInfo;Ljava/util/List;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // java.lang.String path
        start local 1 // android.content.pm.ApplicationInfo applicationInfo
        start local 2 // java.util.List outLibPaths
         0: .line 508
            aload 2 /* outLibPaths */
            ifnull 3
            aload 1 /* applicationInfo */
            getfield android.content.pm.ApplicationInfo.primaryCpuAbi:Ljava/lang/String;
            ifnull 3
            aload 0 /* path */
            ldc ".apk"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 3
         1: .line 509
            aload 1 /* applicationInfo */
            getfield android.content.pm.ApplicationInfo.targetSdkVersion:I
            bipush 26
            if_icmplt 3
         2: .line 510
            aload 2 /* outLibPaths */
            new java.lang.StringBuilder
            dup
            aload 0 /* path */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "!/lib/"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* applicationInfo */
            getfield android.content.pm.ApplicationInfo.primaryCpuAbi:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         3: .line 513
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.util.List outLibPaths
        end local 1 // android.content.pm.ApplicationInfo applicationInfo
        end local 0 // java.lang.String path
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    4     0             path  Ljava/lang/String;
            0    4     1  applicationInfo  Landroid/content/pm/ApplicationInfo;
            0    4     2      outLibPaths  Ljava/util/List<Ljava/lang/String;>;
    Signature: (Ljava/lang/String;Landroid/content/pm/ApplicationInfo;Ljava/util/List<Ljava/lang/String;>;)V
    MethodParameters:
                 Name  Flags
      path             
      applicationInfo  
      outLibPaths      

  java.lang.ClassLoader getSplitClassLoader(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/ClassLoader;
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.app.LoadedApk this
        start local 1 // java.lang.String splitName
         0: .line 591
            aload 0 /* this */
            getfield android.app.LoadedApk.mSplitLoader:Landroid/app/LoadedApk$SplitDependencyLoaderImpl;
            ifnonnull 2
         1: .line 592
            aload 0 /* this */
            getfield android.app.LoadedApk.mClassLoader:Ljava/lang/ClassLoader;
            areturn
         2: .line 594
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.app.LoadedApk.mSplitLoader:Landroid/app/LoadedApk$SplitDependencyLoaderImpl;
            aload 1 /* splitName */
            invokevirtual android.app.LoadedApk$SplitDependencyLoaderImpl.getClassLoaderForSplit:(Ljava/lang/String;)Ljava/lang/ClassLoader;
            areturn
        end local 1 // java.lang.String splitName
        end local 0 // android.app.LoadedApk this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0       this  Landroid/app/LoadedApk;
            0    3     1  splitName  Ljava/lang/String;
    Exceptions:
      throws android.content.pm.PackageManager$NameNotFoundException
    MethodParameters:
           Name  Flags
      splitName  

  java.lang.String[] getSplitPaths(java.lang.String);
    descriptor: (Ljava/lang/String;)[Ljava/lang/String;
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.app.LoadedApk this
        start local 1 // java.lang.String splitName
         0: .line 598
            aload 0 /* this */
            getfield android.app.LoadedApk.mSplitLoader:Landroid/app/LoadedApk$SplitDependencyLoaderImpl;
            ifnonnull 2
         1: .line 599
            aload 0 /* this */
            getfield android.app.LoadedApk.mSplitResDirs:[Ljava/lang/String;
            areturn
         2: .line 601
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.app.LoadedApk.mSplitLoader:Landroid/app/LoadedApk$SplitDependencyLoaderImpl;
            aload 1 /* splitName */
            invokevirtual android.app.LoadedApk$SplitDependencyLoaderImpl.getSplitPathsForSplit:(Ljava/lang/String;)[Ljava/lang/String;
            areturn
        end local 1 // java.lang.String splitName
        end local 0 // android.app.LoadedApk this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0       this  Landroid/app/LoadedApk;
            0    3     1  splitName  Ljava/lang/String;
    Exceptions:
      throws android.content.pm.PackageManager$NameNotFoundException
    MethodParameters:
           Name  Flags
      splitName  

  private void createOrUpdateClassLoaderLocked(java.util.List<java.lang.String>);
    descriptor: (Ljava/util/List;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // android.app.LoadedApk this
         0: .line 767
            new java.lang.Error
            dup
            ldc "Unresolved compilation problem: \n\tVMRuntime cannot be resolved\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // android.app.LoadedApk this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/app/LoadedApk;
    Signature: (Ljava/util/List<Ljava/lang/String;>;)V
    MethodParameters:
            Name  Flags
      addedPaths  

  public java.lang.ClassLoader getClassLoader();
    descriptor: ()Ljava/lang/ClassLoader;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // android.app.LoadedApk this
         0: .line 808
            aload 0 /* this */
            dup
            astore 1
            monitorenter
         1: .line 809
            aload 0 /* this */
            getfield android.app.LoadedApk.mClassLoader:Ljava/lang/ClassLoader;
            ifnonnull 3
         2: .line 810
            aload 0 /* this */
            aconst_null
            invokevirtual android.app.LoadedApk.createOrUpdateClassLoaderLocked:(Ljava/util/List;)V
         3: .line 812
      StackMap locals: android.app.LoadedApk
      StackMap stack:
            aload 0 /* this */
            getfield android.app.LoadedApk.mClassLoader:Ljava/lang/ClassLoader;
            aload 1
            monitorexit
         4: areturn
         5: .line 808
      StackMap locals:
      StackMap stack: java.lang.Throwable
            aload 1
            monitorexit
         6: athrow
        end local 0 // android.app.LoadedApk this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Landroid/app/LoadedApk;
      Exception table:
        from    to  target  type
           1     4       5  any
           5     6       5  any

  private void setupJitProfileSupport();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // android.app.LoadedApk this
         0: .line 847
            new java.lang.Error
            dup
            ldc "Unresolved compilation problem: \n\tVMRuntime cannot be resolved\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // android.app.LoadedApk this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/app/LoadedApk;

  private void initializeJavaContextClassLoader();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=7, args_size=1
        start local 0 // android.app.LoadedApk this
         0: .line 880
            invokestatic android.app.ActivityThread.getPackageManager:()Landroid/content/pm/IPackageManager;
            astore 1 /* pm */
        start local 1 // android.content.pm.IPackageManager pm
         1: .line 883
            aload 1 /* pm */
            aload 0 /* this */
            getfield android.app.LoadedApk.mPackageName:Ljava/lang/String;
            ldc 268435456
         2: .line 884
            invokestatic android.os.UserHandle.myUserId:()I
         3: .line 883
            invokeinterface android.content.pm.IPackageManager.getPackageInfo:(Ljava/lang/String;II)Landroid/content/pm/PackageInfo;
            astore 2 /* pi */
        start local 2 // android.content.pm.PackageInfo pi
         4: .line 885
            goto 7
        end local 2 // android.content.pm.PackageInfo pi
      StackMap locals: android.app.LoadedApk android.content.pm.IPackageManager
      StackMap stack: android.os.RemoteException
         5: astore 3 /* e */
        start local 3 // android.os.RemoteException e
         6: .line 886
            aload 3 /* e */
            invokevirtual android.os.RemoteException.rethrowFromSystemServer:()Ljava/lang/RuntimeException;
            athrow
        end local 3 // android.os.RemoteException e
        start local 2 // android.content.pm.PackageInfo pi
         7: .line 888
      StackMap locals: android.content.pm.PackageInfo
      StackMap stack:
            aload 2 /* pi */
            ifnonnull 11
         8: .line 889
            new java.lang.IllegalStateException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unable to get package info for "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         9: .line 890
            aload 0 /* this */
            getfield android.app.LoadedApk.mPackageName:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "; is package not installed?"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        10: .line 889
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        11: .line 904
      StackMap locals:
      StackMap stack:
            aload 2 /* pi */
            getfield android.content.pm.PackageInfo.sharedUserId:Ljava/lang/String;
            ifnull 12
            iconst_1
            goto 13
      StackMap locals:
      StackMap stack:
        12: iconst_0
      StackMap locals:
      StackMap stack: int
        13: istore 3 /* sharedUserIdSet */
        start local 3 // boolean sharedUserIdSet
        14: .line 906
            aload 2 /* pi */
            getfield android.content.pm.PackageInfo.applicationInfo:Landroid/content/pm/ApplicationInfo;
            ifnull 17
        15: .line 907
            aload 0 /* this */
            getfield android.app.LoadedApk.mPackageName:Ljava/lang/String;
            aload 2 /* pi */
            getfield android.content.pm.PackageInfo.applicationInfo:Landroid/content/pm/ApplicationInfo;
            getfield android.content.pm.ApplicationInfo.processName:Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 17
        16: .line 905
            iconst_1
            goto 18
      StackMap locals: int
      StackMap stack:
        17: iconst_0
      StackMap locals:
      StackMap stack: int
        18: istore 4 /* processNameNotDefault */
        start local 4 // boolean processNameNotDefault
        19: .line 908
            iload 3 /* sharedUserIdSet */
            ifne 20
            iload 4 /* processNameNotDefault */
            ifne 20
            iconst_0
            goto 21
      StackMap locals: int
      StackMap stack:
        20: iconst_1
      StackMap locals:
      StackMap stack: int
        21: istore 5 /* sharable */
        start local 5 // boolean sharable
        22: .line 910
            iload 5 /* sharable */
            ifeq 24
        23: .line 911
            new android.app.LoadedApk$WarningContextClassLoader
            dup
            invokespecial android.app.LoadedApk$WarningContextClassLoader.<init>:()V
            goto 25
        24: .line 912
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield android.app.LoadedApk.mClassLoader:Ljava/lang/ClassLoader;
        25: .line 909
      StackMap locals:
      StackMap stack: java.lang.ClassLoader
            astore 6 /* contextClassLoader */
        start local 6 // java.lang.ClassLoader contextClassLoader
        26: .line 913
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            aload 6 /* contextClassLoader */
            invokevirtual java.lang.Thread.setContextClassLoader:(Ljava/lang/ClassLoader;)V
        27: .line 914
            return
        end local 6 // java.lang.ClassLoader contextClassLoader
        end local 5 // boolean sharable
        end local 4 // boolean processNameNotDefault
        end local 3 // boolean sharedUserIdSet
        end local 2 // android.content.pm.PackageInfo pi
        end local 1 // android.content.pm.IPackageManager pm
        end local 0 // android.app.LoadedApk this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   28     0                   this  Landroid/app/LoadedApk;
            1   28     1                     pm  Landroid/content/pm/IPackageManager;
            4    5     2                     pi  Landroid/content/pm/PackageInfo;
            7   28     2                     pi  Landroid/content/pm/PackageInfo;
            6    7     3                      e  Landroid/os/RemoteException;
           14   28     3        sharedUserIdSet  Z
           19   28     4  processNameNotDefault  Z
           22   28     5               sharable  Z
           26   28     6     contextClassLoader  Ljava/lang/ClassLoader;
      Exception table:
        from    to  target  type
           1     4       5  Class android.os.RemoteException

  public java.lang.String getAppDir();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.app.LoadedApk this
         0: .line 976
            aload 0 /* this */
            getfield android.app.LoadedApk.mAppDir:Ljava/lang/String;
            areturn
        end local 0 // android.app.LoadedApk this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/app/LoadedApk;

  public java.lang.String getLibDir();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.app.LoadedApk this
         0: .line 980
            aload 0 /* this */
            getfield android.app.LoadedApk.mLibDir:Ljava/lang/String;
            areturn
        end local 0 // android.app.LoadedApk this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/app/LoadedApk;

  public java.lang.String getResDir();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.app.LoadedApk this
         0: .line 984
            aload 0 /* this */
            getfield android.app.LoadedApk.mResDir:Ljava/lang/String;
            areturn
        end local 0 // android.app.LoadedApk this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/app/LoadedApk;

  public java.lang.String[] getSplitAppDirs();
    descriptor: ()[Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.app.LoadedApk this
         0: .line 988
            aload 0 /* this */
            getfield android.app.LoadedApk.mSplitAppDirs:[Ljava/lang/String;
            areturn
        end local 0 // android.app.LoadedApk this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/app/LoadedApk;

  public java.lang.String[] getSplitResDirs();
    descriptor: ()[Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.app.LoadedApk this
         0: .line 992
            aload 0 /* this */
            getfield android.app.LoadedApk.mSplitResDirs:[Ljava/lang/String;
            areturn
        end local 0 // android.app.LoadedApk this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/app/LoadedApk;

  public java.lang.String[] getOverlayDirs();
    descriptor: ()[Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.app.LoadedApk this
         0: .line 996
            aload 0 /* this */
            getfield android.app.LoadedApk.mOverlayDirs:[Ljava/lang/String;
            areturn
        end local 0 // android.app.LoadedApk this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/app/LoadedApk;

  public java.lang.String getDataDir();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.app.LoadedApk this
         0: .line 1000
            aload 0 /* this */
            getfield android.app.LoadedApk.mDataDir:Ljava/lang/String;
            areturn
        end local 0 // android.app.LoadedApk this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/app/LoadedApk;

  public java.io.File getDataDirFile();
    descriptor: ()Ljava/io/File;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.app.LoadedApk this
         0: .line 1004
            aload 0 /* this */
            getfield android.app.LoadedApk.mDataDirFile:Ljava/io/File;
            areturn
        end local 0 // android.app.LoadedApk this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/app/LoadedApk;

  public java.io.File getDeviceProtectedDataDirFile();
    descriptor: ()Ljava/io/File;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.app.LoadedApk this
         0: .line 1008
            aload 0 /* this */
            getfield android.app.LoadedApk.mDeviceProtectedDataDirFile:Ljava/io/File;
            areturn
        end local 0 // android.app.LoadedApk this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/app/LoadedApk;

  public java.io.File getCredentialProtectedDataDirFile();
    descriptor: ()Ljava/io/File;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.app.LoadedApk this
         0: .line 1012
            aload 0 /* this */
            getfield android.app.LoadedApk.mCredentialProtectedDataDirFile:Ljava/io/File;
            areturn
        end local 0 // android.app.LoadedApk this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/app/LoadedApk;

  public android.content.res.AssetManager getAssets();
    descriptor: ()Landroid/content/res/AssetManager;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.app.LoadedApk this
         0: .line 1016
            aload 0 /* this */
            invokevirtual android.app.LoadedApk.getResources:()Landroid/content/res/Resources;
            invokevirtual android.content.res.Resources.getAssets:()Landroid/content/res/AssetManager;
            areturn
        end local 0 // android.app.LoadedApk this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/app/LoadedApk;

  public android.content.res.Resources getResources();
    descriptor: ()Landroid/content/res/Resources;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=11, locals=2, args_size=1
        start local 0 // android.app.LoadedApk this
         0: .line 1020
            aload 0 /* this */
            getfield android.app.LoadedApk.mResources:Landroid/content/res/Resources;
            ifnonnull 10
         1: .line 1023
            aload 0 /* this */
            aconst_null
            invokevirtual android.app.LoadedApk.getSplitPaths:(Ljava/lang/String;)[Ljava/lang/String;
            astore 1 /* splitPaths */
        start local 1 // java.lang.String[] splitPaths
         2: .line 1024
            goto 5
        end local 1 // java.lang.String[] splitPaths
      StackMap locals:
      StackMap stack: android.content.pm.PackageManager$NameNotFoundException
         3: pop
         4: .line 1026
            new java.lang.AssertionError
            dup
            ldc "null split not found"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        start local 1 // java.lang.String[] splitPaths
         5: .line 1029
      StackMap locals: java.lang.String[]
      StackMap stack:
            aload 0 /* this */
            invokestatic android.app.ResourcesManager.getInstance:()Landroid/app/ResourcesManager;
            aconst_null
            aload 0 /* this */
            getfield android.app.LoadedApk.mResDir:Ljava/lang/String;
         6: .line 1030
            aload 1 /* splitPaths */
            aload 0 /* this */
            getfield android.app.LoadedApk.mOverlayDirs:[Ljava/lang/String;
            aload 0 /* this */
            getfield android.app.LoadedApk.mApplicationInfo:Landroid/content/pm/ApplicationInfo;
            getfield android.content.pm.ApplicationInfo.sharedLibraryFiles:[Ljava/lang/String;
         7: .line 1031
            iconst_0
            aconst_null
            aload 0 /* this */
            invokevirtual android.app.LoadedApk.getCompatibilityInfo:()Landroid/content/res/CompatibilityInfo;
         8: .line 1032
            aload 0 /* this */
            invokevirtual android.app.LoadedApk.getClassLoader:()Ljava/lang/ClassLoader;
         9: .line 1029
            invokevirtual android.app.ResourcesManager.getResources:(Landroid/os/IBinder;Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;ILandroid/content/res/Configuration;Landroid/content/res/CompatibilityInfo;Ljava/lang/ClassLoader;)Landroid/content/res/Resources;
            putfield android.app.LoadedApk.mResources:Landroid/content/res/Resources;
        end local 1 // java.lang.String[] splitPaths
        10: .line 1034
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.app.LoadedApk.mResources:Landroid/content/res/Resources;
            areturn
        end local 0 // android.app.LoadedApk this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   11     0        this  Landroid/app/LoadedApk;
            2    3     1  splitPaths  [Ljava/lang/String;
            5   10     1  splitPaths  [Ljava/lang/String;
      Exception table:
        from    to  target  type
           1     2       3  Class android.content.pm.PackageManager$NameNotFoundException

  public android.app.Application makeApplication(boolean, android.app.Instrumentation);
    descriptor: (ZLandroid/app/Instrumentation;)Landroid/app/Application;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=9, args_size=3
        start local 0 // android.app.LoadedApk this
        start local 1 // boolean forceDefaultAppClass
        start local 2 // android.app.Instrumentation instrumentation
         0: .line 1039
            aload 0 /* this */
            getfield android.app.LoadedApk.mApplication:Landroid/app/Application;
            ifnull 2
         1: .line 1040
            aload 0 /* this */
            getfield android.app.LoadedApk.mApplication:Landroid/app/Application;
            areturn
         2: .line 1043
      StackMap locals:
      StackMap stack:
            ldc 64
            ldc "makeApplication"
            invokestatic android.os.Trace.traceBegin:(JLjava/lang/String;)V
         3: .line 1045
            aconst_null
            astore 3 /* app */
        start local 3 // android.app.Application app
         4: .line 1047
            aload 0 /* this */
            getfield android.app.LoadedApk.mApplicationInfo:Landroid/content/pm/ApplicationInfo;
            getfield android.content.pm.ApplicationInfo.className:Ljava/lang/String;
            astore 4 /* appClass */
        start local 4 // java.lang.String appClass
         5: .line 1048
            iload 1 /* forceDefaultAppClass */
            ifne 6
            aload 4 /* appClass */
            ifnonnull 7
         6: .line 1049
      StackMap locals: android.app.Application java.lang.String
      StackMap stack:
            ldc "android.app.Application"
            astore 4 /* appClass */
         7: .line 1053
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual android.app.LoadedApk.getClassLoader:()Ljava/lang/ClassLoader;
            astore 5 /* cl */
        start local 5 // java.lang.ClassLoader cl
         8: .line 1054
            aload 0 /* this */
            getfield android.app.LoadedApk.mPackageName:Ljava/lang/String;
            ldc "android"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 14
         9: .line 1055
            ldc 64
        10: .line 1056
            ldc "initializeJavaContextClassLoader"
        11: .line 1055
            invokestatic android.os.Trace.traceBegin:(JLjava/lang/String;)V
        12: .line 1057
            aload 0 /* this */
            invokevirtual android.app.LoadedApk.initializeJavaContextClassLoader:()V
        13: .line 1058
            ldc 64
            invokestatic android.os.Trace.traceEnd:(J)V
        14: .line 1060
      StackMap locals: java.lang.ClassLoader
      StackMap stack:
            aload 0 /* this */
            getfield android.app.LoadedApk.mActivityThread:Landroid/app/ActivityThread;
            aload 0 /* this */
            invokestatic android.app.ContextImpl.createAppContext:(Landroid/app/ActivityThread;Landroid/app/LoadedApk;)Landroid/app/ContextImpl;
            astore 6 /* appContext */
        start local 6 // android.app.ContextImpl appContext
        15: .line 1061
            aload 0 /* this */
            getfield android.app.LoadedApk.mActivityThread:Landroid/app/ActivityThread;
            getfield android.app.ActivityThread.mInstrumentation:Landroid/app/Instrumentation;
        16: .line 1062
            aload 5 /* cl */
            aload 4 /* appClass */
            aload 6 /* appContext */
        17: .line 1061
            invokevirtual android.app.Instrumentation.newApplication:(Ljava/lang/ClassLoader;Ljava/lang/String;Landroid/content/Context;)Landroid/app/Application;
            astore 3 /* app */
        18: .line 1063
            aload 6 /* appContext */
            aload 3 /* app */
            invokevirtual android.app.ContextImpl.setOuterContext:(Landroid/content/Context;)V
        end local 6 // android.app.ContextImpl appContext
        end local 5 // java.lang.ClassLoader cl
        19: .line 1064
            goto 29
      StackMap locals: android.app.LoadedApk int android.app.Instrumentation android.app.Application java.lang.String
      StackMap stack: java.lang.Exception
        20: astore 5 /* e */
        start local 5 // java.lang.Exception e
        21: .line 1065
            aload 0 /* this */
            getfield android.app.LoadedApk.mActivityThread:Landroid/app/ActivityThread;
            getfield android.app.ActivityThread.mInstrumentation:Landroid/app/Instrumentation;
            aload 3 /* app */
            aload 5 /* e */
            invokevirtual android.app.Instrumentation.onException:(Ljava/lang/Object;Ljava/lang/Throwable;)Z
            ifne 29
        22: .line 1066
            ldc 64
            invokestatic android.os.Trace.traceEnd:(J)V
        23: .line 1067
            new java.lang.RuntimeException
            dup
        24: .line 1068
            new java.lang.StringBuilder
            dup
            ldc "Unable to instantiate application "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* appClass */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        25: .line 1069
            ldc ": "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 5 /* e */
            invokevirtual java.lang.Exception.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        26: .line 1068
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        27: .line 1069
            aload 5 /* e */
        28: .line 1067
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 5 // java.lang.Exception e
        29: .line 1072
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.app.LoadedApk.mActivityThread:Landroid/app/ActivityThread;
            getfield android.app.ActivityThread.mAllApplications:Ljava/util/ArrayList;
            aload 3 /* app */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        30: .line 1073
            aload 0 /* this */
            aload 3 /* app */
            putfield android.app.LoadedApk.mApplication:Landroid/app/Application;
        31: .line 1075
            aload 2 /* instrumentation */
            ifnull 43
        32: .line 1077
            aload 2 /* instrumentation */
            aload 3 /* app */
            invokevirtual android.app.Instrumentation.callApplicationOnCreate:(Landroid/app/Application;)V
        33: .line 1078
            goto 43
      StackMap locals:
      StackMap stack: java.lang.Exception
        34: astore 5 /* e */
        start local 5 // java.lang.Exception e
        35: .line 1079
            aload 2 /* instrumentation */
            aload 3 /* app */
            aload 5 /* e */
            invokevirtual android.app.Instrumentation.onException:(Ljava/lang/Object;Ljava/lang/Throwable;)Z
            ifne 43
        36: .line 1080
            ldc 64
            invokestatic android.os.Trace.traceEnd:(J)V
        37: .line 1081
            new java.lang.RuntimeException
            dup
        38: .line 1082
            new java.lang.StringBuilder
            dup
            ldc "Unable to create application "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* app */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        39: .line 1083
            ldc ": "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 5 /* e */
            invokevirtual java.lang.Exception.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        40: .line 1082
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        41: .line 1083
            aload 5 /* e */
        42: .line 1081
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 5 // java.lang.Exception e
        43: .line 1089
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual android.app.LoadedApk.getAssets:()Landroid/content/res/AssetManager;
            invokevirtual android.content.res.AssetManager.getAssignedPackageIdentifiers:()Landroid/util/SparseArray;
            astore 5 /* packageIdentifiers */
        start local 5 // android.util.SparseArray packageIdentifiers
        44: .line 1090
            aload 5 /* packageIdentifiers */
            invokevirtual android.util.SparseArray.size:()I
            istore 6 /* N */
        start local 6 // int N
        45: .line 1091
            iconst_0
            istore 7 /* i */
        start local 7 // int i
        46: goto 52
        47: .line 1092
      StackMap locals: android.util.SparseArray int int
      StackMap stack:
            aload 5 /* packageIdentifiers */
            iload 7 /* i */
            invokevirtual android.util.SparseArray.keyAt:(I)I
            istore 8 /* id */
        start local 8 // int id
        48: .line 1093
            iload 8 /* id */
            iconst_1
            if_icmpeq 51
            iload 8 /* id */
            bipush 127
            if_icmpne 50
        49: .line 1094
            goto 51
        50: .line 1097
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual android.app.LoadedApk.getClassLoader:()Ljava/lang/ClassLoader;
            aload 5 /* packageIdentifiers */
            iload 7 /* i */
            invokevirtual android.util.SparseArray.valueAt:(I)Ljava/lang/Object;
            checkcast java.lang.String
            iload 8 /* id */
            invokevirtual android.app.LoadedApk.rewriteRValues:(Ljava/lang/ClassLoader;Ljava/lang/String;I)V
        end local 8 // int id
        51: .line 1091
      StackMap locals:
      StackMap stack:
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        52: iload 7 /* i */
            iload 6 /* N */
            if_icmplt 47
        end local 7 // int i
        53: .line 1100
            ldc 64
            invokestatic android.os.Trace.traceEnd:(J)V
        54: .line 1102
            aload 3 /* app */
            areturn
        end local 6 // int N
        end local 5 // android.util.SparseArray packageIdentifiers
        end local 4 // java.lang.String appClass
        end local 3 // android.app.Application app
        end local 2 // android.app.Instrumentation instrumentation
        end local 1 // boolean forceDefaultAppClass
        end local 0 // android.app.LoadedApk this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   55     0                  this  Landroid/app/LoadedApk;
            0   55     1  forceDefaultAppClass  Z
            0   55     2       instrumentation  Landroid/app/Instrumentation;
            4   55     3                   app  Landroid/app/Application;
            5   55     4              appClass  Ljava/lang/String;
            8   19     5                    cl  Ljava/lang/ClassLoader;
           15   19     6            appContext  Landroid/app/ContextImpl;
           21   29     5                     e  Ljava/lang/Exception;
           35   43     5                     e  Ljava/lang/Exception;
           44   55     5    packageIdentifiers  Landroid/util/SparseArray<Ljava/lang/String;>;
           45   55     6                     N  I
           46   53     7                     i  I
           48   51     8                    id  I
      Exception table:
        from    to  target  type
           7    19      20  Class java.lang.Exception
          32    33      34  Class java.lang.Exception
    MethodParameters:
                      Name  Flags
      forceDefaultAppClass  
      instrumentation       

  private void rewriteRValues(java.lang.ClassLoader, java.lang.String, int);
    descriptor: (Ljava/lang/ClassLoader;Ljava/lang/String;I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=8, args_size=4
        start local 0 // android.app.LoadedApk this
        start local 1 // java.lang.ClassLoader cl
        start local 2 // java.lang.String packageName
        start local 3 // int id
         0: .line 1108
            aload 1 /* cl */
            new java.lang.StringBuilder
            dup
            aload 2 /* packageName */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ".R"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.lang.ClassLoader.loadClass:(Ljava/lang/String;)Ljava/lang/Class;
            astore 4 /* rClazz */
        start local 4 // java.lang.Class rClazz
         1: .line 1109
            goto 5
        end local 4 // java.lang.Class rClazz
      StackMap locals:
      StackMap stack: java.lang.ClassNotFoundException
         2: pop
         3: .line 1112
            ldc "LoadedApk"
            new java.lang.StringBuilder
            dup
            ldc "No resource references to update in package "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* packageName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic android.util.Log.i:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         4: .line 1113
            return
        start local 4 // java.lang.Class rClazz
         5: .line 1118
      StackMap locals: java.lang.Class
      StackMap stack:
            aload 4 /* rClazz */
            ldc "onResourcesLoaded"
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
            aastore
            invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            astore 5 /* callback */
        start local 5 // java.lang.reflect.Method callback
         6: .line 1119
            goto 9
        end local 5 // java.lang.reflect.Method callback
      StackMap locals:
      StackMap stack: java.lang.NoSuchMethodException
         7: pop
         8: .line 1121
            return
        start local 5 // java.lang.reflect.Method callback
         9: .line 1126
      StackMap locals: java.lang.reflect.Method
      StackMap stack:
            aload 5 /* callback */
            aconst_null
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            iload 3 /* id */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
            pop
        10: .line 1127
            return
        11: .line 1128
      StackMap locals:
      StackMap stack: java.lang.IllegalAccessException
            astore 7 /* e */
        start local 7 // java.lang.IllegalAccessException e
        12: .line 1129
            aload 7 /* e */
            astore 6 /* cause */
        end local 7 // java.lang.IllegalAccessException e
        start local 6 // java.lang.Throwable cause
        13: goto 16
        end local 6 // java.lang.Throwable cause
        14: .line 1130
      StackMap locals:
      StackMap stack: java.lang.reflect.InvocationTargetException
            astore 7 /* e */
        start local 7 // java.lang.reflect.InvocationTargetException e
        15: .line 1131
            aload 7 /* e */
            invokevirtual java.lang.reflect.InvocationTargetException.getCause:()Ljava/lang/Throwable;
            astore 6 /* cause */
        end local 7 // java.lang.reflect.InvocationTargetException e
        start local 6 // java.lang.Throwable cause
        16: .line 1134
      StackMap locals: java.lang.Throwable
      StackMap stack:
            new java.lang.RuntimeException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Failed to rewrite resource references for "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* packageName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        17: .line 1135
            aload 6 /* cause */
        18: .line 1134
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 6 // java.lang.Throwable cause
        end local 5 // java.lang.reflect.Method callback
        end local 4 // java.lang.Class rClazz
        end local 3 // int id
        end local 2 // java.lang.String packageName
        end local 1 // java.lang.ClassLoader cl
        end local 0 // android.app.LoadedApk this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   19     0         this  Landroid/app/LoadedApk;
            0   19     1           cl  Ljava/lang/ClassLoader;
            0   19     2  packageName  Ljava/lang/String;
            0   19     3           id  I
            1    2     4       rClazz  Ljava/lang/Class<*>;
            5   19     4       rClazz  Ljava/lang/Class<*>;
            6    7     5     callback  Ljava/lang/reflect/Method;
            9   19     5     callback  Ljava/lang/reflect/Method;
           13   14     6        cause  Ljava/lang/Throwable;
           16   19     6        cause  Ljava/lang/Throwable;
           12   13     7            e  Ljava/lang/IllegalAccessException;
           15   16     7            e  Ljava/lang/reflect/InvocationTargetException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.ClassNotFoundException
           5     6       7  Class java.lang.NoSuchMethodException
           9    10      11  Class java.lang.IllegalAccessException
           9    10      14  Class java.lang.reflect.InvocationTargetException
    MethodParameters:
             Name  Flags
      cl           
      packageName  
      id           

  public void removeContextRegistrations(android.content.Context, java.lang.String, java.lang.String);
    descriptor: (Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=11, args_size=4
        start local 0 // android.app.LoadedApk this
        start local 1 // android.content.Context context
        start local 2 // java.lang.String who
        start local 3 // java.lang.String what
         0: .line 1140
            invokestatic android.os.StrictMode.vmRegistrationLeaksEnabled:()Z
            istore 4 /* reportRegistrationLeaks */
        start local 4 // boolean reportRegistrationLeaks
         1: .line 1141
            aload 0 /* this */
            getfield android.app.LoadedApk.mReceivers:Landroid/util/ArrayMap;
            dup
            astore 5
            monitorenter
         2: .line 1143
            aload 0 /* this */
            getfield android.app.LoadedApk.mReceivers:Landroid/util/ArrayMap;
            aload 1 /* context */
            invokevirtual android.util.ArrayMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast android.util.ArrayMap
         3: .line 1142
            astore 6 /* rmap */
        start local 6 // android.util.ArrayMap rmap
         4: .line 1144
            aload 6 /* rmap */
            ifnull 27
         5: .line 1145
            iconst_0
            istore 7 /* i */
        start local 7 // int i
         6: goto 26
         7: .line 1146
      StackMap locals: android.app.LoadedApk android.content.Context java.lang.String java.lang.String int android.util.ArrayMap android.util.ArrayMap int
      StackMap stack:
            aload 6 /* rmap */
            iload 7 /* i */
            invokevirtual android.util.ArrayMap.valueAt:(I)Ljava/lang/Object;
            checkcast android.app.LoadedApk$ReceiverDispatcher
            astore 8 /* rd */
        start local 8 // android.app.LoadedApk$ReceiverDispatcher rd
         8: .line 1147
            new android.app.IntentReceiverLeaked
            dup
         9: .line 1148
            new java.lang.StringBuilder
            dup
            aload 3 /* what */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* who */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " has leaked IntentReceiver "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        10: .line 1149
            aload 8 /* rd */
            invokevirtual android.app.LoadedApk$ReceiverDispatcher.getIntentReceiver:()Landroid/content/BroadcastReceiver;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " that was "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        11: .line 1150
            ldc "originally registered here. Are you missing a "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        12: .line 1151
            ldc "call to unregisterReceiver()?"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        13: .line 1148
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        14: .line 1147
            invokespecial android.app.IntentReceiverLeaked.<init>:(Ljava/lang/String;)V
            astore 9 /* leak */
        start local 9 // android.app.IntentReceiverLeaked leak
        15: .line 1152
            aload 9 /* leak */
            aload 8 /* rd */
            invokevirtual android.app.LoadedApk$ReceiverDispatcher.getLocation:()Landroid/app/IntentReceiverLeaked;
            invokevirtual android.app.IntentReceiverLeaked.getStackTrace:()[Ljava/lang/StackTraceElement;
            invokevirtual android.app.IntentReceiverLeaked.setStackTrace:([Ljava/lang/StackTraceElement;)V
        16: .line 1153
            ldc "ActivityThread"
            aload 9 /* leak */
            invokevirtual android.app.IntentReceiverLeaked.getMessage:()Ljava/lang/String;
            aload 9 /* leak */
            invokestatic android.util.Slog.e:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
            pop
        17: .line 1154
            iload 4 /* reportRegistrationLeaks */
            ifeq 19
        18: .line 1155
            aload 9 /* leak */
            invokestatic android.os.StrictMode.onIntentReceiverLeaked:(Ljava/lang/Throwable;)V
        19: .line 1158
      StackMap locals: android.app.LoadedApk$ReceiverDispatcher android.app.IntentReceiverLeaked
      StackMap stack:
            invokestatic android.app.ActivityManager.getService:()Landroid/app/IActivityManager;
        20: .line 1159
            aload 8 /* rd */
            invokevirtual android.app.LoadedApk$ReceiverDispatcher.getIIntentReceiver:()Landroid/content/IIntentReceiver;
        21: .line 1158
            invokeinterface android.app.IActivityManager.unregisterReceiver:(Landroid/content/IIntentReceiver;)V
        22: .line 1160
            goto 25
      StackMap locals:
      StackMap stack: android.os.RemoteException
        23: astore 10 /* e */
        start local 10 // android.os.RemoteException e
        24: .line 1161
            aload 10 /* e */
            invokevirtual android.os.RemoteException.rethrowFromSystemServer:()Ljava/lang/RuntimeException;
            athrow
        end local 10 // android.os.RemoteException e
        end local 9 // android.app.IntentReceiverLeaked leak
        end local 8 // android.app.LoadedApk$ReceiverDispatcher rd
        25: .line 1145
      StackMap locals:
      StackMap stack:
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        26: iload 7 /* i */
            aload 6 /* rmap */
            invokevirtual android.util.ArrayMap.size:()I
            if_icmplt 7
        end local 7 // int i
        27: .line 1165
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.app.LoadedApk.mUnregisteredReceivers:Landroid/util/ArrayMap;
            aload 1 /* context */
            invokevirtual android.util.ArrayMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 6 // android.util.ArrayMap rmap
        28: .line 1141
            aload 5
            monitorexit
        29: goto 32
      StackMap locals: android.app.LoadedApk android.content.Context java.lang.String java.lang.String int android.util.ArrayMap
      StackMap stack: java.lang.Throwable
        30: aload 5
            monitorexit
        31: athrow
        32: .line 1168
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.app.LoadedApk.mServices:Landroid/util/ArrayMap;
            dup
            astore 5
            monitorenter
        33: .line 1171
            aload 0 /* this */
            getfield android.app.LoadedApk.mServices:Landroid/util/ArrayMap;
            aload 1 /* context */
            invokevirtual android.util.ArrayMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast android.util.ArrayMap
        34: .line 1170
            astore 6 /* smap */
        start local 6 // android.util.ArrayMap smap
        35: .line 1172
            aload 6 /* smap */
            ifnull 57
        36: .line 1173
            iconst_0
            istore 7 /* i */
        start local 7 // int i
        37: goto 56
        38: .line 1174
      StackMap locals: android.util.ArrayMap android.util.ArrayMap int
      StackMap stack:
            aload 6 /* smap */
            iload 7 /* i */
            invokevirtual android.util.ArrayMap.valueAt:(I)Ljava/lang/Object;
            checkcast android.app.LoadedApk$ServiceDispatcher
            astore 8 /* sd */
        start local 8 // android.app.LoadedApk$ServiceDispatcher sd
        39: .line 1175
            new android.app.ServiceConnectionLeaked
            dup
        40: .line 1176
            new java.lang.StringBuilder
            dup
            aload 3 /* what */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* who */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " has leaked ServiceConnection "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        41: .line 1177
            aload 8 /* sd */
            invokevirtual android.app.LoadedApk$ServiceDispatcher.getServiceConnection:()Landroid/content/ServiceConnection;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " that was originally bound here"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        42: .line 1176
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        43: .line 1175
            invokespecial android.app.ServiceConnectionLeaked.<init>:(Ljava/lang/String;)V
            astore 9 /* leak */
        start local 9 // android.app.ServiceConnectionLeaked leak
        44: .line 1178
            aload 9 /* leak */
            aload 8 /* sd */
            invokevirtual android.app.LoadedApk$ServiceDispatcher.getLocation:()Landroid/app/ServiceConnectionLeaked;
            invokevirtual android.app.ServiceConnectionLeaked.getStackTrace:()[Ljava/lang/StackTraceElement;
            invokevirtual android.app.ServiceConnectionLeaked.setStackTrace:([Ljava/lang/StackTraceElement;)V
        45: .line 1179
            ldc "ActivityThread"
            aload 9 /* leak */
            invokevirtual android.app.ServiceConnectionLeaked.getMessage:()Ljava/lang/String;
            aload 9 /* leak */
            invokestatic android.util.Slog.e:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
            pop
        46: .line 1180
            iload 4 /* reportRegistrationLeaks */
            ifeq 48
        47: .line 1181
            aload 9 /* leak */
            invokestatic android.os.StrictMode.onServiceConnectionLeaked:(Ljava/lang/Throwable;)V
        48: .line 1184
      StackMap locals: android.app.LoadedApk$ServiceDispatcher android.app.ServiceConnectionLeaked
      StackMap stack:
            invokestatic android.app.ActivityManager.getService:()Landroid/app/IActivityManager;
        49: .line 1185
            aload 8 /* sd */
            invokevirtual android.app.LoadedApk$ServiceDispatcher.getIServiceConnection:()Landroid/app/IServiceConnection;
        50: .line 1184
            invokeinterface android.app.IActivityManager.unbindService:(Landroid/app/IServiceConnection;)Z
            pop
        51: .line 1186
            goto 54
      StackMap locals:
      StackMap stack: android.os.RemoteException
        52: astore 10 /* e */
        start local 10 // android.os.RemoteException e
        53: .line 1187
            aload 10 /* e */
            invokevirtual android.os.RemoteException.rethrowFromSystemServer:()Ljava/lang/RuntimeException;
            athrow
        end local 10 // android.os.RemoteException e
        54: .line 1189
      StackMap locals:
      StackMap stack:
            aload 8 /* sd */
            invokevirtual android.app.LoadedApk$ServiceDispatcher.doForget:()V
        end local 9 // android.app.ServiceConnectionLeaked leak
        end local 8 // android.app.LoadedApk$ServiceDispatcher sd
        55: .line 1173
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        56: iload 7 /* i */
            aload 6 /* smap */
            invokevirtual android.util.ArrayMap.size:()I
            if_icmplt 38
        end local 7 // int i
        57: .line 1192
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.app.LoadedApk.mUnboundServices:Landroid/util/ArrayMap;
            aload 1 /* context */
            invokevirtual android.util.ArrayMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 6 // android.util.ArrayMap smap
        58: .line 1168
            aload 5
            monitorexit
        59: goto 62
      StackMap locals: android.app.LoadedApk android.content.Context java.lang.String java.lang.String int android.util.ArrayMap
      StackMap stack: java.lang.Throwable
        60: aload 5
            monitorexit
        61: athrow
        62: .line 1195
      StackMap locals:
      StackMap stack:
            return
        end local 4 // boolean reportRegistrationLeaks
        end local 3 // java.lang.String what
        end local 2 // java.lang.String who
        end local 1 // android.content.Context context
        end local 0 // android.app.LoadedApk this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0   63     0                     this  Landroid/app/LoadedApk;
            0   63     1                  context  Landroid/content/Context;
            0   63     2                      who  Ljava/lang/String;
            0   63     3                     what  Ljava/lang/String;
            1   63     4  reportRegistrationLeaks  Z
            4   28     6                     rmap  Landroid/util/ArrayMap<Landroid/content/BroadcastReceiver;Landroid/app/LoadedApk$ReceiverDispatcher;>;
            6   27     7                        i  I
            8   25     8                       rd  Landroid/app/LoadedApk$ReceiverDispatcher;
           15   25     9                     leak  Landroid/app/IntentReceiverLeaked;
           24   25    10                        e  Landroid/os/RemoteException;
           35   58     6                     smap  Landroid/util/ArrayMap<Landroid/content/ServiceConnection;Landroid/app/LoadedApk$ServiceDispatcher;>;
           37   57     7                        i  I
           39   55     8                       sd  Landroid/app/LoadedApk$ServiceDispatcher;
           44   55     9                     leak  Landroid/app/ServiceConnectionLeaked;
           53   54    10                        e  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
          19    22      23  Class android.os.RemoteException
           2    29      30  any
          30    31      30  any
          48    51      52  Class android.os.RemoteException
          33    59      60  any
          60    61      60  any
    MethodParameters:
         Name  Flags
      context  
      who      
      what     

  public android.content.IIntentReceiver getReceiverDispatcher(android.content.BroadcastReceiver, android.content.Context, android.os.Handler, android.app.Instrumentation, boolean);
    descriptor: (Landroid/content/BroadcastReceiver;Landroid/content/Context;Landroid/os/Handler;Landroid/app/Instrumentation;Z)Landroid/content/IIntentReceiver;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=9, args_size=6
        start local 0 // android.app.LoadedApk this
        start local 1 // android.content.BroadcastReceiver r
        start local 2 // android.content.Context context
        start local 3 // android.os.Handler handler
        start local 4 // android.app.Instrumentation instrumentation
        start local 5 // boolean registered
         0: .line 1200
            aload 0 /* this */
            getfield android.app.LoadedApk.mReceivers:Landroid/util/ArrayMap;
            dup
            astore 6
            monitorenter
         1: .line 1201
            aconst_null
            astore 7 /* rd */
        start local 7 // android.app.LoadedApk$ReceiverDispatcher rd
         2: .line 1202
            aconst_null
            astore 8 /* map */
        start local 8 // android.util.ArrayMap map
         3: .line 1203
            iload 5 /* registered */
            ifeq 7
         4: .line 1204
            aload 0 /* this */
            getfield android.app.LoadedApk.mReceivers:Landroid/util/ArrayMap;
            aload 2 /* context */
            invokevirtual android.util.ArrayMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast android.util.ArrayMap
            astore 8 /* map */
         5: .line 1205
            aload 8 /* map */
            ifnull 7
         6: .line 1206
            aload 8 /* map */
            aload 1 /* r */
            invokevirtual android.util.ArrayMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast android.app.LoadedApk$ReceiverDispatcher
            astore 7 /* rd */
         7: .line 1209
      StackMap locals: android.util.ArrayMap android.app.LoadedApk$ReceiverDispatcher android.util.ArrayMap
      StackMap stack:
            aload 7 /* rd */
            ifnonnull 17
         8: .line 1210
            new android.app.LoadedApk$ReceiverDispatcher
            dup
            aload 1 /* r */
            aload 2 /* context */
            aload 3 /* handler */
         9: .line 1211
            aload 4 /* instrumentation */
            iload 5 /* registered */
        10: .line 1210
            invokespecial android.app.LoadedApk$ReceiverDispatcher.<init>:(Landroid/content/BroadcastReceiver;Landroid/content/Context;Landroid/os/Handler;Landroid/app/Instrumentation;Z)V
            astore 7 /* rd */
        11: .line 1212
            iload 5 /* registered */
            ifeq 18
        12: .line 1213
            aload 8 /* map */
            ifnonnull 15
        13: .line 1214
            new android.util.ArrayMap
            dup
            invokespecial android.util.ArrayMap.<init>:()V
            astore 8 /* map */
        14: .line 1215
            aload 0 /* this */
            getfield android.app.LoadedApk.mReceivers:Landroid/util/ArrayMap;
            aload 2 /* context */
            aload 8 /* map */
            invokevirtual android.util.ArrayMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        15: .line 1217
      StackMap locals:
      StackMap stack:
            aload 8 /* map */
            aload 1 /* r */
            aload 7 /* rd */
            invokevirtual android.util.ArrayMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        16: .line 1219
            goto 18
        17: .line 1220
      StackMap locals:
      StackMap stack:
            aload 7 /* rd */
            aload 2 /* context */
            aload 3 /* handler */
            invokevirtual android.app.LoadedApk$ReceiverDispatcher.validate:(Landroid/content/Context;Landroid/os/Handler;)V
        18: .line 1222
      StackMap locals:
      StackMap stack:
            aload 7 /* rd */
            iconst_0
            putfield android.app.LoadedApk$ReceiverDispatcher.mForgotten:Z
        19: .line 1223
            aload 7 /* rd */
            invokevirtual android.app.LoadedApk$ReceiverDispatcher.getIIntentReceiver:()Landroid/content/IIntentReceiver;
            aload 6
            monitorexit
        20: areturn
        end local 8 // android.util.ArrayMap map
        end local 7 // android.app.LoadedApk$ReceiverDispatcher rd
        21: .line 1200
      StackMap locals: android.app.LoadedApk android.content.BroadcastReceiver android.content.Context android.os.Handler android.app.Instrumentation int android.util.ArrayMap
      StackMap stack: java.lang.Throwable
            aload 6
            monitorexit
        22: athrow
        end local 5 // boolean registered
        end local 4 // android.app.Instrumentation instrumentation
        end local 3 // android.os.Handler handler
        end local 2 // android.content.Context context
        end local 1 // android.content.BroadcastReceiver r
        end local 0 // android.app.LoadedApk this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   23     0             this  Landroid/app/LoadedApk;
            0   23     1                r  Landroid/content/BroadcastReceiver;
            0   23     2          context  Landroid/content/Context;
            0   23     3          handler  Landroid/os/Handler;
            0   23     4  instrumentation  Landroid/app/Instrumentation;
            0   23     5       registered  Z
            2   21     7               rd  Landroid/app/LoadedApk$ReceiverDispatcher;
            3   21     8              map  Landroid/util/ArrayMap<Landroid/content/BroadcastReceiver;Landroid/app/LoadedApk$ReceiverDispatcher;>;
      Exception table:
        from    to  target  type
           1    20      21  any
          21    22      21  any
    MethodParameters:
                 Name  Flags
      r                
      context          
      handler          
      instrumentation  
      registered       

  public android.content.IIntentReceiver forgetReceiverDispatcher(android.content.Context, android.content.BroadcastReceiver);
    descriptor: (Landroid/content/Context;Landroid/content/BroadcastReceiver;)Landroid/content/IIntentReceiver;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=8, args_size=3
        start local 0 // android.app.LoadedApk this
        start local 1 // android.content.Context context
        start local 2 // android.content.BroadcastReceiver r
         0: .line 1229
            aload 0 /* this */
            getfield android.app.LoadedApk.mReceivers:Landroid/util/ArrayMap;
            dup
            astore 3
            monitorenter
         1: .line 1230
            aload 0 /* this */
            getfield android.app.LoadedApk.mReceivers:Landroid/util/ArrayMap;
            aload 1 /* context */
            invokevirtual android.util.ArrayMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast android.util.ArrayMap
            astore 4 /* map */
        start local 4 // android.util.ArrayMap map
         2: .line 1231
            aconst_null
            astore 5 /* rd */
        start local 5 // android.app.LoadedApk$ReceiverDispatcher rd
         3: .line 1232
            aload 4 /* map */
            ifnull 24
         4: .line 1233
            aload 4 /* map */
            aload 2 /* r */
            invokevirtual android.util.ArrayMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast android.app.LoadedApk$ReceiverDispatcher
            astore 5 /* rd */
         5: .line 1234
            aload 5 /* rd */
            ifnull 24
         6: .line 1235
            aload 4 /* map */
            aload 2 /* r */
            invokevirtual android.util.ArrayMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         7: .line 1236
            aload 4 /* map */
            invokevirtual android.util.ArrayMap.size:()I
            ifne 9
         8: .line 1237
            aload 0 /* this */
            getfield android.app.LoadedApk.mReceivers:Landroid/util/ArrayMap;
            aload 1 /* context */
            invokevirtual android.util.ArrayMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         9: .line 1239
      StackMap locals: android.util.ArrayMap android.util.ArrayMap android.app.LoadedApk$ReceiverDispatcher
      StackMap stack:
            aload 2 /* r */
            invokevirtual android.content.BroadcastReceiver.getDebugUnregister:()Z
            ifeq 21
        10: .line 1241
            aload 0 /* this */
            getfield android.app.LoadedApk.mUnregisteredReceivers:Landroid/util/ArrayMap;
            aload 1 /* context */
            invokevirtual android.util.ArrayMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast android.util.ArrayMap
        11: .line 1240
            astore 6 /* holder */
        start local 6 // android.util.ArrayMap holder
        12: .line 1242
            aload 6 /* holder */
            ifnonnull 15
        13: .line 1243
            new android.util.ArrayMap
            dup
            invokespecial android.util.ArrayMap.<init>:()V
            astore 6 /* holder */
        14: .line 1244
            aload 0 /* this */
            getfield android.app.LoadedApk.mUnregisteredReceivers:Landroid/util/ArrayMap;
            aload 1 /* context */
            aload 6 /* holder */
            invokevirtual android.util.ArrayMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        15: .line 1246
      StackMap locals: android.util.ArrayMap
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
        16: .line 1247
            ldc "Originally unregistered here:"
        17: .line 1246
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            astore 7 /* ex */
        start local 7 // java.lang.RuntimeException ex
        18: .line 1248
            aload 7 /* ex */
            invokevirtual java.lang.RuntimeException.fillInStackTrace:()Ljava/lang/Throwable;
            pop
        19: .line 1249
            aload 5 /* rd */
            aload 7 /* ex */
            invokevirtual android.app.LoadedApk$ReceiverDispatcher.setUnregisterLocation:(Ljava/lang/RuntimeException;)V
        20: .line 1250
            aload 6 /* holder */
            aload 2 /* r */
            aload 5 /* rd */
            invokevirtual android.util.ArrayMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 7 // java.lang.RuntimeException ex
        end local 6 // android.util.ArrayMap holder
        21: .line 1252
      StackMap locals:
      StackMap stack:
            aload 5 /* rd */
            iconst_1
            putfield android.app.LoadedApk$ReceiverDispatcher.mForgotten:Z
        22: .line 1253
            aload 5 /* rd */
            invokevirtual android.app.LoadedApk$ReceiverDispatcher.getIIntentReceiver:()Landroid/content/IIntentReceiver;
            aload 3
            monitorexit
        23: areturn
        24: .line 1257
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.app.LoadedApk.mUnregisteredReceivers:Landroid/util/ArrayMap;
            aload 1 /* context */
            invokevirtual android.util.ArrayMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast android.util.ArrayMap
        25: .line 1256
            astore 6 /* holder */
        start local 6 // android.util.ArrayMap holder
        26: .line 1258
            aload 6 /* holder */
            ifnull 36
        27: .line 1259
            aload 6 /* holder */
            aload 2 /* r */
            invokevirtual android.util.ArrayMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast android.app.LoadedApk$ReceiverDispatcher
            astore 5 /* rd */
        28: .line 1260
            aload 5 /* rd */
            ifnull 36
        29: .line 1261
            aload 5 /* rd */
            invokevirtual android.app.LoadedApk$ReceiverDispatcher.getUnregisterLocation:()Ljava/lang/RuntimeException;
            astore 7 /* ex */
        start local 7 // java.lang.RuntimeException ex
        30: .line 1262
            new java.lang.IllegalArgumentException
            dup
        31: .line 1263
            new java.lang.StringBuilder
            dup
            ldc "Unregistering Receiver "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* r */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
        32: .line 1264
            ldc " that was already unregistered"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        33: .line 1263
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        34: .line 1264
            aload 7 /* ex */
        35: .line 1262
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 7 // java.lang.RuntimeException ex
        36: .line 1267
      StackMap locals: android.util.ArrayMap
      StackMap stack:
            aload 1 /* context */
            ifnonnull 40
        37: .line 1268
            new java.lang.IllegalStateException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unbinding Receiver "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* r */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
        38: .line 1269
            ldc " from Context that is no longer in use: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* context */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        39: .line 1268
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        40: .line 1271
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Receiver not registered: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* r */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 6 // android.util.ArrayMap holder
        end local 5 // android.app.LoadedApk$ReceiverDispatcher rd
        end local 4 // android.util.ArrayMap map
        41: .line 1229
      StackMap locals: android.app.LoadedApk android.content.Context android.content.BroadcastReceiver android.util.ArrayMap
      StackMap stack: java.lang.Throwable
            aload 3
            monitorexit
        42: athrow
        end local 2 // android.content.BroadcastReceiver r
        end local 1 // android.content.Context context
        end local 0 // android.app.LoadedApk this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   43     0     this  Landroid/app/LoadedApk;
            0   43     1  context  Landroid/content/Context;
            0   43     2        r  Landroid/content/BroadcastReceiver;
            2   41     4      map  Landroid/util/ArrayMap<Landroid/content/BroadcastReceiver;Landroid/app/LoadedApk$ReceiverDispatcher;>;
            3   41     5       rd  Landroid/app/LoadedApk$ReceiverDispatcher;
           12   21     6   holder  Landroid/util/ArrayMap<Landroid/content/BroadcastReceiver;Landroid/app/LoadedApk$ReceiverDispatcher;>;
           18   21     7       ex  Ljava/lang/RuntimeException;
           26   41     6   holder  Landroid/util/ArrayMap<Landroid/content/BroadcastReceiver;Landroid/app/LoadedApk$ReceiverDispatcher;>;
           30   36     7       ex  Ljava/lang/RuntimeException;
      Exception table:
        from    to  target  type
           1    23      41  any
          24    42      41  any
    MethodParameters:
         Name  Flags
      context  
      r        

  public final android.app.IServiceConnection getServiceDispatcher(android.content.ServiceConnection, android.content.Context, android.os.Handler, int);
    descriptor: (Landroid/content/ServiceConnection;Landroid/content/Context;Landroid/os/Handler;I)Landroid/app/IServiceConnection;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=6, locals=8, args_size=5
        start local 0 // android.app.LoadedApk this
        start local 1 // android.content.ServiceConnection c
        start local 2 // android.content.Context context
        start local 3 // android.os.Handler handler
        start local 4 // int flags
         0: .line 1494
            aload 0 /* this */
            getfield android.app.LoadedApk.mServices:Landroid/util/ArrayMap;
            dup
            astore 5
            monitorenter
         1: .line 1495
            aconst_null
            astore 6 /* sd */
        start local 6 // android.app.LoadedApk$ServiceDispatcher sd
         2: .line 1496
            aload 0 /* this */
            getfield android.app.LoadedApk.mServices:Landroid/util/ArrayMap;
            aload 2 /* context */
            invokevirtual android.util.ArrayMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast android.util.ArrayMap
            astore 7 /* map */
        start local 7 // android.util.ArrayMap map
         3: .line 1497
            aload 7 /* map */
            ifnull 5
         4: .line 1499
            aload 7 /* map */
            aload 1 /* c */
            invokevirtual android.util.ArrayMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast android.app.LoadedApk$ServiceDispatcher
            astore 6 /* sd */
         5: .line 1501
      StackMap locals: android.util.ArrayMap android.app.LoadedApk$ServiceDispatcher android.util.ArrayMap
      StackMap stack:
            aload 6 /* sd */
            ifnonnull 12
         6: .line 1502
            new android.app.LoadedApk$ServiceDispatcher
            dup
            aload 1 /* c */
            aload 2 /* context */
            aload 3 /* handler */
            iload 4 /* flags */
            invokespecial android.app.LoadedApk$ServiceDispatcher.<init>:(Landroid/content/ServiceConnection;Landroid/content/Context;Landroid/os/Handler;I)V
            astore 6 /* sd */
         7: .line 1504
            aload 7 /* map */
            ifnonnull 10
         8: .line 1505
            new android.util.ArrayMap
            dup
            invokespecial android.util.ArrayMap.<init>:()V
            astore 7 /* map */
         9: .line 1506
            aload 0 /* this */
            getfield android.app.LoadedApk.mServices:Landroid/util/ArrayMap;
            aload 2 /* context */
            aload 7 /* map */
            invokevirtual android.util.ArrayMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        10: .line 1508
      StackMap locals:
      StackMap stack:
            aload 7 /* map */
            aload 1 /* c */
            aload 6 /* sd */
            invokevirtual android.util.ArrayMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        11: .line 1509
            goto 13
        12: .line 1510
      StackMap locals:
      StackMap stack:
            aload 6 /* sd */
            aload 2 /* context */
            aload 3 /* handler */
            invokevirtual android.app.LoadedApk$ServiceDispatcher.validate:(Landroid/content/Context;Landroid/os/Handler;)V
        13: .line 1512
      StackMap locals:
      StackMap stack:
            aload 6 /* sd */
            invokevirtual android.app.LoadedApk$ServiceDispatcher.getIServiceConnection:()Landroid/app/IServiceConnection;
            aload 5
            monitorexit
        14: areturn
        end local 7 // android.util.ArrayMap map
        end local 6 // android.app.LoadedApk$ServiceDispatcher sd
        15: .line 1494
      StackMap locals: android.app.LoadedApk android.content.ServiceConnection android.content.Context android.os.Handler int android.util.ArrayMap
      StackMap stack: java.lang.Throwable
            aload 5
            monitorexit
        16: athrow
        end local 4 // int flags
        end local 3 // android.os.Handler handler
        end local 2 // android.content.Context context
        end local 1 // android.content.ServiceConnection c
        end local 0 // android.app.LoadedApk this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   17     0     this  Landroid/app/LoadedApk;
            0   17     1        c  Landroid/content/ServiceConnection;
            0   17     2  context  Landroid/content/Context;
            0   17     3  handler  Landroid/os/Handler;
            0   17     4    flags  I
            2   15     6       sd  Landroid/app/LoadedApk$ServiceDispatcher;
            3   15     7      map  Landroid/util/ArrayMap<Landroid/content/ServiceConnection;Landroid/app/LoadedApk$ServiceDispatcher;>;
      Exception table:
        from    to  target  type
           1    14      15  any
          15    16      15  any
    MethodParameters:
         Name  Flags
      c        
      context  
      handler  
      flags    

  public final android.app.IServiceConnection forgetServiceDispatcher(android.content.Context, android.content.ServiceConnection);
    descriptor: (Landroid/content/Context;Landroid/content/ServiceConnection;)Landroid/app/IServiceConnection;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=5, locals=8, args_size=3
        start local 0 // android.app.LoadedApk this
        start local 1 // android.content.Context context
        start local 2 // android.content.ServiceConnection c
         0: .line 1518
            aload 0 /* this */
            getfield android.app.LoadedApk.mServices:Landroid/util/ArrayMap;
            dup
            astore 3
            monitorenter
         1: .line 1520
            aload 0 /* this */
            getfield android.app.LoadedApk.mServices:Landroid/util/ArrayMap;
            aload 1 /* context */
            invokevirtual android.util.ArrayMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast android.util.ArrayMap
         2: .line 1519
            astore 4 /* map */
        start local 4 // android.util.ArrayMap map
         3: .line 1521
            aconst_null
            astore 5 /* sd */
        start local 5 // android.app.LoadedApk$ServiceDispatcher sd
         4: .line 1522
            aload 4 /* map */
            ifnull 25
         5: .line 1523
            aload 4 /* map */
            aload 2 /* c */
            invokevirtual android.util.ArrayMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast android.app.LoadedApk$ServiceDispatcher
            astore 5 /* sd */
         6: .line 1524
            aload 5 /* sd */
            ifnull 25
         7: .line 1526
            aload 4 /* map */
            aload 2 /* c */
            invokevirtual android.util.ArrayMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         8: .line 1527
            aload 5 /* sd */
            invokevirtual android.app.LoadedApk$ServiceDispatcher.doForget:()V
         9: .line 1528
            aload 4 /* map */
            invokevirtual android.util.ArrayMap.size:()I
            ifne 11
        10: .line 1529
            aload 0 /* this */
            getfield android.app.LoadedApk.mServices:Landroid/util/ArrayMap;
            aload 1 /* context */
            invokevirtual android.util.ArrayMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
        11: .line 1531
      StackMap locals: android.util.ArrayMap android.util.ArrayMap android.app.LoadedApk$ServiceDispatcher
      StackMap stack:
            aload 5 /* sd */
            invokevirtual android.app.LoadedApk$ServiceDispatcher.getFlags:()I
            iconst_2
            iand
            ifeq 23
        12: .line 1533
            aload 0 /* this */
            getfield android.app.LoadedApk.mUnboundServices:Landroid/util/ArrayMap;
            aload 1 /* context */
            invokevirtual android.util.ArrayMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast android.util.ArrayMap
        13: .line 1532
            astore 6 /* holder */
        start local 6 // android.util.ArrayMap holder
        14: .line 1534
            aload 6 /* holder */
            ifnonnull 17
        15: .line 1535
            new android.util.ArrayMap
            dup
            invokespecial android.util.ArrayMap.<init>:()V
            astore 6 /* holder */
        16: .line 1536
            aload 0 /* this */
            getfield android.app.LoadedApk.mUnboundServices:Landroid/util/ArrayMap;
            aload 1 /* context */
            aload 6 /* holder */
            invokevirtual android.util.ArrayMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        17: .line 1538
      StackMap locals: android.util.ArrayMap
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
        18: .line 1539
            ldc "Originally unbound here:"
        19: .line 1538
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            astore 7 /* ex */
        start local 7 // java.lang.RuntimeException ex
        20: .line 1540
            aload 7 /* ex */
            invokevirtual java.lang.RuntimeException.fillInStackTrace:()Ljava/lang/Throwable;
            pop
        21: .line 1541
            aload 5 /* sd */
            aload 7 /* ex */
            invokevirtual android.app.LoadedApk$ServiceDispatcher.setUnbindLocation:(Ljava/lang/RuntimeException;)V
        22: .line 1542
            aload 6 /* holder */
            aload 2 /* c */
            aload 5 /* sd */
            invokevirtual android.util.ArrayMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 7 // java.lang.RuntimeException ex
        end local 6 // android.util.ArrayMap holder
        23: .line 1544
      StackMap locals:
      StackMap stack:
            aload 5 /* sd */
            invokevirtual android.app.LoadedApk$ServiceDispatcher.getIServiceConnection:()Landroid/app/IServiceConnection;
            aload 3
            monitorexit
        24: areturn
        25: .line 1548
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.app.LoadedApk.mUnboundServices:Landroid/util/ArrayMap;
            aload 1 /* context */
            invokevirtual android.util.ArrayMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast android.util.ArrayMap
        26: .line 1547
            astore 6 /* holder */
        start local 6 // android.util.ArrayMap holder
        27: .line 1549
            aload 6 /* holder */
            ifnull 37
        28: .line 1550
            aload 6 /* holder */
            aload 2 /* c */
            invokevirtual android.util.ArrayMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast android.app.LoadedApk$ServiceDispatcher
            astore 5 /* sd */
        29: .line 1551
            aload 5 /* sd */
            ifnull 37
        30: .line 1552
            aload 5 /* sd */
            invokevirtual android.app.LoadedApk$ServiceDispatcher.getUnbindLocation:()Ljava/lang/RuntimeException;
            astore 7 /* ex */
        start local 7 // java.lang.RuntimeException ex
        31: .line 1553
            new java.lang.IllegalArgumentException
            dup
        32: .line 1554
            new java.lang.StringBuilder
            dup
            ldc "Unbinding Service "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* c */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
        33: .line 1555
            ldc " that was already unbound"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        34: .line 1554
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        35: .line 1555
            aload 7 /* ex */
        36: .line 1553
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 7 // java.lang.RuntimeException ex
        37: .line 1558
      StackMap locals: android.util.ArrayMap
      StackMap stack:
            aload 1 /* context */
            ifnonnull 41
        38: .line 1559
            new java.lang.IllegalStateException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unbinding Service "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* c */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
        39: .line 1560
            ldc " from Context that is no longer in use: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* context */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        40: .line 1559
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        41: .line 1562
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Service not registered: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* c */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 6 // android.util.ArrayMap holder
        end local 5 // android.app.LoadedApk$ServiceDispatcher sd
        end local 4 // android.util.ArrayMap map
        42: .line 1518
      StackMap locals: android.app.LoadedApk android.content.Context android.content.ServiceConnection android.util.ArrayMap
      StackMap stack: java.lang.Throwable
            aload 3
            monitorexit
        43: athrow
        end local 2 // android.content.ServiceConnection c
        end local 1 // android.content.Context context
        end local 0 // android.app.LoadedApk this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   44     0     this  Landroid/app/LoadedApk;
            0   44     1  context  Landroid/content/Context;
            0   44     2        c  Landroid/content/ServiceConnection;
            3   42     4      map  Landroid/util/ArrayMap<Landroid/content/ServiceConnection;Landroid/app/LoadedApk$ServiceDispatcher;>;
            4   42     5       sd  Landroid/app/LoadedApk$ServiceDispatcher;
           14   23     6   holder  Landroid/util/ArrayMap<Landroid/content/ServiceConnection;Landroid/app/LoadedApk$ServiceDispatcher;>;
           20   23     7       ex  Ljava/lang/RuntimeException;
           27   42     6   holder  Landroid/util/ArrayMap<Landroid/content/ServiceConnection;Landroid/app/LoadedApk$ServiceDispatcher;>;
           31   37     7       ex  Ljava/lang/RuntimeException;
      Exception table:
        from    to  target  type
           1    24      42  any
          25    43      42  any
    MethodParameters:
         Name  Flags
      context  
      c        
}
SourceFile: "LoadedApk.java"
NestMembers:
  android.app.LoadedApk$ReceiverDispatcher  android.app.LoadedApk$ReceiverDispatcher$Args  android.app.LoadedApk$ReceiverDispatcher$InnerReceiver  android.app.LoadedApk$ServiceDispatcher  android.app.LoadedApk$ServiceDispatcher$ConnectionInfo  android.app.LoadedApk$ServiceDispatcher$DeathMonitor  android.app.LoadedApk$ServiceDispatcher$InnerConnection  android.app.LoadedApk$ServiceDispatcher$RunConnection  android.app.LoadedApk$SplitDependencyLoaderImpl  android.app.LoadedApk$WarningContextClassLoader
InnerClasses:
  final ReceiverDispatcher = android.app.LoadedApk$ReceiverDispatcher of android.app.LoadedApk
  final ServiceDispatcher = android.app.LoadedApk$ServiceDispatcher of android.app.LoadedApk
  private SplitDependencyLoaderImpl = android.app.LoadedApk$SplitDependencyLoaderImpl of android.app.LoadedApk
  private WarningContextClassLoader = android.app.LoadedApk$WarningContextClassLoader of android.app.LoadedApk
  public NameNotFoundException = android.content.pm.PackageManager$NameNotFoundException of android.content.pm.PackageManager