final class com.google.common.util.concurrent.SmoothRateLimiter$SmoothBursty extends com.google.common.util.concurrent.SmoothRateLimiter
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: com.google.common.util.concurrent.SmoothRateLimiter$SmoothBursty
  super_class: com.google.common.util.concurrent.SmoothRateLimiter
{
  final double maxBurstSeconds;
    descriptor: D
    flags: (0x0010) ACC_FINAL

  void <init>(com.google.common.util.concurrent.RateLimiter$SleepingStopwatch, double);
    descriptor: (Lcom/google/common/util/concurrent/RateLimiter$SleepingStopwatch;D)V
    flags: (0x0000) 
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // com.google.common.util.concurrent.SmoothRateLimiter$SmoothBursty this
        start local 1 // com.google.common.util.concurrent.RateLimiter$SleepingStopwatch stopwatch
        start local 2 // double maxBurstSeconds
         0: .line 281
            aload 0 /* this */
            aload 1 /* stopwatch */
            invokespecial com.google.common.util.concurrent.SmoothRateLimiter.<init>:(Lcom/google/common/util/concurrent/RateLimiter$SleepingStopwatch;)V
         1: .line 282
            aload 0 /* this */
            dload 2 /* maxBurstSeconds */
            putfield com.google.common.util.concurrent.SmoothRateLimiter$SmoothBursty.maxBurstSeconds:D
         2: .line 283
            return
        end local 2 // double maxBurstSeconds
        end local 1 // com.google.common.util.concurrent.RateLimiter$SleepingStopwatch stopwatch
        end local 0 // com.google.common.util.concurrent.SmoothRateLimiter$SmoothBursty this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    3     0             this  Lcom/google/common/util/concurrent/SmoothRateLimiter$SmoothBursty;
            0    3     1        stopwatch  Lcom/google/common/util/concurrent/RateLimiter$SleepingStopwatch;
            0    3     2  maxBurstSeconds  D
    MethodParameters:
                 Name  Flags
      stopwatch        
      maxBurstSeconds  

  void doSetRate(double, double);
    descriptor: (DD)V
    flags: (0x0000) 
    Code:
      stack=5, locals=7, args_size=3
        start local 0 // com.google.common.util.concurrent.SmoothRateLimiter$SmoothBursty this
        start local 1 // double permitsPerSecond
        start local 3 // double stableIntervalMicros
         0: .line 287
            aload 0 /* this */
            getfield com.google.common.util.concurrent.SmoothRateLimiter$SmoothBursty.maxPermits:D
            dstore 5 /* oldMaxPermits */
        start local 5 // double oldMaxPermits
         1: .line 288
            aload 0 /* this */
            aload 0 /* this */
            getfield com.google.common.util.concurrent.SmoothRateLimiter$SmoothBursty.maxBurstSeconds:D
            dload 1 /* permitsPerSecond */
            dmul
            putfield com.google.common.util.concurrent.SmoothRateLimiter$SmoothBursty.maxPermits:D
         2: .line 289
            dload 5 /* oldMaxPermits */
            ldc Infinity
            dcmpl
            ifne 5
         3: .line 291
            aload 0 /* this */
            aload 0 /* this */
            getfield com.google.common.util.concurrent.SmoothRateLimiter$SmoothBursty.maxPermits:D
            putfield com.google.common.util.concurrent.SmoothRateLimiter$SmoothBursty.storedPermits:D
         4: .line 292
            goto 10
         5: .line 293
      StackMap locals: double
      StackMap stack:
            aload 0 /* this */
         6: .line 294
            dload 5 /* oldMaxPermits */
            dconst_0
            dcmpl
            ifne 8
         7: .line 295
            dconst_0
            goto 9
         8: .line 296
      StackMap locals:
      StackMap stack: com.google.common.util.concurrent.SmoothRateLimiter$SmoothBursty
            aload 0 /* this */
            getfield com.google.common.util.concurrent.SmoothRateLimiter$SmoothBursty.storedPermits:D
            aload 0 /* this */
            getfield com.google.common.util.concurrent.SmoothRateLimiter$SmoothBursty.maxPermits:D
            dmul
            dload 5 /* oldMaxPermits */
            ddiv
         9: .line 293
      StackMap locals: com.google.common.util.concurrent.SmoothRateLimiter$SmoothBursty double double double
      StackMap stack: com.google.common.util.concurrent.SmoothRateLimiter$SmoothBursty double
            putfield com.google.common.util.concurrent.SmoothRateLimiter$SmoothBursty.storedPermits:D
        10: .line 298
      StackMap locals:
      StackMap stack:
            return
        end local 5 // double oldMaxPermits
        end local 3 // double stableIntervalMicros
        end local 1 // double permitsPerSecond
        end local 0 // com.google.common.util.concurrent.SmoothRateLimiter$SmoothBursty this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   11     0                  this  Lcom/google/common/util/concurrent/SmoothRateLimiter$SmoothBursty;
            0   11     1      permitsPerSecond  D
            0   11     3  stableIntervalMicros  D
            1   11     5         oldMaxPermits  D
    MethodParameters:
                      Name  Flags
      permitsPerSecond      
      stableIntervalMicros  

  long storedPermitsToWaitTime(double, double);
    descriptor: (DD)J
    flags: (0x0000) 
    Code:
      stack=2, locals=5, args_size=3
        start local 0 // com.google.common.util.concurrent.SmoothRateLimiter$SmoothBursty this
        start local 1 // double storedPermits
        start local 3 // double permitsToTake
         0: .line 302
            lconst_0
            lreturn
        end local 3 // double permitsToTake
        end local 1 // double storedPermits
        end local 0 // com.google.common.util.concurrent.SmoothRateLimiter$SmoothBursty this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lcom/google/common/util/concurrent/SmoothRateLimiter$SmoothBursty;
            0    1     1  storedPermits  D
            0    1     3  permitsToTake  D
    MethodParameters:
               Name  Flags
      storedPermits  
      permitsToTake  

  double coolDownIntervalMicros();
    descriptor: ()D
    flags: (0x0000) 
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.google.common.util.concurrent.SmoothRateLimiter$SmoothBursty this
         0: .line 307
            aload 0 /* this */
            getfield com.google.common.util.concurrent.SmoothRateLimiter$SmoothBursty.stableIntervalMicros:D
            dreturn
        end local 0 // com.google.common.util.concurrent.SmoothRateLimiter$SmoothBursty this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/google/common/util/concurrent/SmoothRateLimiter$SmoothBursty;
}
SourceFile: "SmoothRateLimiter.java"
NestHost: com.google.common.util.concurrent.SmoothRateLimiter
InnerClasses:
  abstract SleepingStopwatch = com.google.common.util.concurrent.RateLimiter$SleepingStopwatch of com.google.common.util.concurrent.RateLimiter
  final SmoothBursty = com.google.common.util.concurrent.SmoothRateLimiter$SmoothBursty of com.google.common.util.concurrent.SmoothRateLimiter