public class org.apache.fop.fonts.GlyphMapping
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.apache.fop.fonts.GlyphMapping
  super_class: java.lang.Object
{
  private static final org.apache.commons.logging.Log LOG;
    descriptor: Lorg/apache/commons/logging/Log;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  public final int startIndex;
    descriptor: I
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL

  public final int endIndex;
    descriptor: I
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL

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

  public final int wordSpaceCount;
    descriptor: I
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL

  public int letterSpaceCount;
    descriptor: I
    flags: (0x0001) ACC_PUBLIC

  public org.apache.fop.traits.MinOptMax areaIPD;
    descriptor: Lorg/apache/fop/traits/MinOptMax;
    flags: (0x0001) ACC_PUBLIC

  public final boolean isHyphenated;
    descriptor: Z
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL

  public final boolean isSpace;
    descriptor: Z
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL

  public boolean breakOppAfter;
    descriptor: Z
    flags: (0x0001) ACC_PUBLIC

  public final org.apache.fop.fonts.Font font;
    descriptor: Lorg/apache/fop/fonts/Font;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL

  public final int level;
    descriptor: I
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL

  public final int[][] gposAdjustments;
    descriptor: [[I
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL

  public java.lang.String mapping;
    descriptor: Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC

  public java.util.List associations;
    descriptor: Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC

  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 39
            ldc Lorg/apache/fop/fonts/GlyphMapping;
            invokevirtual java.lang.Class.desiredAssertionStatus:()Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic org.apache.fop.fonts.GlyphMapping.$assertionsDisabled:Z
         3: .line 41
            ldc Lorg/apache/fop/fonts/GlyphMapping;
            invokestatic org.apache.commons.logging.LogFactory.getLog:(Ljava/lang/Class;)Lorg/apache/commons/logging/Log;
            putstatic org.apache.fop.fonts.GlyphMapping.LOG:Lorg/apache/commons/logging/Log;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(int, int, int, int, org.apache.fop.traits.MinOptMax, boolean, boolean, boolean, org.apache.fop.fonts.Font, int, int[][]);
    descriptor: (IIIILorg/apache/fop/traits/MinOptMax;ZZZLorg/apache/fop/fonts/Font;I[[I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=14, locals=12, args_size=12
        start local 0 // org.apache.fop.fonts.GlyphMapping this
        start local 1 // int startIndex
        start local 2 // int endIndex
        start local 3 // int wordSpaceCount
        start local 4 // int letterSpaceCount
        start local 5 // org.apache.fop.traits.MinOptMax areaIPD
        start local 6 // boolean isHyphenated
        start local 7 // boolean isSpace
        start local 8 // boolean breakOppAfter
        start local 9 // org.apache.fop.fonts.Font font
        start local 10 // int level
        start local 11 // int[][] gposAdjustments
         0: .line 62
            aload 0 /* this */
            iload 1 /* startIndex */
            iload 2 /* endIndex */
            iload 3 /* wordSpaceCount */
            iload 4 /* letterSpaceCount */
            aload 5 /* areaIPD */
            iload 6 /* isHyphenated */
         1: .line 63
            iload 7 /* isSpace */
            iload 8 /* breakOppAfter */
            aload 9 /* font */
            iload 10 /* level */
            aload 11 /* gposAdjustments */
            aconst_null
            aconst_null
            invokespecial org.apache.fop.fonts.GlyphMapping.<init>:(IIIILorg/apache/fop/traits/MinOptMax;ZZZLorg/apache/fop/fonts/Font;I[[ILjava/lang/String;Ljava/util/List;)V
         2: .line 64
            return
        end local 11 // int[][] gposAdjustments
        end local 10 // int level
        end local 9 // org.apache.fop.fonts.Font font
        end local 8 // boolean breakOppAfter
        end local 7 // boolean isSpace
        end local 6 // boolean isHyphenated
        end local 5 // org.apache.fop.traits.MinOptMax areaIPD
        end local 4 // int letterSpaceCount
        end local 3 // int wordSpaceCount
        end local 2 // int endIndex
        end local 1 // int startIndex
        end local 0 // org.apache.fop.fonts.GlyphMapping this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    3     0              this  Lorg/apache/fop/fonts/GlyphMapping;
            0    3     1        startIndex  I
            0    3     2          endIndex  I
            0    3     3    wordSpaceCount  I
            0    3     4  letterSpaceCount  I
            0    3     5           areaIPD  Lorg/apache/fop/traits/MinOptMax;
            0    3     6      isHyphenated  Z
            0    3     7           isSpace  Z
            0    3     8     breakOppAfter  Z
            0    3     9              font  Lorg/apache/fop/fonts/Font;
            0    3    10             level  I
            0    3    11   gposAdjustments  [[I
    MethodParameters:
                  Name  Flags
      startIndex        
      endIndex          
      wordSpaceCount    
      letterSpaceCount  
      areaIPD           
      isHyphenated      
      isSpace           
      breakOppAfter     
      font              
      level             
      gposAdjustments   

  public void <init>(int, int, int, int, org.apache.fop.traits.MinOptMax, boolean, boolean, boolean, org.apache.fop.fonts.Font, int, int[][], java.lang.String, java.util.List);
    descriptor: (IIIILorg/apache/fop/traits/MinOptMax;ZZZLorg/apache/fop/fonts/Font;I[[ILjava/lang/String;Ljava/util/List;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=14, args_size=14
        start local 0 // org.apache.fop.fonts.GlyphMapping this
        start local 1 // int startIndex
        start local 2 // int endIndex
        start local 3 // int wordSpaceCount
        start local 4 // int letterSpaceCount
        start local 5 // org.apache.fop.traits.MinOptMax areaIPD
        start local 6 // boolean isHyphenated
        start local 7 // boolean isSpace
        start local 8 // boolean breakOppAfter
        start local 9 // org.apache.fop.fonts.Font font
        start local 10 // int level
        start local 11 // int[][] gposAdjustments
        start local 12 // java.lang.String mapping
        start local 13 // java.util.List associations
         0: .line 66
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 69
            getstatic org.apache.fop.fonts.GlyphMapping.$assertionsDisabled:Z
            ifne 2
            iload 1 /* startIndex */
            iload 2 /* endIndex */
            if_icmple 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 70
      StackMap locals: org.apache.fop.fonts.GlyphMapping int int int int org.apache.fop.traits.MinOptMax int int int org.apache.fop.fonts.Font int int[][] java.lang.String java.util.List
      StackMap stack:
            aload 0 /* this */
            iload 1 /* startIndex */
            putfield org.apache.fop.fonts.GlyphMapping.startIndex:I
         3: .line 71
            aload 0 /* this */
            iload 2 /* endIndex */
            putfield org.apache.fop.fonts.GlyphMapping.endIndex:I
         4: .line 72
            aload 0 /* this */
            iconst_m1
            putfield org.apache.fop.fonts.GlyphMapping.wordCharLength:I
         5: .line 73
            aload 0 /* this */
            iload 3 /* wordSpaceCount */
            putfield org.apache.fop.fonts.GlyphMapping.wordSpaceCount:I
         6: .line 74
            aload 0 /* this */
            iload 4 /* letterSpaceCount */
            putfield org.apache.fop.fonts.GlyphMapping.letterSpaceCount:I
         7: .line 75
            aload 0 /* this */
            aload 5 /* areaIPD */
            putfield org.apache.fop.fonts.GlyphMapping.areaIPD:Lorg/apache/fop/traits/MinOptMax;
         8: .line 76
            aload 0 /* this */
            iload 6 /* isHyphenated */
            putfield org.apache.fop.fonts.GlyphMapping.isHyphenated:Z
         9: .line 77
            aload 0 /* this */
            iload 7 /* isSpace */
            putfield org.apache.fop.fonts.GlyphMapping.isSpace:Z
        10: .line 78
            aload 0 /* this */
            iload 8 /* breakOppAfter */
            putfield org.apache.fop.fonts.GlyphMapping.breakOppAfter:Z
        11: .line 79
            aload 0 /* this */
            aload 9 /* font */
            putfield org.apache.fop.fonts.GlyphMapping.font:Lorg/apache/fop/fonts/Font;
        12: .line 80
            aload 0 /* this */
            iload 10 /* level */
            putfield org.apache.fop.fonts.GlyphMapping.level:I
        13: .line 81
            aload 0 /* this */
            aload 11 /* gposAdjustments */
            putfield org.apache.fop.fonts.GlyphMapping.gposAdjustments:[[I
        14: .line 82
            aload 0 /* this */
            aload 12 /* mapping */
            putfield org.apache.fop.fonts.GlyphMapping.mapping:Ljava/lang/String;
        15: .line 83
            aload 0 /* this */
            aload 13 /* associations */
            putfield org.apache.fop.fonts.GlyphMapping.associations:Ljava/util/List;
        16: .line 84
            return
        end local 13 // java.util.List associations
        end local 12 // java.lang.String mapping
        end local 11 // int[][] gposAdjustments
        end local 10 // int level
        end local 9 // org.apache.fop.fonts.Font font
        end local 8 // boolean breakOppAfter
        end local 7 // boolean isSpace
        end local 6 // boolean isHyphenated
        end local 5 // org.apache.fop.traits.MinOptMax areaIPD
        end local 4 // int letterSpaceCount
        end local 3 // int wordSpaceCount
        end local 2 // int endIndex
        end local 1 // int startIndex
        end local 0 // org.apache.fop.fonts.GlyphMapping this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   17     0              this  Lorg/apache/fop/fonts/GlyphMapping;
            0   17     1        startIndex  I
            0   17     2          endIndex  I
            0   17     3    wordSpaceCount  I
            0   17     4  letterSpaceCount  I
            0   17     5           areaIPD  Lorg/apache/fop/traits/MinOptMax;
            0   17     6      isHyphenated  Z
            0   17     7           isSpace  Z
            0   17     8     breakOppAfter  Z
            0   17     9              font  Lorg/apache/fop/fonts/Font;
            0   17    10             level  I
            0   17    11   gposAdjustments  [[I
            0   17    12           mapping  Ljava/lang/String;
            0   17    13      associations  Ljava/util/List;
    MethodParameters:
                  Name  Flags
      startIndex        
      endIndex          
      wordSpaceCount    
      letterSpaceCount  
      areaIPD           
      isHyphenated      
      isSpace           
      breakOppAfter     
      font              
      level             
      gposAdjustments   
      mapping           
      associations      

  public static org.apache.fop.fonts.GlyphMapping doGlyphMapping(org.apache.fop.fonts.TextFragment, int, int, org.apache.fop.fonts.Font, org.apache.fop.traits.MinOptMax, org.apache.fop.traits.MinOptMax[], char, char, boolean, int, boolean, boolean, boolean);
    descriptor: (Lorg/apache/fop/fonts/TextFragment;IILorg/apache/fop/fonts/Font;Lorg/apache/fop/traits/MinOptMax;[Lorg/apache/fop/traits/MinOptMax;CCZIZZZ)Lorg/apache/fop/fonts/GlyphMapping;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=10, locals=14, args_size=13
        start local 0 // org.apache.fop.fonts.TextFragment text
        start local 1 // int startIndex
        start local 2 // int endIndex
        start local 3 // org.apache.fop.fonts.Font font
        start local 4 // org.apache.fop.traits.MinOptMax letterSpaceIPD
        start local 5 // org.apache.fop.traits.MinOptMax[] letterSpaceAdjustArray
        start local 6 // char precedingChar
        start local 7 // char breakOpportunityChar
        start local 8 // boolean endsWithHyphen
        start local 9 // int level
        start local 10 // boolean dontOptimizeForIdentityMapping
        start local 11 // boolean retainAssociations
        start local 12 // boolean retainControls
         0: .line 91
            aload 3 /* font */
            invokevirtual org.apache.fop.fonts.Font.performsSubstitution:()Z
            ifne 1
            aload 3 /* font */
            invokevirtual org.apache.fop.fonts.Font.performsPositioning:()Z
            ifeq 6
         1: .line 92
      StackMap locals:
      StackMap stack:
            aload 0 /* text */
            iload 1 /* startIndex */
            iload 2 /* endIndex */
            aload 3 /* font */
         2: .line 93
            iload 7 /* breakOpportunityChar */
            iload 8 /* endsWithHyphen */
            iload 9 /* level */
         3: .line 94
            iload 10 /* dontOptimizeForIdentityMapping */
            iload 11 /* retainAssociations */
            iload 12 /* retainControls */
         4: .line 92
            invokestatic org.apache.fop.fonts.GlyphMapping.processWordMapping:(Lorg/apache/fop/fonts/TextFragment;IILorg/apache/fop/fonts/Font;CZIZZZ)Lorg/apache/fop/fonts/GlyphMapping;
            astore 13 /* mapping */
        start local 13 // org.apache.fop.fonts.GlyphMapping mapping
         5: .line 95
            goto 9
        end local 13 // org.apache.fop.fonts.GlyphMapping mapping
         6: .line 96
      StackMap locals:
      StackMap stack:
            aload 0 /* text */
            iload 1 /* startIndex */
            iload 2 /* endIndex */
            aload 3 /* font */
         7: .line 97
            aload 4 /* letterSpaceIPD */
            aload 5 /* letterSpaceAdjustArray */
            iload 6 /* precedingChar */
            iload 7 /* breakOpportunityChar */
            iload 8 /* endsWithHyphen */
            iload 9 /* level */
         8: .line 96
            invokestatic org.apache.fop.fonts.GlyphMapping.processWordNoMapping:(Lorg/apache/fop/fonts/TextFragment;IILorg/apache/fop/fonts/Font;Lorg/apache/fop/traits/MinOptMax;[Lorg/apache/fop/traits/MinOptMax;CCZI)Lorg/apache/fop/fonts/GlyphMapping;
            astore 13 /* mapping */
        start local 13 // org.apache.fop.fonts.GlyphMapping mapping
         9: .line 99
      StackMap locals: org.apache.fop.fonts.GlyphMapping
      StackMap stack:
            aload 13 /* mapping */
            areturn
        end local 13 // org.apache.fop.fonts.GlyphMapping mapping
        end local 12 // boolean retainControls
        end local 11 // boolean retainAssociations
        end local 10 // boolean dontOptimizeForIdentityMapping
        end local 9 // int level
        end local 8 // boolean endsWithHyphen
        end local 7 // char breakOpportunityChar
        end local 6 // char precedingChar
        end local 5 // org.apache.fop.traits.MinOptMax[] letterSpaceAdjustArray
        end local 4 // org.apache.fop.traits.MinOptMax letterSpaceIPD
        end local 3 // org.apache.fop.fonts.Font font
        end local 2 // int endIndex
        end local 1 // int startIndex
        end local 0 // org.apache.fop.fonts.TextFragment text
      LocalVariableTable:
        Start  End  Slot                            Name  Signature
            0   10     0                            text  Lorg/apache/fop/fonts/TextFragment;
            0   10     1                      startIndex  I
            0   10     2                        endIndex  I
            0   10     3                            font  Lorg/apache/fop/fonts/Font;
            0   10     4                  letterSpaceIPD  Lorg/apache/fop/traits/MinOptMax;
            0   10     5          letterSpaceAdjustArray  [Lorg/apache/fop/traits/MinOptMax;
            0   10     6                   precedingChar  C
            0   10     7            breakOpportunityChar  C
            0   10     8                  endsWithHyphen  Z
            0   10     9                           level  I
            0   10    10  dontOptimizeForIdentityMapping  Z
            0   10    11              retainAssociations  Z
            0   10    12                  retainControls  Z
            5    6    13                         mapping  Lorg/apache/fop/fonts/GlyphMapping;
            9   10    13                         mapping  Lorg/apache/fop/fonts/GlyphMapping;
    MethodParameters:
                                Name  Flags
      text                            
      startIndex                      
      endIndex                        
      font                            
      letterSpaceIPD                  
      letterSpaceAdjustArray          
      precedingChar                   
      breakOpportunityChar            
      endsWithHyphen                  final
      level                           
      dontOptimizeForIdentityMapping  
      retainAssociations              
      retainControls                  

  private static org.apache.fop.fonts.GlyphMapping processWordMapping(org.apache.fop.fonts.TextFragment, int, int, org.apache.fop.fonts.Font, char, boolean, int, boolean, boolean, boolean);
    descriptor: (Lorg/apache/fop/fonts/TextFragment;IILorg/apache/fop/fonts/Font;CZIZZZ)Lorg/apache/fop/fonts/GlyphMapping;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=15, locals=22, args_size=10
        start local 0 // org.apache.fop.fonts.TextFragment text
        start local 1 // int startIndex
        start local 2 // int endIndex
        start local 3 // org.apache.fop.fonts.Font font
        start local 4 // char breakOpportunityChar
        start local 5 // boolean endsWithHyphen
        start local 6 // int level
        start local 7 // boolean dontOptimizeForIdentityMapping
        start local 8 // boolean retainAssociations
        start local 9 // boolean retainControls
         0: .line 106
            iconst_0
            istore 10 /* nLS */
        start local 10 // int nLS
         1: .line 107
            aload 0 /* text */
            invokeinterface org.apache.fop.fonts.TextFragment.getScript:()Ljava/lang/String;
            astore 11 /* script */
        start local 11 // java.lang.String script
         2: .line 108
            aload 0 /* text */
            invokeinterface org.apache.fop.fonts.TextFragment.getLanguage:()Ljava/lang/String;
            astore 12 /* language */
        start local 12 // java.lang.String language
         3: .line 110
            getstatic org.apache.fop.fonts.GlyphMapping.LOG:Lorg/apache/commons/logging/Log;
            invokeinterface org.apache.commons.logging.Log.isDebugEnabled:()Z
            ifeq 9
         4: .line 111
            getstatic org.apache.fop.fonts.GlyphMapping.LOG:Lorg/apache/commons/logging/Log;
            new java.lang.StringBuilder
            dup
            ldc "PW: ["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 1 /* startIndex */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ","
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 2 /* endIndex */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "]: {"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         5: .line 112
            ldc " +M"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         6: .line 113
            ldc ", level = "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 6 /* level */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
         7: .line 114
            ldc " }"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         8: .line 111
            invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
         9: .line 118
      StackMap locals: int java.lang.String java.lang.String
      StackMap stack:
            aload 0 /* text */
            iload 1 /* startIndex */
            iload 2 /* endIndex */
            invokeinterface org.apache.fop.fonts.TextFragment.subSequence:(II)Ljava/lang/CharSequence;
            astore 13 /* ics */
        start local 13 // java.lang.CharSequence ics
        10: .line 122
            aload 11 /* script */
            ifnull 11
            ldc "auto"
            aload 11 /* script */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 12
        11: .line 123
      StackMap locals: java.lang.CharSequence
      StackMap stack:
            aload 13 /* ics */
            invokestatic org.apache.fop.complexscripts.util.CharScript.dominantScript:(Ljava/lang/CharSequence;)I
            invokestatic org.apache.fop.complexscripts.util.CharScript.scriptTagFromCode:(I)Ljava/lang/String;
            astore 11 /* script */
        12: .line 125
      StackMap locals:
      StackMap stack:
            aload 12 /* language */
            ifnull 13
            ldc "none"
            aload 12 /* language */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 14
        13: .line 126
      StackMap locals:
      StackMap stack:
            ldc "dflt"
            astore 12 /* language */
        14: .line 131
      StackMap locals:
      StackMap stack:
            iload 8 /* retainAssociations */
            ifeq 15
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            goto 16
      StackMap locals:
      StackMap stack:
        15: aconst_null
      StackMap locals:
      StackMap stack: java.util.ArrayList
        16: astore 14 /* associations */
        start local 14 // java.util.List associations
        17: .line 137
            ldc "zyyy"
            aload 11 /* script */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 18
            ldc "auto"
            aload 11 /* script */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 19
        18: .line 138
      StackMap locals: java.util.List
      StackMap stack:
            ldc "*"
            astore 11 /* script */
        19: .line 141
      StackMap locals:
      StackMap stack:
            aload 3 /* font */
            aload 13 /* ics */
            aload 11 /* script */
            aload 12 /* language */
            aload 14 /* associations */
            iload 9 /* retainControls */
            invokevirtual org.apache.fop.fonts.Font.performSubstitution:(Ljava/lang/CharSequence;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Z)Ljava/lang/CharSequence;
            astore 15 /* mcs */
        start local 15 // java.lang.CharSequence mcs
        20: .line 144
            aconst_null
            astore 16 /* gpa */
        start local 16 // int[][] gpa
        21: .line 145
            aload 3 /* font */
            invokevirtual org.apache.fop.fonts.Font.performsPositioning:()Z
            ifeq 23
        22: .line 147
            aload 3 /* font */
            aload 15 /* mcs */
            aload 11 /* script */
            aload 12 /* language */
            invokevirtual org.apache.fop.fonts.Font.performPositioning:(Ljava/lang/CharSequence;Ljava/lang/String;Ljava/lang/String;)[[I
            astore 16 /* gpa */
        23: .line 149
      StackMap locals: java.lang.CharSequence int[][]
      StackMap stack:
            aload 3 /* font */
            aload 11 /* script */
            aload 12 /* language */
            invokestatic org.apache.fop.fonts.GlyphMapping.useKerningAdjustments:(Lorg/apache/fop/fonts/Font;Ljava/lang/String;Ljava/lang/String;)Z
            ifeq 25
        24: .line 151
            aload 15 /* mcs */
            aload 3 /* font */
            aload 16 /* gpa */
            invokestatic org.apache.fop.fonts.GlyphMapping.getKerningAdjustments:(Ljava/lang/CharSequence;Lorg/apache/fop/fonts/Font;[[I)[[I
            astore 16 /* gpa */
        25: .line 156
      StackMap locals:
      StackMap stack:
            aload 3 /* font */
            aload 15 /* mcs */
            aload 16 /* gpa */
            aload 11 /* script */
            aload 12 /* language */
            aload 14 /* associations */
            invokevirtual org.apache.fop.fonts.Font.reorderCombiningMarks:(Ljava/lang/CharSequence;[[ILjava/lang/String;Ljava/lang/String;Ljava/util/List;)Ljava/lang/CharSequence;
            astore 15 /* mcs */
        26: .line 159
            getstatic org.apache.fop.traits.MinOptMax.ZERO:Lorg/apache/fop/traits/MinOptMax;
            astore 17 /* ipd */
        start local 17 // org.apache.fop.traits.MinOptMax ipd
        27: .line 160
            iconst_0
            istore 18 /* i */
        start local 18 // int i
        28: aload 15 /* mcs */
            invokeinterface java.lang.CharSequence.length:()I
            istore 19 /* n */
        start local 19 // int n
        29: goto 40
        30: .line 161
      StackMap locals: org.apache.fop.traits.MinOptMax int int
      StackMap stack:
            aload 15 /* mcs */
            iload 18 /* i */
            invokeinterface java.lang.CharSequence.charAt:(I)C
            istore 20 /* c */
        start local 20 // int c
        31: .line 163
            aload 15 /* mcs */
            iload 18 /* i */
            invokestatic org.apache.fop.util.CharUtilities.containsSurrogatePairAt:(Ljava/lang/CharSequence;I)Z
            ifeq 33
        32: .line 164
            iload 20 /* c */
            i2c
            aload 15 /* mcs */
            iinc 18 /* i */ 1
            iload 18 /* i */
            invokeinterface java.lang.CharSequence.charAt:(I)C
            invokestatic java.lang.Character.toCodePoint:(CC)I
            istore 20 /* c */
        33: .line 167
      StackMap locals: int
      StackMap stack:
            aload 3 /* font */
            iload 20 /* c */
            invokevirtual org.apache.fop.fonts.Font.getCharWidth:(I)I
            istore 21 /* w */
        start local 21 // int w
        34: .line 168
            iload 21 /* w */
            ifge 36
        35: .line 169
            iconst_0
            istore 21 /* w */
        36: .line 171
      StackMap locals: int
      StackMap stack:
            aload 16 /* gpa */
            ifnull 38
        37: .line 172
            iload 21 /* w */
            aload 16 /* gpa */
            iload 18 /* i */
            aaload
            iconst_2
            iaload
            iadd
            istore 21 /* w */
        38: .line 174
      StackMap locals:
      StackMap stack:
            aload 17 /* ipd */
            iload 21 /* w */
            invokevirtual org.apache.fop.traits.MinOptMax.plus:(I)Lorg/apache/fop/traits/MinOptMax;
            astore 17 /* ipd */
        end local 21 // int w
        end local 20 // int c
        39: .line 160
            iinc 18 /* i */ 1
      StackMap locals:
      StackMap stack:
        40: iload 18 /* i */
            iload 19 /* n */
            if_icmplt 30
        end local 19 // int n
        end local 18 // int i
        41: .line 179
            new org.apache.fop.fonts.GlyphMapping
            dup
            iload 1 /* startIndex */
            iload 2 /* endIndex */
            iconst_0
            iload 10 /* nLS */
            aload 17 /* ipd */
            iload 5 /* endsWithHyphen */
            iconst_0
        42: .line 180
            iload 4 /* breakOpportunityChar */
            ifeq 43
            iconst_1
            goto 44
      StackMap locals: org.apache.fop.fonts.TextFragment int int org.apache.fop.fonts.Font int int int int int int int java.lang.String java.lang.String java.lang.CharSequence java.util.List java.lang.CharSequence int[][] org.apache.fop.traits.MinOptMax
      StackMap stack: new 41 new 41 int int int int org.apache.fop.traits.MinOptMax int int
        43: iconst_0
      StackMap locals: org.apache.fop.fonts.TextFragment int int org.apache.fop.fonts.Font int int int int int int int java.lang.String java.lang.String java.lang.CharSequence java.util.List java.lang.CharSequence int[][] org.apache.fop.traits.MinOptMax
      StackMap stack: new 41 new 41 int int int int org.apache.fop.traits.MinOptMax int int int
        44: aload 3 /* font */
            iload 6 /* level */
            aload 16 /* gpa */
        45: .line 181
            iload 7 /* dontOptimizeForIdentityMapping */
            ifne 46
            aload 15 /* mcs */
            aload 13 /* ics */
            invokestatic org.apache.fop.util.CharUtilities.isSameSequence:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Z
            ifeq 46
            aconst_null
            goto 47
      StackMap locals: org.apache.fop.fonts.TextFragment int int org.apache.fop.fonts.Font int int int int int int int java.lang.String java.lang.String java.lang.CharSequence java.util.List java.lang.CharSequence int[][] org.apache.fop.traits.MinOptMax
      StackMap stack: new 41 new 41 int int int int org.apache.fop.traits.MinOptMax int int int org.apache.fop.fonts.Font int int[][]
        46: aload 15 /* mcs */
            invokeinterface java.lang.CharSequence.toString:()Ljava/lang/String;
        47: .line 182
      StackMap locals: org.apache.fop.fonts.TextFragment int int org.apache.fop.fonts.Font int int int int int int int java.lang.String java.lang.String java.lang.CharSequence java.util.List java.lang.CharSequence int[][] org.apache.fop.traits.MinOptMax
      StackMap stack: new 41 new 41 int int int int org.apache.fop.traits.MinOptMax int int int org.apache.fop.fonts.Font int int[][] java.lang.String
            aload 14 /* associations */
        48: .line 179
            invokespecial org.apache.fop.fonts.GlyphMapping.<init>:(IIIILorg/apache/fop/traits/MinOptMax;ZZZLorg/apache/fop/fonts/Font;I[[ILjava/lang/String;Ljava/util/List;)V
            areturn
        end local 17 // org.apache.fop.traits.MinOptMax ipd
        end local 16 // int[][] gpa
        end local 15 // java.lang.CharSequence mcs
        end local 14 // java.util.List associations
        end local 13 // java.lang.CharSequence ics
        end local 12 // java.lang.String language
        end local 11 // java.lang.String script
        end local 10 // int nLS
        end local 9 // boolean retainControls
        end local 8 // boolean retainAssociations
        end local 7 // boolean dontOptimizeForIdentityMapping
        end local 6 // int level
        end local 5 // boolean endsWithHyphen
        end local 4 // char breakOpportunityChar
        end local 3 // org.apache.fop.fonts.Font font
        end local 2 // int endIndex
        end local 1 // int startIndex
        end local 0 // org.apache.fop.fonts.TextFragment text
      LocalVariableTable:
        Start  End  Slot                            Name  Signature
            0   49     0                            text  Lorg/apache/fop/fonts/TextFragment;
            0   49     1                      startIndex  I
            0   49     2                        endIndex  I
            0   49     3                            font  Lorg/apache/fop/fonts/Font;
            0   49     4            breakOpportunityChar  C
            0   49     5                  endsWithHyphen  Z
            0   49     6                           level  I
            0   49     7  dontOptimizeForIdentityMapping  Z
            0   49     8              retainAssociations  Z
            0   49     9                  retainControls  Z
            1   49    10                             nLS  I
            2   49    11                          script  Ljava/lang/String;
            3   49    12                        language  Ljava/lang/String;
           10   49    13                             ics  Ljava/lang/CharSequence;
           17   49    14                    associations  Ljava/util/List;
           20   49    15                             mcs  Ljava/lang/CharSequence;
           21   49    16                             gpa  [[I
           27   49    17                             ipd  Lorg/apache/fop/traits/MinOptMax;
           28   41    18                               i  I
           29   41    19                               n  I
           31   39    20                               c  I
           34   39    21                               w  I
    MethodParameters:
                                Name  Flags
      text                            
      startIndex                      
      endIndex                        
      font                            final
      breakOpportunityChar            final
      endsWithHyphen                  final
      level                           
      dontOptimizeForIdentityMapping  
      retainAssociations              
      retainControls                  

  private static boolean useKerningAdjustments(org.apache.fop.fonts.Font, java.lang.String, java.lang.String);
    descriptor: (Lorg/apache/fop/fonts/Font;Ljava/lang/String;Ljava/lang/String;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // org.apache.fop.fonts.Font font
        start local 1 // java.lang.String script
        start local 2 // java.lang.String language
         0: .line 186
            aload 0 /* font */
            invokevirtual org.apache.fop.fonts.Font.hasKerning:()Z
            ifeq 1
            aload 0 /* font */
            iconst_2
            aload 1 /* script */
            aload 2 /* language */
            ldc "kern"
            invokevirtual org.apache.fop.fonts.Font.hasFeature:(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z
            ifne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 2 // java.lang.String language
        end local 1 // java.lang.String script
        end local 0 // org.apache.fop.fonts.Font font
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      font  Lorg/apache/fop/fonts/Font;
            0    2     1    script  Ljava/lang/String;
            0    2     2  language  Ljava/lang/String;
    MethodParameters:
          Name  Flags
      font      final
      script    
      language  

  private static int[][] getKerningAdjustments(java.lang.CharSequence, org.apache.fop.fonts.Font, int[][]);
    descriptor: (Ljava/lang/CharSequence;Lorg/apache/fop/fonts/Font;[[I)[[I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=12, args_size=3
        start local 0 // java.lang.CharSequence mcs
        start local 1 // org.apache.fop.fonts.Font font
        start local 2 // int[][] gpa
         0: .line 198
            aload 0 /* mcs */
            iconst_0
            aload 0 /* mcs */
            invokeinterface java.lang.CharSequence.length:()I
            invokestatic java.lang.Character.codePointCount:(Ljava/lang/CharSequence;II)I
            istore 3 /* numCodepoints */
        start local 3 // int numCodepoints
         1: .line 200
            iload 3 /* numCodepoints */
            newarray 10
            astore 4 /* kernings */
        start local 4 // int[] kernings
         2: .line 202
            iconst_m1
            istore 5 /* prevCp */
        start local 5 // int prevCp
         3: .line 203
            iconst_0
            istore 6 /* i */
        start local 6 // int i
         4: .line 204
            aload 0 /* mcs */
            invokestatic org.apache.fop.util.CharUtilities.codepointsIter:(Ljava/lang/CharSequence;)Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 8
            goto 10
      StackMap locals: java.lang.CharSequence org.apache.fop.fonts.Font int[][] int int[] int int top java.util.Iterator
      StackMap stack:
         5: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            istore 7 /* cp */
        start local 7 // int cp
         6: .line 205
            iload 5 /* prevCp */
            iflt 8
         7: .line 206
            aload 4 /* kernings */
            iload 6 /* i */
            aload 1 /* font */
            iload 5 /* prevCp */
            iload 7 /* cp */
            invokevirtual org.apache.fop.fonts.Font.getKernValue:(II)I
            iastore
         8: .line 208
      StackMap locals: java.lang.CharSequence org.apache.fop.fonts.Font int[][] int int[] int int int java.util.Iterator
      StackMap stack:
            iload 7 /* cp */
            istore 5 /* prevCp */
         9: .line 209
            iinc 6 /* i */ 1
        end local 7 // int cp
        10: .line 204
      StackMap locals: java.lang.CharSequence org.apache.fop.fonts.Font int[][] int int[] int int top java.util.Iterator
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
        11: .line 212
            iconst_0
            istore 7 /* hasKerning */
        start local 7 // boolean hasKerning
        12: .line 213
            aload 4 /* kernings */
            dup
            astore 11
            arraylength
            istore 10
            iconst_0
            istore 9
            goto 18
      StackMap locals: java.lang.CharSequence org.apache.fop.fonts.Font int[][] int int[] int int int top int int int[]
      StackMap stack:
        13: aload 11
            iload 9
            iaload
            istore 8 /* kerningValue */
        start local 8 // int kerningValue
        14: .line 214
            iload 8 /* kerningValue */
            ifeq 17
        15: .line 215
            iconst_1
            istore 7 /* hasKerning */
        16: .line 216
            goto 19
        end local 8 // int kerningValue
        17: .line 213
      StackMap locals:
      StackMap stack:
            iinc 9 1
      StackMap locals:
      StackMap stack:
        18: iload 9
            iload 10
            if_icmplt 13
        19: .line 220
      StackMap locals: java.lang.CharSequence org.apache.fop.fonts.Font int[][] int int[] int int int
      StackMap stack:
            iload 7 /* hasKerning */
            ifeq 28
        20: .line 221
            aload 2 /* gpa */
            ifnonnull 22
        21: .line 222
            iload 3 /* numCodepoints */
            iconst_4
            multianewarray [[I 2
            astore 2 /* gpa */
        22: .line 224
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 6 /* i */
            goto 26
        23: .line 225
      StackMap locals:
      StackMap stack:
            iload 6 /* i */
            ifle 25
        24: .line 226
            aload 2 /* gpa */
            iload 6 /* i */
            iconst_1
            isub
            aaload
            iconst_2
            dup2
            iaload
            aload 4 /* kernings */
            iload 6 /* i */
            iaload
            iadd
            iastore
        25: .line 224
      StackMap locals:
      StackMap stack:
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        26: iload 6 /* i */
            iload 3 /* numCodepoints */
            if_icmplt 23
        27: .line 229
            aload 2 /* gpa */
            areturn
        28: .line 231
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 7 // boolean hasKerning
        end local 6 // int i
        end local 5 // int prevCp
        end local 4 // int[] kernings
        end local 3 // int numCodepoints
        end local 2 // int[][] gpa
        end local 1 // org.apache.fop.fonts.Font font
        end local 0 // java.lang.CharSequence mcs
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   29     0            mcs  Ljava/lang/CharSequence;
            0   29     1           font  Lorg/apache/fop/fonts/Font;
            0   29     2            gpa  [[I
            1   29     3  numCodepoints  I
            2   29     4       kernings  [I
            3   29     5         prevCp  I
            4   29     6              i  I
            6   10     7             cp  I
           12   29     7     hasKerning  Z
           14   17     8   kerningValue  I
    MethodParameters:
      Name  Flags
      mcs   
      font  final
      gpa   

  private static org.apache.fop.fonts.GlyphMapping processWordNoMapping(org.apache.fop.fonts.TextFragment, int, int, org.apache.fop.fonts.Font, org.apache.fop.traits.MinOptMax, org.apache.fop.traits.MinOptMax[], char, char, boolean, int);
    descriptor: (Lorg/apache/fop/fonts/TextFragment;IILorg/apache/fop/fonts/Font;Lorg/apache/fop/traits/MinOptMax;[Lorg/apache/fop/traits/MinOptMax;CCZI)Lorg/apache/fop/fonts/GlyphMapping;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=13, locals=19, args_size=10
        start local 0 // org.apache.fop.fonts.TextFragment text
        start local 1 // int startIndex
        start local 2 // int endIndex
        start local 3 // org.apache.fop.fonts.Font font
        start local 4 // org.apache.fop.traits.MinOptMax letterSpaceIPD
        start local 5 // org.apache.fop.traits.MinOptMax[] letterSpaceAdjustArray
        start local 6 // char precedingChar
        start local 7 // char breakOpportunityChar
        start local 8 // boolean endsWithHyphen
        start local 9 // int level
         0: .line 238
            aload 3 /* font */
            invokevirtual org.apache.fop.fonts.Font.hasKerning:()Z
            istore 10 /* kerning */
        start local 10 // boolean kerning
         1: .line 239
            getstatic org.apache.fop.traits.MinOptMax.ZERO:Lorg/apache/fop/traits/MinOptMax;
            astore 11 /* wordIPD */
        start local 11 // org.apache.fop.traits.MinOptMax wordIPD
         2: .line 241
            getstatic org.apache.fop.fonts.GlyphMapping.LOG:Lorg/apache/commons/logging/Log;
            invokeinterface org.apache.commons.logging.Log.isDebugEnabled:()Z
            ifeq 8
         3: .line 242
            getstatic org.apache.fop.fonts.GlyphMapping.LOG:Lorg/apache/commons/logging/Log;
            new java.lang.StringBuilder
            dup
            ldc "PW: ["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 1 /* startIndex */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ","
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 2 /* endIndex */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "]: {"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         4: .line 243
            ldc " -M"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         5: .line 244
            ldc ", level = "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 9 /* level */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
         6: .line 245
            ldc " }"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         7: .line 242
            invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
         8: .line 248
      StackMap locals: int org.apache.fop.traits.MinOptMax
      StackMap stack:
            aload 0 /* text */
            iload 1 /* startIndex */
            iload 2 /* endIndex */
            invokeinterface org.apache.fop.fonts.TextFragment.subSequence:(II)Ljava/lang/CharSequence;
            astore 12 /* ics */
        start local 12 // java.lang.CharSequence ics
         9: .line 249
            iconst_0
            istore 13 /* offset */
        start local 13 // int offset
        10: .line 250
            aload 12 /* ics */
            invokestatic org.apache.fop.util.CharUtilities.codepointsIter:(Ljava/lang/CharSequence;)Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 15
            goto 26
      StackMap locals: org.apache.fop.fonts.TextFragment int int org.apache.fop.fonts.Font org.apache.fop.traits.MinOptMax org.apache.fop.traits.MinOptMax[] int int int int int org.apache.fop.traits.MinOptMax java.lang.CharSequence int top java.util.Iterator
      StackMap stack:
        11: aload 15
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            istore 14 /* currentChar */
        start local 14 // int currentChar
        12: .line 253
            aload 3 /* font */
            iload 14 /* currentChar */
            invokevirtual org.apache.fop.fonts.Font.getCharWidth:(I)I
            istore 16 /* charWidth */
        start local 16 // int charWidth
        13: .line 254
            aload 11 /* wordIPD */
            iload 16 /* charWidth */
            invokevirtual org.apache.fop.traits.MinOptMax.plus:(I)Lorg/apache/fop/traits/MinOptMax;
            astore 11 /* wordIPD */
        14: .line 257
            iload 10 /* kerning */
            ifeq 25
        15: .line 258
            iconst_0
            istore 17 /* kern */
        start local 17 // int kern
        16: .line 259
            iload 13 /* offset */
            ifle 20
        17: .line 260
            aload 12 /* ics */
            iload 13 /* offset */
            iconst_1
            isub
            invokestatic java.lang.Character.codePointAt:(Ljava/lang/CharSequence;I)I
            istore 18 /* previousChar */
        start local 18 // int previousChar
        18: .line 261
            aload 3 /* font */
            iload 18 /* previousChar */
            iload 14 /* currentChar */
            invokevirtual org.apache.fop.fonts.Font.getKernValue:(II)I
            istore 17 /* kern */
        end local 18 // int previousChar
        19: .line 262
            goto 22
      StackMap locals: org.apache.fop.fonts.TextFragment int int org.apache.fop.fonts.Font org.apache.fop.traits.MinOptMax org.apache.fop.traits.MinOptMax[] int int int int int org.apache.fop.traits.MinOptMax java.lang.CharSequence int int java.util.Iterator int int
      StackMap stack:
        20: iload 6 /* precedingChar */
            ifeq 22
        21: .line 263
            aload 3 /* font */
            iload 6 /* precedingChar */
            iload 14 /* currentChar */
            invokevirtual org.apache.fop.fonts.Font.getKernValue:(II)I
            istore 17 /* kern */
        22: .line 265
      StackMap locals:
      StackMap stack:
            iload 17 /* kern */
            ifeq 25
        23: .line 266
            aload 5 /* letterSpaceAdjustArray */
            iload 1 /* startIndex */
            iload 13 /* offset */
            iadd
            iload 17 /* kern */
            invokestatic org.apache.fop.fonts.GlyphMapping.addToLetterAdjust:([Lorg/apache/fop/traits/MinOptMax;II)V
        24: .line 267
            aload 11 /* wordIPD */
            iload 17 /* kern */
            invokevirtual org.apache.fop.traits.MinOptMax.plus:(I)Lorg/apache/fop/traits/MinOptMax;
            astore 11 /* wordIPD */
        end local 17 // int kern
        25: .line 270
      StackMap locals:
      StackMap stack:
            iinc 13 /* offset */ 1
        end local 16 // int charWidth
        end local 14 // int currentChar
        26: .line 250
      StackMap locals: org.apache.fop.fonts.TextFragment int int org.apache.fop.fonts.Font org.apache.fop.traits.MinOptMax org.apache.fop.traits.MinOptMax[] int int int int int org.apache.fop.traits.MinOptMax java.lang.CharSequence int top java.util.Iterator
      StackMap stack:
            aload 15
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 11
        27: .line 272
            iload 10 /* kerning */
            ifeq 39
        28: .line 273
            iload 7 /* breakOpportunityChar */
            ifeq 39
        29: .line 274
            iload 7 /* breakOpportunityChar */
            invokestatic org.apache.fop.fonts.GlyphMapping.isSpace:(C)Z
            ifne 39
        30: .line 275
            iload 2 /* endIndex */
            ifle 39
        31: .line 276
            iload 8 /* endsWithHyphen */
            ifeq 39
        32: .line 277
            aload 0 /* text */
            iload 2 /* endIndex */
            iconst_1
            isub
            invokeinterface org.apache.fop.fonts.TextFragment.charAt:(I)C
            istore 14 /* endChar */
        start local 14 // int endChar
        33: .line 279
            iload 14 /* endChar */
            i2c
            invokestatic java.lang.Character.isLowSurrogate:(C)Z
            ifeq 36
        34: .line 280
            aload 0 /* text */
            iload 2 /* endIndex */
            iconst_2
            isub
            invokeinterface org.apache.fop.fonts.TextFragment.charAt:(I)C
            istore 15 /* highSurrogate */
        start local 15 // char highSurrogate
        35: .line 281
            iload 15 /* highSurrogate */
            iload 14 /* endChar */
            i2c
            invokestatic java.lang.Character.toCodePoint:(CC)I
            istore 14 /* endChar */
        end local 15 // char highSurrogate
        36: .line 284
      StackMap locals: org.apache.fop.fonts.TextFragment int int org.apache.fop.fonts.Font org.apache.fop.traits.MinOptMax org.apache.fop.traits.MinOptMax[] int int int int int org.apache.fop.traits.MinOptMax java.lang.CharSequence int int
      StackMap stack:
            aload 3 /* font */
            iload 14 /* endChar */
            iload 7 /* breakOpportunityChar */
            invokevirtual org.apache.fop.fonts.Font.getKernValue:(II)I
            istore 15 /* kern */
        start local 15 // int kern
        37: .line 285
            iload 15 /* kern */
            ifeq 39
        38: .line 286
            aload 5 /* letterSpaceAdjustArray */
            iload 2 /* endIndex */
            iload 15 /* kern */
            invokestatic org.apache.fop.fonts.GlyphMapping.addToLetterAdjust:([Lorg/apache/fop/traits/MinOptMax;II)V
        end local 15 // int kern
        end local 14 // int endChar
        39: .line 292
      StackMap locals:
      StackMap stack:
            iload 2 /* endIndex */
            iload 1 /* startIndex */
            isub
            istore 14 /* wordLength */
        start local 14 // int wordLength
        40: .line 293
            iconst_0
            istore 15 /* letterSpaces */
        start local 15 // int letterSpaces
        41: .line 294
            iload 14 /* wordLength */
            ifeq 45
        42: .line 295
            iload 14 /* wordLength */
            iconst_1
            isub
            istore 15 /* letterSpaces */
        43: .line 299
            iload 7 /* breakOpportunityChar */
            ifeq 45
            iload 7 /* breakOpportunityChar */
            invokestatic org.apache.fop.fonts.GlyphMapping.isSpace:(C)Z
            ifne 45
        44: .line 300
            iinc 15 /* letterSpaces */ 1
        45: .line 303
      StackMap locals: int int
      StackMap stack:
            getstatic org.apache.fop.fonts.GlyphMapping.$assertionsDisabled:Z
            ifne 46
            iload 15 /* letterSpaces */
            ifge 46
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        46: .line 304
      StackMap locals:
      StackMap stack:
            aload 11 /* wordIPD */
            aload 4 /* letterSpaceIPD */
            iload 15 /* letterSpaces */
            invokevirtual org.apache.fop.traits.MinOptMax.mult:(I)Lorg/apache/fop/traits/MinOptMax;
            invokevirtual org.apache.fop.traits.MinOptMax.plus:(Lorg/apache/fop/traits/MinOptMax;)Lorg/apache/fop/traits/MinOptMax;
            astore 11 /* wordIPD */
        47: .line 307
            new org.apache.fop.fonts.GlyphMapping
            dup
            iload 1 /* startIndex */
            iload 2 /* endIndex */
            iconst_0
            iload 15 /* letterSpaces */
            aload 11 /* wordIPD */
            iload 8 /* endsWithHyphen */
            iconst_0
        48: .line 308
            iload 7 /* breakOpportunityChar */
            ifeq 49
            iload 7 /* breakOpportunityChar */
            invokestatic org.apache.fop.fonts.GlyphMapping.isSpace:(C)Z
            ifne 49
            iconst_1
            goto 50
      StackMap locals: org.apache.fop.fonts.TextFragment int int org.apache.fop.fonts.Font org.apache.fop.traits.MinOptMax org.apache.fop.traits.MinOptMax[] int int int int int org.apache.fop.traits.MinOptMax java.lang.CharSequence int int int
      StackMap stack: new 47 new 47 int int int int org.apache.fop.traits.MinOptMax int int
        49: iconst_0
      StackMap locals: org.apache.fop.fonts.TextFragment int int org.apache.fop.fonts.Font org.apache.fop.traits.MinOptMax org.apache.fop.traits.MinOptMax[] int int int int int org.apache.fop.traits.MinOptMax java.lang.CharSequence int int int
      StackMap stack: new 47 new 47 int int int int org.apache.fop.traits.MinOptMax int int int
        50: aload 3 /* font */
            iload 9 /* level */
            aconst_null
        51: .line 307
            invokespecial org.apache.fop.fonts.GlyphMapping.<init>:(IIIILorg/apache/fop/traits/MinOptMax;ZZZLorg/apache/fop/fonts/Font;I[[I)V
            areturn
        end local 15 // int letterSpaces
        end local 14 // int wordLength
        end local 13 // int offset
        end local 12 // java.lang.CharSequence ics
        end local 11 // org.apache.fop.traits.MinOptMax wordIPD
        end local 10 // boolean kerning
        end local 9 // int level
        end local 8 // boolean endsWithHyphen
        end local 7 // char breakOpportunityChar
        end local 6 // char precedingChar
        end local 5 // org.apache.fop.traits.MinOptMax[] letterSpaceAdjustArray
        end local 4 // org.apache.fop.traits.MinOptMax letterSpaceIPD
        end local 3 // org.apache.fop.fonts.Font font
        end local 2 // int endIndex
        end local 1 // int startIndex
        end local 0 // org.apache.fop.fonts.TextFragment text
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0   52     0                    text  Lorg/apache/fop/fonts/TextFragment;
            0   52     1              startIndex  I
            0   52     2                endIndex  I
            0   52     3                    font  Lorg/apache/fop/fonts/Font;
            0   52     4          letterSpaceIPD  Lorg/apache/fop/traits/MinOptMax;
            0   52     5  letterSpaceAdjustArray  [Lorg/apache/fop/traits/MinOptMax;
            0   52     6           precedingChar  C
            0   52     7    breakOpportunityChar  C
            0   52     8          endsWithHyphen  Z
            0   52     9                   level  I
            1   52    10                 kerning  Z
            2   52    11                 wordIPD  Lorg/apache/fop/traits/MinOptMax;
            9   52    12                     ics  Ljava/lang/CharSequence;
           10   52    13                  offset  I
           12   26    14             currentChar  I
           13   26    16               charWidth  I
           16   25    17                    kern  I
           18   19    18            previousChar  I
           33   39    14                 endChar  I
           35   36    15           highSurrogate  C
           37   39    15                    kern  I
           40   52    14              wordLength  I
           41   52    15            letterSpaces  I
    MethodParameters:
                        Name  Flags
      text                    
      startIndex              
      endIndex                
      font                    final
      letterSpaceIPD          
      letterSpaceAdjustArray  
      precedingChar           
      breakOpportunityChar    final
      endsWithHyphen          final
      level                   

  private static void addToLetterAdjust(org.apache.fop.traits.MinOptMax[], int, int);
    descriptor: ([Lorg/apache/fop/traits/MinOptMax;II)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.apache.fop.traits.MinOptMax[] letterSpaceAdjustArray
        start local 1 // int index
        start local 2 // int width
         0: .line 312
            aload 0 /* letterSpaceAdjustArray */
            iload 1 /* index */
            aaload
            ifnonnull 3
         1: .line 313
            aload 0 /* letterSpaceAdjustArray */
            iload 1 /* index */
            iload 2 /* width */
            invokestatic org.apache.fop.traits.MinOptMax.getInstance:(I)Lorg/apache/fop/traits/MinOptMax;
            aastore
         2: .line 314
            goto 4
         3: .line 315
      StackMap locals:
      StackMap stack:
            aload 0 /* letterSpaceAdjustArray */
            iload 1 /* index */
            aload 0 /* letterSpaceAdjustArray */
            iload 1 /* index */
            aaload
            iload 2 /* width */
            invokevirtual org.apache.fop.traits.MinOptMax.plus:(I)Lorg/apache/fop/traits/MinOptMax;
            aastore
         4: .line 317
      StackMap locals:
      StackMap stack:
            return
        end local 2 // int width
        end local 1 // int index
        end local 0 // org.apache.fop.traits.MinOptMax[] letterSpaceAdjustArray
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0    5     0  letterSpaceAdjustArray  [Lorg/apache/fop/traits/MinOptMax;
            0    5     1                   index  I
            0    5     2                   width  I
    MethodParameters:
                        Name  Flags
      letterSpaceAdjustArray  
      index                   
      width                   

  public static boolean isSpace(char);
    descriptor: (C)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // char ch
         0: .line 326
            iload 0 /* ch */
            bipush 32
            if_icmpeq 4
         1: .line 327
            iload 0 /* ch */
            invokestatic org.apache.fop.util.CharUtilities.isNonBreakableSpace:(I)Z
            ifne 4
         2: .line 328
            iload 0 /* ch */
            invokestatic org.apache.fop.util.CharUtilities.isFixedWidthSpace:(I)Z
            ifne 4
         3: .line 326
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         4: iconst_1
            ireturn
        end local 0 // char ch
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0    ch  C
    MethodParameters:
      Name  Flags
      ch    final

  public int getWordLength();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.apache.fop.fonts.GlyphMapping this
         0: .line 338
            aload 0 /* this */
            getfield org.apache.fop.fonts.GlyphMapping.wordCharLength:I
            iconst_m1
            if_icmpne 6
         1: .line 339
            aload 0 /* this */
            getfield org.apache.fop.fonts.GlyphMapping.mapping:Ljava/lang/String;
            ifnull 4
         2: .line 340
            aload 0 /* this */
            aload 0 /* this */
            getfield org.apache.fop.fonts.GlyphMapping.mapping:Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            putfield org.apache.fop.fonts.GlyphMapping.wordCharLength:I
         3: .line 341
            goto 6
         4: .line 342
      StackMap locals:
      StackMap stack:
            getstatic org.apache.fop.fonts.GlyphMapping.$assertionsDisabled:Z
            ifne 5
            aload 0 /* this */
            getfield org.apache.fop.fonts.GlyphMapping.endIndex:I
            aload 0 /* this */
            getfield org.apache.fop.fonts.GlyphMapping.startIndex:I
            if_icmpge 5
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         5: .line 343
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield org.apache.fop.fonts.GlyphMapping.endIndex:I
            aload 0 /* this */
            getfield org.apache.fop.fonts.GlyphMapping.startIndex:I
            isub
            putfield org.apache.fop.fonts.GlyphMapping.wordCharLength:I
         6: .line 346
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.fop.fonts.GlyphMapping.wordCharLength:I
            ireturn
        end local 0 // org.apache.fop.fonts.GlyphMapping this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lorg/apache/fop/fonts/GlyphMapping;

  public void addToAreaIPD(org.apache.fop.traits.MinOptMax);
    descriptor: (Lorg/apache/fop/traits/MinOptMax;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.apache.fop.fonts.GlyphMapping this
        start local 1 // org.apache.fop.traits.MinOptMax idp
         0: .line 350
            aload 0 /* this */
            aload 0 /* this */
            getfield org.apache.fop.fonts.GlyphMapping.areaIPD:Lorg/apache/fop/traits/MinOptMax;
            aload 1 /* idp */
            invokevirtual org.apache.fop.traits.MinOptMax.plus:(Lorg/apache/fop/traits/MinOptMax;)Lorg/apache/fop/traits/MinOptMax;
            putfield org.apache.fop.fonts.GlyphMapping.areaIPD:Lorg/apache/fop/traits/MinOptMax;
         1: .line 351
            return
        end local 1 // org.apache.fop.traits.MinOptMax idp
        end local 0 // org.apache.fop.fonts.GlyphMapping this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/fop/fonts/GlyphMapping;
            0    2     1   idp  Lorg/apache/fop/traits/MinOptMax;
    MethodParameters:
      Name  Flags
      idp   

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.apache.fop.fonts.GlyphMapping this
         0: .line 354
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokespecial java.lang.Object.toString:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "{"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         1: .line 355
            ldc "interval = ["
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.apache.fop.fonts.GlyphMapping.startIndex:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ","
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.apache.fop.fonts.GlyphMapping.endIndex:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         2: .line 356
            ldc ", isSpace = "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.apache.fop.fonts.GlyphMapping.isSpace:Z
            invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
         3: .line 357
            ldc ", level = "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.apache.fop.fonts.GlyphMapping.level:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
         4: .line 358
            ldc ", areaIPD = "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.apache.fop.fonts.GlyphMapping.areaIPD:Lorg/apache/fop/traits/MinOptMax;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
         5: .line 359
            ldc ", letterSpaceCount = "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.apache.fop.fonts.GlyphMapping.letterSpaceCount:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
         6: .line 360
            ldc ", wordSpaceCount = "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.apache.fop.fonts.GlyphMapping.wordSpaceCount:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
         7: .line 361
            ldc ", isHyphenated = "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.apache.fop.fonts.GlyphMapping.isHyphenated:Z
            invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
         8: .line 362
            ldc ", font = "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.apache.fop.fonts.GlyphMapping.font:Lorg/apache/fop/fonts/Font;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
         9: .line 363
            ldc "}"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        10: .line 354
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 0 // org.apache.fop.fonts.GlyphMapping this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Lorg/apache/fop/fonts/GlyphMapping;
}
SourceFile: "GlyphMapping.java"