public class android.provider.ContactsContract$Contacts implements android.provider.BaseColumns, android.provider.ContactsContract$ContactsColumns, android.provider.ContactsContract$ContactOptionsColumns, android.provider.ContactsContract$ContactNameColumns, android.provider.ContactsContract$ContactStatusColumns, android.provider.ContactsContract$ContactCounts
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: android.provider.ContactsContract$Contacts
  super_class: java.lang.Object
{
  public static final android.net.Uri CONTENT_URI;
    descriptor: Landroid/net/Uri;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final android.net.Uri CORP_CONTENT_URI;
    descriptor: Landroid/net/Uri;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final android.net.Uri CONTENT_LOOKUP_URI;
    descriptor: Landroid/net/Uri;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final android.net.Uri CONTENT_VCARD_URI;
    descriptor: Landroid/net/Uri;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final java.lang.String QUERY_PARAMETER_VCARD_NO_PHOTO;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "no_photo"

  public static final android.net.Uri CONTENT_MULTI_VCARD_URI;
    descriptor: Landroid/net/Uri;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final android.net.Uri CONTENT_FILTER_URI;
    descriptor: Landroid/net/Uri;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final android.net.Uri ENTERPRISE_CONTENT_FILTER_URI;
    descriptor: Landroid/net/Uri;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final android.net.Uri CONTENT_STREQUENT_URI;
    descriptor: Landroid/net/Uri;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final android.net.Uri CONTENT_FREQUENT_URI;
    descriptor: Landroid/net/Uri;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final android.net.Uri CONTENT_STREQUENT_FILTER_URI;
    descriptor: Landroid/net/Uri;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final android.net.Uri CONTENT_GROUP_URI;
    descriptor: Landroid/net/Uri;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final java.lang.String CONTENT_TYPE;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "vnd.android.cursor.dir/contact"

  public static final java.lang.String CONTENT_ITEM_TYPE;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "vnd.android.cursor.item/contact"

  public static final java.lang.String CONTENT_VCARD_TYPE;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "text/x-vcard"

  public static long ENTERPRISE_CONTACT_ID_BASE;
    descriptor: J
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC

  public static java.lang.String ENTERPRISE_CONTACT_LOOKUP_PREFIX;
    descriptor: Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 1530
            getstatic android.provider.ContactsContract.AUTHORITY_URI:Landroid/net/Uri;
            ldc "contacts"
            invokestatic android.net.Uri.withAppendedPath:(Landroid/net/Uri;Ljava/lang/String;)Landroid/net/Uri;
            putstatic android.provider.ContactsContract$Contacts.CONTENT_URI:Landroid/net/Uri;
         1: .line 1542
            getstatic android.provider.ContactsContract.AUTHORITY_URI:Landroid/net/Uri;
         2: .line 1543
            ldc "contacts_corp"
         3: .line 1542
            invokestatic android.net.Uri.withAppendedPath:(Landroid/net/Uri;Ljava/lang/String;)Landroid/net/Uri;
            putstatic android.provider.ContactsContract$Contacts.CORP_CONTENT_URI:Landroid/net/Uri;
         4: .line 1561
            getstatic android.provider.ContactsContract$Contacts.CONTENT_URI:Landroid/net/Uri;
         5: .line 1562
            ldc "lookup"
         6: .line 1561
            invokestatic android.net.Uri.withAppendedPath:(Landroid/net/Uri;Ljava/lang/String;)Landroid/net/Uri;
            putstatic android.provider.ContactsContract$Contacts.CONTENT_LOOKUP_URI:Landroid/net/Uri;
         7: .line 1572
            getstatic android.provider.ContactsContract$Contacts.CONTENT_URI:Landroid/net/Uri;
         8: .line 1573
            ldc "as_vcard"
         9: .line 1572
            invokestatic android.net.Uri.withAppendedPath:(Landroid/net/Uri;Ljava/lang/String;)Landroid/net/Uri;
            putstatic android.provider.ContactsContract$Contacts.CONTENT_VCARD_URI:Landroid/net/Uri;
        10: .line 1626
            getstatic android.provider.ContactsContract$Contacts.CONTENT_URI:Landroid/net/Uri;
        11: .line 1627
            ldc "as_multi_vcard"
        12: .line 1626
            invokestatic android.net.Uri.withAppendedPath:(Landroid/net/Uri;Ljava/lang/String;)Landroid/net/Uri;
            putstatic android.provider.ContactsContract$Contacts.CONTENT_MULTI_VCARD_URI:Landroid/net/Uri;
        13: .line 1730
            getstatic android.provider.ContactsContract$Contacts.CONTENT_URI:Landroid/net/Uri;
            ldc "filter"
        14: .line 1729
            invokestatic android.net.Uri.withAppendedPath:(Landroid/net/Uri;Ljava/lang/String;)Landroid/net/Uri;
            putstatic android.provider.ContactsContract$Contacts.CONTENT_FILTER_URI:Landroid/net/Uri;
        15: .line 1738
            getstatic android.provider.ContactsContract$Contacts.CONTENT_URI:Landroid/net/Uri;
            ldc "filter_enterprise"
        16: .line 1737
            invokestatic android.net.Uri.withAppendedPath:(Landroid/net/Uri;Ljava/lang/String;)Landroid/net/Uri;
            putstatic android.provider.ContactsContract$Contacts.ENTERPRISE_CONTENT_FILTER_URI:Landroid/net/Uri;
        17: .line 1751
            getstatic android.provider.ContactsContract$Contacts.CONTENT_URI:Landroid/net/Uri;
            ldc "strequent"
        18: .line 1750
            invokestatic android.net.Uri.withAppendedPath:(Landroid/net/Uri;Ljava/lang/String;)Landroid/net/Uri;
            putstatic android.provider.ContactsContract$Contacts.CONTENT_STREQUENT_URI:Landroid/net/Uri;
        19: .line 1762
            getstatic android.provider.ContactsContract$Contacts.CONTENT_URI:Landroid/net/Uri;
            ldc "frequent"
        20: .line 1761
            invokestatic android.net.Uri.withAppendedPath:(Landroid/net/Uri;Ljava/lang/String;)Landroid/net/Uri;
            putstatic android.provider.ContactsContract$Contacts.CONTENT_FREQUENT_URI:Landroid/net/Uri;
        21: .line 1776
            getstatic android.provider.ContactsContract$Contacts.CONTENT_STREQUENT_URI:Landroid/net/Uri;
            ldc "filter"
        22: .line 1775
            invokestatic android.net.Uri.withAppendedPath:(Landroid/net/Uri;Ljava/lang/String;)Landroid/net/Uri;
            putstatic android.provider.ContactsContract$Contacts.CONTENT_STREQUENT_FILTER_URI:Landroid/net/Uri;
        23: .line 1779
            getstatic android.provider.ContactsContract$Contacts.CONTENT_URI:Landroid/net/Uri;
            ldc "group"
        24: .line 1778
            invokestatic android.net.Uri.withAppendedPath:(Landroid/net/Uri;Ljava/lang/String;)Landroid/net/Uri;
            putstatic android.provider.ContactsContract$Contacts.CONTENT_GROUP_URI:Landroid/net/Uri;
        25: .line 1805
            ldc 1000000000
            putstatic android.provider.ContactsContract$Contacts.ENTERPRISE_CONTACT_ID_BASE:J
        26: .line 1813
            ldc "c-"
            putstatic android.provider.ContactsContract$Contacts.ENTERPRISE_CONTACT_LOOKUP_PREFIX:Ljava/lang/String;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.provider.ContactsContract$Contacts this
         0: .line 1525
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // android.provider.ContactsContract$Contacts this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/provider/ContactsContract$Contacts;

  public static android.net.Uri getLookupUri(android.content.ContentResolver, android.net.Uri);
    descriptor: (Landroid/content/ContentResolver;Landroid/net/Uri;)Landroid/net/Uri;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=8, args_size=2
        start local 0 // android.content.ContentResolver resolver
        start local 1 // android.net.Uri contactUri
         0: .line 1637
            aload 0 /* resolver */
            aload 1 /* contactUri */
            iconst_2
            anewarray java.lang.String
            dup
            iconst_0
         1: .line 1638
            ldc "lookup"
            aastore
            dup
            iconst_1
            ldc "_id"
            aastore
         2: .line 1639
            aconst_null
            aconst_null
            aconst_null
         3: .line 1637
            invokevirtual android.content.ContentResolver.query:(Landroid/net/Uri;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;
            astore 2 /* c */
        start local 2 // android.database.Cursor c
         4: .line 1640
            aload 2 /* c */
            ifnonnull 6
         5: .line 1641
            aconst_null
            areturn
         6: .line 1645
      StackMap locals: android.database.Cursor
      StackMap stack:
            aload 2 /* c */
            invokeinterface android.database.Cursor.moveToFirst:()Z
            ifeq 15
         7: .line 1646
            aload 2 /* c */
            iconst_0
            invokeinterface android.database.Cursor.getString:(I)Ljava/lang/String;
            astore 3 /* lookupKey */
        start local 3 // java.lang.String lookupKey
         8: .line 1647
            aload 2 /* c */
            iconst_1
            invokeinterface android.database.Cursor.getLong:(I)J
            lstore 4 /* contactId */
        start local 4 // long contactId
         9: .line 1648
            lload 4 /* contactId */
            aload 3 /* lookupKey */
            invokestatic android.provider.ContactsContract$Contacts.getLookupUri:(JLjava/lang/String;)Landroid/net/Uri;
            astore 7
        10: .line 1651
            aload 2 /* c */
            invokeinterface android.database.Cursor.close:()V
        11: .line 1648
            aload 7
            areturn
        end local 4 // long contactId
        end local 3 // java.lang.String lookupKey
        12: .line 1650
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 6
        13: .line 1651
            aload 2 /* c */
            invokeinterface android.database.Cursor.close:()V
        14: .line 1652
            aload 6
            athrow
        15: .line 1651
      StackMap locals:
      StackMap stack:
            aload 2 /* c */
            invokeinterface android.database.Cursor.close:()V
        16: .line 1653
            aconst_null
            areturn
        end local 2 // android.database.Cursor c
        end local 1 // android.net.Uri contactUri
        end local 0 // android.content.ContentResolver resolver
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   17     0    resolver  Landroid/content/ContentResolver;
            0   17     1  contactUri  Landroid/net/Uri;
            4   17     2           c  Landroid/database/Cursor;
            8   12     3   lookupKey  Ljava/lang/String;
            9   12     4   contactId  J
      Exception table:
        from    to  target  type
           6    10      12  any
    MethodParameters:
            Name  Flags
      resolver    
      contactUri  

  public static android.net.Uri getLookupUri(long, java.lang.String);
    descriptor: (JLjava/lang/String;)Landroid/net/Uri;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // long contactId
        start local 2 // java.lang.String lookupKey
         0: .line 1664
            aload 2 /* lookupKey */
            invokestatic android.text.TextUtils.isEmpty:(Ljava/lang/CharSequence;)Z
            ifeq 2
         1: .line 1665
            aconst_null
            areturn
         2: .line 1667
      StackMap locals:
      StackMap stack:
            getstatic android.provider.ContactsContract$Contacts.CONTENT_LOOKUP_URI:Landroid/net/Uri;
         3: .line 1668
            aload 2 /* lookupKey */
         4: .line 1667
            invokestatic android.net.Uri.withAppendedPath:(Landroid/net/Uri;Ljava/lang/String;)Landroid/net/Uri;
         5: .line 1668
            lload 0 /* contactId */
         6: .line 1667
            invokestatic android.content.ContentUris.withAppendedId:(Landroid/net/Uri;J)Landroid/net/Uri;
            areturn
        end local 2 // java.lang.String lookupKey
        end local 0 // long contactId
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    7     0  contactId  J
            0    7     2  lookupKey  Ljava/lang/String;
    MethodParameters:
           Name  Flags
      contactId  
      lookupKey  

  public static android.net.Uri lookupContact(android.content.ContentResolver, android.net.Uri);
    descriptor: (Landroid/content/ContentResolver;Landroid/net/Uri;)Landroid/net/Uri;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=7, args_size=2
        start local 0 // android.content.ContentResolver resolver
        start local 1 // android.net.Uri lookupUri
         0: .line 1677
            aload 1 /* lookupUri */
            ifnonnull 2
         1: .line 1678
            aconst_null
            areturn
         2: .line 1681
      StackMap locals:
      StackMap stack:
            aload 0 /* resolver */
            aload 1 /* lookupUri */
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            ldc "_id"
            aastore
            aconst_null
            aconst_null
            aconst_null
            invokevirtual android.content.ContentResolver.query:(Landroid/net/Uri;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;
            astore 2 /* c */
        start local 2 // android.database.Cursor c
         3: .line 1682
            aload 2 /* c */
            ifnonnull 5
         4: .line 1683
            aconst_null
            areturn
         5: .line 1687
      StackMap locals: android.database.Cursor
      StackMap stack:
            aload 2 /* c */
            invokeinterface android.database.Cursor.moveToFirst:()Z
            ifeq 13
         6: .line 1688
            aload 2 /* c */
            iconst_0
            invokeinterface android.database.Cursor.getLong:(I)J
            lstore 3 /* contactId */
        start local 3 // long contactId
         7: .line 1689
            getstatic android.provider.ContactsContract$Contacts.CONTENT_URI:Landroid/net/Uri;
            lload 3 /* contactId */
            invokestatic android.content.ContentUris.withAppendedId:(Landroid/net/Uri;J)Landroid/net/Uri;
            astore 6
         8: .line 1692
            aload 2 /* c */
            invokeinterface android.database.Cursor.close:()V
         9: .line 1689
            aload 6
            areturn
        end local 3 // long contactId
        10: .line 1691
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 5
        11: .line 1692
            aload 2 /* c */
            invokeinterface android.database.Cursor.close:()V
        12: .line 1693
            aload 5
            athrow
        13: .line 1692
      StackMap locals:
      StackMap stack:
            aload 2 /* c */
            invokeinterface android.database.Cursor.close:()V
        14: .line 1694
            aconst_null
            areturn
        end local 2 // android.database.Cursor c
        end local 1 // android.net.Uri lookupUri
        end local 0 // android.content.ContentResolver resolver
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   15     0   resolver  Landroid/content/ContentResolver;
            0   15     1  lookupUri  Landroid/net/Uri;
            3   15     2          c  Landroid/database/Cursor;
            7   10     3  contactId  J
      Exception table:
        from    to  target  type
           5     8      10  any
    MethodParameters:
           Name  Flags
      resolver   
      lookupUri  

  public static void markAsContacted(android.content.ContentResolver, long);
    descriptor: (Landroid/content/ContentResolver;J)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // android.content.ContentResolver resolver
        start local 1 // long contactId
         0: .line 1716
            getstatic android.provider.ContactsContract$Contacts.CONTENT_URI:Landroid/net/Uri;
            lload 1 /* contactId */
            invokestatic android.content.ContentUris.withAppendedId:(Landroid/net/Uri;J)Landroid/net/Uri;
            astore 3 /* uri */
        start local 3 // android.net.Uri uri
         1: .line 1717
            new android.content.ContentValues
            dup
            invokespecial android.content.ContentValues.<init>:()V
            astore 4 /* values */
        start local 4 // android.content.ContentValues values
         2: .line 1719
            aload 4 /* values */
            ldc "last_time_contacted"
            invokestatic java.lang.System.currentTimeMillis:()J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            invokevirtual android.content.ContentValues.put:(Ljava/lang/String;Ljava/lang/Long;)V
         3: .line 1720
            aload 0 /* resolver */
            aload 3 /* uri */
            aload 4 /* values */
            aconst_null
            aconst_null
            invokevirtual android.content.ContentResolver.update:(Landroid/net/Uri;Landroid/content/ContentValues;Ljava/lang/String;[Ljava/lang/String;)I
            pop
         4: .line 1721
            return
        end local 4 // android.content.ContentValues values
        end local 3 // android.net.Uri uri
        end local 1 // long contactId
        end local 0 // android.content.ContentResolver resolver
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    5     0   resolver  Landroid/content/ContentResolver;
            0    5     1  contactId  J
            1    5     3        uri  Landroid/net/Uri;
            2    5     4     values  Landroid/content/ContentValues;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
           Name  Flags
      resolver   
      contactId  

  public static boolean isEnterpriseContactId(long);
    descriptor: (J)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // long contactId
         0: .line 1821
            lload 0 /* contactId */
            getstatic android.provider.ContactsContract$Contacts.ENTERPRISE_CONTACT_ID_BASE:J
            lcmp
            iflt 1
            lload 0 /* contactId */
            ldc 9223372034707292160
            lcmp
            ifge 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // long contactId
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0  contactId  J
    MethodParameters:
           Name  Flags
      contactId  

  public static java.io.InputStream openContactPhotoInputStream(android.content.ContentResolver, android.net.Uri, boolean);
    descriptor: (Landroid/content/ContentResolver;Landroid/net/Uri;Z)Ljava/io/InputStream;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=8, args_size=3
        start local 0 // android.content.ContentResolver cr
        start local 1 // android.net.Uri contactUri
        start local 2 // boolean preferHighres
         0: .line 2166
            iload 2 /* preferHighres */
            ifeq 9
         1: .line 2167
            aload 1 /* contactUri */
         2: .line 2168
            ldc "display_photo"
         3: .line 2167
            invokestatic android.net.Uri.withAppendedPath:(Landroid/net/Uri;Ljava/lang/String;)Landroid/net/Uri;
            astore 3 /* displayPhotoUri */
        start local 3 // android.net.Uri displayPhotoUri
         4: .line 2170
            aload 0 /* cr */
            aload 3 /* displayPhotoUri */
            ldc "r"
            invokevirtual android.content.ContentResolver.openAssetFileDescriptor:(Landroid/net/Uri;Ljava/lang/String;)Landroid/content/res/AssetFileDescriptor;
            astore 4 /* fd */
        start local 4 // android.content.res.AssetFileDescriptor fd
         5: .line 2171
            aload 4 /* fd */
            ifnull 9
         6: .line 2172
            aload 4 /* fd */
            invokevirtual android.content.res.AssetFileDescriptor.createInputStream:()Ljava/io/FileInputStream;
         7: areturn
        end local 4 // android.content.res.AssetFileDescriptor fd
         8: .line 2174
      StackMap locals: android.content.ContentResolver android.net.Uri int android.net.Uri
      StackMap stack: java.io.IOException
            pop
        end local 3 // android.net.Uri displayPhotoUri
         9: .line 2179
      StackMap locals:
      StackMap stack:
            aload 1 /* contactUri */
            ldc "photo"
            invokestatic android.net.Uri.withAppendedPath:(Landroid/net/Uri;Ljava/lang/String;)Landroid/net/Uri;
            astore 3 /* photoUri */
        start local 3 // android.net.Uri photoUri
        10: .line 2180
            aload 3 /* photoUri */
            ifnonnull 12
        11: .line 2181
            aconst_null
            areturn
        12: .line 2183
      StackMap locals: android.net.Uri
      StackMap stack:
            aload 0 /* cr */
            aload 3 /* photoUri */
        13: .line 2184
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
        14: .line 2185
            ldc "data15"
            aastore
        15: .line 2186
            aconst_null
            aconst_null
            aconst_null
        16: .line 2183
            invokevirtual android.content.ContentResolver.query:(Landroid/net/Uri;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;
            astore 4 /* cursor */
        start local 4 // android.database.Cursor cursor
        17: .line 2188
            aload 4 /* cursor */
            ifnull 18
            aload 4 /* cursor */
            invokeinterface android.database.Cursor.moveToNext:()Z
            ifne 21
        18: .line 2197
      StackMap locals: android.database.Cursor
      StackMap stack:
            aload 4 /* cursor */
            ifnull 20
        19: .line 2198
            aload 4 /* cursor */
            invokeinterface android.database.Cursor.close:()V
        20: .line 2189
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        21: .line 2191
      StackMap locals:
      StackMap stack:
            aload 4 /* cursor */
            iconst_0
            invokeinterface android.database.Cursor.getBlob:(I)[B
            astore 5 /* data */
        start local 5 // byte[] data
        22: .line 2192
            aload 5 /* data */
            ifnonnull 26
        23: .line 2197
            aload 4 /* cursor */
            ifnull 25
        24: .line 2198
            aload 4 /* cursor */
            invokeinterface android.database.Cursor.close:()V
        25: .line 2193
      StackMap locals: byte[]
      StackMap stack:
            aconst_null
            areturn
        26: .line 2195
      StackMap locals:
      StackMap stack:
            new java.io.ByteArrayInputStream
            dup
            aload 5 /* data */
            invokespecial java.io.ByteArrayInputStream.<init>:([B)V
            astore 7
        27: .line 2197
            aload 4 /* cursor */
            ifnull 29
        28: .line 2198
            aload 4 /* cursor */
            invokeinterface android.database.Cursor.close:()V
        29: .line 2195
      StackMap locals: android.content.ContentResolver android.net.Uri int android.net.Uri android.database.Cursor byte[] top java.io.InputStream
      StackMap stack:
            aload 7
            areturn
        end local 5 // byte[] data
        30: .line 2196
      StackMap locals: android.content.ContentResolver android.net.Uri int android.net.Uri android.database.Cursor
      StackMap stack: java.lang.Throwable
            astore 6
        31: .line 2197
            aload 4 /* cursor */
            ifnull 33
        32: .line 2198
            aload 4 /* cursor */
            invokeinterface android.database.Cursor.close:()V
        33: .line 2200
      StackMap locals: android.content.ContentResolver android.net.Uri int android.net.Uri android.database.Cursor top java.lang.Throwable
      StackMap stack:
            aload 6
            athrow
        end local 4 // android.database.Cursor cursor
        end local 3 // android.net.Uri photoUri
        end local 2 // boolean preferHighres
        end local 1 // android.net.Uri contactUri
        end local 0 // android.content.ContentResolver cr
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   34     0               cr  Landroid/content/ContentResolver;
            0   34     1       contactUri  Landroid/net/Uri;
            0   34     2    preferHighres  Z
            4    9     3  displayPhotoUri  Landroid/net/Uri;
            5    8     4               fd  Landroid/content/res/AssetFileDescriptor;
           10   34     3         photoUri  Landroid/net/Uri;
           17   34     4           cursor  Landroid/database/Cursor;
           22   30     5             data  [B
      Exception table:
        from    to  target  type
           4     7       8  Class java.io.IOException
          17    18      30  any
          21    23      30  any
          26    27      30  any
    MethodParameters:
               Name  Flags
      cr             
      contactUri     
      preferHighres  

  public static java.io.InputStream openContactPhotoInputStream(android.content.ContentResolver, android.net.Uri);
    descriptor: (Landroid/content/ContentResolver;Landroid/net/Uri;)Ljava/io/InputStream;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // android.content.ContentResolver cr
        start local 1 // android.net.Uri contactUri
         0: .line 2214
            aload 0 /* cr */
            aload 1 /* contactUri */
            iconst_0
            invokestatic android.provider.ContactsContract$Contacts.openContactPhotoInputStream:(Landroid/content/ContentResolver;Landroid/net/Uri;Z)Ljava/io/InputStream;
            areturn
        end local 1 // android.net.Uri contactUri
        end local 0 // android.content.ContentResolver cr
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0          cr  Landroid/content/ContentResolver;
            0    1     1  contactUri  Landroid/net/Uri;
    MethodParameters:
            Name  Flags
      cr          
      contactUri  
}
SourceFile: "ContactsContract.java"
NestHost: android.provider.ContactsContract
InnerClasses:
  abstract ContactCounts = android.provider.ContactsContract$ContactCounts of android.provider.ContactsContract
  protected abstract ContactNameColumns = android.provider.ContactsContract$ContactNameColumns of android.provider.ContactsContract
  protected abstract ContactOptionsColumns = android.provider.ContactsContract$ContactOptionsColumns of android.provider.ContactsContract
  protected abstract ContactStatusColumns = android.provider.ContactsContract$ContactStatusColumns of android.provider.ContactsContract
  public Contacts = android.provider.ContactsContract$Contacts of android.provider.ContactsContract
  public final AggregationSuggestions = android.provider.ContactsContract$Contacts$AggregationSuggestions of android.provider.ContactsContract$Contacts
  public final Data = android.provider.ContactsContract$Contacts$Data of android.provider.ContactsContract$Contacts
  public final Entity = android.provider.ContactsContract$Contacts$Entity of android.provider.ContactsContract$Contacts
  public final Photo = android.provider.ContactsContract$Contacts$Photo of android.provider.ContactsContract$Contacts
  public final StreamItems = android.provider.ContactsContract$Contacts$StreamItems of android.provider.ContactsContract$Contacts
  protected abstract ContactsColumns = android.provider.ContactsContract$ContactsColumns of android.provider.ContactsContract