public class android.app.admin.PasswordMetrics implements android.os.Parcelable
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: android.app.admin.PasswordMetrics
  super_class: java.lang.Object
{
  public static final int MAX_ALLOWED_SEQUENCE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 3

  public int quality;
    descriptor: I
    flags: (0x0001) ACC_PUBLIC

  public int length;
    descriptor: I
    flags: (0x0001) ACC_PUBLIC

  public int letters;
    descriptor: I
    flags: (0x0001) ACC_PUBLIC

  public int upperCase;
    descriptor: I
    flags: (0x0001) ACC_PUBLIC

  public int lowerCase;
    descriptor: I
    flags: (0x0001) ACC_PUBLIC

  public int numeric;
    descriptor: I
    flags: (0x0001) ACC_PUBLIC

  public int symbols;
    descriptor: I
    flags: (0x0001) ACC_PUBLIC

  public int nonLetter;
    descriptor: I
    flags: (0x0001) ACC_PUBLIC

  public static final android.os.Parcelable$Creator<android.app.admin.PasswordMetrics> CREATOR;
    descriptor: Landroid/os/Parcelable$Creator;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    Signature: Landroid/os/Parcelable$Creator<Landroid/app/admin/PasswordMetrics;>;

  private static final int CHAR_LOWER_CASE;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  private static final int CHAR_UPPER_CASE;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  private static final int CHAR_DIGIT;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  private static final int CHAR_SYMBOL;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 3

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 100
            new android.app.admin.PasswordMetrics$1
            dup
            invokespecial android.app.admin.PasswordMetrics$1.<init>:()V
         1: .line 99
            putstatic android.app.admin.PasswordMetrics.CREATOR:Landroid/os/Parcelable$Creator;
         2: .line 236
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // android.app.admin.PasswordMetrics this
         0: .line 47
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 38
            aload 0 /* this */
            iconst_0
            putfield android.app.admin.PasswordMetrics.quality:I
         2: .line 39
            aload 0 /* this */
            iconst_0
            putfield android.app.admin.PasswordMetrics.length:I
         3: .line 40
            aload 0 /* this */
            iconst_0
            putfield android.app.admin.PasswordMetrics.letters:I
         4: .line 41
            aload 0 /* this */
            iconst_0
            putfield android.app.admin.PasswordMetrics.upperCase:I
         5: .line 42
            aload 0 /* this */
            iconst_0
            putfield android.app.admin.PasswordMetrics.lowerCase:I
         6: .line 43
            aload 0 /* this */
            iconst_0
            putfield android.app.admin.PasswordMetrics.numeric:I
         7: .line 44
            aload 0 /* this */
            iconst_0
            putfield android.app.admin.PasswordMetrics.symbols:I
         8: .line 45
            aload 0 /* this */
            iconst_0
            putfield android.app.admin.PasswordMetrics.nonLetter:I
         9: .line 47
            return
        end local 0 // android.app.admin.PasswordMetrics this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0  this  Landroid/app/admin/PasswordMetrics;

  public void <init>(int, int);
    descriptor: (II)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // android.app.admin.PasswordMetrics this
        start local 1 // int quality
        start local 2 // int length
         0: .line 49
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 38
            aload 0 /* this */
            iconst_0
            putfield android.app.admin.PasswordMetrics.quality:I
         2: .line 39
            aload 0 /* this */
            iconst_0
            putfield android.app.admin.PasswordMetrics.length:I
         3: .line 40
            aload 0 /* this */
            iconst_0
            putfield android.app.admin.PasswordMetrics.letters:I
         4: .line 41
            aload 0 /* this */
            iconst_0
            putfield android.app.admin.PasswordMetrics.upperCase:I
         5: .line 42
            aload 0 /* this */
            iconst_0
            putfield android.app.admin.PasswordMetrics.lowerCase:I
         6: .line 43
            aload 0 /* this */
            iconst_0
            putfield android.app.admin.PasswordMetrics.numeric:I
         7: .line 44
            aload 0 /* this */
            iconst_0
            putfield android.app.admin.PasswordMetrics.symbols:I
         8: .line 45
            aload 0 /* this */
            iconst_0
            putfield android.app.admin.PasswordMetrics.nonLetter:I
         9: .line 50
            aload 0 /* this */
            iload 1 /* quality */
            putfield android.app.admin.PasswordMetrics.quality:I
        10: .line 51
            aload 0 /* this */
            iload 2 /* length */
            putfield android.app.admin.PasswordMetrics.length:I
        11: .line 52
            return
        end local 2 // int length
        end local 1 // int quality
        end local 0 // android.app.admin.PasswordMetrics this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   12     0     this  Landroid/app/admin/PasswordMetrics;
            0   12     1  quality  I
            0   12     2   length  I
    MethodParameters:
         Name  Flags
      quality  
      length   

  public void <init>(int, int, int, int, int, int, int, int);
    descriptor: (IIIIIIII)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=9, args_size=9
        start local 0 // android.app.admin.PasswordMetrics this
        start local 1 // int quality
        start local 2 // int length
        start local 3 // int letters
        start local 4 // int upperCase
        start local 5 // int lowerCase
        start local 6 // int numeric
        start local 7 // int symbols
        start local 8 // int nonLetter
         0: .line 56
            aload 0 /* this */
            iload 1 /* quality */
            iload 2 /* length */
            invokespecial android.app.admin.PasswordMetrics.<init>:(II)V
         1: .line 57
            aload 0 /* this */
            iload 3 /* letters */
            putfield android.app.admin.PasswordMetrics.letters:I
         2: .line 58
            aload 0 /* this */
            iload 4 /* upperCase */
            putfield android.app.admin.PasswordMetrics.upperCase:I
         3: .line 59
            aload 0 /* this */
            iload 5 /* lowerCase */
            putfield android.app.admin.PasswordMetrics.lowerCase:I
         4: .line 60
            aload 0 /* this */
            iload 6 /* numeric */
            putfield android.app.admin.PasswordMetrics.numeric:I
         5: .line 61
            aload 0 /* this */
            iload 7 /* symbols */
            putfield android.app.admin.PasswordMetrics.symbols:I
         6: .line 62
            aload 0 /* this */
            iload 8 /* nonLetter */
            putfield android.app.admin.PasswordMetrics.nonLetter:I
         7: .line 63
            return
        end local 8 // int nonLetter
        end local 7 // int symbols
        end local 6 // int numeric
        end local 5 // int lowerCase
        end local 4 // int upperCase
        end local 3 // int letters
        end local 2 // int length
        end local 1 // int quality
        end local 0 // android.app.admin.PasswordMetrics this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    8     0       this  Landroid/app/admin/PasswordMetrics;
            0    8     1    quality  I
            0    8     2     length  I
            0    8     3    letters  I
            0    8     4  upperCase  I
            0    8     5  lowerCase  I
            0    8     6    numeric  I
            0    8     7    symbols  I
            0    8     8  nonLetter  I
    MethodParameters:
           Name  Flags
      quality    
      length     
      letters    
      upperCase  
      lowerCase  
      numeric    
      symbols    
      nonLetter  

  private void <init>(android.os.Parcel);
    descriptor: (Landroid/os/Parcel;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.app.admin.PasswordMetrics this
        start local 1 // android.os.Parcel in
         0: .line 65
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 38
            aload 0 /* this */
            iconst_0
            putfield android.app.admin.PasswordMetrics.quality:I
         2: .line 39
            aload 0 /* this */
            iconst_0
            putfield android.app.admin.PasswordMetrics.length:I
         3: .line 40
            aload 0 /* this */
            iconst_0
            putfield android.app.admin.PasswordMetrics.letters:I
         4: .line 41
            aload 0 /* this */
            iconst_0
            putfield android.app.admin.PasswordMetrics.upperCase:I
         5: .line 42
            aload 0 /* this */
            iconst_0
            putfield android.app.admin.PasswordMetrics.lowerCase:I
         6: .line 43
            aload 0 /* this */
            iconst_0
            putfield android.app.admin.PasswordMetrics.numeric:I
         7: .line 44
            aload 0 /* this */
            iconst_0
            putfield android.app.admin.PasswordMetrics.symbols:I
         8: .line 45
            aload 0 /* this */
            iconst_0
            putfield android.app.admin.PasswordMetrics.nonLetter:I
         9: .line 66
            aload 0 /* this */
            aload 1 /* in */
            invokevirtual android.os.Parcel.readInt:()I
            putfield android.app.admin.PasswordMetrics.quality:I
        10: .line 67
            aload 0 /* this */
            aload 1 /* in */
            invokevirtual android.os.Parcel.readInt:()I
            putfield android.app.admin.PasswordMetrics.length:I
        11: .line 68
            aload 0 /* this */
            aload 1 /* in */
            invokevirtual android.os.Parcel.readInt:()I
            putfield android.app.admin.PasswordMetrics.letters:I
        12: .line 69
            aload 0 /* this */
            aload 1 /* in */
            invokevirtual android.os.Parcel.readInt:()I
            putfield android.app.admin.PasswordMetrics.upperCase:I
        13: .line 70
            aload 0 /* this */
            aload 1 /* in */
            invokevirtual android.os.Parcel.readInt:()I
            putfield android.app.admin.PasswordMetrics.lowerCase:I
        14: .line 71
            aload 0 /* this */
            aload 1 /* in */
            invokevirtual android.os.Parcel.readInt:()I
            putfield android.app.admin.PasswordMetrics.numeric:I
        15: .line 72
            aload 0 /* this */
            aload 1 /* in */
            invokevirtual android.os.Parcel.readInt:()I
            putfield android.app.admin.PasswordMetrics.symbols:I
        16: .line 73
            aload 0 /* this */
            aload 1 /* in */
            invokevirtual android.os.Parcel.readInt:()I
            putfield android.app.admin.PasswordMetrics.nonLetter:I
        17: .line 74
            return
        end local 1 // android.os.Parcel in
        end local 0 // android.app.admin.PasswordMetrics this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   18     0  this  Landroid/app/admin/PasswordMetrics;
            0   18     1    in  Landroid/os/Parcel;
    MethodParameters:
      Name  Flags
      in    

  public boolean isDefault();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.app.admin.PasswordMetrics this
         0: .line 77
            aload 0 /* this */
            getfield android.app.admin.PasswordMetrics.quality:I
            ifne 4
         1: .line 78
            aload 0 /* this */
            getfield android.app.admin.PasswordMetrics.length:I
            ifne 4
            aload 0 /* this */
            getfield android.app.admin.PasswordMetrics.letters:I
            ifne 4
            aload 0 /* this */
            getfield android.app.admin.PasswordMetrics.upperCase:I
            ifne 4
            aload 0 /* this */
            getfield android.app.admin.PasswordMetrics.lowerCase:I
            ifne 4
         2: .line 79
            aload 0 /* this */
            getfield android.app.admin.PasswordMetrics.numeric:I
            ifne 4
            aload 0 /* this */
            getfield android.app.admin.PasswordMetrics.symbols:I
            ifne 4
            aload 0 /* this */
            getfield android.app.admin.PasswordMetrics.nonLetter:I
            ifne 4
         3: .line 77
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         4: iconst_0
            ireturn
        end local 0 // android.app.admin.PasswordMetrics this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Landroid/app/admin/PasswordMetrics;

  public int describeContents();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.app.admin.PasswordMetrics this
         0: .line 84
            iconst_0
            ireturn
        end local 0 // android.app.admin.PasswordMetrics this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/app/admin/PasswordMetrics;

  public void writeToParcel(android.os.Parcel, int);
    descriptor: (Landroid/os/Parcel;I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // android.app.admin.PasswordMetrics this
        start local 1 // android.os.Parcel dest
        start local 2 // int flags
         0: .line 89
            aload 1 /* dest */
            aload 0 /* this */
            getfield android.app.admin.PasswordMetrics.quality:I
            invokevirtual android.os.Parcel.writeInt:(I)V
         1: .line 90
            aload 1 /* dest */
            aload 0 /* this */
            getfield android.app.admin.PasswordMetrics.length:I
            invokevirtual android.os.Parcel.writeInt:(I)V
         2: .line 91
            aload 1 /* dest */
            aload 0 /* this */
            getfield android.app.admin.PasswordMetrics.letters:I
            invokevirtual android.os.Parcel.writeInt:(I)V
         3: .line 92
            aload 1 /* dest */
            aload 0 /* this */
            getfield android.app.admin.PasswordMetrics.upperCase:I
            invokevirtual android.os.Parcel.writeInt:(I)V
         4: .line 93
            aload 1 /* dest */
            aload 0 /* this */
            getfield android.app.admin.PasswordMetrics.lowerCase:I
            invokevirtual android.os.Parcel.writeInt:(I)V
         5: .line 94
            aload 1 /* dest */
            aload 0 /* this */
            getfield android.app.admin.PasswordMetrics.numeric:I
            invokevirtual android.os.Parcel.writeInt:(I)V
         6: .line 95
            aload 1 /* dest */
            aload 0 /* this */
            getfield android.app.admin.PasswordMetrics.symbols:I
            invokevirtual android.os.Parcel.writeInt:(I)V
         7: .line 96
            aload 1 /* dest */
            aload 0 /* this */
            getfield android.app.admin.PasswordMetrics.nonLetter:I
            invokevirtual android.os.Parcel.writeInt:(I)V
         8: .line 97
            return
        end local 2 // int flags
        end local 1 // android.os.Parcel dest
        end local 0 // android.app.admin.PasswordMetrics this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    9     0   this  Landroid/app/admin/PasswordMetrics;
            0    9     1   dest  Landroid/os/Parcel;
            0    9     2  flags  I
    MethodParameters:
       Name  Flags
      dest   
      flags  

  public static android.app.admin.PasswordMetrics computeForPassword(java.lang.String);
    descriptor: (Ljava/lang/String;)Landroid/app/admin/PasswordMetrics;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=10, locals=11, args_size=1
        start local 0 // java.lang.String password
         0: .line 112
            iconst_0
            istore 1 /* letters */
        start local 1 // int letters
         1: .line 113
            iconst_0
            istore 2 /* upperCase */
        start local 2 // int upperCase
         2: .line 114
            iconst_0
            istore 3 /* lowerCase */
        start local 3 // int lowerCase
         3: .line 115
            iconst_0
            istore 4 /* numeric */
        start local 4 // int numeric
         4: .line 116
            iconst_0
            istore 5 /* symbols */
        start local 5 // int symbols
         5: .line 117
            iconst_0
            istore 6 /* nonLetter */
        start local 6 // int nonLetter
         6: .line 118
            aload 0 /* password */
            invokevirtual java.lang.String.length:()I
            istore 7 /* length */
        start local 7 // int length
         7: .line 119
            iconst_0
            istore 8 /* i */
        start local 8 // int i
         8: goto 22
         9: .line 120
      StackMap locals: java.lang.String int int int int int int int int
      StackMap stack:
            aload 0 /* password */
            iload 8 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            invokestatic android.app.admin.PasswordMetrics.categoryChar:(C)I
            tableswitch { // 0 - 3
                    0: 10
                    1: 13
                    2: 16
                    3: 19
              default: 21
          }
        10: .line 122
      StackMap locals:
      StackMap stack:
            iinc 1 /* letters */ 1
        11: .line 123
            iinc 3 /* lowerCase */ 1
        12: .line 124
            goto 21
        13: .line 126
      StackMap locals:
      StackMap stack:
            iinc 1 /* letters */ 1
        14: .line 127
            iinc 2 /* upperCase */ 1
        15: .line 128
            goto 21
        16: .line 130
      StackMap locals:
      StackMap stack:
            iinc 4 /* numeric */ 1
        17: .line 131
            iinc 6 /* nonLetter */ 1
        18: .line 132
            goto 21
        19: .line 134
      StackMap locals:
      StackMap stack:
            iinc 5 /* symbols */ 1
        20: .line 135
            iinc 6 /* nonLetter */ 1
        21: .line 119
      StackMap locals:
      StackMap stack:
            iinc 8 /* i */ 1
      StackMap locals:
      StackMap stack:
        22: iload 8 /* i */
            iload 7 /* length */
            if_icmplt 9
        end local 8 // int i
        23: .line 141
            iload 4 /* numeric */
            ifle 24
            iconst_1
            goto 25
      StackMap locals:
      StackMap stack:
        24: iconst_0
      StackMap locals:
      StackMap stack: int
        25: istore 8 /* hasNumeric */
        start local 8 // boolean hasNumeric
        26: .line 142
            iload 1 /* letters */
            iload 5 /* symbols */
            iadd
            ifle 27
            iconst_1
            goto 28
      StackMap locals: int
      StackMap stack:
        27: iconst_0
      StackMap locals:
      StackMap stack: int
        28: istore 9 /* hasNonNumeric */
        start local 9 // boolean hasNonNumeric
        29: .line 144
            iload 9 /* hasNonNumeric */
            ifeq 32
            iload 8 /* hasNumeric */
            ifeq 32
        30: .line 145
            ldc 327680
            istore 10 /* quality */
        start local 10 // int quality
        31: .line 146
            goto 42
        end local 10 // int quality
      StackMap locals: int
      StackMap stack:
        32: iload 9 /* hasNonNumeric */
            ifeq 35
        33: .line 147
            ldc 262144
            istore 10 /* quality */
        start local 10 // int quality
        34: .line 148
            goto 42
        end local 10 // int quality
      StackMap locals:
      StackMap stack:
        35: iload 8 /* hasNumeric */
            ifeq 41
        36: .line 149
            aload 0 /* password */
            invokestatic android.app.admin.PasswordMetrics.maxLengthSequence:(Ljava/lang/String;)I
            iconst_3
            if_icmple 38
        37: .line 150
            ldc 131072
            goto 39
        38: .line 151
      StackMap locals:
      StackMap stack:
            ldc 196608
        39: .line 149
      StackMap locals:
      StackMap stack: int
            istore 10 /* quality */
        start local 10 // int quality
        40: .line 152
            goto 42
        end local 10 // int quality
        41: .line 153
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 10 /* quality */
        start local 10 // int quality
        42: .line 156
      StackMap locals: int
      StackMap stack:
            new android.app.admin.PasswordMetrics
            dup
        43: .line 157
            iload 10 /* quality */
            iload 7 /* length */
            iload 1 /* letters */
            iload 2 /* upperCase */
            iload 3 /* lowerCase */
            iload 4 /* numeric */
            iload 5 /* symbols */
            iload 6 /* nonLetter */
        44: .line 156
            invokespecial android.app.admin.PasswordMetrics.<init>:(IIIIIIII)V
            areturn
        end local 10 // int quality
        end local 9 // boolean hasNonNumeric
        end local 8 // boolean hasNumeric
        end local 7 // int length
        end local 6 // int nonLetter
        end local 5 // int symbols
        end local 4 // int numeric
        end local 3 // int lowerCase
        end local 2 // int upperCase
        end local 1 // int letters
        end local 0 // java.lang.String password
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   45     0       password  Ljava/lang/String;
            1   45     1        letters  I
            2   45     2      upperCase  I
            3   45     3      lowerCase  I
            4   45     4        numeric  I
            5   45     5        symbols  I
            6   45     6      nonLetter  I
            7   45     7         length  I
            8   23     8              i  I
           26   45     8     hasNumeric  Z
           29   45     9  hasNonNumeric  Z
           31   32    10        quality  I
           34   35    10        quality  I
           40   41    10        quality  I
           42   45    10        quality  I
    MethodParameters:
          Name  Flags
      password  

  public boolean equals(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // android.app.admin.PasswordMetrics this
        start local 1 // java.lang.Object other
         0: .line 162
            aload 1 /* other */
            instanceof android.app.admin.PasswordMetrics
            ifne 2
         1: .line 163
            iconst_0
            ireturn
         2: .line 165
      StackMap locals:
      StackMap stack:
            aload 1 /* other */
            checkcast android.app.admin.PasswordMetrics
            astore 2 /* o */
        start local 2 // android.app.admin.PasswordMetrics o
         3: .line 166
            aload 0 /* this */
            getfield android.app.admin.PasswordMetrics.quality:I
            aload 2 /* o */
            getfield android.app.admin.PasswordMetrics.quality:I
            if_icmpne 12
         4: .line 167
            aload 0 /* this */
            getfield android.app.admin.PasswordMetrics.length:I
            aload 2 /* o */
            getfield android.app.admin.PasswordMetrics.length:I
            if_icmpne 12
         5: .line 168
            aload 0 /* this */
            getfield android.app.admin.PasswordMetrics.letters:I
            aload 2 /* o */
            getfield android.app.admin.PasswordMetrics.letters:I
            if_icmpne 12
         6: .line 169
            aload 0 /* this */
            getfield android.app.admin.PasswordMetrics.upperCase:I
            aload 2 /* o */
            getfield android.app.admin.PasswordMetrics.upperCase:I
            if_icmpne 12
         7: .line 170
            aload 0 /* this */
            getfield android.app.admin.PasswordMetrics.lowerCase:I
            aload 2 /* o */
            getfield android.app.admin.PasswordMetrics.lowerCase:I
            if_icmpne 12
         8: .line 171
            aload 0 /* this */
            getfield android.app.admin.PasswordMetrics.numeric:I
            aload 2 /* o */
            getfield android.app.admin.PasswordMetrics.numeric:I
            if_icmpne 12
         9: .line 172
            aload 0 /* this */
            getfield android.app.admin.PasswordMetrics.symbols:I
            aload 2 /* o */
            getfield android.app.admin.PasswordMetrics.symbols:I
            if_icmpne 12
        10: .line 173
            aload 0 /* this */
            getfield android.app.admin.PasswordMetrics.nonLetter:I
            aload 2 /* o */
            getfield android.app.admin.PasswordMetrics.nonLetter:I
            if_icmpne 12
        11: .line 166
            iconst_1
            ireturn
      StackMap locals: android.app.admin.PasswordMetrics
      StackMap stack:
        12: iconst_0
            ireturn
        end local 2 // android.app.admin.PasswordMetrics o
        end local 1 // java.lang.Object other
        end local 0 // android.app.admin.PasswordMetrics this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   13     0   this  Landroid/app/admin/PasswordMetrics;
            0   13     1  other  Ljava/lang/Object;
            3   13     2      o  Landroid/app/admin/PasswordMetrics;
    MethodParameters:
       Name  Flags
      other  

  public static int maxLengthSequence(java.lang.String);
    descriptor: (Ljava/lang/String;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=11, args_size=1
        start local 0 // java.lang.String string
         0: .line 194
            aload 0 /* string */
            invokevirtual java.lang.String.length:()I
            ifne 1
            iconst_0
            ireturn
         1: .line 195
      StackMap locals:
      StackMap stack:
            aload 0 /* string */
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            istore 1 /* previousChar */
        start local 1 // char previousChar
         2: .line 196
            iload 1 /* previousChar */
            invokestatic android.app.admin.PasswordMetrics.categoryChar:(C)I
            istore 2 /* category */
        start local 2 // int category
         3: .line 197
            iconst_0
            istore 3 /* diff */
        start local 3 // int diff
         4: .line 198
            iconst_0
            istore 4 /* hasDiff */
        start local 4 // boolean hasDiff
         5: .line 199
            iconst_0
            istore 5 /* maxLength */
        start local 5 // int maxLength
         6: .line 200
            iconst_0
            istore 6 /* startSequence */
        start local 6 // int startSequence
         7: .line 201
            iconst_1
            istore 7 /* current */
        start local 7 // int current
         8: goto 25
         9: .line 202
      StackMap locals: java.lang.String int int int int int int int
      StackMap stack:
            aload 0 /* string */
            iload 7 /* current */
            invokevirtual java.lang.String.charAt:(I)C
            istore 8 /* currentChar */
        start local 8 // char currentChar
        10: .line 203
            iload 8 /* currentChar */
            invokestatic android.app.admin.PasswordMetrics.categoryChar:(C)I
            istore 9 /* categoryCurrent */
        start local 9 // int categoryCurrent
        11: .line 204
            iload 8 /* currentChar */
            iload 1 /* previousChar */
            isub
            istore 10 /* currentDiff */
        start local 10 // int currentDiff
        12: .line 205
            iload 9 /* categoryCurrent */
            iload 2 /* category */
            if_icmpne 13
            iload 10 /* currentDiff */
            invokestatic java.lang.Math.abs:(I)I
            iload 2 /* category */
            invokestatic android.app.admin.PasswordMetrics.maxDiffCategory:(I)I
            if_icmple 18
        13: .line 206
      StackMap locals: int int int
      StackMap stack:
            iload 5 /* maxLength */
            iload 7 /* current */
            iload 6 /* startSequence */
            isub
            invokestatic java.lang.Math.max:(II)I
            istore 5 /* maxLength */
        14: .line 207
            iload 7 /* current */
            istore 6 /* startSequence */
        15: .line 208
            iconst_0
            istore 4 /* hasDiff */
        16: .line 209
            iload 9 /* categoryCurrent */
            istore 2 /* category */
        17: .line 210
            goto 23
        18: .line 212
      StackMap locals:
      StackMap stack:
            iload 4 /* hasDiff */
            ifeq 21
            iload 10 /* currentDiff */
            iload 3 /* diff */
            if_icmpeq 21
        19: .line 213
            iload 5 /* maxLength */
            iload 7 /* current */
            iload 6 /* startSequence */
            isub
            invokestatic java.lang.Math.max:(II)I
            istore 5 /* maxLength */
        20: .line 214
            iload 7 /* current */
            iconst_1
            isub
            istore 6 /* startSequence */
        21: .line 216
      StackMap locals:
      StackMap stack:
            iload 10 /* currentDiff */
            istore 3 /* diff */
        22: .line 217
            iconst_1
            istore 4 /* hasDiff */
        23: .line 219
      StackMap locals:
      StackMap stack:
            iload 8 /* currentChar */
            istore 1 /* previousChar */
        end local 10 // int currentDiff
        end local 9 // int categoryCurrent
        end local 8 // char currentChar
        24: .line 201
            iinc 7 /* current */ 1
      StackMap locals:
      StackMap stack:
        25: iload 7 /* current */
            aload 0 /* string */
            invokevirtual java.lang.String.length:()I
            if_icmplt 9
        end local 7 // int current
        26: .line 221
            iload 5 /* maxLength */
            aload 0 /* string */
            invokevirtual java.lang.String.length:()I
            iload 6 /* startSequence */
            isub
            invokestatic java.lang.Math.max:(II)I
            istore 5 /* maxLength */
        27: .line 222
            iload 5 /* maxLength */
            ireturn
        end local 6 // int startSequence
        end local 5 // int maxLength
        end local 4 // boolean hasDiff
        end local 3 // int diff
        end local 2 // int category
        end local 1 // char previousChar
        end local 0 // java.lang.String string
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   28     0           string  Ljava/lang/String;
            2   28     1     previousChar  C
            3   28     2         category  I
            4   28     3             diff  I
            5   28     4          hasDiff  Z
            6   28     5        maxLength  I
            7   28     6    startSequence  I
            8   26     7          current  I
           10   24     8      currentChar  C
           11   24     9  categoryCurrent  I
           12   24    10      currentDiff  I
    MethodParameters:
        Name  Flags
      string  

  private static int categoryChar(char);
    descriptor: (C)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // char c
         0: .line 240
            bipush 97
            iload 0 /* c */
            if_icmpgt 1
            iload 0 /* c */
            bipush 122
            if_icmpgt 1
            iconst_0
            ireturn
         1: .line 241
      StackMap locals:
      StackMap stack:
            bipush 65
            iload 0 /* c */
            if_icmpgt 2
            iload 0 /* c */
            bipush 90
            if_icmpgt 2
            iconst_1
            ireturn
         2: .line 242
      StackMap locals:
      StackMap stack:
            bipush 48
            iload 0 /* c */
            if_icmpgt 3
            iload 0 /* c */
            bipush 57
            if_icmpgt 3
            iconst_2
            ireturn
         3: .line 243
      StackMap locals:
      StackMap stack:
            iconst_3
            ireturn
        end local 0 // char c
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0     c  C
    MethodParameters:
      Name  Flags
      c     

  private static int maxDiffCategory(int);
    descriptor: (I)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // int category
         0: .line 247
            iload 0 /* category */
            tableswitch { // 0 - 2
                    0: 1
                    1: 1
                    2: 2
              default: 3
          }
         1: .line 250
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
         2: .line 252
      StackMap locals:
      StackMap stack:
            bipush 10
            ireturn
         3: .line 254
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 0 // int category
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0  category  I
    MethodParameters:
          Name  Flags
      category  
}
SourceFile: "PasswordMetrics.java"
NestMembers:
  android.app.admin.PasswordMetrics$1  android.app.admin.PasswordMetrics$CharacterCatagory
InnerClasses:
  android.app.admin.PasswordMetrics$1
  private abstract CharacterCatagory = android.app.admin.PasswordMetrics$CharacterCatagory of android.app.admin.PasswordMetrics
  public abstract Creator = android.os.Parcelable$Creator of android.os.Parcelable