public class com.googlecode.lanterna.gui2.WindowShadowRenderer implements com.googlecode.lanterna.gui2.WindowPostRenderer
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.googlecode.lanterna.gui2.WindowShadowRenderer
  super_class: java.lang.Object
{
  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.googlecode.lanterna.gui2.WindowShadowRenderer this
         0: .line 30
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // com.googlecode.lanterna.gui2.WindowShadowRenderer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/googlecode/lanterna/gui2/WindowShadowRenderer;

  public void postRender(com.googlecode.lanterna.graphics.ThemedTextGraphics, com.googlecode.lanterna.gui2.TextGUI, com.googlecode.lanterna.gui2.Window);
    descriptor: (Lcom/googlecode/lanterna/graphics/ThemedTextGraphics;Lcom/googlecode/lanterna/gui2/TextGUI;Lcom/googlecode/lanterna/gui2/Window;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=17, args_size=4
        start local 0 // com.googlecode.lanterna.gui2.WindowShadowRenderer this
        start local 1 // com.googlecode.lanterna.graphics.ThemedTextGraphics textGraphics
        start local 2 // com.googlecode.lanterna.gui2.TextGUI textGUI
        start local 3 // com.googlecode.lanterna.gui2.Window window
         0: .line 37
            aload 3 /* window */
            invokeinterface com.googlecode.lanterna.gui2.Window.getPosition:()Lcom/googlecode/lanterna/TerminalPosition;
            astore 4 /* windowPosition */
        start local 4 // com.googlecode.lanterna.TerminalPosition windowPosition
         1: .line 38
            aload 3 /* window */
            invokeinterface com.googlecode.lanterna.gui2.Window.getDecoratedSize:()Lcom/googlecode/lanterna/TerminalSize;
            astore 5 /* decoratedWindowSize */
        start local 5 // com.googlecode.lanterna.TerminalSize decoratedWindowSize
         2: .line 39
            aload 3 /* window */
            invokeinterface com.googlecode.lanterna.gui2.Window.getTheme:()Lcom/googlecode/lanterna/graphics/Theme;
            ldc Lcom/googlecode/lanterna/gui2/WindowShadowRenderer;
            invokeinterface com.googlecode.lanterna.graphics.Theme.getDefinition:(Ljava/lang/Class;)Lcom/googlecode/lanterna/graphics/ThemeDefinition;
            astore 6 /* themeDefinition */
        start local 6 // com.googlecode.lanterna.graphics.ThemeDefinition themeDefinition
         3: .line 40
            aload 1 /* textGraphics */
            aload 6 /* themeDefinition */
            invokeinterface com.googlecode.lanterna.graphics.ThemeDefinition.getNormal:()Lcom/googlecode/lanterna/graphics/ThemeStyle;
            invokeinterface com.googlecode.lanterna.graphics.ThemedTextGraphics.applyThemeStyle:(Lcom/googlecode/lanterna/graphics/ThemeStyle;)Lcom/googlecode/lanterna/graphics/ThemedTextGraphics;
            pop
         4: .line 41
            aload 6 /* themeDefinition */
            ldc "FILLER"
            bipush 32
            invokeinterface com.googlecode.lanterna.graphics.ThemeDefinition.getCharacter:(Ljava/lang/String;C)C
            istore 7 /* filler */
        start local 7 // char filler
         5: .line 42
            aload 6 /* themeDefinition */
            ldc "DOUBLE_WIDTH"
            iconst_1
            invokeinterface com.googlecode.lanterna.graphics.ThemeDefinition.getBooleanProperty:(Ljava/lang/String;Z)Z
            istore 8 /* useDoubleWidth */
        start local 8 // boolean useDoubleWidth
         6: .line 43
            aload 6 /* themeDefinition */
            ldc "TRANSPARENT"
            iconst_0
            invokeinterface com.googlecode.lanterna.graphics.ThemeDefinition.getBooleanProperty:(Ljava/lang/String;Z)Z
            istore 9 /* useTransparency */
        start local 9 // boolean useTransparency
         7: .line 45
            aload 4 /* windowPosition */
            iload 8 /* useDoubleWidth */
            ifeq 8
            iconst_2
            goto 9
      StackMap locals: com.googlecode.lanterna.gui2.WindowShadowRenderer com.googlecode.lanterna.graphics.ThemedTextGraphics com.googlecode.lanterna.gui2.TextGUI com.googlecode.lanterna.gui2.Window com.googlecode.lanterna.TerminalPosition com.googlecode.lanterna.TerminalSize com.googlecode.lanterna.graphics.ThemeDefinition int int int
      StackMap stack: com.googlecode.lanterna.TerminalPosition
         8: iconst_1
      StackMap locals: com.googlecode.lanterna.gui2.WindowShadowRenderer com.googlecode.lanterna.graphics.ThemedTextGraphics com.googlecode.lanterna.gui2.TextGUI com.googlecode.lanterna.gui2.Window com.googlecode.lanterna.TerminalPosition com.googlecode.lanterna.TerminalSize com.googlecode.lanterna.graphics.ThemeDefinition int int int
      StackMap stack: com.googlecode.lanterna.TerminalPosition int
         9: invokevirtual com.googlecode.lanterna.TerminalPosition.withRelativeColumn:(I)Lcom/googlecode/lanterna/TerminalPosition;
            aload 5 /* decoratedWindowSize */
            invokevirtual com.googlecode.lanterna.TerminalSize.getRows:()I
            invokevirtual com.googlecode.lanterna.TerminalPosition.withRelativeRow:(I)Lcom/googlecode/lanterna/TerminalPosition;
            astore 10 /* lowerLeft */
        start local 10 // com.googlecode.lanterna.TerminalPosition lowerLeft
        10: .line 46
            aload 10 /* lowerLeft */
            aload 5 /* decoratedWindowSize */
            invokevirtual com.googlecode.lanterna.TerminalSize.getColumns:()I
            iload 8 /* useDoubleWidth */
            ifeq 11
            iconst_3
            goto 12
      StackMap locals: com.googlecode.lanterna.gui2.WindowShadowRenderer com.googlecode.lanterna.graphics.ThemedTextGraphics com.googlecode.lanterna.gui2.TextGUI com.googlecode.lanterna.gui2.Window com.googlecode.lanterna.TerminalPosition com.googlecode.lanterna.TerminalSize com.googlecode.lanterna.graphics.ThemeDefinition int int int com.googlecode.lanterna.TerminalPosition
      StackMap stack: com.googlecode.lanterna.TerminalPosition int
        11: iconst_2
      StackMap locals: com.googlecode.lanterna.gui2.WindowShadowRenderer com.googlecode.lanterna.graphics.ThemedTextGraphics com.googlecode.lanterna.gui2.TextGUI com.googlecode.lanterna.gui2.Window com.googlecode.lanterna.TerminalPosition com.googlecode.lanterna.TerminalSize com.googlecode.lanterna.graphics.ThemeDefinition int int int com.googlecode.lanterna.TerminalPosition
      StackMap stack: com.googlecode.lanterna.TerminalPosition int int
        12: isub
            invokevirtual com.googlecode.lanterna.TerminalPosition.withRelativeColumn:(I)Lcom/googlecode/lanterna/TerminalPosition;
            astore 11 /* lowerRight */
        start local 11 // com.googlecode.lanterna.TerminalPosition lowerRight
        13: .line 47
            aload 10 /* lowerLeft */
            invokevirtual com.googlecode.lanterna.TerminalPosition.getColumn:()I
            istore 12 /* column */
        start local 12 // int column
        14: goto 24
        15: .line 48
      StackMap locals: com.googlecode.lanterna.TerminalPosition int
      StackMap stack:
            iload 7 /* filler */
            istore 13 /* characterToDraw */
        start local 13 // char characterToDraw
        16: .line 49
            iload 9 /* useTransparency */
            ifeq 20
        17: .line 50
            aload 1 /* textGraphics */
            iload 12 /* column */
            aload 10 /* lowerLeft */
            invokevirtual com.googlecode.lanterna.TerminalPosition.getRow:()I
            invokeinterface com.googlecode.lanterna.graphics.ThemedTextGraphics.getCharacter:(II)Lcom/googlecode/lanterna/TextCharacter;
            astore 14 /* tc */
        start local 14 // com.googlecode.lanterna.TextCharacter tc
        18: .line 51
            aload 14 /* tc */
            ifnull 20
        19: .line 52
            aload 14 /* tc */
            invokevirtual com.googlecode.lanterna.TextCharacter.getCharacterString:()Ljava/lang/String;
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            istore 13 /* characterToDraw */
        end local 14 // com.googlecode.lanterna.TextCharacter tc
        20: .line 55
      StackMap locals: int
      StackMap stack:
            aload 1 /* textGraphics */
            iload 12 /* column */
            aload 10 /* lowerLeft */
            invokevirtual com.googlecode.lanterna.TerminalPosition.getRow:()I
            iload 13 /* characterToDraw */
            invokeinterface com.googlecode.lanterna.graphics.ThemedTextGraphics.setCharacter:(IIC)Lcom/googlecode/lanterna/graphics/TextGraphics;
            pop
        21: .line 56
            iload 13 /* characterToDraw */
            invokestatic com.googlecode.lanterna.TerminalTextUtils.isCharDoubleWidth:(C)Z
            ifeq 23
        22: .line 57
            iinc 12 /* column */ 1
        end local 13 // char characterToDraw
        23: .line 47
      StackMap locals:
      StackMap stack:
            iinc 12 /* column */ 1
      StackMap locals:
      StackMap stack:
        24: iload 12 /* column */
            aload 11 /* lowerRight */
            invokevirtual com.googlecode.lanterna.TerminalPosition.getColumn:()I
            iconst_1
            iadd
            if_icmple 15
        end local 12 // int column
        25: .line 61
            aload 11 /* lowerRight */
            iconst_1
            invokevirtual com.googlecode.lanterna.TerminalPosition.withRelativeColumn:(I)Lcom/googlecode/lanterna/TerminalPosition;
            astore 11 /* lowerRight */
        26: .line 62
            aload 11 /* lowerRight */
            aload 5 /* decoratedWindowSize */
            invokevirtual com.googlecode.lanterna.TerminalSize.getRows:()I
            ineg
            iconst_1
            iadd
            invokevirtual com.googlecode.lanterna.TerminalPosition.withRelativeRow:(I)Lcom/googlecode/lanterna/TerminalPosition;
            astore 12 /* upperRight */
        start local 12 // com.googlecode.lanterna.TerminalPosition upperRight
        27: .line 63
            iconst_0
            istore 13 /* hasDoubleWidthShadow */
        start local 13 // boolean hasDoubleWidthShadow
        28: .line 64
            aload 12 /* upperRight */
            invokevirtual com.googlecode.lanterna.TerminalPosition.getRow:()I
            istore 14 /* row */
        start local 14 // int row
        29: goto 39
        30: .line 65
      StackMap locals: com.googlecode.lanterna.gui2.WindowShadowRenderer com.googlecode.lanterna.graphics.ThemedTextGraphics com.googlecode.lanterna.gui2.TextGUI com.googlecode.lanterna.gui2.Window com.googlecode.lanterna.TerminalPosition com.googlecode.lanterna.TerminalSize com.googlecode.lanterna.graphics.ThemeDefinition int int int com.googlecode.lanterna.TerminalPosition com.googlecode.lanterna.TerminalPosition com.googlecode.lanterna.TerminalPosition int int
      StackMap stack:
            iload 7 /* filler */
            istore 15 /* characterToDraw */
        start local 15 // char characterToDraw
        31: .line 66
            iload 9 /* useTransparency */
            ifeq 35
        32: .line 67
            aload 1 /* textGraphics */
            aload 12 /* upperRight */
            invokevirtual com.googlecode.lanterna.TerminalPosition.getColumn:()I
            iload 14 /* row */
            invokeinterface com.googlecode.lanterna.graphics.ThemedTextGraphics.getCharacter:(II)Lcom/googlecode/lanterna/TextCharacter;
            astore 16 /* tc */
        start local 16 // com.googlecode.lanterna.TextCharacter tc
        33: .line 68
            aload 16 /* tc */
            ifnull 35
        34: .line 69
            aload 16 /* tc */
            invokevirtual com.googlecode.lanterna.TextCharacter.getCharacterString:()Ljava/lang/String;
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            istore 15 /* characterToDraw */
        end local 16 // com.googlecode.lanterna.TextCharacter tc
        35: .line 72
      StackMap locals: int
      StackMap stack:
            aload 1 /* textGraphics */
            aload 12 /* upperRight */
            invokevirtual com.googlecode.lanterna.TerminalPosition.getColumn:()I
            iload 14 /* row */
            iload 15 /* characterToDraw */
            invokeinterface com.googlecode.lanterna.graphics.ThemedTextGraphics.setCharacter:(IIC)Lcom/googlecode/lanterna/graphics/TextGraphics;
            pop
        36: .line 73
            iload 15 /* characterToDraw */
            invokestatic com.googlecode.lanterna.TerminalTextUtils.isCharDoubleWidth:(C)Z
            ifeq 38
        37: .line 74
            iconst_1
            istore 13 /* hasDoubleWidthShadow */
        end local 15 // char characterToDraw
        38: .line 64
      StackMap locals:
      StackMap stack:
            iinc 14 /* row */ 1
      StackMap locals:
      StackMap stack:
        39: iload 14 /* row */
            aload 11 /* lowerRight */
            invokevirtual com.googlecode.lanterna.TerminalPosition.getRow:()I
            if_icmplt 30
        end local 14 // int row
        40: .line 78
            aload 1 /* textGraphics */
            aload 6 /* themeDefinition */
            invokeinterface com.googlecode.lanterna.graphics.ThemeDefinition.getNormal:()Lcom/googlecode/lanterna/graphics/ThemeStyle;
            invokeinterface com.googlecode.lanterna.graphics.ThemedTextGraphics.applyThemeStyle:(Lcom/googlecode/lanterna/graphics/ThemeStyle;)Lcom/googlecode/lanterna/graphics/ThemedTextGraphics;
            pop
        41: .line 79
            iload 8 /* useDoubleWidth */
            ifne 42
            iload 13 /* hasDoubleWidthShadow */
            ifeq 55
        42: .line 81
      StackMap locals:
      StackMap stack:
            aload 12 /* upperRight */
            iconst_1
            invokevirtual com.googlecode.lanterna.TerminalPosition.withRelativeColumn:(I)Lcom/googlecode/lanterna/TerminalPosition;
            astore 12 /* upperRight */
        43: .line 82
            aload 12 /* upperRight */
            invokevirtual com.googlecode.lanterna.TerminalPosition.getRow:()I
            istore 14 /* row */
        start local 14 // int row
        44: goto 54
        45: .line 83
      StackMap locals: int
      StackMap stack:
            iload 7 /* filler */
            istore 15 /* characterToDraw */
        start local 15 // char characterToDraw
        46: .line 84
            iload 9 /* useTransparency */
            ifeq 50
        47: .line 85
            aload 1 /* textGraphics */
            aload 12 /* upperRight */
            invokevirtual com.googlecode.lanterna.TerminalPosition.getColumn:()I
            iload 14 /* row */
            invokeinterface com.googlecode.lanterna.graphics.ThemedTextGraphics.getCharacter:(II)Lcom/googlecode/lanterna/TextCharacter;
            astore 16 /* tc */
        start local 16 // com.googlecode.lanterna.TextCharacter tc
        48: .line 86
            aload 16 /* tc */
            ifnull 50
            aload 16 /* tc */
            invokevirtual com.googlecode.lanterna.TextCharacter.isDoubleWidth:()Z
            ifne 50
        49: .line 87
            aload 16 /* tc */
            invokevirtual com.googlecode.lanterna.TextCharacter.getCharacterString:()Ljava/lang/String;
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            istore 15 /* characterToDraw */
        end local 16 // com.googlecode.lanterna.TextCharacter tc
        50: .line 90
      StackMap locals: int
      StackMap stack:
            aload 1 /* textGraphics */
            aload 12 /* upperRight */
            invokevirtual com.googlecode.lanterna.TerminalPosition.getColumn:()I
            iconst_1
            isub
            iload 14 /* row */
            invokeinterface com.googlecode.lanterna.graphics.ThemedTextGraphics.getCharacter:(II)Lcom/googlecode/lanterna/TextCharacter;
            astore 16 /* neighbour */
        start local 16 // com.googlecode.lanterna.TextCharacter neighbour
        51: .line 92
            aload 16 /* neighbour */
            ifnull 53
            aload 16 /* neighbour */
            invokevirtual com.googlecode.lanterna.TextCharacter.isDoubleWidth:()Z
            ifne 53
        52: .line 93
            aload 1 /* textGraphics */
            aload 12 /* upperRight */
            invokevirtual com.googlecode.lanterna.TerminalPosition.getColumn:()I
            iload 14 /* row */
            iload 15 /* characterToDraw */
            invokeinterface com.googlecode.lanterna.graphics.ThemedTextGraphics.setCharacter:(IIC)Lcom/googlecode/lanterna/graphics/TextGraphics;
            pop
        end local 16 // com.googlecode.lanterna.TextCharacter neighbour
        end local 15 // char characterToDraw
        53: .line 82
      StackMap locals:
      StackMap stack:
            iinc 14 /* row */ 1
      StackMap locals:
      StackMap stack:
        54: iload 14 /* row */
            aload 11 /* lowerRight */
            invokevirtual com.googlecode.lanterna.TerminalPosition.getRow:()I
            if_icmple 45
        end local 14 // int row
        55: .line 97
      StackMap locals:
      StackMap stack:
            return
        end local 13 // boolean hasDoubleWidthShadow
        end local 12 // com.googlecode.lanterna.TerminalPosition upperRight
        end local 11 // com.googlecode.lanterna.TerminalPosition lowerRight
        end local 10 // com.googlecode.lanterna.TerminalPosition lowerLeft
        end local 9 // boolean useTransparency
        end local 8 // boolean useDoubleWidth
        end local 7 // char filler
        end local 6 // com.googlecode.lanterna.graphics.ThemeDefinition themeDefinition
        end local 5 // com.googlecode.lanterna.TerminalSize decoratedWindowSize
        end local 4 // com.googlecode.lanterna.TerminalPosition windowPosition
        end local 3 // com.googlecode.lanterna.gui2.Window window
        end local 2 // com.googlecode.lanterna.gui2.TextGUI textGUI
        end local 1 // com.googlecode.lanterna.graphics.ThemedTextGraphics textGraphics
        end local 0 // com.googlecode.lanterna.gui2.WindowShadowRenderer this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   56     0                  this  Lcom/googlecode/lanterna/gui2/WindowShadowRenderer;
            0   56     1          textGraphics  Lcom/googlecode/lanterna/graphics/ThemedTextGraphics;
            0   56     2               textGUI  Lcom/googlecode/lanterna/gui2/TextGUI;
            0   56     3                window  Lcom/googlecode/lanterna/gui2/Window;
            1   56     4        windowPosition  Lcom/googlecode/lanterna/TerminalPosition;
            2   56     5   decoratedWindowSize  Lcom/googlecode/lanterna/TerminalSize;
            3   56     6       themeDefinition  Lcom/googlecode/lanterna/graphics/ThemeDefinition;
            5   56     7                filler  C
            6   56     8        useDoubleWidth  Z
            7   56     9       useTransparency  Z
           10   56    10             lowerLeft  Lcom/googlecode/lanterna/TerminalPosition;
           13   56    11            lowerRight  Lcom/googlecode/lanterna/TerminalPosition;
           14   25    12                column  I
           16   23    13       characterToDraw  C
           18   20    14                    tc  Lcom/googlecode/lanterna/TextCharacter;
           27   56    12            upperRight  Lcom/googlecode/lanterna/TerminalPosition;
           28   56    13  hasDoubleWidthShadow  Z
           29   40    14                   row  I
           31   38    15       characterToDraw  C
           33   35    16                    tc  Lcom/googlecode/lanterna/TextCharacter;
           44   55    14                   row  I
           46   53    15       characterToDraw  C
           48   50    16                    tc  Lcom/googlecode/lanterna/TextCharacter;
           51   53    16             neighbour  Lcom/googlecode/lanterna/TextCharacter;
    MethodParameters:
              Name  Flags
      textGraphics  
      textGUI       
      window        
}
SourceFile: "WindowShadowRenderer.java"