public class org.springframework.boot.ImageBanner implements org.springframework.boot.Banner
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.springframework.boot.ImageBanner
  super_class: java.lang.Object
{
  private static final java.lang.String PROPERTY_PREFIX;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "spring.banner.image."

  private static final org.apache.commons.logging.Log logger;
    descriptor: Lorg/apache/commons/logging/Log;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final double[] RGB_WEIGHT;
    descriptor: [D
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private final org.springframework.core.io.Resource image;
    descriptor: Lorg/springframework/core/io/Resource;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=0, args_size=0
         0: .line 62
            ldc Lorg/springframework/boot/ImageBanner;
            invokestatic org.apache.commons.logging.LogFactory.getLog:(Ljava/lang/Class;)Lorg/apache/commons/logging/Log;
            putstatic org.springframework.boot.ImageBanner.logger:Lorg/apache/commons/logging/Log;
         1: .line 64
            iconst_3
            newarray 7
            dup
            iconst_0
            ldc 0.2126
            dastore
            dup
            iconst_1
            ldc 0.7152
            dastore
            dup
            iconst_2
            ldc 0.0722
            dastore
            putstatic org.springframework.boot.ImageBanner.RGB_WEIGHT:[D
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(org.springframework.core.io.Resource);
    descriptor: (Lorg/springframework/core/io/Resource;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.boot.ImageBanner this
        start local 1 // org.springframework.core.io.Resource image
         0: .line 68
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 69
            aload 1 /* image */
            ldc "Image must not be null"
            invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
         2: .line 70
            aload 1 /* image */
            invokeinterface org.springframework.core.io.Resource.exists:()Z
            ldc "Image must exist"
            invokestatic org.springframework.util.Assert.isTrue:(ZLjava/lang/String;)V
         3: .line 71
            aload 0 /* this */
            aload 1 /* image */
            putfield org.springframework.boot.ImageBanner.image:Lorg/springframework/core/io/Resource;
         4: .line 72
            return
        end local 1 // org.springframework.core.io.Resource image
        end local 0 // org.springframework.boot.ImageBanner this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0   this  Lorg/springframework/boot/ImageBanner;
            0    5     1  image  Lorg/springframework/core/io/Resource;
    MethodParameters:
       Name  Flags
      image  

  public void printBanner(org.springframework.core.env.Environment, java.lang.Class<?>, java.io.PrintStream);
    descriptor: (Lorg/springframework/core/env/Environment;Ljava/lang/Class;Ljava/io/PrintStream;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=7, args_size=4
        start local 0 // org.springframework.boot.ImageBanner this
        start local 1 // org.springframework.core.env.Environment environment
        start local 2 // java.lang.Class sourceClass
        start local 3 // java.io.PrintStream out
         0: .line 76
            ldc "java.awt.headless"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 4 /* headless */
        start local 4 // java.lang.String headless
         1: .line 78
            ldc "java.awt.headless"
            ldc "true"
            invokestatic java.lang.System.setProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            pop
         2: .line 79
            aload 0 /* this */
            aload 1 /* environment */
            aload 3 /* out */
            invokevirtual org.springframework.boot.ImageBanner.printBanner:(Lorg/springframework/core/env/Environment;Ljava/io/PrintStream;)V
         3: .line 80
            goto 19
         4: .line 81
      StackMap locals: org.springframework.boot.ImageBanner org.springframework.core.env.Environment java.lang.Class java.io.PrintStream java.lang.String
      StackMap stack: java.lang.Throwable
            astore 5 /* ex */
        start local 5 // java.lang.Throwable ex
         5: .line 82
            getstatic org.springframework.boot.ImageBanner.logger:Lorg/apache/commons/logging/Log;
            ldc "Image banner not printable: %s (%s: '%s')"
            aload 0 /* this */
            getfield org.springframework.boot.ImageBanner.image:Lorg/springframework/core/io/Resource;
            aload 5 /* ex */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
         6: .line 83
            aload 5 /* ex */
            invokevirtual java.lang.Throwable.getMessage:()Ljava/lang/String;
         7: .line 82
            invokestatic org.springframework.core.log.LogMessage.format:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Lorg/springframework/core/log/LogMessage;
            invokeinterface org.apache.commons.logging.Log.warn:(Ljava/lang/Object;)V
         8: .line 84
            getstatic org.springframework.boot.ImageBanner.logger:Lorg/apache/commons/logging/Log;
            ldc "Image banner printing failure"
            aload 5 /* ex */
            invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        end local 5 // java.lang.Throwable ex
         9: .line 87
            aload 4 /* headless */
            ifnonnull 12
        10: .line 88
            ldc "java.awt.headless"
            invokestatic java.lang.System.clearProperty:(Ljava/lang/String;)Ljava/lang/String;
            pop
        11: .line 89
            goto 23
        12: .line 91
      StackMap locals:
      StackMap stack:
            ldc "java.awt.headless"
            aload 4 /* headless */
            invokestatic java.lang.System.setProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            pop
            goto 23
        13: .line 86
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 6
        14: .line 87
            aload 4 /* headless */
            ifnonnull 17
        15: .line 88
            ldc "java.awt.headless"
            invokestatic java.lang.System.clearProperty:(Ljava/lang/String;)Ljava/lang/String;
            pop
        16: .line 89
            goto 18
        17: .line 91
      StackMap locals: org.springframework.boot.ImageBanner org.springframework.core.env.Environment java.lang.Class java.io.PrintStream java.lang.String top java.lang.Throwable
      StackMap stack:
            ldc "java.awt.headless"
            aload 4 /* headless */
            invokestatic java.lang.System.setProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            pop
        18: .line 93
      StackMap locals:
      StackMap stack:
            aload 6
            athrow
        19: .line 87
      StackMap locals: org.springframework.boot.ImageBanner org.springframework.core.env.Environment java.lang.Class java.io.PrintStream java.lang.String
      StackMap stack:
            aload 4 /* headless */
            ifnonnull 22
        20: .line 88
            ldc "java.awt.headless"
            invokestatic java.lang.System.clearProperty:(Ljava/lang/String;)Ljava/lang/String;
            pop
        21: .line 89
            goto 23
        22: .line 91
      StackMap locals:
      StackMap stack:
            ldc "java.awt.headless"
            aload 4 /* headless */
            invokestatic java.lang.System.setProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            pop
        23: .line 94
      StackMap locals:
      StackMap stack:
            return
        end local 4 // java.lang.String headless
        end local 3 // java.io.PrintStream out
        end local 2 // java.lang.Class sourceClass
        end local 1 // org.springframework.core.env.Environment environment
        end local 0 // org.springframework.boot.ImageBanner this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   24     0         this  Lorg/springframework/boot/ImageBanner;
            0   24     1  environment  Lorg/springframework/core/env/Environment;
            0   24     2  sourceClass  Ljava/lang/Class<*>;
            0   24     3          out  Ljava/io/PrintStream;
            1   24     4     headless  Ljava/lang/String;
            5    9     5           ex  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           1     3       4  Class java.lang.Throwable
           1     9      13  any
    Signature: (Lorg/springframework/core/env/Environment;Ljava/lang/Class<*>;Ljava/io/PrintStream;)V
    MethodParameters:
             Name  Flags
      environment  
      sourceClass  
      out          

  private void printBanner(org.springframework.core.env.Environment, java.io.PrintStream);
    descriptor: (Lorg/springframework/core/env/Environment;Ljava/io/PrintStream;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=11, args_size=3
        start local 0 // org.springframework.boot.ImageBanner this
        start local 1 // org.springframework.core.env.Environment environment
        start local 2 // java.io.PrintStream out
         0: .line 97
            aload 0 /* this */
            aload 1 /* environment */
            ldc "width"
            ldc Ljava/lang/Integer;
            bipush 76
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual org.springframework.boot.ImageBanner.getProperty:(Lorg/springframework/core/env/Environment;Ljava/lang/String;Ljava/lang/Class;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            istore 3 /* width */
        start local 3 // int width
         1: .line 98
            aload 0 /* this */
            aload 1 /* environment */
            ldc "height"
            ldc Ljava/lang/Integer;
            iconst_0
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual org.springframework.boot.ImageBanner.getProperty:(Lorg/springframework/core/env/Environment;Ljava/lang/String;Ljava/lang/Class;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            istore 4 /* height */
        start local 4 // int height
         2: .line 99
            aload 0 /* this */
            aload 1 /* environment */
            ldc "margin"
            ldc Ljava/lang/Integer;
            iconst_2
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual org.springframework.boot.ImageBanner.getProperty:(Lorg/springframework/core/env/Environment;Ljava/lang/String;Ljava/lang/Class;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            istore 5 /* margin */
        start local 5 // int margin
         3: .line 100
            aload 0 /* this */
            aload 1 /* environment */
            ldc "invert"
            ldc Ljava/lang/Boolean;
            iconst_0
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            invokevirtual org.springframework.boot.ImageBanner.getProperty:(Lorg/springframework/core/env/Environment;Ljava/lang/String;Ljava/lang/Class;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            istore 6 /* invert */
        start local 6 // boolean invert
         4: .line 101
            aload 0 /* this */
            aload 1 /* environment */
            invokevirtual org.springframework.boot.ImageBanner.getBitDepthProperty:(Lorg/springframework/core/env/Environment;)Lorg/springframework/boot/ansi/AnsiColors$BitDepth;
            astore 7 /* bitDepth */
        start local 7 // org.springframework.boot.ansi.AnsiColors$BitDepth bitDepth
         5: .line 102
            aload 0 /* this */
            aload 1 /* environment */
            invokevirtual org.springframework.boot.ImageBanner.getPixelModeProperty:(Lorg/springframework/core/env/Environment;)Lorg/springframework/boot/ImageBanner$PixelMode;
            astore 8 /* pixelMode */
        start local 8 // org.springframework.boot.ImageBanner$PixelMode pixelMode
         6: .line 103
            aload 0 /* this */
            iload 3 /* width */
            iload 4 /* height */
            invokevirtual org.springframework.boot.ImageBanner.readFrames:(II)[Lorg/springframework/boot/ImageBanner$Frame;
            astore 9 /* frames */
        start local 9 // org.springframework.boot.ImageBanner$Frame[] frames
         7: .line 104
            iconst_0
            istore 10 /* i */
        start local 10 // int i
         8: goto 14
         9: .line 105
      StackMap locals: org.springframework.boot.ImageBanner org.springframework.core.env.Environment java.io.PrintStream int int int int org.springframework.boot.ansi.AnsiColors$BitDepth org.springframework.boot.ImageBanner$PixelMode org.springframework.boot.ImageBanner$Frame[] int
      StackMap stack:
            iload 10 /* i */
            ifle 11
        10: .line 106
            aload 0 /* this */
            aload 9 /* frames */
            iload 10 /* i */
            iconst_1
            isub
            aaload
            invokevirtual org.springframework.boot.ImageBanner$Frame.getImage:()Ljava/awt/image/BufferedImage;
            aload 2 /* out */
            invokevirtual org.springframework.boot.ImageBanner.resetCursor:(Ljava/awt/image/BufferedImage;Ljava/io/PrintStream;)V
        11: .line 108
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 9 /* frames */
            iload 10 /* i */
            aaload
            invokevirtual org.springframework.boot.ImageBanner$Frame.getImage:()Ljava/awt/image/BufferedImage;
            iload 5 /* margin */
            iload 6 /* invert */
            aload 7 /* bitDepth */
            aload 8 /* pixelMode */
            aload 2 /* out */
            invokevirtual org.springframework.boot.ImageBanner.printBanner:(Ljava/awt/image/BufferedImage;IZLorg/springframework/boot/ansi/AnsiColors$BitDepth;Lorg/springframework/boot/ImageBanner$PixelMode;Ljava/io/PrintStream;)V
        12: .line 109
            aload 0 /* this */
            aload 9 /* frames */
            iload 10 /* i */
            aaload
            invokevirtual org.springframework.boot.ImageBanner$Frame.getDelayTime:()I
            invokevirtual org.springframework.boot.ImageBanner.sleep:(I)V
        13: .line 104
            iinc 10 /* i */ 1
      StackMap locals:
      StackMap stack:
        14: iload 10 /* i */
            aload 9 /* frames */
            arraylength
            if_icmplt 9
        end local 10 // int i
        15: .line 111
            return
        end local 9 // org.springframework.boot.ImageBanner$Frame[] frames
        end local 8 // org.springframework.boot.ImageBanner$PixelMode pixelMode
        end local 7 // org.springframework.boot.ansi.AnsiColors$BitDepth bitDepth
        end local 6 // boolean invert
        end local 5 // int margin
        end local 4 // int height
        end local 3 // int width
        end local 2 // java.io.PrintStream out
        end local 1 // org.springframework.core.env.Environment environment
        end local 0 // org.springframework.boot.ImageBanner this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   16     0         this  Lorg/springframework/boot/ImageBanner;
            0   16     1  environment  Lorg/springframework/core/env/Environment;
            0   16     2          out  Ljava/io/PrintStream;
            1   16     3        width  I
            2   16     4       height  I
            3   16     5       margin  I
            4   16     6       invert  Z
            5   16     7     bitDepth  Lorg/springframework/boot/ansi/AnsiColors$BitDepth;
            6   16     8    pixelMode  Lorg/springframework/boot/ImageBanner$PixelMode;
            7   16     9       frames  [Lorg/springframework/boot/ImageBanner$Frame;
            8   15    10            i  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
             Name  Flags
      environment  
      out          

  private org.springframework.boot.ansi.AnsiColors$BitDepth getBitDepthProperty(org.springframework.core.env.Environment);
    descriptor: (Lorg/springframework/core/env/Environment;)Lorg/springframework/boot/ansi/AnsiColors$BitDepth;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // org.springframework.boot.ImageBanner this
        start local 1 // org.springframework.core.env.Environment environment
         0: .line 114
            aload 0 /* this */
            aload 1 /* environment */
            ldc "bitdepth"
            ldc Ljava/lang/Integer;
            aconst_null
            invokevirtual org.springframework.boot.ImageBanner.getProperty:(Lorg/springframework/core/env/Environment;Ljava/lang/String;Ljava/lang/Class;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Integer
            astore 2 /* bitDepth */
        start local 2 // java.lang.Integer bitDepth
         1: .line 115
            aload 2 /* bitDepth */
            ifnull 2
            aload 2 /* bitDepth */
            invokevirtual java.lang.Integer.intValue:()I
            invokestatic org.springframework.boot.ansi.AnsiColors$BitDepth.of:(I)Lorg/springframework/boot/ansi/AnsiColors$BitDepth;
            goto 3
      StackMap locals: java.lang.Integer
      StackMap stack:
         2: getstatic org.springframework.boot.ansi.AnsiColors$BitDepth.FOUR:Lorg/springframework/boot/ansi/AnsiColors$BitDepth;
      StackMap locals:
      StackMap stack: org.springframework.boot.ansi.AnsiColors$BitDepth
         3: areturn
        end local 2 // java.lang.Integer bitDepth
        end local 1 // org.springframework.core.env.Environment environment
        end local 0 // org.springframework.boot.ImageBanner this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    4     0         this  Lorg/springframework/boot/ImageBanner;
            0    4     1  environment  Lorg/springframework/core/env/Environment;
            1    4     2     bitDepth  Ljava/lang/Integer;
    MethodParameters:
             Name  Flags
      environment  

  private org.springframework.boot.ImageBanner$PixelMode getPixelModeProperty(org.springframework.core.env.Environment);
    descriptor: (Lorg/springframework/core/env/Environment;)Lorg/springframework/boot/ImageBanner$PixelMode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // org.springframework.boot.ImageBanner this
        start local 1 // org.springframework.core.env.Environment environment
         0: .line 119
            aload 0 /* this */
            aload 1 /* environment */
            ldc "pixelmode"
            ldc Ljava/lang/String;
            aconst_null
            invokevirtual org.springframework.boot.ImageBanner.getProperty:(Lorg/springframework/core/env/Environment;Ljava/lang/String;Ljava/lang/Class;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 2 /* pixelMode */
        start local 2 // java.lang.String pixelMode
         1: .line 120
            aload 2 /* pixelMode */
            ifnull 2
            aload 2 /* pixelMode */
            invokevirtual java.lang.String.trim:()Ljava/lang/String;
            invokevirtual java.lang.String.toUpperCase:()Ljava/lang/String;
            invokestatic org.springframework.boot.ImageBanner$PixelMode.valueOf:(Ljava/lang/String;)Lorg/springframework/boot/ImageBanner$PixelMode;
            goto 3
      StackMap locals: java.lang.String
      StackMap stack:
         2: getstatic org.springframework.boot.ImageBanner$PixelMode.TEXT:Lorg/springframework/boot/ImageBanner$PixelMode;
      StackMap locals:
      StackMap stack: org.springframework.boot.ImageBanner$PixelMode
         3: areturn
        end local 2 // java.lang.String pixelMode
        end local 1 // org.springframework.core.env.Environment environment
        end local 0 // org.springframework.boot.ImageBanner this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    4     0         this  Lorg/springframework/boot/ImageBanner;
            0    4     1  environment  Lorg/springframework/core/env/Environment;
            1    4     2    pixelMode  Ljava/lang/String;
    MethodParameters:
             Name  Flags
      environment  

  private <T> T getProperty(org.springframework.core.env.Environment, java.lang.String, java.lang.Class<T>, );
    descriptor: (Lorg/springframework/core/env/Environment;Ljava/lang/String;Ljava/lang/Class;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=5
        start local 0 // org.springframework.boot.ImageBanner this
        start local 1 // org.springframework.core.env.Environment environment
        start local 2 // java.lang.String name
        start local 3 // java.lang.Class targetType
        start local 4 // java.lang.Object defaultValue
         0: .line 124
            aload 1 /* environment */
            new java.lang.StringBuilder
            dup
            ldc "spring.banner.image."
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 3 /* targetType */
            aload 4 /* defaultValue */
            invokeinterface org.springframework.core.env.Environment.getProperty:(Ljava/lang/String;Ljava/lang/Class;Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 4 // java.lang.Object defaultValue
        end local 3 // java.lang.Class targetType
        end local 2 // java.lang.String name
        end local 1 // org.springframework.core.env.Environment environment
        end local 0 // org.springframework.boot.ImageBanner this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Lorg/springframework/boot/ImageBanner;
            0    1     1   environment  Lorg/springframework/core/env/Environment;
            0    1     2          name  Ljava/lang/String;
            0    1     3    targetType  Ljava/lang/Class<TT;>;
            0    1     4  defaultValue  TT;
    Signature: <T:Ljava/lang/Object;>(Lorg/springframework/core/env/Environment;Ljava/lang/String;Ljava/lang/Class<TT;>;TT;)TT;
    MethodParameters:
              Name  Flags
      environment   
      name          
      targetType    
      defaultValue  

  private org.springframework.boot.ImageBanner$Frame[] readFrames(int, int);
    descriptor: (II)[Lorg/springframework/boot/ImageBanner$Frame;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=9, args_size=3
        start local 0 // org.springframework.boot.ImageBanner this
        start local 1 // int width
        start local 2 // int height
         0: .line 128
            aconst_null
            astore 3
            aconst_null
            astore 4
         1: aload 0 /* this */
            getfield org.springframework.boot.ImageBanner.image:Lorg/springframework/core/io/Resource;
            invokeinterface org.springframework.core.io.Resource.getInputStream:()Ljava/io/InputStream;
            astore 5 /* inputStream */
        start local 5 // java.io.InputStream inputStream
         2: .line 129
            aconst_null
            astore 6
            aconst_null
            astore 7
         3: aload 5 /* inputStream */
            invokestatic javax.imageio.ImageIO.createImageInputStream:(Ljava/lang/Object;)Ljavax/imageio/stream/ImageInputStream;
            astore 8 /* imageStream */
        start local 8 // javax.imageio.stream.ImageInputStream imageStream
         4: .line 130
            aload 0 /* this */
            iload 1 /* width */
            iload 2 /* height */
            aload 8 /* imageStream */
            invokevirtual org.springframework.boot.ImageBanner.readFrames:(IILjavax/imageio/stream/ImageInputStream;)[Lorg/springframework/boot/ImageBanner$Frame;
         5: .line 131
            aload 8 /* imageStream */
            ifnull 6
            aload 8 /* imageStream */
            invokeinterface javax.imageio.stream.ImageInputStream.close:()V
         6: .line 132
      StackMap locals: org.springframework.boot.ImageBanner int int java.lang.Throwable java.lang.Throwable java.io.InputStream java.lang.Throwable java.lang.Throwable javax.imageio.stream.ImageInputStream
      StackMap stack: org.springframework.boot.ImageBanner$Frame[]
            aload 5 /* inputStream */
            ifnull 7
            aload 5 /* inputStream */
            invokevirtual java.io.InputStream.close:()V
         7: .line 130
      StackMap locals:
      StackMap stack: org.springframework.boot.ImageBanner$Frame[]
            areturn
      StackMap locals:
      StackMap stack: java.lang.Throwable
         8: astore 6
         9: .line 131
            aload 8 /* imageStream */
            ifnull 10
            aload 8 /* imageStream */
            invokeinterface javax.imageio.stream.ImageInputStream.close:()V
        end local 8 // javax.imageio.stream.ImageInputStream imageStream
      StackMap locals:
      StackMap stack:
        10: aload 6
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        11: astore 7
            aload 6
            ifnonnull 12
            aload 7
            astore 6
            goto 13
      StackMap locals:
      StackMap stack:
        12: aload 6
            aload 7
            if_acmpeq 13
            aload 6
            aload 7
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        13: aload 6
            athrow
      StackMap locals: org.springframework.boot.ImageBanner int int java.lang.Throwable java.lang.Throwable java.io.InputStream
      StackMap stack: java.lang.Throwable
        14: astore 3
        15: .line 132
            aload 5 /* inputStream */
            ifnull 16
            aload 5 /* inputStream */
            invokevirtual java.io.InputStream.close:()V
        end local 5 // java.io.InputStream inputStream
      StackMap locals:
      StackMap stack:
        16: aload 3
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        17: astore 4
            aload 3
            ifnonnull 18
            aload 4
            astore 3
            goto 19
      StackMap locals:
      StackMap stack:
        18: aload 3
            aload 4
            if_acmpeq 19
            aload 3
            aload 4
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        19: aload 3
            athrow
        end local 2 // int height
        end local 1 // int width
        end local 0 // org.springframework.boot.ImageBanner this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   20     0         this  Lorg/springframework/boot/ImageBanner;
            0   20     1        width  I
            0   20     2       height  I
            2   16     5  inputStream  Ljava/io/InputStream;
            4   10     8  imageStream  Ljavax/imageio/stream/ImageInputStream;
      Exception table:
        from    to  target  type
           4     5       8  any
           3     6      11  any
           8    11      11  any
           2     6      14  any
           8    14      14  any
           1     7      17  any
           8    17      17  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      width   
      height  

  private org.springframework.boot.ImageBanner$Frame[] readFrames(int, int, javax.imageio.stream.ImageInputStream);
    descriptor: (IILjavax/imageio/stream/ImageInputStream;)[Lorg/springframework/boot/ImageBanner$Frame;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=12, args_size=4
        start local 0 // org.springframework.boot.ImageBanner this
        start local 1 // int width
        start local 2 // int height
        start local 3 // javax.imageio.stream.ImageInputStream stream
         0: .line 136
            aload 3 /* stream */
            invokestatic javax.imageio.ImageIO.getImageReaders:(Ljava/lang/Object;)Ljava/util/Iterator;
            astore 4 /* readers */
        start local 4 // java.util.Iterator readers
         1: .line 137
            aload 4 /* readers */
            invokeinterface java.util.Iterator.hasNext:()Z
            ldc "Unable to read image banner source"
            invokestatic org.springframework.util.Assert.state:(ZLjava/lang/String;)V
         2: .line 138
            aload 4 /* readers */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast javax.imageio.ImageReader
            astore 5 /* reader */
        start local 5 // javax.imageio.ImageReader reader
         3: .line 140
            aload 5 /* reader */
            invokevirtual javax.imageio.ImageReader.getDefaultReadParam:()Ljavax/imageio/ImageReadParam;
            astore 6 /* readParam */
        start local 6 // javax.imageio.ImageReadParam readParam
         4: .line 141
            aload 5 /* reader */
            aload 3 /* stream */
            invokevirtual javax.imageio.ImageReader.setInput:(Ljava/lang/Object;)V
         5: .line 142
            aload 5 /* reader */
            iconst_1
            invokevirtual javax.imageio.ImageReader.getNumImages:(Z)I
            istore 7 /* frameCount */
        start local 7 // int frameCount
         6: .line 143
            iload 7 /* frameCount */
            anewarray org.springframework.boot.ImageBanner$Frame
            astore 8 /* frames */
        start local 8 // org.springframework.boot.ImageBanner$Frame[] frames
         7: .line 144
            iconst_0
            istore 9 /* i */
        start local 9 // int i
         8: goto 11
         9: .line 145
      StackMap locals: org.springframework.boot.ImageBanner int int javax.imageio.stream.ImageInputStream java.util.Iterator javax.imageio.ImageReader javax.imageio.ImageReadParam int org.springframework.boot.ImageBanner$Frame[] int
      StackMap stack:
            aload 8 /* frames */
            iload 9 /* i */
            aload 0 /* this */
            iload 1 /* width */
            iload 2 /* height */
            aload 5 /* reader */
            iload 9 /* i */
            aload 6 /* readParam */
            invokevirtual org.springframework.boot.ImageBanner.readFrame:(IILjavax/imageio/ImageReader;ILjavax/imageio/ImageReadParam;)Lorg/springframework/boot/ImageBanner$Frame;
            aastore
        10: .line 144
            iinc 9 /* i */ 1
      StackMap locals:
      StackMap stack:
        11: iload 9 /* i */
            iload 7 /* frameCount */
            if_icmplt 9
        end local 9 // int i
        12: .line 147
            aload 8 /* frames */
            astore 11
        13: .line 150
            aload 5 /* reader */
            invokevirtual javax.imageio.ImageReader.dispose:()V
        14: .line 147
            aload 11
            areturn
        end local 8 // org.springframework.boot.ImageBanner$Frame[] frames
        end local 7 // int frameCount
        end local 6 // javax.imageio.ImageReadParam readParam
        15: .line 149
      StackMap locals: org.springframework.boot.ImageBanner int int javax.imageio.stream.ImageInputStream java.util.Iterator javax.imageio.ImageReader
      StackMap stack: java.lang.Throwable
            astore 10
        16: .line 150
            aload 5 /* reader */
            invokevirtual javax.imageio.ImageReader.dispose:()V
        17: .line 151
            aload 10
            athrow
        end local 5 // javax.imageio.ImageReader reader
        end local 4 // java.util.Iterator readers
        end local 3 // javax.imageio.stream.ImageInputStream stream
        end local 2 // int height
        end local 1 // int width
        end local 0 // org.springframework.boot.ImageBanner this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   18     0        this  Lorg/springframework/boot/ImageBanner;
            0   18     1       width  I
            0   18     2      height  I
            0   18     3      stream  Ljavax/imageio/stream/ImageInputStream;
            1   18     4     readers  Ljava/util/Iterator<Ljavax/imageio/ImageReader;>;
            3   18     5      reader  Ljavax/imageio/ImageReader;
            4   15     6   readParam  Ljavax/imageio/ImageReadParam;
            6   15     7  frameCount  I
            7   15     8      frames  [Lorg/springframework/boot/ImageBanner$Frame;
            8   12     9           i  I
      Exception table:
        from    to  target  type
           3    13      15  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      width   
      height  
      stream  

  private org.springframework.boot.ImageBanner$Frame readFrame(int, int, javax.imageio.ImageReader, int, javax.imageio.ImageReadParam);
    descriptor: (IILjavax/imageio/ImageReader;ILjavax/imageio/ImageReadParam;)Lorg/springframework/boot/ImageBanner$Frame;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=9, args_size=6
        start local 0 // org.springframework.boot.ImageBanner this
        start local 1 // int width
        start local 2 // int height
        start local 3 // javax.imageio.ImageReader reader
        start local 4 // int imageIndex
        start local 5 // javax.imageio.ImageReadParam readParam
         0: .line 156
            aload 3 /* reader */
            iload 4 /* imageIndex */
            aload 5 /* readParam */
            invokevirtual javax.imageio.ImageReader.read:(ILjavax/imageio/ImageReadParam;)Ljava/awt/image/BufferedImage;
            astore 6 /* image */
        start local 6 // java.awt.image.BufferedImage image
         1: .line 157
            aload 0 /* this */
            aload 6 /* image */
            iload 1 /* width */
            iload 2 /* height */
            invokevirtual org.springframework.boot.ImageBanner.resizeImage:(Ljava/awt/image/BufferedImage;II)Ljava/awt/image/BufferedImage;
            astore 7 /* resized */
        start local 7 // java.awt.image.BufferedImage resized
         2: .line 158
            aload 0 /* this */
            aload 3 /* reader */
            iload 4 /* imageIndex */
            invokevirtual org.springframework.boot.ImageBanner.getDelayTime:(Ljavax/imageio/ImageReader;I)I
            istore 8 /* delayTime */
        start local 8 // int delayTime
         3: .line 159
            new org.springframework.boot.ImageBanner$Frame
            dup
            aload 7 /* resized */
            iload 8 /* delayTime */
            invokespecial org.springframework.boot.ImageBanner$Frame.<init>:(Ljava/awt/image/BufferedImage;I)V
            areturn
        end local 8 // int delayTime
        end local 7 // java.awt.image.BufferedImage resized
        end local 6 // java.awt.image.BufferedImage image
        end local 5 // javax.imageio.ImageReadParam readParam
        end local 4 // int imageIndex
        end local 3 // javax.imageio.ImageReader reader
        end local 2 // int height
        end local 1 // int width
        end local 0 // org.springframework.boot.ImageBanner this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0        this  Lorg/springframework/boot/ImageBanner;
            0    4     1       width  I
            0    4     2      height  I
            0    4     3      reader  Ljavax/imageio/ImageReader;
            0    4     4  imageIndex  I
            0    4     5   readParam  Ljavax/imageio/ImageReadParam;
            1    4     6       image  Ljava/awt/image/BufferedImage;
            2    4     7     resized  Ljava/awt/image/BufferedImage;
            3    4     8   delayTime  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
            Name  Flags
      width       
      height      
      reader      
      imageIndex  
      readParam   

  private int getDelayTime(javax.imageio.ImageReader, int);
    descriptor: (Ljavax/imageio/ImageReader;I)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=7, args_size=3
        start local 0 // org.springframework.boot.ImageBanner this
        start local 1 // javax.imageio.ImageReader reader
        start local 2 // int imageIndex
         0: .line 163
            aload 1 /* reader */
            iload 2 /* imageIndex */
            invokevirtual javax.imageio.ImageReader.getImageMetadata:(I)Ljavax/imageio/metadata/IIOMetadata;
            astore 3 /* metadata */
        start local 3 // javax.imageio.metadata.IIOMetadata metadata
         1: .line 164
            aload 3 /* metadata */
            aload 3 /* metadata */
            invokevirtual javax.imageio.metadata.IIOMetadata.getNativeMetadataFormatName:()Ljava/lang/String;
            invokevirtual javax.imageio.metadata.IIOMetadata.getAsTree:(Ljava/lang/String;)Lorg/w3c/dom/Node;
            checkcast javax.imageio.metadata.IIOMetadataNode
            astore 4 /* root */
        start local 4 // javax.imageio.metadata.IIOMetadataNode root
         2: .line 165
            aload 4 /* root */
            ldc "GraphicControlExtension"
            invokestatic org.springframework.boot.ImageBanner.findNode:(Ljavax/imageio/metadata/IIOMetadataNode;Ljava/lang/String;)Ljavax/imageio/metadata/IIOMetadataNode;
            astore 5 /* extension */
        start local 5 // javax.imageio.metadata.IIOMetadataNode extension
         3: .line 166
            aload 5 /* extension */
            ifnull 4
            aload 5 /* extension */
            ldc "delayTime"
            invokevirtual javax.imageio.metadata.IIOMetadataNode.getAttribute:(Ljava/lang/String;)Ljava/lang/String;
            goto 5
      StackMap locals: javax.imageio.metadata.IIOMetadata javax.imageio.metadata.IIOMetadataNode javax.imageio.metadata.IIOMetadataNode
      StackMap stack:
         4: aconst_null
      StackMap locals:
      StackMap stack: java.lang.String
         5: astore 6 /* attribute */
        start local 6 // java.lang.String attribute
         6: .line 167
            aload 6 /* attribute */
            ifnull 7
            aload 6 /* attribute */
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
            bipush 10
            imul
            goto 8
      StackMap locals: java.lang.String
      StackMap stack:
         7: iconst_0
      StackMap locals:
      StackMap stack: int
         8: ireturn
        end local 6 // java.lang.String attribute
        end local 5 // javax.imageio.metadata.IIOMetadataNode extension
        end local 4 // javax.imageio.metadata.IIOMetadataNode root
        end local 3 // javax.imageio.metadata.IIOMetadata metadata
        end local 2 // int imageIndex
        end local 1 // javax.imageio.ImageReader reader
        end local 0 // org.springframework.boot.ImageBanner this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    9     0        this  Lorg/springframework/boot/ImageBanner;
            0    9     1      reader  Ljavax/imageio/ImageReader;
            0    9     2  imageIndex  I
            1    9     3    metadata  Ljavax/imageio/metadata/IIOMetadata;
            2    9     4        root  Ljavax/imageio/metadata/IIOMetadataNode;
            3    9     5   extension  Ljavax/imageio/metadata/IIOMetadataNode;
            6    9     6   attribute  Ljava/lang/String;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
            Name  Flags
      reader      
      imageIndex  

  private static javax.imageio.metadata.IIOMetadataNode findNode(javax.imageio.metadata.IIOMetadataNode, java.lang.String);
    descriptor: (Ljavax/imageio/metadata/IIOMetadataNode;Ljava/lang/String;)Ljavax/imageio/metadata/IIOMetadataNode;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // javax.imageio.metadata.IIOMetadataNode rootNode
        start local 1 // java.lang.String nodeName
         0: .line 171
            aload 0 /* rootNode */
            ifnonnull 2
         1: .line 172
            aconst_null
            areturn
         2: .line 174
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         3: goto 7
         4: .line 175
      StackMap locals: int
      StackMap stack:
            aload 0 /* rootNode */
            iload 2 /* i */
            invokevirtual javax.imageio.metadata.IIOMetadataNode.item:(I)Lorg/w3c/dom/Node;
            invokeinterface org.w3c.dom.Node.getNodeName:()Ljava/lang/String;
            aload 1 /* nodeName */
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 6
         5: .line 176
            aload 0 /* rootNode */
            iload 2 /* i */
            invokevirtual javax.imageio.metadata.IIOMetadataNode.item:(I)Lorg/w3c/dom/Node;
            checkcast javax.imageio.metadata.IIOMetadataNode
            areturn
         6: .line 174
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         7: iload 2 /* i */
            aload 0 /* rootNode */
            invokevirtual javax.imageio.metadata.IIOMetadataNode.getLength:()I
            if_icmplt 4
        end local 2 // int i
         8: .line 179
            aconst_null
            areturn
        end local 1 // java.lang.String nodeName
        end local 0 // javax.imageio.metadata.IIOMetadataNode rootNode
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    9     0  rootNode  Ljavax/imageio/metadata/IIOMetadataNode;
            0    9     1  nodeName  Ljava/lang/String;
            3    8     2         i  I
    MethodParameters:
          Name  Flags
      rootNode  
      nodeName  

  private java.awt.image.BufferedImage resizeImage(java.awt.image.BufferedImage, int, int);
    descriptor: (Ljava/awt/image/BufferedImage;II)Ljava/awt/image/BufferedImage;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=6, args_size=4
        start local 0 // org.springframework.boot.ImageBanner this
        start local 1 // java.awt.image.BufferedImage image
        start local 2 // int width
        start local 3 // int height
         0: .line 183
            iload 2 /* width */
            iconst_1
            if_icmpge 2
         1: .line 184
            iconst_1
            istore 2 /* width */
         2: .line 186
      StackMap locals:
      StackMap stack:
            iload 3 /* height */
            ifgt 5
         3: .line 187
            iload 2 /* width */
            i2d
            aload 1 /* image */
            invokevirtual java.awt.image.BufferedImage.getWidth:()I
            i2d
            ddiv
            ldc 0.5
            dmul
            dstore 4 /* aspectRatio */
        start local 4 // double aspectRatio
         4: .line 188
            aload 1 /* image */
            invokevirtual java.awt.image.BufferedImage.getHeight:()I
            i2d
            dload 4 /* aspectRatio */
            dmul
            invokestatic java.lang.Math.ceil:(D)D
            d2i
            istore 3 /* height */
        end local 4 // double aspectRatio
         5: .line 190
      StackMap locals:
      StackMap stack:
            new java.awt.image.BufferedImage
            dup
            iload 2 /* width */
            iload 3 /* height */
            iconst_1
            invokespecial java.awt.image.BufferedImage.<init>:(III)V
            astore 4 /* resized */
        start local 4 // java.awt.image.BufferedImage resized
         6: .line 191
            aload 1 /* image */
            iload 2 /* width */
            iload 3 /* height */
            iconst_1
            invokevirtual java.awt.image.BufferedImage.getScaledInstance:(III)Ljava/awt/Image;
            astore 5 /* scaled */
        start local 5 // java.awt.Image scaled
         7: .line 192
            aload 4 /* resized */
            invokevirtual java.awt.image.BufferedImage.getGraphics:()Ljava/awt/Graphics;
            aload 5 /* scaled */
            iconst_0
            iconst_0
            aconst_null
            invokevirtual java.awt.Graphics.drawImage:(Ljava/awt/Image;IILjava/awt/image/ImageObserver;)Z
            pop
         8: .line 193
            aload 4 /* resized */
            areturn
        end local 5 // java.awt.Image scaled
        end local 4 // java.awt.image.BufferedImage resized
        end local 3 // int height
        end local 2 // int width
        end local 1 // java.awt.image.BufferedImage image
        end local 0 // org.springframework.boot.ImageBanner this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    9     0         this  Lorg/springframework/boot/ImageBanner;
            0    9     1        image  Ljava/awt/image/BufferedImage;
            0    9     2        width  I
            0    9     3       height  I
            4    5     4  aspectRatio  D
            6    9     4      resized  Ljava/awt/image/BufferedImage;
            7    9     5       scaled  Ljava/awt/Image;
    MethodParameters:
        Name  Flags
      image   
      width   
      height  

  private void resetCursor(java.awt.image.BufferedImage, java.io.PrintStream);
    descriptor: (Ljava/awt/image/BufferedImage;Ljava/io/PrintStream;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // org.springframework.boot.ImageBanner this
        start local 1 // java.awt.image.BufferedImage image
        start local 2 // java.io.PrintStream out
         0: .line 197
            aload 1 /* image */
            invokevirtual java.awt.image.BufferedImage.getHeight:()I
            iconst_3
            iadd
            istore 3 /* lines */
        start local 3 // int lines
         1: .line 198
            aload 2 /* out */
            new java.lang.StringBuilder
            dup
            ldc "\u001B["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 3 /* lines */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "A\r"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
         2: .line 199
            return
        end local 3 // int lines
        end local 2 // java.io.PrintStream out
        end local 1 // java.awt.image.BufferedImage image
        end local 0 // org.springframework.boot.ImageBanner this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Lorg/springframework/boot/ImageBanner;
            0    3     1  image  Ljava/awt/image/BufferedImage;
            0    3     2    out  Ljava/io/PrintStream;
            1    3     3  lines  I
    MethodParameters:
       Name  Flags
      image  
      out    

  private void printBanner(java.awt.image.BufferedImage, int, boolean, org.springframework.boot.ansi.AnsiColors$BitDepth, org.springframework.boot.ImageBanner$PixelMode, java.io.PrintStream);
    descriptor: (Ljava/awt/image/BufferedImage;IZLorg/springframework/boot/ansi/AnsiColors$BitDepth;Lorg/springframework/boot/ImageBanner$PixelMode;Ljava/io/PrintStream;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=14, args_size=7
        start local 0 // org.springframework.boot.ImageBanner this
        start local 1 // java.awt.image.BufferedImage image
        start local 2 // int margin
        start local 3 // boolean invert
        start local 4 // org.springframework.boot.ansi.AnsiColors$BitDepth bitDepth
        start local 5 // org.springframework.boot.ImageBanner$PixelMode pixelMode
        start local 6 // java.io.PrintStream out
         0: .line 203
            iload 3 /* invert */
            ifeq 1
            getstatic org.springframework.boot.ansi.AnsiBackground.BLACK:Lorg/springframework/boot/ansi/AnsiBackground;
            goto 2
      StackMap locals:
      StackMap stack:
         1: getstatic org.springframework.boot.ansi.AnsiBackground.DEFAULT:Lorg/springframework/boot/ansi/AnsiBackground;
      StackMap locals:
      StackMap stack: org.springframework.boot.ansi.AnsiBackground
         2: astore 7 /* background */
        start local 7 // org.springframework.boot.ansi.AnsiElement background
         3: .line 204
            aload 6 /* out */
            getstatic org.springframework.boot.ansi.AnsiColor.DEFAULT:Lorg/springframework/boot/ansi/AnsiColor;
            invokestatic org.springframework.boot.ansi.AnsiOutput.encode:(Lorg/springframework/boot/ansi/AnsiElement;)Ljava/lang/String;
            invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
         4: .line 205
            aload 6 /* out */
            aload 7 /* background */
            invokestatic org.springframework.boot.ansi.AnsiOutput.encode:(Lorg/springframework/boot/ansi/AnsiElement;)Ljava/lang/String;
            invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
         5: .line 206
            aload 6 /* out */
            invokevirtual java.io.PrintStream.println:()V
         6: .line 207
            aload 6 /* out */
            invokevirtual java.io.PrintStream.println:()V
         7: .line 208
            getstatic org.springframework.boot.ansi.AnsiColor.DEFAULT:Lorg/springframework/boot/ansi/AnsiColor;
            astore 8 /* lastColor */
        start local 8 // org.springframework.boot.ansi.AnsiElement lastColor
         8: .line 209
            new org.springframework.boot.ansi.AnsiColors
            dup
            aload 4 /* bitDepth */
            invokespecial org.springframework.boot.ansi.AnsiColors.<init>:(Lorg/springframework/boot/ansi/AnsiColors$BitDepth;)V
            astore 9 /* colors */
        start local 9 // org.springframework.boot.ansi.AnsiColors colors
         9: .line 210
            iconst_0
            istore 10 /* y */
        start local 10 // int y
        10: goto 28
        11: .line 211
      StackMap locals: org.springframework.boot.ImageBanner java.awt.image.BufferedImage int int org.springframework.boot.ansi.AnsiColors$BitDepth org.springframework.boot.ImageBanner$PixelMode java.io.PrintStream org.springframework.boot.ansi.AnsiElement org.springframework.boot.ansi.AnsiElement org.springframework.boot.ansi.AnsiColors int
      StackMap stack:
            iconst_0
            istore 11 /* i */
        start local 11 // int i
        12: goto 15
        13: .line 212
      StackMap locals: int
      StackMap stack:
            aload 6 /* out */
            ldc " "
            invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
        14: .line 211
            iinc 11 /* i */ 1
      StackMap locals:
      StackMap stack:
        15: iload 11 /* i */
            iload 2 /* margin */
            if_icmplt 13
        end local 11 // int i
        16: .line 214
            iconst_0
            istore 11 /* x */
        start local 11 // int x
        17: goto 25
        18: .line 215
      StackMap locals:
      StackMap stack:
            new java.awt.Color
            dup
            aload 1 /* image */
            iload 11 /* x */
            iload 10 /* y */
            invokevirtual java.awt.image.BufferedImage.getRGB:(II)I
            iconst_0
            invokespecial java.awt.Color.<init>:(IZ)V
            astore 12 /* color */
        start local 12 // java.awt.Color color
        19: .line 216
            aload 9 /* colors */
            aload 12 /* color */
            invokevirtual org.springframework.boot.ansi.AnsiColors.findClosest:(Ljava/awt/Color;)Lorg/springframework/boot/ansi/AnsiElement;
            astore 13 /* ansiColor */
        start local 13 // org.springframework.boot.ansi.AnsiElement ansiColor
        20: .line 217
            aload 13 /* ansiColor */
            aload 8 /* lastColor */
            if_acmpeq 23
        21: .line 218
            aload 6 /* out */
            aload 13 /* ansiColor */
            invokestatic org.springframework.boot.ansi.AnsiOutput.encode:(Lorg/springframework/boot/ansi/AnsiElement;)Ljava/lang/String;
            invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
        22: .line 219
            aload 13 /* ansiColor */
            astore 8 /* lastColor */
        23: .line 221
      StackMap locals: java.awt.Color org.springframework.boot.ansi.AnsiElement
      StackMap stack:
            aload 6 /* out */
            aload 0 /* this */
            aload 12 /* color */
            iload 3 /* invert */
            aload 5 /* pixelMode */
            invokevirtual org.springframework.boot.ImageBanner.getAsciiPixel:(Ljava/awt/Color;ZLorg/springframework/boot/ImageBanner$PixelMode;)C
            invokevirtual java.io.PrintStream.print:(C)V
        end local 13 // org.springframework.boot.ansi.AnsiElement ansiColor
        end local 12 // java.awt.Color color
        24: .line 214
            iinc 11 /* x */ 1
      StackMap locals:
      StackMap stack:
        25: iload 11 /* x */
            aload 1 /* image */
            invokevirtual java.awt.image.BufferedImage.getWidth:()I
            if_icmplt 18
        end local 11 // int x
        26: .line 223
            aload 6 /* out */
            invokevirtual java.io.PrintStream.println:()V
        27: .line 210
            iinc 10 /* y */ 1
      StackMap locals:
      StackMap stack:
        28: iload 10 /* y */
            aload 1 /* image */
            invokevirtual java.awt.image.BufferedImage.getHeight:()I
            if_icmplt 11
        end local 10 // int y
        29: .line 225
            aload 6 /* out */
            getstatic org.springframework.boot.ansi.AnsiColor.DEFAULT:Lorg/springframework/boot/ansi/AnsiColor;
            invokestatic org.springframework.boot.ansi.AnsiOutput.encode:(Lorg/springframework/boot/ansi/AnsiElement;)Ljava/lang/String;
            invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
        30: .line 226
            aload 6 /* out */
            getstatic org.springframework.boot.ansi.AnsiBackground.DEFAULT:Lorg/springframework/boot/ansi/AnsiBackground;
            invokestatic org.springframework.boot.ansi.AnsiOutput.encode:(Lorg/springframework/boot/ansi/AnsiElement;)Ljava/lang/String;
            invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
        31: .line 227
            aload 6 /* out */
            invokevirtual java.io.PrintStream.println:()V
        32: .line 228
            return
        end local 9 // org.springframework.boot.ansi.AnsiColors colors
        end local 8 // org.springframework.boot.ansi.AnsiElement lastColor
        end local 7 // org.springframework.boot.ansi.AnsiElement background
        end local 6 // java.io.PrintStream out
        end local 5 // org.springframework.boot.ImageBanner$PixelMode pixelMode
        end local 4 // org.springframework.boot.ansi.AnsiColors$BitDepth bitDepth
        end local 3 // boolean invert
        end local 2 // int margin
        end local 1 // java.awt.image.BufferedImage image
        end local 0 // org.springframework.boot.ImageBanner this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   33     0        this  Lorg/springframework/boot/ImageBanner;
            0   33     1       image  Ljava/awt/image/BufferedImage;
            0   33     2      margin  I
            0   33     3      invert  Z
            0   33     4    bitDepth  Lorg/springframework/boot/ansi/AnsiColors$BitDepth;
            0   33     5   pixelMode  Lorg/springframework/boot/ImageBanner$PixelMode;
            0   33     6         out  Ljava/io/PrintStream;
            3   33     7  background  Lorg/springframework/boot/ansi/AnsiElement;
            8   33     8   lastColor  Lorg/springframework/boot/ansi/AnsiElement;
            9   33     9      colors  Lorg/springframework/boot/ansi/AnsiColors;
           10   29    10           y  I
           12   16    11           i  I
           17   26    11           x  I
           19   24    12       color  Ljava/awt/Color;
           20   24    13   ansiColor  Lorg/springframework/boot/ansi/AnsiElement;
    MethodParameters:
           Name  Flags
      image      
      margin     
      invert     
      bitDepth   
      pixelMode  
      out        

  private char getAsciiPixel(java.awt.Color, boolean, org.springframework.boot.ImageBanner$PixelMode);
    descriptor: (Ljava/awt/Color;ZLorg/springframework/boot/ImageBanner$PixelMode;)C
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=10, args_size=4
        start local 0 // org.springframework.boot.ImageBanner this
        start local 1 // java.awt.Color color
        start local 2 // boolean dark
        start local 3 // org.springframework.boot.ImageBanner$PixelMode pixelMode
         0: .line 231
            aload 3 /* pixelMode */
            invokevirtual org.springframework.boot.ImageBanner$PixelMode.getPixels:()[C
            astore 4 /* pixels */
        start local 4 // char[] pixels
         1: .line 232
            bipush 10
            aload 4 /* pixels */
            arraylength
            idiv
            bipush 10
            imul
            istore 5 /* increment */
        start local 5 // int increment
         2: .line 233
            iload 5 /* increment */
            aload 4 /* pixels */
            arraylength
            imul
            istore 6 /* start */
        start local 6 // int start
         3: .line 234
            aload 0 /* this */
            aload 1 /* color */
            iload 2 /* dark */
            invokevirtual org.springframework.boot.ImageBanner.getLuminance:(Ljava/awt/Color;Z)I
            i2d
            dstore 7 /* luminance */
        start local 7 // double luminance
         4: .line 235
            iconst_0
            istore 9 /* i */
        start local 9 // int i
         5: goto 9
         6: .line 236
      StackMap locals: org.springframework.boot.ImageBanner java.awt.Color int org.springframework.boot.ImageBanner$PixelMode char[] int int double int
      StackMap stack:
            dload 7 /* luminance */
            iload 6 /* start */
            iload 9 /* i */
            iload 5 /* increment */
            imul
            isub
            i2d
            dcmpl
            iflt 8
         7: .line 237
            aload 4 /* pixels */
            iload 9 /* i */
            caload
            ireturn
         8: .line 235
      StackMap locals:
      StackMap stack:
            iinc 9 /* i */ 1
      StackMap locals:
      StackMap stack:
         9: iload 9 /* i */
            aload 4 /* pixels */
            arraylength
            if_icmplt 6
        end local 9 // int i
        10: .line 240
            aload 4 /* pixels */
            aload 4 /* pixels */
            arraylength
            iconst_1
            isub
            caload
            ireturn
        end local 7 // double luminance
        end local 6 // int start
        end local 5 // int increment
        end local 4 // char[] pixels
        end local 3 // org.springframework.boot.ImageBanner$PixelMode pixelMode
        end local 2 // boolean dark
        end local 1 // java.awt.Color color
        end local 0 // org.springframework.boot.ImageBanner this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   11     0       this  Lorg/springframework/boot/ImageBanner;
            0   11     1      color  Ljava/awt/Color;
            0   11     2       dark  Z
            0   11     3  pixelMode  Lorg/springframework/boot/ImageBanner$PixelMode;
            1   11     4     pixels  [C
            2   11     5  increment  I
            3   11     6      start  I
            4   11     7  luminance  D
            5   10     9          i  I
    MethodParameters:
           Name  Flags
      color      
      dark       
      pixelMode  

  private int getLuminance(java.awt.Color, boolean);
    descriptor: (Ljava/awt/Color;Z)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=5, args_size=3
        start local 0 // org.springframework.boot.ImageBanner this
        start local 1 // java.awt.Color color
        start local 2 // boolean inverse
         0: .line 244
            dconst_0
            dstore 3 /* luminance */
        start local 3 // double luminance
         1: .line 245
            dload 3 /* luminance */
            aload 0 /* this */
            aload 1 /* color */
            invokevirtual java.awt.Color.getRed:()I
            iload 2 /* inverse */
            getstatic org.springframework.boot.ImageBanner.RGB_WEIGHT:[D
            iconst_0
            daload
            invokevirtual org.springframework.boot.ImageBanner.getLuminance:(IZD)D
            dadd
            dstore 3 /* luminance */
         2: .line 246
            dload 3 /* luminance */
            aload 0 /* this */
            aload 1 /* color */
            invokevirtual java.awt.Color.getGreen:()I
            iload 2 /* inverse */
            getstatic org.springframework.boot.ImageBanner.RGB_WEIGHT:[D
            iconst_1
            daload
            invokevirtual org.springframework.boot.ImageBanner.getLuminance:(IZD)D
            dadd
            dstore 3 /* luminance */
         3: .line 247
            dload 3 /* luminance */
            aload 0 /* this */
            aload 1 /* color */
            invokevirtual java.awt.Color.getBlue:()I
            iload 2 /* inverse */
            getstatic org.springframework.boot.ImageBanner.RGB_WEIGHT:[D
            iconst_2
            daload
            invokevirtual org.springframework.boot.ImageBanner.getLuminance:(IZD)D
            dadd
            dstore 3 /* luminance */
         4: .line 248
            dload 3 /* luminance */
            ldc 255.0
            ddiv
            ldc 100.0
            dmul
            invokestatic java.lang.Math.ceil:(D)D
            d2i
            ireturn
        end local 3 // double luminance
        end local 2 // boolean inverse
        end local 1 // java.awt.Color color
        end local 0 // org.springframework.boot.ImageBanner this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    5     0       this  Lorg/springframework/boot/ImageBanner;
            0    5     1      color  Ljava/awt/Color;
            0    5     2    inverse  Z
            1    5     3  luminance  D
    MethodParameters:
         Name  Flags
      color    
      inverse  

  private double getLuminance(int, boolean, double);
    descriptor: (IZD)D
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // org.springframework.boot.ImageBanner this
        start local 1 // int component
        start local 2 // boolean inverse
        start local 3 // double weight
         0: .line 252
            iload 2 /* inverse */
            ifeq 1
            sipush 255
            iload 1 /* component */
            isub
            goto 2
      StackMap locals:
      StackMap stack:
         1: iload 1 /* component */
      StackMap locals:
      StackMap stack: int
         2: i2d
            dload 3 /* weight */
            dmul
            dreturn
        end local 3 // double weight
        end local 2 // boolean inverse
        end local 1 // int component
        end local 0 // org.springframework.boot.ImageBanner this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0       this  Lorg/springframework/boot/ImageBanner;
            0    3     1  component  I
            0    3     2    inverse  Z
            0    3     3     weight  D
    MethodParameters:
           Name  Flags
      component  
      inverse    
      weight     

  private void sleep(int);
    descriptor: (I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.boot.ImageBanner this
        start local 1 // int delay
         0: .line 257
            iload 1 /* delay */
            i2l
            invokestatic java.lang.Thread.sleep:(J)V
         1: .line 258
            goto 4
         2: .line 259
      StackMap locals:
      StackMap stack: java.lang.InterruptedException
            pop
         3: .line 260
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokevirtual java.lang.Thread.interrupt:()V
         4: .line 262
      StackMap locals:
      StackMap stack:
            return
        end local 1 // int delay
        end local 0 // org.springframework.boot.ImageBanner this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0   this  Lorg/springframework/boot/ImageBanner;
            0    5     1  delay  I
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.InterruptedException
    MethodParameters:
       Name  Flags
      delay  
}
SourceFile: "ImageBanner.java"
NestMembers:
  org.springframework.boot.ImageBanner$Frame  org.springframework.boot.ImageBanner$PixelMode
InnerClasses:
  private Frame = org.springframework.boot.ImageBanner$Frame of org.springframework.boot.ImageBanner
  public final PixelMode = org.springframework.boot.ImageBanner$PixelMode of org.springframework.boot.ImageBanner
  public final BitDepth = org.springframework.boot.ansi.AnsiColors$BitDepth of org.springframework.boot.ansi.AnsiColors