public abstract class org.springframework.boot.ansi.AnsiOutput
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: org.springframework.boot.ansi.AnsiOutput
  super_class: java.lang.Object
{
  private static final java.lang.String ENCODE_JOIN;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: ";"

  private static org.springframework.boot.ansi.AnsiOutput$Enabled enabled;
    descriptor: Lorg/springframework/boot/ansi/AnsiOutput$Enabled;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static java.lang.Boolean consoleAvailable;
    descriptor: Ljava/lang/Boolean;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static java.lang.Boolean ansiCapable;
    descriptor: Ljava/lang/Boolean;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static final java.lang.String OPERATING_SYSTEM_NAME;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.lang.String ENCODE_START;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "\u001B["

  private static final java.lang.String ENCODE_END;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "m"

  private static final java.lang.String RESET;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 34
            getstatic org.springframework.boot.ansi.AnsiOutput$Enabled.DETECT:Lorg/springframework/boot/ansi/AnsiOutput$Enabled;
            putstatic org.springframework.boot.ansi.AnsiOutput.enabled:Lorg/springframework/boot/ansi/AnsiOutput$Enabled;
         1: .line 40
            ldc "os.name"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            getstatic java.util.Locale.ENGLISH:Ljava/util/Locale;
            invokevirtual java.lang.String.toLowerCase:(Ljava/util/Locale;)Ljava/lang/String;
            putstatic org.springframework.boot.ansi.AnsiOutput.OPERATING_SYSTEM_NAME:Ljava/lang/String;
         2: .line 46
            new java.lang.StringBuilder
            dup
            ldc "0;"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            getstatic org.springframework.boot.ansi.AnsiColor.DEFAULT:Lorg/springframework/boot/ansi/AnsiColor;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            putstatic org.springframework.boot.ansi.AnsiOutput.RESET:Ljava/lang/String;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.boot.ansi.AnsiOutput this
         0: .line 30
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // org.springframework.boot.ansi.AnsiOutput this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/boot/ansi/AnsiOutput;

  public static void setEnabled(org.springframework.boot.ansi.AnsiOutput$Enabled);
    descriptor: (Lorg/springframework/boot/ansi/AnsiOutput$Enabled;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.springframework.boot.ansi.AnsiOutput$Enabled enabled
         0: .line 53
            aload 0 /* enabled */
            ldc "Enabled must not be null"
            invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
         1: .line 54
            aload 0 /* enabled */
            putstatic org.springframework.boot.ansi.AnsiOutput.enabled:Lorg/springframework/boot/ansi/AnsiOutput$Enabled;
         2: .line 55
            return
        end local 0 // org.springframework.boot.ansi.AnsiOutput$Enabled enabled
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0  enabled  Lorg/springframework/boot/ansi/AnsiOutput$Enabled;
    MethodParameters:
         Name  Flags
      enabled  

  public static org.springframework.boot.ansi.AnsiOutput$Enabled getEnabled();
    descriptor: ()Lorg/springframework/boot/ansi/AnsiOutput$Enabled;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 62
            getstatic org.springframework.boot.ansi.AnsiOutput.enabled:Lorg/springframework/boot/ansi/AnsiOutput$Enabled;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static void setConsoleAvailable(java.lang.Boolean);
    descriptor: (Ljava/lang/Boolean;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.Boolean consoleAvailable
         0: .line 71
            aload 0 /* consoleAvailable */
            putstatic org.springframework.boot.ansi.AnsiOutput.consoleAvailable:Ljava/lang/Boolean;
         1: .line 72
            return
        end local 0 // java.lang.Boolean consoleAvailable
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    2     0  consoleAvailable  Ljava/lang/Boolean;
    MethodParameters:
                  Name  Flags
      consoleAvailable  

  public static java.lang.String encode(org.springframework.boot.ansi.AnsiElement);
    descriptor: (Lorg/springframework/boot/ansi/AnsiElement;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.springframework.boot.ansi.AnsiElement element
         0: .line 80
            invokestatic org.springframework.boot.ansi.AnsiOutput.isEnabled:()Z
            ifeq 2
         1: .line 81
            new java.lang.StringBuilder
            dup
            ldc "\u001B["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* element */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "m"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
         2: .line 83
      StackMap locals:
      StackMap stack:
            ldc ""
            areturn
        end local 0 // org.springframework.boot.ansi.AnsiElement element
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0  element  Lorg/springframework/boot/ansi/AnsiElement;
    MethodParameters:
         Name  Flags
      element  

  public static java.lang.String toString(java.lang.Object[]);
    descriptor: ([Ljava/lang/Object;)Ljava/lang/String;
    flags: (0x0089) ACC_PUBLIC, ACC_STATIC, ACC_VARARGS
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // java.lang.Object[] elements
         0: .line 93
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 1 /* sb */
        start local 1 // java.lang.StringBuilder sb
         1: .line 94
            invokestatic org.springframework.boot.ansi.AnsiOutput.isEnabled:()Z
            ifeq 4
         2: .line 95
            aload 1 /* sb */
            aload 0 /* elements */
            invokestatic org.springframework.boot.ansi.AnsiOutput.buildEnabled:(Ljava/lang/StringBuilder;[Ljava/lang/Object;)V
         3: .line 96
            goto 5
         4: .line 98
      StackMap locals: java.lang.StringBuilder
      StackMap stack:
            aload 1 /* sb */
            aload 0 /* elements */
            invokestatic org.springframework.boot.ansi.AnsiOutput.buildDisabled:(Ljava/lang/StringBuilder;[Ljava/lang/Object;)V
         5: .line 100
      StackMap locals:
      StackMap stack:
            aload 1 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 1 // java.lang.StringBuilder sb
        end local 0 // java.lang.Object[] elements
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0  elements  [Ljava/lang/Object;
            1    6     1        sb  Ljava/lang/StringBuilder;
    MethodParameters:
          Name  Flags
      elements  

  private static void buildEnabled(java.lang.StringBuilder, java.lang.Object[]);
    descriptor: (Ljava/lang/StringBuilder;[Ljava/lang/Object;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=8, args_size=2
        start local 0 // java.lang.StringBuilder sb
        start local 1 // java.lang.Object[] elements
         0: .line 104
            iconst_0
            istore 2 /* writingAnsi */
        start local 2 // boolean writingAnsi
         1: .line 105
            iconst_0
            istore 3 /* containsEncoding */
        start local 3 // boolean containsEncoding
         2: .line 106
            aload 1 /* elements */
            dup
            astore 7
            arraylength
            istore 6
            iconst_0
            istore 5
            goto 17
      StackMap locals: java.lang.StringBuilder java.lang.Object[] int int top int int java.lang.Object[]
      StackMap stack:
         3: aload 7
            iload 5
            aaload
            astore 4 /* element */
        start local 4 // java.lang.Object element
         4: .line 107
            aload 4 /* element */
            instanceof org.springframework.boot.ansi.AnsiElement
            ifeq 12
         5: .line 108
            iconst_1
            istore 3 /* containsEncoding */
         6: .line 109
            iload 2 /* writingAnsi */
            ifne 10
         7: .line 110
            aload 0 /* sb */
            ldc "\u001B["
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         8: .line 111
            iconst_1
            istore 2 /* writingAnsi */
         9: .line 112
            goto 15
        10: .line 114
      StackMap locals: java.lang.StringBuilder java.lang.Object[] int int java.lang.Object int int java.lang.Object[]
      StackMap stack:
            aload 0 /* sb */
            ldc ";"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        11: .line 116
            goto 15
        12: .line 118
      StackMap locals:
      StackMap stack:
            iload 2 /* writingAnsi */
            ifeq 15
        13: .line 119
            aload 0 /* sb */
            ldc "m"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        14: .line 120
            iconst_0
            istore 2 /* writingAnsi */
        15: .line 123
      StackMap locals:
      StackMap stack:
            aload 0 /* sb */
            aload 4 /* element */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            pop
        end local 4 // java.lang.Object element
        16: .line 106
            iinc 5 1
      StackMap locals: java.lang.StringBuilder java.lang.Object[] int int top int int java.lang.Object[]
      StackMap stack:
        17: iload 5
            iload 6
            if_icmplt 3
        18: .line 125
            iload 3 /* containsEncoding */
            ifeq 24
        19: .line 126
            aload 0 /* sb */
            iload 2 /* writingAnsi */
            ifeq 20
            ldc ";"
            goto 21
      StackMap locals: java.lang.StringBuilder java.lang.Object[] int int
      StackMap stack: java.lang.StringBuilder
        20: ldc "\u001B["
      StackMap locals: java.lang.StringBuilder java.lang.Object[] int int
      StackMap stack: java.lang.StringBuilder java.lang.String
        21: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        22: .line 127
            aload 0 /* sb */
            getstatic org.springframework.boot.ansi.AnsiOutput.RESET:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        23: .line 128
            aload 0 /* sb */
            ldc "m"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        24: .line 130
      StackMap locals:
      StackMap stack:
            return
        end local 3 // boolean containsEncoding
        end local 2 // boolean writingAnsi
        end local 1 // java.lang.Object[] elements
        end local 0 // java.lang.StringBuilder sb
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   25     0                sb  Ljava/lang/StringBuilder;
            0   25     1          elements  [Ljava/lang/Object;
            1   25     2       writingAnsi  Z
            2   25     3  containsEncoding  Z
            4   16     4           element  Ljava/lang/Object;
    MethodParameters:
          Name  Flags
      sb        
      elements  

  private static void buildDisabled(java.lang.StringBuilder, java.lang.Object[]);
    descriptor: (Ljava/lang/StringBuilder;[Ljava/lang/Object;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=6, args_size=2
        start local 0 // java.lang.StringBuilder sb
        start local 1 // java.lang.Object[] elements
         0: .line 133
            aload 1 /* elements */
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 5
      StackMap locals: java.lang.StringBuilder java.lang.Object[] top int int java.lang.Object[]
      StackMap stack:
         1: aload 5
            iload 3
            aaload
            astore 2 /* element */
        start local 2 // java.lang.Object element
         2: .line 134
            aload 2 /* element */
            instanceof org.springframework.boot.ansi.AnsiElement
            ifne 4
            aload 2 /* element */
            ifnull 4
         3: .line 135
            aload 0 /* sb */
            aload 2 /* element */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            pop
        end local 2 // java.lang.Object element
         4: .line 133
      StackMap locals:
      StackMap stack:
            iinc 3 1
      StackMap locals:
      StackMap stack:
         5: iload 3
            iload 4
            if_icmplt 1
         6: .line 138
            return
        end local 1 // java.lang.Object[] elements
        end local 0 // java.lang.StringBuilder sb
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0        sb  Ljava/lang/StringBuilder;
            0    7     1  elements  [Ljava/lang/Object;
            2    4     2   element  Ljava/lang/Object;
    MethodParameters:
          Name  Flags
      sb        
      elements  

  private static boolean isEnabled();
    descriptor: ()Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 141
            getstatic org.springframework.boot.ansi.AnsiOutput.enabled:Lorg/springframework/boot/ansi/AnsiOutput$Enabled;
            getstatic org.springframework.boot.ansi.AnsiOutput$Enabled.DETECT:Lorg/springframework/boot/ansi/AnsiOutput$Enabled;
            if_acmpne 4
         1: .line 142
            getstatic org.springframework.boot.ansi.AnsiOutput.ansiCapable:Ljava/lang/Boolean;
            ifnonnull 3
         2: .line 143
            invokestatic org.springframework.boot.ansi.AnsiOutput.detectIfAnsiCapable:()Z
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            putstatic org.springframework.boot.ansi.AnsiOutput.ansiCapable:Ljava/lang/Boolean;
         3: .line 145
      StackMap locals:
      StackMap stack:
            getstatic org.springframework.boot.ansi.AnsiOutput.ansiCapable:Ljava/lang/Boolean;
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ireturn
         4: .line 147
      StackMap locals:
      StackMap stack:
            getstatic org.springframework.boot.ansi.AnsiOutput.enabled:Lorg/springframework/boot/ansi/AnsiOutput$Enabled;
            getstatic org.springframework.boot.ansi.AnsiOutput$Enabled.ALWAYS:Lorg/springframework/boot/ansi/AnsiOutput$Enabled;
            if_acmpne 5
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         5: iconst_0
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static boolean detectIfAnsiCapable();
    descriptor: ()Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 152
            getstatic java.lang.Boolean.FALSE:Ljava/lang/Boolean;
            getstatic org.springframework.boot.ansi.AnsiOutput.consoleAvailable:Ljava/lang/Boolean;
            invokevirtual java.lang.Boolean.equals:(Ljava/lang/Object;)Z
            ifeq 2
         1: .line 153
            iconst_0
            ireturn
         2: .line 155
      StackMap locals:
      StackMap stack:
            getstatic org.springframework.boot.ansi.AnsiOutput.consoleAvailable:Ljava/lang/Boolean;
            ifnonnull 4
            invokestatic java.lang.System.console:()Ljava/io/Console;
            ifnonnull 4
         3: .line 156
            iconst_0
            ireturn
         4: .line 158
      StackMap locals:
      StackMap stack:
            getstatic org.springframework.boot.ansi.AnsiOutput.OPERATING_SYSTEM_NAME:Ljava/lang/String;
            ldc "win"
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            ifeq 5
            iconst_0
            goto 6
      StackMap locals:
      StackMap stack:
         5: iconst_1
      StackMap locals:
      StackMap stack: int
         6: ireturn
         7: .line 160
      StackMap locals:
      StackMap stack: java.lang.Throwable
            pop
         8: .line 161
            iconst_0
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           0     1       7  Class java.lang.Throwable
           2     3       7  Class java.lang.Throwable
           4     6       7  Class java.lang.Throwable
}
SourceFile: "AnsiOutput.java"
NestMembers:
  org.springframework.boot.ansi.AnsiOutput$Enabled
InnerClasses:
  public final Enabled = org.springframework.boot.ansi.AnsiOutput$Enabled of org.springframework.boot.ansi.AnsiOutput