public final class org.springframework.boot.SpringBootVersion
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: org.springframework.boot.SpringBootVersion
  super_class: java.lang.Object
{
  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.boot.SpringBootVersion this
         0: .line 47
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 48
            return
        end local 0 // org.springframework.boot.SpringBootVersion this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/springframework/boot/SpringBootVersion;

  public static java.lang.String getVersion();
    descriptor: ()Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 57
            invokestatic org.springframework.boot.SpringBootVersion.determineSpringBootVersion:()Ljava/lang/String;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static java.lang.String determineSpringBootVersion();
    descriptor: ()Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=7, args_size=0
         0: .line 61
            ldc Lorg/springframework/boot/SpringBootVersion;
            invokevirtual java.lang.Class.getPackage:()Ljava/lang/Package;
            invokevirtual java.lang.Package.getImplementationVersion:()Ljava/lang/String;
            astore 0 /* implementationVersion */
        start local 0 // java.lang.String implementationVersion
         1: .line 62
            aload 0 /* implementationVersion */
            ifnull 3
         2: .line 63
            aload 0 /* implementationVersion */
            areturn
         3: .line 65
      StackMap locals: java.lang.String
      StackMap stack:
            ldc Lorg/springframework/boot/SpringBootVersion;
            invokevirtual java.lang.Class.getProtectionDomain:()Ljava/security/ProtectionDomain;
            invokevirtual java.security.ProtectionDomain.getCodeSource:()Ljava/security/CodeSource;
            astore 1 /* codeSource */
        start local 1 // java.security.CodeSource codeSource
         4: .line 66
            aload 1 /* codeSource */
            ifnonnull 6
         5: .line 67
            aconst_null
            areturn
         6: .line 69
      StackMap locals: java.security.CodeSource
      StackMap stack:
            aload 1 /* codeSource */
            invokevirtual java.security.CodeSource.getLocation:()Ljava/net/URL;
            astore 2 /* codeSourceLocation */
        start local 2 // java.net.URL codeSourceLocation
         7: .line 71
            aload 2 /* codeSourceLocation */
            invokevirtual java.net.URL.openConnection:()Ljava/net/URLConnection;
            astore 3 /* connection */
        start local 3 // java.net.URLConnection connection
         8: .line 72
            aload 3 /* connection */
            instanceof java.net.JarURLConnection
            ifeq 11
         9: .line 73
            aload 3 /* connection */
            checkcast java.net.JarURLConnection
            invokevirtual java.net.JarURLConnection.getJarFile:()Ljava/util/jar/JarFile;
            invokestatic org.springframework.boot.SpringBootVersion.getImplementationVersion:(Ljava/util/jar/JarFile;)Ljava/lang/String;
        10: areturn
        11: .line 75
      StackMap locals: java.net.URL java.net.URLConnection
      StackMap stack:
            aconst_null
            astore 4
            aconst_null
            astore 5
        12: new java.util.jar.JarFile
            dup
            new java.io.File
            dup
            aload 2 /* codeSourceLocation */
            invokevirtual java.net.URL.toURI:()Ljava/net/URI;
            invokespecial java.io.File.<init>:(Ljava/net/URI;)V
            invokespecial java.util.jar.JarFile.<init>:(Ljava/io/File;)V
            astore 6 /* jarFile */
        start local 6 // java.util.jar.JarFile jarFile
        13: .line 76
            aload 6 /* jarFile */
            invokestatic org.springframework.boot.SpringBootVersion.getImplementationVersion:(Ljava/util/jar/JarFile;)Ljava/lang/String;
        14: .line 77
            aload 6 /* jarFile */
            ifnull 15
            aload 6 /* jarFile */
            invokevirtual java.util.jar.JarFile.close:()V
        15: .line 76
      StackMap locals: java.lang.String java.security.CodeSource java.net.URL java.net.URLConnection java.lang.Throwable java.lang.Throwable java.util.jar.JarFile
      StackMap stack: java.lang.String
            areturn
      StackMap locals:
      StackMap stack: java.lang.Throwable
        16: astore 4
        17: .line 77
            aload 6 /* jarFile */
            ifnull 18
            aload 6 /* jarFile */
            invokevirtual java.util.jar.JarFile.close:()V
        end local 6 // java.util.jar.JarFile jarFile
      StackMap locals:
      StackMap stack:
        18: aload 4
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        19: astore 5
            aload 4
            ifnonnull 20
            aload 5
            astore 4
            goto 21
      StackMap locals:
      StackMap stack:
        20: aload 4
            aload 5
            if_acmpeq 21
            aload 4
            aload 5
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        21: aload 4
            athrow
        end local 3 // java.net.URLConnection connection
        22: .line 79
      StackMap locals: java.lang.String java.security.CodeSource java.net.URL
      StackMap stack: java.lang.Exception
            pop
        23: .line 80
            aconst_null
            areturn
        end local 2 // java.net.URL codeSourceLocation
        end local 1 // java.security.CodeSource codeSource
        end local 0 // java.lang.String implementationVersion
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            1   24     0  implementationVersion  Ljava/lang/String;
            4   24     1             codeSource  Ljava/security/CodeSource;
            7   24     2     codeSourceLocation  Ljava/net/URL;
            8   22     3             connection  Ljava/net/URLConnection;
           13   18     6                jarFile  Ljava/util/jar/JarFile;
      Exception table:
        from    to  target  type
          13    14      16  any
          12    15      19  any
          16    19      19  any
           7    10      22  Class java.lang.Exception
          11    15      22  Class java.lang.Exception
          16    22      22  Class java.lang.Exception

  private static java.lang.String getImplementationVersion(java.util.jar.JarFile);
    descriptor: (Ljava/util/jar/JarFile;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.util.jar.JarFile jarFile
         0: .line 85
            aload 0 /* jarFile */
            invokevirtual java.util.jar.JarFile.getManifest:()Ljava/util/jar/Manifest;
            invokevirtual java.util.jar.Manifest.getMainAttributes:()Ljava/util/jar/Attributes;
            getstatic java.util.jar.Attributes$Name.IMPLEMENTATION_VERSION:Ljava/util/jar/Attributes$Name;
            invokevirtual java.util.jar.Attributes.getValue:(Ljava/util/jar/Attributes$Name;)Ljava/lang/String;
            areturn
        end local 0 // java.util.jar.JarFile jarFile
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  jarFile  Ljava/util/jar/JarFile;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
         Name  Flags
      jarFile  
}
SourceFile: "SpringBootVersion.java"
InnerClasses:
  public Name = java.util.jar.Attributes$Name of java.util.jar.Attributes