public final class android.hardware.camera2.params.LensShadingMap
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: android.hardware.camera2.params.LensShadingMap
  super_class: java.lang.Object
{
  public static final float MINIMUM_GAIN_FACTOR;
    descriptor: F
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 1.0

  private final int mRows;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final int mColumns;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final float[] mElements;
    descriptor: [F
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  public void <init>(float[], int, int);
    descriptor: ([FII)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // android.hardware.camera2.params.LensShadingMap this
        start local 1 // float[] elements
        start local 2 // int rows
        start local 3 // int columns
         0: .line 61
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 63
            aload 0 /* this */
            iload 2 /* rows */
            ldc "rows must be positive"
            invokestatic com.android.internal.util.Preconditions.checkArgumentPositive:(ILjava/lang/String;)I
            putfield android.hardware.camera2.params.LensShadingMap.mRows:I
         2: .line 64
            aload 0 /* this */
            iload 3 /* columns */
            ldc "columns must be positive"
            invokestatic com.android.internal.util.Preconditions.checkArgumentPositive:(ILjava/lang/String;)I
            putfield android.hardware.camera2.params.LensShadingMap.mColumns:I
         3: .line 65
            aload 0 /* this */
            aload 1 /* elements */
            ldc "elements must not be null"
            invokestatic com.android.internal.util.Preconditions.checkNotNull:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast float[]
            putfield android.hardware.camera2.params.LensShadingMap.mElements:[F
         4: .line 67
            aload 1 /* elements */
            arraylength
            aload 0 /* this */
            invokevirtual android.hardware.camera2.params.LensShadingMap.getGainFactorCount:()I
            if_icmpeq 8
         5: .line 68
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "elements must be "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            invokevirtual android.hardware.camera2.params.LensShadingMap.getGainFactorCount:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
         6: .line 69
            ldc " length, received "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* elements */
            arraylength
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         7: .line 68
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 73
      StackMap locals: android.hardware.camera2.params.LensShadingMap float[] int int
      StackMap stack:
            aload 1 /* elements */
            fconst_1
            ldc 3.4028235E38
            ldc "elements"
            invokestatic com.android.internal.util.Preconditions.checkArrayElementsInRange:([FFFLjava/lang/String;)[F
            pop
         9: .line 74
            return
        end local 3 // int columns
        end local 2 // int rows
        end local 1 // float[] elements
        end local 0 // android.hardware.camera2.params.LensShadingMap this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   10     0      this  Landroid/hardware/camera2/params/LensShadingMap;
            0   10     1  elements  [F
            0   10     2      rows  I
            0   10     3   columns  I
    MethodParameters:
          Name  Flags
      elements  final
      rows      final
      columns   final

  public int getRowCount();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.hardware.camera2.params.LensShadingMap this
         0: .line 80
            aload 0 /* this */
            getfield android.hardware.camera2.params.LensShadingMap.mRows:I
            ireturn
        end local 0 // android.hardware.camera2.params.LensShadingMap this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/hardware/camera2/params/LensShadingMap;

  public int getColumnCount();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.hardware.camera2.params.LensShadingMap this
         0: .line 87
            aload 0 /* this */
            getfield android.hardware.camera2.params.LensShadingMap.mColumns:I
            ireturn
        end local 0 // android.hardware.camera2.params.LensShadingMap this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/hardware/camera2/params/LensShadingMap;

  public int getGainFactorCount();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // android.hardware.camera2.params.LensShadingMap this
         0: .line 97
            aload 0 /* this */
            getfield android.hardware.camera2.params.LensShadingMap.mRows:I
            aload 0 /* this */
            getfield android.hardware.camera2.params.LensShadingMap.mColumns:I
            imul
            iconst_4
            imul
            ireturn
        end local 0 // android.hardware.camera2.params.LensShadingMap this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/hardware/camera2/params/LensShadingMap;

  public float getGainFactor(int, int, int);
    descriptor: (III)F
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // android.hardware.camera2.params.LensShadingMap this
        start local 1 // int colorChannel
        start local 2 // int column
        start local 3 // int row
         0: .line 128
            iload 1 /* colorChannel */
            iflt 1
            iload 1 /* colorChannel */
            iconst_4
            if_icmple 2
         1: .line 129
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "colorChannel out of range"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 130
      StackMap locals:
      StackMap stack:
            iload 2 /* column */
            iflt 3
            iload 2 /* column */
            aload 0 /* this */
            getfield android.hardware.camera2.params.LensShadingMap.mColumns:I
            if_icmplt 4
         3: .line 131
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "column out of range"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 132
      StackMap locals:
      StackMap stack:
            iload 3 /* row */
            iflt 5
            iload 3 /* row */
            aload 0 /* this */
            getfield android.hardware.camera2.params.LensShadingMap.mRows:I
            if_icmplt 6
         5: .line 133
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "row out of range"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 136
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.hardware.camera2.params.LensShadingMap.mElements:[F
            iload 1 /* colorChannel */
            iload 3 /* row */
            aload 0 /* this */
            getfield android.hardware.camera2.params.LensShadingMap.mColumns:I
            imul
            iload 2 /* column */
            iadd
            iconst_4
            imul
            iadd
            faload
            freturn
        end local 3 // int row
        end local 2 // int column
        end local 1 // int colorChannel
        end local 0 // android.hardware.camera2.params.LensShadingMap this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    7     0          this  Landroid/hardware/camera2/params/LensShadingMap;
            0    7     1  colorChannel  I
            0    7     2        column  I
            0    7     3           row  I
    MethodParameters:
              Name  Flags
      colorChannel  final
      column        final
      row           final

  public android.hardware.camera2.params.RggbChannelVector getGainFactorVector(int, int);
    descriptor: (II)Landroid/hardware/camera2/params/RggbChannelVector;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=8, args_size=3
        start local 0 // android.hardware.camera2.params.LensShadingMap this
        start local 1 // int column
        start local 2 // int row
         0: .line 156
            iload 1 /* column */
            iflt 1
            iload 1 /* column */
            aload 0 /* this */
            getfield android.hardware.camera2.params.LensShadingMap.mColumns:I
            if_icmplt 2
         1: .line 157
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "column out of range"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 158
      StackMap locals:
      StackMap stack:
            iload 2 /* row */
            iflt 3
            iload 2 /* row */
            aload 0 /* this */
            getfield android.hardware.camera2.params.LensShadingMap.mRows:I
            if_icmplt 4
         3: .line 159
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "row out of range"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 162
      StackMap locals:
      StackMap stack:
            iload 2 /* row */
            aload 0 /* this */
            getfield android.hardware.camera2.params.LensShadingMap.mColumns:I
            imul
            iload 1 /* column */
            iadd
            iconst_4
            imul
            istore 3 /* offset */
        start local 3 // int offset
         5: .line 165
            aload 0 /* this */
            getfield android.hardware.camera2.params.LensShadingMap.mElements:[F
            iconst_0
            iload 3 /* offset */
            iadd
            faload
         6: .line 164
            fstore 4 /* red */
        start local 4 // float red
         7: .line 167
            aload 0 /* this */
            getfield android.hardware.camera2.params.LensShadingMap.mElements:[F
            iconst_1
            iload 3 /* offset */
            iadd
            faload
         8: .line 166
            fstore 5 /* greenEven */
        start local 5 // float greenEven
         9: .line 169
            aload 0 /* this */
            getfield android.hardware.camera2.params.LensShadingMap.mElements:[F
            iconst_2
            iload 3 /* offset */
            iadd
            faload
        10: .line 168
            fstore 6 /* greenOdd */
        start local 6 // float greenOdd
        11: .line 171
            aload 0 /* this */
            getfield android.hardware.camera2.params.LensShadingMap.mElements:[F
            iconst_3
            iload 3 /* offset */
            iadd
            faload
        12: .line 170
            fstore 7 /* blue */
        start local 7 // float blue
        13: .line 173
            new android.hardware.camera2.params.RggbChannelVector
            dup
            fload 4 /* red */
            fload 5 /* greenEven */
            fload 6 /* greenOdd */
            fload 7 /* blue */
            invokespecial android.hardware.camera2.params.RggbChannelVector.<init>:(FFFF)V
            areturn
        end local 7 // float blue
        end local 6 // float greenOdd
        end local 5 // float greenEven
        end local 4 // float red
        end local 3 // int offset
        end local 2 // int row
        end local 1 // int column
        end local 0 // android.hardware.camera2.params.LensShadingMap this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   14     0       this  Landroid/hardware/camera2/params/LensShadingMap;
            0   14     1     column  I
            0   14     2        row  I
            5   14     3     offset  I
            7   14     4        red  F
            9   14     5  greenEven  F
           11   14     6   greenOdd  F
           13   14     7       blue  F
    MethodParameters:
        Name  Flags
      column  final
      row     final

  public void copyGainFactors(float[], int);
    descriptor: ([FI)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // android.hardware.camera2.params.LensShadingMap this
        start local 1 // float[] destination
        start local 2 // int offset
         0: .line 197
            iload 2 /* offset */
            ldc "offset must not be negative"
            invokestatic com.android.internal.util.Preconditions.checkArgumentNonnegative:(ILjava/lang/String;)I
            pop
         1: .line 198
            aload 1 /* destination */
            ldc "destination must not be null"
            invokestatic com.android.internal.util.Preconditions.checkNotNull:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 199
            aload 1 /* destination */
            arraylength
            iload 2 /* offset */
            iadd
            aload 0 /* this */
            invokevirtual android.hardware.camera2.params.LensShadingMap.getGainFactorCount:()I
            if_icmpge 4
         3: .line 200
            new java.lang.ArrayIndexOutOfBoundsException
            dup
            ldc "destination too small to fit elements"
            invokespecial java.lang.ArrayIndexOutOfBoundsException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 203
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.hardware.camera2.params.LensShadingMap.mElements:[F
            iconst_0
            aload 1 /* destination */
            iload 2 /* offset */
            aload 0 /* this */
            invokevirtual android.hardware.camera2.params.LensShadingMap.getGainFactorCount:()I
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         5: .line 204
            return
        end local 2 // int offset
        end local 1 // float[] destination
        end local 0 // android.hardware.camera2.params.LensShadingMap this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    6     0         this  Landroid/hardware/camera2/params/LensShadingMap;
            0    6     1  destination  [F
            0    6     2       offset  I
    MethodParameters:
             Name  Flags
      destination  final
      offset       final

  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.hardware.camera2.params.LensShadingMap this
        start local 1 // java.lang.Object obj
         0: .line 216
            aload 1 /* obj */
            ifnonnull 2
         1: .line 217
            iconst_0
            ireturn
         2: .line 219
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* obj */
            if_acmpne 4
         3: .line 220
            iconst_1
            ireturn
         4: .line 222
      StackMap locals:
      StackMap stack:
            aload 1 /* obj */
            instanceof android.hardware.camera2.params.LensShadingMap
            ifeq 11
         5: .line 223
            aload 1 /* obj */
            checkcast android.hardware.camera2.params.LensShadingMap
            astore 2 /* other */
        start local 2 // android.hardware.camera2.params.LensShadingMap other
         6: .line 224
            aload 0 /* this */
            getfield android.hardware.camera2.params.LensShadingMap.mRows:I
            aload 2 /* other */
            getfield android.hardware.camera2.params.LensShadingMap.mRows:I
            if_icmpne 10
         7: .line 225
            aload 0 /* this */
            getfield android.hardware.camera2.params.LensShadingMap.mColumns:I
            aload 2 /* other */
            getfield android.hardware.camera2.params.LensShadingMap.mColumns:I
            if_icmpne 10
         8: .line 226
            aload 0 /* this */
            getfield android.hardware.camera2.params.LensShadingMap.mElements:[F
            aload 2 /* other */
            getfield android.hardware.camera2.params.LensShadingMap.mElements:[F
            invokestatic java.util.Arrays.equals:([F[F)Z
            ifeq 10
         9: .line 224
            iconst_1
            ireturn
      StackMap locals: android.hardware.camera2.params.LensShadingMap
      StackMap stack:
        10: iconst_0
            ireturn
        end local 2 // android.hardware.camera2.params.LensShadingMap other
        11: .line 228
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 1 // java.lang.Object obj
        end local 0 // android.hardware.camera2.params.LensShadingMap this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   12     0   this  Landroid/hardware/camera2/params/LensShadingMap;
            0   12     1    obj  Ljava/lang/Object;
            6   11     2  other  Landroid/hardware/camera2/params/LensShadingMap;
    MethodParameters:
      Name  Flags
      obj   final

  public int hashCode();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // android.hardware.camera2.params.LensShadingMap this
         0: .line 236
            aload 0 /* this */
            getfield android.hardware.camera2.params.LensShadingMap.mElements:[F
            invokestatic android.hardware.camera2.utils.HashCodeHelpers.hashCode:([F)I
            istore 1 /* elemsHash */
        start local 1 // int elemsHash
         1: .line 237
            iconst_3
            newarray 10
            dup
            iconst_0
            aload 0 /* this */
            getfield android.hardware.camera2.params.LensShadingMap.mRows:I
            iastore
            dup
            iconst_1
            aload 0 /* this */
            getfield android.hardware.camera2.params.LensShadingMap.mColumns:I
            iastore
            dup
            iconst_2
            iload 1 /* elemsHash */
            iastore
            invokestatic android.hardware.camera2.utils.HashCodeHelpers.hashCode:([I)I
            ireturn
        end local 1 // int elemsHash
        end local 0 // android.hardware.camera2.params.LensShadingMap this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       this  Landroid/hardware/camera2/params/LensShadingMap;
            1    2     1  elemsHash  I

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=7, args_size=1
        start local 0 // android.hardware.camera2.params.LensShadingMap this
         0: .line 253
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 1 /* str */
        start local 1 // java.lang.StringBuilder str
         1: .line 254
            aload 1 /* str */
            ldc "LensShadingMap{"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         2: .line 256
            iconst_4
            anewarray java.lang.String
            dup
            iconst_0
            ldc "R:("
            aastore
            dup
            iconst_1
            ldc "G_even:("
            aastore
            dup
            iconst_2
            ldc "G_odd:("
            aastore
            dup
            iconst_3
            ldc "B:("
            aastore
            astore 2 /* channelPrefix */
        start local 2 // java.lang.String[] channelPrefix
         3: .line 258
            iconst_0
            istore 3 /* ch */
        start local 3 // int ch
         4: goto 26
         5: .line 259
      StackMap locals: java.lang.StringBuilder java.lang.String[] int
      StackMap stack:
            aload 1 /* str */
            aload 2 /* channelPrefix */
            iload 3 /* ch */
            aaload
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         6: .line 261
            iconst_0
            istore 4 /* r */
        start local 4 // int r
         7: goto 21
         8: .line 262
      StackMap locals: int
      StackMap stack:
            aload 1 /* str */
            ldc "["
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         9: .line 263
            iconst_0
            istore 5 /* c */
        start local 5 // int c
        10: goto 16
        11: .line 264
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            iload 3 /* ch */
            iload 5 /* c */
            iload 4 /* r */
            invokevirtual android.hardware.camera2.params.LensShadingMap.getGainFactor:(III)F
            fstore 6 /* gain */
        start local 6 // float gain
        12: .line 265
            aload 1 /* str */
            fload 6 /* gain */
            invokevirtual java.lang.StringBuilder.append:(F)Ljava/lang/StringBuilder;
            pop
        13: .line 266
            iload 5 /* c */
            aload 0 /* this */
            getfield android.hardware.camera2.params.LensShadingMap.mColumns:I
            iconst_1
            isub
            if_icmpge 15
        14: .line 267
            aload 1 /* str */
            ldc ", "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        end local 6 // float gain
        15: .line 263
      StackMap locals:
      StackMap stack:
            iinc 5 /* c */ 1
      StackMap locals:
      StackMap stack:
        16: iload 5 /* c */
            aload 0 /* this */
            getfield android.hardware.camera2.params.LensShadingMap.mColumns:I
            if_icmplt 11
        end local 5 // int c
        17: .line 270
            aload 1 /* str */
            ldc "]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        18: .line 271
            iload 4 /* r */
            aload 0 /* this */
            getfield android.hardware.camera2.params.LensShadingMap.mRows:I
            iconst_1
            isub
            if_icmpge 20
        19: .line 272
            aload 1 /* str */
            ldc ", "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        20: .line 261
      StackMap locals:
      StackMap stack:
            iinc 4 /* r */ 1
      StackMap locals:
      StackMap stack:
        21: iload 4 /* r */
            aload 0 /* this */
            getfield android.hardware.camera2.params.LensShadingMap.mRows:I
            if_icmplt 8
        end local 4 // int r
        22: .line 276
            aload 1 /* str */
            ldc ")"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        23: .line 277
            iload 3 /* ch */
            iconst_3
            if_icmpge 25
        24: .line 278
            aload 1 /* str */
            ldc ", "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        25: .line 258
      StackMap locals:
      StackMap stack:
            iinc 3 /* ch */ 1
      StackMap locals:
      StackMap stack:
        26: iload 3 /* ch */
            iconst_4
            if_icmplt 5
        end local 3 // int ch
        27: .line 282
            aload 1 /* str */
            ldc "}"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        28: .line 283
            aload 1 /* str */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 2 // java.lang.String[] channelPrefix
        end local 1 // java.lang.StringBuilder str
        end local 0 // android.hardware.camera2.params.LensShadingMap this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   29     0           this  Landroid/hardware/camera2/params/LensShadingMap;
            1   29     1            str  Ljava/lang/StringBuilder;
            3   29     2  channelPrefix  [Ljava/lang/String;
            4   27     3             ch  I
            7   22     4              r  I
           10   17     5              c  I
           12   15     6           gain  F
}
SourceFile: "LensShadingMap.java"