public class org.graalvm.component.installer.ComponentInstallerTest extends org.graalvm.component.installer.CommandTestBase
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.graalvm.component.installer.ComponentInstallerTest
  super_class: org.graalvm.component.installer.CommandTestBase
{
  java.lang.StringBuilder message;
    descriptor: Ljava/lang/StringBuilder;
    flags: (0x0000) 

  boolean cmdReported;
    descriptor: Z
    flags: (0x0000) 

  java.lang.String currentCmd;
    descriptor: Ljava/lang/String;
    flags: (0x0000) 

  java.util.List<java.lang.String> helpLines;
    descriptor: Ljava/util/List;
    flags: (0x0000) 
    Signature: Ljava/util/List<Ljava/lang/String;>;

  java.util.Set<java.lang.String> deprecatedOptions;
    descriptor: Ljava/util/Set;
    flags: (0x0000) 
    Signature: Ljava/util/Set<Ljava/lang/String;>;

  java.util.Set<java.lang.String> allOptions;
    descriptor: Ljava/util/Set;
    flags: (0x0000) 
    Signature: Ljava/util/Set<Ljava/lang/String;>;

  java.util.List<java.lang.String> errors;
    descriptor: Ljava/util/List;
    flags: (0x0000) 
    Signature: Ljava/util/List<Ljava/lang/String;>;

  private org.graalvm.component.installer.ComponentInstallerTest$InstallerExecHelper helper;
    descriptor: Lorg/graalvm/component/installer/ComponentInstallerTest$InstallerExecHelper;
    flags: (0x0002) ACC_PRIVATE

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.graalvm.component.installer.ComponentInstallerTest this
         0: .line 59
            aload 0 /* this */
            invokespecial org.graalvm.component.installer.CommandTestBase.<init>:()V
         1: .line 60
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            putfield org.graalvm.component.installer.ComponentInstallerTest.message:Ljava/lang/StringBuilder;
         2: .line 214
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield org.graalvm.component.installer.ComponentInstallerTest.helpLines:Ljava/util/List;
         3: .line 215
            aload 0 /* this */
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            putfield org.graalvm.component.installer.ComponentInstallerTest.deprecatedOptions:Ljava/util/Set;
         4: .line 216
            aload 0 /* this */
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            putfield org.graalvm.component.installer.ComponentInstallerTest.allOptions:Ljava/util/Set;
         5: .line 239
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield org.graalvm.component.installer.ComponentInstallerTest.errors:Ljava/util/List;
         6: .line 439
            aload 0 /* this */
            new org.graalvm.component.installer.ComponentInstallerTest$InstallerExecHelper
            dup
            invokespecial org.graalvm.component.installer.ComponentInstallerTest$InstallerExecHelper.<init>:()V
            putfield org.graalvm.component.installer.ComponentInstallerTest.helper:Lorg/graalvm/component/installer/ComponentInstallerTest$InstallerExecHelper;
         7: .line 59
            return
        end local 0 // org.graalvm.component.installer.ComponentInstallerTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lorg/graalvm/component/installer/ComponentInstallerTest;

  void startCommand(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.graalvm.component.installer.ComponentInstallerTest this
        start local 1 // java.lang.String cmd
         0: .line 65
            aload 0 /* this */
            iconst_0
            putfield org.graalvm.component.installer.ComponentInstallerTest.cmdReported:Z
         1: .line 66
            aload 0 /* this */
            aload 1 /* cmd */
            putfield org.graalvm.component.installer.ComponentInstallerTest.currentCmd:Ljava/lang/String;
         2: .line 67
            return
        end local 1 // java.lang.String cmd
        end local 0 // org.graalvm.component.installer.ComponentInstallerTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/graalvm/component/installer/ComponentInstallerTest;
            0    3     1   cmd  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      cmd   

  void reportOption(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.graalvm.component.installer.ComponentInstallerTest this
        start local 1 // java.lang.String k
         0: .line 70
            aload 1 /* k */
            invokevirtual java.lang.String.length:()I
            iconst_1
            if_icmpne 2
            aload 1 /* k */
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            invokestatic java.lang.Character.isLetterOrDigit:(C)Z
            ifne 2
         1: .line 71
            return
         2: .line 73
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.component.installer.ComponentInstallerTest.message:Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.length:()I
            ifle 4
         3: .line 74
            aload 0 /* this */
            getfield org.graalvm.component.installer.ComponentInstallerTest.message:Ljava/lang/StringBuilder;
            ldc ", "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         4: .line 76
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.component.installer.ComponentInstallerTest.cmdReported:Z
            ifne 7
         5: .line 77
            aload 0 /* this */
            iconst_1
            putfield org.graalvm.component.installer.ComponentInstallerTest.cmdReported:Z
         6: .line 78
            aload 0 /* this */
            getfield org.graalvm.component.installer.ComponentInstallerTest.message:Ljava/lang/StringBuilder;
            ldc "Command "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.graalvm.component.installer.ComponentInstallerTest.currentCmd:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ": "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         7: .line 80
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.component.installer.ComponentInstallerTest.message:Ljava/lang/StringBuilder;
            aload 1 /* k */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         8: .line 81
            return
        end local 1 // java.lang.String k
        end local 0 // org.graalvm.component.installer.ComponentInstallerTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lorg/graalvm/component/installer/ComponentInstallerTest;
            0    9     1     k  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      k     

  public void testOptionClashBetweenCommandAndGlobal();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=8, args_size=1
        start local 0 // org.graalvm.component.installer.ComponentInstallerTest this
         0: .line 88
            invokestatic org.graalvm.component.installer.ComponentInstaller.initCommands:()V
         1: .line 89
            getstatic org.graalvm.component.installer.ComponentInstaller.commands:Ljava/util/Map;
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 2
            goto 15
      StackMap locals: org.graalvm.component.installer.ComponentInstallerTest top java.util.Iterator
      StackMap stack:
         2: aload 2
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 1 /* cmd */
        start local 1 // java.lang.String cmd
         3: .line 90
            aload 0 /* this */
            aload 1 /* cmd */
            invokevirtual org.graalvm.component.installer.ComponentInstallerTest.startCommand:(Ljava/lang/String;)V
         4: .line 91
            getstatic org.graalvm.component.installer.ComponentInstaller.commands:Ljava/util/Map;
            aload 1 /* cmd */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.graalvm.component.installer.InstallerCommand
            astore 3 /* c */
        start local 3 // org.graalvm.component.installer.InstallerCommand c
         5: .line 92
            aload 3 /* c */
            invokeinterface org.graalvm.component.installer.InstallerCommand.supportedOptions:()Ljava/util/Map;
            astore 4 /* opts */
        start local 4 // java.util.Map opts
         6: .line 93
            aload 4 /* opts */
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 6
            goto 14
      StackMap locals: org.graalvm.component.installer.ComponentInstallerTest java.lang.String java.util.Iterator org.graalvm.component.installer.InstallerCommand java.util.Map top java.util.Iterator
      StackMap stack:
         7: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 5 /* k */
        start local 5 // java.lang.String k
         8: .line 94
            aload 4 /* opts */
            aload 5 /* k */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 7 /* v */
        start local 7 // java.lang.String v
         9: .line 95
            ldc "X"
            aload 7 /* v */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 11
        10: .line 96
            goto 14
        11: .line 98
      StackMap locals: org.graalvm.component.installer.ComponentInstallerTest java.lang.String java.util.Iterator org.graalvm.component.installer.InstallerCommand java.util.Map java.lang.String java.util.Iterator java.lang.String
      StackMap stack:
            getstatic org.graalvm.component.installer.ComponentInstaller.globalOptions:Ljava/util/Map;
            aload 5 /* k */
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifeq 14
        12: .line 99
            getstatic org.graalvm.component.installer.ComponentInstaller.componentOptions:Ljava/util/Map;
            aload 5 /* k */
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifne 14
        13: .line 100
            aload 0 /* this */
            aload 5 /* k */
            invokevirtual org.graalvm.component.installer.ComponentInstallerTest.reportOption:(Ljava/lang/String;)V
        end local 7 // java.lang.String v
        end local 5 // java.lang.String k
        14: .line 93
      StackMap locals: org.graalvm.component.installer.ComponentInstallerTest java.lang.String java.util.Iterator org.graalvm.component.installer.InstallerCommand java.util.Map top java.util.Iterator
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 7
        end local 4 // java.util.Map opts
        end local 3 // org.graalvm.component.installer.InstallerCommand c
        end local 1 // java.lang.String cmd
        15: .line 89
      StackMap locals: org.graalvm.component.installer.ComponentInstallerTest top java.util.Iterator
      StackMap stack:
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
        16: .line 104
            aload 0 /* this */
            getfield org.graalvm.component.installer.ComponentInstallerTest.message:Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.length:()I
            ifle 18
        17: .line 105
            new java.lang.StringBuilder
            dup
            ldc "Command options clashes with the global: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.graalvm.component.installer.ComponentInstallerTest.message:Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic org.junit.Assert.fail:(Ljava/lang/String;)V
        18: .line 107
      StackMap locals: org.graalvm.component.installer.ComponentInstallerTest
      StackMap stack:
            return
        end local 0 // org.graalvm.component.installer.ComponentInstallerTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   19     0  this  Lorg/graalvm/component/installer/ComponentInstallerTest;
            3   15     1   cmd  Ljava/lang/String;
            5   15     3     c  Lorg/graalvm/component/installer/InstallerCommand;
            6   15     4  opts  Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
            8   14     5     k  Ljava/lang/String;
            9   14     7     v  Ljava/lang/String;
    Exceptions:
      throws java.lang.Exception
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testMainOptionsConsistent();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=1
        start local 0 // org.graalvm.component.installer.ComponentInstallerTest this
         0: .line 114
            invokestatic org.graalvm.component.installer.ComponentInstaller.initCommands:()V
         1: .line 115
            aload 0 /* this */
            invokevirtual org.graalvm.component.installer.ComponentInstallerTest.discoverOptions:()V
         2: .line 116
            aload 0 /* this */
            ldc "Global"
            invokevirtual org.graalvm.component.installer.ComponentInstallerTest.startCommand:(Ljava/lang/String;)V
         3: .line 118
            ldc "org.graalvm.component.installer.Bundle"
         4: .line 117
            invokestatic java.util.ResourceBundle.getBundle:(Ljava/lang/String;)Ljava/util/ResourceBundle;
         5: .line 118
            ldc "INFO_Usage"
            invokevirtual java.util.ResourceBundle.getString:(Ljava/lang/String;)Ljava/lang/String;
         6: .line 117
            astore 1 /* help */
        start local 1 // java.lang.String help
         7: .line 119
            new java.util.ArrayList
            dup
            aload 1 /* help */
            ldc "\n"
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
            astore 2 /* lines */
        start local 2 // java.util.List lines
         8: .line 120
            goto 10
         9: .line 121
      StackMap locals: java.lang.String java.util.List
      StackMap stack:
            aload 2 /* lines */
            iconst_0
            invokeinterface java.util.List.remove:(I)Ljava/lang/Object;
            pop
        10: .line 120
      StackMap locals:
      StackMap stack:
            aload 2 /* lines */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.lang.String
            ldc "Common options:"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 9
        11: .line 123
            aload 2 /* lines */
            iconst_0
            invokeinterface java.util.List.remove:(I)Ljava/lang/Object;
            pop
        12: .line 124
            iconst_0
            istore 3 /* index */
        start local 3 // int index
        13: .line 125
            goto 18
        14: .line 126
      StackMap locals: int
      StackMap stack:
            aload 2 /* lines */
            iload 3 /* index */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.lang.String
            invokevirtual java.lang.String.trim:()Ljava/lang/String;
            astore 4 /* tl */
        start local 4 // java.lang.String tl
        15: .line 127
            aload 4 /* tl */
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 17
        16: .line 128
            goto 19
        17: .line 130
      StackMap locals: java.lang.String
      StackMap stack:
            iinc 3 /* index */ 1
        end local 4 // java.lang.String tl
        18: .line 125
      StackMap locals:
      StackMap stack:
            iload 3 /* index */
            aload 2 /* lines */
            invokeinterface java.util.List.size:()I
            if_icmplt 14
        19: .line 132
      StackMap locals:
      StackMap stack:
            aload 2 /* lines */
            iconst_0
            iload 3 /* index */
            invokeinterface java.util.List.subList:(II)Ljava/util/List;
            astore 2 /* lines */
        20: .line 133
            new java.util.HashMap
            dup
            getstatic org.graalvm.component.installer.ComponentInstaller.globalOptions:Ljava/util/Map;
            invokespecial java.util.HashMap.<init>:(Ljava/util/Map;)V
            astore 4 /* globs */
        start local 4 // java.util.Map globs
        21: .line 134
            aload 0 /* this */
            aload 2 /* lines */
            aload 4 /* globs */
            invokevirtual org.graalvm.component.installer.ComponentInstallerTest.checkOptions:(Ljava/util/List;Ljava/util/Map;)Ljava/util/Set;
            pop
        22: .line 135
            new java.lang.StringBuilder
            dup
            ldc "Help inconsistencies found: \n "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "\n"
            aload 0 /* this */
            getfield org.graalvm.component.installer.ComponentInstallerTest.errors:Ljava/util/List;
            invokestatic java.lang.String.join:(Ljava/lang/CharSequence;Ljava/lang/Iterable;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 0 /* this */
            getfield org.graalvm.component.installer.ComponentInstallerTest.errors:Ljava/util/List;
            invokeinterface java.util.List.isEmpty:()Z
            invokestatic org.junit.Assert.assertTrue:(Ljava/lang/String;Z)V
        23: .line 136
            return
        end local 4 // java.util.Map globs
        end local 3 // int index
        end local 2 // java.util.List lines
        end local 1 // java.lang.String help
        end local 0 // org.graalvm.component.installer.ComponentInstallerTest this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   24     0   this  Lorg/graalvm/component/installer/ComponentInstallerTest;
            7   24     1   help  Ljava/lang/String;
            8   24     2  lines  Ljava/util/List<Ljava/lang/String;>;
           13   24     3  index  I
           15   18     4     tl  Ljava/lang/String;
           21   24     4  globs  Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testMainHelpConsistent();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=18, args_size=1
        start local 0 // org.graalvm.component.installer.ComponentInstallerTest this
         0: .line 143
            invokestatic org.graalvm.component.installer.ComponentInstaller.initCommands:()V
         1: .line 144
            aload 0 /* this */
            invokevirtual org.graalvm.component.installer.ComponentInstallerTest.discoverOptions:()V
         2: .line 145
            aload 0 /* this */
            ldc "Global"
            invokevirtual org.graalvm.component.installer.ComponentInstallerTest.startCommand:(Ljava/lang/String;)V
         3: .line 147
            ldc "org.graalvm.component.installer.Bundle"
         4: .line 146
            invokestatic java.util.ResourceBundle.getBundle:(Ljava/lang/String;)Ljava/util/ResourceBundle;
         5: .line 147
            ldc "INFO_Usage"
            invokevirtual java.util.ResourceBundle.getString:(Ljava/lang/String;)Ljava/lang/String;
         6: .line 146
            astore 1 /* help */
        start local 1 // java.lang.String help
         7: .line 148
            aload 1 /* help */
            ldc "\n"
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            astore 2 /* lines */
        start local 2 // java.lang.String[] lines
         8: .line 149
            new java.util.HashMap
            dup
            getstatic org.graalvm.component.installer.ComponentInstaller.commands:Ljava/util/Map;
            invokespecial java.util.HashMap.<init>:(Ljava/util/Map;)V
            astore 3 /* allCmds */
        start local 3 // java.util.Map allCmds
         9: .line 150
            aload 2 /* lines */
            dup
            astore 7
            arraylength
            istore 6
            iconst_0
            istore 5
            goto 54
      StackMap locals: org.graalvm.component.installer.ComponentInstallerTest java.lang.String java.lang.String[] java.util.Map top int int java.lang.String[]
      StackMap stack:
        10: aload 7
            iload 5
            aaload
            astore 4 /* l */
        start local 4 // java.lang.String l
        11: .line 151
            aload 4 /* l */
            ldc "\tgu "
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 13
        12: .line 152
            goto 53
        13: .line 154
      StackMap locals: org.graalvm.component.installer.ComponentInstallerTest java.lang.String java.lang.String[] java.util.Map java.lang.String int int java.lang.String[]
      StackMap stack:
            aload 4 /* l */
            bipush 91
            invokevirtual java.lang.String.indexOf:(I)I
            istore 8 /* oS */
        start local 8 // int oS
        14: .line 155
            aload 4 /* l */
            bipush 93
            invokevirtual java.lang.String.indexOf:(I)I
            istore 9 /* oE */
        start local 9 // int oE
        15: .line 156
            aload 4 /* l */
            bipush 32
            iconst_4
            invokevirtual java.lang.String.indexOf:(II)I
            istore 10 /* sp */
        start local 10 // int sp
        16: .line 157
            aload 4 /* l */
            iconst_4
            iload 10 /* sp */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 11 /* cn */
        start local 11 // java.lang.String cn
        17: .line 158
            aload 11 /* cn */
            ldc "<"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 19
        18: .line 159
            goto 53
        19: .line 161
      StackMap locals: org.graalvm.component.installer.ComponentInstallerTest java.lang.String java.lang.String[] java.util.Map java.lang.String int int java.lang.String[] int int int java.lang.String
      StackMap stack:
            aload 3 /* allCmds */
            aload 11 /* cn */
            invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.graalvm.component.installer.InstallerCommand
            astore 12 /* c */
        start local 12 // org.graalvm.component.installer.InstallerCommand c
        20: .line 162
            aload 12 /* c */
            ifnonnull 22
        21: .line 163
            new java.lang.StringBuilder
            dup
            ldc "Unknown command: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 11 /* cn */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic org.junit.Assert.fail:(Ljava/lang/String;)V
        22: .line 165
      StackMap locals: org.graalvm.component.installer.InstallerCommand
      StackMap stack:
            aload 0 /* this */
            aload 11 /* cn */
            invokevirtual org.graalvm.component.installer.ComponentInstallerTest.startCommand:(Ljava/lang/String;)V
        23: .line 166
            iload 8 /* oS */
            iconst_m1
            if_icmpeq 53
            iload 9 /* oE */
            iconst_m1
            if_icmpne 25
        24: .line 167
            goto 53
        25: .line 169
      StackMap locals:
      StackMap stack:
            new java.util.HashMap
            dup
            aload 12 /* c */
            invokeinterface org.graalvm.component.installer.InstallerCommand.supportedOptions:()Ljava/util/Map;
            invokespecial java.util.HashMap.<init>:(Ljava/util/Map;)V
            astore 13 /* cmdOptions */
        start local 13 // java.util.Map cmdOptions
        26: .line 170
            aload 4 /* l */
            iload 8 /* oS */
            iconst_1
            iadd
            iload 9 /* oE */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 14 /* optString */
        start local 14 // java.lang.String optString
        27: .line 171
            aload 14 /* optString */
            ldc "-"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 30
        28: .line 172
            aload 14 /* optString */
            iconst_1
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 14 /* optString */
        29: .line 173
            goto 31
        30: .line 174
      StackMap locals: java.util.Map java.lang.String
      StackMap stack:
            ldc ""
            astore 14 /* optString */
        31: .line 176
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 15 /* a */
        start local 15 // int a
        32: goto 39
        33: .line 177
      StackMap locals: int
      StackMap stack:
            aload 14 /* optString */
            iload 15 /* a */
            invokevirtual java.lang.String.charAt:(I)C
            istore 16 /* o */
        start local 16 // char o
        34: .line 178
            iload 16 /* o */
            invokestatic java.lang.String.valueOf:(C)Ljava/lang/String;
            astore 17 /* s */
        start local 17 // java.lang.String s
        35: .line 179
            aload 13 /* cmdOptions */
            aload 17 /* s */
            invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            ifnonnull 38
        36: .line 180
            getstatic org.graalvm.component.installer.ComponentInstaller.globalOptions:Ljava/util/Map;
            aload 17 /* s */
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifne 38
        37: .line 181
            aload 0 /* this */
            aload 17 /* s */
            invokevirtual org.graalvm.component.installer.ComponentInstallerTest.reportOption:(Ljava/lang/String;)V
        end local 17 // java.lang.String s
        end local 16 // char o
        38: .line 176
      StackMap locals:
      StackMap stack:
            iinc 15 /* a */ 1
      StackMap locals:
      StackMap stack:
        39: iload 15 /* a */
            aload 14 /* optString */
            invokevirtual java.lang.String.length:()I
            if_icmplt 33
        end local 15 // int a
        40: .line 185
            aload 0 /* this */
            getfield org.graalvm.component.installer.ComponentInstallerTest.message:Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.length:()I
            ifle 42
        41: .line 186
            new java.lang.StringBuilder
            dup
            ldc "Options do not exist: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.graalvm.component.installer.ComponentInstallerTest.message:Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic org.junit.Assert.fail:(Ljava/lang/String;)V
        42: .line 188
      StackMap locals:
      StackMap stack:
            new java.util.ArrayList
            dup
            aload 13 /* cmdOptions */
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 16
            goto 46
      StackMap locals: org.graalvm.component.installer.ComponentInstallerTest java.lang.String java.lang.String[] java.util.Map java.lang.String int int java.lang.String[] int int int java.lang.String org.graalvm.component.installer.InstallerCommand java.util.Map java.lang.String top java.util.Iterator
      StackMap stack:
        43: aload 16
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 15 /* s */
        start local 15 // java.lang.String s
        44: .line 189
            aload 15 /* s */
            invokevirtual java.lang.String.length:()I
            iconst_1
            if_icmpgt 45
            ldc "X"
            aload 13 /* cmdOptions */
            aload 15 /* s */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 45
            aload 0 /* this */
            getfield org.graalvm.component.installer.ComponentInstallerTest.deprecatedOptions:Ljava/util/Set;
            aload 15 /* s */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 46
        45: .line 190
      StackMap locals: org.graalvm.component.installer.ComponentInstallerTest java.lang.String java.lang.String[] java.util.Map java.lang.String int int java.lang.String[] int int int java.lang.String org.graalvm.component.installer.InstallerCommand java.util.Map java.lang.String java.lang.String java.util.Iterator
      StackMap stack:
            aload 13 /* cmdOptions */
            aload 15 /* s */
            invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 15 // java.lang.String s
        46: .line 188
      StackMap locals: org.graalvm.component.installer.ComponentInstallerTest java.lang.String java.lang.String[] java.util.Map java.lang.String int int java.lang.String[] int int int java.lang.String org.graalvm.component.installer.InstallerCommand java.util.Map java.lang.String top java.util.Iterator
      StackMap stack:
            aload 16
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 43
        47: .line 193
            aload 13 /* cmdOptions */
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 16
            goto 50
      StackMap locals:
      StackMap stack:
        48: aload 16
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 15 /* s */
        start local 15 // java.lang.String s
        49: .line 194
            aload 0 /* this */
            aload 15 /* s */
            invokevirtual org.graalvm.component.installer.ComponentInstallerTest.reportOption:(Ljava/lang/String;)V
        end local 15 // java.lang.String s
        50: .line 193
      StackMap locals:
      StackMap stack:
            aload 16
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 48
        51: .line 196
            aload 0 /* this */
            getfield org.graalvm.component.installer.ComponentInstallerTest.message:Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.length:()I
            ifle 53
        52: .line 197
            new java.lang.StringBuilder
            dup
            ldc "Options not documented: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.graalvm.component.installer.ComponentInstallerTest.message:Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic org.junit.Assert.fail:(Ljava/lang/String;)V
        end local 14 // java.lang.String optString
        end local 13 // java.util.Map cmdOptions
        end local 12 // org.graalvm.component.installer.InstallerCommand c
        end local 11 // java.lang.String cn
        end local 10 // int sp
        end local 9 // int oE
        end local 8 // int oS
        end local 4 // java.lang.String l
        53: .line 150
      StackMap locals: org.graalvm.component.installer.ComponentInstallerTest java.lang.String java.lang.String[] java.util.Map top int int java.lang.String[]
      StackMap stack:
            iinc 5 1
      StackMap locals:
      StackMap stack:
        54: iload 5
            iload 6
            if_icmplt 10
        55: .line 201
            aload 3 /* allCmds */
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 4 /* it */
        start local 4 // java.util.Iterator it
        56: goto 60
        57: .line 202
      StackMap locals: org.graalvm.component.installer.ComponentInstallerTest java.lang.String java.lang.String[] java.util.Map java.util.Iterator
      StackMap stack:
            aload 4 /* it */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 5 /* cmd */
        start local 5 // java.lang.String cmd
        58: .line 203
            aload 5 /* cmd */
            ldc "#"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 60
        59: .line 204
            aload 4 /* it */
            invokeinterface java.util.Iterator.remove:()V
        end local 5 // java.lang.String cmd
        60: .line 201
      StackMap locals:
      StackMap stack:
            aload 4 /* it */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 57
        end local 4 // java.util.Iterator it
        61: .line 208
            aload 3 /* allCmds */
            ldc "update"
            invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
        62: .line 209
            aload 3 /* allCmds */
            invokeinterface java.util.Map.isEmpty:()Z
            ifne 64
        63: .line 210
            new java.lang.StringBuilder
            dup
            ldc "Not all commands documented: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* allCmds */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic org.junit.Assert.fail:(Ljava/lang/String;)V
        64: .line 212
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.util.Map allCmds
        end local 2 // java.lang.String[] lines
        end local 1 // java.lang.String help
        end local 0 // org.graalvm.component.installer.ComponentInstallerTest this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   65     0        this  Lorg/graalvm/component/installer/ComponentInstallerTest;
            7   65     1        help  Ljava/lang/String;
            8   65     2       lines  [Ljava/lang/String;
            9   65     3     allCmds  Ljava/util/Map<Ljava/lang/String;Lorg/graalvm/component/installer/InstallerCommand;>;
           11   53     4           l  Ljava/lang/String;
           14   53     8          oS  I
           15   53     9          oE  I
           16   53    10          sp  I
           17   53    11          cn  Ljava/lang/String;
           20   53    12           c  Lorg/graalvm/component/installer/InstallerCommand;
           26   53    13  cmdOptions  Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
           27   53    14   optString  Ljava/lang/String;
           32   40    15           a  I
           34   38    16           o  C
           35   38    17           s  Ljava/lang/String;
           44   46    15           s  Ljava/lang/String;
           49   50    15           s  Ljava/lang/String;
           56   61     4          it  Ljava/util/Iterator<Ljava/lang/String;>;
           58   60     5         cmd  Ljava/lang/String;
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  private void discoverOptions();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=7, args_size=1
        start local 0 // org.graalvm.component.installer.ComponentInstallerTest this
         0: .line 220
            ldc Lorg/graalvm/component/installer/Commands;
            invokevirtual java.lang.Class.getFields:()[Ljava/lang/reflect/Field;
            astore 1 /* flds */
        start local 1 // java.lang.reflect.Field[] flds
         1: .line 221
            aload 1 /* flds */
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 12
      StackMap locals: org.graalvm.component.installer.ComponentInstallerTest java.lang.reflect.Field[] top int int java.lang.reflect.Field[]
      StackMap stack:
         2: aload 5
            iload 3
            aaload
            astore 2 /* f */
        start local 2 // java.lang.reflect.Field f
         3: .line 222
            aload 2 /* f */
            invokevirtual java.lang.reflect.Field.getType:()Ljava/lang/Class;
            ldc Ljava/lang/String;
            if_acmpeq 5
         4: .line 223
            goto 11
         5: .line 225
      StackMap locals: org.graalvm.component.installer.ComponentInstallerTest java.lang.reflect.Field[] java.lang.reflect.Field int int java.lang.reflect.Field[]
      StackMap stack:
            aload 2 /* f */
            invokevirtual java.lang.reflect.Field.getName:()Ljava/lang/String;
            ldc "OPTION_"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 7
            aload 2 /* f */
            invokevirtual java.lang.reflect.Field.getName:()Ljava/lang/String;
            ldc "LONG_OPTION_"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 7
         6: .line 226
            goto 11
         7: .line 228
      StackMap locals:
      StackMap stack:
            aload 2 /* f */
            aconst_null
            invokevirtual java.lang.reflect.Field.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 6 /* v */
        start local 6 // java.lang.String v
         8: .line 229
            aload 0 /* this */
            getfield org.graalvm.component.installer.ComponentInstallerTest.allOptions:Ljava/util/Set;
            aload 6 /* v */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         9: .line 230
            aload 2 /* f */
            ldc Ljava/lang/Deprecated;
            invokevirtual java.lang.reflect.Field.getAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
            ifnull 11
        10: .line 231
            aload 0 /* this */
            getfield org.graalvm.component.installer.ComponentInstallerTest.deprecatedOptions:Ljava/util/Set;
            aload 6 /* v */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 6 // java.lang.String v
        end local 2 // java.lang.reflect.Field f
        11: .line 221
      StackMap locals: org.graalvm.component.installer.ComponentInstallerTest java.lang.reflect.Field[] top int int java.lang.reflect.Field[]
      StackMap stack:
            iinc 3 1
      StackMap locals:
      StackMap stack:
        12: iload 3
            iload 4
            if_icmplt 2
        end local 1 // java.lang.reflect.Field[] flds
        13: .line 234
            goto 15
      StackMap locals: org.graalvm.component.installer.ComponentInstallerTest
      StackMap stack: java.lang.ReflectiveOperationException
        14: pop
        15: .line 237
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.graalvm.component.installer.ComponentInstallerTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   16     0  this  Lorg/graalvm/component/installer/ComponentInstallerTest;
            1   13     1  flds  [Ljava/lang/reflect/Field;
            3   11     2     f  Ljava/lang/reflect/Field;
            8   11     6     v  Ljava/lang/String;
      Exception table:
        from    to  target  type
           0    13      14  Class java.lang.ReflectiveOperationException

  private java.util.Set<java.lang.String> checkOptions(java.util.List<java.lang.String>, java.util.Map<java.lang.String, java.lang.String>);
    descriptor: (Ljava/util/List;Ljava/util/Map;)Ljava/util/Set;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=10, args_size=3
        start local 0 // org.graalvm.component.installer.ComponentInstallerTest this
        start local 1 // java.util.List optionLines
        start local 2 // java.util.Map cmdOpts
         0: .line 242
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 3 /* coveredOptions */
        start local 3 // java.util.Set coveredOptions
         1: .line 243
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         2: goto 49
         3: .line 244
      StackMap locals: java.util.Set int
      StackMap stack:
            aload 1 /* optionLines */
            iload 4 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.lang.String
            invokevirtual java.lang.String.trim:()Ljava/lang/String;
            astore 5 /* l */
        start local 5 // java.lang.String l
         4: .line 245
            aload 5 /* l */
            ldc "-"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 48
         5: .line 246
            aload 5 /* l */
            ldc ",?\\p{Blank}"
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            astore 6 /* spl */
        start local 6 // java.lang.String[] spl
         6: .line 247
            aload 6 /* spl */
            iconst_0
            aaload
            invokevirtual java.lang.String.trim:()Ljava/lang/String;
            iconst_1
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 7 /* shOpt */
        start local 7 // java.lang.String shOpt
         7: .line 248
            aload 7 /* shOpt */
            ldc "-"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 10
         8: .line 249
            aload 6 /* spl */
            iconst_0
            aaload
            invokevirtual java.lang.String.trim:()Ljava/lang/String;
            astore 7 /* shOpt */
         9: .line 250
            goto 27
        10: .line 251
      StackMap locals: java.lang.String java.lang.String[] java.lang.String
      StackMap stack:
            aload 7 /* shOpt */
            invokevirtual java.lang.String.length:()I
            iconst_1
            if_icmpeq 13
        11: .line 252
            aload 0 /* this */
            getfield org.graalvm.component.installer.ComponentInstallerTest.errors:Ljava/util/List;
            new java.lang.StringBuilder
            dup
            ldc "Command "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.graalvm.component.installer.ComponentInstallerTest.currentCmd:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ": Invalid short option: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 7 /* shOpt */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        12: .line 253
            goto 14
        13: .line 254
      StackMap locals:
      StackMap stack:
            aload 3 /* coveredOptions */
            aload 7 /* shOpt */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        14: .line 256
      StackMap locals:
      StackMap stack:
            aload 2 /* cmdOpts */
            aload 7 /* shOpt */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 8 /* def */
        start local 8 // java.lang.String def
        15: .line 257
            aload 8 /* def */
            ifnonnull 17
        16: .line 258
            getstatic org.graalvm.component.installer.ComponentInstaller.globalOptions:Ljava/util/Map;
            aload 7 /* shOpt */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 8 /* def */
        17: .line 260
      StackMap locals: java.lang.String
      StackMap stack:
            aload 8 /* def */
            ifnonnull 20
        18: .line 261
            aload 0 /* this */
            getfield org.graalvm.component.installer.ComponentInstallerTest.errors:Ljava/util/List;
            new java.lang.StringBuilder
            dup
            ldc "Command "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.graalvm.component.installer.ComponentInstallerTest.currentCmd:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ": Unsupported option: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 7 /* shOpt */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        19: .line 262
            goto 23
      StackMap locals:
      StackMap stack:
        20: aload 0 /* this */
            getfield org.graalvm.component.installer.ComponentInstallerTest.deprecatedOptions:Ljava/util/Set;
            aload 7 /* shOpt */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifne 21
            aload 8 /* def */
            ldc "="
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 23
        21: .line 263
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.component.installer.ComponentInstallerTest.errors:Ljava/util/List;
            new java.lang.StringBuilder
            dup
            ldc "Command "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.graalvm.component.installer.ComponentInstallerTest.currentCmd:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ": Deperecated option: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 7 /* shOpt */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        22: .line 264
            goto 48
        23: .line 267
      StackMap locals:
      StackMap stack:
            aload 6 /* spl */
            arraylength
            iconst_1
            if_icmpne 26
        24: .line 268
            aload 0 /* this */
            getfield org.graalvm.component.installer.ComponentInstallerTest.errors:Ljava/util/List;
            new java.lang.StringBuilder
            dup
            ldc "Command "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.graalvm.component.installer.ComponentInstallerTest.currentCmd:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ": No explanation for: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 7 /* shOpt */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        25: .line 269
            goto 48
        26: .line 271
      StackMap locals:
      StackMap stack:
            aload 6 /* spl */
            iconst_1
            aaload
            invokevirtual java.lang.String.trim:()Ljava/lang/String;
            astore 7 /* shOpt */
        end local 8 // java.lang.String def
        27: .line 273
      StackMap locals:
      StackMap stack:
            aload 7 /* shOpt */
            ldc "--"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 48
        28: .line 274
            aload 6 /* spl */
            arraylength
            iconst_2
            if_icmpne 31
        29: .line 275
            aload 0 /* this */
            getfield org.graalvm.component.installer.ComponentInstallerTest.errors:Ljava/util/List;
            new java.lang.StringBuilder
            dup
            ldc "Command "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.graalvm.component.installer.ComponentInstallerTest.currentCmd:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ": No explanation for: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 7 /* shOpt */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        30: .line 276
            goto 48
        31: .line 278
      StackMap locals:
      StackMap stack:
            aload 7 /* shOpt */
            iconst_2
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 8 /* longOption */
        start local 8 // java.lang.String longOption
        32: .line 279
            aload 8 /* longOption */
            invokevirtual java.lang.String.length:()I
            iconst_2
            if_icmpge 35
        33: .line 280
            aload 0 /* this */
            getfield org.graalvm.component.installer.ComponentInstallerTest.errors:Ljava/util/List;
            new java.lang.StringBuilder
            dup
            ldc "Command "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.graalvm.component.installer.ComponentInstallerTest.currentCmd:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ": Long option too short: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 8 /* longOption */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        34: .line 281
            goto 36
        35: .line 282
      StackMap locals: java.lang.String
      StackMap stack:
            aload 3 /* coveredOptions */
            aload 8 /* longOption */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        36: .line 284
      StackMap locals:
      StackMap stack:
            aload 2 /* cmdOpts */
            aload 8 /* longOption */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 9 /* shopt */
        start local 9 // java.lang.String shopt
        37: .line 285
            aload 9 /* shopt */
            ifnonnull 39
        38: .line 286
            getstatic org.graalvm.component.installer.ComponentInstaller.globalOptions:Ljava/util/Map;
            aload 8 /* longOption */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 9 /* shopt */
        39: .line 288
      StackMap locals: java.lang.String
      StackMap stack:
            aload 9 /* shopt */
            ifnonnull 42
        40: .line 289
            aload 0 /* this */
            getfield org.graalvm.component.installer.ComponentInstallerTest.errors:Ljava/util/List;
            new java.lang.StringBuilder
            dup
            ldc "Command "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.graalvm.component.installer.ComponentInstallerTest.currentCmd:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ": Long option not found: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 8 /* longOption */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        41: .line 290
            goto 48
      StackMap locals:
      StackMap stack:
        42: aload 2 /* cmdOpts */
            aload 9 /* shopt */
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifne 45
            getstatic org.graalvm.component.installer.ComponentInstaller.globalOptions:Ljava/util/Map;
            aload 9 /* shopt */
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifne 45
        43: .line 291
            aload 0 /* this */
            getfield org.graalvm.component.installer.ComponentInstallerTest.errors:Ljava/util/List;
            new java.lang.StringBuilder
            dup
            ldc "Command "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.graalvm.component.installer.ComponentInstallerTest.currentCmd:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ": Long option mapped to bad char: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 8 /* longOption */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        44: .line 292
            goto 48
      StackMap locals:
      StackMap stack:
        45: aload 9 /* shopt */
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            invokestatic java.lang.Character.isLetterOrDigit:(C)Z
            ifeq 48
        46: .line 293
            aload 5 /* l */
            new java.lang.StringBuilder
            dup
            ldc "-"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 9 /* shopt */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 48
        47: .line 294
            aload 0 /* this */
            getfield org.graalvm.component.installer.ComponentInstallerTest.errors:Ljava/util/List;
            new java.lang.StringBuilder
            dup
            ldc "Command "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.graalvm.component.installer.ComponentInstallerTest.currentCmd:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ": Long option with bad short option: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 8 /* longOption */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 9 // java.lang.String shopt
        end local 8 // java.lang.String longOption
        end local 7 // java.lang.String shOpt
        end local 6 // java.lang.String[] spl
        end local 5 // java.lang.String l
        48: .line 243
      StackMap locals: org.graalvm.component.installer.ComponentInstallerTest java.util.List java.util.Map java.util.Set int
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        49: iload 4 /* i */
            aload 1 /* optionLines */
            invokeinterface java.util.List.size:()I
            if_icmplt 3
        end local 4 // int i
        50: .line 300
            new java.util.ArrayList
            dup
            aload 2 /* cmdOpts */
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
            astore 4 /* a */
        start local 4 // java.util.List a
        51: .line 301
            aload 4 /* a */
            invokestatic java.util.Collections.reverseOrder:()Ljava/util/Comparator;
            invokestatic java.util.Collections.sort:(Ljava/util/List;Ljava/util/Comparator;)V
        52: .line 303
            aload 4 /* a */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 6
            goto 59
      StackMap locals: org.graalvm.component.installer.ComponentInstallerTest java.util.List java.util.Map java.util.Set java.util.List top java.util.Iterator
      StackMap stack:
        53: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 5 /* s */
        start local 5 // java.lang.String s
        54: .line 304
            aload 2 /* cmdOpts */
            aload 5 /* s */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 7 /* r */
        start local 7 // java.lang.String r
        55: .line 305
            aload 5 /* s */
            invokevirtual java.lang.String.length:()I
            iconst_1
            if_icmple 57
        56: .line 306
            aload 2 /* cmdOpts */
            aload 7 /* r */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 7 /* r */
        57: .line 308
      StackMap locals: org.graalvm.component.installer.ComponentInstallerTest java.util.List java.util.Map java.util.Set java.util.List java.lang.String java.util.Iterator java.lang.String
      StackMap stack:
            ldc "X"
            aload 7 /* r */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 59
        58: .line 309
            aload 2 /* cmdOpts */
            aload 5 /* s */
            invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 7 // java.lang.String r
        end local 5 // java.lang.String s
        59: .line 303
      StackMap locals: org.graalvm.component.installer.ComponentInstallerTest java.util.List java.util.Map java.util.Set java.util.List top java.util.Iterator
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 53
        60: .line 312
            aload 2 /* cmdOpts */
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            aload 3 /* coveredOptions */
            invokeinterface java.util.Set.removeAll:(Ljava/util/Collection;)Z
            pop
        61: .line 313
            aload 2 /* cmdOpts */
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            aload 0 /* this */
            getfield org.graalvm.component.installer.ComponentInstallerTest.deprecatedOptions:Ljava/util/Set;
            invokeinterface java.util.Set.removeAll:(Ljava/util/Collection;)Z
            pop
        62: .line 314
            new java.util.ArrayList
            dup
            aload 2 /* cmdOpts */
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 6
            goto 66
      StackMap locals:
      StackMap stack:
        63: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 5 /* s */
        start local 5 // java.lang.String s
        64: .line 315
            aload 5 /* s */
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            invokestatic java.lang.Character.isLetterOrDigit:(C)Z
            ifne 66
        65: .line 316
            aload 2 /* cmdOpts */
            aload 5 /* s */
            invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 5 // java.lang.String s
        66: .line 314
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 63
        67: .line 319
            aload 2 /* cmdOpts */
            invokeinterface java.util.Map.isEmpty:()Z
            ifne 69
        68: .line 320
            aload 0 /* this */
            getfield org.graalvm.component.installer.ComponentInstallerTest.errors:Ljava/util/List;
            new java.lang.StringBuilder
            dup
            ldc "Command "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.graalvm.component.installer.ComponentInstallerTest.currentCmd:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ": Option(s) missing in option list - "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* cmdOpts */
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        69: .line 322
      StackMap locals: org.graalvm.component.installer.ComponentInstallerTest java.util.List java.util.Map java.util.Set java.util.List
      StackMap stack:
            aload 3 /* coveredOptions */
            areturn
        end local 4 // java.util.List a
        end local 3 // java.util.Set coveredOptions
        end local 2 // java.util.Map cmdOpts
        end local 1 // java.util.List optionLines
        end local 0 // org.graalvm.component.installer.ComponentInstallerTest this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   70     0            this  Lorg/graalvm/component/installer/ComponentInstallerTest;
            0   70     1     optionLines  Ljava/util/List<Ljava/lang/String;>;
            0   70     2         cmdOpts  Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
            1   70     3  coveredOptions  Ljava/util/Set<Ljava/lang/String;>;
            2   50     4               i  I
            4   48     5               l  Ljava/lang/String;
            6   48     6             spl  [Ljava/lang/String;
            7   48     7           shOpt  Ljava/lang/String;
           15   27     8             def  Ljava/lang/String;
           32   48     8      longOption  Ljava/lang/String;
           37   48     9           shopt  Ljava/lang/String;
           51   70     4               a  Ljava/util/List<Ljava/lang/String;>;
           54   59     5               s  Ljava/lang/String;
           55   59     7               r  Ljava/lang/String;
           64   66     5               s  Ljava/lang/String;
    Signature: (Ljava/util/List<Ljava/lang/String;>;Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;)Ljava/util/Set<Ljava/lang/String;>;
    MethodParameters:
             Name  Flags
      optionLines  
      cmdOpts      

  private void checkCommandAndOptionsList(org.graalvm.component.installer.InstallerCommand);
    descriptor: (Lorg/graalvm/component/installer/InstallerCommand;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=16, args_size=2
        start local 0 // org.graalvm.component.installer.ComponentInstallerTest this
        start local 1 // org.graalvm.component.installer.InstallerCommand cmd
         0: .line 326
            iconst_0
            istore 2 /* overviewFound */
        start local 2 // boolean overviewFound
         1: .line 327
            new java.lang.StringBuilder
            dup
            ldc "gu "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.graalvm.component.installer.ComponentInstallerTest.currentCmd:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 3 /* prefix */
        start local 3 // java.lang.String prefix
         2: .line 328
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 4 /* optionLines */
        start local 4 // java.util.List optionLines
         3: .line 329
            iconst_0
            istore 5 /* optionBlockStarted */
        start local 5 // boolean optionBlockStarted
         4: .line 330
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 6 /* optionsInOverview */
        start local 6 // java.util.Set optionsInOverview
         5: .line 332
            new java.util.HashMap
            dup
            aload 1 /* cmd */
            invokeinterface org.graalvm.component.installer.InstallerCommand.supportedOptions:()Ljava/util/Map;
            invokespecial java.util.HashMap.<init>:(Ljava/util/Map;)V
            astore 7 /* cmdOpts */
        start local 7 // java.util.Map cmdOpts
         6: .line 333
            aload 7 /* cmdOpts */
            ldc "*"
            invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         7: .line 335
            new java.util.HashMap
            dup
            aload 7 /* cmdOpts */
            invokespecial java.util.HashMap.<init>:(Ljava/util/Map;)V
            astore 8 /* opts */
        start local 8 // java.util.Map opts
         8: .line 336
            aload 0 /* this */
            getfield org.graalvm.component.installer.ComponentInstallerTest.helpLines:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 10
            goto 46
      StackMap locals: org.graalvm.component.installer.ComponentInstallerTest org.graalvm.component.installer.InstallerCommand int java.lang.String java.util.List int java.util.Set java.util.Map java.util.Map top java.util.Iterator
      StackMap stack:
         9: aload 10
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 9 /* l */
        start local 9 // java.lang.String l
        10: .line 337
            aload 9 /* l */
            aload 3 /* prefix */
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 41
        11: .line 338
            iload 2 /* overviewFound */
            ifeq 13
        12: .line 339
            aload 0 /* this */
            getfield org.graalvm.component.installer.ComponentInstallerTest.errors:Ljava/util/List;
            new java.lang.StringBuilder
            dup
            ldc "Command "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.graalvm.component.installer.ComponentInstallerTest.currentCmd:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ": Duplicate overviews not permitted"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        13: .line 341
      StackMap locals: org.graalvm.component.installer.ComponentInstallerTest org.graalvm.component.installer.InstallerCommand int java.lang.String java.util.List int java.util.Set java.util.Map java.util.Map java.lang.String java.util.Iterator
      StackMap stack:
            aload 9 /* l */
            bipush 91
            invokevirtual java.lang.String.indexOf:(I)I
            istore 11 /* optsStart */
        start local 11 // int optsStart
        14: .line 342
            aload 9 /* l */
            bipush 93
            invokevirtual java.lang.String.indexOf:(I)I
            istore 12 /* optsEnd */
        start local 12 // int optsEnd
        15: .line 344
            iload 11 /* optsStart */
            iconst_m1
            if_icmpne 19
        16: .line 345
            aload 8 /* opts */
            invokeinterface java.util.Map.isEmpty:()Z
            ifne 46
        17: .line 346
            aload 0 /* this */
            getfield org.graalvm.component.installer.ComponentInstallerTest.errors:Ljava/util/List;
            new java.lang.StringBuilder
            dup
            ldc "Command "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.graalvm.component.installer.ComponentInstallerTest.currentCmd:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ": Options block missing"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        18: .line 348
            goto 46
        19: .line 350
      StackMap locals: int int
      StackMap stack:
            iload 12 /* optsEnd */
            iload 11 /* optsStart */
            iconst_1
            iadd
            if_icmpgt 21
        20: .line 351
            aload 0 /* this */
            getfield org.graalvm.component.installer.ComponentInstallerTest.errors:Ljava/util/List;
            new java.lang.StringBuilder
            dup
            ldc "Command "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.graalvm.component.installer.ComponentInstallerTest.currentCmd:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ": Options block malformed"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        21: .line 354
      StackMap locals:
      StackMap stack:
            aload 9 /* l */
            iload 11 /* optsStart */
            iconst_1
            iadd
            iload 12 /* optsEnd */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 13 /* optList */
        start local 13 // java.lang.String optList
        22: .line 355
            aload 13 /* optList */
            ldc "-"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 24
        23: .line 356
            aload 13 /* optList */
            iconst_1
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 13 /* optList */
        24: .line 359
      StackMap locals: java.lang.String
      StackMap stack:
            iconst_0
            istore 14 /* i */
        start local 14 // int i
        25: goto 34
        26: .line 360
      StackMap locals: int
      StackMap stack:
            aload 13 /* optList */
            iload 14 /* i */
            iload 14 /* i */
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 15 /* o */
        start local 15 // java.lang.String o
        27: .line 362
            ldc "X"
            aload 8 /* opts */
            aload 15 /* o */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 29
        28: .line 363
            aload 0 /* this */
            getfield org.graalvm.component.installer.ComponentInstallerTest.errors:Ljava/util/List;
            new java.lang.StringBuilder
            dup
            ldc "Command "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.graalvm.component.installer.ComponentInstallerTest.currentCmd:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ": Disabled option listed - "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 15 /* o */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        29: .line 366
      StackMap locals: java.lang.String
      StackMap stack:
            aload 8 /* opts */
            aload 15 /* o */
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifne 31
            getstatic org.graalvm.component.installer.ComponentInstaller.globalOptions:Ljava/util/Map;
            aload 15 /* o */
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifne 31
        30: .line 367
            aload 0 /* this */
            getfield org.graalvm.component.installer.ComponentInstallerTest.errors:Ljava/util/List;
            new java.lang.StringBuilder
            dup
            ldc "Command "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.graalvm.component.installer.ComponentInstallerTest.currentCmd:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ": Unsupported option listed - "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 15 /* o */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        31: .line 369
      StackMap locals:
      StackMap stack:
            aload 8 /* opts */
            aload 15 /* o */
            invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
        32: .line 370
            aload 6 /* optionsInOverview */
            aload 15 /* o */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 15 // java.lang.String o
        33: .line 359
            iinc 14 /* i */ 1
      StackMap locals:
      StackMap stack:
        34: iload 14 /* i */
            aload 13 /* optList */
            invokevirtual java.lang.String.length:()I
            if_icmplt 26
        end local 14 // int i
        35: .line 373
            aload 8 /* opts */
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
            aload 0 /* this */
            aload 8 /* opts */
            invokedynamic test(Lorg/graalvm/component/installer/ComponentInstallerTest;Ljava/util/Map;)Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  org/graalvm/component/installer/ComponentInstallerTest.lambda$0(Ljava/util/Map;Ljava/lang/String;)Z (7)
                  (Ljava/lang/String;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
        36: .line 377
            invokeinterface java.util.stream.Stream.sorted:()Ljava/util/stream/Stream;
            invokestatic java.util.stream.Collectors.toList:()Ljava/util/stream/Collector;
            invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
            checkcast java.util.List
        37: .line 373
            astore 14 /* oneChars */
        start local 14 // java.util.List oneChars
        38: .line 378
            aload 14 /* oneChars */
            invokeinterface java.util.List.isEmpty:()Z
            ifne 40
        39: .line 379
            aload 0 /* this */
            getfield org.graalvm.component.installer.ComponentInstallerTest.errors:Ljava/util/List;
            new java.lang.StringBuilder
            dup
            ldc "Command "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.graalvm.component.installer.ComponentInstallerTest.currentCmd:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ": Option(s) missing in command overview - "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 14 /* oneChars */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        40: .line 381
      StackMap locals: org.graalvm.component.installer.ComponentInstallerTest org.graalvm.component.installer.InstallerCommand int java.lang.String java.util.List int java.util.Set java.util.Map java.util.Map java.lang.String java.util.Iterator int int java.lang.String java.util.List
      StackMap stack:
            iconst_1
            istore 2 /* overviewFound */
        end local 14 // java.util.List oneChars
        end local 13 // java.lang.String optList
        end local 12 // int optsEnd
        end local 11 // int optsStart
        41: .line 384
      StackMap locals: org.graalvm.component.installer.ComponentInstallerTest org.graalvm.component.installer.InstallerCommand int java.lang.String java.util.List int java.util.Set java.util.Map java.util.Map java.lang.String java.util.Iterator
      StackMap stack:
            aload 9 /* l */
            invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
            ldc "options:"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 43
        42: .line 385
            iconst_1
            istore 5 /* optionBlockStarted */
        43: .line 387
      StackMap locals:
      StackMap stack:
            iload 5 /* optionBlockStarted */
            ifeq 46
        44: .line 388
            aload 9 /* l */
            invokevirtual java.lang.String.trim:()Ljava/lang/String;
            ldc "-"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 46
        45: .line 389
            aload 4 /* optionLines */
            aload 9 /* l */
            aload 9 /* l */
            bipush 45
            invokevirtual java.lang.String.indexOf:(I)I
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 9 // java.lang.String l
        46: .line 336
      StackMap locals: org.graalvm.component.installer.ComponentInstallerTest org.graalvm.component.installer.InstallerCommand int java.lang.String java.util.List int java.util.Set java.util.Map java.util.Map top java.util.Iterator
      StackMap stack:
            aload 10
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 9
        47: .line 393
            iload 2 /* overviewFound */
            ifne 49
        48: .line 394
            aload 0 /* this */
            getfield org.graalvm.component.installer.ComponentInstallerTest.errors:Ljava/util/List;
            new java.lang.StringBuilder
            dup
            ldc "Command "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.graalvm.component.installer.ComponentInstallerTest.currentCmd:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ": Overview line not found"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        49: .line 396
      StackMap locals: org.graalvm.component.installer.ComponentInstallerTest org.graalvm.component.installer.InstallerCommand int java.lang.String java.util.List int java.util.Set java.util.Map java.util.Map
      StackMap stack:
            aload 0 /* this */
            aload 4 /* optionLines */
            aload 7 /* cmdOpts */
            invokevirtual org.graalvm.component.installer.ComponentInstallerTest.checkOptions:(Ljava/util/List;Ljava/util/Map;)Ljava/util/Set;
            pop
        50: .line 397
            return
        end local 8 // java.util.Map opts
        end local 7 // java.util.Map cmdOpts
        end local 6 // java.util.Set optionsInOverview
        end local 5 // boolean optionBlockStarted
        end local 4 // java.util.List optionLines
        end local 3 // java.lang.String prefix
        end local 2 // boolean overviewFound
        end local 1 // org.graalvm.component.installer.InstallerCommand cmd
        end local 0 // org.graalvm.component.installer.ComponentInstallerTest this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   51     0                this  Lorg/graalvm/component/installer/ComponentInstallerTest;
            0   51     1                 cmd  Lorg/graalvm/component/installer/InstallerCommand;
            1   51     2       overviewFound  Z
            2   51     3              prefix  Ljava/lang/String;
            3   51     4         optionLines  Ljava/util/List<Ljava/lang/String;>;
            4   51     5  optionBlockStarted  Z
            5   51     6   optionsInOverview  Ljava/util/Set<Ljava/lang/String;>;
            6   51     7             cmdOpts  Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
            8   51     8                opts  Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
           10   46     9                   l  Ljava/lang/String;
           14   41    11           optsStart  I
           15   41    12             optsEnd  I
           22   41    13             optList  Ljava/lang/String;
           25   35    14                   i  I
           27   33    15                   o  Ljava/lang/String;
           38   41    14            oneChars  Ljava/util/List<Ljava/lang/String;>;
    MethodParameters:
      Name  Flags
      cmd   

  public void testCommandHelpConsistent();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=1
        start local 0 // org.graalvm.component.installer.ComponentInstallerTest this
         0: .line 401
            aload 0 /* this */
            invokevirtual org.graalvm.component.installer.ComponentInstallerTest.discoverOptions:()V
         1: .line 403
            invokestatic org.graalvm.component.installer.ComponentInstaller.initCommands:()V
         2: .line 404
            new java.util.HashMap
            dup
            getstatic org.graalvm.component.installer.ComponentInstaller.commands:Ljava/util/Map;
            invokespecial java.util.HashMap.<init>:(Ljava/util/Map;)V
            astore 1 /* allCmds */
        start local 1 // java.util.Map allCmds
         3: .line 406
            aload 0 /* this */
            new org.graalvm.component.installer.ComponentInstallerTest$1
            dup
            aload 0 /* this */
            aload 0 /* this */
            invokespecial org.graalvm.component.installer.ComponentInstallerTest$1.<init>:(Lorg/graalvm/component/installer/ComponentInstallerTest;Lorg/graalvm/component/installer/TestBase;)V
            invokevirtual org.graalvm.component.installer.ComponentInstallerTest.delegateFeedback:(Lorg/graalvm/component/installer/Feedback;)V
         4: .line 419
            aload 0 /* this */
            getfield org.graalvm.component.installer.ComponentInstallerTest.options:Ljava/util/Map;
            ldc "h"
            ldc ""
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         5: .line 420
            aload 1 /* allCmds */
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 3
            goto 17
      StackMap locals: org.graalvm.component.installer.ComponentInstallerTest java.util.Map top java.util.Iterator
      StackMap stack:
         6: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 2 /* cmd */
        start local 2 // java.lang.String cmd
         7: .line 421
            aload 2 /* cmd */
            ldc "#"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 9
         8: .line 422
            goto 17
         9: .line 425
      StackMap locals: org.graalvm.component.installer.ComponentInstallerTest java.util.Map java.lang.String java.util.Iterator
      StackMap stack:
            ldc "rebuild-images"
            aload 2 /* cmd */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 11
        10: .line 426
            goto 17
        11: .line 429
      StackMap locals:
      StackMap stack:
            aload 1 /* allCmds */
            aload 2 /* cmd */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.graalvm.component.installer.InstallerCommand
            astore 4 /* cc */
        start local 4 // org.graalvm.component.installer.InstallerCommand cc
        12: .line 430
            aload 0 /* this */
            getfield org.graalvm.component.installer.ComponentInstallerTest.helpLines:Ljava/util/List;
            invokeinterface java.util.List.clear:()V
        13: .line 431
            aload 4 /* cc */
            aload 0 /* this */
            aload 0 /* this */
            aload 4 /* cc */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual org.graalvm.component.installer.ComponentInstallerTest.withBundle:(Ljava/lang/Class;)Lorg/graalvm/component/installer/Feedback;
            invokeinterface org.graalvm.component.installer.InstallerCommand.init:(Lorg/graalvm/component/installer/CommandInput;Lorg/graalvm/component/installer/Feedback;)V
        14: .line 432
            aload 0 /* this */
            aload 2 /* cmd */
            invokevirtual org.graalvm.component.installer.ComponentInstallerTest.startCommand:(Ljava/lang/String;)V
        15: .line 433
            aload 4 /* cc */
            invokeinterface org.graalvm.component.installer.InstallerCommand.execute:()I
            pop
        16: .line 434
            aload 0 /* this */
            aload 4 /* cc */
            invokevirtual org.graalvm.component.installer.ComponentInstallerTest.checkCommandAndOptionsList:(Lorg/graalvm/component/installer/InstallerCommand;)V
        end local 4 // org.graalvm.component.installer.InstallerCommand cc
        end local 2 // java.lang.String cmd
        17: .line 420
      StackMap locals: org.graalvm.component.installer.ComponentInstallerTest java.util.Map top java.util.Iterator
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 6
        18: .line 436
            new java.lang.StringBuilder
            dup
            ldc "Help inconsistencies found: \n "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "\n"
            aload 0 /* this */
            getfield org.graalvm.component.installer.ComponentInstallerTest.errors:Ljava/util/List;
            invokestatic java.lang.String.join:(Ljava/lang/CharSequence;Ljava/lang/Iterable;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 0 /* this */
            getfield org.graalvm.component.installer.ComponentInstallerTest.errors:Ljava/util/List;
            invokeinterface java.util.List.isEmpty:()Z
            invokestatic org.junit.Assert.assertTrue:(Ljava/lang/String;Z)V
        19: .line 437
            return
        end local 1 // java.util.Map allCmds
        end local 0 // org.graalvm.component.installer.ComponentInstallerTest this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   20     0     this  Lorg/graalvm/component/installer/ComponentInstallerTest;
            3   20     1  allCmds  Ljava/util/Map<Ljava/lang/String;Lorg/graalvm/component/installer/InstallerCommand;>;
            7   17     2      cmd  Ljava/lang/String;
           12   17     4       cc  Lorg/graalvm/component/installer/InstallerCommand;
    Exceptions:
      throws java.lang.Exception
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testFindGraalVMHome();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=8, args_size=1
        start local 0 // org.graalvm.component.installer.ComponentInstallerTest this
         0: .line 443
            invokestatic java.lang.System.getProperties:()Ljava/util/Properties;
            ldc "GRAALVM_HOME"
            invokevirtual java.util.Properties.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 444
            invokestatic java.lang.System.getProperties:()Ljava/util/Properties;
            ldc "GRAAL_HOME"
            invokevirtual java.util.Properties.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 446
            new org.graalvm.component.installer.ComponentInstaller
            dup
            iconst_0
            anewarray java.lang.String
            invokespecial org.graalvm.component.installer.ComponentInstaller.<init>:([Ljava/lang/String;)V
            astore 1 /* installer */
        start local 1 // org.graalvm.component.installer.ComponentInstaller installer
         3: .line 448
            ldc "lib/installer/components"
            iconst_0
            anewarray java.lang.String
            invokestatic java.nio.file.Paths.get:(Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path;
            astore 2 /* relComps */
        start local 2 // java.nio.file.Path relComps
         4: .line 449
            aload 0 /* this */
            getfield org.graalvm.component.installer.ComponentInstallerTest.targetPath:Ljava/nio/file/Path;
            ldc "ggg"
            invokeinterface java.nio.file.Path.resolve:(Ljava/lang/String;)Ljava/nio/file/Path;
            astore 3 /* graal */
        start local 3 // java.nio.file.Path graal
         5: .line 450
            aload 0 /* this */
            getfield org.graalvm.component.installer.ComponentInstallerTest.targetPath:Ljava/nio/file/Path;
            ldc "invalid"
            invokeinterface java.nio.file.Path.resolve:(Ljava/lang/String;)Ljava/nio/file/Path;
            astore 4 /* invalidBase */
        start local 4 // java.nio.file.Path invalidBase
         6: .line 451
            aload 0 /* this */
            getfield org.graalvm.component.installer.ComponentInstallerTest.targetPath:Ljava/nio/file/Path;
            ldc "invalid2"
            invokeinterface java.nio.file.Path.resolve:(Ljava/lang/String;)Ljava/nio/file/Path;
            astore 5 /* invalidBase2 */
        start local 5 // java.nio.file.Path invalidBase2
         7: .line 452
            aload 3 /* graal */
            aload 2 /* relComps */
            invokeinterface java.nio.file.Path.resolve:(Ljava/nio/file/Path;)Ljava/nio/file/Path;
            iconst_0
            anewarray java.nio.file.attribute.FileAttribute
            invokestatic java.nio.file.Files.createDirectories:(Ljava/nio/file/Path;[Ljava/nio/file/attribute/FileAttribute;)Ljava/nio/file/Path;
            pop
         8: .line 453
            aload 3 /* graal */
            ldc "release"
            invokeinterface java.nio.file.Path.resolve:(Ljava/lang/String;)Ljava/nio/file/Path;
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            ldc "Hello, GraalVM!"
            aastore
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            iconst_0
            anewarray java.nio.file.OpenOption
            invokestatic java.nio.file.Files.write:(Ljava/nio/file/Path;Ljava/lang/Iterable;[Ljava/nio/file/OpenOption;)Ljava/nio/file/Path;
            pop
         9: .line 456
            aload 0 /* this */
            getfield org.graalvm.component.installer.ComponentInstallerTest.helper:Lorg/graalvm/component/installer/ComponentInstallerTest$InstallerExecHelper;
            getfield org.graalvm.component.installer.ComponentInstallerTest$InstallerExecHelper.fakeEnv:Ljava/util/Map;
            ldc "GRAAL_HOME"
            aload 3 /* graal */
            invokeinterface java.nio.file.Path.toString:()Ljava/lang/String;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        10: .line 458
            aload 0 /* this */
            getfield org.graalvm.component.installer.ComponentInstallerTest.helper:Lorg/graalvm/component/installer/ComponentInstallerTest$InstallerExecHelper;
            invokevirtual org.graalvm.component.installer.ComponentInstallerTest$InstallerExecHelper.createFakedEnv:()Lorg/graalvm/component/installer/Environment;
            astore 6 /* env */
        start local 6 // org.graalvm.component.installer.Environment env
        11: .line 459
            aload 1 /* installer */
            aload 6 /* env */
            invokevirtual org.graalvm.component.installer.ComponentInstaller.setInput:(Lorg/graalvm/component/installer/CommandInput;)V
        12: .line 463
            aload 1 /* installer */
            invokevirtual org.graalvm.component.installer.ComponentInstaller.findGraalHome:()Ljava/nio/file/Path;
            astore 7 /* result */
        start local 7 // java.nio.file.Path result
        13: .line 464
            aload 3 /* graal */
            aload 7 /* result */
            invokestatic java.nio.file.Files.isSameFile:(Ljava/nio/file/Path;Ljava/nio/file/Path;)Z
            invokestatic org.junit.Assert.assertTrue:(Z)V
        14: .line 468
            aload 0 /* this */
            getfield org.graalvm.component.installer.ComponentInstallerTest.helper:Lorg/graalvm/component/installer/ComponentInstallerTest$InstallerExecHelper;
            getfield org.graalvm.component.installer.ComponentInstallerTest$InstallerExecHelper.fakeEnv:Ljava/util/Map;
            ldc "GRAAL_HOME"
            aload 4 /* invalidBase */
            invokeinterface java.nio.file.Path.toString:()Ljava/lang/String;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        15: .line 470
            aload 1 /* installer */
            invokevirtual org.graalvm.component.installer.ComponentInstaller.findGraalHome:()Ljava/nio/file/Path;
            astore 7 /* result */
        16: .line 471
            ldc "Should fail, invalid home provided."
            invokestatic org.junit.Assert.fail:(Ljava/lang/String;)V
        17: .line 472
            goto 19
      StackMap locals: org.graalvm.component.installer.ComponentInstallerTest org.graalvm.component.installer.ComponentInstaller java.nio.file.Path java.nio.file.Path java.nio.file.Path java.nio.file.Path org.graalvm.component.installer.Environment java.nio.file.Path
      StackMap stack: org.graalvm.component.installer.FailedOperationException
        18: pop
        19: .line 475
      StackMap locals:
      StackMap stack:
            ldc "GRAAL_HOME"
            aload 3 /* graal */
            invokeinterface java.nio.file.Path.toString:()Ljava/lang/String;
            invokestatic java.lang.System.setProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            pop
        20: .line 477
            aload 1 /* installer */
            invokevirtual org.graalvm.component.installer.ComponentInstaller.findGraalHome:()Ljava/nio/file/Path;
            astore 7 /* result */
        21: .line 478
            aload 3 /* graal */
            aload 7 /* result */
            invokestatic java.nio.file.Files.isSameFile:(Ljava/nio/file/Path;Ljava/nio/file/Path;)Z
            invokestatic org.junit.Assert.assertTrue:(Z)V
        22: .line 480
            ldc "GRAAL_HOME"
            aload 5 /* invalidBase2 */
            invokeinterface java.nio.file.Path.toString:()Ljava/lang/String;
            invokestatic java.lang.System.setProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            pop
        23: .line 482
            aload 1 /* installer */
            invokevirtual org.graalvm.component.installer.ComponentInstaller.findGraalHome:()Ljava/nio/file/Path;
            astore 7 /* result */
        24: .line 483
            ldc "Should fail, invalid home provided."
            invokestatic org.junit.Assert.fail:(Ljava/lang/String;)V
        25: .line 484
            goto 27
      StackMap locals:
      StackMap stack: org.graalvm.component.installer.FailedOperationException
        26: pop
        27: .line 488
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.component.installer.ComponentInstallerTest.helper:Lorg/graalvm/component/installer/ComponentInstallerTest$InstallerExecHelper;
            getfield org.graalvm.component.installer.ComponentInstallerTest$InstallerExecHelper.fakeEnv:Ljava/util/Map;
            ldc "GRAALVM_HOME"
            aload 3 /* graal */
            invokeinterface java.nio.file.Path.toString:()Ljava/lang/String;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        28: .line 489
            aload 1 /* installer */
            invokevirtual org.graalvm.component.installer.ComponentInstaller.findGraalHome:()Ljava/nio/file/Path;
            astore 7 /* result */
        29: .line 490
            aload 3 /* graal */
            aload 7 /* result */
            invokestatic java.nio.file.Files.isSameFile:(Ljava/nio/file/Path;Ljava/nio/file/Path;)Z
            invokestatic org.junit.Assert.assertTrue:(Z)V
        30: .line 491
            aload 0 /* this */
            getfield org.graalvm.component.installer.ComponentInstallerTest.helper:Lorg/graalvm/component/installer/ComponentInstallerTest$InstallerExecHelper;
            getfield org.graalvm.component.installer.ComponentInstallerTest$InstallerExecHelper.fakeEnv:Ljava/util/Map;
            ldc "GRAALVM_HOME"
            aload 4 /* invalidBase */
            invokeinterface java.nio.file.Path.toString:()Ljava/lang/String;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        31: .line 494
            aload 1 /* installer */
            invokevirtual org.graalvm.component.installer.ComponentInstaller.findGraalHome:()Ljava/nio/file/Path;
            astore 7 /* result */
        32: .line 495
            ldc "Should fail, invalid home provided."
            invokestatic org.junit.Assert.fail:(Ljava/lang/String;)V
        33: .line 496
            goto 35
      StackMap locals:
      StackMap stack: org.graalvm.component.installer.FailedOperationException
        34: pop
        35: .line 499
      StackMap locals:
      StackMap stack:
            ldc "GRAALVM_HOME"
            aload 3 /* graal */
            invokeinterface java.nio.file.Path.toString:()Ljava/lang/String;
            invokestatic java.lang.System.setProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            pop
        36: .line 500
            aload 1 /* installer */
            invokevirtual org.graalvm.component.installer.ComponentInstaller.findGraalHome:()Ljava/nio/file/Path;
            astore 7 /* result */
        37: .line 501
            aload 3 /* graal */
            aload 7 /* result */
            invokestatic java.nio.file.Files.isSameFile:(Ljava/nio/file/Path;Ljava/nio/file/Path;)Z
            invokestatic org.junit.Assert.assertTrue:(Z)V
        38: .line 502
            return
        end local 7 // java.nio.file.Path result
        end local 6 // org.graalvm.component.installer.Environment env
        end local 5 // java.nio.file.Path invalidBase2
        end local 4 // java.nio.file.Path invalidBase
        end local 3 // java.nio.file.Path graal
        end local 2 // java.nio.file.Path relComps
        end local 1 // org.graalvm.component.installer.ComponentInstaller installer
        end local 0 // org.graalvm.component.installer.ComponentInstallerTest this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   39     0          this  Lorg/graalvm/component/installer/ComponentInstallerTest;
            3   39     1     installer  Lorg/graalvm/component/installer/ComponentInstaller;
            4   39     2      relComps  Ljava/nio/file/Path;
            5   39     3         graal  Ljava/nio/file/Path;
            6   39     4   invalidBase  Ljava/nio/file/Path;
            7   39     5  invalidBase2  Ljava/nio/file/Path;
           11   39     6           env  Lorg/graalvm/component/installer/Environment;
           13   39     7        result  Ljava/nio/file/Path;
      Exception table:
        from    to  target  type
          15    17      18  Class org.graalvm.component.installer.FailedOperationException
          23    25      26  Class org.graalvm.component.installer.FailedOperationException
          31    33      34  Class org.graalvm.component.installer.FailedOperationException
    Exceptions:
      throws java.lang.Exception
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testAutoFindGraalVMHome();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=17, args_size=1
        start local 0 // org.graalvm.component.installer.ComponentInstallerTest this
         0: .line 506
            invokestatic java.lang.System.getProperties:()Ljava/util/Properties;
            ldc "GRAALVM_HOME"
            invokevirtual java.util.Properties.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 507
            invokestatic java.lang.System.getProperties:()Ljava/util/Properties;
            ldc "GRAAL_HOME"
            invokevirtual java.util.Properties.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 510
            ldc Lorg/graalvm/component/installer/ComponentInstaller;
            invokestatic org.graalvm.component.installer.ComponentInstallerTest.getClassLocation:(Ljava/lang/Class;)Ljava/net/URL;
            astore 1 /* locInstaller */
        start local 1 // java.net.URL locInstaller
         3: .line 511
            ldc Lorg/graalvm/component/installer/ComponentInstallerTest;
            invokestatic org.graalvm.component.installer.ComponentInstallerTest.getClassLocation:(Ljava/lang/Class;)Ljava/net/URL;
            astore 2 /* locTest */
        start local 2 // java.net.URL locTest
         4: .line 513
            ldc "Skipped because runs from classes"
            aload 1 /* locInstaller */
            ifnull 5
            aload 2 /* locTest */
            ifnull 5
            iconst_0
            goto 6
      StackMap locals: org.graalvm.component.installer.ComponentInstallerTest java.net.URL java.net.URL
      StackMap stack: java.lang.String
         5: iconst_1
      StackMap locals: org.graalvm.component.installer.ComponentInstallerTest java.net.URL java.net.URL
      StackMap stack: java.lang.String int
         6: invokestatic org.junit.Assume.assumeFalse:(Ljava/lang/String;Z)V
         7: .line 515
            new java.io.File
            dup
            aload 1 /* locInstaller */
            invokevirtual java.net.URL.toURI:()Ljava/net/URI;
            invokespecial java.io.File.<init>:(Ljava/net/URI;)V
            invokevirtual java.io.File.toPath:()Ljava/nio/file/Path;
            astore 3 /* origInstaller */
        start local 3 // java.nio.file.Path origInstaller
         8: .line 516
            new java.io.File
            dup
            aload 2 /* locTest */
            invokevirtual java.net.URL.toURI:()Ljava/net/URI;
            invokespecial java.io.File.<init>:(Ljava/net/URI;)V
            invokevirtual java.io.File.toPath:()Ljava/nio/file/Path;
            astore 4 /* origTest */
        start local 4 // java.nio.file.Path origTest
         9: .line 518
            ldc "Skipped because runs from classes"
        10: .line 519
            aload 3 /* origInstaller */
            ifnull 12
            aload 4 /* origTest */
            ifnull 12
        11: .line 520
            aload 3 /* origInstaller */
            iconst_0
            anewarray java.nio.file.LinkOption
            invokestatic java.nio.file.Files.isRegularFile:(Ljava/nio/file/Path;[Ljava/nio/file/LinkOption;)Z
            ifeq 12
            aload 4 /* origTest */
            iconst_0
            anewarray java.nio.file.LinkOption
            invokestatic java.nio.file.Files.isRegularFile:(Ljava/nio/file/Path;[Ljava/nio/file/LinkOption;)Z
            ifeq 12
            iconst_1
            goto 13
      StackMap locals: org.graalvm.component.installer.ComponentInstallerTest java.net.URL java.net.URL java.nio.file.Path java.nio.file.Path
      StackMap stack: java.lang.String
        12: iconst_0
        13: .line 518
      StackMap locals: org.graalvm.component.installer.ComponentInstallerTest java.net.URL java.net.URL java.nio.file.Path java.nio.file.Path
      StackMap stack: java.lang.String int
            invokestatic org.junit.Assume.assumeTrue:(Ljava/lang/String;Z)V
        14: .line 522
            ldc "lib/installer/components"
            iconst_0
            anewarray java.lang.String
            invokestatic java.nio.file.Paths.get:(Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path;
            astore 5 /* relComps */
        start local 5 // java.nio.file.Path relComps
        15: .line 523
            aload 0 /* this */
            getfield org.graalvm.component.installer.ComponentInstallerTest.targetPath:Ljava/nio/file/Path;
            ldc "ggg"
            invokeinterface java.nio.file.Path.resolve:(Ljava/lang/String;)Ljava/nio/file/Path;
            astore 6 /* graal */
        start local 6 // java.nio.file.Path graal
        16: .line 524
            aload 6 /* graal */
            ldc "lib/installer"
            invokeinterface java.nio.file.Path.resolve:(Ljava/lang/String;)Ljava/nio/file/Path;
            astore 7 /* instDir */
        start local 7 // java.nio.file.Path instDir
        17: .line 525
            aload 6 /* graal */
            aload 5 /* relComps */
            invokeinterface java.nio.file.Path.resolve:(Ljava/nio/file/Path;)Ljava/nio/file/Path;
            iconst_0
            anewarray java.nio.file.attribute.FileAttribute
            invokestatic java.nio.file.Files.createDirectories:(Ljava/nio/file/Path;[Ljava/nio/file/attribute/FileAttribute;)Ljava/nio/file/Path;
            pop
        18: .line 526
            aload 6 /* graal */
            ldc "release"
            invokeinterface java.nio.file.Path.resolve:(Ljava/lang/String;)Ljava/nio/file/Path;
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            ldc "Hello, GraalVM!"
            aastore
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            iconst_0
            anewarray java.nio.file.OpenOption
            invokestatic java.nio.file.Files.write:(Ljava/nio/file/Path;Ljava/lang/Iterable;[Ljava/nio/file/OpenOption;)Ljava/nio/file/Path;
            pop
        19: .line 529
            aload 7 /* instDir */
            aload 3 /* origInstaller */
            invokeinterface java.nio.file.Path.getFileName:()Ljava/nio/file/Path;
            invokeinterface java.nio.file.Path.resolve:(Ljava/nio/file/Path;)Ljava/nio/file/Path;
            astore 8 /* targetInstaller */
        start local 8 // java.nio.file.Path targetInstaller
        20: .line 530
            aload 7 /* instDir */
            aload 4 /* origTest */
            invokeinterface java.nio.file.Path.getFileName:()Ljava/nio/file/Path;
            invokeinterface java.nio.file.Path.resolve:(Ljava/nio/file/Path;)Ljava/nio/file/Path;
            astore 9 /* targetTest */
        start local 9 // java.nio.file.Path targetTest
        21: .line 531
            aload 3 /* origInstaller */
            aload 8 /* targetInstaller */
            iconst_0
            anewarray java.nio.file.CopyOption
            invokestatic java.nio.file.Files.copy:(Ljava/nio/file/Path;Ljava/nio/file/Path;[Ljava/nio/file/CopyOption;)Ljava/nio/file/Path;
            pop
        22: .line 532
            aload 4 /* origTest */
            aload 9 /* targetTest */
            iconst_0
            anewarray java.nio.file.CopyOption
            invokestatic java.nio.file.Files.copy:(Ljava/nio/file/Path;Ljava/nio/file/Path;[Ljava/nio/file/CopyOption;)Ljava/nio/file/Path;
            pop
        23: .line 534
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
            checkcast java.net.URLClassLoader
            astore 10 /* myLoader */
        start local 10 // java.net.URLClassLoader myLoader
        24: .line 535
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 11 /* urls */
        start local 11 // java.util.List urls
        25: .line 537
            aload 11 /* urls */
            aload 8 /* targetInstaller */
            invokeinterface java.nio.file.Path.toUri:()Ljava/net/URI;
            invokevirtual java.net.URI.toURL:()Ljava/net/URL;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        26: .line 538
            aload 11 /* urls */
            aload 9 /* targetTest */
            invokeinterface java.nio.file.Path.toUri:()Ljava/net/URI;
            invokevirtual java.net.URI.toURL:()Ljava/net/URL;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        27: .line 540
            aload 10 /* myLoader */
            invokevirtual java.net.URLClassLoader.getURLs:()[Ljava/net/URL;
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
            aload 1 /* locInstaller */
            aload 2 /* locTest */
            invokedynamic test(Ljava/net/URL;Ljava/net/URL;)Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  org/graalvm/component/installer/ComponentInstallerTest.lambda$1(Ljava/net/URL;Ljava/net/URL;Ljava/net/URL;)Z (6)
                  (Ljava/net/URL;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
            aload 11 /* urls */
            invokedynamic get(Ljava/util/List;)Ljava/util/function/Supplier;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()Ljava/lang/Object;
                  org/graalvm/component/installer/ComponentInstallerTest.lambda$2(Ljava/util/List;)Ljava/util/List; (6)
                  ()Ljava/util/List;
            invokestatic java.util.stream.Collectors.toCollection:(Ljava/util/function/Supplier;)Ljava/util/stream/Collector;
            invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
            pop
        28: .line 542
            new java.net.URLClassLoader
            dup
        29: .line 543
            aload 11 /* urls */
            aload 11 /* urls */
            invokeinterface java.util.List.size:()I
            anewarray java.net.URL
            invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.net.URL[]
        30: .line 544
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
            invokevirtual java.lang.ClassLoader.getParent:()Ljava/lang/ClassLoader;
        31: .line 542
            invokespecial java.net.URLClassLoader.<init>:([Ljava/net/URL;Ljava/lang/ClassLoader;)V
            astore 12 /* ldr */
        start local 12 // java.net.URLClassLoader ldr
        32: .line 546
            ldc Lorg/graalvm/component/installer/ComponentInstallerTest$InstallerExecHelper;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            iconst_1
            aload 12 /* ldr */
            invokestatic java.lang.Class.forName:(Ljava/lang/String;ZLjava/lang/ClassLoader;)Ljava/lang/Class;
            astore 13 /* testClazz */
        start local 13 // java.lang.Class testClazz
        33: .line 548
            aload 13 /* testClazz */
            invokevirtual java.lang.Class.newInstance:()Ljava/lang/Object;
            astore 14 /* inst */
        start local 14 // java.lang.Object inst
        34: .line 549
            aload 13 /* testClazz */
            ldc "performGraalVMHomeAutodetection"
            iconst_0
            anewarray java.lang.Class
            invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            astore 15 /* m */
        start local 15 // java.lang.reflect.Method m
        35: .line 550
            aload 15 /* m */
            aload 14 /* inst */
            iconst_0
            anewarray java.lang.Object
            invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 16 /* res */
        start local 16 // java.lang.String res
        36: .line 552
            aload 6 /* graal */
            invokeinterface java.nio.file.Path.toString:()Ljava/lang/String;
            aload 16 /* res */
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
        37: .line 553
            return
        end local 16 // java.lang.String res
        end local 15 // java.lang.reflect.Method m
        end local 14 // java.lang.Object inst
        end local 13 // java.lang.Class testClazz
        end local 12 // java.net.URLClassLoader ldr
        end local 11 // java.util.List urls
        end local 10 // java.net.URLClassLoader myLoader
        end local 9 // java.nio.file.Path targetTest
        end local 8 // java.nio.file.Path targetInstaller
        end local 7 // java.nio.file.Path instDir
        end local 6 // java.nio.file.Path graal
        end local 5 // java.nio.file.Path relComps
        end local 4 // java.nio.file.Path origTest
        end local 3 // java.nio.file.Path origInstaller
        end local 2 // java.net.URL locTest
        end local 1 // java.net.URL locInstaller
        end local 0 // org.graalvm.component.installer.ComponentInstallerTest this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   38     0             this  Lorg/graalvm/component/installer/ComponentInstallerTest;
            3   38     1     locInstaller  Ljava/net/URL;
            4   38     2          locTest  Ljava/net/URL;
            8   38     3    origInstaller  Ljava/nio/file/Path;
            9   38     4         origTest  Ljava/nio/file/Path;
           15   38     5         relComps  Ljava/nio/file/Path;
           16   38     6            graal  Ljava/nio/file/Path;
           17   38     7          instDir  Ljava/nio/file/Path;
           20   38     8  targetInstaller  Ljava/nio/file/Path;
           21   38     9       targetTest  Ljava/nio/file/Path;
           24   38    10         myLoader  Ljava/net/URLClassLoader;
           25   38    11             urls  Ljava/util/List<Ljava/net/URL;>;
           32   38    12              ldr  Ljava/net/URLClassLoader;
           33   38    13        testClazz  Ljava/lang/Class<*>;
           34   38    14             inst  Ljava/lang/Object;
           35   38    15                m  Ljava/lang/reflect/Method;
           36   38    16              res  Ljava/lang/String;
    Exceptions:
      throws java.lang.Exception
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  private static java.net.URL getClassLocation(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)Ljava/net/URL;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=3, args_size=1
        start local 0 // java.lang.Class clazz
         0: .line 585
            aload 0 /* clazz */
            invokevirtual java.lang.Class.getProtectionDomain:()Ljava/security/ProtectionDomain;
            astore 1 /* pd */
        start local 1 // java.security.ProtectionDomain pd
         1: .line 586
            aload 1 /* pd */
            ifnull 5
         2: .line 587
            aload 1 /* pd */
            invokevirtual java.security.ProtectionDomain.getCodeSource:()Ljava/security/CodeSource;
            astore 2 /* cs */
        start local 2 // java.security.CodeSource cs
         3: .line 588
            aload 2 /* cs */
            ifnull 5
         4: .line 589
            aload 2 /* cs */
            invokevirtual java.security.CodeSource.getLocation:()Ljava/net/URL;
            areturn
        end local 2 // java.security.CodeSource cs
         5: .line 592
      StackMap locals: java.security.ProtectionDomain
      StackMap stack:
            aconst_null
            areturn
        end local 1 // java.security.ProtectionDomain pd
        end local 0 // java.lang.Class clazz
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    6     0  clazz  Ljava/lang/Class<*>;
            1    6     1     pd  Ljava/security/ProtectionDomain;
            3    5     2     cs  Ljava/security/CodeSource;
    Signature: (Ljava/lang/Class<*>;)Ljava/net/URL;
    MethodParameters:
       Name  Flags
      clazz  

  private boolean lambda$0(java.util.Map, java.lang.String);
    descriptor: (Ljava/util/Map;Ljava/lang/String;)Z
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.graalvm.component.installer.ComponentInstallerTest this
        start local 2 // java.lang.String s
         0: .line 373
            aload 2 /* s */
            invokevirtual java.lang.String.length:()I
            iconst_1
            if_icmpne 4
         1: .line 374
            ldc "X"
            aload 1
            aload 2 /* s */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 4
         2: .line 375
            aload 2 /* s */
            invokevirtual java.lang.String.length:()I
            iconst_1
            if_icmpgt 3
            aload 2 /* s */
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            invokestatic java.lang.Character.isLetterOrDigit:(C)Z
            ifeq 4
      StackMap locals:
      StackMap stack:
         3: aload 0 /* this */
            getfield org.graalvm.component.installer.ComponentInstallerTest.deprecatedOptions:Ljava/util/Set;
            aload 2 /* s */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifne 4
            iconst_1
            goto 5
      StackMap locals:
      StackMap stack:
         4: iconst_0
      StackMap locals:
      StackMap stack: int
         5: ireturn
        end local 2 // java.lang.String s
        end local 0 // org.graalvm.component.installer.ComponentInstallerTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lorg/graalvm/component/installer/ComponentInstallerTest;
            0    6     2     s  Ljava/lang/String;

  private static boolean lambda$1(java.net.URL, java.net.URL, java.net.URL);
    descriptor: (Ljava/net/URL;Ljava/net/URL;Ljava/net/URL;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=3, args_size=3
        start local 2 // java.net.URL u
         0: .line 540
            aload 0
            aload 2 /* u */
            invokevirtual java.net.URL.equals:(Ljava/lang/Object;)Z
            ifne 1
            aload 1
            aload 2 /* u */
            invokevirtual java.net.URL.equals:(Ljava/lang/Object;)Z
            ifeq 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
            goto 3
      StackMap locals:
      StackMap stack:
         2: iconst_1
      StackMap locals:
      StackMap stack: int
         3: ireturn
        end local 2 // java.net.URL u
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     2     u  Ljava/net/URL;

  private static java.util.List lambda$2(java.util.List);
    descriptor: (Ljava/util/List;)Ljava/util/List;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 540
            aload 0
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
SourceFile: "ComponentInstallerTest.java"
NestMembers:
  org.graalvm.component.installer.ComponentInstallerTest$1  org.graalvm.component.installer.ComponentInstallerTest$InstallerExecHelper  org.graalvm.component.installer.ComponentInstallerTest$InstallerExecHelper$1
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  org.graalvm.component.installer.ComponentInstallerTest$1
  public InstallerExecHelper = org.graalvm.component.installer.ComponentInstallerTest$InstallerExecHelper of org.graalvm.component.installer.ComponentInstallerTest