class android.hardware.location.GeofenceHardwareImpl$1 extends android.os.Handler
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: android.hardware.location.GeofenceHardwareImpl$1
  super_class: android.os.Handler
{
  final android.hardware.location.GeofenceHardwareImpl this$0;
    descriptor: Landroid/hardware/location/GeofenceHardwareImpl;
    flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC

  void <init>(android.hardware.location.GeofenceHardwareImpl);
    descriptor: (Landroid/hardware/location/GeofenceHardwareImpl;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.hardware.location.GeofenceHardwareImpl$1 this
         0: .line 572
            aload 0 /* this */
            aload 1
            putfield android.hardware.location.GeofenceHardwareImpl$1.this$0:Landroid/hardware/location/GeofenceHardwareImpl;
            aload 0 /* this */
            invokespecial android.os.Handler.<init>:()V
            return
        end local 0 // android.hardware.location.GeofenceHardwareImpl$1 this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/hardware/location/GeofenceHardwareImpl$1;
    MethodParameters:
        Name  Flags
      this$0  final

  public void handleMessage(android.os.Message);
    descriptor: (Landroid/os/Message;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=8, args_size=2
        start local 0 // android.hardware.location.GeofenceHardwareImpl$1 this
        start local 1 // android.os.Message msg
         0: .line 578
            aload 1 /* msg */
            getfield android.os.Message.what:I
            tableswitch { // 1 - 6
                    1: 81
                    2: 1
                    3: 15
                    4: 55
                    5: 68
                    6: 103
              default: 119
          }
         1: .line 580
      StackMap locals:
      StackMap stack:
            aload 1 /* msg */
            getfield android.os.Message.arg1:I
            istore 2 /* geofenceId */
        start local 2 // int geofenceId
         2: .line 581
            aload 0 /* this */
            getfield android.hardware.location.GeofenceHardwareImpl$1.this$0:Landroid/hardware/location/GeofenceHardwareImpl;
            getfield android.hardware.location.GeofenceHardwareImpl.mGeofences:Landroid/util/SparseArray;
            dup
            astore 4
            monitorenter
         3: .line 582
            aload 0 /* this */
            getfield android.hardware.location.GeofenceHardwareImpl$1.this$0:Landroid/hardware/location/GeofenceHardwareImpl;
            getfield android.hardware.location.GeofenceHardwareImpl.mGeofences:Landroid/util/SparseArray;
            iload 2 /* geofenceId */
            invokevirtual android.util.SparseArray.get:(I)Ljava/lang/Object;
            checkcast android.hardware.location.IGeofenceHardwareCallback
            astore 3 /* callback */
        start local 3 // android.hardware.location.IGeofenceHardwareCallback callback
         4: .line 581
            aload 4
            monitorexit
         5: goto 8
        end local 3 // android.hardware.location.IGeofenceHardwareCallback callback
      StackMap locals: android.hardware.location.GeofenceHardwareImpl$1 android.os.Message int top android.util.SparseArray
      StackMap stack: java.lang.Throwable
         6: aload 4
            monitorexit
         7: athrow
        start local 3 // android.hardware.location.IGeofenceHardwareCallback callback
         8: .line 585
      StackMap locals: android.hardware.location.GeofenceHardwareImpl$1 android.os.Message int android.hardware.location.IGeofenceHardwareCallback
      StackMap stack:
            aload 3 /* callback */
            ifnull 13
         9: .line 587
            aload 3 /* callback */
            iload 2 /* geofenceId */
            aload 1 /* msg */
            getfield android.os.Message.arg2:I
            invokeinterface android.hardware.location.IGeofenceHardwareCallback.onGeofenceAdd:(II)V
        10: .line 588
            goto 13
      StackMap locals:
      StackMap stack: android.os.RemoteException
        11: astore 4 /* e */
        start local 4 // android.os.RemoteException e
        12: ldc "GeofenceHardwareImpl"
            new java.lang.StringBuilder
            dup
            ldc "Remote Exception:"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* e */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic android.util.Log.i:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        end local 4 // android.os.RemoteException e
        13: .line 590
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.hardware.location.GeofenceHardwareImpl$1.this$0:Landroid/hardware/location/GeofenceHardwareImpl;
            invokevirtual android.hardware.location.GeofenceHardwareImpl.releaseWakeLock:()V
        14: .line 591
            goto 119
        end local 3 // android.hardware.location.IGeofenceHardwareCallback callback
        end local 2 // int geofenceId
        15: .line 593
      StackMap locals:
      StackMap stack:
            aload 1 /* msg */
            getfield android.os.Message.arg1:I
            istore 2 /* geofenceId */
        start local 2 // int geofenceId
        16: .line 594
            aload 0 /* this */
            getfield android.hardware.location.GeofenceHardwareImpl$1.this$0:Landroid/hardware/location/GeofenceHardwareImpl;
            getfield android.hardware.location.GeofenceHardwareImpl.mGeofences:Landroid/util/SparseArray;
            dup
            astore 4
            monitorenter
        17: .line 595
            aload 0 /* this */
            getfield android.hardware.location.GeofenceHardwareImpl$1.this$0:Landroid/hardware/location/GeofenceHardwareImpl;
            getfield android.hardware.location.GeofenceHardwareImpl.mGeofences:Landroid/util/SparseArray;
            iload 2 /* geofenceId */
            invokevirtual android.util.SparseArray.get:(I)Ljava/lang/Object;
            checkcast android.hardware.location.IGeofenceHardwareCallback
            astore 3 /* callback */
        start local 3 // android.hardware.location.IGeofenceHardwareCallback callback
        18: .line 594
            aload 4
            monitorexit
        19: goto 22
        end local 3 // android.hardware.location.IGeofenceHardwareCallback callback
      StackMap locals: android.hardware.location.GeofenceHardwareImpl$1 android.os.Message int top android.util.SparseArray
      StackMap stack: java.lang.Throwable
        20: aload 4
            monitorexit
        21: athrow
        start local 3 // android.hardware.location.IGeofenceHardwareCallback callback
        22: .line 598
      StackMap locals: android.hardware.location.GeofenceHardwareImpl$1 android.os.Message int android.hardware.location.IGeofenceHardwareCallback
      StackMap stack:
            aload 3 /* callback */
            ifnull 53
        23: .line 600
            aload 3 /* callback */
            iload 2 /* geofenceId */
            aload 1 /* msg */
            getfield android.os.Message.arg2:I
            invokeinterface android.hardware.location.IGeofenceHardwareCallback.onGeofenceRemove:(II)V
        24: .line 601
            goto 26
      StackMap locals:
      StackMap stack: android.os.RemoteException
        25: pop
        26: .line 602
      StackMap locals:
      StackMap stack:
            aload 3 /* callback */
            invokeinterface android.hardware.location.IGeofenceHardwareCallback.asBinder:()Landroid/os/IBinder;
            astore 4 /* callbackBinder */
        start local 4 // android.os.IBinder callbackBinder
        27: .line 603
            iconst_0
            istore 5 /* callbackInUse */
        start local 5 // boolean callbackInUse
        28: .line 604
            aload 0 /* this */
            getfield android.hardware.location.GeofenceHardwareImpl$1.this$0:Landroid/hardware/location/GeofenceHardwareImpl;
            getfield android.hardware.location.GeofenceHardwareImpl.mGeofences:Landroid/util/SparseArray;
            dup
            astore 6
            monitorenter
        29: .line 605
            aload 0 /* this */
            getfield android.hardware.location.GeofenceHardwareImpl$1.this$0:Landroid/hardware/location/GeofenceHardwareImpl;
            getfield android.hardware.location.GeofenceHardwareImpl.mGeofences:Landroid/util/SparseArray;
            iload 2 /* geofenceId */
            invokevirtual android.util.SparseArray.remove:(I)V
        30: .line 608
            iconst_0
            istore 7 /* i */
        start local 7 // int i
        31: goto 36
        32: .line 609
      StackMap locals: android.hardware.location.GeofenceHardwareImpl$1 android.os.Message int android.hardware.location.IGeofenceHardwareCallback android.os.IBinder int android.util.SparseArray int
      StackMap stack:
            aload 0 /* this */
            getfield android.hardware.location.GeofenceHardwareImpl$1.this$0:Landroid/hardware/location/GeofenceHardwareImpl;
            getfield android.hardware.location.GeofenceHardwareImpl.mGeofences:Landroid/util/SparseArray;
            iload 7 /* i */
            invokevirtual android.util.SparseArray.valueAt:(I)Ljava/lang/Object;
            checkcast android.hardware.location.IGeofenceHardwareCallback
            invokeinterface android.hardware.location.IGeofenceHardwareCallback.asBinder:()Landroid/os/IBinder;
            aload 4 /* callbackBinder */
            if_acmpne 35
        33: .line 610
            iconst_1
            istore 5 /* callbackInUse */
        34: .line 611
            goto 37
        35: .line 608
      StackMap locals:
      StackMap stack:
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        36: iload 7 /* i */
            aload 0 /* this */
            getfield android.hardware.location.GeofenceHardwareImpl$1.this$0:Landroid/hardware/location/GeofenceHardwareImpl;
            getfield android.hardware.location.GeofenceHardwareImpl.mGeofences:Landroid/util/SparseArray;
            invokevirtual android.util.SparseArray.size:()I
            if_icmplt 32
        end local 7 // int i
        37: .line 604
      StackMap locals:
      StackMap stack:
            aload 6
            monitorexit
        38: goto 41
      StackMap locals:
      StackMap stack: java.lang.Throwable
        39: aload 6
            monitorexit
        40: athrow
        41: .line 617
      StackMap locals:
      StackMap stack:
            iload 5 /* callbackInUse */
            ifne 53
        42: .line 618
            aload 0 /* this */
            getfield android.hardware.location.GeofenceHardwareImpl$1.this$0:Landroid/hardware/location/GeofenceHardwareImpl;
            getfield android.hardware.location.GeofenceHardwareImpl.mReapers:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 6 /* iterator */
        start local 6 // java.util.Iterator iterator
        43: .line 619
            goto 52
        44: .line 620
      StackMap locals: java.util.Iterator
      StackMap stack:
            aload 6 /* iterator */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast android.hardware.location.GeofenceHardwareImpl$Reaper
            astore 7 /* reaper */
        start local 7 // android.hardware.location.GeofenceHardwareImpl$Reaper reaper
        45: .line 621
            aload 7 /* reaper */
            getfield android.hardware.location.GeofenceHardwareImpl$Reaper.mCallback:Landroid/hardware/location/IGeofenceHardwareCallback;
            ifnull 52
        46: .line 622
            aload 7 /* reaper */
            getfield android.hardware.location.GeofenceHardwareImpl$Reaper.mCallback:Landroid/hardware/location/IGeofenceHardwareCallback;
            invokeinterface android.hardware.location.IGeofenceHardwareCallback.asBinder:()Landroid/os/IBinder;
            aload 4 /* callbackBinder */
            if_acmpne 52
        47: .line 623
            aload 6 /* iterator */
            invokeinterface java.util.Iterator.remove:()V
        48: .line 624
            aload 7 /* reaper */
            invokevirtual android.hardware.location.GeofenceHardwareImpl$Reaper.unlinkToDeath:()Z
            pop
        49: .line 625
            getstatic android.hardware.location.GeofenceHardwareImpl.DEBUG:Z
            ifeq 52
            ldc "GeofenceHardwareImpl"
            ldc "Removed reaper %s because binder %s is no longer needed."
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
        50: .line 627
            aload 7 /* reaper */
            aastore
            dup
            iconst_1
            aload 4 /* callbackBinder */
            aastore
        51: .line 625
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokestatic android.util.Log.d:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        end local 7 // android.hardware.location.GeofenceHardwareImpl$Reaper reaper
        52: .line 619
      StackMap locals:
      StackMap stack:
            aload 6 /* iterator */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 44
        end local 6 // java.util.Iterator iterator
        end local 5 // boolean callbackInUse
        end local 4 // android.os.IBinder callbackBinder
        53: .line 632
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.hardware.location.GeofenceHardwareImpl$1.this$0:Landroid/hardware/location/GeofenceHardwareImpl;
            invokevirtual android.hardware.location.GeofenceHardwareImpl.releaseWakeLock:()V
        54: .line 633
            goto 119
        end local 3 // android.hardware.location.IGeofenceHardwareCallback callback
        end local 2 // int geofenceId
        55: .line 636
      StackMap locals:
      StackMap stack:
            aload 1 /* msg */
            getfield android.os.Message.arg1:I
            istore 2 /* geofenceId */
        start local 2 // int geofenceId
        56: .line 637
            aload 0 /* this */
            getfield android.hardware.location.GeofenceHardwareImpl$1.this$0:Landroid/hardware/location/GeofenceHardwareImpl;
            getfield android.hardware.location.GeofenceHardwareImpl.mGeofences:Landroid/util/SparseArray;
            dup
            astore 4
            monitorenter
        57: .line 638
            aload 0 /* this */
            getfield android.hardware.location.GeofenceHardwareImpl$1.this$0:Landroid/hardware/location/GeofenceHardwareImpl;
            getfield android.hardware.location.GeofenceHardwareImpl.mGeofences:Landroid/util/SparseArray;
            iload 2 /* geofenceId */
            invokevirtual android.util.SparseArray.get:(I)Ljava/lang/Object;
            checkcast android.hardware.location.IGeofenceHardwareCallback
            astore 3 /* callback */
        start local 3 // android.hardware.location.IGeofenceHardwareCallback callback
        58: .line 637
            aload 4
            monitorexit
        59: goto 62
        end local 3 // android.hardware.location.IGeofenceHardwareCallback callback
      StackMap locals: android.hardware.location.GeofenceHardwareImpl$1 android.os.Message int top android.util.SparseArray
      StackMap stack: java.lang.Throwable
        60: aload 4
            monitorexit
        61: athrow
        start local 3 // android.hardware.location.IGeofenceHardwareCallback callback
        62: .line 641
      StackMap locals: android.hardware.location.GeofenceHardwareImpl$1 android.os.Message int android.hardware.location.IGeofenceHardwareCallback
      StackMap stack:
            aload 3 /* callback */
            ifnull 66
        63: .line 643
            aload 3 /* callback */
            iload 2 /* geofenceId */
            aload 1 /* msg */
            getfield android.os.Message.arg2:I
            invokeinterface android.hardware.location.IGeofenceHardwareCallback.onGeofencePause:(II)V
        64: .line 644
            goto 66
      StackMap locals:
      StackMap stack: android.os.RemoteException
        65: pop
        66: .line 646
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.hardware.location.GeofenceHardwareImpl$1.this$0:Landroid/hardware/location/GeofenceHardwareImpl;
            invokevirtual android.hardware.location.GeofenceHardwareImpl.releaseWakeLock:()V
        67: .line 647
            goto 119
        end local 3 // android.hardware.location.IGeofenceHardwareCallback callback
        end local 2 // int geofenceId
        68: .line 650
      StackMap locals:
      StackMap stack:
            aload 1 /* msg */
            getfield android.os.Message.arg1:I
            istore 2 /* geofenceId */
        start local 2 // int geofenceId
        69: .line 651
            aload 0 /* this */
            getfield android.hardware.location.GeofenceHardwareImpl$1.this$0:Landroid/hardware/location/GeofenceHardwareImpl;
            getfield android.hardware.location.GeofenceHardwareImpl.mGeofences:Landroid/util/SparseArray;
            dup
            astore 4
            monitorenter
        70: .line 652
            aload 0 /* this */
            getfield android.hardware.location.GeofenceHardwareImpl$1.this$0:Landroid/hardware/location/GeofenceHardwareImpl;
            getfield android.hardware.location.GeofenceHardwareImpl.mGeofences:Landroid/util/SparseArray;
            iload 2 /* geofenceId */
            invokevirtual android.util.SparseArray.get:(I)Ljava/lang/Object;
            checkcast android.hardware.location.IGeofenceHardwareCallback
            astore 3 /* callback */
        start local 3 // android.hardware.location.IGeofenceHardwareCallback callback
        71: .line 651
            aload 4
            monitorexit
        72: goto 75
        end local 3 // android.hardware.location.IGeofenceHardwareCallback callback
      StackMap locals: android.hardware.location.GeofenceHardwareImpl$1 android.os.Message int top android.util.SparseArray
      StackMap stack: java.lang.Throwable
        73: aload 4
            monitorexit
        74: athrow
        start local 3 // android.hardware.location.IGeofenceHardwareCallback callback
        75: .line 655
      StackMap locals: android.hardware.location.GeofenceHardwareImpl$1 android.os.Message int android.hardware.location.IGeofenceHardwareCallback
      StackMap stack:
            aload 3 /* callback */
            ifnull 79
        76: .line 657
            aload 3 /* callback */
            iload 2 /* geofenceId */
            aload 1 /* msg */
            getfield android.os.Message.arg2:I
            invokeinterface android.hardware.location.IGeofenceHardwareCallback.onGeofenceResume:(II)V
        77: .line 658
            goto 79
      StackMap locals:
      StackMap stack: android.os.RemoteException
        78: pop
        79: .line 660
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.hardware.location.GeofenceHardwareImpl$1.this$0:Landroid/hardware/location/GeofenceHardwareImpl;
            invokevirtual android.hardware.location.GeofenceHardwareImpl.releaseWakeLock:()V
        80: .line 661
            goto 119
        end local 3 // android.hardware.location.IGeofenceHardwareCallback callback
        end local 2 // int geofenceId
        81: .line 664
      StackMap locals:
      StackMap stack:
            aload 1 /* msg */
            getfield android.os.Message.obj:Ljava/lang/Object;
            checkcast android.hardware.location.GeofenceHardwareImpl$GeofenceTransition
            astore 4 /* geofenceTransition */
        start local 4 // android.hardware.location.GeofenceHardwareImpl$GeofenceTransition geofenceTransition
        82: .line 665
            aload 0 /* this */
            getfield android.hardware.location.GeofenceHardwareImpl$1.this$0:Landroid/hardware/location/GeofenceHardwareImpl;
            getfield android.hardware.location.GeofenceHardwareImpl.mGeofences:Landroid/util/SparseArray;
            dup
            astore 5
            monitorenter
        83: .line 666
            aload 0 /* this */
            getfield android.hardware.location.GeofenceHardwareImpl$1.this$0:Landroid/hardware/location/GeofenceHardwareImpl;
            getfield android.hardware.location.GeofenceHardwareImpl.mGeofences:Landroid/util/SparseArray;
            aload 4 /* geofenceTransition */
            getfield android.hardware.location.GeofenceHardwareImpl$GeofenceTransition.mGeofenceId:I
            invokevirtual android.util.SparseArray.get:(I)Ljava/lang/Object;
            checkcast android.hardware.location.IGeofenceHardwareCallback
            astore 3 /* callback */
        start local 3 // android.hardware.location.IGeofenceHardwareCallback callback
        84: .line 669
            getstatic android.hardware.location.GeofenceHardwareImpl.DEBUG:Z
            ifeq 89
            ldc "GeofenceHardwareImpl"
            new java.lang.StringBuilder
            dup
            ldc "GeofenceTransistionCallback: GPS : GeofenceId: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        85: .line 670
            aload 4 /* geofenceTransition */
            getfield android.hardware.location.GeofenceHardwareImpl$GeofenceTransition.mGeofenceId:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
        86: .line 671
            ldc " Transition: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 4 /* geofenceTransition */
            getfield android.hardware.location.GeofenceHardwareImpl$GeofenceTransition.mTransition:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
        87: .line 672
            ldc " Location: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 4 /* geofenceTransition */
            getfield android.hardware.location.GeofenceHardwareImpl$GeofenceTransition.mLocation:Landroid/location/Location;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc ":"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield android.hardware.location.GeofenceHardwareImpl$1.this$0:Landroid/hardware/location/GeofenceHardwareImpl;
            getfield android.hardware.location.GeofenceHardwareImpl.mGeofences:Landroid/util/SparseArray;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        88: .line 669
            invokestatic android.util.Log.d:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        89: .line 665
      StackMap locals: android.hardware.location.GeofenceHardwareImpl$1 android.os.Message top android.hardware.location.IGeofenceHardwareCallback android.hardware.location.GeofenceHardwareImpl$GeofenceTransition android.util.SparseArray
      StackMap stack:
            aload 5
            monitorexit
        90: goto 93
        end local 3 // android.hardware.location.IGeofenceHardwareCallback callback
      StackMap locals: android.hardware.location.GeofenceHardwareImpl$1 android.os.Message top top android.hardware.location.GeofenceHardwareImpl$GeofenceTransition android.util.SparseArray
      StackMap stack: java.lang.Throwable
        91: aload 5
            monitorexit
        92: athrow
        start local 3 // android.hardware.location.IGeofenceHardwareCallback callback
        93: .line 675
      StackMap locals: android.hardware.location.GeofenceHardwareImpl$1 android.os.Message top android.hardware.location.IGeofenceHardwareCallback android.hardware.location.GeofenceHardwareImpl$GeofenceTransition
      StackMap stack:
            aload 3 /* callback */
            ifnull 101
        94: .line 677
            aload 3 /* callback */
        95: .line 678
            aload 4 /* geofenceTransition */
            getfield android.hardware.location.GeofenceHardwareImpl$GeofenceTransition.mGeofenceId:I
            aload 4 /* geofenceTransition */
            getfield android.hardware.location.GeofenceHardwareImpl$GeofenceTransition.mTransition:I
        96: .line 679
            aload 4 /* geofenceTransition */
            getfield android.hardware.location.GeofenceHardwareImpl$GeofenceTransition.mLocation:Landroid/location/Location;
            aload 4 /* geofenceTransition */
            getfield android.hardware.location.GeofenceHardwareImpl$GeofenceTransition.mTimestamp:J
        97: .line 680
            aload 4 /* geofenceTransition */
            getfield android.hardware.location.GeofenceHardwareImpl$GeofenceTransition.mMonitoringType:I
        98: .line 677
            invokeinterface android.hardware.location.IGeofenceHardwareCallback.onGeofenceTransition:(IILandroid/location/Location;JI)V
        99: .line 681
            goto 101
      StackMap locals:
      StackMap stack: android.os.RemoteException
       100: pop
       101: .line 683
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.hardware.location.GeofenceHardwareImpl$1.this$0:Landroid/hardware/location/GeofenceHardwareImpl;
            invokevirtual android.hardware.location.GeofenceHardwareImpl.releaseWakeLock:()V
       102: .line 684
            goto 119
        end local 4 // android.hardware.location.GeofenceHardwareImpl$GeofenceTransition geofenceTransition
        end local 3 // android.hardware.location.IGeofenceHardwareCallback callback
       103: .line 687
      StackMap locals: android.hardware.location.GeofenceHardwareImpl$1 android.os.Message
      StackMap stack:
            aload 1 /* msg */
            getfield android.os.Message.obj:Ljava/lang/Object;
            checkcast android.hardware.location.IGeofenceHardwareCallback
            astore 3 /* callback */
        start local 3 // android.hardware.location.IGeofenceHardwareCallback callback
       104: .line 688
            getstatic android.hardware.location.GeofenceHardwareImpl.DEBUG:Z
            ifeq 105
            ldc "GeofenceHardwareImpl"
            new java.lang.StringBuilder
            dup
            ldc "Geofence callback reaped:"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* callback */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic android.util.Log.d:(Ljava/lang/String;Ljava/lang/String;)I
            pop
       105: .line 689
      StackMap locals: android.hardware.location.GeofenceHardwareImpl$1 android.os.Message top android.hardware.location.IGeofenceHardwareCallback
      StackMap stack:
            aload 1 /* msg */
            getfield android.os.Message.arg1:I
            istore 5 /* monitoringType */
        start local 5 // int monitoringType
       106: .line 690
            aload 0 /* this */
            getfield android.hardware.location.GeofenceHardwareImpl$1.this$0:Landroid/hardware/location/GeofenceHardwareImpl;
            getfield android.hardware.location.GeofenceHardwareImpl.mGeofences:Landroid/util/SparseArray;
            dup
            astore 6
            monitorenter
       107: .line 691
            iconst_0
            istore 7 /* i */
        start local 7 // int i
       108: goto 114
       109: .line 692
      StackMap locals: android.hardware.location.GeofenceHardwareImpl$1 android.os.Message top android.hardware.location.IGeofenceHardwareCallback top int android.util.SparseArray int
      StackMap stack:
            aload 0 /* this */
            getfield android.hardware.location.GeofenceHardwareImpl$1.this$0:Landroid/hardware/location/GeofenceHardwareImpl;
            getfield android.hardware.location.GeofenceHardwareImpl.mGeofences:Landroid/util/SparseArray;
            iload 7 /* i */
            invokevirtual android.util.SparseArray.valueAt:(I)Ljava/lang/Object;
            checkcast android.hardware.location.IGeofenceHardwareCallback
            aload 3 /* callback */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 113
       110: .line 693
            aload 0 /* this */
            getfield android.hardware.location.GeofenceHardwareImpl$1.this$0:Landroid/hardware/location/GeofenceHardwareImpl;
            getfield android.hardware.location.GeofenceHardwareImpl.mGeofences:Landroid/util/SparseArray;
            iload 7 /* i */
            invokevirtual android.util.SparseArray.keyAt:(I)I
            istore 2 /* geofenceId */
        start local 2 // int geofenceId
       111: .line 694
            aload 0 /* this */
            getfield android.hardware.location.GeofenceHardwareImpl$1.this$0:Landroid/hardware/location/GeofenceHardwareImpl;
            aload 0 /* this */
            getfield android.hardware.location.GeofenceHardwareImpl$1.this$0:Landroid/hardware/location/GeofenceHardwareImpl;
            getfield android.hardware.location.GeofenceHardwareImpl.mGeofences:Landroid/util/SparseArray;
            iload 7 /* i */
            invokevirtual android.util.SparseArray.keyAt:(I)I
            iload 5 /* monitoringType */
            invokevirtual android.hardware.location.GeofenceHardwareImpl.removeGeofence:(II)Z
            pop
       112: .line 695
            aload 0 /* this */
            getfield android.hardware.location.GeofenceHardwareImpl$1.this$0:Landroid/hardware/location/GeofenceHardwareImpl;
            getfield android.hardware.location.GeofenceHardwareImpl.mGeofences:Landroid/util/SparseArray;
            iload 2 /* geofenceId */
            invokevirtual android.util.SparseArray.remove:(I)V
        end local 2 // int geofenceId
       113: .line 691
      StackMap locals:
      StackMap stack:
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
       114: iload 7 /* i */
            aload 0 /* this */
            getfield android.hardware.location.GeofenceHardwareImpl$1.this$0:Landroid/hardware/location/GeofenceHardwareImpl;
            getfield android.hardware.location.GeofenceHardwareImpl.mGeofences:Landroid/util/SparseArray;
            invokevirtual android.util.SparseArray.size:()I
            if_icmplt 109
        end local 7 // int i
       115: .line 690
            aload 6
            monitorexit
       116: goto 119
      StackMap locals: android.hardware.location.GeofenceHardwareImpl$1 android.os.Message top android.hardware.location.IGeofenceHardwareCallback top int android.util.SparseArray
      StackMap stack: java.lang.Throwable
       117: aload 6
            monitorexit
       118: athrow
        end local 5 // int monitoringType
        end local 3 // android.hardware.location.IGeofenceHardwareCallback callback
       119: .line 700
      StackMap locals: android.hardware.location.GeofenceHardwareImpl$1 android.os.Message
      StackMap stack:
            return
        end local 1 // android.os.Message msg
        end local 0 // android.hardware.location.GeofenceHardwareImpl$1 this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0  120     0                this  Landroid/hardware/location/GeofenceHardwareImpl$1;
            0  120     1                 msg  Landroid/os/Message;
            2   15     2          geofenceId  I
           16   55     2          geofenceId  I
           56   68     2          geofenceId  I
           69   81     2          geofenceId  I
          111  113     2          geofenceId  I
            4    6     3            callback  Landroid/hardware/location/IGeofenceHardwareCallback;
            8   15     3            callback  Landroid/hardware/location/IGeofenceHardwareCallback;
           18   20     3            callback  Landroid/hardware/location/IGeofenceHardwareCallback;
           22   55     3            callback  Landroid/hardware/location/IGeofenceHardwareCallback;
           58   60     3            callback  Landroid/hardware/location/IGeofenceHardwareCallback;
           62   68     3            callback  Landroid/hardware/location/IGeofenceHardwareCallback;
           71   73     3            callback  Landroid/hardware/location/IGeofenceHardwareCallback;
           75   81     3            callback  Landroid/hardware/location/IGeofenceHardwareCallback;
           84   91     3            callback  Landroid/hardware/location/IGeofenceHardwareCallback;
           93  103     3            callback  Landroid/hardware/location/IGeofenceHardwareCallback;
          104  119     3            callback  Landroid/hardware/location/IGeofenceHardwareCallback;
           12   13     4                   e  Landroid/os/RemoteException;
           27   53     4      callbackBinder  Landroid/os/IBinder;
           28   53     5       callbackInUse  Z
           31   37     7                   i  I
           43   53     6            iterator  Ljava/util/Iterator<Landroid/hardware/location/GeofenceHardwareImpl$Reaper;>;
           45   52     7              reaper  Landroid/hardware/location/GeofenceHardwareImpl$Reaper;
           82  103     4  geofenceTransition  Landroid/hardware/location/GeofenceHardwareImpl$GeofenceTransition;
          106  119     5      monitoringType  I
          108  115     7                   i  I
      Exception table:
        from    to  target  type
           3     5       6  any
           6     7       6  any
           9    10      11  Class android.os.RemoteException
          17    19      20  any
          20    21      20  any
          23    24      25  Class android.os.RemoteException
          29    38      39  any
          39    40      39  any
          57    59      60  any
          60    61      60  any
          63    64      65  Class android.os.RemoteException
          70    72      73  any
          73    74      73  any
          76    77      78  Class android.os.RemoteException
          83    90      91  any
          91    92      91  any
          94    99     100  Class android.os.RemoteException
         107   116     117  any
         117   118     117  any
    MethodParameters:
      Name  Flags
      msg   
}
SourceFile: "GeofenceHardwareImpl.java"
EnclosingMethod: android.hardware.location.GeofenceHardwareImpl
NestHost: android.hardware.location.GeofenceHardwareImpl
InnerClasses:
  android.hardware.location.GeofenceHardwareImpl$1
  private GeofenceTransition = android.hardware.location.GeofenceHardwareImpl$GeofenceTransition of android.hardware.location.GeofenceHardwareImpl
  Reaper = android.hardware.location.GeofenceHardwareImpl$Reaper of android.hardware.location.GeofenceHardwareImpl