public class com.googlecode.lanterna.gui2.LinearLayout implements com.googlecode.lanterna.gui2.LayoutManager
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.googlecode.lanterna.gui2.LinearLayout
  super_class: java.lang.Object
{
  private final com.googlecode.lanterna.gui2.Direction direction;
    descriptor: Lcom/googlecode/lanterna/gui2/Direction;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private int spacing;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private boolean changed;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private static volatile int[] $SWITCH_TABLE$com$googlecode$lanterna$gui2$LinearLayout$Alignment;
    descriptor: [I
    flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC

  public static com.googlecode.lanterna.gui2.LayoutData createLayoutData(com.googlecode.lanterna.gui2.LinearLayout$Alignment);
    descriptor: (Lcom/googlecode/lanterna/gui2/LinearLayout$Alignment;)Lcom/googlecode/lanterna/gui2/LayoutData;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.googlecode.lanterna.gui2.LinearLayout$Alignment alignment
         0: .line 96
            aload 0 /* alignment */
            getstatic com.googlecode.lanterna.gui2.LinearLayout$GrowPolicy.None:Lcom/googlecode/lanterna/gui2/LinearLayout$GrowPolicy;
            invokestatic com.googlecode.lanterna.gui2.LinearLayout.createLayoutData:(Lcom/googlecode/lanterna/gui2/LinearLayout$Alignment;Lcom/googlecode/lanterna/gui2/LinearLayout$GrowPolicy;)Lcom/googlecode/lanterna/gui2/LayoutData;
            areturn
        end local 0 // com.googlecode.lanterna.gui2.LinearLayout$Alignment alignment
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0  alignment  Lcom/googlecode/lanterna/gui2/LinearLayout$Alignment;
    MethodParameters:
           Name  Flags
      alignment  

  public static com.googlecode.lanterna.gui2.LayoutData createLayoutData(com.googlecode.lanterna.gui2.LinearLayout$Alignment, com.googlecode.lanterna.gui2.LinearLayout$GrowPolicy);
    descriptor: (Lcom/googlecode/lanterna/gui2/LinearLayout$Alignment;Lcom/googlecode/lanterna/gui2/LinearLayout$GrowPolicy;)Lcom/googlecode/lanterna/gui2/LayoutData;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.googlecode.lanterna.gui2.LinearLayout$Alignment alignment
        start local 1 // com.googlecode.lanterna.gui2.LinearLayout$GrowPolicy growPolicy
         0: .line 110
            new com.googlecode.lanterna.gui2.LinearLayout$LinearLayoutData
            dup
            aload 0 /* alignment */
            aload 1 /* growPolicy */
            invokespecial com.googlecode.lanterna.gui2.LinearLayout$LinearLayoutData.<init>:(Lcom/googlecode/lanterna/gui2/LinearLayout$Alignment;Lcom/googlecode/lanterna/gui2/LinearLayout$GrowPolicy;)V
            areturn
        end local 1 // com.googlecode.lanterna.gui2.LinearLayout$GrowPolicy growPolicy
        end local 0 // com.googlecode.lanterna.gui2.LinearLayout$Alignment alignment
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0   alignment  Lcom/googlecode/lanterna/gui2/LinearLayout$Alignment;
            0    1     1  growPolicy  Lcom/googlecode/lanterna/gui2/LinearLayout$GrowPolicy;
    MethodParameters:
            Name  Flags
      alignment   
      growPolicy  

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.googlecode.lanterna.gui2.LinearLayout this
         0: .line 121
            aload 0 /* this */
            getstatic com.googlecode.lanterna.gui2.Direction.VERTICAL:Lcom/googlecode/lanterna/gui2/Direction;
            invokespecial com.googlecode.lanterna.gui2.LinearLayout.<init>:(Lcom/googlecode/lanterna/gui2/Direction;)V
         1: .line 122
            return
        end local 0 // com.googlecode.lanterna.gui2.LinearLayout this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/googlecode/lanterna/gui2/LinearLayout;

  public void <init>(com.googlecode.lanterna.gui2.Direction);
    descriptor: (Lcom/googlecode/lanterna/gui2/Direction;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.googlecode.lanterna.gui2.LinearLayout this
        start local 1 // com.googlecode.lanterna.gui2.Direction direction
         0: .line 128
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 129
            aload 0 /* this */
            aload 1 /* direction */
            putfield com.googlecode.lanterna.gui2.LinearLayout.direction:Lcom/googlecode/lanterna/gui2/Direction;
         2: .line 130
            aload 0 /* this */
            aload 1 /* direction */
            getstatic com.googlecode.lanterna.gui2.Direction.HORIZONTAL:Lcom/googlecode/lanterna/gui2/Direction;
            if_acmpne 3
            iconst_1
            goto 4
      StackMap locals: com.googlecode.lanterna.gui2.LinearLayout com.googlecode.lanterna.gui2.Direction
      StackMap stack: com.googlecode.lanterna.gui2.LinearLayout
         3: iconst_0
      StackMap locals: com.googlecode.lanterna.gui2.LinearLayout com.googlecode.lanterna.gui2.Direction
      StackMap stack: com.googlecode.lanterna.gui2.LinearLayout int
         4: putfield com.googlecode.lanterna.gui2.LinearLayout.spacing:I
         5: .line 131
            aload 0 /* this */
            iconst_1
            putfield com.googlecode.lanterna.gui2.LinearLayout.changed:Z
         6: .line 132
            return
        end local 1 // com.googlecode.lanterna.gui2.Direction direction
        end local 0 // com.googlecode.lanterna.gui2.LinearLayout this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    7     0       this  Lcom/googlecode/lanterna/gui2/LinearLayout;
            0    7     1  direction  Lcom/googlecode/lanterna/gui2/Direction;
    MethodParameters:
           Name  Flags
      direction  

  public com.googlecode.lanterna.gui2.LinearLayout setSpacing(int);
    descriptor: (I)Lcom/googlecode/lanterna/gui2/LinearLayout;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.googlecode.lanterna.gui2.LinearLayout this
        start local 1 // int spacing
         0: .line 141
            aload 0 /* this */
            iload 1 /* spacing */
            putfield com.googlecode.lanterna.gui2.LinearLayout.spacing:I
         1: .line 142
            aload 0 /* this */
            iconst_1
            putfield com.googlecode.lanterna.gui2.LinearLayout.changed:Z
         2: .line 143
            aload 0 /* this */
            areturn
        end local 1 // int spacing
        end local 0 // com.googlecode.lanterna.gui2.LinearLayout this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lcom/googlecode/lanterna/gui2/LinearLayout;
            0    3     1  spacing  I
    MethodParameters:
         Name  Flags
      spacing  

  public int getSpacing();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.googlecode.lanterna.gui2.LinearLayout this
         0: .line 152
            aload 0 /* this */
            getfield com.googlecode.lanterna.gui2.LinearLayout.spacing:I
            ireturn
        end local 0 // com.googlecode.lanterna.gui2.LinearLayout this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/googlecode/lanterna/gui2/LinearLayout;

  public com.googlecode.lanterna.TerminalSize getPreferredSize(java.util.List<com.googlecode.lanterna.gui2.Component>);
    descriptor: (Ljava/util/List;)Lcom/googlecode/lanterna/TerminalSize;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.googlecode.lanterna.gui2.LinearLayout this
        start local 1 // java.util.List components
         0: .line 158
            aload 1 /* components */
            invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
            invokedynamic test()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
                  com/googlecode/lanterna/gui2/Component.isVisible()Z (9 itf)
                  (Lcom/googlecode/lanterna/gui2/Component;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)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
            astore 1 /* components */
         1: .line 160
            aload 0 /* this */
            getfield com.googlecode.lanterna.gui2.LinearLayout.direction:Lcom/googlecode/lanterna/gui2/Direction;
            getstatic com.googlecode.lanterna.gui2.Direction.VERTICAL:Lcom/googlecode/lanterna/gui2/Direction;
            if_acmpne 3
         2: .line 161
            aload 0 /* this */
            aload 1 /* components */
            invokevirtual com.googlecode.lanterna.gui2.LinearLayout.getPreferredSizeVertically:(Ljava/util/List;)Lcom/googlecode/lanterna/TerminalSize;
            areturn
         3: .line 164
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* components */
            invokevirtual com.googlecode.lanterna.gui2.LinearLayout.getPreferredSizeHorizontally:(Ljava/util/List;)Lcom/googlecode/lanterna/TerminalSize;
            areturn
        end local 1 // java.util.List components
        end local 0 // com.googlecode.lanterna.gui2.LinearLayout this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0        this  Lcom/googlecode/lanterna/gui2/LinearLayout;
            0    4     1  components  Ljava/util/List<Lcom/googlecode/lanterna/gui2/Component;>;
    Signature: (Ljava/util/List<Lcom/googlecode/lanterna/gui2/Component;>;)Lcom/googlecode/lanterna/TerminalSize;
    MethodParameters:
            Name  Flags
      components  

  private com.googlecode.lanterna.TerminalSize getPreferredSizeVertically(java.util.List<com.googlecode.lanterna.gui2.Component>);
    descriptor: (Ljava/util/List;)Lcom/googlecode/lanterna/TerminalSize;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=7, args_size=2
        start local 0 // com.googlecode.lanterna.gui2.LinearLayout this
        start local 1 // java.util.List components
         0: .line 169
            iconst_0
            istore 2 /* maxWidth */
        start local 2 // int maxWidth
         1: .line 170
            iconst_0
            istore 3 /* height */
        start local 3 // int height
         2: .line 171
            aload 1 /* components */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 5
            goto 8
      StackMap locals: com.googlecode.lanterna.gui2.LinearLayout java.util.List int int top java.util.Iterator
      StackMap stack:
         3: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.googlecode.lanterna.gui2.Component
            astore 4 /* component */
        start local 4 // com.googlecode.lanterna.gui2.Component component
         4: .line 172
            aload 4 /* component */
            invokeinterface com.googlecode.lanterna.gui2.Component.getPreferredSize:()Lcom/googlecode/lanterna/TerminalSize;
            astore 6 /* preferredSize */
        start local 6 // com.googlecode.lanterna.TerminalSize preferredSize
         5: .line 173
            iload 2 /* maxWidth */
            aload 6 /* preferredSize */
            invokevirtual com.googlecode.lanterna.TerminalSize.getColumns:()I
            if_icmpge 7
         6: .line 174
            aload 6 /* preferredSize */
            invokevirtual com.googlecode.lanterna.TerminalSize.getColumns:()I
            istore 2 /* maxWidth */
         7: .line 176
      StackMap locals: com.googlecode.lanterna.gui2.LinearLayout java.util.List int int com.googlecode.lanterna.gui2.Component java.util.Iterator com.googlecode.lanterna.TerminalSize
      StackMap stack:
            iload 3 /* height */
            aload 6 /* preferredSize */
            invokevirtual com.googlecode.lanterna.TerminalSize.getRows:()I
            iadd
            istore 3 /* height */
        end local 6 // com.googlecode.lanterna.TerminalSize preferredSize
        end local 4 // com.googlecode.lanterna.gui2.Component component
         8: .line 171
      StackMap locals: com.googlecode.lanterna.gui2.LinearLayout java.util.List int int top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
         9: .line 178
            iload 3 /* height */
            aload 0 /* this */
            getfield com.googlecode.lanterna.gui2.LinearLayout.spacing:I
            aload 1 /* components */
            invokeinterface java.util.List.size:()I
            iconst_1
            isub
            imul
            iadd
            istore 3 /* height */
        10: .line 179
            new com.googlecode.lanterna.TerminalSize
            dup
            iload 2 /* maxWidth */
            iconst_0
            iload 3 /* height */
            invokestatic java.lang.Math.max:(II)I
            invokespecial com.googlecode.lanterna.TerminalSize.<init>:(II)V
            areturn
        end local 3 // int height
        end local 2 // int maxWidth
        end local 1 // java.util.List components
        end local 0 // com.googlecode.lanterna.gui2.LinearLayout this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   11     0           this  Lcom/googlecode/lanterna/gui2/LinearLayout;
            0   11     1     components  Ljava/util/List<Lcom/googlecode/lanterna/gui2/Component;>;
            1   11     2       maxWidth  I
            2   11     3         height  I
            4    8     4      component  Lcom/googlecode/lanterna/gui2/Component;
            5    8     6  preferredSize  Lcom/googlecode/lanterna/TerminalSize;
    Signature: (Ljava/util/List<Lcom/googlecode/lanterna/gui2/Component;>;)Lcom/googlecode/lanterna/TerminalSize;
    MethodParameters:
            Name  Flags
      components  

  private com.googlecode.lanterna.TerminalSize getPreferredSizeHorizontally(java.util.List<com.googlecode.lanterna.gui2.Component>);
    descriptor: (Ljava/util/List;)Lcom/googlecode/lanterna/TerminalSize;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=7, args_size=2
        start local 0 // com.googlecode.lanterna.gui2.LinearLayout this
        start local 1 // java.util.List components
         0: .line 183
            iconst_0
            istore 2 /* maxHeight */
        start local 2 // int maxHeight
         1: .line 184
            iconst_0
            istore 3 /* width */
        start local 3 // int width
         2: .line 185
            aload 1 /* components */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 5
            goto 8
      StackMap locals: com.googlecode.lanterna.gui2.LinearLayout java.util.List int int top java.util.Iterator
      StackMap stack:
         3: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.googlecode.lanterna.gui2.Component
            astore 4 /* component */
        start local 4 // com.googlecode.lanterna.gui2.Component component
         4: .line 186
            aload 4 /* component */
            invokeinterface com.googlecode.lanterna.gui2.Component.getPreferredSize:()Lcom/googlecode/lanterna/TerminalSize;
            astore 6 /* preferredSize */
        start local 6 // com.googlecode.lanterna.TerminalSize preferredSize
         5: .line 187
            iload 2 /* maxHeight */
            aload 6 /* preferredSize */
            invokevirtual com.googlecode.lanterna.TerminalSize.getRows:()I
            if_icmpge 7
         6: .line 188
            aload 6 /* preferredSize */
            invokevirtual com.googlecode.lanterna.TerminalSize.getRows:()I
            istore 2 /* maxHeight */
         7: .line 190
      StackMap locals: com.googlecode.lanterna.gui2.LinearLayout java.util.List int int com.googlecode.lanterna.gui2.Component java.util.Iterator com.googlecode.lanterna.TerminalSize
      StackMap stack:
            iload 3 /* width */
            aload 6 /* preferredSize */
            invokevirtual com.googlecode.lanterna.TerminalSize.getColumns:()I
            iadd
            istore 3 /* width */
        end local 6 // com.googlecode.lanterna.TerminalSize preferredSize
        end local 4 // com.googlecode.lanterna.gui2.Component component
         8: .line 185
      StackMap locals: com.googlecode.lanterna.gui2.LinearLayout java.util.List int int top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
         9: .line 192
            iload 3 /* width */
            aload 0 /* this */
            getfield com.googlecode.lanterna.gui2.LinearLayout.spacing:I
            aload 1 /* components */
            invokeinterface java.util.List.size:()I
            iconst_1
            isub
            imul
            iadd
            istore 3 /* width */
        10: .line 193
            new com.googlecode.lanterna.TerminalSize
            dup
            iconst_0
            iload 3 /* width */
            invokestatic java.lang.Math.max:(II)I
            iload 2 /* maxHeight */
            invokespecial com.googlecode.lanterna.TerminalSize.<init>:(II)V
            areturn
        end local 3 // int width
        end local 2 // int maxHeight
        end local 1 // java.util.List components
        end local 0 // com.googlecode.lanterna.gui2.LinearLayout this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   11     0           this  Lcom/googlecode/lanterna/gui2/LinearLayout;
            0   11     1     components  Ljava/util/List<Lcom/googlecode/lanterna/gui2/Component;>;
            1   11     2      maxHeight  I
            2   11     3          width  I
            4    8     4      component  Lcom/googlecode/lanterna/gui2/Component;
            5    8     6  preferredSize  Lcom/googlecode/lanterna/TerminalSize;
    Signature: (Ljava/util/List<Lcom/googlecode/lanterna/gui2/Component;>;)Lcom/googlecode/lanterna/TerminalSize;
    MethodParameters:
            Name  Flags
      components  

  public boolean hasChanged();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.googlecode.lanterna.gui2.LinearLayout this
         0: .line 198
            aload 0 /* this */
            getfield com.googlecode.lanterna.gui2.LinearLayout.changed:Z
            ireturn
        end local 0 // com.googlecode.lanterna.gui2.LinearLayout this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/googlecode/lanterna/gui2/LinearLayout;

  public void doLayout(com.googlecode.lanterna.TerminalSize, java.util.List<com.googlecode.lanterna.gui2.Component>);
    descriptor: (Lcom/googlecode/lanterna/TerminalSize;Ljava/util/List;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.googlecode.lanterna.gui2.LinearLayout this
        start local 1 // com.googlecode.lanterna.TerminalSize area
        start local 2 // java.util.List components
         0: .line 204
            aload 2 /* components */
            invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
            invokedynamic test()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
                  com/googlecode/lanterna/gui2/Component.isVisible()Z (9 itf)
                  (Lcom/googlecode/lanterna/gui2/Component;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)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
            astore 2 /* components */
         1: .line 206
            aload 0 /* this */
            getfield com.googlecode.lanterna.gui2.LinearLayout.direction:Lcom/googlecode/lanterna/gui2/Direction;
            getstatic com.googlecode.lanterna.gui2.Direction.VERTICAL:Lcom/googlecode/lanterna/gui2/Direction;
            if_acmpne 7
         2: .line 207
            ldc "com.googlecode.lanterna.gui2.LinearLayout.useOldNonFlexLayout"
            invokestatic java.lang.Boolean.getBoolean:(Ljava/lang/String;)Z
            ifeq 5
         3: .line 208
            aload 0 /* this */
            aload 1 /* area */
            aload 2 /* components */
            invokevirtual com.googlecode.lanterna.gui2.LinearLayout.doVerticalLayout:(Lcom/googlecode/lanterna/TerminalSize;Ljava/util/List;)V
         4: .line 209
            goto 11
         5: .line 211
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* area */
            aload 2 /* components */
            invokevirtual com.googlecode.lanterna.gui2.LinearLayout.doFlexibleVerticalLayout:(Lcom/googlecode/lanterna/TerminalSize;Ljava/util/List;)V
         6: .line 213
            goto 11
         7: .line 215
      StackMap locals:
      StackMap stack:
            ldc "com.googlecode.lanterna.gui2.LinearLayout.useOldNonFlexLayout"
            invokestatic java.lang.Boolean.getBoolean:(Ljava/lang/String;)Z
            ifeq 10
         8: .line 216
            aload 0 /* this */
            aload 1 /* area */
            aload 2 /* components */
            invokevirtual com.googlecode.lanterna.gui2.LinearLayout.doHorizontalLayout:(Lcom/googlecode/lanterna/TerminalSize;Ljava/util/List;)V
         9: .line 217
            goto 11
        10: .line 219
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* area */
            aload 2 /* components */
            invokevirtual com.googlecode.lanterna.gui2.LinearLayout.doFlexibleHorizontalLayout:(Lcom/googlecode/lanterna/TerminalSize;Ljava/util/List;)V
        11: .line 222
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield com.googlecode.lanterna.gui2.LinearLayout.changed:Z
        12: .line 223
            return
        end local 2 // java.util.List components
        end local 1 // com.googlecode.lanterna.TerminalSize area
        end local 0 // com.googlecode.lanterna.gui2.LinearLayout this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   13     0        this  Lcom/googlecode/lanterna/gui2/LinearLayout;
            0   13     1        area  Lcom/googlecode/lanterna/TerminalSize;
            0   13     2  components  Ljava/util/List<Lcom/googlecode/lanterna/gui2/Component;>;
    Signature: (Lcom/googlecode/lanterna/TerminalSize;Ljava/util/List<Lcom/googlecode/lanterna/gui2/Component;>;)V
    MethodParameters:
            Name  Flags
      area        
      components  

  private void doVerticalLayout(com.googlecode.lanterna.TerminalSize, java.util.List<com.googlecode.lanterna.gui2.Component>);
    descriptor: (Lcom/googlecode/lanterna/TerminalSize;Ljava/util/List;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=12, args_size=3
        start local 0 // com.googlecode.lanterna.gui2.LinearLayout this
        start local 1 // com.googlecode.lanterna.TerminalSize area
        start local 2 // java.util.List components
         0: .line 227
            aload 1 /* area */
            invokevirtual com.googlecode.lanterna.TerminalSize.getRows:()I
            istore 3 /* remainingVerticalSpace */
        start local 3 // int remainingVerticalSpace
         1: .line 228
            aload 1 /* area */
            invokevirtual com.googlecode.lanterna.TerminalSize.getColumns:()I
            istore 4 /* availableHorizontalSpace */
        start local 4 // int availableHorizontalSpace
         2: .line 229
            aload 2 /* components */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 6
            goto 31
      StackMap locals: com.googlecode.lanterna.gui2.LinearLayout com.googlecode.lanterna.TerminalSize java.util.List int int top java.util.Iterator
      StackMap stack:
         3: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.googlecode.lanterna.gui2.Component
            astore 5 /* component */
        start local 5 // com.googlecode.lanterna.gui2.Component component
         4: .line 230
            iload 3 /* remainingVerticalSpace */
            ifgt 8
         5: .line 231
            aload 5 /* component */
            getstatic com.googlecode.lanterna.TerminalPosition.TOP_LEFT_CORNER:Lcom/googlecode/lanterna/TerminalPosition;
            invokeinterface com.googlecode.lanterna.gui2.Component.setPosition:(Lcom/googlecode/lanterna/TerminalPosition;)Lcom/googlecode/lanterna/gui2/Component;
            pop
         6: .line 232
            aload 5 /* component */
            getstatic com.googlecode.lanterna.TerminalSize.ZERO:Lcom/googlecode/lanterna/TerminalSize;
            invokeinterface com.googlecode.lanterna.gui2.Component.setSize:(Lcom/googlecode/lanterna/TerminalSize;)Lcom/googlecode/lanterna/gui2/Component;
            pop
         7: .line 233
            goto 31
         8: .line 235
      StackMap locals: com.googlecode.lanterna.gui2.LinearLayout com.googlecode.lanterna.TerminalSize java.util.List int int com.googlecode.lanterna.gui2.Component java.util.Iterator
      StackMap stack:
            getstatic com.googlecode.lanterna.gui2.LinearLayout$Alignment.Beginning:Lcom/googlecode/lanterna/gui2/LinearLayout$Alignment;
            astore 7 /* alignment */
        start local 7 // com.googlecode.lanterna.gui2.LinearLayout$Alignment alignment
         9: .line 236
            aload 5 /* component */
            invokeinterface com.googlecode.lanterna.gui2.Component.getLayoutData:()Lcom/googlecode/lanterna/gui2/LayoutData;
            astore 8 /* layoutData */
        start local 8 // com.googlecode.lanterna.gui2.LayoutData layoutData
        10: .line 237
            aload 8 /* layoutData */
            instanceof com.googlecode.lanterna.gui2.LinearLayout$LinearLayoutData
            ifeq 12
        11: .line 238
            aload 8 /* layoutData */
            checkcast com.googlecode.lanterna.gui2.LinearLayout$LinearLayoutData
            getfield com.googlecode.lanterna.gui2.LinearLayout$LinearLayoutData.alignment:Lcom/googlecode/lanterna/gui2/LinearLayout$Alignment;
            astore 7 /* alignment */
        12: .line 241
      StackMap locals: com.googlecode.lanterna.gui2.LinearLayout$Alignment com.googlecode.lanterna.gui2.LayoutData
      StackMap stack:
            aload 5 /* component */
            invokeinterface com.googlecode.lanterna.gui2.Component.getPreferredSize:()Lcom/googlecode/lanterna/TerminalSize;
            astore 9 /* preferredSize */
        start local 9 // com.googlecode.lanterna.TerminalSize preferredSize
        13: .line 242
            new com.googlecode.lanterna.TerminalSize
            dup
        14: .line 243
            iload 4 /* availableHorizontalSpace */
            aload 9 /* preferredSize */
            invokevirtual com.googlecode.lanterna.TerminalSize.getColumns:()I
            invokestatic java.lang.Math.min:(II)I
        15: .line 244
            iload 3 /* remainingVerticalSpace */
            aload 9 /* preferredSize */
            invokevirtual com.googlecode.lanterna.TerminalSize.getRows:()I
            invokestatic java.lang.Math.min:(II)I
        16: .line 242
            invokespecial com.googlecode.lanterna.TerminalSize.<init>:(II)V
            astore 10 /* decidedSize */
        start local 10 // com.googlecode.lanterna.TerminalSize decidedSize
        17: .line 245
            aload 7 /* alignment */
            getstatic com.googlecode.lanterna.gui2.LinearLayout$Alignment.Fill:Lcom/googlecode/lanterna/gui2/LinearLayout$Alignment;
            if_acmpne 20
        18: .line 246
            aload 10 /* decidedSize */
            iload 4 /* availableHorizontalSpace */
            invokevirtual com.googlecode.lanterna.TerminalSize.withColumns:(I)Lcom/googlecode/lanterna/TerminalSize;
            astore 10 /* decidedSize */
        19: .line 247
            getstatic com.googlecode.lanterna.gui2.LinearLayout$Alignment.Beginning:Lcom/googlecode/lanterna/gui2/LinearLayout$Alignment;
            astore 7 /* alignment */
        20: .line 250
      StackMap locals: com.googlecode.lanterna.TerminalSize com.googlecode.lanterna.TerminalSize
      StackMap stack:
            aload 5 /* component */
            invokeinterface com.googlecode.lanterna.gui2.Component.getPosition:()Lcom/googlecode/lanterna/TerminalPosition;
            astore 11 /* position */
        start local 11 // com.googlecode.lanterna.TerminalPosition position
        21: .line 251
            aload 11 /* position */
            aload 1 /* area */
            invokevirtual com.googlecode.lanterna.TerminalSize.getRows:()I
            iload 3 /* remainingVerticalSpace */
            isub
            invokevirtual com.googlecode.lanterna.TerminalPosition.withRow:(I)Lcom/googlecode/lanterna/TerminalPosition;
            astore 11 /* position */
        22: .line 252
            invokestatic com.googlecode.lanterna.gui2.LinearLayout.$SWITCH_TABLE$com$googlecode$lanterna$gui2$LinearLayout$Alignment:()[I
            aload 7 /* alignment */
            invokevirtual com.googlecode.lanterna.gui2.LinearLayout$Alignment.ordinal:()I
            iaload
            tableswitch { // 1 - 3
                    1: 27
                    2: 25
                    3: 23
              default: 27
          }
        23: .line 254
      StackMap locals: com.googlecode.lanterna.TerminalPosition
      StackMap stack:
            aload 11 /* position */
            iload 4 /* availableHorizontalSpace */
            aload 10 /* decidedSize */
            invokevirtual com.googlecode.lanterna.TerminalSize.getColumns:()I
            isub
            invokevirtual com.googlecode.lanterna.TerminalPosition.withColumn:(I)Lcom/googlecode/lanterna/TerminalPosition;
            astore 11 /* position */
        24: .line 255
            goto 28
        25: .line 257
      StackMap locals:
      StackMap stack:
            aload 11 /* position */
            iload 4 /* availableHorizontalSpace */
            aload 10 /* decidedSize */
            invokevirtual com.googlecode.lanterna.TerminalSize.getColumns:()I
            isub
            iconst_2
            idiv
            invokevirtual com.googlecode.lanterna.TerminalPosition.withColumn:(I)Lcom/googlecode/lanterna/TerminalPosition;
            astore 11 /* position */
        26: .line 258
            goto 28
        27: .line 261
      StackMap locals:
      StackMap stack:
            aload 11 /* position */
            iconst_0
            invokevirtual com.googlecode.lanterna.TerminalPosition.withColumn:(I)Lcom/googlecode/lanterna/TerminalPosition;
            astore 11 /* position */
        28: .line 264
      StackMap locals:
      StackMap stack:
            aload 5 /* component */
            aload 11 /* position */
            invokeinterface com.googlecode.lanterna.gui2.Component.setPosition:(Lcom/googlecode/lanterna/TerminalPosition;)Lcom/googlecode/lanterna/gui2/Component;
            pop
        29: .line 265
            aload 5 /* component */
            aload 5 /* component */
            invokeinterface com.googlecode.lanterna.gui2.Component.getSize:()Lcom/googlecode/lanterna/TerminalSize;
            aload 10 /* decidedSize */
            invokevirtual com.googlecode.lanterna.TerminalSize.with:(Lcom/googlecode/lanterna/TerminalSize;)Lcom/googlecode/lanterna/TerminalSize;
            invokeinterface com.googlecode.lanterna.gui2.Component.setSize:(Lcom/googlecode/lanterna/TerminalSize;)Lcom/googlecode/lanterna/gui2/Component;
            pop
        30: .line 266
            iload 3 /* remainingVerticalSpace */
            aload 10 /* decidedSize */
            invokevirtual com.googlecode.lanterna.TerminalSize.getRows:()I
            aload 0 /* this */
            getfield com.googlecode.lanterna.gui2.LinearLayout.spacing:I
            iadd
            isub
            istore 3 /* remainingVerticalSpace */
        end local 11 // com.googlecode.lanterna.TerminalPosition position
        end local 10 // com.googlecode.lanterna.TerminalSize decidedSize
        end local 9 // com.googlecode.lanterna.TerminalSize preferredSize
        end local 8 // com.googlecode.lanterna.gui2.LayoutData layoutData
        end local 7 // com.googlecode.lanterna.gui2.LinearLayout$Alignment alignment
        end local 5 // com.googlecode.lanterna.gui2.Component component
        31: .line 229
      StackMap locals: com.googlecode.lanterna.gui2.LinearLayout com.googlecode.lanterna.TerminalSize java.util.List int int top java.util.Iterator
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
        32: .line 269
            return
        end local 4 // int availableHorizontalSpace
        end local 3 // int remainingVerticalSpace
        end local 2 // java.util.List components
        end local 1 // com.googlecode.lanterna.TerminalSize area
        end local 0 // com.googlecode.lanterna.gui2.LinearLayout this
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0   33     0                      this  Lcom/googlecode/lanterna/gui2/LinearLayout;
            0   33     1                      area  Lcom/googlecode/lanterna/TerminalSize;
            0   33     2                components  Ljava/util/List<Lcom/googlecode/lanterna/gui2/Component;>;
            1   33     3    remainingVerticalSpace  I
            2   33     4  availableHorizontalSpace  I
            4   31     5                 component  Lcom/googlecode/lanterna/gui2/Component;
            9   31     7                 alignment  Lcom/googlecode/lanterna/gui2/LinearLayout$Alignment;
           10   31     8                layoutData  Lcom/googlecode/lanterna/gui2/LayoutData;
           13   31     9             preferredSize  Lcom/googlecode/lanterna/TerminalSize;
           17   31    10               decidedSize  Lcom/googlecode/lanterna/TerminalSize;
           21   31    11                  position  Lcom/googlecode/lanterna/TerminalPosition;
    Signature: (Lcom/googlecode/lanterna/TerminalSize;Ljava/util/List<Lcom/googlecode/lanterna/gui2/Component;>;)V
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
            Name  Flags
      area        
      components  

  private void doFlexibleVerticalLayout(com.googlecode.lanterna.TerminalSize, java.util.List<com.googlecode.lanterna.gui2.Component>);
    descriptor: (Lcom/googlecode/lanterna/TerminalSize;Ljava/util/List;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=15, args_size=3
        start local 0 // com.googlecode.lanterna.gui2.LinearLayout this
        start local 1 // com.googlecode.lanterna.TerminalSize area
        start local 2 // java.util.List components
         0: .line 272
            aload 1 /* area */
            invokevirtual com.googlecode.lanterna.TerminalSize.getRows:()I
            istore 3 /* availableVerticalSpace */
        start local 3 // int availableVerticalSpace
         1: .line 273
            aload 1 /* area */
            invokevirtual com.googlecode.lanterna.TerminalSize.getColumns:()I
            istore 4 /* availableHorizontalSpace */
        start local 4 // int availableHorizontalSpace
         2: .line 274
            new java.util.ArrayList
            dup
            aload 2 /* components */
            invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
            astore 5 /* copyOfComponenets */
        start local 5 // java.util.List copyOfComponenets
         3: .line 275
            new java.util.IdentityHashMap
            dup
            invokespecial java.util.IdentityHashMap.<init>:()V
            astore 6 /* fittingMap */
        start local 6 // java.util.Map fittingMap
         4: .line 276
            iconst_0
            istore 7 /* totalRequiredVerticalSpace */
        start local 7 // int totalRequiredVerticalSpace
         5: .line 278
            aload 2 /* components */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 9
            goto 20
      StackMap locals: com.googlecode.lanterna.gui2.LinearLayout com.googlecode.lanterna.TerminalSize java.util.List int int java.util.List java.util.Map int top java.util.Iterator
      StackMap stack:
         6: aload 9
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.googlecode.lanterna.gui2.Component
            astore 8 /* component */
        start local 8 // com.googlecode.lanterna.gui2.Component component
         7: .line 279
            getstatic com.googlecode.lanterna.gui2.LinearLayout$Alignment.Beginning:Lcom/googlecode/lanterna/gui2/LinearLayout$Alignment;
            astore 10 /* alignment */
        start local 10 // com.googlecode.lanterna.gui2.LinearLayout$Alignment alignment
         8: .line 280
            aload 8 /* component */
            invokeinterface com.googlecode.lanterna.gui2.Component.getLayoutData:()Lcom/googlecode/lanterna/gui2/LayoutData;
            astore 11 /* layoutData */
        start local 11 // com.googlecode.lanterna.gui2.LayoutData layoutData
         9: .line 281
            aload 11 /* layoutData */
            instanceof com.googlecode.lanterna.gui2.LinearLayout$LinearLayoutData
            ifeq 11
        10: .line 282
            aload 11 /* layoutData */
            checkcast com.googlecode.lanterna.gui2.LinearLayout$LinearLayoutData
            getfield com.googlecode.lanterna.gui2.LinearLayout$LinearLayoutData.alignment:Lcom/googlecode/lanterna/gui2/LinearLayout$Alignment;
            astore 10 /* alignment */
        11: .line 285
      StackMap locals: com.googlecode.lanterna.gui2.LinearLayout com.googlecode.lanterna.TerminalSize java.util.List int int java.util.List java.util.Map int com.googlecode.lanterna.gui2.Component java.util.Iterator com.googlecode.lanterna.gui2.LinearLayout$Alignment com.googlecode.lanterna.gui2.LayoutData
      StackMap stack:
            aload 8 /* component */
            invokeinterface com.googlecode.lanterna.gui2.Component.getPreferredSize:()Lcom/googlecode/lanterna/TerminalSize;
            astore 12 /* preferredSize */
        start local 12 // com.googlecode.lanterna.TerminalSize preferredSize
        12: .line 286
            new com.googlecode.lanterna.TerminalSize
            dup
        13: .line 287
            iload 4 /* availableHorizontalSpace */
            aload 12 /* preferredSize */
            invokevirtual com.googlecode.lanterna.TerminalSize.getColumns:()I
            invokestatic java.lang.Math.min:(II)I
        14: .line 288
            aload 12 /* preferredSize */
            invokevirtual com.googlecode.lanterna.TerminalSize.getRows:()I
        15: .line 286
            invokespecial com.googlecode.lanterna.TerminalSize.<init>:(II)V
            astore 13 /* fittingSize */
        start local 13 // com.googlecode.lanterna.TerminalSize fittingSize
        16: .line 289
            aload 10 /* alignment */
            getstatic com.googlecode.lanterna.gui2.LinearLayout$Alignment.Fill:Lcom/googlecode/lanterna/gui2/LinearLayout$Alignment;
            if_acmpne 18
        17: .line 290
            aload 13 /* fittingSize */
            iload 4 /* availableHorizontalSpace */
            invokevirtual com.googlecode.lanterna.TerminalSize.withColumns:(I)Lcom/googlecode/lanterna/TerminalSize;
            astore 13 /* fittingSize */
        18: .line 293
      StackMap locals: com.googlecode.lanterna.TerminalSize com.googlecode.lanterna.TerminalSize
      StackMap stack:
            aload 6 /* fittingMap */
            aload 8 /* component */
            aload 13 /* fittingSize */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        19: .line 294
            iload 7 /* totalRequiredVerticalSpace */
            aload 13 /* fittingSize */
            invokevirtual com.googlecode.lanterna.TerminalSize.getRows:()I
            aload 0 /* this */
            getfield com.googlecode.lanterna.gui2.LinearLayout.spacing:I
            iadd
            iadd
            istore 7 /* totalRequiredVerticalSpace */
        end local 13 // com.googlecode.lanterna.TerminalSize fittingSize
        end local 12 // com.googlecode.lanterna.TerminalSize preferredSize
        end local 11 // com.googlecode.lanterna.gui2.LayoutData layoutData
        end local 10 // com.googlecode.lanterna.gui2.LinearLayout$Alignment alignment
        end local 8 // com.googlecode.lanterna.gui2.Component component
        20: .line 278
      StackMap locals: com.googlecode.lanterna.gui2.LinearLayout com.googlecode.lanterna.TerminalSize java.util.List int int java.util.List java.util.Map int top java.util.Iterator
      StackMap stack:
            aload 9
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 6
        21: .line 296
            aload 2 /* components */
            invokeinterface java.util.List.isEmpty:()Z
            ifne 23
        22: .line 298
            iload 7 /* totalRequiredVerticalSpace */
            aload 0 /* this */
            getfield com.googlecode.lanterna.gui2.LinearLayout.spacing:I
            isub
            istore 7 /* totalRequiredVerticalSpace */
        23: .line 302
      StackMap locals: com.googlecode.lanterna.gui2.LinearLayout com.googlecode.lanterna.TerminalSize java.util.List int int java.util.List java.util.Map int
      StackMap stack:
            iload 3 /* availableVerticalSpace */
            iload 7 /* totalRequiredVerticalSpace */
            if_icmpge 36
        24: .line 303
            aload 5 /* copyOfComponenets */
            aload 6 /* fittingMap */
            invokedynamic compare(Ljava/util/Map;)Ljava/util/Comparator;
              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;Ljava/lang/Object;)I
                  com/googlecode/lanterna/gui2/LinearLayout.lambda$2(Ljava/util/Map;Lcom/googlecode/lanterna/gui2/Component;Lcom/googlecode/lanterna/gui2/Component;)I (6)
                  (Lcom/googlecode/lanterna/gui2/Component;Lcom/googlecode/lanterna/gui2/Component;)I
            invokeinterface java.util.List.sort:(Ljava/util/Comparator;)V
        25: .line 308
            goto 35
        26: .line 309
      StackMap locals:
      StackMap stack:
            aload 6 /* fittingMap */
            aload 5 /* copyOfComponenets */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.googlecode.lanterna.TerminalSize
            invokevirtual com.googlecode.lanterna.TerminalSize.getRows:()I
            istore 8 /* largestSize */
        start local 8 // int largestSize
        27: .line 310
            aload 5 /* copyOfComponenets */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 10
            goto 34
      StackMap locals: com.googlecode.lanterna.gui2.LinearLayout com.googlecode.lanterna.TerminalSize java.util.List int int java.util.List java.util.Map int int top java.util.Iterator
      StackMap stack:
        28: aload 10
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.googlecode.lanterna.gui2.Component
            astore 9 /* largeComponent */
        start local 9 // com.googlecode.lanterna.gui2.Component largeComponent
        29: .line 311
            aload 6 /* fittingMap */
            aload 9 /* largeComponent */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.googlecode.lanterna.TerminalSize
            astore 11 /* currentSize */
        start local 11 // com.googlecode.lanterna.TerminalSize currentSize
        30: .line 312
            iload 8 /* largestSize */
            aload 11 /* currentSize */
            invokevirtual com.googlecode.lanterna.TerminalSize.getRows:()I
            if_icmple 32
        31: .line 313
            goto 35
        32: .line 315
      StackMap locals: com.googlecode.lanterna.gui2.LinearLayout com.googlecode.lanterna.TerminalSize java.util.List int int java.util.List java.util.Map int int com.googlecode.lanterna.gui2.Component java.util.Iterator com.googlecode.lanterna.TerminalSize
      StackMap stack:
            aload 6 /* fittingMap */
            aload 9 /* largeComponent */
            aload 11 /* currentSize */
            iconst_m1
            invokevirtual com.googlecode.lanterna.TerminalSize.withRelativeRows:(I)Lcom/googlecode/lanterna/TerminalSize;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        33: .line 316
            iinc 7 /* totalRequiredVerticalSpace */ -1
        end local 11 // com.googlecode.lanterna.TerminalSize currentSize
        end local 9 // com.googlecode.lanterna.gui2.Component largeComponent
        34: .line 310
      StackMap locals: com.googlecode.lanterna.gui2.LinearLayout com.googlecode.lanterna.TerminalSize java.util.List int int java.util.List java.util.Map int int top java.util.Iterator
      StackMap stack:
            aload 10
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 28
        end local 8 // int largestSize
        35: .line 308
      StackMap locals: com.googlecode.lanterna.gui2.LinearLayout com.googlecode.lanterna.TerminalSize java.util.List int int java.util.List java.util.Map int
      StackMap stack:
            iload 3 /* availableVerticalSpace */
            iload 7 /* totalRequiredVerticalSpace */
            if_icmplt 26
        36: .line 322
      StackMap locals:
      StackMap stack:
            iload 3 /* availableVerticalSpace */
            iload 7 /* totalRequiredVerticalSpace */
            if_icmple 53
        37: .line 323
            iconst_0
            istore 8 /* resizedOneComponent */
        start local 8 // boolean resizedOneComponent
        38: .line 324
            goto 52
        39: .line 325
      StackMap locals: int
      StackMap stack:
            aload 2 /* components */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 10
            goto 49
      StackMap locals: com.googlecode.lanterna.gui2.LinearLayout com.googlecode.lanterna.TerminalSize java.util.List int int java.util.List java.util.Map int int top java.util.Iterator
      StackMap stack:
        40: aload 10
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.googlecode.lanterna.gui2.Component
            astore 9 /* component */
        start local 9 // com.googlecode.lanterna.gui2.Component component
        41: .line 326
            aload 9 /* component */
            invokeinterface com.googlecode.lanterna.gui2.Component.getLayoutData:()Lcom/googlecode/lanterna/gui2/LayoutData;
            checkcast com.googlecode.lanterna.gui2.LinearLayout$LinearLayoutData
            astore 11 /* layoutData */
        start local 11 // com.googlecode.lanterna.gui2.LinearLayout$LinearLayoutData layoutData
        42: .line 327
            aload 6 /* fittingMap */
            aload 9 /* component */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.googlecode.lanterna.TerminalSize
            astore 12 /* currentSize */
        start local 12 // com.googlecode.lanterna.TerminalSize currentSize
        43: .line 328
            aload 11 /* layoutData */
            ifnull 47
            aload 11 /* layoutData */
            getfield com.googlecode.lanterna.gui2.LinearLayout$LinearLayoutData.growPolicy:Lcom/googlecode/lanterna/gui2/LinearLayout$GrowPolicy;
            getstatic com.googlecode.lanterna.gui2.LinearLayout$GrowPolicy.CanGrow:Lcom/googlecode/lanterna/gui2/LinearLayout$GrowPolicy;
            if_acmpne 47
        44: .line 329
            aload 6 /* fittingMap */
            aload 9 /* component */
            aload 12 /* currentSize */
            iconst_1
            invokevirtual com.googlecode.lanterna.TerminalSize.withRelativeRows:(I)Lcom/googlecode/lanterna/TerminalSize;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        45: .line 330
            iinc 3 /* availableVerticalSpace */ -1
        46: .line 331
            iconst_1
            istore 8 /* resizedOneComponent */
        47: .line 333
      StackMap locals: com.googlecode.lanterna.gui2.LinearLayout com.googlecode.lanterna.TerminalSize java.util.List int int java.util.List java.util.Map int int com.googlecode.lanterna.gui2.Component java.util.Iterator com.googlecode.lanterna.gui2.LinearLayout$LinearLayoutData com.googlecode.lanterna.TerminalSize
      StackMap stack:
            iload 3 /* availableVerticalSpace */
            iload 7 /* totalRequiredVerticalSpace */
            if_icmpgt 49
        48: .line 334
            goto 50
        end local 12 // com.googlecode.lanterna.TerminalSize currentSize
        end local 11 // com.googlecode.lanterna.gui2.LinearLayout$LinearLayoutData layoutData
        end local 9 // com.googlecode.lanterna.gui2.Component component
        49: .line 325
      StackMap locals: com.googlecode.lanterna.gui2.LinearLayout com.googlecode.lanterna.TerminalSize java.util.List int int java.util.List java.util.Map int int top java.util.Iterator
      StackMap stack:
            aload 10
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 40
        50: .line 337
      StackMap locals: com.googlecode.lanterna.gui2.LinearLayout com.googlecode.lanterna.TerminalSize java.util.List int int java.util.List java.util.Map int int
      StackMap stack:
            iload 8 /* resizedOneComponent */
            ifne 52
        51: .line 338
            goto 53
        52: .line 324
      StackMap locals:
      StackMap stack:
            iload 3 /* availableVerticalSpace */
            iload 7 /* totalRequiredVerticalSpace */
            if_icmpgt 39
        end local 8 // boolean resizedOneComponent
        53: .line 344
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 8 /* topPosition */
        start local 8 // int topPosition
        54: .line 345
            aload 2 /* components */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 10
            goto 72
      StackMap locals: com.googlecode.lanterna.gui2.LinearLayout com.googlecode.lanterna.TerminalSize java.util.List int int java.util.List java.util.Map int int top java.util.Iterator
      StackMap stack:
        55: aload 10
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.googlecode.lanterna.gui2.Component
            astore 9 /* component */
        start local 9 // com.googlecode.lanterna.gui2.Component component
        56: .line 346
            getstatic com.googlecode.lanterna.gui2.LinearLayout$Alignment.Beginning:Lcom/googlecode/lanterna/gui2/LinearLayout$Alignment;
            astore 11 /* alignment */
        start local 11 // com.googlecode.lanterna.gui2.LinearLayout$Alignment alignment
        57: .line 347
            aload 9 /* component */
            invokeinterface com.googlecode.lanterna.gui2.Component.getLayoutData:()Lcom/googlecode/lanterna/gui2/LayoutData;
            astore 12 /* layoutData */
        start local 12 // com.googlecode.lanterna.gui2.LayoutData layoutData
        58: .line 348
            aload 12 /* layoutData */
            instanceof com.googlecode.lanterna.gui2.LinearLayout$LinearLayoutData
            ifeq 60
        59: .line 349
            aload 12 /* layoutData */
            checkcast com.googlecode.lanterna.gui2.LinearLayout$LinearLayoutData
            getfield com.googlecode.lanterna.gui2.LinearLayout$LinearLayoutData.alignment:Lcom/googlecode/lanterna/gui2/LinearLayout$Alignment;
            astore 11 /* alignment */
        60: .line 352
      StackMap locals: com.googlecode.lanterna.gui2.LinearLayout com.googlecode.lanterna.TerminalSize java.util.List int int java.util.List java.util.Map int int com.googlecode.lanterna.gui2.Component java.util.Iterator com.googlecode.lanterna.gui2.LinearLayout$Alignment com.googlecode.lanterna.gui2.LayoutData
      StackMap stack:
            aload 6 /* fittingMap */
            aload 9 /* component */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.googlecode.lanterna.TerminalSize
            astore 13 /* decidedSize */
        start local 13 // com.googlecode.lanterna.TerminalSize decidedSize
        61: .line 353
            aload 9 /* component */
            invokeinterface com.googlecode.lanterna.gui2.Component.getPosition:()Lcom/googlecode/lanterna/TerminalPosition;
            astore 14 /* position */
        start local 14 // com.googlecode.lanterna.TerminalPosition position
        62: .line 354
            aload 14 /* position */
            iload 8 /* topPosition */
            invokevirtual com.googlecode.lanterna.TerminalPosition.withRow:(I)Lcom/googlecode/lanterna/TerminalPosition;
            astore 14 /* position */
        63: .line 355
            invokestatic com.googlecode.lanterna.gui2.LinearLayout.$SWITCH_TABLE$com$googlecode$lanterna$gui2$LinearLayout$Alignment:()[I
            aload 11 /* alignment */
            invokevirtual com.googlecode.lanterna.gui2.LinearLayout$Alignment.ordinal:()I
            iaload
            tableswitch { // 1 - 3
                    1: 68
                    2: 66
                    3: 64
              default: 68
          }
        64: .line 357
      StackMap locals: com.googlecode.lanterna.TerminalSize com.googlecode.lanterna.TerminalPosition
      StackMap stack:
            aload 14 /* position */
            iload 4 /* availableHorizontalSpace */
            aload 13 /* decidedSize */
            invokevirtual com.googlecode.lanterna.TerminalSize.getColumns:()I
            isub
            invokevirtual com.googlecode.lanterna.TerminalPosition.withColumn:(I)Lcom/googlecode/lanterna/TerminalPosition;
            astore 14 /* position */
        65: .line 358
            goto 69
        66: .line 360
      StackMap locals:
      StackMap stack:
            aload 14 /* position */
            iload 4 /* availableHorizontalSpace */
            aload 13 /* decidedSize */
            invokevirtual com.googlecode.lanterna.TerminalSize.getColumns:()I
            isub
            iconst_2
            idiv
            invokevirtual com.googlecode.lanterna.TerminalPosition.withColumn:(I)Lcom/googlecode/lanterna/TerminalPosition;
            astore 14 /* position */
        67: .line 361
            goto 69
        68: .line 364
      StackMap locals:
      StackMap stack:
            aload 14 /* position */
            iconst_0
            invokevirtual com.googlecode.lanterna.TerminalPosition.withColumn:(I)Lcom/googlecode/lanterna/TerminalPosition;
            astore 14 /* position */
        69: .line 367
      StackMap locals:
      StackMap stack:
            aload 9 /* component */
            aload 9 /* component */
            invokeinterface com.googlecode.lanterna.gui2.Component.getPosition:()Lcom/googlecode/lanterna/TerminalPosition;
            aload 14 /* position */
            invokevirtual com.googlecode.lanterna.TerminalPosition.with:(Lcom/googlecode/lanterna/TerminalPosition;)Lcom/googlecode/lanterna/TerminalPosition;
            invokeinterface com.googlecode.lanterna.gui2.Component.setPosition:(Lcom/googlecode/lanterna/TerminalPosition;)Lcom/googlecode/lanterna/gui2/Component;
            pop
        70: .line 368
            aload 9 /* component */
            aload 9 /* component */
            invokeinterface com.googlecode.lanterna.gui2.Component.getSize:()Lcom/googlecode/lanterna/TerminalSize;
            aload 13 /* decidedSize */
            invokevirtual com.googlecode.lanterna.TerminalSize.with:(Lcom/googlecode/lanterna/TerminalSize;)Lcom/googlecode/lanterna/TerminalSize;
            invokeinterface com.googlecode.lanterna.gui2.Component.setSize:(Lcom/googlecode/lanterna/TerminalSize;)Lcom/googlecode/lanterna/gui2/Component;
            pop
        71: .line 369
            iload 8 /* topPosition */
            aload 13 /* decidedSize */
            invokevirtual com.googlecode.lanterna.TerminalSize.getRows:()I
            aload 0 /* this */
            getfield com.googlecode.lanterna.gui2.LinearLayout.spacing:I
            iadd
            iadd
            istore 8 /* topPosition */
        end local 14 // com.googlecode.lanterna.TerminalPosition position
        end local 13 // com.googlecode.lanterna.TerminalSize decidedSize
        end local 12 // com.googlecode.lanterna.gui2.LayoutData layoutData
        end local 11 // com.googlecode.lanterna.gui2.LinearLayout$Alignment alignment
        end local 9 // com.googlecode.lanterna.gui2.Component component
        72: .line 345
      StackMap locals: com.googlecode.lanterna.gui2.LinearLayout com.googlecode.lanterna.TerminalSize java.util.List int int java.util.List java.util.Map int int top java.util.Iterator
      StackMap stack:
            aload 10
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 55
        73: .line 371
            return
        end local 8 // int topPosition
        end local 7 // int totalRequiredVerticalSpace
        end local 6 // java.util.Map fittingMap
        end local 5 // java.util.List copyOfComponenets
        end local 4 // int availableHorizontalSpace
        end local 3 // int availableVerticalSpace
        end local 2 // java.util.List components
        end local 1 // com.googlecode.lanterna.TerminalSize area
        end local 0 // com.googlecode.lanterna.gui2.LinearLayout this
      LocalVariableTable:
        Start  End  Slot                        Name  Signature
            0   74     0                        this  Lcom/googlecode/lanterna/gui2/LinearLayout;
            0   74     1                        area  Lcom/googlecode/lanterna/TerminalSize;
            0   74     2                  components  Ljava/util/List<Lcom/googlecode/lanterna/gui2/Component;>;
            1   74     3      availableVerticalSpace  I
            2   74     4    availableHorizontalSpace  I
            3   74     5           copyOfComponenets  Ljava/util/List<Lcom/googlecode/lanterna/gui2/Component;>;
            4   74     6                  fittingMap  Ljava/util/Map<Lcom/googlecode/lanterna/gui2/Component;Lcom/googlecode/lanterna/TerminalSize;>;
            5   74     7  totalRequiredVerticalSpace  I
            7   20     8                   component  Lcom/googlecode/lanterna/gui2/Component;
            8   20    10                   alignment  Lcom/googlecode/lanterna/gui2/LinearLayout$Alignment;
            9   20    11                  layoutData  Lcom/googlecode/lanterna/gui2/LayoutData;
           12   20    12               preferredSize  Lcom/googlecode/lanterna/TerminalSize;
           16   20    13                 fittingSize  Lcom/googlecode/lanterna/TerminalSize;
           27   35     8                 largestSize  I
           29   34     9              largeComponent  Lcom/googlecode/lanterna/gui2/Component;
           30   34    11                 currentSize  Lcom/googlecode/lanterna/TerminalSize;
           38   53     8         resizedOneComponent  Z
           41   49     9                   component  Lcom/googlecode/lanterna/gui2/Component;
           42   49    11                  layoutData  Lcom/googlecode/lanterna/gui2/LinearLayout$LinearLayoutData;
           43   49    12                 currentSize  Lcom/googlecode/lanterna/TerminalSize;
           54   74     8                 topPosition  I
           56   72     9                   component  Lcom/googlecode/lanterna/gui2/Component;
           57   72    11                   alignment  Lcom/googlecode/lanterna/gui2/LinearLayout$Alignment;
           58   72    12                  layoutData  Lcom/googlecode/lanterna/gui2/LayoutData;
           61   72    13                 decidedSize  Lcom/googlecode/lanterna/TerminalSize;
           62   72    14                    position  Lcom/googlecode/lanterna/TerminalPosition;
    Signature: (Lcom/googlecode/lanterna/TerminalSize;Ljava/util/List<Lcom/googlecode/lanterna/gui2/Component;>;)V
    MethodParameters:
            Name  Flags
      area        
      components  

  private void doHorizontalLayout(com.googlecode.lanterna.TerminalSize, java.util.List<com.googlecode.lanterna.gui2.Component>);
    descriptor: (Lcom/googlecode/lanterna/TerminalSize;Ljava/util/List;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=12, args_size=3
        start local 0 // com.googlecode.lanterna.gui2.LinearLayout this
        start local 1 // com.googlecode.lanterna.TerminalSize area
        start local 2 // java.util.List components
         0: .line 375
            aload 1 /* area */
            invokevirtual com.googlecode.lanterna.TerminalSize.getColumns:()I
            istore 3 /* remainingHorizontalSpace */
        start local 3 // int remainingHorizontalSpace
         1: .line 376
            aload 1 /* area */
            invokevirtual com.googlecode.lanterna.TerminalSize.getRows:()I
            istore 4 /* availableVerticalSpace */
        start local 4 // int availableVerticalSpace
         2: .line 377
            aload 2 /* components */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 6
            goto 31
      StackMap locals: com.googlecode.lanterna.gui2.LinearLayout com.googlecode.lanterna.TerminalSize java.util.List int int top java.util.Iterator
      StackMap stack:
         3: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.googlecode.lanterna.gui2.Component
            astore 5 /* component */
        start local 5 // com.googlecode.lanterna.gui2.Component component
         4: .line 378
            iload 3 /* remainingHorizontalSpace */
            ifgt 8
         5: .line 379
            aload 5 /* component */
            getstatic com.googlecode.lanterna.TerminalPosition.TOP_LEFT_CORNER:Lcom/googlecode/lanterna/TerminalPosition;
            invokeinterface com.googlecode.lanterna.gui2.Component.setPosition:(Lcom/googlecode/lanterna/TerminalPosition;)Lcom/googlecode/lanterna/gui2/Component;
            pop
         6: .line 380
            aload 5 /* component */
            getstatic com.googlecode.lanterna.TerminalSize.ZERO:Lcom/googlecode/lanterna/TerminalSize;
            invokeinterface com.googlecode.lanterna.gui2.Component.setSize:(Lcom/googlecode/lanterna/TerminalSize;)Lcom/googlecode/lanterna/gui2/Component;
            pop
         7: .line 381
            goto 31
         8: .line 383
      StackMap locals: com.googlecode.lanterna.gui2.LinearLayout com.googlecode.lanterna.TerminalSize java.util.List int int com.googlecode.lanterna.gui2.Component java.util.Iterator
      StackMap stack:
            getstatic com.googlecode.lanterna.gui2.LinearLayout$Alignment.Beginning:Lcom/googlecode/lanterna/gui2/LinearLayout$Alignment;
            astore 7 /* alignment */
        start local 7 // com.googlecode.lanterna.gui2.LinearLayout$Alignment alignment
         9: .line 384
            aload 5 /* component */
            invokeinterface com.googlecode.lanterna.gui2.Component.getLayoutData:()Lcom/googlecode/lanterna/gui2/LayoutData;
            astore 8 /* layoutData */
        start local 8 // com.googlecode.lanterna.gui2.LayoutData layoutData
        10: .line 385
            aload 8 /* layoutData */
            instanceof com.googlecode.lanterna.gui2.LinearLayout$LinearLayoutData
            ifeq 12
        11: .line 386
            aload 8 /* layoutData */
            checkcast com.googlecode.lanterna.gui2.LinearLayout$LinearLayoutData
            getfield com.googlecode.lanterna.gui2.LinearLayout$LinearLayoutData.alignment:Lcom/googlecode/lanterna/gui2/LinearLayout$Alignment;
            astore 7 /* alignment */
        12: .line 389
      StackMap locals: com.googlecode.lanterna.gui2.LinearLayout$Alignment com.googlecode.lanterna.gui2.LayoutData
      StackMap stack:
            aload 5 /* component */
            invokeinterface com.googlecode.lanterna.gui2.Component.getPreferredSize:()Lcom/googlecode/lanterna/TerminalSize;
            astore 9 /* preferredSize */
        start local 9 // com.googlecode.lanterna.TerminalSize preferredSize
        13: .line 390
            new com.googlecode.lanterna.TerminalSize
            dup
        14: .line 391
            iload 3 /* remainingHorizontalSpace */
            aload 9 /* preferredSize */
            invokevirtual com.googlecode.lanterna.TerminalSize.getColumns:()I
            invokestatic java.lang.Math.min:(II)I
        15: .line 392
            iload 4 /* availableVerticalSpace */
            aload 9 /* preferredSize */
            invokevirtual com.googlecode.lanterna.TerminalSize.getRows:()I
            invokestatic java.lang.Math.min:(II)I
        16: .line 390
            invokespecial com.googlecode.lanterna.TerminalSize.<init>:(II)V
            astore 10 /* decidedSize */
        start local 10 // com.googlecode.lanterna.TerminalSize decidedSize
        17: .line 393
            aload 7 /* alignment */
            getstatic com.googlecode.lanterna.gui2.LinearLayout$Alignment.Fill:Lcom/googlecode/lanterna/gui2/LinearLayout$Alignment;
            if_acmpne 20
        18: .line 394
            aload 10 /* decidedSize */
            iload 4 /* availableVerticalSpace */
            invokevirtual com.googlecode.lanterna.TerminalSize.withRows:(I)Lcom/googlecode/lanterna/TerminalSize;
            astore 10 /* decidedSize */
        19: .line 395
            getstatic com.googlecode.lanterna.gui2.LinearLayout$Alignment.Beginning:Lcom/googlecode/lanterna/gui2/LinearLayout$Alignment;
            astore 7 /* alignment */
        20: .line 398
      StackMap locals: com.googlecode.lanterna.TerminalSize com.googlecode.lanterna.TerminalSize
      StackMap stack:
            aload 5 /* component */
            invokeinterface com.googlecode.lanterna.gui2.Component.getPosition:()Lcom/googlecode/lanterna/TerminalPosition;
            astore 11 /* position */
        start local 11 // com.googlecode.lanterna.TerminalPosition position
        21: .line 399
            aload 11 /* position */
            aload 1 /* area */
            invokevirtual com.googlecode.lanterna.TerminalSize.getColumns:()I
            iload 3 /* remainingHorizontalSpace */
            isub
            invokevirtual com.googlecode.lanterna.TerminalPosition.withColumn:(I)Lcom/googlecode/lanterna/TerminalPosition;
            astore 11 /* position */
        22: .line 400
            invokestatic com.googlecode.lanterna.gui2.LinearLayout.$SWITCH_TABLE$com$googlecode$lanterna$gui2$LinearLayout$Alignment:()[I
            aload 7 /* alignment */
            invokevirtual com.googlecode.lanterna.gui2.LinearLayout$Alignment.ordinal:()I
            iaload
            tableswitch { // 1 - 3
                    1: 27
                    2: 25
                    3: 23
              default: 27
          }
        23: .line 402
      StackMap locals: com.googlecode.lanterna.TerminalPosition
      StackMap stack:
            aload 11 /* position */
            iload 4 /* availableVerticalSpace */
            aload 10 /* decidedSize */
            invokevirtual com.googlecode.lanterna.TerminalSize.getRows:()I
            isub
            invokevirtual com.googlecode.lanterna.TerminalPosition.withRow:(I)Lcom/googlecode/lanterna/TerminalPosition;
            astore 11 /* position */
        24: .line 403
            goto 28
        25: .line 405
      StackMap locals:
      StackMap stack:
            aload 11 /* position */
            iload 4 /* availableVerticalSpace */
            aload 10 /* decidedSize */
            invokevirtual com.googlecode.lanterna.TerminalSize.getRows:()I
            isub
            iconst_2
            idiv
            invokevirtual com.googlecode.lanterna.TerminalPosition.withRow:(I)Lcom/googlecode/lanterna/TerminalPosition;
            astore 11 /* position */
        26: .line 406
            goto 28
        27: .line 409
      StackMap locals:
      StackMap stack:
            aload 11 /* position */
            iconst_0
            invokevirtual com.googlecode.lanterna.TerminalPosition.withRow:(I)Lcom/googlecode/lanterna/TerminalPosition;
            astore 11 /* position */
        28: .line 412
      StackMap locals:
      StackMap stack:
            aload 5 /* component */
            aload 11 /* position */
            invokeinterface com.googlecode.lanterna.gui2.Component.setPosition:(Lcom/googlecode/lanterna/TerminalPosition;)Lcom/googlecode/lanterna/gui2/Component;
            pop
        29: .line 413
            aload 5 /* component */
            aload 5 /* component */
            invokeinterface com.googlecode.lanterna.gui2.Component.getSize:()Lcom/googlecode/lanterna/TerminalSize;
            aload 10 /* decidedSize */
            invokevirtual com.googlecode.lanterna.TerminalSize.with:(Lcom/googlecode/lanterna/TerminalSize;)Lcom/googlecode/lanterna/TerminalSize;
            invokeinterface com.googlecode.lanterna.gui2.Component.setSize:(Lcom/googlecode/lanterna/TerminalSize;)Lcom/googlecode/lanterna/gui2/Component;
            pop
        30: .line 414
            iload 3 /* remainingHorizontalSpace */
            aload 10 /* decidedSize */
            invokevirtual com.googlecode.lanterna.TerminalSize.getColumns:()I
            aload 0 /* this */
            getfield com.googlecode.lanterna.gui2.LinearLayout.spacing:I
            iadd
            isub
            istore 3 /* remainingHorizontalSpace */
        end local 11 // com.googlecode.lanterna.TerminalPosition position
        end local 10 // com.googlecode.lanterna.TerminalSize decidedSize
        end local 9 // com.googlecode.lanterna.TerminalSize preferredSize
        end local 8 // com.googlecode.lanterna.gui2.LayoutData layoutData
        end local 7 // com.googlecode.lanterna.gui2.LinearLayout$Alignment alignment
        end local 5 // com.googlecode.lanterna.gui2.Component component
        31: .line 377
      StackMap locals: com.googlecode.lanterna.gui2.LinearLayout com.googlecode.lanterna.TerminalSize java.util.List int int top java.util.Iterator
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
        32: .line 417
            return
        end local 4 // int availableVerticalSpace
        end local 3 // int remainingHorizontalSpace
        end local 2 // java.util.List components
        end local 1 // com.googlecode.lanterna.TerminalSize area
        end local 0 // com.googlecode.lanterna.gui2.LinearLayout this
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0   33     0                      this  Lcom/googlecode/lanterna/gui2/LinearLayout;
            0   33     1                      area  Lcom/googlecode/lanterna/TerminalSize;
            0   33     2                components  Ljava/util/List<Lcom/googlecode/lanterna/gui2/Component;>;
            1   33     3  remainingHorizontalSpace  I
            2   33     4    availableVerticalSpace  I
            4   31     5                 component  Lcom/googlecode/lanterna/gui2/Component;
            9   31     7                 alignment  Lcom/googlecode/lanterna/gui2/LinearLayout$Alignment;
           10   31     8                layoutData  Lcom/googlecode/lanterna/gui2/LayoutData;
           13   31     9             preferredSize  Lcom/googlecode/lanterna/TerminalSize;
           17   31    10               decidedSize  Lcom/googlecode/lanterna/TerminalSize;
           21   31    11                  position  Lcom/googlecode/lanterna/TerminalPosition;
    Signature: (Lcom/googlecode/lanterna/TerminalSize;Ljava/util/List<Lcom/googlecode/lanterna/gui2/Component;>;)V
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
            Name  Flags
      area        
      components  

  private void doFlexibleHorizontalLayout(com.googlecode.lanterna.TerminalSize, java.util.List<com.googlecode.lanterna.gui2.Component>);
    descriptor: (Lcom/googlecode/lanterna/TerminalSize;Ljava/util/List;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=15, args_size=3
        start local 0 // com.googlecode.lanterna.gui2.LinearLayout this
        start local 1 // com.googlecode.lanterna.TerminalSize area
        start local 2 // java.util.List components
         0: .line 420
            aload 1 /* area */
            invokevirtual com.googlecode.lanterna.TerminalSize.getRows:()I
            istore 3 /* availableVerticalSpace */
        start local 3 // int availableVerticalSpace
         1: .line 421
            aload 1 /* area */
            invokevirtual com.googlecode.lanterna.TerminalSize.getColumns:()I
            istore 4 /* availableHorizontalSpace */
        start local 4 // int availableHorizontalSpace
         2: .line 422
            new java.util.ArrayList
            dup
            aload 2 /* components */
            invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
            astore 5 /* copyOfComponenets */
        start local 5 // java.util.List copyOfComponenets
         3: .line 423
            new java.util.IdentityHashMap
            dup
            invokespecial java.util.IdentityHashMap.<init>:()V
            astore 6 /* fittingMap */
        start local 6 // java.util.Map fittingMap
         4: .line 424
            iconst_0
            istore 7 /* totalRequiredHorizontalSpace */
        start local 7 // int totalRequiredHorizontalSpace
         5: .line 426
            aload 2 /* components */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 9
            goto 20
      StackMap locals: com.googlecode.lanterna.gui2.LinearLayout com.googlecode.lanterna.TerminalSize java.util.List int int java.util.List java.util.Map int top java.util.Iterator
      StackMap stack:
         6: aload 9
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.googlecode.lanterna.gui2.Component
            astore 8 /* component */
        start local 8 // com.googlecode.lanterna.gui2.Component component
         7: .line 427
            getstatic com.googlecode.lanterna.gui2.LinearLayout$Alignment.Beginning:Lcom/googlecode/lanterna/gui2/LinearLayout$Alignment;
            astore 10 /* alignment */
        start local 10 // com.googlecode.lanterna.gui2.LinearLayout$Alignment alignment
         8: .line 428
            aload 8 /* component */
            invokeinterface com.googlecode.lanterna.gui2.Component.getLayoutData:()Lcom/googlecode/lanterna/gui2/LayoutData;
            astore 11 /* layoutData */
        start local 11 // com.googlecode.lanterna.gui2.LayoutData layoutData
         9: .line 429
            aload 11 /* layoutData */
            instanceof com.googlecode.lanterna.gui2.LinearLayout$LinearLayoutData
            ifeq 11
        10: .line 430
            aload 11 /* layoutData */
            checkcast com.googlecode.lanterna.gui2.LinearLayout$LinearLayoutData
            getfield com.googlecode.lanterna.gui2.LinearLayout$LinearLayoutData.alignment:Lcom/googlecode/lanterna/gui2/LinearLayout$Alignment;
            astore 10 /* alignment */
        11: .line 433
      StackMap locals: com.googlecode.lanterna.gui2.LinearLayout com.googlecode.lanterna.TerminalSize java.util.List int int java.util.List java.util.Map int com.googlecode.lanterna.gui2.Component java.util.Iterator com.googlecode.lanterna.gui2.LinearLayout$Alignment com.googlecode.lanterna.gui2.LayoutData
      StackMap stack:
            aload 8 /* component */
            invokeinterface com.googlecode.lanterna.gui2.Component.getPreferredSize:()Lcom/googlecode/lanterna/TerminalSize;
            astore 12 /* preferredSize */
        start local 12 // com.googlecode.lanterna.TerminalSize preferredSize
        12: .line 434
            new com.googlecode.lanterna.TerminalSize
            dup
        13: .line 435
            aload 12 /* preferredSize */
            invokevirtual com.googlecode.lanterna.TerminalSize.getColumns:()I
        14: .line 436
            iload 3 /* availableVerticalSpace */
            aload 12 /* preferredSize */
            invokevirtual com.googlecode.lanterna.TerminalSize.getRows:()I
            invokestatic java.lang.Math.min:(II)I
        15: .line 434
            invokespecial com.googlecode.lanterna.TerminalSize.<init>:(II)V
            astore 13 /* fittingSize */
        start local 13 // com.googlecode.lanterna.TerminalSize fittingSize
        16: .line 437
            aload 10 /* alignment */
            getstatic com.googlecode.lanterna.gui2.LinearLayout$Alignment.Fill:Lcom/googlecode/lanterna/gui2/LinearLayout$Alignment;
            if_acmpne 18
        17: .line 438
            aload 13 /* fittingSize */
            iload 3 /* availableVerticalSpace */
            invokevirtual com.googlecode.lanterna.TerminalSize.withRows:(I)Lcom/googlecode/lanterna/TerminalSize;
            astore 13 /* fittingSize */
        18: .line 441
      StackMap locals: com.googlecode.lanterna.TerminalSize com.googlecode.lanterna.TerminalSize
      StackMap stack:
            aload 6 /* fittingMap */
            aload 8 /* component */
            aload 13 /* fittingSize */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        19: .line 442
            iload 7 /* totalRequiredHorizontalSpace */
            aload 13 /* fittingSize */
            invokevirtual com.googlecode.lanterna.TerminalSize.getColumns:()I
            aload 0 /* this */
            getfield com.googlecode.lanterna.gui2.LinearLayout.spacing:I
            iadd
            iadd
            istore 7 /* totalRequiredHorizontalSpace */
        end local 13 // com.googlecode.lanterna.TerminalSize fittingSize
        end local 12 // com.googlecode.lanterna.TerminalSize preferredSize
        end local 11 // com.googlecode.lanterna.gui2.LayoutData layoutData
        end local 10 // com.googlecode.lanterna.gui2.LinearLayout$Alignment alignment
        end local 8 // com.googlecode.lanterna.gui2.Component component
        20: .line 426
      StackMap locals: com.googlecode.lanterna.gui2.LinearLayout com.googlecode.lanterna.TerminalSize java.util.List int int java.util.List java.util.Map int top java.util.Iterator
      StackMap stack:
            aload 9
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 6
        21: .line 444
            aload 2 /* components */
            invokeinterface java.util.List.isEmpty:()Z
            ifne 23
        22: .line 446
            iload 7 /* totalRequiredHorizontalSpace */
            aload 0 /* this */
            getfield com.googlecode.lanterna.gui2.LinearLayout.spacing:I
            isub
            istore 7 /* totalRequiredHorizontalSpace */
        23: .line 450
      StackMap locals: com.googlecode.lanterna.gui2.LinearLayout com.googlecode.lanterna.TerminalSize java.util.List int int java.util.List java.util.Map int
      StackMap stack:
            iload 4 /* availableHorizontalSpace */
            iload 7 /* totalRequiredHorizontalSpace */
            if_icmpge 36
        24: .line 451
            aload 5 /* copyOfComponenets */
            aload 6 /* fittingMap */
            invokedynamic compare(Ljava/util/Map;)Ljava/util/Comparator;
              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;Ljava/lang/Object;)I
                  com/googlecode/lanterna/gui2/LinearLayout.lambda$3(Ljava/util/Map;Lcom/googlecode/lanterna/gui2/Component;Lcom/googlecode/lanterna/gui2/Component;)I (6)
                  (Lcom/googlecode/lanterna/gui2/Component;Lcom/googlecode/lanterna/gui2/Component;)I
            invokeinterface java.util.List.sort:(Ljava/util/Comparator;)V
        25: .line 456
            goto 35
        26: .line 457
      StackMap locals:
      StackMap stack:
            aload 6 /* fittingMap */
            aload 5 /* copyOfComponenets */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.googlecode.lanterna.TerminalSize
            invokevirtual com.googlecode.lanterna.TerminalSize.getColumns:()I
            istore 8 /* largestSize */
        start local 8 // int largestSize
        27: .line 458
            aload 5 /* copyOfComponenets */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 10
            goto 34
      StackMap locals: com.googlecode.lanterna.gui2.LinearLayout com.googlecode.lanterna.TerminalSize java.util.List int int java.util.List java.util.Map int int top java.util.Iterator
      StackMap stack:
        28: aload 10
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.googlecode.lanterna.gui2.Component
            astore 9 /* largeComponent */
        start local 9 // com.googlecode.lanterna.gui2.Component largeComponent
        29: .line 459
            aload 6 /* fittingMap */
            aload 9 /* largeComponent */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.googlecode.lanterna.TerminalSize
            astore 11 /* currentSize */
        start local 11 // com.googlecode.lanterna.TerminalSize currentSize
        30: .line 460
            iload 8 /* largestSize */
            aload 11 /* currentSize */
            invokevirtual com.googlecode.lanterna.TerminalSize.getColumns:()I
            if_icmple 32
        31: .line 461
            goto 35
        32: .line 463
      StackMap locals: com.googlecode.lanterna.gui2.LinearLayout com.googlecode.lanterna.TerminalSize java.util.List int int java.util.List java.util.Map int int com.googlecode.lanterna.gui2.Component java.util.Iterator com.googlecode.lanterna.TerminalSize
      StackMap stack:
            aload 6 /* fittingMap */
            aload 9 /* largeComponent */
            aload 11 /* currentSize */
            iconst_m1
            invokevirtual com.googlecode.lanterna.TerminalSize.withRelativeColumns:(I)Lcom/googlecode/lanterna/TerminalSize;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        33: .line 464
            iinc 7 /* totalRequiredHorizontalSpace */ -1
        end local 11 // com.googlecode.lanterna.TerminalSize currentSize
        end local 9 // com.googlecode.lanterna.gui2.Component largeComponent
        34: .line 458
      StackMap locals: com.googlecode.lanterna.gui2.LinearLayout com.googlecode.lanterna.TerminalSize java.util.List int int java.util.List java.util.Map int int top java.util.Iterator
      StackMap stack:
            aload 10
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 28
        end local 8 // int largestSize
        35: .line 456
      StackMap locals: com.googlecode.lanterna.gui2.LinearLayout com.googlecode.lanterna.TerminalSize java.util.List int int java.util.List java.util.Map int
      StackMap stack:
            iload 4 /* availableHorizontalSpace */
            iload 7 /* totalRequiredHorizontalSpace */
            if_icmplt 26
        36: .line 470
      StackMap locals:
      StackMap stack:
            iload 4 /* availableHorizontalSpace */
            iload 7 /* totalRequiredHorizontalSpace */
            if_icmple 53
        37: .line 471
            iconst_0
            istore 8 /* resizedOneComponent */
        start local 8 // boolean resizedOneComponent
        38: .line 472
            goto 52
        39: .line 473
      StackMap locals: int
      StackMap stack:
            aload 2 /* components */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 10
            goto 49
      StackMap locals: com.googlecode.lanterna.gui2.LinearLayout com.googlecode.lanterna.TerminalSize java.util.List int int java.util.List java.util.Map int int top java.util.Iterator
      StackMap stack:
        40: aload 10
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.googlecode.lanterna.gui2.Component
            astore 9 /* component */
        start local 9 // com.googlecode.lanterna.gui2.Component component
        41: .line 474
            aload 9 /* component */
            invokeinterface com.googlecode.lanterna.gui2.Component.getLayoutData:()Lcom/googlecode/lanterna/gui2/LayoutData;
            checkcast com.googlecode.lanterna.gui2.LinearLayout$LinearLayoutData
            astore 11 /* layoutData */
        start local 11 // com.googlecode.lanterna.gui2.LinearLayout$LinearLayoutData layoutData
        42: .line 475
            aload 6 /* fittingMap */
            aload 9 /* component */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.googlecode.lanterna.TerminalSize
            astore 12 /* currentSize */
        start local 12 // com.googlecode.lanterna.TerminalSize currentSize
        43: .line 476
            aload 11 /* layoutData */
            ifnull 47
            aload 11 /* layoutData */
            getfield com.googlecode.lanterna.gui2.LinearLayout$LinearLayoutData.growPolicy:Lcom/googlecode/lanterna/gui2/LinearLayout$GrowPolicy;
            getstatic com.googlecode.lanterna.gui2.LinearLayout$GrowPolicy.CanGrow:Lcom/googlecode/lanterna/gui2/LinearLayout$GrowPolicy;
            if_acmpne 47
        44: .line 477
            aload 6 /* fittingMap */
            aload 9 /* component */
            aload 12 /* currentSize */
            iconst_1
            invokevirtual com.googlecode.lanterna.TerminalSize.withRelativeColumns:(I)Lcom/googlecode/lanterna/TerminalSize;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        45: .line 478
            iinc 4 /* availableHorizontalSpace */ -1
        46: .line 479
            iconst_1
            istore 8 /* resizedOneComponent */
        47: .line 481
      StackMap locals: com.googlecode.lanterna.gui2.LinearLayout com.googlecode.lanterna.TerminalSize java.util.List int int java.util.List java.util.Map int int com.googlecode.lanterna.gui2.Component java.util.Iterator com.googlecode.lanterna.gui2.LinearLayout$LinearLayoutData com.googlecode.lanterna.TerminalSize
      StackMap stack:
            iload 4 /* availableHorizontalSpace */
            iload 7 /* totalRequiredHorizontalSpace */
            if_icmpgt 49
        48: .line 482
            goto 50
        end local 12 // com.googlecode.lanterna.TerminalSize currentSize
        end local 11 // com.googlecode.lanterna.gui2.LinearLayout$LinearLayoutData layoutData
        end local 9 // com.googlecode.lanterna.gui2.Component component
        49: .line 473
      StackMap locals: com.googlecode.lanterna.gui2.LinearLayout com.googlecode.lanterna.TerminalSize java.util.List int int java.util.List java.util.Map int int top java.util.Iterator
      StackMap stack:
            aload 10
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 40
        50: .line 485
      StackMap locals: com.googlecode.lanterna.gui2.LinearLayout com.googlecode.lanterna.TerminalSize java.util.List int int java.util.List java.util.Map int int
      StackMap stack:
            iload 8 /* resizedOneComponent */
            ifne 52
        51: .line 486
            goto 53
        52: .line 472
      StackMap locals:
      StackMap stack:
            iload 4 /* availableHorizontalSpace */
            iload 7 /* totalRequiredHorizontalSpace */
            if_icmpgt 39
        end local 8 // boolean resizedOneComponent
        53: .line 492
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 8 /* leftPosition */
        start local 8 // int leftPosition
        54: .line 493
            aload 2 /* components */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 10
            goto 72
      StackMap locals: com.googlecode.lanterna.gui2.LinearLayout com.googlecode.lanterna.TerminalSize java.util.List int int java.util.List java.util.Map int int top java.util.Iterator
      StackMap stack:
        55: aload 10
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.googlecode.lanterna.gui2.Component
            astore 9 /* component */
        start local 9 // com.googlecode.lanterna.gui2.Component component
        56: .line 494
            getstatic com.googlecode.lanterna.gui2.LinearLayout$Alignment.Beginning:Lcom/googlecode/lanterna/gui2/LinearLayout$Alignment;
            astore 11 /* alignment */
        start local 11 // com.googlecode.lanterna.gui2.LinearLayout$Alignment alignment
        57: .line 495
            aload 9 /* component */
            invokeinterface com.googlecode.lanterna.gui2.Component.getLayoutData:()Lcom/googlecode/lanterna/gui2/LayoutData;
            astore 12 /* layoutData */
        start local 12 // com.googlecode.lanterna.gui2.LayoutData layoutData
        58: .line 496
            aload 12 /* layoutData */
            instanceof com.googlecode.lanterna.gui2.LinearLayout$LinearLayoutData
            ifeq 60
        59: .line 497
            aload 12 /* layoutData */
            checkcast com.googlecode.lanterna.gui2.LinearLayout$LinearLayoutData
            getfield com.googlecode.lanterna.gui2.LinearLayout$LinearLayoutData.alignment:Lcom/googlecode/lanterna/gui2/LinearLayout$Alignment;
            astore 11 /* alignment */
        60: .line 500
      StackMap locals: com.googlecode.lanterna.gui2.LinearLayout com.googlecode.lanterna.TerminalSize java.util.List int int java.util.List java.util.Map int int com.googlecode.lanterna.gui2.Component java.util.Iterator com.googlecode.lanterna.gui2.LinearLayout$Alignment com.googlecode.lanterna.gui2.LayoutData
      StackMap stack:
            aload 6 /* fittingMap */
            aload 9 /* component */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.googlecode.lanterna.TerminalSize
            astore 13 /* decidedSize */
        start local 13 // com.googlecode.lanterna.TerminalSize decidedSize
        61: .line 501
            aload 9 /* component */
            invokeinterface com.googlecode.lanterna.gui2.Component.getPosition:()Lcom/googlecode/lanterna/TerminalPosition;
            astore 14 /* position */
        start local 14 // com.googlecode.lanterna.TerminalPosition position
        62: .line 502
            aload 14 /* position */
            iload 8 /* leftPosition */
            invokevirtual com.googlecode.lanterna.TerminalPosition.withColumn:(I)Lcom/googlecode/lanterna/TerminalPosition;
            astore 14 /* position */
        63: .line 503
            invokestatic com.googlecode.lanterna.gui2.LinearLayout.$SWITCH_TABLE$com$googlecode$lanterna$gui2$LinearLayout$Alignment:()[I
            aload 11 /* alignment */
            invokevirtual com.googlecode.lanterna.gui2.LinearLayout$Alignment.ordinal:()I
            iaload
            tableswitch { // 1 - 3
                    1: 68
                    2: 66
                    3: 64
              default: 68
          }
        64: .line 505
      StackMap locals: com.googlecode.lanterna.TerminalSize com.googlecode.lanterna.TerminalPosition
      StackMap stack:
            aload 14 /* position */
            iload 3 /* availableVerticalSpace */
            aload 13 /* decidedSize */
            invokevirtual com.googlecode.lanterna.TerminalSize.getRows:()I
            isub
            invokevirtual com.googlecode.lanterna.TerminalPosition.withRow:(I)Lcom/googlecode/lanterna/TerminalPosition;
            astore 14 /* position */
        65: .line 506
            goto 69
        66: .line 508
      StackMap locals:
      StackMap stack:
            aload 14 /* position */
            iload 3 /* availableVerticalSpace */
            aload 13 /* decidedSize */
            invokevirtual com.googlecode.lanterna.TerminalSize.getRows:()I
            isub
            iconst_2
            idiv
            invokevirtual com.googlecode.lanterna.TerminalPosition.withRow:(I)Lcom/googlecode/lanterna/TerminalPosition;
            astore 14 /* position */
        67: .line 509
            goto 69
        68: .line 512
      StackMap locals:
      StackMap stack:
            aload 14 /* position */
            iconst_0
            invokevirtual com.googlecode.lanterna.TerminalPosition.withRow:(I)Lcom/googlecode/lanterna/TerminalPosition;
            astore 14 /* position */
        69: .line 515
      StackMap locals:
      StackMap stack:
            aload 9 /* component */
            aload 9 /* component */
            invokeinterface com.googlecode.lanterna.gui2.Component.getPosition:()Lcom/googlecode/lanterna/TerminalPosition;
            aload 14 /* position */
            invokevirtual com.googlecode.lanterna.TerminalPosition.with:(Lcom/googlecode/lanterna/TerminalPosition;)Lcom/googlecode/lanterna/TerminalPosition;
            invokeinterface com.googlecode.lanterna.gui2.Component.setPosition:(Lcom/googlecode/lanterna/TerminalPosition;)Lcom/googlecode/lanterna/gui2/Component;
            pop
        70: .line 516
            aload 9 /* component */
            aload 9 /* component */
            invokeinterface com.googlecode.lanterna.gui2.Component.getSize:()Lcom/googlecode/lanterna/TerminalSize;
            aload 13 /* decidedSize */
            invokevirtual com.googlecode.lanterna.TerminalSize.with:(Lcom/googlecode/lanterna/TerminalSize;)Lcom/googlecode/lanterna/TerminalSize;
            invokeinterface com.googlecode.lanterna.gui2.Component.setSize:(Lcom/googlecode/lanterna/TerminalSize;)Lcom/googlecode/lanterna/gui2/Component;
            pop
        71: .line 517
            iload 8 /* leftPosition */
            aload 13 /* decidedSize */
            invokevirtual com.googlecode.lanterna.TerminalSize.getColumns:()I
            aload 0 /* this */
            getfield com.googlecode.lanterna.gui2.LinearLayout.spacing:I
            iadd
            iadd
            istore 8 /* leftPosition */
        end local 14 // com.googlecode.lanterna.TerminalPosition position
        end local 13 // com.googlecode.lanterna.TerminalSize decidedSize
        end local 12 // com.googlecode.lanterna.gui2.LayoutData layoutData
        end local 11 // com.googlecode.lanterna.gui2.LinearLayout$Alignment alignment
        end local 9 // com.googlecode.lanterna.gui2.Component component
        72: .line 493
      StackMap locals: com.googlecode.lanterna.gui2.LinearLayout com.googlecode.lanterna.TerminalSize java.util.List int int java.util.List java.util.Map int int top java.util.Iterator
      StackMap stack:
            aload 10
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 55
        73: .line 519
            return
        end local 8 // int leftPosition
        end local 7 // int totalRequiredHorizontalSpace
        end local 6 // java.util.Map fittingMap
        end local 5 // java.util.List copyOfComponenets
        end local 4 // int availableHorizontalSpace
        end local 3 // int availableVerticalSpace
        end local 2 // java.util.List components
        end local 1 // com.googlecode.lanterna.TerminalSize area
        end local 0 // com.googlecode.lanterna.gui2.LinearLayout this
      LocalVariableTable:
        Start  End  Slot                          Name  Signature
            0   74     0                          this  Lcom/googlecode/lanterna/gui2/LinearLayout;
            0   74     1                          area  Lcom/googlecode/lanterna/TerminalSize;
            0   74     2                    components  Ljava/util/List<Lcom/googlecode/lanterna/gui2/Component;>;
            1   74     3        availableVerticalSpace  I
            2   74     4      availableHorizontalSpace  I
            3   74     5             copyOfComponenets  Ljava/util/List<Lcom/googlecode/lanterna/gui2/Component;>;
            4   74     6                    fittingMap  Ljava/util/Map<Lcom/googlecode/lanterna/gui2/Component;Lcom/googlecode/lanterna/TerminalSize;>;
            5   74     7  totalRequiredHorizontalSpace  I
            7   20     8                     component  Lcom/googlecode/lanterna/gui2/Component;
            8   20    10                     alignment  Lcom/googlecode/lanterna/gui2/LinearLayout$Alignment;
            9   20    11                    layoutData  Lcom/googlecode/lanterna/gui2/LayoutData;
           12   20    12                 preferredSize  Lcom/googlecode/lanterna/TerminalSize;
           16   20    13                   fittingSize  Lcom/googlecode/lanterna/TerminalSize;
           27   35     8                   largestSize  I
           29   34     9                largeComponent  Lcom/googlecode/lanterna/gui2/Component;
           30   34    11                   currentSize  Lcom/googlecode/lanterna/TerminalSize;
           38   53     8           resizedOneComponent  Z
           41   49     9                     component  Lcom/googlecode/lanterna/gui2/Component;
           42   49    11                    layoutData  Lcom/googlecode/lanterna/gui2/LinearLayout$LinearLayoutData;
           43   49    12                   currentSize  Lcom/googlecode/lanterna/TerminalSize;
           54   74     8                  leftPosition  I
           56   72     9                     component  Lcom/googlecode/lanterna/gui2/Component;
           57   72    11                     alignment  Lcom/googlecode/lanterna/gui2/LinearLayout$Alignment;
           58   72    12                    layoutData  Lcom/googlecode/lanterna/gui2/LayoutData;
           61   72    13                   decidedSize  Lcom/googlecode/lanterna/TerminalSize;
           62   72    14                      position  Lcom/googlecode/lanterna/TerminalPosition;
    Signature: (Lcom/googlecode/lanterna/TerminalSize;Ljava/util/List<Lcom/googlecode/lanterna/gui2/Component;>;)V
    MethodParameters:
            Name  Flags
      area        
      components  

  static int[] $SWITCH_TABLE$com$googlecode$lanterna$gui2$LinearLayout$Alignment();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 33
            getstatic com.googlecode.lanterna.gui2.LinearLayout.$SWITCH_TABLE$com$googlecode$lanterna$gui2$LinearLayout$Alignment:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic com.googlecode.lanterna.gui2.LinearLayout$Alignment.values:()[Lcom/googlecode/lanterna/gui2/LinearLayout$Alignment;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic com.googlecode.lanterna.gui2.LinearLayout$Alignment.Beginning:Lcom/googlecode/lanterna/gui2/LinearLayout$Alignment;
            invokevirtual com.googlecode.lanterna.gui2.LinearLayout$Alignment.ordinal:()I
            iconst_1
            iastore
         3: goto 5
      StackMap locals: int[]
      StackMap stack: java.lang.NoSuchFieldError
         4: pop
      StackMap locals:
      StackMap stack:
         5: aload 0
            getstatic com.googlecode.lanterna.gui2.LinearLayout$Alignment.Center:Lcom/googlecode/lanterna/gui2/LinearLayout$Alignment;
            invokevirtual com.googlecode.lanterna.gui2.LinearLayout$Alignment.ordinal:()I
            iconst_2
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic com.googlecode.lanterna.gui2.LinearLayout$Alignment.End:Lcom/googlecode/lanterna/gui2/LinearLayout$Alignment;
            invokevirtual com.googlecode.lanterna.gui2.LinearLayout$Alignment.ordinal:()I
            iconst_3
            iastore
         9: goto 11
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        10: pop
      StackMap locals:
      StackMap stack:
        11: aload 0
            getstatic com.googlecode.lanterna.gui2.LinearLayout$Alignment.Fill:Lcom/googlecode/lanterna/gui2/LinearLayout$Alignment;
            invokevirtual com.googlecode.lanterna.gui2.LinearLayout$Alignment.ordinal:()I
            iconst_4
            iastore
        12: goto 14
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        13: pop
      StackMap locals:
      StackMap stack:
        14: aload 0
            dup
            putstatic com.googlecode.lanterna.gui2.LinearLayout.$SWITCH_TABLE$com$googlecode$lanterna$gui2$LinearLayout$Alignment:[I
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.NoSuchFieldError
           5     6       7  Class java.lang.NoSuchFieldError
           8     9      10  Class java.lang.NoSuchFieldError
          11    12      13  Class java.lang.NoSuchFieldError

  private static int lambda$2(java.util.Map, com.googlecode.lanterna.gui2.Component, com.googlecode.lanterna.gui2.Component);
    descriptor: (Ljava/util/Map;Lcom/googlecode/lanterna/gui2/Component;Lcom/googlecode/lanterna/gui2/Component;)I
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
        start local 1 // com.googlecode.lanterna.gui2.Component o1
        start local 2 // com.googlecode.lanterna.gui2.Component o2
         0: .line 305
            aload 0
            aload 1 /* o1 */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.googlecode.lanterna.TerminalSize
            invokevirtual com.googlecode.lanterna.TerminalSize.getRows:()I
            aload 0
            aload 2 /* o2 */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.googlecode.lanterna.TerminalSize
            invokevirtual com.googlecode.lanterna.TerminalSize.getRows:()I
            invokestatic java.lang.Integer.compare:(II)I
            ineg
            ireturn
        end local 2 // com.googlecode.lanterna.gui2.Component o2
        end local 1 // com.googlecode.lanterna.gui2.Component o1
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     1    o1  Lcom/googlecode/lanterna/gui2/Component;
            0    1     2    o2  Lcom/googlecode/lanterna/gui2/Component;

  private static int lambda$3(java.util.Map, com.googlecode.lanterna.gui2.Component, com.googlecode.lanterna.gui2.Component);
    descriptor: (Ljava/util/Map;Lcom/googlecode/lanterna/gui2/Component;Lcom/googlecode/lanterna/gui2/Component;)I
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
        start local 1 // com.googlecode.lanterna.gui2.Component o1
        start local 2 // com.googlecode.lanterna.gui2.Component o2
         0: .line 453
            aload 0
            aload 1 /* o1 */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.googlecode.lanterna.TerminalSize
            invokevirtual com.googlecode.lanterna.TerminalSize.getColumns:()I
            aload 0
            aload 2 /* o2 */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.googlecode.lanterna.TerminalSize
            invokevirtual com.googlecode.lanterna.TerminalSize.getColumns:()I
            invokestatic java.lang.Integer.compare:(II)I
            ineg
            ireturn
        end local 2 // com.googlecode.lanterna.gui2.Component o2
        end local 1 // com.googlecode.lanterna.gui2.Component o1
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     1    o1  Lcom/googlecode/lanterna/gui2/Component;
            0    1     2    o2  Lcom/googlecode/lanterna/gui2/Component;
}
SourceFile: "LinearLayout.java"
NestMembers:
  com.googlecode.lanterna.gui2.LinearLayout$Alignment  com.googlecode.lanterna.gui2.LinearLayout$GrowPolicy  com.googlecode.lanterna.gui2.LinearLayout$LinearLayoutData
InnerClasses:
  public final Alignment = com.googlecode.lanterna.gui2.LinearLayout$Alignment of com.googlecode.lanterna.gui2.LinearLayout
  public final GrowPolicy = com.googlecode.lanterna.gui2.LinearLayout$GrowPolicy of com.googlecode.lanterna.gui2.LinearLayout
  private LinearLayoutData = com.googlecode.lanterna.gui2.LinearLayout$LinearLayoutData of com.googlecode.lanterna.gui2.LinearLayout
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles