public final class org.apache.lucene.geo.Tessellator
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: org.apache.lucene.geo.Tessellator
  super_class: java.lang.Object
{
  private static final int VERTEX_THRESHOLD;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 80

  private static volatile int[] $SWITCH_TABLE$org$apache$lucene$geo$Tessellator$State;
    descriptor: [I
    flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.lucene.geo.Tessellator this
         0: .line 81
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // org.apache.lucene.geo.Tessellator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/lucene/geo/Tessellator;

  public static final java.util.List<org.apache.lucene.geo.Tessellator$Triangle> tessellate(org.apache.lucene.geo.Polygon);
    descriptor: (Lorg/apache/lucene/geo/Polygon;)Ljava/util/List;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    Code:
      stack=6, locals=5, args_size=1
        start local 0 // org.apache.lucene.geo.Polygon polygon
         0: .line 86
            aload 0 /* polygon */
            invokevirtual org.apache.lucene.geo.Polygon.getPolyLons:()[D
            aload 0 /* polygon */
            invokevirtual org.apache.lucene.geo.Polygon.getPolyLats:()[D
            aload 0 /* polygon */
            invokevirtual org.apache.lucene.geo.Polygon.getWindingOrder:()Lorg/apache/lucene/geo/GeoUtils$WindingOrder;
            iconst_1
         1: .line 87
            iconst_0
            getstatic org.apache.lucene.geo.GeoUtils$WindingOrder.CW:Lorg/apache/lucene/geo/GeoUtils$WindingOrder;
         2: .line 86
            invokestatic org.apache.lucene.geo.Tessellator.createDoublyLinkedList:([D[DLorg/apache/lucene/geo/GeoUtils$WindingOrder;ZILorg/apache/lucene/geo/GeoUtils$WindingOrder;)Lorg/apache/lucene/geo/Tessellator$Node;
            astore 1 /* outerNode */
        start local 1 // org.apache.lucene.geo.Tessellator$Node outerNode
         3: .line 89
            aload 1 /* outerNode */
            ifnonnull 5
         4: .line 90
            new java.lang.IllegalArgumentException
            dup
            ldc "Malformed shape detected in Tessellator!"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 94
      StackMap locals: org.apache.lucene.geo.Tessellator$Node
      StackMap stack:
            aload 0 /* polygon */
            invokevirtual org.apache.lucene.geo.Polygon.numHoles:()I
            ifle 7
         6: .line 96
            aload 0 /* polygon */
            aload 1 /* outerNode */
            invokestatic org.apache.lucene.geo.Tessellator.eliminateHoles:(Lorg/apache/lucene/geo/Polygon;Lorg/apache/lucene/geo/Tessellator$Node;)Lorg/apache/lucene/geo/Tessellator$Node;
            astore 1 /* outerNode */
         7: .line 102
      StackMap locals:
      StackMap stack:
            bipush 80
            aload 0 /* polygon */
            invokevirtual org.apache.lucene.geo.Polygon.numPoints:()I
            isub
            istore 3 /* threshold */
        start local 3 // int threshold
         8: .line 103
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         9: goto 12
        10: .line 104
      StackMap locals: org.apache.lucene.geo.Polygon org.apache.lucene.geo.Tessellator$Node top int int
      StackMap stack:
            iload 3 /* threshold */
            aload 0 /* polygon */
            iload 4 /* i */
            invokevirtual org.apache.lucene.geo.Polygon.getHole:(I)Lorg/apache/lucene/geo/Polygon;
            invokevirtual org.apache.lucene.geo.Polygon.numPoints:()I
            isub
            istore 3 /* threshold */
        11: .line 103
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        12: iload 3 /* threshold */
            iflt 13
            iload 4 /* i */
            aload 0 /* polygon */
            invokevirtual org.apache.lucene.geo.Polygon.numHoles:()I
            if_icmplt 10
        end local 4 // int i
        13: .line 108
      StackMap locals:
      StackMap stack:
            iload 3 /* threshold */
            ifge 14
            iconst_1
            goto 15
      StackMap locals:
      StackMap stack:
        14: iconst_0
      StackMap locals:
      StackMap stack: int
        15: istore 2 /* mortonOptimized */
        start local 2 // boolean mortonOptimized
        16: .line 109
            iload 2 /* mortonOptimized */
            ifeq 18
        17: .line 110
            aload 1 /* outerNode */
            invokestatic org.apache.lucene.geo.Tessellator.sortByMorton:(Lorg/apache/lucene/geo/Tessellator$Node;)V
        end local 3 // int threshold
        18: .line 114
      StackMap locals: org.apache.lucene.geo.Polygon org.apache.lucene.geo.Tessellator$Node int
      StackMap stack:
            aload 0 /* polygon */
            aload 1 /* outerNode */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            getstatic org.apache.lucene.geo.Tessellator$State.INIT:Lorg/apache/lucene/geo/Tessellator$State;
            iload 2 /* mortonOptimized */
            invokestatic org.apache.lucene.geo.Tessellator.earcutLinkedList:(Ljava/lang/Object;Lorg/apache/lucene/geo/Tessellator$Node;Ljava/util/List;Lorg/apache/lucene/geo/Tessellator$State;Z)Ljava/util/List;
            astore 3 /* result */
        start local 3 // java.util.List result
        19: .line 115
            aload 3 /* result */
            invokeinterface java.util.List.size:()I
            ifne 21
        20: .line 116
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unable to Tessellate shape ["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* polygon */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "]. Possible malformed shape detected."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        21: .line 119
      StackMap locals: java.util.List
      StackMap stack:
            aload 3 /* result */
            areturn
        end local 3 // java.util.List result
        end local 2 // boolean mortonOptimized
        end local 1 // org.apache.lucene.geo.Tessellator$Node outerNode
        end local 0 // org.apache.lucene.geo.Polygon polygon
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   22     0          polygon  Lorg/apache/lucene/geo/Polygon;
            3   22     1        outerNode  Lorg/apache/lucene/geo/Tessellator$Node;
           16   22     2  mortonOptimized  Z
            8   18     3        threshold  I
            9   13     4                i  I
           19   22     3           result  Ljava/util/List<Lorg/apache/lucene/geo/Tessellator$Triangle;>;
    Signature: (Lorg/apache/lucene/geo/Polygon;)Ljava/util/List<Lorg/apache/lucene/geo/Tessellator$Triangle;>;
    MethodParameters:
         Name  Flags
      polygon  final

  public static final java.util.List<org.apache.lucene.geo.Tessellator$Triangle> tessellate(org.apache.lucene.geo.XYPolygon);
    descriptor: (Lorg/apache/lucene/geo/XYPolygon;)Ljava/util/List;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    Code:
      stack=6, locals=5, args_size=1
        start local 0 // org.apache.lucene.geo.XYPolygon polygon
         0: .line 126
            aload 0 /* polygon */
            invokevirtual org.apache.lucene.geo.XYPolygon.getPolyX:()[F
            invokestatic org.apache.lucene.geo.XYEncodingUtils.floatArrayToDoubleArray:([F)[D
            aload 0 /* polygon */
            invokevirtual org.apache.lucene.geo.XYPolygon.getPolyY:()[F
            invokestatic org.apache.lucene.geo.XYEncodingUtils.floatArrayToDoubleArray:([F)[D
         1: .line 127
            aload 0 /* polygon */
            invokevirtual org.apache.lucene.geo.XYPolygon.getWindingOrder:()Lorg/apache/lucene/geo/GeoUtils$WindingOrder;
            iconst_0
            iconst_0
            getstatic org.apache.lucene.geo.GeoUtils$WindingOrder.CW:Lorg/apache/lucene/geo/GeoUtils$WindingOrder;
         2: .line 126
            invokestatic org.apache.lucene.geo.Tessellator.createDoublyLinkedList:([D[DLorg/apache/lucene/geo/GeoUtils$WindingOrder;ZILorg/apache/lucene/geo/GeoUtils$WindingOrder;)Lorg/apache/lucene/geo/Tessellator$Node;
            astore 1 /* outerNode */
        start local 1 // org.apache.lucene.geo.Tessellator$Node outerNode
         3: .line 129
            aload 1 /* outerNode */
            ifnonnull 5
         4: .line 130
            new java.lang.IllegalArgumentException
            dup
            ldc "Malformed shape detected in Tessellator!"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 134
      StackMap locals: org.apache.lucene.geo.Tessellator$Node
      StackMap stack:
            aload 0 /* polygon */
            invokevirtual org.apache.lucene.geo.XYPolygon.numHoles:()I
            ifle 7
         6: .line 136
            aload 0 /* polygon */
            aload 1 /* outerNode */
            invokestatic org.apache.lucene.geo.Tessellator.eliminateHoles:(Lorg/apache/lucene/geo/XYPolygon;Lorg/apache/lucene/geo/Tessellator$Node;)Lorg/apache/lucene/geo/Tessellator$Node;
            astore 1 /* outerNode */
         7: .line 142
      StackMap locals:
      StackMap stack:
            bipush 80
            aload 0 /* polygon */
            invokevirtual org.apache.lucene.geo.XYPolygon.numPoints:()I
            isub
            istore 3 /* threshold */
        start local 3 // int threshold
         8: .line 143
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         9: goto 12
        10: .line 144
      StackMap locals: org.apache.lucene.geo.XYPolygon org.apache.lucene.geo.Tessellator$Node top int int
      StackMap stack:
            iload 3 /* threshold */
            aload 0 /* polygon */
            iload 4 /* i */
            invokevirtual org.apache.lucene.geo.XYPolygon.getHole:(I)Lorg/apache/lucene/geo/XYPolygon;
            invokevirtual org.apache.lucene.geo.XYPolygon.numPoints:()I
            isub
            istore 3 /* threshold */
        11: .line 143
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        12: iload 3 /* threshold */
            iflt 13
            iload 4 /* i */
            aload 0 /* polygon */
            invokevirtual org.apache.lucene.geo.XYPolygon.numHoles:()I
            if_icmplt 10
        end local 4 // int i
        13: .line 148
      StackMap locals:
      StackMap stack:
            iload 3 /* threshold */
            ifge 14
            iconst_1
            goto 15
      StackMap locals:
      StackMap stack:
        14: iconst_0
      StackMap locals:
      StackMap stack: int
        15: istore 2 /* mortonOptimized */
        start local 2 // boolean mortonOptimized
        16: .line 149
            iload 2 /* mortonOptimized */
            ifeq 18
        17: .line 150
            aload 1 /* outerNode */
            invokestatic org.apache.lucene.geo.Tessellator.sortByMorton:(Lorg/apache/lucene/geo/Tessellator$Node;)V
        end local 3 // int threshold
        18: .line 154
      StackMap locals: org.apache.lucene.geo.XYPolygon org.apache.lucene.geo.Tessellator$Node int
      StackMap stack:
            aload 0 /* polygon */
            aload 1 /* outerNode */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            getstatic org.apache.lucene.geo.Tessellator$State.INIT:Lorg/apache/lucene/geo/Tessellator$State;
            iload 2 /* mortonOptimized */
            invokestatic org.apache.lucene.geo.Tessellator.earcutLinkedList:(Ljava/lang/Object;Lorg/apache/lucene/geo/Tessellator$Node;Ljava/util/List;Lorg/apache/lucene/geo/Tessellator$State;Z)Ljava/util/List;
            astore 3 /* result */
        start local 3 // java.util.List result
        19: .line 155
            aload 3 /* result */
            invokeinterface java.util.List.size:()I
            ifne 21
        20: .line 156
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unable to Tessellate shape ["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* polygon */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "]. Possible malformed shape detected."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        21: .line 159
      StackMap locals: java.util.List
      StackMap stack:
            aload 3 /* result */
            areturn
        end local 3 // java.util.List result
        end local 2 // boolean mortonOptimized
        end local 1 // org.apache.lucene.geo.Tessellator$Node outerNode
        end local 0 // org.apache.lucene.geo.XYPolygon polygon
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   22     0          polygon  Lorg/apache/lucene/geo/XYPolygon;
            3   22     1        outerNode  Lorg/apache/lucene/geo/Tessellator$Node;
           16   22     2  mortonOptimized  Z
            8   18     3        threshold  I
            9   13     4                i  I
           19   22     3           result  Ljava/util/List<Lorg/apache/lucene/geo/Tessellator$Triangle;>;
    Signature: (Lorg/apache/lucene/geo/XYPolygon;)Ljava/util/List<Lorg/apache/lucene/geo/Tessellator$Triangle;>;
    MethodParameters:
         Name  Flags
      polygon  final

  private static final org.apache.lucene.geo.Tessellator$Node createDoublyLinkedList(double[], double[], org.apache.lucene.geo.GeoUtils$WindingOrder, boolean, int, org.apache.lucene.geo.GeoUtils$WindingOrder);
    descriptor: ([D[DLorg/apache/lucene/geo/GeoUtils$WindingOrder;ZILorg/apache/lucene/geo/GeoUtils$WindingOrder;)Lorg/apache/lucene/geo/Tessellator$Node;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Code:
      stack=6, locals=8, args_size=6
        start local 0 // double[] x
        start local 1 // double[] y
        start local 2 // org.apache.lucene.geo.GeoUtils$WindingOrder polyWindingOrder
        start local 3 // boolean isGeo
        start local 4 // int startIndex
        start local 5 // org.apache.lucene.geo.GeoUtils$WindingOrder windingOrder
         0: .line 165
            aconst_null
            astore 6 /* lastNode */
        start local 6 // org.apache.lucene.geo.Tessellator$Node lastNode
         1: .line 167
            aload 5 /* windingOrder */
            aload 2 /* polyWindingOrder */
            if_acmpne 8
         2: .line 168
            iconst_0
            istore 7 /* i */
        start local 7 // int i
         3: goto 6
         4: .line 169
      StackMap locals: org.apache.lucene.geo.Tessellator$Node int
      StackMap stack:
            aload 0 /* x */
            aload 1 /* y */
            iload 4 /* startIndex */
            iinc 4 /* startIndex */ 1
            iload 7 /* i */
            aload 6 /* lastNode */
            iload 3 /* isGeo */
            invokestatic org.apache.lucene.geo.Tessellator.insertNode:([D[DIILorg/apache/lucene/geo/Tessellator$Node;Z)Lorg/apache/lucene/geo/Tessellator$Node;
            astore 6 /* lastNode */
         5: .line 168
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 7 /* i */
            aload 0 /* x */
            arraylength
            if_icmplt 4
        end local 7 // int i
         7: .line 171
            goto 13
         8: .line 172
      StackMap locals:
      StackMap stack:
            aload 0 /* x */
            arraylength
            iconst_1
            isub
            istore 7 /* i */
        start local 7 // int i
         9: goto 12
        10: .line 173
      StackMap locals: int
      StackMap stack:
            aload 0 /* x */
            aload 1 /* y */
            iload 4 /* startIndex */
            iinc 4 /* startIndex */ 1
            iload 7 /* i */
            aload 6 /* lastNode */
            iload 3 /* isGeo */
            invokestatic org.apache.lucene.geo.Tessellator.insertNode:([D[DIILorg/apache/lucene/geo/Tessellator$Node;Z)Lorg/apache/lucene/geo/Tessellator$Node;
            astore 6 /* lastNode */
        11: .line 172
            iinc 7 /* i */ -1
      StackMap locals:
      StackMap stack:
        12: iload 7 /* i */
            ifge 10
        end local 7 // int i
        13: .line 177
      StackMap locals:
      StackMap stack:
            aload 6 /* lastNode */
            ifnull 16
            aload 6 /* lastNode */
            aload 6 /* lastNode */
            getfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
            invokestatic org.apache.lucene.geo.Tessellator.isVertexEquals:(Lorg/apache/lucene/geo/Tessellator$Node;Lorg/apache/lucene/geo/Tessellator$Node;)Z
            ifeq 16
        14: .line 178
            aload 6 /* lastNode */
            iconst_1
            invokestatic org.apache.lucene.geo.Tessellator.removeNode:(Lorg/apache/lucene/geo/Tessellator$Node;Z)V
        15: .line 179
            aload 6 /* lastNode */
            getfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
            astore 6 /* lastNode */
        16: .line 183
      StackMap locals:
      StackMap stack:
            aload 6 /* lastNode */
            aconst_null
            invokestatic org.apache.lucene.geo.Tessellator.filterPoints:(Lorg/apache/lucene/geo/Tessellator$Node;Lorg/apache/lucene/geo/Tessellator$Node;)Lorg/apache/lucene/geo/Tessellator$Node;
            areturn
        end local 6 // org.apache.lucene.geo.Tessellator$Node lastNode
        end local 5 // org.apache.lucene.geo.GeoUtils$WindingOrder windingOrder
        end local 4 // int startIndex
        end local 3 // boolean isGeo
        end local 2 // org.apache.lucene.geo.GeoUtils$WindingOrder polyWindingOrder
        end local 1 // double[] y
        end local 0 // double[] x
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   17     0                 x  [D
            0   17     1                 y  [D
            0   17     2  polyWindingOrder  Lorg/apache/lucene/geo/GeoUtils$WindingOrder;
            0   17     3             isGeo  Z
            0   17     4        startIndex  I
            0   17     5      windingOrder  Lorg/apache/lucene/geo/GeoUtils$WindingOrder;
            1   17     6          lastNode  Lorg/apache/lucene/geo/Tessellator$Node;
            3    7     7                 i  I
            9   13     7                 i  I
    MethodParameters:
                  Name  Flags
      x                 final
      y                 final
      polyWindingOrder  final
      isGeo             
      startIndex        
      windingOrder      final

  private static final org.apache.lucene.geo.Tessellator$Node eliminateHoles(org.apache.lucene.geo.XYPolygon, org.apache.lucene.geo.Tessellator$Node);
    descriptor: (Lorg/apache/lucene/geo/XYPolygon;Lorg/apache/lucene/geo/Tessellator$Node;)Lorg/apache/lucene/geo/Tessellator$Node;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Code:
      stack=6, locals=9, args_size=2
        start local 0 // org.apache.lucene.geo.XYPolygon polygon
        start local 1 // org.apache.lucene.geo.Tessellator$Node outerNode
         0: .line 188
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 2 /* holeList */
        start local 2 // java.util.List holeList
         1: .line 190
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 3 /* holeListPolygons */
        start local 3 // java.util.Map holeListPolygons
         2: .line 192
            aload 0 /* polygon */
            invokevirtual org.apache.lucene.geo.XYPolygon.getHoles:()[Lorg/apache/lucene/geo/XYPolygon;
            astore 4 /* holes */
        start local 4 // org.apache.lucene.geo.XYPolygon[] holes
         3: .line 193
            aload 0 /* polygon */
            invokevirtual org.apache.lucene.geo.XYPolygon.numPoints:()I
            istore 5 /* nodeIndex */
        start local 5 // int nodeIndex
         4: .line 194
            iconst_0
            istore 6 /* i */
        start local 6 // int i
         5: goto 15
         6: .line 196
      StackMap locals: org.apache.lucene.geo.XYPolygon org.apache.lucene.geo.Tessellator$Node java.util.List java.util.Map org.apache.lucene.geo.XYPolygon[] int int
      StackMap stack:
            aload 4 /* holes */
            iload 6 /* i */
            aaload
            invokevirtual org.apache.lucene.geo.XYPolygon.getPolyX:()[F
            invokestatic org.apache.lucene.geo.XYEncodingUtils.floatArrayToDoubleArray:([F)[D
         7: .line 197
            aload 4 /* holes */
            iload 6 /* i */
            aaload
            invokevirtual org.apache.lucene.geo.XYPolygon.getPolyY:()[F
            invokestatic org.apache.lucene.geo.XYEncodingUtils.floatArrayToDoubleArray:([F)[D
            aload 4 /* holes */
            iload 6 /* i */
            aaload
            invokevirtual org.apache.lucene.geo.XYPolygon.getWindingOrder:()Lorg/apache/lucene/geo/GeoUtils$WindingOrder;
            iconst_0
            iload 5 /* nodeIndex */
            getstatic org.apache.lucene.geo.GeoUtils$WindingOrder.CCW:Lorg/apache/lucene/geo/GeoUtils$WindingOrder;
         8: .line 196
            invokestatic org.apache.lucene.geo.Tessellator.createDoublyLinkedList:([D[DLorg/apache/lucene/geo/GeoUtils$WindingOrder;ZILorg/apache/lucene/geo/GeoUtils$WindingOrder;)Lorg/apache/lucene/geo/Tessellator$Node;
            astore 7 /* list */
        start local 7 // org.apache.lucene.geo.Tessellator$Node list
         9: .line 199
            aload 7 /* list */
            ifnull 13
        10: .line 201
            aload 7 /* list */
            invokestatic org.apache.lucene.geo.Tessellator.fetchLeftmost:(Lorg/apache/lucene/geo/Tessellator$Node;)Lorg/apache/lucene/geo/Tessellator$Node;
            astore 8 /* leftMost */
        start local 8 // org.apache.lucene.geo.Tessellator$Node leftMost
        11: .line 202
            aload 2 /* holeList */
            aload 8 /* leftMost */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        12: .line 203
            aload 3 /* holeListPolygons */
            aload 8 /* leftMost */
            aload 4 /* holes */
            iload 6 /* i */
            aaload
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 8 // org.apache.lucene.geo.Tessellator$Node leftMost
        13: .line 205
      StackMap locals: org.apache.lucene.geo.Tessellator$Node
      StackMap stack:
            iload 5 /* nodeIndex */
            aload 4 /* holes */
            iload 6 /* i */
            aaload
            invokevirtual org.apache.lucene.geo.XYPolygon.numPoints:()I
            iadd
            istore 5 /* nodeIndex */
        end local 7 // org.apache.lucene.geo.Tessellator$Node list
        14: .line 194
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        15: iload 6 /* i */
            aload 0 /* polygon */
            invokevirtual org.apache.lucene.geo.XYPolygon.numHoles:()I
            if_icmplt 6
        end local 6 // int i
        16: .line 207
            aload 2 /* holeList */
            aload 3 /* holeListPolygons */
            aload 1 /* outerNode */
            invokestatic org.apache.lucene.geo.Tessellator.eliminateHoles:(Ljava/util/List;Ljava/util/Map;Lorg/apache/lucene/geo/Tessellator$Node;)Lorg/apache/lucene/geo/Tessellator$Node;
            areturn
        end local 5 // int nodeIndex
        end local 4 // org.apache.lucene.geo.XYPolygon[] holes
        end local 3 // java.util.Map holeListPolygons
        end local 2 // java.util.List holeList
        end local 1 // org.apache.lucene.geo.Tessellator$Node outerNode
        end local 0 // org.apache.lucene.geo.XYPolygon polygon
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   17     0           polygon  Lorg/apache/lucene/geo/XYPolygon;
            0   17     1         outerNode  Lorg/apache/lucene/geo/Tessellator$Node;
            1   17     2          holeList  Ljava/util/List<Lorg/apache/lucene/geo/Tessellator$Node;>;
            2   17     3  holeListPolygons  Ljava/util/Map<Lorg/apache/lucene/geo/Tessellator$Node;Lorg/apache/lucene/geo/XYPolygon;>;
            3   17     4             holes  [Lorg/apache/lucene/geo/XYPolygon;
            4   17     5         nodeIndex  I
            5   16     6                 i  I
            9   14     7              list  Lorg/apache/lucene/geo/Tessellator$Node;
           11   13     8          leftMost  Lorg/apache/lucene/geo/Tessellator$Node;
    MethodParameters:
           Name  Flags
      polygon    final
      outerNode  

  private static final org.apache.lucene.geo.Tessellator$Node eliminateHoles(org.apache.lucene.geo.Polygon, org.apache.lucene.geo.Tessellator$Node);
    descriptor: (Lorg/apache/lucene/geo/Polygon;Lorg/apache/lucene/geo/Tessellator$Node;)Lorg/apache/lucene/geo/Tessellator$Node;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Code:
      stack=6, locals=9, args_size=2
        start local 0 // org.apache.lucene.geo.Polygon polygon
        start local 1 // org.apache.lucene.geo.Tessellator$Node outerNode
         0: .line 213
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 2 /* holeList */
        start local 2 // java.util.List holeList
         1: .line 215
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 3 /* holeListPolygons */
        start local 3 // java.util.Map holeListPolygons
         2: .line 217
            aload 0 /* polygon */
            invokevirtual org.apache.lucene.geo.Polygon.getHoles:()[Lorg/apache/lucene/geo/Polygon;
            astore 4 /* holes */
        start local 4 // org.apache.lucene.geo.Polygon[] holes
         3: .line 218
            aload 0 /* polygon */
            invokevirtual org.apache.lucene.geo.Polygon.numPoints:()I
            istore 5 /* nodeIndex */
        start local 5 // int nodeIndex
         4: .line 219
            iconst_0
            istore 6 /* i */
        start local 6 // int i
         5: goto 15
         6: .line 221
      StackMap locals: org.apache.lucene.geo.Polygon org.apache.lucene.geo.Tessellator$Node java.util.List java.util.Map org.apache.lucene.geo.Polygon[] int int
      StackMap stack:
            aload 4 /* holes */
            iload 6 /* i */
            aaload
            invokevirtual org.apache.lucene.geo.Polygon.getPolyLons:()[D
            aload 4 /* holes */
            iload 6 /* i */
            aaload
            invokevirtual org.apache.lucene.geo.Polygon.getPolyLats:()[D
            aload 4 /* holes */
            iload 6 /* i */
            aaload
            invokevirtual org.apache.lucene.geo.Polygon.getWindingOrder:()Lorg/apache/lucene/geo/GeoUtils$WindingOrder;
            iconst_1
            iload 5 /* nodeIndex */
            getstatic org.apache.lucene.geo.GeoUtils$WindingOrder.CCW:Lorg/apache/lucene/geo/GeoUtils$WindingOrder;
            invokestatic org.apache.lucene.geo.Tessellator.createDoublyLinkedList:([D[DLorg/apache/lucene/geo/GeoUtils$WindingOrder;ZILorg/apache/lucene/geo/GeoUtils$WindingOrder;)Lorg/apache/lucene/geo/Tessellator$Node;
            astore 7 /* list */
        start local 7 // org.apache.lucene.geo.Tessellator$Node list
         7: .line 222
            aload 7 /* list */
            aload 7 /* list */
            getfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
            if_acmpne 9
         8: .line 223
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Points are all coplanar in hole: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* holes */
            iload 6 /* i */
            aaload
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         9: .line 226
      StackMap locals: org.apache.lucene.geo.Tessellator$Node
      StackMap stack:
            aload 7 /* list */
            ifnull 13
        10: .line 228
            aload 7 /* list */
            invokestatic org.apache.lucene.geo.Tessellator.fetchLeftmost:(Lorg/apache/lucene/geo/Tessellator$Node;)Lorg/apache/lucene/geo/Tessellator$Node;
            astore 8 /* leftMost */
        start local 8 // org.apache.lucene.geo.Tessellator$Node leftMost
        11: .line 229
            aload 2 /* holeList */
            aload 8 /* leftMost */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        12: .line 230
            aload 3 /* holeListPolygons */
            aload 8 /* leftMost */
            aload 4 /* holes */
            iload 6 /* i */
            aaload
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 8 // org.apache.lucene.geo.Tessellator$Node leftMost
        13: .line 232
      StackMap locals:
      StackMap stack:
            iload 5 /* nodeIndex */
            aload 4 /* holes */
            iload 6 /* i */
            aaload
            invokevirtual org.apache.lucene.geo.Polygon.numPoints:()I
            iadd
            istore 5 /* nodeIndex */
        end local 7 // org.apache.lucene.geo.Tessellator$Node list
        14: .line 219
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        15: iload 6 /* i */
            aload 0 /* polygon */
            invokevirtual org.apache.lucene.geo.Polygon.numHoles:()I
            if_icmplt 6
        end local 6 // int i
        16: .line 234
            aload 2 /* holeList */
            aload 3 /* holeListPolygons */
            aload 1 /* outerNode */
            invokestatic org.apache.lucene.geo.Tessellator.eliminateHoles:(Ljava/util/List;Ljava/util/Map;Lorg/apache/lucene/geo/Tessellator$Node;)Lorg/apache/lucene/geo/Tessellator$Node;
            areturn
        end local 5 // int nodeIndex
        end local 4 // org.apache.lucene.geo.Polygon[] holes
        end local 3 // java.util.Map holeListPolygons
        end local 2 // java.util.List holeList
        end local 1 // org.apache.lucene.geo.Tessellator$Node outerNode
        end local 0 // org.apache.lucene.geo.Polygon polygon
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   17     0           polygon  Lorg/apache/lucene/geo/Polygon;
            0   17     1         outerNode  Lorg/apache/lucene/geo/Tessellator$Node;
            1   17     2          holeList  Ljava/util/List<Lorg/apache/lucene/geo/Tessellator$Node;>;
            2   17     3  holeListPolygons  Ljava/util/Map<Lorg/apache/lucene/geo/Tessellator$Node;Lorg/apache/lucene/geo/Polygon;>;
            3   17     4             holes  [Lorg/apache/lucene/geo/Polygon;
            4   17     5         nodeIndex  I
            5   16     6                 i  I
            7   14     7              list  Lorg/apache/lucene/geo/Tessellator$Node;
           11   13     8          leftMost  Lorg/apache/lucene/geo/Tessellator$Node;
    MethodParameters:
           Name  Flags
      polygon    final
      outerNode  

  private static final org.apache.lucene.geo.Tessellator$Node eliminateHoles(java.util.List<org.apache.lucene.geo.Tessellator$Node>, java.util.Map<org.apache.lucene.geo.Tessellator$Node, ?>, org.apache.lucene.geo.Tessellator$Node);
    descriptor: (Ljava/util/List;Ljava/util/Map;Lorg/apache/lucene/geo/Tessellator$Node;)Lorg/apache/lucene/geo/Tessellator$Node;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Code:
      stack=10, locals=15, args_size=3
        start local 0 // java.util.List holeList
        start local 1 // java.util.Map holeListPolygons
        start local 2 // org.apache.lucene.geo.Tessellator$Node outerNode
         0: .line 239
            aload 0 /* holeList */
            invokedynamic compare()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
                  org/apache/lucene/geo/Tessellator.lambda$0(Lorg/apache/lucene/geo/Tessellator$Node;Lorg/apache/lucene/geo/Tessellator$Node;)I (6)
                  (Lorg/apache/lucene/geo/Tessellator$Node;Lorg/apache/lucene/geo/Tessellator$Node;)I
            invokeinterface java.util.List.sort:(Ljava/util/Comparator;)V
         1: .line 255
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         2: goto 20
         3: .line 257
      StackMap locals: int
      StackMap stack:
            aload 0 /* holeList */
            iload 3 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast org.apache.lucene.geo.Tessellator$Node
            astore 4 /* holeNode */
        start local 4 // org.apache.lucene.geo.Tessellator$Node holeNode
         4: .line 259
            aload 1 /* holeListPolygons */
            aload 4 /* holeNode */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 13 /* h */
        start local 13 // java.lang.Object h
         5: .line 260
            aload 13 /* h */
            instanceof org.apache.lucene.geo.Polygon
            ifeq 12
         6: .line 261
            aload 13 /* h */
            checkcast org.apache.lucene.geo.Polygon
            astore 14 /* holePoly */
        start local 14 // org.apache.lucene.geo.Polygon holePoly
         7: .line 262
            aload 14 /* holePoly */
            getfield org.apache.lucene.geo.Polygon.minLon:D
            dstore 5 /* holeMinX */
        start local 5 // double holeMinX
         8: .line 263
            aload 14 /* holePoly */
            getfield org.apache.lucene.geo.Polygon.maxLon:D
            dstore 7 /* holeMaxX */
        start local 7 // double holeMaxX
         9: .line 264
            aload 14 /* holePoly */
            getfield org.apache.lucene.geo.Polygon.minLat:D
            dstore 9 /* holeMinY */
        start local 9 // double holeMinY
        10: .line 265
            aload 14 /* holePoly */
            getfield org.apache.lucene.geo.Polygon.maxLat:D
            dstore 11 /* holeMaxY */
        end local 14 // org.apache.lucene.geo.Polygon holePoly
        start local 11 // double holeMaxY
        11: .line 266
            goto 17
        end local 11 // double holeMaxY
        end local 9 // double holeMinY
        end local 7 // double holeMaxX
        end local 5 // double holeMinX
        12: .line 267
      StackMap locals: java.util.List java.util.Map org.apache.lucene.geo.Tessellator$Node int org.apache.lucene.geo.Tessellator$Node top top top top top top top top java.lang.Object
      StackMap stack:
            aload 13 /* h */
            checkcast org.apache.lucene.geo.XYPolygon
            astore 14 /* holePoly */
        start local 14 // org.apache.lucene.geo.XYPolygon holePoly
        13: .line 268
            aload 14 /* holePoly */
            getfield org.apache.lucene.geo.XYPolygon.minX:F
            f2d
            dstore 5 /* holeMinX */
        start local 5 // double holeMinX
        14: .line 269
            aload 14 /* holePoly */
            getfield org.apache.lucene.geo.XYPolygon.maxX:F
            f2d
            dstore 7 /* holeMaxX */
        start local 7 // double holeMaxX
        15: .line 270
            aload 14 /* holePoly */
            getfield org.apache.lucene.geo.XYPolygon.minY:F
            f2d
            dstore 9 /* holeMinY */
        start local 9 // double holeMinY
        16: .line 271
            aload 14 /* holePoly */
            getfield org.apache.lucene.geo.XYPolygon.maxY:F
            f2d
            dstore 11 /* holeMaxY */
        end local 14 // org.apache.lucene.geo.XYPolygon holePoly
        start local 11 // double holeMaxY
        17: .line 273
      StackMap locals: java.util.List java.util.Map org.apache.lucene.geo.Tessellator$Node int org.apache.lucene.geo.Tessellator$Node double double double double java.lang.Object
      StackMap stack:
            aload 4 /* holeNode */
            aload 2 /* outerNode */
            dload 5 /* holeMinX */
            dload 7 /* holeMaxX */
            dload 9 /* holeMinY */
            dload 11 /* holeMaxY */
            invokestatic org.apache.lucene.geo.Tessellator.eliminateHole:(Lorg/apache/lucene/geo/Tessellator$Node;Lorg/apache/lucene/geo/Tessellator$Node;DDDD)V
        18: .line 275
            aload 2 /* outerNode */
            aload 2 /* outerNode */
            getfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
            invokestatic org.apache.lucene.geo.Tessellator.filterPoints:(Lorg/apache/lucene/geo/Tessellator$Node;Lorg/apache/lucene/geo/Tessellator$Node;)Lorg/apache/lucene/geo/Tessellator$Node;
            astore 2 /* outerNode */
        end local 13 // java.lang.Object h
        end local 11 // double holeMaxY
        end local 9 // double holeMinY
        end local 7 // double holeMaxX
        end local 5 // double holeMinX
        end local 4 // org.apache.lucene.geo.Tessellator$Node holeNode
        19: .line 255
            iinc 3 /* i */ 1
      StackMap locals: java.util.List java.util.Map org.apache.lucene.geo.Tessellator$Node int
      StackMap stack:
        20: iload 3 /* i */
            aload 0 /* holeList */
            invokeinterface java.util.List.size:()I
            if_icmplt 3
        end local 3 // int i
        21: .line 278
            aload 2 /* outerNode */
            areturn
        end local 2 // org.apache.lucene.geo.Tessellator$Node outerNode
        end local 1 // java.util.Map holeListPolygons
        end local 0 // java.util.List holeList
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   22     0          holeList  Ljava/util/List<Lorg/apache/lucene/geo/Tessellator$Node;>;
            0   22     1  holeListPolygons  Ljava/util/Map<Lorg/apache/lucene/geo/Tessellator$Node;*>;
            0   22     2         outerNode  Lorg/apache/lucene/geo/Tessellator$Node;
            2   21     3                 i  I
            4   19     4          holeNode  Lorg/apache/lucene/geo/Tessellator$Node;
            8   12     5          holeMinX  D
           14   19     5          holeMinX  D
            9   12     7          holeMaxX  D
           15   19     7          holeMaxX  D
           10   12     9          holeMinY  D
           16   19     9          holeMinY  D
           11   12    11          holeMaxY  D
           17   19    11          holeMaxY  D
            5   19    13                 h  Ljava/lang/Object;
            7   11    14          holePoly  Lorg/apache/lucene/geo/Polygon;
           13   17    14          holePoly  Lorg/apache/lucene/geo/XYPolygon;
    Signature: (Ljava/util/List<Lorg/apache/lucene/geo/Tessellator$Node;>;Ljava/util/Map<Lorg/apache/lucene/geo/Tessellator$Node;*>;Lorg/apache/lucene/geo/Tessellator$Node;)Lorg/apache/lucene/geo/Tessellator$Node;
    MethodParameters:
                  Name  Flags
      holeList          
      holeListPolygons  final
      outerNode         

  private static final void eliminateHole(org.apache.lucene.geo.Tessellator$Node, org.apache.lucene.geo.Tessellator$Node, double, double, double, double);
    descriptor: (Lorg/apache/lucene/geo/Tessellator$Node;Lorg/apache/lucene/geo/Tessellator$Node;DDDD)V
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Code:
      stack=12, locals=13, args_size=6
        start local 0 // org.apache.lucene.geo.Tessellator$Node holeNode
        start local 1 // org.apache.lucene.geo.Tessellator$Node outerNode
        start local 2 // double holeMinX
        start local 4 // double holeMaxX
        start local 6 // double holeMinY
        start local 8 // double holeMaxY
         0: .line 284
            aload 1 /* outerNode */
            astore 10 /* next */
        start local 10 // org.apache.lucene.geo.Tessellator$Node next
         1: .line 286
      StackMap locals: org.apache.lucene.geo.Tessellator$Node
      StackMap stack:
            aload 10 /* next */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getY:()D
            aload 10 /* next */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getX:()D
            dload 6 /* holeMinY */
            dload 8 /* holeMaxY */
            dload 2 /* holeMinX */
            dload 4 /* holeMaxX */
            invokestatic org.apache.lucene.geo.Rectangle.containsPoint:(DDDDDD)Z
            ifeq 7
         2: .line 287
            aload 0 /* holeNode */
            aload 10 /* next */
            invokestatic org.apache.lucene.geo.Tessellator.getSharedVertex:(Lorg/apache/lucene/geo/Tessellator$Node;Lorg/apache/lucene/geo/Tessellator$Node;)Lorg/apache/lucene/geo/Tessellator$Node;
            astore 11 /* sharedVertex */
        start local 11 // org.apache.lucene.geo.Tessellator$Node sharedVertex
         3: .line 288
            aload 11 /* sharedVertex */
            ifnull 7
         4: .line 290
            aload 10 /* next */
            aload 11 /* sharedVertex */
            iconst_1
            invokestatic org.apache.lucene.geo.Tessellator.splitPolygon:(Lorg/apache/lucene/geo/Tessellator$Node;Lorg/apache/lucene/geo/Tessellator$Node;Z)Lorg/apache/lucene/geo/Tessellator$Node;
            astore 12 /* node */
        start local 12 // org.apache.lucene.geo.Tessellator$Node node
         5: .line 292
            aload 12 /* node */
            aload 12 /* node */
            getfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
            invokestatic org.apache.lucene.geo.Tessellator.filterPoints:(Lorg/apache/lucene/geo/Tessellator$Node;Lorg/apache/lucene/geo/Tessellator$Node;)Lorg/apache/lucene/geo/Tessellator$Node;
            pop
         6: .line 293
            return
        end local 12 // org.apache.lucene.geo.Tessellator$Node node
        end local 11 // org.apache.lucene.geo.Tessellator$Node sharedVertex
         7: .line 296
      StackMap locals:
      StackMap stack:
            aload 10 /* next */
            getfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
            astore 10 /* next */
         8: .line 297
            aload 10 /* next */
            aload 1 /* outerNode */
            if_acmpne 1
         9: .line 300
            aload 0 /* holeNode */
            aload 1 /* outerNode */
            invokestatic org.apache.lucene.geo.Tessellator.fetchHoleBridge:(Lorg/apache/lucene/geo/Tessellator$Node;Lorg/apache/lucene/geo/Tessellator$Node;)Lorg/apache/lucene/geo/Tessellator$Node;
            astore 1 /* outerNode */
        10: .line 303
            aload 1 /* outerNode */
            ifnull 16
        11: .line 305
            aload 1 /* outerNode */
            aload 1 /* outerNode */
            getfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
            aload 0 /* holeNode */
            invokestatic org.apache.lucene.geo.Tessellator.isPointInLine:(Lorg/apache/lucene/geo/Tessellator$Node;Lorg/apache/lucene/geo/Tessellator$Node;Lorg/apache/lucene/geo/Tessellator$Node;)Z
            ifne 12
            aload 0 /* holeNode */
            aload 0 /* holeNode */
            getfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
            aload 1 /* outerNode */
            invokestatic org.apache.lucene.geo.Tessellator.isPointInLine:(Lorg/apache/lucene/geo/Tessellator$Node;Lorg/apache/lucene/geo/Tessellator$Node;Lorg/apache/lucene/geo/Tessellator$Node;)Z
            ifne 12
            iconst_0
            goto 13
      StackMap locals:
      StackMap stack:
        12: iconst_1
      StackMap locals:
      StackMap stack: int
        13: istore 11 /* fromPolygon */
        start local 11 // boolean fromPolygon
        14: .line 307
            aload 1 /* outerNode */
            aload 0 /* holeNode */
            iload 11 /* fromPolygon */
            invokestatic org.apache.lucene.geo.Tessellator.splitPolygon:(Lorg/apache/lucene/geo/Tessellator$Node;Lorg/apache/lucene/geo/Tessellator$Node;Z)Lorg/apache/lucene/geo/Tessellator$Node;
            astore 12 /* node */
        start local 12 // org.apache.lucene.geo.Tessellator$Node node
        15: .line 309
            aload 12 /* node */
            aload 12 /* node */
            getfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
            invokestatic org.apache.lucene.geo.Tessellator.filterPoints:(Lorg/apache/lucene/geo/Tessellator$Node;Lorg/apache/lucene/geo/Tessellator$Node;)Lorg/apache/lucene/geo/Tessellator$Node;
            pop
        end local 12 // org.apache.lucene.geo.Tessellator$Node node
        end local 11 // boolean fromPolygon
        16: .line 311
      StackMap locals:
      StackMap stack:
            return
        end local 10 // org.apache.lucene.geo.Tessellator$Node next
        end local 8 // double holeMaxY
        end local 6 // double holeMinY
        end local 4 // double holeMaxX
        end local 2 // double holeMinX
        end local 1 // org.apache.lucene.geo.Tessellator$Node outerNode
        end local 0 // org.apache.lucene.geo.Tessellator$Node holeNode
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   17     0      holeNode  Lorg/apache/lucene/geo/Tessellator$Node;
            0   17     1     outerNode  Lorg/apache/lucene/geo/Tessellator$Node;
            0   17     2      holeMinX  D
            0   17     4      holeMaxX  D
            0   17     6      holeMinY  D
            0   17     8      holeMaxY  D
            1   17    10          next  Lorg/apache/lucene/geo/Tessellator$Node;
            3    7    11  sharedVertex  Lorg/apache/lucene/geo/Tessellator$Node;
            5    7    12          node  Lorg/apache/lucene/geo/Tessellator$Node;
           14   16    11   fromPolygon  Z
           15   16    12          node  Lorg/apache/lucene/geo/Tessellator$Node;
    MethodParameters:
           Name  Flags
      holeNode   final
      outerNode  
      holeMinX   
      holeMaxX   
      holeMinY   
      holeMaxY   

  private static final org.apache.lucene.geo.Tessellator$Node fetchHoleBridge(org.apache.lucene.geo.Tessellator$Node, org.apache.lucene.geo.Tessellator$Node);
    descriptor: (Lorg/apache/lucene/geo/Tessellator$Node;Lorg/apache/lucene/geo/Tessellator$Node;)Lorg/apache/lucene/geo/Tessellator$Node;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Code:
      stack=16, locals=20, args_size=2
        start local 0 // org.apache.lucene.geo.Tessellator$Node holeNode
        start local 1 // org.apache.lucene.geo.Tessellator$Node outerNode
         0: .line 319
            aload 1 /* outerNode */
            astore 2 /* p */
        start local 2 // org.apache.lucene.geo.Tessellator$Node p
         1: .line 320
            ldc -Infinity
            dstore 3 /* qx */
        start local 3 // double qx
         2: .line 321
            aload 0 /* holeNode */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getX:()D
            dstore 5 /* hx */
        start local 5 // double hx
         3: .line 322
            aload 0 /* holeNode */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getY:()D
            dstore 7 /* hy */
        start local 7 // double hy
         4: .line 323
            aconst_null
            astore 9 /* connection */
        start local 9 // org.apache.lucene.geo.Tessellator$Node connection
         5: .line 328
      StackMap locals: org.apache.lucene.geo.Tessellator$Node org.apache.lucene.geo.Tessellator$Node org.apache.lucene.geo.Tessellator$Node double double double org.apache.lucene.geo.Tessellator$Node
      StackMap stack:
            dload 7 /* hy */
            aload 2 /* p */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getY:()D
            dcmpg
            ifgt 15
            dload 7 /* hy */
            aload 2 /* p */
            getfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getY:()D
            dcmpl
            iflt 15
            aload 2 /* p */
            getfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getY:()D
            aload 2 /* p */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getY:()D
            dcmpl
            ifeq 15
         6: .line 329
            aload 2 /* p */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getX:()D
            dload 7 /* hy */
            aload 2 /* p */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getY:()D
            dsub
            aload 2 /* p */
            getfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getX:()D
            aload 2 /* p */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getX:()D
            dsub
            dmul
            aload 2 /* p */
            getfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getY:()D
            aload 2 /* p */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getY:()D
            dsub
            ddiv
            dadd
            dstore 10 /* x */
        start local 10 // double x
         7: .line 330
            dload 10 /* x */
            dload 5 /* hx */
            dcmpg
            ifgt 15
            dload 10 /* x */
            dload 3 /* qx */
            dcmpl
            ifle 15
         8: .line 331
            dload 10 /* x */
            dstore 3 /* qx */
         9: .line 332
            dload 10 /* x */
            dload 5 /* hx */
            dcmpl
            ifne 12
        10: .line 333
            dload 7 /* hy */
            aload 2 /* p */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getY:()D
            dcmpl
            ifne 11
            aload 2 /* p */
            areturn
        11: .line 334
      StackMap locals: double
      StackMap stack:
            dload 7 /* hy */
            aload 2 /* p */
            getfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getY:()D
            dcmpl
            ifne 12
            aload 2 /* p */
            getfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
            areturn
        12: .line 336
      StackMap locals:
      StackMap stack:
            aload 2 /* p */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getX:()D
            aload 2 /* p */
            getfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getX:()D
            dcmpg
            ifge 13
            aload 2 /* p */
            goto 14
      StackMap locals:
      StackMap stack:
        13: aload 2 /* p */
            getfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
      StackMap locals:
      StackMap stack: org.apache.lucene.geo.Tessellator$Node
        14: astore 9 /* connection */
        end local 10 // double x
        15: .line 339
      StackMap locals:
      StackMap stack:
            aload 2 /* p */
            getfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
            astore 2 /* p */
        16: .line 340
            aload 2 /* p */
            aload 1 /* outerNode */
            if_acmpne 5
        17: .line 343
            aload 9 /* connection */
            ifnonnull 19
        18: .line 344
            aconst_null
            areturn
        19: .line 345
      StackMap locals:
      StackMap stack:
            dload 5 /* hx */
            dload 3 /* qx */
            dcmpl
            ifne 21
        20: .line 346
            aload 9 /* connection */
            getfield org.apache.lucene.geo.Tessellator$Node.previous:Lorg/apache/lucene/geo/Tessellator$Node;
            areturn
        21: .line 352
      StackMap locals:
      StackMap stack:
            aload 9 /* connection */
            astore 10 /* stop */
        start local 10 // org.apache.lucene.geo.Tessellator$Node stop
        22: .line 353
            aload 9 /* connection */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getX:()D
            dstore 11 /* mx */
        start local 11 // double mx
        23: .line 354
            aload 9 /* connection */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getY:()D
            dstore 13 /* my */
        start local 13 // double my
        24: .line 355
            ldc Infinity
            dstore 15 /* tanMin */
        start local 15 // double tanMin
        25: .line 357
            aload 9 /* connection */
            getfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
            astore 2 /* p */
        26: .line 359
            goto 47
        27: .line 360
      StackMap locals: org.apache.lucene.geo.Tessellator$Node org.apache.lucene.geo.Tessellator$Node org.apache.lucene.geo.Tessellator$Node double double double org.apache.lucene.geo.Tessellator$Node org.apache.lucene.geo.Tessellator$Node double double double
      StackMap stack:
            dload 5 /* hx */
            aload 2 /* p */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getX:()D
            dcmpl
            iflt 46
            aload 2 /* p */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getX:()D
            dload 11 /* mx */
            dcmpl
            iflt 46
            dload 5 /* hx */
            aload 2 /* p */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getX:()D
            dcmpl
            ifeq 46
        28: .line 361
            aload 2 /* p */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getX:()D
            aload 2 /* p */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getY:()D
            dload 7 /* hy */
            dload 13 /* my */
            dcmpg
            ifge 29
            dload 5 /* hx */
            goto 30
      StackMap locals: org.apache.lucene.geo.Tessellator$Node org.apache.lucene.geo.Tessellator$Node org.apache.lucene.geo.Tessellator$Node double double double org.apache.lucene.geo.Tessellator$Node org.apache.lucene.geo.Tessellator$Node double double double
      StackMap stack: double double
        29: dload 3 /* qx */
      StackMap locals: org.apache.lucene.geo.Tessellator$Node org.apache.lucene.geo.Tessellator$Node org.apache.lucene.geo.Tessellator$Node double double double org.apache.lucene.geo.Tessellator$Node org.apache.lucene.geo.Tessellator$Node double double double
      StackMap stack: double double double
        30: dload 7 /* hy */
            dload 11 /* mx */
            dload 13 /* my */
            dload 7 /* hy */
            dload 13 /* my */
            dcmpg
            ifge 31
            dload 3 /* qx */
            goto 32
      StackMap locals: org.apache.lucene.geo.Tessellator$Node org.apache.lucene.geo.Tessellator$Node org.apache.lucene.geo.Tessellator$Node double double double org.apache.lucene.geo.Tessellator$Node org.apache.lucene.geo.Tessellator$Node double double double
      StackMap stack: double double double double double double
        31: dload 5 /* hx */
      StackMap locals: org.apache.lucene.geo.Tessellator$Node org.apache.lucene.geo.Tessellator$Node org.apache.lucene.geo.Tessellator$Node double double double org.apache.lucene.geo.Tessellator$Node org.apache.lucene.geo.Tessellator$Node double double double
      StackMap stack: double double double double double double double
        32: dload 7 /* hy */
            invokestatic org.apache.lucene.geo.Tessellator.pointInEar:(DDDDDDDD)Z
            ifeq 46
        33: .line 362
            dload 7 /* hy */
            aload 2 /* p */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getY:()D
            dsub
            invokestatic java.lang.Math.abs:(D)D
            dload 5 /* hx */
            aload 2 /* p */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getX:()D
            dsub
            ddiv
            dstore 17 /* tan */
        start local 17 // double tan
        34: .line 363
            aload 2 /* p */
            aload 9 /* connection */
            invokestatic org.apache.lucene.geo.Tessellator.isVertexEquals:(Lorg/apache/lucene/geo/Tessellator$Node;Lorg/apache/lucene/geo/Tessellator$Node;)Z
            ifeq 42
            aload 2 /* p */
            aload 0 /* holeNode */
            invokestatic org.apache.lucene.geo.Tessellator.isLocallyInside:(Lorg/apache/lucene/geo/Tessellator$Node;Lorg/apache/lucene/geo/Tessellator$Node;)Z
            ifeq 42
        35: .line 366
            aload 2 /* p */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getX:()D
            aload 2 /* p */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getY:()D
            aload 0 /* holeNode */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getX:()D
            aload 0 /* holeNode */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getY:()D
        36: .line 367
            aload 9 /* connection */
            getfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getX:()D
            aload 9 /* connection */
            getfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getY:()D
            aload 9 /* connection */
            getfield org.apache.lucene.geo.Tessellator$Node.previous:Lorg/apache/lucene/geo/Tessellator$Node;
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getX:()D
            aload 9 /* connection */
            getfield org.apache.lucene.geo.Tessellator$Node.previous:Lorg/apache/lucene/geo/Tessellator$Node;
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getY:()D
        37: .line 366
            invokestatic org.apache.lucene.geo.GeoUtils.lineCrossesLine:(DDDDDDDD)Z
            istore 19 /* crosses */
        start local 19 // boolean crosses
        38: .line 368
            iload 19 /* crosses */
            ifne 46
        39: .line 369
            aload 2 /* p */
            astore 9 /* connection */
        40: .line 370
            dload 17 /* tan */
            dstore 15 /* tanMin */
        end local 19 // boolean crosses
        41: .line 372
            goto 46
      StackMap locals: double
      StackMap stack:
        42: dload 17 /* tan */
            dload 15 /* tanMin */
            dcmpg
            iflt 43
            dload 17 /* tan */
            dload 15 /* tanMin */
            dcmpl
            ifne 46
            aload 2 /* p */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getX:()D
            aload 9 /* connection */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getX:()D
            dcmpl
            ifle 46
      StackMap locals:
      StackMap stack:
        43: aload 2 /* p */
            aload 0 /* holeNode */
            invokestatic org.apache.lucene.geo.Tessellator.isLocallyInside:(Lorg/apache/lucene/geo/Tessellator$Node;Lorg/apache/lucene/geo/Tessellator$Node;)Z
            ifeq 46
        44: .line 373
            aload 2 /* p */
            astore 9 /* connection */
        45: .line 374
            dload 17 /* tan */
            dstore 15 /* tanMin */
        end local 17 // double tan
        46: .line 377
      StackMap locals:
      StackMap stack:
            aload 2 /* p */
            getfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
            astore 2 /* p */
        47: .line 359
      StackMap locals:
      StackMap stack:
            aload 2 /* p */
            aload 10 /* stop */
            if_acmpne 27
        48: .line 380
            aload 9 /* connection */
            areturn
        end local 15 // double tanMin
        end local 13 // double my
        end local 11 // double mx
        end local 10 // org.apache.lucene.geo.Tessellator$Node stop
        end local 9 // org.apache.lucene.geo.Tessellator$Node connection
        end local 7 // double hy
        end local 5 // double hx
        end local 3 // double qx
        end local 2 // org.apache.lucene.geo.Tessellator$Node p
        end local 1 // org.apache.lucene.geo.Tessellator$Node outerNode
        end local 0 // org.apache.lucene.geo.Tessellator$Node holeNode
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   49     0    holeNode  Lorg/apache/lucene/geo/Tessellator$Node;
            0   49     1   outerNode  Lorg/apache/lucene/geo/Tessellator$Node;
            1   49     2           p  Lorg/apache/lucene/geo/Tessellator$Node;
            2   49     3          qx  D
            3   49     5          hx  D
            4   49     7          hy  D
            5   49     9  connection  Lorg/apache/lucene/geo/Tessellator$Node;
            7   15    10           x  D
           22   49    10        stop  Lorg/apache/lucene/geo/Tessellator$Node;
           23   49    11          mx  D
           24   49    13          my  D
           25   49    15      tanMin  D
           34   46    17         tan  D
           38   41    19     crosses  Z
    MethodParameters:
           Name  Flags
      holeNode   final
      outerNode  final

  private static org.apache.lucene.geo.Tessellator$Node getSharedVertex(org.apache.lucene.geo.Tessellator$Node, org.apache.lucene.geo.Tessellator$Node);
    descriptor: (Lorg/apache/lucene/geo/Tessellator$Node;Lorg/apache/lucene/geo/Tessellator$Node;)Lorg/apache/lucene/geo/Tessellator$Node;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=16, locals=4, args_size=2
        start local 0 // org.apache.lucene.geo.Tessellator$Node polygon
        start local 1 // org.apache.lucene.geo.Tessellator$Node vertex
         0: .line 385
            aload 0 /* polygon */
            astore 2 /* next */
        start local 2 // org.apache.lucene.geo.Tessellator$Node next
         1: .line 387
      StackMap locals: org.apache.lucene.geo.Tessellator$Node
      StackMap stack:
            aload 2 /* next */
            aload 1 /* vertex */
            invokestatic org.apache.lucene.geo.Tessellator.isVertexEquals:(Lorg/apache/lucene/geo/Tessellator$Node;Lorg/apache/lucene/geo/Tessellator$Node;)Z
            ifeq 7
         2: .line 389
            aload 2 /* next */
            getfield org.apache.lucene.geo.Tessellator$Node.previous:Lorg/apache/lucene/geo/Tessellator$Node;
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getX:()D
            aload 2 /* next */
            getfield org.apache.lucene.geo.Tessellator$Node.previous:Lorg/apache/lucene/geo/Tessellator$Node;
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getY:()D
            aload 1 /* vertex */
            getfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getX:()D
            aload 1 /* vertex */
            getfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getY:()D
         3: .line 390
            aload 2 /* next */
            getfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getX:()D
            aload 2 /* next */
            getfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getY:()D
            aload 1 /* vertex */
            getfield org.apache.lucene.geo.Tessellator$Node.previous:Lorg/apache/lucene/geo/Tessellator$Node;
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getX:()D
            aload 1 /* vertex */
            getfield org.apache.lucene.geo.Tessellator$Node.previous:Lorg/apache/lucene/geo/Tessellator$Node;
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getY:()D
         4: .line 389
            invokestatic org.apache.lucene.geo.GeoUtils.lineCrossesLine:(DDDDDDDD)Z
            istore 3 /* crosses */
        start local 3 // boolean crosses
         5: .line 391
            iload 3 /* crosses */
            ifne 7
         6: .line 392
            aload 2 /* next */
            areturn
        end local 3 // boolean crosses
         7: .line 395
      StackMap locals:
      StackMap stack:
            aload 2 /* next */
            getfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
            astore 2 /* next */
         8: .line 396
            aload 2 /* next */
            aload 0 /* polygon */
            if_acmpne 1
         9: .line 397
            aconst_null
            areturn
        end local 2 // org.apache.lucene.geo.Tessellator$Node next
        end local 1 // org.apache.lucene.geo.Tessellator$Node vertex
        end local 0 // org.apache.lucene.geo.Tessellator$Node polygon
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   10     0  polygon  Lorg/apache/lucene/geo/Tessellator$Node;
            0   10     1   vertex  Lorg/apache/lucene/geo/Tessellator$Node;
            1   10     2     next  Lorg/apache/lucene/geo/Tessellator$Node;
            5    7     3  crosses  Z
    MethodParameters:
         Name  Flags
      polygon  final
      vertex   final

  private static final org.apache.lucene.geo.Tessellator$Node fetchLeftmost(org.apache.lucene.geo.Tessellator$Node);
    descriptor: (Lorg/apache/lucene/geo/Tessellator$Node;)Lorg/apache/lucene/geo/Tessellator$Node;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // org.apache.lucene.geo.Tessellator$Node start
         0: .line 402
            aload 0 /* start */
            astore 1 /* node */
        start local 1 // org.apache.lucene.geo.Tessellator$Node node
         1: .line 403
            aload 0 /* start */
            astore 2 /* leftMost */
        start local 2 // org.apache.lucene.geo.Tessellator$Node leftMost
         2: .line 406
      StackMap locals: org.apache.lucene.geo.Tessellator$Node org.apache.lucene.geo.Tessellator$Node
      StackMap stack:
            aload 1 /* node */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getX:()D
            aload 2 /* leftMost */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getX:()D
            dcmpg
            iflt 3
            aload 1 /* node */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getX:()D
            aload 2 /* leftMost */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getX:()D
            dcmpl
            ifne 4
            aload 1 /* node */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getY:()D
            aload 2 /* leftMost */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getY:()D
            dcmpg
            ifge 4
         3: .line 408
      StackMap locals:
      StackMap stack:
            aload 1 /* node */
            astore 2 /* leftMost */
         4: .line 411
      StackMap locals:
      StackMap stack:
            aload 1 /* node */
            getfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
            astore 1 /* node */
         5: .line 412
            aload 1 /* node */
            aload 0 /* start */
            if_acmpne 2
         6: .line 415
            aload 2 /* leftMost */
            areturn
        end local 2 // org.apache.lucene.geo.Tessellator$Node leftMost
        end local 1 // org.apache.lucene.geo.Tessellator$Node node
        end local 0 // org.apache.lucene.geo.Tessellator$Node start
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0     start  Lorg/apache/lucene/geo/Tessellator$Node;
            1    7     1      node  Lorg/apache/lucene/geo/Tessellator$Node;
            2    7     2  leftMost  Lorg/apache/lucene/geo/Tessellator$Node;
    MethodParameters:
       Name  Flags
      start  final

  private static final java.util.List<org.apache.lucene.geo.Tessellator$Triangle> earcutLinkedList(, org.apache.lucene.geo.Tessellator$Node, java.util.List<org.apache.lucene.geo.Tessellator$Triangle>, org.apache.lucene.geo.Tessellator$State, boolean);
    descriptor: (Ljava/lang/Object;Lorg/apache/lucene/geo/Tessellator$Node;Ljava/util/List;Lorg/apache/lucene/geo/Tessellator$State;Z)Ljava/util/List;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Code:
      stack=12, locals=12, args_size=5
        start local 0 // java.lang.Object polygon
        start local 1 // org.apache.lucene.geo.Tessellator$Node currEar
        start local 2 // java.util.List tessellation
        start local 3 // org.apache.lucene.geo.Tessellator$State state
        start local 4 // boolean mortonOptimized
         0: .line 422
      StackMap locals:
      StackMap stack:
            aload 1 /* currEar */
            ifnull 1
            aload 1 /* currEar */
            getfield org.apache.lucene.geo.Tessellator$Node.previous:Lorg/apache/lucene/geo/Tessellator$Node;
            aload 1 /* currEar */
            getfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
            if_acmpne 2
         1: .line 423
      StackMap locals:
      StackMap stack:
            aload 2 /* tessellation */
            areturn
         2: .line 426
      StackMap locals:
      StackMap stack:
            aload 1 /* currEar */
            astore 5 /* stop */
        start local 5 // org.apache.lucene.geo.Tessellator$Node stop
         3: .line 432
      StackMap locals: org.apache.lucene.geo.Tessellator$Node
      StackMap stack:
            aload 1 /* currEar */
            getfield org.apache.lucene.geo.Tessellator$Node.previous:Lorg/apache/lucene/geo/Tessellator$Node;
            astore 6 /* prevNode */
        start local 6 // org.apache.lucene.geo.Tessellator$Node prevNode
         4: .line 433
            aload 1 /* currEar */
            getfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
            astore 7 /* nextNode */
        start local 7 // org.apache.lucene.geo.Tessellator$Node nextNode
         5: .line 435
            aload 6 /* prevNode */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getX:()D
            aload 6 /* prevNode */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getY:()D
            aload 1 /* currEar */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getX:()D
            aload 1 /* currEar */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getY:()D
            aload 7 /* nextNode */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getX:()D
            aload 7 /* nextNode */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getY:()D
            invokestatic org.apache.lucene.geo.Tessellator.area:(DDDDDD)D
            dconst_0
            dcmpl
            iflt 6
            iconst_1
            goto 7
      StackMap locals: org.apache.lucene.geo.Tessellator$Node org.apache.lucene.geo.Tessellator$Node
      StackMap stack:
         6: iconst_0
      StackMap locals:
      StackMap stack: int
         7: istore 8 /* isReflex */
        start local 8 // boolean isReflex
         8: .line 436
            iload 8 /* isReflex */
            ifne 17
            aload 1 /* currEar */
            iload 4 /* mortonOptimized */
            invokestatic org.apache.lucene.geo.Tessellator.isEar:(Lorg/apache/lucene/geo/Tessellator$Node;Z)Z
            ifeq 17
         9: .line 438
            aload 6 /* prevNode */
            getfield org.apache.lucene.geo.Tessellator$Node.isNextEdgeFromPolygon:Z
            istore 9 /* abFromPolygon */
        start local 9 // boolean abFromPolygon
        10: .line 439
            aload 1 /* currEar */
            getfield org.apache.lucene.geo.Tessellator$Node.isNextEdgeFromPolygon:Z
            istore 10 /* bcFromPolygon */
        start local 10 // boolean bcFromPolygon
        11: .line 440
            aload 6 /* prevNode */
            aload 7 /* nextNode */
            iload 4 /* mortonOptimized */
            invokestatic org.apache.lucene.geo.Tessellator.isEdgeFromPolygon:(Lorg/apache/lucene/geo/Tessellator$Node;Lorg/apache/lucene/geo/Tessellator$Node;Z)Z
            istore 11 /* caFromPolygon */
        start local 11 // boolean caFromPolygon
        12: .line 442
            aload 2 /* tessellation */
            new org.apache.lucene.geo.Tessellator$Triangle
            dup
            aload 6 /* prevNode */
            iload 9 /* abFromPolygon */
            aload 1 /* currEar */
            iload 10 /* bcFromPolygon */
            aload 7 /* nextNode */
            iload 11 /* caFromPolygon */
            invokespecial org.apache.lucene.geo.Tessellator$Triangle.<init>:(Lorg/apache/lucene/geo/Tessellator$Node;ZLorg/apache/lucene/geo/Tessellator$Node;ZLorg/apache/lucene/geo/Tessellator$Node;Z)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        13: .line 444
            aload 1 /* currEar */
            iload 11 /* caFromPolygon */
            invokestatic org.apache.lucene.geo.Tessellator.removeNode:(Lorg/apache/lucene/geo/Tessellator$Node;Z)V
        14: .line 447
            aload 7 /* nextNode */
            getfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
            astore 1 /* currEar */
        15: .line 448
            aload 7 /* nextNode */
            getfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
            astore 5 /* stop */
        16: .line 449
            goto 29
        end local 11 // boolean caFromPolygon
        end local 10 // boolean bcFromPolygon
        end local 9 // boolean abFromPolygon
        17: .line 451
      StackMap locals: int
      StackMap stack:
            aload 7 /* nextNode */
            astore 1 /* currEar */
        18: .line 453
            aload 1 /* currEar */
            aload 5 /* stop */
            if_acmpne 29
        19: .line 454
            invokestatic org.apache.lucene.geo.Tessellator.$SWITCH_TABLE$org$apache$lucene$geo$Tessellator$State:()[I
            aload 3 /* state */
            invokevirtual org.apache.lucene.geo.Tessellator$State.ordinal:()I
            iaload
            tableswitch { // 1 - 3
                    1: 20
                    2: 23
                    3: 26
              default: 28
          }
        20: .line 457
      StackMap locals:
      StackMap stack:
            aload 1 /* currEar */
            aconst_null
            invokestatic org.apache.lucene.geo.Tessellator.filterPoints:(Lorg/apache/lucene/geo/Tessellator$Node;Lorg/apache/lucene/geo/Tessellator$Node;)Lorg/apache/lucene/geo/Tessellator$Node;
            astore 1 /* currEar */
        21: .line 458
            getstatic org.apache.lucene.geo.Tessellator$State.CURE:Lorg/apache/lucene/geo/Tessellator$State;
            astore 3 /* state */
        22: .line 459
            goto 0
        23: .line 462
      StackMap locals:
      StackMap stack:
            aload 1 /* currEar */
            aload 2 /* tessellation */
            iload 4 /* mortonOptimized */
            invokestatic org.apache.lucene.geo.Tessellator.cureLocalIntersections:(Lorg/apache/lucene/geo/Tessellator$Node;Ljava/util/List;Z)Lorg/apache/lucene/geo/Tessellator$Node;
            astore 1 /* currEar */
        24: .line 463
            getstatic org.apache.lucene.geo.Tessellator$State.SPLIT:Lorg/apache/lucene/geo/Tessellator$State;
            astore 3 /* state */
        25: .line 464
            goto 0
        26: .line 467
      StackMap locals:
      StackMap stack:
            aload 0 /* polygon */
            aload 1 /* currEar */
            aload 2 /* tessellation */
            iload 4 /* mortonOptimized */
            invokestatic org.apache.lucene.geo.Tessellator.splitEarcut:(Ljava/lang/Object;Lorg/apache/lucene/geo/Tessellator$Node;Ljava/util/List;Z)Z
            ifne 30
        27: .line 469
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unable to Tessellate shape ["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* polygon */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "]. Possible malformed shape detected."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        28: .line 473
      StackMap locals:
      StackMap stack:
            goto 30
        end local 8 // boolean isReflex
        29: .line 475
      StackMap locals:
      StackMap stack:
            aload 1 /* currEar */
            getfield org.apache.lucene.geo.Tessellator$Node.previous:Lorg/apache/lucene/geo/Tessellator$Node;
            aload 1 /* currEar */
            getfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
            if_acmpne 3
        end local 7 // org.apache.lucene.geo.Tessellator$Node nextNode
        end local 6 // org.apache.lucene.geo.Tessellator$Node prevNode
        end local 5 // org.apache.lucene.geo.Tessellator$Node stop
        30: .line 479
      StackMap locals:
      StackMap stack:
            aload 2 /* tessellation */
            areturn
        end local 4 // boolean mortonOptimized
        end local 3 // org.apache.lucene.geo.Tessellator$State state
        end local 2 // java.util.List tessellation
        end local 1 // org.apache.lucene.geo.Tessellator$Node currEar
        end local 0 // java.lang.Object polygon
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   31     0          polygon  Ljava/lang/Object;
            0   31     1          currEar  Lorg/apache/lucene/geo/Tessellator$Node;
            0   31     2     tessellation  Ljava/util/List<Lorg/apache/lucene/geo/Tessellator$Triangle;>;
            0   31     3            state  Lorg/apache/lucene/geo/Tessellator$State;
            0   31     4  mortonOptimized  Z
            3   30     5             stop  Lorg/apache/lucene/geo/Tessellator$Node;
            4   30     6         prevNode  Lorg/apache/lucene/geo/Tessellator$Node;
            5   30     7         nextNode  Lorg/apache/lucene/geo/Tessellator$Node;
            8   29     8         isReflex  Z
           10   17     9    abFromPolygon  Z
           11   17    10    bcFromPolygon  Z
           12   17    11    caFromPolygon  Z
    Signature: (Ljava/lang/Object;Lorg/apache/lucene/geo/Tessellator$Node;Ljava/util/List<Lorg/apache/lucene/geo/Tessellator$Triangle;>;Lorg/apache/lucene/geo/Tessellator$State;Z)Ljava/util/List<Lorg/apache/lucene/geo/Tessellator$Triangle;>;
    MethodParameters:
                 Name  Flags
      polygon          
      currEar          
      tessellation     final
      state            
      mortonOptimized  final

  private static final boolean isEar(org.apache.lucene.geo.Tessellator$Node, boolean);
    descriptor: (Lorg/apache/lucene/geo/Tessellator$Node;Z)Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Code:
      stack=16, locals=3, args_size=2
        start local 0 // org.apache.lucene.geo.Tessellator$Node ear
        start local 1 // boolean mortonOptimized
         0: .line 484
            iload 1 /* mortonOptimized */
            ifeq 2
         1: .line 485
            aload 0 /* ear */
            invokestatic org.apache.lucene.geo.Tessellator.mortonIsEar:(Lorg/apache/lucene/geo/Tessellator$Node;)Z
            ireturn
         2: .line 489
      StackMap locals:
      StackMap stack:
            aload 0 /* ear */
            getfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
            getfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
            astore 2 /* node */
        start local 2 // org.apache.lucene.geo.Tessellator$Node node
         3: .line 490
            goto 11
         4: .line 491
      StackMap locals: org.apache.lucene.geo.Tessellator$Node
      StackMap stack:
            aload 2 /* node */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getX:()D
            aload 2 /* node */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getY:()D
            aload 0 /* ear */
            getfield org.apache.lucene.geo.Tessellator$Node.previous:Lorg/apache/lucene/geo/Tessellator$Node;
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getX:()D
            aload 0 /* ear */
            getfield org.apache.lucene.geo.Tessellator$Node.previous:Lorg/apache/lucene/geo/Tessellator$Node;
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getY:()D
            aload 0 /* ear */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getX:()D
            aload 0 /* ear */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getY:()D
            aload 0 /* ear */
            getfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getX:()D
            aload 0 /* ear */
            getfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getY:()D
            invokestatic org.apache.lucene.geo.Tessellator.pointInEar:(DDDDDDDD)Z
            ifeq 10
         5: .line 492
            aload 2 /* node */
            getfield org.apache.lucene.geo.Tessellator$Node.previous:Lorg/apache/lucene/geo/Tessellator$Node;
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getX:()D
            aload 2 /* node */
            getfield org.apache.lucene.geo.Tessellator$Node.previous:Lorg/apache/lucene/geo/Tessellator$Node;
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getY:()D
            aload 2 /* node */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getX:()D
            aload 2 /* node */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getY:()D
         6: .line 493
            aload 2 /* node */
            getfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getX:()D
            aload 2 /* node */
            getfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getY:()D
         7: .line 492
            invokestatic org.apache.lucene.geo.Tessellator.area:(DDDDDD)D
         8: .line 493
            dconst_0
            dcmpl
            iflt 10
         9: .line 494
            iconst_0
            ireturn
        10: .line 496
      StackMap locals:
      StackMap stack:
            aload 2 /* node */
            getfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
            astore 2 /* node */
        11: .line 490
      StackMap locals:
      StackMap stack:
            aload 2 /* node */
            aload 0 /* ear */
            getfield org.apache.lucene.geo.Tessellator$Node.previous:Lorg/apache/lucene/geo/Tessellator$Node;
            if_acmpne 4
        12: .line 498
            iconst_1
            ireturn
        end local 2 // org.apache.lucene.geo.Tessellator$Node node
        end local 1 // boolean mortonOptimized
        end local 0 // org.apache.lucene.geo.Tessellator$Node ear
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   13     0              ear  Lorg/apache/lucene/geo/Tessellator$Node;
            0   13     1  mortonOptimized  Z
            3   13     2             node  Lorg/apache/lucene/geo/Tessellator$Node;
    MethodParameters:
                 Name  Flags
      ear              final
      mortonOptimized  final

  private static final boolean mortonIsEar(org.apache.lucene.geo.Tessellator$Node);
    descriptor: (Lorg/apache/lucene/geo/Tessellator$Node;)Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Code:
      stack=16, locals=11, args_size=1
        start local 0 // org.apache.lucene.geo.Tessellator$Node ear
         0: .line 504
            aload 0 /* ear */
            getfield org.apache.lucene.geo.Tessellator$Node.previous:Lorg/apache/lucene/geo/Tessellator$Node;
            getfield org.apache.lucene.geo.Tessellator$Node.x:I
            aload 0 /* ear */
            getfield org.apache.lucene.geo.Tessellator$Node.x:I
            invokestatic java.lang.StrictMath.min:(II)I
            aload 0 /* ear */
            getfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
            getfield org.apache.lucene.geo.Tessellator$Node.x:I
            invokestatic java.lang.StrictMath.min:(II)I
            ldc -2147483648
            ixor
            istore 1 /* minTX */
        start local 1 // int minTX
         1: .line 505
            aload 0 /* ear */
            getfield org.apache.lucene.geo.Tessellator$Node.previous:Lorg/apache/lucene/geo/Tessellator$Node;
            getfield org.apache.lucene.geo.Tessellator$Node.y:I
            aload 0 /* ear */
            getfield org.apache.lucene.geo.Tessellator$Node.y:I
            invokestatic java.lang.StrictMath.min:(II)I
            aload 0 /* ear */
            getfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
            getfield org.apache.lucene.geo.Tessellator$Node.y:I
            invokestatic java.lang.StrictMath.min:(II)I
            ldc -2147483648
            ixor
            istore 2 /* minTY */
        start local 2 // int minTY
         2: .line 506
            aload 0 /* ear */
            getfield org.apache.lucene.geo.Tessellator$Node.previous:Lorg/apache/lucene/geo/Tessellator$Node;
            getfield org.apache.lucene.geo.Tessellator$Node.x:I
            aload 0 /* ear */
            getfield org.apache.lucene.geo.Tessellator$Node.x:I
            invokestatic java.lang.StrictMath.max:(II)I
            aload 0 /* ear */
            getfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
            getfield org.apache.lucene.geo.Tessellator$Node.x:I
            invokestatic java.lang.StrictMath.max:(II)I
            ldc -2147483648
            ixor
            istore 3 /* maxTX */
        start local 3 // int maxTX
         3: .line 507
            aload 0 /* ear */
            getfield org.apache.lucene.geo.Tessellator$Node.previous:Lorg/apache/lucene/geo/Tessellator$Node;
            getfield org.apache.lucene.geo.Tessellator$Node.y:I
            aload 0 /* ear */
            getfield org.apache.lucene.geo.Tessellator$Node.y:I
            invokestatic java.lang.StrictMath.max:(II)I
            aload 0 /* ear */
            getfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
            getfield org.apache.lucene.geo.Tessellator$Node.y:I
            invokestatic java.lang.StrictMath.max:(II)I
            ldc -2147483648
            ixor
            istore 4 /* maxTY */
        start local 4 // int maxTY
         4: .line 510
            iload 1 /* minTX */
            iload 2 /* minTY */
            invokestatic org.apache.lucene.util.BitUtil.interleave:(II)J
            lstore 5 /* minZ */
        start local 5 // long minZ
         5: .line 511
            iload 3 /* maxTX */
            iload 4 /* maxTY */
            invokestatic org.apache.lucene.util.BitUtil.interleave:(II)J
            lstore 7 /* maxZ */
        start local 7 // long maxZ
         6: .line 516
            aload 0 /* ear */
            getfield org.apache.lucene.geo.Tessellator$Node.previousZ:Lorg/apache/lucene/geo/Tessellator$Node;
            astore 9 /* p */
        start local 9 // org.apache.lucene.geo.Tessellator$Node p
         7: .line 517
            aload 0 /* ear */
            getfield org.apache.lucene.geo.Tessellator$Node.nextZ:Lorg/apache/lucene/geo/Tessellator$Node;
            astore 10 /* n */
        start local 10 // org.apache.lucene.geo.Tessellator$Node n
         8: .line 518
            goto 17
         9: .line 520
      StackMap locals: org.apache.lucene.geo.Tessellator$Node int int int int long long org.apache.lucene.geo.Tessellator$Node org.apache.lucene.geo.Tessellator$Node
      StackMap stack:
            aload 9 /* p */
            getfield org.apache.lucene.geo.Tessellator$Node.idx:I
            aload 0 /* ear */
            getfield org.apache.lucene.geo.Tessellator$Node.previous:Lorg/apache/lucene/geo/Tessellator$Node;
            getfield org.apache.lucene.geo.Tessellator$Node.idx:I
            if_icmpeq 12
            aload 9 /* p */
            getfield org.apache.lucene.geo.Tessellator$Node.idx:I
            aload 0 /* ear */
            getfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
            getfield org.apache.lucene.geo.Tessellator$Node.idx:I
            if_icmpeq 12
        10: .line 521
            aload 9 /* p */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getX:()D
            aload 9 /* p */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getY:()D
            aload 0 /* ear */
            getfield org.apache.lucene.geo.Tessellator$Node.previous:Lorg/apache/lucene/geo/Tessellator$Node;
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getX:()D
            aload 0 /* ear */
            getfield org.apache.lucene.geo.Tessellator$Node.previous:Lorg/apache/lucene/geo/Tessellator$Node;
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getY:()D
            aload 0 /* ear */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getX:()D
            aload 0 /* ear */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getY:()D
            aload 0 /* ear */
            getfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getX:()D
            aload 0 /* ear */
            getfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getY:()D
            invokestatic org.apache.lucene.geo.Tessellator.pointInEar:(DDDDDDDD)Z
            ifeq 12
        11: .line 522
            aload 9 /* p */
            getfield org.apache.lucene.geo.Tessellator$Node.previous:Lorg/apache/lucene/geo/Tessellator$Node;
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getX:()D
            aload 9 /* p */
            getfield org.apache.lucene.geo.Tessellator$Node.previous:Lorg/apache/lucene/geo/Tessellator$Node;
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getY:()D
            aload 9 /* p */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getX:()D
            aload 9 /* p */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getY:()D
            aload 9 /* p */
            getfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getX:()D
            aload 9 /* p */
            getfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getY:()D
            invokestatic org.apache.lucene.geo.Tessellator.area:(DDDDDD)D
            dconst_0
            dcmpl
            iflt 12
            iconst_0
            ireturn
        12: .line 523
      StackMap locals:
      StackMap stack:
            aload 9 /* p */
            getfield org.apache.lucene.geo.Tessellator$Node.previousZ:Lorg/apache/lucene/geo/Tessellator$Node;
            astore 9 /* p */
        13: .line 525
            aload 10 /* n */
            getfield org.apache.lucene.geo.Tessellator$Node.idx:I
            aload 0 /* ear */
            getfield org.apache.lucene.geo.Tessellator$Node.previous:Lorg/apache/lucene/geo/Tessellator$Node;
            getfield org.apache.lucene.geo.Tessellator$Node.idx:I
            if_icmpeq 16
            aload 10 /* n */
            getfield org.apache.lucene.geo.Tessellator$Node.idx:I
            aload 0 /* ear */
            getfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
            getfield org.apache.lucene.geo.Tessellator$Node.idx:I
            if_icmpeq 16
        14: .line 526
            aload 10 /* n */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getX:()D
            aload 10 /* n */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getY:()D
            aload 0 /* ear */
            getfield org.apache.lucene.geo.Tessellator$Node.previous:Lorg/apache/lucene/geo/Tessellator$Node;
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getX:()D
            aload 0 /* ear */
            getfield org.apache.lucene.geo.Tessellator$Node.previous:Lorg/apache/lucene/geo/Tessellator$Node;
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getY:()D
            aload 0 /* ear */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getX:()D
            aload 0 /* ear */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getY:()D
            aload 0 /* ear */
            getfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getX:()D
            aload 0 /* ear */
            getfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getY:()D
            invokestatic org.apache.lucene.geo.Tessellator.pointInEar:(DDDDDDDD)Z
            ifeq 16
        15: .line 527
            aload 10 /* n */
            getfield org.apache.lucene.geo.Tessellator$Node.previous:Lorg/apache/lucene/geo/Tessellator$Node;
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getX:()D
            aload 10 /* n */
            getfield org.apache.lucene.geo.Tessellator$Node.previous:Lorg/apache/lucene/geo/Tessellator$Node;
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getY:()D
            aload 10 /* n */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getX:()D
            aload 10 /* n */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getY:()D
            aload 10 /* n */
            getfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getX:()D
            aload 10 /* n */
            getfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getY:()D
            invokestatic org.apache.lucene.geo.Tessellator.area:(DDDDDD)D
            dconst_0
            dcmpl
            iflt 16
            iconst_0
            ireturn
        16: .line 528
      StackMap locals:
      StackMap stack:
            aload 10 /* n */
            getfield org.apache.lucene.geo.Tessellator$Node.nextZ:Lorg/apache/lucene/geo/Tessellator$Node;
            astore 10 /* n */
        17: .line 518
      StackMap locals:
      StackMap stack:
            aload 9 /* p */
            ifnull 26
            aload 9 /* p */
            getfield org.apache.lucene.geo.Tessellator$Node.morton:J
            lload 5 /* minZ */
            invokestatic java.lang.Long.compareUnsigned:(JJ)I
            iflt 26
        18: .line 519
            aload 10 /* n */
            ifnull 26
            aload 10 /* n */
            getfield org.apache.lucene.geo.Tessellator$Node.morton:J
            lload 7 /* maxZ */
            invokestatic java.lang.Long.compareUnsigned:(JJ)I
        19: .line 518
            ifle 9
        20: .line 532
            goto 26
        21: .line 533
      StackMap locals:
      StackMap stack:
            aload 9 /* p */
            getfield org.apache.lucene.geo.Tessellator$Node.idx:I
            aload 0 /* ear */
            getfield org.apache.lucene.geo.Tessellator$Node.previous:Lorg/apache/lucene/geo/Tessellator$Node;
            getfield org.apache.lucene.geo.Tessellator$Node.idx:I
            if_icmpeq 25
            aload 9 /* p */
            getfield org.apache.lucene.geo.Tessellator$Node.idx:I
            aload 0 /* ear */
            getfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
            getfield org.apache.lucene.geo.Tessellator$Node.idx:I
            if_icmpeq 25
        22: .line 534
            aload 9 /* p */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getX:()D
            aload 9 /* p */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getY:()D
            aload 0 /* ear */
            getfield org.apache.lucene.geo.Tessellator$Node.previous:Lorg/apache/lucene/geo/Tessellator$Node;
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getX:()D
            aload 0 /* ear */
            getfield org.apache.lucene.geo.Tessellator$Node.previous:Lorg/apache/lucene/geo/Tessellator$Node;
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getY:()D
            aload 0 /* ear */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getX:()D
            aload 0 /* ear */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getY:()D
            aload 0 /* ear */
            getfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getX:()D
            aload 0 /* ear */
            getfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getY:()D
            invokestatic org.apache.lucene.geo.Tessellator.pointInEar:(DDDDDDDD)Z
            ifeq 25
        23: .line 535
            aload 9 /* p */
            getfield org.apache.lucene.geo.Tessellator$Node.previous:Lorg/apache/lucene/geo/Tessellator$Node;
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getX:()D
            aload 9 /* p */
            getfield org.apache.lucene.geo.Tessellator$Node.previous:Lorg/apache/lucene/geo/Tessellator$Node;
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getY:()D
            aload 9 /* p */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getX:()D
            aload 9 /* p */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getY:()D
            aload 9 /* p */
            getfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getX:()D
            aload 9 /* p */
            getfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getY:()D
            invokestatic org.apache.lucene.geo.Tessellator.area:(DDDDDD)D
            dconst_0
            dcmpl
            iflt 25
        24: .line 536
            iconst_0
            ireturn
        25: .line 538
      StackMap locals:
      StackMap stack:
            aload 9 /* p */
            getfield org.apache.lucene.geo.Tessellator$Node.previousZ:Lorg/apache/lucene/geo/Tessellator$Node;
            astore 9 /* p */
        26: .line 532
      StackMap locals:
      StackMap stack:
            aload 9 /* p */
            ifnull 33
            aload 9 /* p */
            getfield org.apache.lucene.geo.Tessellator$Node.morton:J
            lload 5 /* minZ */
            invokestatic java.lang.Long.compareUnsigned:(JJ)I
            ifge 21
        27: .line 541
            goto 33
        28: .line 543
      StackMap locals:
      StackMap stack:
            aload 10 /* n */
            getfield org.apache.lucene.geo.Tessellator$Node.idx:I
            aload 0 /* ear */
            getfield org.apache.lucene.geo.Tessellator$Node.previous:Lorg/apache/lucene/geo/Tessellator$Node;
            getfield org.apache.lucene.geo.Tessellator$Node.idx:I
            if_icmpeq 32
            aload 10 /* n */
            getfield org.apache.lucene.geo.Tessellator$Node.idx:I
            aload 0 /* ear */
            getfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
            getfield org.apache.lucene.geo.Tessellator$Node.idx:I
            if_icmpeq 32
        29: .line 544
            aload 10 /* n */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getX:()D
            aload 10 /* n */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getY:()D
            aload 0 /* ear */
            getfield org.apache.lucene.geo.Tessellator$Node.previous:Lorg/apache/lucene/geo/Tessellator$Node;
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getX:()D
            aload 0 /* ear */
            getfield org.apache.lucene.geo.Tessellator$Node.previous:Lorg/apache/lucene/geo/Tessellator$Node;
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getY:()D
            aload 0 /* ear */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getX:()D
            aload 0 /* ear */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getY:()D
            aload 0 /* ear */
            getfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getX:()D
            aload 0 /* ear */
            getfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getY:()D
            invokestatic org.apache.lucene.geo.Tessellator.pointInEar:(DDDDDDDD)Z
            ifeq 32
        30: .line 545
            aload 10 /* n */
            getfield org.apache.lucene.geo.Tessellator$Node.previous:Lorg/apache/lucene/geo/Tessellator$Node;
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getX:()D
            aload 10 /* n */
            getfield org.apache.lucene.geo.Tessellator$Node.previous:Lorg/apache/lucene/geo/Tessellator$Node;
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getY:()D
            aload 10 /* n */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getX:()D
            aload 10 /* n */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getY:()D
            aload 10 /* n */
            getfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getX:()D
            aload 10 /* n */
            getfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getY:()D
            invokestatic org.apache.lucene.geo.Tessellator.area:(DDDDDD)D
            dconst_0
            dcmpl
            iflt 32
        31: .line 546
            iconst_0
            ireturn
        32: .line 548
      StackMap locals:
      StackMap stack:
            aload 10 /* n */
            getfield org.apache.lucene.geo.Tessellator$Node.nextZ:Lorg/apache/lucene/geo/Tessellator$Node;
            astore 10 /* n */
        33: .line 541
      StackMap locals:
      StackMap stack:
            aload 10 /* n */
            ifnull 36
        34: .line 542
            aload 10 /* n */
            getfield org.apache.lucene.geo.Tessellator$Node.morton:J
            lload 7 /* maxZ */
            invokestatic java.lang.Long.compareUnsigned:(JJ)I
        35: .line 541
            ifle 28
        36: .line 550
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 10 // org.apache.lucene.geo.Tessellator$Node n
        end local 9 // org.apache.lucene.geo.Tessellator$Node p
        end local 7 // long maxZ
        end local 5 // long minZ
        end local 4 // int maxTY
        end local 3 // int maxTX
        end local 2 // int minTY
        end local 1 // int minTX
        end local 0 // org.apache.lucene.geo.Tessellator$Node ear
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   37     0    ear  Lorg/apache/lucene/geo/Tessellator$Node;
            1   37     1  minTX  I
            2   37     2  minTY  I
            3   37     3  maxTX  I
            4   37     4  maxTY  I
            5   37     5   minZ  J
            6   37     7   maxZ  J
            7   37     9      p  Lorg/apache/lucene/geo/Tessellator$Node;
            8   37    10      n  Lorg/apache/lucene/geo/Tessellator$Node;
    MethodParameters:
      Name  Flags
      ear   final

  private static final org.apache.lucene.geo.Tessellator$Node cureLocalIntersections(org.apache.lucene.geo.Tessellator$Node, java.util.List<org.apache.lucene.geo.Tessellator$Triangle>, boolean);
    descriptor: (Lorg/apache/lucene/geo/Tessellator$Node;Ljava/util/List;Z)Lorg/apache/lucene/geo/Tessellator$Node;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Code:
      stack=16, locals=10, args_size=3
        start local 0 // org.apache.lucene.geo.Tessellator$Node startNode
        start local 1 // java.util.List tessellation
        start local 2 // boolean mortonOptimized
         0: .line 555
            aload 0 /* startNode */
            astore 3 /* node */
        start local 3 // org.apache.lucene.geo.Tessellator$Node node
         1: .line 558
      StackMap locals: org.apache.lucene.geo.Tessellator$Node
      StackMap stack:
            aload 3 /* node */
            getfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
            astore 4 /* nextNode */
        start local 4 // org.apache.lucene.geo.Tessellator$Node nextNode
         2: .line 559
            aload 3 /* node */
            getfield org.apache.lucene.geo.Tessellator$Node.previous:Lorg/apache/lucene/geo/Tessellator$Node;
            astore 5 /* a */
        start local 5 // org.apache.lucene.geo.Tessellator$Node a
         3: .line 560
            aload 4 /* nextNode */
            getfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
            astore 6 /* b */
        start local 6 // org.apache.lucene.geo.Tessellator$Node b
         4: .line 563
            aload 5 /* a */
            aload 6 /* b */
            invokestatic org.apache.lucene.geo.Tessellator.isVertexEquals:(Lorg/apache/lucene/geo/Tessellator$Node;Lorg/apache/lucene/geo/Tessellator$Node;)Z
            ifne 22
         5: .line 564
            aload 5 /* a */
            aload 5 /* a */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getX:()D
            aload 5 /* a */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getY:()D
            aload 6 /* b */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getX:()D
            aload 6 /* b */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getY:()D
            invokestatic org.apache.lucene.geo.Tessellator.isIntersectingPolygon:(Lorg/apache/lucene/geo/Tessellator$Node;DDDD)Z
            ifne 22
         6: .line 565
            aload 5 /* a */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getX:()D
            aload 5 /* a */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getY:()D
            aload 3 /* node */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getX:()D
            aload 3 /* node */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getY:()D
            aload 4 /* nextNode */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getX:()D
            aload 4 /* nextNode */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getY:()D
            aload 6 /* b */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getX:()D
            aload 6 /* b */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getY:()D
            invokestatic org.apache.lucene.geo.Tessellator.linesIntersect:(DDDDDDDD)Z
            ifeq 22
         7: .line 566
            aload 5 /* a */
            aload 6 /* b */
            invokestatic org.apache.lucene.geo.Tessellator.isLocallyInside:(Lorg/apache/lucene/geo/Tessellator$Node;Lorg/apache/lucene/geo/Tessellator$Node;)Z
            ifeq 22
            aload 6 /* b */
            aload 5 /* a */
            invokestatic org.apache.lucene.geo.Tessellator.isLocallyInside:(Lorg/apache/lucene/geo/Tessellator$Node;Lorg/apache/lucene/geo/Tessellator$Node;)Z
            ifeq 22
         8: .line 568
            aload 5 /* a */
            getfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
            aload 3 /* node */
            if_acmpne 9
            aload 5 /* a */
            getfield org.apache.lucene.geo.Tessellator$Node.isNextEdgeFromPolygon:Z
            goto 10
      StackMap locals: org.apache.lucene.geo.Tessellator$Node org.apache.lucene.geo.Tessellator$Node org.apache.lucene.geo.Tessellator$Node
      StackMap stack:
         9: aload 5 /* a */
            aload 3 /* node */
            iload 2 /* mortonOptimized */
            invokestatic org.apache.lucene.geo.Tessellator.isEdgeFromPolygon:(Lorg/apache/lucene/geo/Tessellator$Node;Lorg/apache/lucene/geo/Tessellator$Node;Z)Z
      StackMap locals:
      StackMap stack: int
        10: istore 7 /* abFromPolygon */
        start local 7 // boolean abFromPolygon
        11: .line 569
            aload 3 /* node */
            getfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
            aload 6 /* b */
            if_acmpne 12
            aload 3 /* node */
            getfield org.apache.lucene.geo.Tessellator$Node.isNextEdgeFromPolygon:Z
            goto 13
      StackMap locals: int
      StackMap stack:
        12: aload 3 /* node */
            aload 6 /* b */
            iload 2 /* mortonOptimized */
            invokestatic org.apache.lucene.geo.Tessellator.isEdgeFromPolygon:(Lorg/apache/lucene/geo/Tessellator$Node;Lorg/apache/lucene/geo/Tessellator$Node;Z)Z
      StackMap locals:
      StackMap stack: int
        13: istore 8 /* bcFromPolygon */
        start local 8 // boolean bcFromPolygon
        14: .line 570
            aload 6 /* b */
            getfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
            aload 5 /* a */
            if_acmpne 15
            aload 6 /* b */
            getfield org.apache.lucene.geo.Tessellator$Node.isNextEdgeFromPolygon:Z
            goto 16
      StackMap locals: int
      StackMap stack:
        15: aload 5 /* a */
            aload 6 /* b */
            iload 2 /* mortonOptimized */
            invokestatic org.apache.lucene.geo.Tessellator.isEdgeFromPolygon:(Lorg/apache/lucene/geo/Tessellator$Node;Lorg/apache/lucene/geo/Tessellator$Node;Z)Z
      StackMap locals:
      StackMap stack: int
        16: istore 9 /* caFromPolygon */
        start local 9 // boolean caFromPolygon
        17: .line 571
            aload 1 /* tessellation */
            new org.apache.lucene.geo.Tessellator$Triangle
            dup
            aload 5 /* a */
            iload 7 /* abFromPolygon */
            aload 3 /* node */
            iload 8 /* bcFromPolygon */
            aload 6 /* b */
            iload 9 /* caFromPolygon */
            invokespecial org.apache.lucene.geo.Tessellator$Triangle.<init>:(Lorg/apache/lucene/geo/Tessellator$Node;ZLorg/apache/lucene/geo/Tessellator$Node;ZLorg/apache/lucene/geo/Tessellator$Node;Z)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        18: .line 573
            aload 1 /* tessellation */
            new org.apache.lucene.geo.Tessellator$Triangle
            dup
            aload 5 /* a */
            iload 7 /* abFromPolygon */
            aload 3 /* node */
            iload 8 /* bcFromPolygon */
            aload 6 /* b */
            iload 9 /* caFromPolygon */
            invokespecial org.apache.lucene.geo.Tessellator$Triangle.<init>:(Lorg/apache/lucene/geo/Tessellator$Node;ZLorg/apache/lucene/geo/Tessellator$Node;ZLorg/apache/lucene/geo/Tessellator$Node;Z)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        19: .line 576
            aload 3 /* node */
            iload 9 /* caFromPolygon */
            invokestatic org.apache.lucene.geo.Tessellator.removeNode:(Lorg/apache/lucene/geo/Tessellator$Node;Z)V
        20: .line 577
            aload 3 /* node */
            getfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
            iload 9 /* caFromPolygon */
            invokestatic org.apache.lucene.geo.Tessellator.removeNode:(Lorg/apache/lucene/geo/Tessellator$Node;Z)V
        21: .line 578
            aload 6 /* b */
            dup
            astore 0 /* startNode */
            astore 3 /* node */
        end local 9 // boolean caFromPolygon
        end local 8 // boolean bcFromPolygon
        end local 7 // boolean abFromPolygon
        22: .line 580
      StackMap locals:
      StackMap stack:
            aload 3 /* node */
            getfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
            astore 3 /* node */
        end local 6 // org.apache.lucene.geo.Tessellator$Node b
        end local 5 // org.apache.lucene.geo.Tessellator$Node a
        23: .line 581
            aload 3 /* node */
            aload 0 /* startNode */
            if_acmpne 1
        24: .line 583
            aload 3 /* node */
            areturn
        end local 4 // org.apache.lucene.geo.Tessellator$Node nextNode
        end local 3 // org.apache.lucene.geo.Tessellator$Node node
        end local 2 // boolean mortonOptimized
        end local 1 // java.util.List tessellation
        end local 0 // org.apache.lucene.geo.Tessellator$Node startNode
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   25     0        startNode  Lorg/apache/lucene/geo/Tessellator$Node;
            0   25     1     tessellation  Ljava/util/List<Lorg/apache/lucene/geo/Tessellator$Triangle;>;
            0   25     2  mortonOptimized  Z
            1   25     3             node  Lorg/apache/lucene/geo/Tessellator$Node;
            2   25     4         nextNode  Lorg/apache/lucene/geo/Tessellator$Node;
            3   23     5                a  Lorg/apache/lucene/geo/Tessellator$Node;
            4   23     6                b  Lorg/apache/lucene/geo/Tessellator$Node;
           11   22     7    abFromPolygon  Z
           14   22     8    bcFromPolygon  Z
           17   22     9    caFromPolygon  Z
    Signature: (Lorg/apache/lucene/geo/Tessellator$Node;Ljava/util/List<Lorg/apache/lucene/geo/Tessellator$Triangle;>;Z)Lorg/apache/lucene/geo/Tessellator$Node;
    MethodParameters:
                 Name  Flags
      startNode        
      tessellation     final
      mortonOptimized  final

  private static final boolean splitEarcut(, org.apache.lucene.geo.Tessellator$Node, java.util.List<org.apache.lucene.geo.Tessellator$Triangle>, );
    descriptor: (Ljava/lang/Object;Lorg/apache/lucene/geo/Tessellator$Node;Ljava/util/List;Z)Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Code:
      stack=5, locals=8, args_size=4
        start local 0 // java.lang.Object polygon
        start local 1 // org.apache.lucene.geo.Tessellator$Node start
        start local 2 // java.util.List tessellation
        start local 3 // boolean mortonOptimized
         0: .line 589
            aload 1 /* start */
            astore 4 /* searchNode */
        start local 4 // org.apache.lucene.geo.Tessellator$Node searchNode
         1: .line 592
      StackMap locals: org.apache.lucene.geo.Tessellator$Node
      StackMap stack:
            aload 4 /* searchNode */
            getfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
            astore 5 /* nextNode */
        start local 5 // org.apache.lucene.geo.Tessellator$Node nextNode
         2: .line 593
            aload 5 /* nextNode */
            getfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
            astore 6 /* diagonal */
        start local 6 // org.apache.lucene.geo.Tessellator$Node diagonal
         3: .line 594
            goto 15
         4: .line 595
      StackMap locals: org.apache.lucene.geo.Tessellator$Node org.apache.lucene.geo.Tessellator$Node
      StackMap stack:
            aload 4 /* searchNode */
            getfield org.apache.lucene.geo.Tessellator$Node.idx:I
            aload 6 /* diagonal */
            getfield org.apache.lucene.geo.Tessellator$Node.idx:I
            if_icmpeq 14
            aload 4 /* searchNode */
            aload 6 /* diagonal */
            invokestatic org.apache.lucene.geo.Tessellator.isValidDiagonal:(Lorg/apache/lucene/geo/Tessellator$Node;Lorg/apache/lucene/geo/Tessellator$Node;)Z
            ifeq 14
         5: .line 597
            aload 4 /* searchNode */
            aload 6 /* diagonal */
            aload 4 /* searchNode */
            aload 6 /* diagonal */
            iload 3 /* mortonOptimized */
            invokestatic org.apache.lucene.geo.Tessellator.isEdgeFromPolygon:(Lorg/apache/lucene/geo/Tessellator$Node;Lorg/apache/lucene/geo/Tessellator$Node;Z)Z
            invokestatic org.apache.lucene.geo.Tessellator.splitPolygon:(Lorg/apache/lucene/geo/Tessellator$Node;Lorg/apache/lucene/geo/Tessellator$Node;Z)Lorg/apache/lucene/geo/Tessellator$Node;
            astore 7 /* splitNode */
        start local 7 // org.apache.lucene.geo.Tessellator$Node splitNode
         6: .line 599
            aload 4 /* searchNode */
            aload 4 /* searchNode */
            getfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
            invokestatic org.apache.lucene.geo.Tessellator.filterPoints:(Lorg/apache/lucene/geo/Tessellator$Node;Lorg/apache/lucene/geo/Tessellator$Node;)Lorg/apache/lucene/geo/Tessellator$Node;
            astore 4 /* searchNode */
         7: .line 600
            aload 7 /* splitNode */
            aload 7 /* splitNode */
            getfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
            invokestatic org.apache.lucene.geo.Tessellator.filterPoints:(Lorg/apache/lucene/geo/Tessellator$Node;Lorg/apache/lucene/geo/Tessellator$Node;)Lorg/apache/lucene/geo/Tessellator$Node;
            astore 7 /* splitNode */
         8: .line 602
            iload 3 /* mortonOptimized */
            ifeq 11
         9: .line 603
            aload 4 /* searchNode */
            invokestatic org.apache.lucene.geo.Tessellator.sortByMortonWithReset:(Lorg/apache/lucene/geo/Tessellator$Node;)V
        10: .line 604
            aload 7 /* splitNode */
            invokestatic org.apache.lucene.geo.Tessellator.sortByMortonWithReset:(Lorg/apache/lucene/geo/Tessellator$Node;)V
        11: .line 606
      StackMap locals: org.apache.lucene.geo.Tessellator$Node
      StackMap stack:
            aload 0 /* polygon */
            aload 4 /* searchNode */
            aload 2 /* tessellation */
            getstatic org.apache.lucene.geo.Tessellator$State.INIT:Lorg/apache/lucene/geo/Tessellator$State;
            iload 3 /* mortonOptimized */
            invokestatic org.apache.lucene.geo.Tessellator.earcutLinkedList:(Ljava/lang/Object;Lorg/apache/lucene/geo/Tessellator$Node;Ljava/util/List;Lorg/apache/lucene/geo/Tessellator$State;Z)Ljava/util/List;
            pop
        12: .line 607
            aload 0 /* polygon */
            aload 7 /* splitNode */
            aload 2 /* tessellation */
            getstatic org.apache.lucene.geo.Tessellator$State.INIT:Lorg/apache/lucene/geo/Tessellator$State;
            iload 3 /* mortonOptimized */
            invokestatic org.apache.lucene.geo.Tessellator.earcutLinkedList:(Ljava/lang/Object;Lorg/apache/lucene/geo/Tessellator$Node;Ljava/util/List;Lorg/apache/lucene/geo/Tessellator$State;Z)Ljava/util/List;
            pop
        13: .line 609
            iconst_1
            ireturn
        end local 7 // org.apache.lucene.geo.Tessellator$Node splitNode
        14: .line 611
      StackMap locals:
      StackMap stack:
            aload 6 /* diagonal */
            getfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
            astore 6 /* diagonal */
        15: .line 594
      StackMap locals:
      StackMap stack:
            aload 6 /* diagonal */
            aload 4 /* searchNode */
            getfield org.apache.lucene.geo.Tessellator$Node.previous:Lorg/apache/lucene/geo/Tessellator$Node;
            if_acmpne 4
        16: .line 613
            aload 4 /* searchNode */
            getfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
            astore 4 /* searchNode */
        end local 6 // org.apache.lucene.geo.Tessellator$Node diagonal
        17: .line 614
            aload 4 /* searchNode */
            aload 1 /* start */
            if_acmpne 1
        18: .line 615
            iconst_0
            ireturn
        end local 5 // org.apache.lucene.geo.Tessellator$Node nextNode
        end local 4 // org.apache.lucene.geo.Tessellator$Node searchNode
        end local 3 // boolean mortonOptimized
        end local 2 // java.util.List tessellation
        end local 1 // org.apache.lucene.geo.Tessellator$Node start
        end local 0 // java.lang.Object polygon
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   19     0          polygon  Ljava/lang/Object;
            0   19     1            start  Lorg/apache/lucene/geo/Tessellator$Node;
            0   19     2     tessellation  Ljava/util/List<Lorg/apache/lucene/geo/Tessellator$Triangle;>;
            0   19     3  mortonOptimized  Z
            1   19     4       searchNode  Lorg/apache/lucene/geo/Tessellator$Node;
            2   19     5         nextNode  Lorg/apache/lucene/geo/Tessellator$Node;
            3   17     6         diagonal  Lorg/apache/lucene/geo/Tessellator$Node;
            6   14     7        splitNode  Lorg/apache/lucene/geo/Tessellator$Node;
    Signature: (Ljava/lang/Object;Lorg/apache/lucene/geo/Tessellator$Node;Ljava/util/List<Lorg/apache/lucene/geo/Tessellator$Triangle;>;Z)Z
    MethodParameters:
                 Name  Flags
      polygon          final
      start            final
      tessellation     final
      mortonOptimized  final

  private static boolean isEdgeFromPolygon(org.apache.lucene.geo.Tessellator$Node, org.apache.lucene.geo.Tessellator$Node, boolean);
    descriptor: (Lorg/apache/lucene/geo/Tessellator$Node;Lorg/apache/lucene/geo/Tessellator$Node;Z)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // org.apache.lucene.geo.Tessellator$Node a
        start local 1 // org.apache.lucene.geo.Tessellator$Node b
        start local 2 // boolean isMorton
         0: .line 620
            iload 2 /* isMorton */
            ifeq 2
         1: .line 621
            aload 0 /* a */
            aload 1 /* b */
            invokestatic org.apache.lucene.geo.Tessellator.isMortonEdgeFromPolygon:(Lorg/apache/lucene/geo/Tessellator$Node;Lorg/apache/lucene/geo/Tessellator$Node;)Z
            ireturn
         2: .line 623
      StackMap locals:
      StackMap stack:
            aload 0 /* a */
            astore 3 /* next */
        start local 3 // org.apache.lucene.geo.Tessellator$Node next
         3: .line 625
      StackMap locals: org.apache.lucene.geo.Tessellator$Node
      StackMap stack:
            aload 3 /* next */
            aload 3 /* next */
            getfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
            aload 0 /* a */
            invokestatic org.apache.lucene.geo.Tessellator.isPointInLine:(Lorg/apache/lucene/geo/Tessellator$Node;Lorg/apache/lucene/geo/Tessellator$Node;Lorg/apache/lucene/geo/Tessellator$Node;)Z
            ifeq 5
            aload 3 /* next */
            aload 3 /* next */
            getfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
            aload 1 /* b */
            invokestatic org.apache.lucene.geo.Tessellator.isPointInLine:(Lorg/apache/lucene/geo/Tessellator$Node;Lorg/apache/lucene/geo/Tessellator$Node;Lorg/apache/lucene/geo/Tessellator$Node;)Z
            ifeq 5
         4: .line 626
            aload 3 /* next */
            getfield org.apache.lucene.geo.Tessellator$Node.isNextEdgeFromPolygon:Z
            ireturn
         5: .line 628
      StackMap locals:
      StackMap stack:
            aload 3 /* next */
            aload 3 /* next */
            getfield org.apache.lucene.geo.Tessellator$Node.previous:Lorg/apache/lucene/geo/Tessellator$Node;
            aload 0 /* a */
            invokestatic org.apache.lucene.geo.Tessellator.isPointInLine:(Lorg/apache/lucene/geo/Tessellator$Node;Lorg/apache/lucene/geo/Tessellator$Node;Lorg/apache/lucene/geo/Tessellator$Node;)Z
            ifeq 7
            aload 3 /* next */
            aload 3 /* next */
            getfield org.apache.lucene.geo.Tessellator$Node.previous:Lorg/apache/lucene/geo/Tessellator$Node;
            aload 1 /* b */
            invokestatic org.apache.lucene.geo.Tessellator.isPointInLine:(Lorg/apache/lucene/geo/Tessellator$Node;Lorg/apache/lucene/geo/Tessellator$Node;Lorg/apache/lucene/geo/Tessellator$Node;)Z
            ifeq 7
         6: .line 629
            aload 3 /* next */
            getfield org.apache.lucene.geo.Tessellator$Node.previous:Lorg/apache/lucene/geo/Tessellator$Node;
            getfield org.apache.lucene.geo.Tessellator$Node.isNextEdgeFromPolygon:Z
            ireturn
         7: .line 631
      StackMap locals:
      StackMap stack:
            aload 3 /* next */
            getfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
            astore 3 /* next */
         8: .line 632
            aload 3 /* next */
            aload 0 /* a */
            if_acmpne 3
         9: .line 633
            iconst_0
            ireturn
        end local 3 // org.apache.lucene.geo.Tessellator$Node next
        end local 2 // boolean isMorton
        end local 1 // org.apache.lucene.geo.Tessellator$Node b
        end local 0 // org.apache.lucene.geo.Tessellator$Node a
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   10     0         a  Lorg/apache/lucene/geo/Tessellator$Node;
            0   10     1         b  Lorg/apache/lucene/geo/Tessellator$Node;
            0   10     2  isMorton  Z
            3   10     3      next  Lorg/apache/lucene/geo/Tessellator$Node;
    MethodParameters:
          Name  Flags
      a         final
      b         final
      isMorton  final

  private static final boolean isMortonEdgeFromPolygon(org.apache.lucene.geo.Tessellator$Node, org.apache.lucene.geo.Tessellator$Node);
    descriptor: (Lorg/apache/lucene/geo/Tessellator$Node;Lorg/apache/lucene/geo/Tessellator$Node;)Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Code:
      stack=4, locals=12, args_size=2
        start local 0 // org.apache.lucene.geo.Tessellator$Node a
        start local 1 // org.apache.lucene.geo.Tessellator$Node b
         0: .line 639
            aload 0 /* a */
            getfield org.apache.lucene.geo.Tessellator$Node.x:I
            aload 1 /* b */
            getfield org.apache.lucene.geo.Tessellator$Node.x:I
            invokestatic java.lang.StrictMath.min:(II)I
            ldc -2147483648
            ixor
            istore 2 /* minTX */
        start local 2 // int minTX
         1: .line 640
            aload 0 /* a */
            getfield org.apache.lucene.geo.Tessellator$Node.y:I
            aload 1 /* b */
            getfield org.apache.lucene.geo.Tessellator$Node.y:I
            invokestatic java.lang.StrictMath.min:(II)I
            ldc -2147483648
            ixor
            istore 3 /* minTY */
        start local 3 // int minTY
         2: .line 641
            aload 0 /* a */
            getfield org.apache.lucene.geo.Tessellator$Node.x:I
            aload 1 /* b */
            getfield org.apache.lucene.geo.Tessellator$Node.x:I
            invokestatic java.lang.StrictMath.max:(II)I
            ldc -2147483648
            ixor
            istore 4 /* maxTX */
        start local 4 // int maxTX
         3: .line 642
            aload 0 /* a */
            getfield org.apache.lucene.geo.Tessellator$Node.y:I
            aload 1 /* b */
            getfield org.apache.lucene.geo.Tessellator$Node.y:I
            invokestatic java.lang.StrictMath.max:(II)I
            ldc -2147483648
            ixor
            istore 5 /* maxTY */
        start local 5 // int maxTY
         4: .line 645
            iload 2 /* minTX */
            iload 3 /* minTY */
            invokestatic org.apache.lucene.util.BitUtil.interleave:(II)J
            lstore 6 /* minZ */
        start local 6 // long minZ
         5: .line 646
            iload 4 /* maxTX */
            iload 5 /* maxTY */
            invokestatic org.apache.lucene.util.BitUtil.interleave:(II)J
            lstore 8 /* maxZ */
        start local 8 // long maxZ
         6: .line 651
            aload 0 /* a */
            getfield org.apache.lucene.geo.Tessellator$Node.previousZ:Lorg/apache/lucene/geo/Tessellator$Node;
            astore 10 /* p */
        start local 10 // org.apache.lucene.geo.Tessellator$Node p
         7: .line 652
            aload 0 /* a */
            getfield org.apache.lucene.geo.Tessellator$Node.nextZ:Lorg/apache/lucene/geo/Tessellator$Node;
            astore 11 /* n */
        start local 11 // org.apache.lucene.geo.Tessellator$Node n
         8: .line 653
            goto 19
         9: .line 655
      StackMap locals: org.apache.lucene.geo.Tessellator$Node org.apache.lucene.geo.Tessellator$Node int int int int long long org.apache.lucene.geo.Tessellator$Node org.apache.lucene.geo.Tessellator$Node
      StackMap stack:
            aload 10 /* p */
            aload 10 /* p */
            getfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
            aload 0 /* a */
            invokestatic org.apache.lucene.geo.Tessellator.isPointInLine:(Lorg/apache/lucene/geo/Tessellator$Node;Lorg/apache/lucene/geo/Tessellator$Node;Lorg/apache/lucene/geo/Tessellator$Node;)Z
            ifeq 11
            aload 10 /* p */
            aload 10 /* p */
            getfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
            aload 1 /* b */
            invokestatic org.apache.lucene.geo.Tessellator.isPointInLine:(Lorg/apache/lucene/geo/Tessellator$Node;Lorg/apache/lucene/geo/Tessellator$Node;Lorg/apache/lucene/geo/Tessellator$Node;)Z
            ifeq 11
        10: .line 656
            aload 10 /* p */
            getfield org.apache.lucene.geo.Tessellator$Node.isNextEdgeFromPolygon:Z
            ireturn
        11: .line 658
      StackMap locals:
      StackMap stack:
            aload 10 /* p */
            aload 10 /* p */
            getfield org.apache.lucene.geo.Tessellator$Node.previous:Lorg/apache/lucene/geo/Tessellator$Node;
            aload 0 /* a */
            invokestatic org.apache.lucene.geo.Tessellator.isPointInLine:(Lorg/apache/lucene/geo/Tessellator$Node;Lorg/apache/lucene/geo/Tessellator$Node;Lorg/apache/lucene/geo/Tessellator$Node;)Z
            ifeq 13
            aload 10 /* p */
            aload 10 /* p */
            getfield org.apache.lucene.geo.Tessellator$Node.previous:Lorg/apache/lucene/geo/Tessellator$Node;
            aload 1 /* b */
            invokestatic org.apache.lucene.geo.Tessellator.isPointInLine:(Lorg/apache/lucene/geo/Tessellator$Node;Lorg/apache/lucene/geo/Tessellator$Node;Lorg/apache/lucene/geo/Tessellator$Node;)Z
            ifeq 13
        12: .line 659
            aload 10 /* p */
            getfield org.apache.lucene.geo.Tessellator$Node.previous:Lorg/apache/lucene/geo/Tessellator$Node;
            getfield org.apache.lucene.geo.Tessellator$Node.isNextEdgeFromPolygon:Z
            ireturn
        13: .line 662
      StackMap locals:
      StackMap stack:
            aload 10 /* p */
            getfield org.apache.lucene.geo.Tessellator$Node.previousZ:Lorg/apache/lucene/geo/Tessellator$Node;
            astore 10 /* p */
        14: .line 664
            aload 11 /* n */
            aload 11 /* n */
            getfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
            aload 0 /* a */
            invokestatic org.apache.lucene.geo.Tessellator.isPointInLine:(Lorg/apache/lucene/geo/Tessellator$Node;Lorg/apache/lucene/geo/Tessellator$Node;Lorg/apache/lucene/geo/Tessellator$Node;)Z
            ifeq 16
            aload 11 /* n */
            aload 11 /* n */
            getfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
            aload 1 /* b */
            invokestatic org.apache.lucene.geo.Tessellator.isPointInLine:(Lorg/apache/lucene/geo/Tessellator$Node;Lorg/apache/lucene/geo/Tessellator$Node;Lorg/apache/lucene/geo/Tessellator$Node;)Z
            ifeq 16
        15: .line 665
            aload 11 /* n */
            getfield org.apache.lucene.geo.Tessellator$Node.isNextEdgeFromPolygon:Z
            ireturn
        16: .line 667
      StackMap locals:
      StackMap stack:
            aload 11 /* n */
            aload 11 /* n */
            getfield org.apache.lucene.geo.Tessellator$Node.previous:Lorg/apache/lucene/geo/Tessellator$Node;
            aload 0 /* a */
            invokestatic org.apache.lucene.geo.Tessellator.isPointInLine:(Lorg/apache/lucene/geo/Tessellator$Node;Lorg/apache/lucene/geo/Tessellator$Node;Lorg/apache/lucene/geo/Tessellator$Node;)Z
            ifeq 18
            aload 11 /* n */
            aload 11 /* n */
            getfield org.apache.lucene.geo.Tessellator$Node.previous:Lorg/apache/lucene/geo/Tessellator$Node;
            aload 1 /* b */
            invokestatic org.apache.lucene.geo.Tessellator.isPointInLine:(Lorg/apache/lucene/geo/Tessellator$Node;Lorg/apache/lucene/geo/Tessellator$Node;Lorg/apache/lucene/geo/Tessellator$Node;)Z
            ifeq 18
        17: .line 668
            aload 11 /* n */
            getfield org.apache.lucene.geo.Tessellator$Node.previous:Lorg/apache/lucene/geo/Tessellator$Node;
            getfield org.apache.lucene.geo.Tessellator$Node.isNextEdgeFromPolygon:Z
            ireturn
        18: .line 671
      StackMap locals:
      StackMap stack:
            aload 11 /* n */
            getfield org.apache.lucene.geo.Tessellator$Node.nextZ:Lorg/apache/lucene/geo/Tessellator$Node;
            astore 11 /* n */
        19: .line 653
      StackMap locals:
      StackMap stack:
            aload 10 /* p */
            ifnull 28
            aload 10 /* p */
            getfield org.apache.lucene.geo.Tessellator$Node.morton:J
            lload 6 /* minZ */
            invokestatic java.lang.Long.compareUnsigned:(JJ)I
            iflt 28
        20: .line 654
            aload 11 /* n */
            ifnull 28
            aload 11 /* n */
            getfield org.apache.lucene.geo.Tessellator$Node.morton:J
            lload 8 /* maxZ */
            invokestatic java.lang.Long.compareUnsigned:(JJ)I
        21: .line 653
            ifle 9
        22: .line 675
            goto 28
        23: .line 676
      StackMap locals:
      StackMap stack:
            aload 10 /* p */
            aload 10 /* p */
            getfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
            aload 0 /* a */
            invokestatic org.apache.lucene.geo.Tessellator.isPointInLine:(Lorg/apache/lucene/geo/Tessellator$Node;Lorg/apache/lucene/geo/Tessellator$Node;Lorg/apache/lucene/geo/Tessellator$Node;)Z
            ifeq 25
            aload 10 /* p */
            aload 10 /* p */
            getfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
            aload 1 /* b */
            invokestatic org.apache.lucene.geo.Tessellator.isPointInLine:(Lorg/apache/lucene/geo/Tessellator$Node;Lorg/apache/lucene/geo/Tessellator$Node;Lorg/apache/lucene/geo/Tessellator$Node;)Z
            ifeq 25
        24: .line 677
            aload 10 /* p */
            getfield org.apache.lucene.geo.Tessellator$Node.isNextEdgeFromPolygon:Z
            ireturn
        25: .line 679
      StackMap locals:
      StackMap stack:
            aload 10 /* p */
            aload 10 /* p */
            getfield org.apache.lucene.geo.Tessellator$Node.previous:Lorg/apache/lucene/geo/Tessellator$Node;
            aload 0 /* a */
            invokestatic org.apache.lucene.geo.Tessellator.isPointInLine:(Lorg/apache/lucene/geo/Tessellator$Node;Lorg/apache/lucene/geo/Tessellator$Node;Lorg/apache/lucene/geo/Tessellator$Node;)Z
            ifeq 27
            aload 10 /* p */
            aload 10 /* p */
            getfield org.apache.lucene.geo.Tessellator$Node.previous:Lorg/apache/lucene/geo/Tessellator$Node;
            aload 1 /* b */
            invokestatic org.apache.lucene.geo.Tessellator.isPointInLine:(Lorg/apache/lucene/geo/Tessellator$Node;Lorg/apache/lucene/geo/Tessellator$Node;Lorg/apache/lucene/geo/Tessellator$Node;)Z
            ifeq 27
        26: .line 680
            aload 10 /* p */
            getfield org.apache.lucene.geo.Tessellator$Node.previous:Lorg/apache/lucene/geo/Tessellator$Node;
            getfield org.apache.lucene.geo.Tessellator$Node.isNextEdgeFromPolygon:Z
            ireturn
        27: .line 682
      StackMap locals:
      StackMap stack:
            aload 10 /* p */
            getfield org.apache.lucene.geo.Tessellator$Node.previousZ:Lorg/apache/lucene/geo/Tessellator$Node;
            astore 10 /* p */
        28: .line 675
      StackMap locals:
      StackMap stack:
            aload 10 /* p */
            ifnull 35
            aload 10 /* p */
            getfield org.apache.lucene.geo.Tessellator$Node.morton:J
            lload 6 /* minZ */
            invokestatic java.lang.Long.compareUnsigned:(JJ)I
            ifge 23
        29: .line 685
            goto 35
        30: .line 687
      StackMap locals:
      StackMap stack:
            aload 11 /* n */
            aload 11 /* n */
            getfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
            aload 0 /* a */
            invokestatic org.apache.lucene.geo.Tessellator.isPointInLine:(Lorg/apache/lucene/geo/Tessellator$Node;Lorg/apache/lucene/geo/Tessellator$Node;Lorg/apache/lucene/geo/Tessellator$Node;)Z
            ifeq 32
            aload 11 /* n */
            aload 11 /* n */
            getfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
            aload 1 /* b */
            invokestatic org.apache.lucene.geo.Tessellator.isPointInLine:(Lorg/apache/lucene/geo/Tessellator$Node;Lorg/apache/lucene/geo/Tessellator$Node;Lorg/apache/lucene/geo/Tessellator$Node;)Z
            ifeq 32
        31: .line 688
            aload 11 /* n */
            getfield org.apache.lucene.geo.Tessellator$Node.isNextEdgeFromPolygon:Z
            ireturn
        32: .line 690
      StackMap locals:
      StackMap stack:
            aload 11 /* n */
            aload 11 /* n */
            getfield org.apache.lucene.geo.Tessellator$Node.previous:Lorg/apache/lucene/geo/Tessellator$Node;
            aload 0 /* a */
            invokestatic org.apache.lucene.geo.Tessellator.isPointInLine:(Lorg/apache/lucene/geo/Tessellator$Node;Lorg/apache/lucene/geo/Tessellator$Node;Lorg/apache/lucene/geo/Tessellator$Node;)Z
            ifeq 34
            aload 11 /* n */
            aload 11 /* n */
            getfield org.apache.lucene.geo.Tessellator$Node.previous:Lorg/apache/lucene/geo/Tessellator$Node;
            aload 1 /* b */
            invokestatic org.apache.lucene.geo.Tessellator.isPointInLine:(Lorg/apache/lucene/geo/Tessellator$Node;Lorg/apache/lucene/geo/Tessellator$Node;Lorg/apache/lucene/geo/Tessellator$Node;)Z
            ifeq 34
        33: .line 691
            aload 11 /* n */
            getfield org.apache.lucene.geo.Tessellator$Node.previous:Lorg/apache/lucene/geo/Tessellator$Node;
            getfield org.apache.lucene.geo.Tessellator$Node.isNextEdgeFromPolygon:Z
            ireturn
        34: .line 693
      StackMap locals:
      StackMap stack:
            aload 11 /* n */
            getfield org.apache.lucene.geo.Tessellator$Node.nextZ:Lorg/apache/lucene/geo/Tessellator$Node;
            astore 11 /* n */
        35: .line 685
      StackMap locals:
      StackMap stack:
            aload 11 /* n */
            ifnull 38
        36: .line 686
            aload 11 /* n */
            getfield org.apache.lucene.geo.Tessellator$Node.morton:J
            lload 8 /* maxZ */
            invokestatic java.lang.Long.compareUnsigned:(JJ)I
        37: .line 685
            ifle 30
        38: .line 695
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 11 // org.apache.lucene.geo.Tessellator$Node n
        end local 10 // org.apache.lucene.geo.Tessellator$Node p
        end local 8 // long maxZ
        end local 6 // long minZ
        end local 5 // int maxTY
        end local 4 // int maxTX
        end local 3 // int minTY
        end local 2 // int minTX
        end local 1 // org.apache.lucene.geo.Tessellator$Node b
        end local 0 // org.apache.lucene.geo.Tessellator$Node a
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   39     0      a  Lorg/apache/lucene/geo/Tessellator$Node;
            0   39     1      b  Lorg/apache/lucene/geo/Tessellator$Node;
            1   39     2  minTX  I
            2   39     3  minTY  I
            3   39     4  maxTX  I
            4   39     5  maxTY  I
            5   39     6   minZ  J
            6   39     8   maxZ  J
            7   39    10      p  Lorg/apache/lucene/geo/Tessellator$Node;
            8   39    11      n  Lorg/apache/lucene/geo/Tessellator$Node;
    MethodParameters:
      Name  Flags
      a     final
      b     final

  private static boolean isPointInLine(org.apache.lucene.geo.Tessellator$Node, org.apache.lucene.geo.Tessellator$Node, org.apache.lucene.geo.Tessellator$Node);
    descriptor: (Lorg/apache/lucene/geo/Tessellator$Node;Lorg/apache/lucene/geo/Tessellator$Node;Lorg/apache/lucene/geo/Tessellator$Node;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=3, args_size=3
        start local 0 // org.apache.lucene.geo.Tessellator$Node a
        start local 1 // org.apache.lucene.geo.Tessellator$Node b
        start local 2 // org.apache.lucene.geo.Tessellator$Node point
         0: .line 699
            aload 0 /* a */
            aload 1 /* b */
            aload 2 /* point */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getX:()D
            aload 2 /* point */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getY:()D
            invokestatic org.apache.lucene.geo.Tessellator.isPointInLine:(Lorg/apache/lucene/geo/Tessellator$Node;Lorg/apache/lucene/geo/Tessellator$Node;DD)Z
            ireturn
        end local 2 // org.apache.lucene.geo.Tessellator$Node point
        end local 1 // org.apache.lucene.geo.Tessellator$Node b
        end local 0 // org.apache.lucene.geo.Tessellator$Node a
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0      a  Lorg/apache/lucene/geo/Tessellator$Node;
            0    1     1      b  Lorg/apache/lucene/geo/Tessellator$Node;
            0    1     2  point  Lorg/apache/lucene/geo/Tessellator$Node;
    MethodParameters:
       Name  Flags
      a      final
      b      final
      point  final

  private static boolean isPointInLine(org.apache.lucene.geo.Tessellator$Node, org.apache.lucene.geo.Tessellator$Node, double, double);
    descriptor: (Lorg/apache/lucene/geo/Tessellator$Node;Lorg/apache/lucene/geo/Tessellator$Node;DD)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=14, args_size=4
        start local 0 // org.apache.lucene.geo.Tessellator$Node a
        start local 1 // org.apache.lucene.geo.Tessellator$Node b
        start local 2 // double lon
        start local 4 // double lat
         0: .line 703
            dload 2 /* lon */
            aload 0 /* a */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getX:()D
            dsub
            dstore 6 /* dxc */
        start local 6 // double dxc
         1: .line 704
            dload 4 /* lat */
            aload 0 /* a */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getY:()D
            dsub
            dstore 8 /* dyc */
        start local 8 // double dyc
         2: .line 706
            aload 1 /* b */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getX:()D
            aload 0 /* a */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getX:()D
            dsub
            dstore 10 /* dxl */
        start local 10 // double dxl
         3: .line 707
            aload 1 /* b */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getY:()D
            aload 0 /* a */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getY:()D
            dsub
            dstore 12 /* dyl */
        start local 12 // double dyl
         4: .line 709
            dload 6 /* dxc */
            dload 12 /* dyl */
            dmul
            dload 8 /* dyc */
            dload 10 /* dxl */
            dmul
            dsub
            dconst_0
            dcmpl
            ifne 20
         5: .line 710
            dload 10 /* dxl */
            invokestatic java.lang.Math.abs:(D)D
            dload 12 /* dyl */
            invokestatic java.lang.Math.abs:(D)D
            dcmpl
            iflt 13
         6: .line 711
            dload 10 /* dxl */
            dconst_0
            dcmpl
            ifle 9
         7: .line 712
            aload 0 /* a */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getX:()D
            dload 2 /* lon */
            dcmpg
            ifgt 8
            dload 2 /* lon */
            aload 1 /* b */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getX:()D
            dcmpg
            ifgt 8
            iconst_1
            goto 12
      StackMap locals: org.apache.lucene.geo.Tessellator$Node org.apache.lucene.geo.Tessellator$Node double double double double double double
      StackMap stack:
         8: iconst_0
            goto 12
         9: .line 713
      StackMap locals:
      StackMap stack:
            aload 1 /* b */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getX:()D
            dload 2 /* lon */
            dcmpg
            ifgt 11
            dload 2 /* lon */
            aload 0 /* a */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getX:()D
        10: .line 711
            dcmpg
            ifgt 11
            iconst_1
            goto 12
      StackMap locals:
      StackMap stack:
        11: iconst_0
      StackMap locals:
      StackMap stack: int
        12: ireturn
        13: .line 715
      StackMap locals:
      StackMap stack:
            dload 12 /* dyl */
            dconst_0
            dcmpl
            ifle 16
        14: .line 716
            aload 0 /* a */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getY:()D
            dload 4 /* lat */
            dcmpg
            ifgt 15
            dload 4 /* lat */
            aload 1 /* b */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getY:()D
            dcmpg
            ifgt 15
            iconst_1
            goto 19
      StackMap locals:
      StackMap stack:
        15: iconst_0
            goto 19
        16: .line 717
      StackMap locals:
      StackMap stack:
            aload 1 /* b */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getY:()D
            dload 4 /* lat */
            dcmpg
            ifgt 18
            dload 4 /* lat */
            aload 0 /* a */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getY:()D
        17: .line 715
            dcmpg
            ifgt 18
            iconst_1
            goto 19
      StackMap locals:
      StackMap stack:
        18: iconst_0
      StackMap locals:
      StackMap stack: int
        19: ireturn
        20: .line 720
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 12 // double dyl
        end local 10 // double dxl
        end local 8 // double dyc
        end local 6 // double dxc
        end local 4 // double lat
        end local 2 // double lon
        end local 1 // org.apache.lucene.geo.Tessellator$Node b
        end local 0 // org.apache.lucene.geo.Tessellator$Node a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   21     0     a  Lorg/apache/lucene/geo/Tessellator$Node;
            0   21     1     b  Lorg/apache/lucene/geo/Tessellator$Node;
            0   21     2   lon  D
            0   21     4   lat  D
            1   21     6   dxc  D
            2   21     8   dyc  D
            3   21    10   dxl  D
            4   21    12   dyl  D
    MethodParameters:
      Name  Flags
      a     final
      b     final
      lon   final
      lat   final

  private static final org.apache.lucene.geo.Tessellator$Node splitPolygon(org.apache.lucene.geo.Tessellator$Node, org.apache.lucene.geo.Tessellator$Node, boolean);
    descriptor: (Lorg/apache/lucene/geo/Tessellator$Node;Lorg/apache/lucene/geo/Tessellator$Node;Z)Lorg/apache/lucene/geo/Tessellator$Node;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Code:
      stack=3, locals=7, args_size=3
        start local 0 // org.apache.lucene.geo.Tessellator$Node a
        start local 1 // org.apache.lucene.geo.Tessellator$Node b
        start local 2 // boolean edgeFromPolygon
         0: .line 725
            new org.apache.lucene.geo.Tessellator$Node
            dup
            aload 0 /* a */
            invokespecial org.apache.lucene.geo.Tessellator$Node.<init>:(Lorg/apache/lucene/geo/Tessellator$Node;)V
            astore 3 /* a2 */
        start local 3 // org.apache.lucene.geo.Tessellator$Node a2
         1: .line 726
            new org.apache.lucene.geo.Tessellator$Node
            dup
            aload 1 /* b */
            invokespecial org.apache.lucene.geo.Tessellator$Node.<init>:(Lorg/apache/lucene/geo/Tessellator$Node;)V
            astore 4 /* b2 */
        start local 4 // org.apache.lucene.geo.Tessellator$Node b2
         2: .line 727
            aload 0 /* a */
            getfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
            astore 5 /* an */
        start local 5 // org.apache.lucene.geo.Tessellator$Node an
         3: .line 728
            aload 1 /* b */
            getfield org.apache.lucene.geo.Tessellator$Node.previous:Lorg/apache/lucene/geo/Tessellator$Node;
            astore 6 /* bp */
        start local 6 // org.apache.lucene.geo.Tessellator$Node bp
         4: .line 730
            aload 0 /* a */
            aload 1 /* b */
            putfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
         5: .line 731
            aload 0 /* a */
            iload 2 /* edgeFromPolygon */
            putfield org.apache.lucene.geo.Tessellator$Node.isNextEdgeFromPolygon:Z
         6: .line 732
            aload 0 /* a */
            aload 1 /* b */
            putfield org.apache.lucene.geo.Tessellator$Node.nextZ:Lorg/apache/lucene/geo/Tessellator$Node;
         7: .line 733
            aload 1 /* b */
            aload 0 /* a */
            putfield org.apache.lucene.geo.Tessellator$Node.previous:Lorg/apache/lucene/geo/Tessellator$Node;
         8: .line 734
            aload 1 /* b */
            aload 0 /* a */
            putfield org.apache.lucene.geo.Tessellator$Node.previousZ:Lorg/apache/lucene/geo/Tessellator$Node;
         9: .line 735
            aload 3 /* a2 */
            aload 5 /* an */
            putfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
        10: .line 736
            aload 3 /* a2 */
            aload 5 /* an */
            putfield org.apache.lucene.geo.Tessellator$Node.nextZ:Lorg/apache/lucene/geo/Tessellator$Node;
        11: .line 737
            aload 5 /* an */
            aload 3 /* a2 */
            putfield org.apache.lucene.geo.Tessellator$Node.previous:Lorg/apache/lucene/geo/Tessellator$Node;
        12: .line 738
            aload 5 /* an */
            aload 3 /* a2 */
            putfield org.apache.lucene.geo.Tessellator$Node.previousZ:Lorg/apache/lucene/geo/Tessellator$Node;
        13: .line 739
            aload 4 /* b2 */
            aload 3 /* a2 */
            putfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
        14: .line 740
            aload 4 /* b2 */
            iload 2 /* edgeFromPolygon */
            putfield org.apache.lucene.geo.Tessellator$Node.isNextEdgeFromPolygon:Z
        15: .line 741
            aload 4 /* b2 */
            aload 3 /* a2 */
            putfield org.apache.lucene.geo.Tessellator$Node.nextZ:Lorg/apache/lucene/geo/Tessellator$Node;
        16: .line 742
            aload 3 /* a2 */
            aload 4 /* b2 */
            putfield org.apache.lucene.geo.Tessellator$Node.previous:Lorg/apache/lucene/geo/Tessellator$Node;
        17: .line 743
            aload 3 /* a2 */
            aload 4 /* b2 */
            putfield org.apache.lucene.geo.Tessellator$Node.previousZ:Lorg/apache/lucene/geo/Tessellator$Node;
        18: .line 744
            aload 6 /* bp */
            aload 4 /* b2 */
            putfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
        19: .line 745
            aload 6 /* bp */
            aload 4 /* b2 */
            putfield org.apache.lucene.geo.Tessellator$Node.nextZ:Lorg/apache/lucene/geo/Tessellator$Node;
        20: .line 747
            aload 4 /* b2 */
            areturn
        end local 6 // org.apache.lucene.geo.Tessellator$Node bp
        end local 5 // org.apache.lucene.geo.Tessellator$Node an
        end local 4 // org.apache.lucene.geo.Tessellator$Node b2
        end local 3 // org.apache.lucene.geo.Tessellator$Node a2
        end local 2 // boolean edgeFromPolygon
        end local 1 // org.apache.lucene.geo.Tessellator$Node b
        end local 0 // org.apache.lucene.geo.Tessellator$Node a
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   21     0                a  Lorg/apache/lucene/geo/Tessellator$Node;
            0   21     1                b  Lorg/apache/lucene/geo/Tessellator$Node;
            0   21     2  edgeFromPolygon  Z
            1   21     3               a2  Lorg/apache/lucene/geo/Tessellator$Node;
            2   21     4               b2  Lorg/apache/lucene/geo/Tessellator$Node;
            3   21     5               an  Lorg/apache/lucene/geo/Tessellator$Node;
            4   21     6               bp  Lorg/apache/lucene/geo/Tessellator$Node;
    MethodParameters:
                 Name  Flags
      a                final
      b                final
      edgeFromPolygon  

  private static final boolean isValidDiagonal(org.apache.lucene.geo.Tessellator$Node, org.apache.lucene.geo.Tessellator$Node);
    descriptor: (Lorg/apache/lucene/geo/Tessellator$Node;Lorg/apache/lucene/geo/Tessellator$Node;)Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Code:
      stack=9, locals=2, args_size=2
        start local 0 // org.apache.lucene.geo.Tessellator$Node a
        start local 1 // org.apache.lucene.geo.Tessellator$Node b
         0: .line 752
            aload 0 /* a */
            aload 1 /* b */
            invokestatic org.apache.lucene.geo.Tessellator.isVertexEquals:(Lorg/apache/lucene/geo/Tessellator$Node;Lorg/apache/lucene/geo/Tessellator$Node;)Z
            ifeq 2
         1: .line 754
            aload 0 /* a */
            aload 1 /* b */
            invokestatic org.apache.lucene.geo.Tessellator.isCWPolygon:(Lorg/apache/lucene/geo/Tessellator$Node;Lorg/apache/lucene/geo/Tessellator$Node;)Z
            ireturn
         2: .line 756
      StackMap locals:
      StackMap stack:
            aload 0 /* a */
            getfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
            getfield org.apache.lucene.geo.Tessellator$Node.idx:I
            aload 1 /* b */
            getfield org.apache.lucene.geo.Tessellator$Node.idx:I
            if_icmpeq 7
            aload 0 /* a */
            getfield org.apache.lucene.geo.Tessellator$Node.previous:Lorg/apache/lucene/geo/Tessellator$Node;
            getfield org.apache.lucene.geo.Tessellator$Node.idx:I
            aload 1 /* b */
            getfield org.apache.lucene.geo.Tessellator$Node.idx:I
            if_icmpeq 7
         3: .line 757
            aload 0 /* a */
            aload 0 /* a */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getX:()D
            aload 0 /* a */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getY:()D
            aload 1 /* b */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getX:()D
            aload 1 /* b */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getY:()D
            invokestatic org.apache.lucene.geo.Tessellator.isIntersectingPolygon:(Lorg/apache/lucene/geo/Tessellator$Node;DDDD)Z
            ifne 7
         4: .line 758
            aload 0 /* a */
            aload 1 /* b */
            invokestatic org.apache.lucene.geo.Tessellator.isLocallyInside:(Lorg/apache/lucene/geo/Tessellator$Node;Lorg/apache/lucene/geo/Tessellator$Node;)Z
            ifeq 7
            aload 1 /* b */
            aload 0 /* a */
            invokestatic org.apache.lucene.geo.Tessellator.isLocallyInside:(Lorg/apache/lucene/geo/Tessellator$Node;Lorg/apache/lucene/geo/Tessellator$Node;)Z
            ifeq 7
         5: .line 759
            aload 0 /* a */
            aload 0 /* a */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getX:()D
            aload 0 /* a */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getY:()D
            aload 1 /* b */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getX:()D
            aload 1 /* b */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getY:()D
            invokestatic org.apache.lucene.geo.Tessellator.middleInsert:(Lorg/apache/lucene/geo/Tessellator$Node;DDDD)Z
            ifeq 7
         6: .line 756
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         7: iconst_0
            ireturn
        end local 1 // org.apache.lucene.geo.Tessellator$Node b
        end local 0 // org.apache.lucene.geo.Tessellator$Node a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0     a  Lorg/apache/lucene/geo/Tessellator$Node;
            0    8     1     b  Lorg/apache/lucene/geo/Tessellator$Node;
    MethodParameters:
      Name  Flags
      a     final
      b     final

  private static boolean isCWPolygon(org.apache.lucene.geo.Tessellator$Node, org.apache.lucene.geo.Tessellator$Node);
    descriptor: (Lorg/apache/lucene/geo/Tessellator$Node;Lorg/apache/lucene/geo/Tessellator$Node;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=14, locals=5, args_size=2
        start local 0 // org.apache.lucene.geo.Tessellator$Node start
        start local 1 // org.apache.lucene.geo.Tessellator$Node end
         0: .line 764
            aload 0 /* start */
            astore 2 /* next */
        start local 2 // org.apache.lucene.geo.Tessellator$Node next
         1: .line 765
            dconst_0
            dstore 3 /* windingSum */
        start local 3 // double windingSum
         2: .line 768
      StackMap locals: org.apache.lucene.geo.Tessellator$Node double
      StackMap stack:
            dload 3 /* windingSum */
            aload 2 /* next */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getX:()D
            aload 2 /* next */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getY:()D
            aload 2 /* next */
            getfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getX:()D
            aload 2 /* next */
            getfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getY:()D
            aload 1 /* end */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getX:()D
            aload 1 /* end */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getY:()D
            invokestatic org.apache.lucene.geo.Tessellator.area:(DDDDDD)D
            dadd
            dstore 3 /* windingSum */
         3: .line 769
            aload 2 /* next */
            getfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
            astore 2 /* next */
         4: .line 770
            aload 2 /* next */
            getfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
            aload 1 /* end */
            if_acmpne 2
         5: .line 772
            dload 3 /* windingSum */
            dconst_0
            dcmpg
            ifge 6
            iconst_1
            goto 7
      StackMap locals:
      StackMap stack:
         6: iconst_0
      StackMap locals:
      StackMap stack: int
         7: ireturn
        end local 3 // double windingSum
        end local 2 // org.apache.lucene.geo.Tessellator$Node next
        end local 1 // org.apache.lucene.geo.Tessellator$Node end
        end local 0 // org.apache.lucene.geo.Tessellator$Node start
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    8     0       start  Lorg/apache/lucene/geo/Tessellator$Node;
            0    8     1         end  Lorg/apache/lucene/geo/Tessellator$Node;
            1    8     2        next  Lorg/apache/lucene/geo/Tessellator$Node;
            2    8     3  windingSum  D
    MethodParameters:
       Name  Flags
      start  final
      end    final

  private static final boolean isLocallyInside(org.apache.lucene.geo.Tessellator$Node, org.apache.lucene.geo.Tessellator$Node);
    descriptor: (Lorg/apache/lucene/geo/Tessellator$Node;Lorg/apache/lucene/geo/Tessellator$Node;)Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Code:
      stack=12, locals=4, args_size=2
        start local 0 // org.apache.lucene.geo.Tessellator$Node a
        start local 1 // org.apache.lucene.geo.Tessellator$Node b
         0: .line 776
            aload 0 /* a */
            getfield org.apache.lucene.geo.Tessellator$Node.previous:Lorg/apache/lucene/geo/Tessellator$Node;
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getX:()D
            aload 0 /* a */
            getfield org.apache.lucene.geo.Tessellator$Node.previous:Lorg/apache/lucene/geo/Tessellator$Node;
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getY:()D
            aload 0 /* a */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getX:()D
            aload 0 /* a */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getY:()D
            aload 0 /* a */
            getfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getX:()D
            aload 0 /* a */
            getfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getY:()D
            invokestatic org.apache.lucene.geo.Tessellator.area:(DDDDDD)D
            dstore 2 /* area */
        start local 2 // double area
         1: .line 777
            dload 2 /* area */
            dconst_0
            dcmpl
            ifne 3
         2: .line 779
            iconst_0
            ireturn
         3: .line 780
      StackMap locals: double
      StackMap stack:
            dload 2 /* area */
            dconst_0
            dcmpg
            ifge 8
         4: .line 782
            aload 0 /* a */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getX:()D
            aload 0 /* a */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getY:()D
            aload 1 /* b */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getX:()D
            aload 1 /* b */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getY:()D
            aload 0 /* a */
            getfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getX:()D
            aload 0 /* a */
            getfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getY:()D
            invokestatic org.apache.lucene.geo.Tessellator.area:(DDDDDD)D
            dconst_0
            dcmpl
            iflt 7
         5: .line 783
            aload 0 /* a */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getX:()D
            aload 0 /* a */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getY:()D
            aload 0 /* a */
            getfield org.apache.lucene.geo.Tessellator$Node.previous:Lorg/apache/lucene/geo/Tessellator$Node;
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getX:()D
            aload 0 /* a */
            getfield org.apache.lucene.geo.Tessellator$Node.previous:Lorg/apache/lucene/geo/Tessellator$Node;
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getY:()D
            aload 1 /* b */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getX:()D
            aload 1 /* b */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getY:()D
            invokestatic org.apache.lucene.geo.Tessellator.area:(DDDDDD)D
            dconst_0
         6: .line 782
            dcmpl
            iflt 7
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         7: iconst_0
            ireturn
         8: .line 786
      StackMap locals:
      StackMap stack:
            aload 0 /* a */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getX:()D
            aload 0 /* a */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getY:()D
            aload 1 /* b */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getX:()D
            aload 1 /* b */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getY:()D
            aload 0 /* a */
            getfield org.apache.lucene.geo.Tessellator$Node.previous:Lorg/apache/lucene/geo/Tessellator$Node;
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getX:()D
            aload 0 /* a */
            getfield org.apache.lucene.geo.Tessellator$Node.previous:Lorg/apache/lucene/geo/Tessellator$Node;
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getY:()D
            invokestatic org.apache.lucene.geo.Tessellator.area:(DDDDDD)D
            dconst_0
            dcmpg
            iflt 11
         9: .line 787
            aload 0 /* a */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getX:()D
            aload 0 /* a */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getY:()D
            aload 0 /* a */
            getfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getX:()D
            aload 0 /* a */
            getfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getY:()D
            aload 1 /* b */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getX:()D
            aload 1 /* b */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getY:()D
            invokestatic org.apache.lucene.geo.Tessellator.area:(DDDDDD)D
            dconst_0
        10: .line 786
            dcmpg
            iflt 11
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
        11: iconst_1
            ireturn
        end local 2 // double area
        end local 1 // org.apache.lucene.geo.Tessellator$Node b
        end local 0 // org.apache.lucene.geo.Tessellator$Node a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   12     0     a  Lorg/apache/lucene/geo/Tessellator$Node;
            0   12     1     b  Lorg/apache/lucene/geo/Tessellator$Node;
            1   12     2  area  D
    MethodParameters:
      Name  Flags
      a     final
      b     final

  private static final boolean middleInsert(org.apache.lucene.geo.Tessellator$Node, double, double, double, double);
    descriptor: (Lorg/apache/lucene/geo/Tessellator$Node;DDDD)Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Code:
      stack=8, locals=16, args_size=5
        start local 0 // org.apache.lucene.geo.Tessellator$Node start
        start local 1 // double x0
        start local 3 // double y0
        start local 5 // double x1
        start local 7 // double y1
         0: .line 794
            aload 0 /* start */
            astore 9 /* node */
        start local 9 // org.apache.lucene.geo.Tessellator$Node node
         1: .line 796
            iconst_0
            istore 11 /* lIsInside */
        start local 11 // boolean lIsInside
         2: .line 797
            dload 1 /* x0 */
            dload 5 /* x1 */
            dadd
            ldc 2.0
            ddiv
            dstore 12 /* lDx */
        start local 12 // double lDx
         3: .line 798
            dload 3 /* y0 */
            dload 7 /* y1 */
            dadd
            ldc 2.0
            ddiv
            dstore 14 /* lDy */
        start local 14 // double lDy
         4: .line 800
      StackMap locals: org.apache.lucene.geo.Tessellator$Node double double double double org.apache.lucene.geo.Tessellator$Node top int double double
      StackMap stack:
            aload 9 /* node */
            getfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
            astore 10 /* nextNode */
        start local 10 // org.apache.lucene.geo.Tessellator$Node nextNode
         5: .line 801
            aload 9 /* node */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getY:()D
            dload 14 /* lDy */
            dcmpl
            ifle 6
            iconst_1
            goto 7
      StackMap locals: org.apache.lucene.geo.Tessellator$Node double double double double org.apache.lucene.geo.Tessellator$Node org.apache.lucene.geo.Tessellator$Node int double double
      StackMap stack:
         6: iconst_0
      StackMap locals:
      StackMap stack: int
         7: aload 10 /* nextNode */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getY:()D
            dload 14 /* lDy */
            dcmpl
            ifle 8
            iconst_1
            goto 9
      StackMap locals:
      StackMap stack: int
         8: iconst_0
      StackMap locals: org.apache.lucene.geo.Tessellator$Node double double double double org.apache.lucene.geo.Tessellator$Node org.apache.lucene.geo.Tessellator$Node int double double
      StackMap stack: int int
         9: if_icmpeq 14
        10: .line 802
            dload 12 /* lDx */
            aload 10 /* nextNode */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getX:()D
            aload 9 /* node */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getX:()D
            dsub
            dload 14 /* lDy */
            aload 9 /* node */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getY:()D
            dsub
            dmul
            aload 10 /* nextNode */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getY:()D
            aload 9 /* node */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getY:()D
            dsub
            ddiv
            aload 9 /* node */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getX:()D
            dadd
            dcmpg
            ifge 14
        11: .line 803
            iload 11 /* lIsInside */
            ifeq 12
            iconst_0
            goto 13
      StackMap locals:
      StackMap stack:
        12: iconst_1
      StackMap locals:
      StackMap stack: int
        13: istore 11 /* lIsInside */
        14: .line 805
      StackMap locals:
      StackMap stack:
            aload 9 /* node */
            getfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
            astore 9 /* node */
        15: .line 806
            aload 9 /* node */
            aload 0 /* start */
            if_acmpne 4
        16: .line 807
            iload 11 /* lIsInside */
            ireturn
        end local 14 // double lDy
        end local 12 // double lDx
        end local 11 // boolean lIsInside
        end local 10 // org.apache.lucene.geo.Tessellator$Node nextNode
        end local 9 // org.apache.lucene.geo.Tessellator$Node node
        end local 7 // double y1
        end local 5 // double x1
        end local 3 // double y0
        end local 1 // double x0
        end local 0 // org.apache.lucene.geo.Tessellator$Node start
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   17     0      start  Lorg/apache/lucene/geo/Tessellator$Node;
            0   17     1         x0  D
            0   17     3         y0  D
            0   17     5         x1  D
            0   17     7         y1  D
            1   17     9       node  Lorg/apache/lucene/geo/Tessellator$Node;
            5   17    10   nextNode  Lorg/apache/lucene/geo/Tessellator$Node;
            2   17    11  lIsInside  Z
            3   17    12        lDx  D
            4   17    14        lDy  D
    MethodParameters:
       Name  Flags
      start  final
      x0     final
      y0     final
      x1     final
      y1     final

  private static final boolean isIntersectingPolygon(org.apache.lucene.geo.Tessellator$Node, double, double, double, double);
    descriptor: (Lorg/apache/lucene/geo/Tessellator$Node;DDDD)Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Code:
      stack=16, locals=11, args_size=5
        start local 0 // org.apache.lucene.geo.Tessellator$Node start
        start local 1 // double x0
        start local 3 // double y0
        start local 5 // double x1
        start local 7 // double y1
         0: .line 813
            aload 0 /* start */
            astore 9 /* node */
        start local 9 // org.apache.lucene.geo.Tessellator$Node node
         1: .line 816
      StackMap locals: org.apache.lucene.geo.Tessellator$Node
      StackMap stack:
            aload 9 /* node */
            getfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
            astore 10 /* nextNode */
        start local 10 // org.apache.lucene.geo.Tessellator$Node nextNode
         2: .line 817
            aload 9 /* node */
            dload 1 /* x0 */
            dload 3 /* y0 */
            invokestatic org.apache.lucene.geo.Tessellator.isVertexEquals:(Lorg/apache/lucene/geo/Tessellator$Node;DD)Z
            ifne 5
            aload 9 /* node */
            dload 5 /* x1 */
            dload 7 /* y1 */
            invokestatic org.apache.lucene.geo.Tessellator.isVertexEquals:(Lorg/apache/lucene/geo/Tessellator$Node;DD)Z
            ifne 5
         3: .line 818
            aload 9 /* node */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getX:()D
            aload 9 /* node */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getY:()D
            aload 10 /* nextNode */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getX:()D
            aload 10 /* nextNode */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getY:()D
            dload 1 /* x0 */
            dload 3 /* y0 */
            dload 5 /* x1 */
            dload 7 /* y1 */
            invokestatic org.apache.lucene.geo.Tessellator.linesIntersect:(DDDDDDDD)Z
            ifeq 5
         4: .line 819
            iconst_1
            ireturn
         5: .line 822
      StackMap locals: org.apache.lucene.geo.Tessellator$Node
      StackMap stack:
            aload 10 /* nextNode */
            astore 9 /* node */
         6: .line 823
            aload 9 /* node */
            aload 0 /* start */
            if_acmpne 1
         7: .line 825
            iconst_0
            ireturn
        end local 10 // org.apache.lucene.geo.Tessellator$Node nextNode
        end local 9 // org.apache.lucene.geo.Tessellator$Node node
        end local 7 // double y1
        end local 5 // double x1
        end local 3 // double y0
        end local 1 // double x0
        end local 0 // org.apache.lucene.geo.Tessellator$Node start
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    8     0     start  Lorg/apache/lucene/geo/Tessellator$Node;
            0    8     1        x0  D
            0    8     3        y0  D
            0    8     5        x1  D
            0    8     7        y1  D
            1    8     9      node  Lorg/apache/lucene/geo/Tessellator$Node;
            2    8    10  nextNode  Lorg/apache/lucene/geo/Tessellator$Node;
    MethodParameters:
       Name  Flags
      start  final
      x0     final
      y0     final
      x1     final
      y1     final

  public static final boolean linesIntersect(double, double, double, double, double, double, double, double);
    descriptor: (DDDDDDDD)Z
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    Code:
      stack=13, locals=16, args_size=8
        start local 0 // double aX0
        start local 2 // double aY0
        start local 4 // double aX1
        start local 6 // double aY1
        start local 8 // double bX0
        start local 10 // double bY0
        start local 12 // double bX1
        start local 14 // double bY1
         0: .line 831
            dload 0 /* aX0 */
            dload 2 /* aY0 */
            dload 4 /* aX1 */
            dload 6 /* aY1 */
            dload 8 /* bX0 */
            dload 10 /* bY0 */
            invokestatic org.apache.lucene.geo.Tessellator.area:(DDDDDD)D
            dconst_0
            dcmpl
            ifle 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: dload 0 /* aX0 */
            dload 2 /* aY0 */
            dload 4 /* aX1 */
            dload 6 /* aY1 */
            dload 12 /* bX1 */
            dload 14 /* bY1 */
            invokestatic org.apache.lucene.geo.Tessellator.area:(DDDDDD)D
            dconst_0
            dcmpl
            ifle 3
            iconst_1
            goto 4
      StackMap locals:
      StackMap stack: int
         3: iconst_0
      StackMap locals: double double double double double double double double
      StackMap stack: int int
         4: if_icmpeq 11
         5: .line 832
            dload 8 /* bX0 */
            dload 10 /* bY0 */
            dload 12 /* bX1 */
            dload 14 /* bY1 */
            dload 0 /* aX0 */
            dload 2 /* aY0 */
            invokestatic org.apache.lucene.geo.Tessellator.area:(DDDDDD)D
            dconst_0
            dcmpl
            ifle 6
            iconst_1
            goto 7
      StackMap locals:
      StackMap stack:
         6: iconst_0
      StackMap locals:
      StackMap stack: int
         7: dload 8 /* bX0 */
            dload 10 /* bY0 */
            dload 12 /* bX1 */
            dload 14 /* bY1 */
            dload 4 /* aX1 */
            dload 6 /* aY1 */
            invokestatic org.apache.lucene.geo.Tessellator.area:(DDDDDD)D
            dconst_0
            dcmpl
            ifle 8
            iconst_1
            goto 9
      StackMap locals:
      StackMap stack: int
         8: iconst_0
      StackMap locals: double double double double double double double double
      StackMap stack: int int
         9: if_icmpeq 11
        10: .line 831
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
        11: iconst_0
            ireturn
        end local 14 // double bY1
        end local 12 // double bX1
        end local 10 // double bY0
        end local 8 // double bX0
        end local 6 // double aY1
        end local 4 // double aX1
        end local 2 // double aY0
        end local 0 // double aX0
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   12     0   aX0  D
            0   12     2   aY0  D
            0   12     4   aX1  D
            0   12     6   aY1  D
            0   12     8   bX0  D
            0   12    10   bY0  D
            0   12    12   bX1  D
            0   12    14   bY1  D
    MethodParameters:
      Name  Flags
      aX0   final
      aY0   final
      aX1   final
      aY1   final
      bX0   final
      bY0   final
      bX1   final
      bY1   final

  private static final void sortByMortonWithReset(org.apache.lucene.geo.Tessellator$Node);
    descriptor: (Lorg/apache/lucene/geo/Tessellator$Node;)V
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // org.apache.lucene.geo.Tessellator$Node start
         0: .line 837
            aload 0 /* start */
            astore 1 /* next */
        start local 1 // org.apache.lucene.geo.Tessellator$Node next
         1: .line 839
      StackMap locals: org.apache.lucene.geo.Tessellator$Node
      StackMap stack:
            aload 1 /* next */
            aload 1 /* next */
            getfield org.apache.lucene.geo.Tessellator$Node.previous:Lorg/apache/lucene/geo/Tessellator$Node;
            putfield org.apache.lucene.geo.Tessellator$Node.previousZ:Lorg/apache/lucene/geo/Tessellator$Node;
         2: .line 840
            aload 1 /* next */
            aload 1 /* next */
            getfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
            putfield org.apache.lucene.geo.Tessellator$Node.nextZ:Lorg/apache/lucene/geo/Tessellator$Node;
         3: .line 841
            aload 1 /* next */
            getfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
            astore 1 /* next */
         4: .line 842
            aload 1 /* next */
            aload 0 /* start */
            if_acmpne 1
         5: .line 843
            aload 0 /* start */
            invokestatic org.apache.lucene.geo.Tessellator.sortByMorton:(Lorg/apache/lucene/geo/Tessellator$Node;)V
         6: .line 844
            return
        end local 1 // org.apache.lucene.geo.Tessellator$Node next
        end local 0 // org.apache.lucene.geo.Tessellator$Node start
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    7     0  start  Lorg/apache/lucene/geo/Tessellator$Node;
            1    7     1   next  Lorg/apache/lucene/geo/Tessellator$Node;
    MethodParameters:
       Name  Flags
      start  

  private static final void sortByMorton(org.apache.lucene.geo.Tessellator$Node);
    descriptor: (Lorg/apache/lucene/geo/Tessellator$Node;)V
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.lucene.geo.Tessellator$Node start
         0: .line 848
            aload 0 /* start */
            getfield org.apache.lucene.geo.Tessellator$Node.previousZ:Lorg/apache/lucene/geo/Tessellator$Node;
            aconst_null
            putfield org.apache.lucene.geo.Tessellator$Node.nextZ:Lorg/apache/lucene/geo/Tessellator$Node;
         1: .line 849
            aload 0 /* start */
            aconst_null
            putfield org.apache.lucene.geo.Tessellator$Node.previousZ:Lorg/apache/lucene/geo/Tessellator$Node;
         2: .line 851
            aload 0 /* start */
            invokestatic org.apache.lucene.geo.Tessellator.tathamSort:(Lorg/apache/lucene/geo/Tessellator$Node;)V
         3: .line 852
            return
        end local 0 // org.apache.lucene.geo.Tessellator$Node start
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0  start  Lorg/apache/lucene/geo/Tessellator$Node;
    MethodParameters:
       Name  Flags
      start  

  private static final void tathamSort(org.apache.lucene.geo.Tessellator$Node);
    descriptor: (Lorg/apache/lucene/geo/Tessellator$Node;)V
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Code:
      stack=4, locals=10, args_size=1
        start local 0 // org.apache.lucene.geo.Tessellator$Node list
         0: .line 861
            iconst_1
            istore 9 /* inSize */
        start local 9 // int inSize
         1: .line 863
            aload 0 /* list */
            ifnonnull 3
         2: .line 864
            return
         3: .line 868
      StackMap locals: org.apache.lucene.geo.Tessellator$Node top top top top top top top top int
      StackMap stack:
            aload 0 /* list */
            astore 1 /* p */
        start local 1 // org.apache.lucene.geo.Tessellator$Node p
         4: .line 869
            aconst_null
            astore 0 /* list */
         5: .line 870
            aconst_null
            astore 4 /* tail */
        start local 4 // org.apache.lucene.geo.Tessellator$Node tail
         6: .line 872
            iconst_0
            istore 6 /* numMerges */
        start local 6 // int numMerges
         7: .line 874
            goto 33
         8: .line 875
      StackMap locals: org.apache.lucene.geo.Tessellator$Node org.apache.lucene.geo.Tessellator$Node top top org.apache.lucene.geo.Tessellator$Node top int top top int
      StackMap stack:
            iinc 6 /* numMerges */ 1
         9: .line 877
            aload 1 /* p */
            astore 2 /* q */
        start local 2 // org.apache.lucene.geo.Tessellator$Node q
        10: .line 878
            iconst_0
            istore 5 /* i */
        start local 5 // int i
        11: iconst_0
            istore 7 /* pSize */
        start local 7 // int pSize
        12: goto 14
      StackMap locals: org.apache.lucene.geo.Tessellator$Node org.apache.lucene.geo.Tessellator$Node org.apache.lucene.geo.Tessellator$Node top org.apache.lucene.geo.Tessellator$Node int int int top int
      StackMap stack:
        13: iinc 5 /* i */ 1
            iinc 7 /* pSize */ 1
            aload 2 /* q */
            getfield org.apache.lucene.geo.Tessellator$Node.nextZ:Lorg/apache/lucene/geo/Tessellator$Node;
            astore 2 /* q */
      StackMap locals:
      StackMap stack:
        14: iload 5 /* i */
            iload 9 /* inSize */
            if_icmpge 15
            aload 2 /* q */
            ifnonnull 13
        15: .line 880
      StackMap locals:
      StackMap stack:
            iload 9 /* inSize */
            istore 8 /* qSize */
        start local 8 // int qSize
        16: .line 883
            goto 31
        17: .line 884
      StackMap locals: org.apache.lucene.geo.Tessellator$Node org.apache.lucene.geo.Tessellator$Node org.apache.lucene.geo.Tessellator$Node top org.apache.lucene.geo.Tessellator$Node int int int int int
      StackMap stack:
            iload 7 /* pSize */
            ifeq 22
            iload 8 /* qSize */
            ifeq 18
            aload 2 /* q */
            ifnull 18
            aload 1 /* p */
            getfield org.apache.lucene.geo.Tessellator$Node.morton:J
            aload 2 /* q */
            getfield org.apache.lucene.geo.Tessellator$Node.morton:J
            invokestatic java.lang.Long.compareUnsigned:(JJ)I
            ifgt 22
        18: .line 885
      StackMap locals:
      StackMap stack:
            aload 1 /* p */
            astore 3 /* e */
        start local 3 // org.apache.lucene.geo.Tessellator$Node e
        19: .line 886
            aload 1 /* p */
            getfield org.apache.lucene.geo.Tessellator$Node.nextZ:Lorg/apache/lucene/geo/Tessellator$Node;
            astore 1 /* p */
        20: .line 887
            iinc 7 /* pSize */ -1
        21: .line 888
            goto 25
        end local 3 // org.apache.lucene.geo.Tessellator$Node e
        22: .line 889
      StackMap locals:
      StackMap stack:
            aload 2 /* q */
            astore 3 /* e */
        start local 3 // org.apache.lucene.geo.Tessellator$Node e
        23: .line 890
            aload 2 /* q */
            getfield org.apache.lucene.geo.Tessellator$Node.nextZ:Lorg/apache/lucene/geo/Tessellator$Node;
            astore 2 /* q */
        24: .line 891
            iinc 8 /* qSize */ -1
        25: .line 894
      StackMap locals: org.apache.lucene.geo.Tessellator$Node org.apache.lucene.geo.Tessellator$Node org.apache.lucene.geo.Tessellator$Node org.apache.lucene.geo.Tessellator$Node org.apache.lucene.geo.Tessellator$Node int int int int int
      StackMap stack:
            aload 4 /* tail */
            ifnull 28
        26: .line 895
            aload 4 /* tail */
            aload 3 /* e */
            putfield org.apache.lucene.geo.Tessellator$Node.nextZ:Lorg/apache/lucene/geo/Tessellator$Node;
        27: .line 896
            goto 29
        28: .line 897
      StackMap locals:
      StackMap stack:
            aload 3 /* e */
            astore 0 /* list */
        29: .line 900
      StackMap locals:
      StackMap stack:
            aload 3 /* e */
            aload 4 /* tail */
            putfield org.apache.lucene.geo.Tessellator$Node.previousZ:Lorg/apache/lucene/geo/Tessellator$Node;
        30: .line 901
            aload 3 /* e */
            astore 4 /* tail */
        end local 3 // org.apache.lucene.geo.Tessellator$Node e
        31: .line 883
      StackMap locals: org.apache.lucene.geo.Tessellator$Node org.apache.lucene.geo.Tessellator$Node org.apache.lucene.geo.Tessellator$Node top org.apache.lucene.geo.Tessellator$Node int int int int int
      StackMap stack:
            iload 7 /* pSize */
            ifgt 17
            iload 8 /* qSize */
            ifle 32
            aload 2 /* q */
            ifnonnull 17
        32: .line 904
      StackMap locals:
      StackMap stack:
            aload 2 /* q */
            astore 1 /* p */
        end local 8 // int qSize
        end local 7 // int pSize
        end local 5 // int i
        end local 2 // org.apache.lucene.geo.Tessellator$Node q
        33: .line 874
      StackMap locals: org.apache.lucene.geo.Tessellator$Node org.apache.lucene.geo.Tessellator$Node top top org.apache.lucene.geo.Tessellator$Node top int top top int
      StackMap stack:
            aload 1 /* p */
            ifnonnull 8
        34: .line 907
            aload 4 /* tail */
            aconst_null
            putfield org.apache.lucene.geo.Tessellator$Node.nextZ:Lorg/apache/lucene/geo/Tessellator$Node;
        35: .line 908
            iload 9 /* inSize */
            iconst_2
            imul
            istore 9 /* inSize */
        36: .line 909
            iload 6 /* numMerges */
            iconst_1
        37: .line 867
            if_icmpgt 3
        38: .line 910
            return
        end local 9 // int inSize
        end local 6 // int numMerges
        end local 4 // org.apache.lucene.geo.Tessellator$Node tail
        end local 1 // org.apache.lucene.geo.Tessellator$Node p
        end local 0 // org.apache.lucene.geo.Tessellator$Node list
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   39     0       list  Lorg/apache/lucene/geo/Tessellator$Node;
            4   39     1          p  Lorg/apache/lucene/geo/Tessellator$Node;
           10   33     2          q  Lorg/apache/lucene/geo/Tessellator$Node;
           19   22     3          e  Lorg/apache/lucene/geo/Tessellator$Node;
           23   31     3          e  Lorg/apache/lucene/geo/Tessellator$Node;
            6   39     4       tail  Lorg/apache/lucene/geo/Tessellator$Node;
           11   33     5          i  I
            7   39     6  numMerges  I
           12   33     7      pSize  I
           16   33     8      qSize  I
            1   39     9     inSize  I
    MethodParameters:
      Name  Flags
      list  

  private static final org.apache.lucene.geo.Tessellator$Node filterPoints(org.apache.lucene.geo.Tessellator$Node, org.apache.lucene.geo.Tessellator$Node);
    descriptor: (Lorg/apache/lucene/geo/Tessellator$Node;Lorg/apache/lucene/geo/Tessellator$Node;)Lorg/apache/lucene/geo/Tessellator$Node;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Code:
      stack=12, locals=7, args_size=2
        start local 0 // org.apache.lucene.geo.Tessellator$Node start
        start local 1 // org.apache.lucene.geo.Tessellator$Node end
         0: .line 914
            aload 0 /* start */
            ifnonnull 2
         1: .line 915
            aload 0 /* start */
            areturn
         2: .line 918
      StackMap locals:
      StackMap stack:
            aload 1 /* end */
            ifnonnull 4
         3: .line 919
            aload 0 /* start */
            astore 1 /* end */
         4: .line 922
      StackMap locals:
      StackMap stack:
            aload 0 /* start */
            astore 2 /* node */
        start local 2 // org.apache.lucene.geo.Tessellator$Node node
         5: .line 928
      StackMap locals: org.apache.lucene.geo.Tessellator$Node
      StackMap stack:
            iconst_0
            istore 5 /* continueIteration */
        start local 5 // boolean continueIteration
         6: .line 929
            aload 2 /* node */
            getfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
            astore 3 /* nextNode */
        start local 3 // org.apache.lucene.geo.Tessellator$Node nextNode
         7: .line 930
            aload 2 /* node */
            getfield org.apache.lucene.geo.Tessellator$Node.previous:Lorg/apache/lucene/geo/Tessellator$Node;
            astore 4 /* prevNode */
        start local 4 // org.apache.lucene.geo.Tessellator$Node prevNode
         8: .line 932
            aload 2 /* node */
            aload 3 /* nextNode */
            invokestatic org.apache.lucene.geo.Tessellator.isVertexEquals:(Lorg/apache/lucene/geo/Tessellator$Node;Lorg/apache/lucene/geo/Tessellator$Node;)Z
            ifne 12
         9: .line 933
            aload 4 /* prevNode */
            aload 3 /* nextNode */
            invokestatic org.apache.lucene.geo.Tessellator.isVertexEquals:(Lorg/apache/lucene/geo/Tessellator$Node;Lorg/apache/lucene/geo/Tessellator$Node;)Z
            ifne 12
        10: .line 934
            aload 4 /* prevNode */
            getfield org.apache.lucene.geo.Tessellator$Node.isNextEdgeFromPolygon:Z
            aload 2 /* node */
            getfield org.apache.lucene.geo.Tessellator$Node.isNextEdgeFromPolygon:Z
            if_icmpne 21
        11: .line 935
            aload 4 /* prevNode */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getX:()D
            aload 4 /* prevNode */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getY:()D
            aload 2 /* node */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getX:()D
            aload 2 /* node */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getY:()D
            aload 3 /* nextNode */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getX:()D
            aload 3 /* nextNode */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getY:()D
            invokestatic org.apache.lucene.geo.Tessellator.area:(DDDDDD)D
            dconst_0
            dcmpl
            ifne 21
        12: .line 937
      StackMap locals: org.apache.lucene.geo.Tessellator$Node org.apache.lucene.geo.Tessellator$Node int
      StackMap stack:
            aload 4 /* prevNode */
            getfield org.apache.lucene.geo.Tessellator$Node.isNextEdgeFromPolygon:Z
            aload 2 /* node */
            getfield org.apache.lucene.geo.Tessellator$Node.isNextEdgeFromPolygon:Z
            if_icmpeq 13
            iconst_1
            goto 14
      StackMap locals:
      StackMap stack:
        13: aload 4 /* prevNode */
            getfield org.apache.lucene.geo.Tessellator$Node.isNextEdgeFromPolygon:Z
      StackMap locals:
      StackMap stack: int
        14: istore 6 /* nextEdgeFromPol */
        start local 6 // boolean nextEdgeFromPol
        15: .line 938
            aload 2 /* node */
            iload 6 /* nextEdgeFromPol */
            invokestatic org.apache.lucene.geo.Tessellator.removeNode:(Lorg/apache/lucene/geo/Tessellator$Node;Z)V
        16: .line 939
            aload 4 /* prevNode */
            dup
            astore 1 /* end */
            astore 2 /* node */
        17: .line 941
            aload 2 /* node */
            aload 3 /* nextNode */
            if_acmpne 19
        18: .line 942
            goto 23
        19: .line 944
      StackMap locals: int
      StackMap stack:
            iconst_1
            istore 5 /* continueIteration */
        end local 6 // boolean nextEdgeFromPol
        20: .line 945
            goto 22
        21: .line 946
      StackMap locals:
      StackMap stack:
            aload 3 /* nextNode */
            astore 2 /* node */
        22: .line 948
      StackMap locals:
      StackMap stack:
            iload 5 /* continueIteration */
            ifne 5
            aload 2 /* node */
            aload 1 /* end */
            if_acmpne 5
        23: .line 949
      StackMap locals:
      StackMap stack:
            aload 1 /* end */
            areturn
        end local 5 // boolean continueIteration
        end local 4 // org.apache.lucene.geo.Tessellator$Node prevNode
        end local 3 // org.apache.lucene.geo.Tessellator$Node nextNode
        end local 2 // org.apache.lucene.geo.Tessellator$Node node
        end local 1 // org.apache.lucene.geo.Tessellator$Node end
        end local 0 // org.apache.lucene.geo.Tessellator$Node start
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   24     0              start  Lorg/apache/lucene/geo/Tessellator$Node;
            0   24     1                end  Lorg/apache/lucene/geo/Tessellator$Node;
            5   24     2               node  Lorg/apache/lucene/geo/Tessellator$Node;
            7   24     3           nextNode  Lorg/apache/lucene/geo/Tessellator$Node;
            8   24     4           prevNode  Lorg/apache/lucene/geo/Tessellator$Node;
            6   24     5  continueIteration  Z
           15   20     6    nextEdgeFromPol  Z
    MethodParameters:
       Name  Flags
      start  final
      end    

  private static final org.apache.lucene.geo.Tessellator$Node insertNode(double[], double[], int, int, org.apache.lucene.geo.Tessellator$Node, boolean);
    descriptor: ([D[DIILorg/apache/lucene/geo/Tessellator$Node;Z)Lorg/apache/lucene/geo/Tessellator$Node;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Code:
      stack=7, locals=7, args_size=6
        start local 0 // double[] x
        start local 1 // double[] y
        start local 2 // int index
        start local 3 // int vertexIndex
        start local 4 // org.apache.lucene.geo.Tessellator$Node lastNode
        start local 5 // boolean isGeo
         0: .line 954
            new org.apache.lucene.geo.Tessellator$Node
            dup
            aload 0 /* x */
            aload 1 /* y */
            iload 2 /* index */
            iload 3 /* vertexIndex */
            iload 5 /* isGeo */
            invokespecial org.apache.lucene.geo.Tessellator$Node.<init>:([D[DIIZ)V
            astore 6 /* node */
        start local 6 // org.apache.lucene.geo.Tessellator$Node node
         1: .line 955
            aload 4 /* lastNode */
            ifnonnull 7
         2: .line 956
            aload 6 /* node */
            aload 6 /* node */
            putfield org.apache.lucene.geo.Tessellator$Node.previous:Lorg/apache/lucene/geo/Tessellator$Node;
         3: .line 957
            aload 6 /* node */
            aload 6 /* node */
            putfield org.apache.lucene.geo.Tessellator$Node.previousZ:Lorg/apache/lucene/geo/Tessellator$Node;
         4: .line 958
            aload 6 /* node */
            aload 6 /* node */
            putfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
         5: .line 959
            aload 6 /* node */
            aload 6 /* node */
            putfield org.apache.lucene.geo.Tessellator$Node.nextZ:Lorg/apache/lucene/geo/Tessellator$Node;
         6: .line 960
            goto 15
         7: .line 961
      StackMap locals: org.apache.lucene.geo.Tessellator$Node
      StackMap stack:
            aload 6 /* node */
            aload 4 /* lastNode */
            getfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
            putfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
         8: .line 962
            aload 6 /* node */
            aload 4 /* lastNode */
            getfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
            putfield org.apache.lucene.geo.Tessellator$Node.nextZ:Lorg/apache/lucene/geo/Tessellator$Node;
         9: .line 963
            aload 6 /* node */
            aload 4 /* lastNode */
            putfield org.apache.lucene.geo.Tessellator$Node.previous:Lorg/apache/lucene/geo/Tessellator$Node;
        10: .line 964
            aload 6 /* node */
            aload 4 /* lastNode */
            putfield org.apache.lucene.geo.Tessellator$Node.previousZ:Lorg/apache/lucene/geo/Tessellator$Node;
        11: .line 965
            aload 4 /* lastNode */
            getfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
            aload 6 /* node */
            putfield org.apache.lucene.geo.Tessellator$Node.previous:Lorg/apache/lucene/geo/Tessellator$Node;
        12: .line 966
            aload 4 /* lastNode */
            getfield org.apache.lucene.geo.Tessellator$Node.nextZ:Lorg/apache/lucene/geo/Tessellator$Node;
            aload 6 /* node */
            putfield org.apache.lucene.geo.Tessellator$Node.previousZ:Lorg/apache/lucene/geo/Tessellator$Node;
        13: .line 967
            aload 4 /* lastNode */
            aload 6 /* node */
            putfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
        14: .line 968
            aload 4 /* lastNode */
            aload 6 /* node */
            putfield org.apache.lucene.geo.Tessellator$Node.nextZ:Lorg/apache/lucene/geo/Tessellator$Node;
        15: .line 970
      StackMap locals:
      StackMap stack:
            aload 6 /* node */
            areturn
        end local 6 // org.apache.lucene.geo.Tessellator$Node node
        end local 5 // boolean isGeo
        end local 4 // org.apache.lucene.geo.Tessellator$Node lastNode
        end local 3 // int vertexIndex
        end local 2 // int index
        end local 1 // double[] y
        end local 0 // double[] x
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   16     0            x  [D
            0   16     1            y  [D
            0   16     2        index  I
            0   16     3  vertexIndex  I
            0   16     4     lastNode  Lorg/apache/lucene/geo/Tessellator$Node;
            0   16     5        isGeo  Z
            1   16     6         node  Lorg/apache/lucene/geo/Tessellator$Node;
    MethodParameters:
             Name  Flags
      x            final
      y            final
      index        
      vertexIndex  
      lastNode     final
      isGeo        

  private static final void removeNode(org.apache.lucene.geo.Tessellator$Node, boolean);
    descriptor: (Lorg/apache/lucene/geo/Tessellator$Node;Z)V
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.lucene.geo.Tessellator$Node node
        start local 1 // boolean edgeFromPolygon
         0: .line 975
            aload 0 /* node */
            getfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
            aload 0 /* node */
            getfield org.apache.lucene.geo.Tessellator$Node.previous:Lorg/apache/lucene/geo/Tessellator$Node;
            putfield org.apache.lucene.geo.Tessellator$Node.previous:Lorg/apache/lucene/geo/Tessellator$Node;
         1: .line 976
            aload 0 /* node */
            getfield org.apache.lucene.geo.Tessellator$Node.previous:Lorg/apache/lucene/geo/Tessellator$Node;
            aload 0 /* node */
            getfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
            putfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
         2: .line 977
            aload 0 /* node */
            getfield org.apache.lucene.geo.Tessellator$Node.previous:Lorg/apache/lucene/geo/Tessellator$Node;
            iload 1 /* edgeFromPolygon */
            putfield org.apache.lucene.geo.Tessellator$Node.isNextEdgeFromPolygon:Z
         3: .line 979
            aload 0 /* node */
            getfield org.apache.lucene.geo.Tessellator$Node.previousZ:Lorg/apache/lucene/geo/Tessellator$Node;
            ifnull 5
         4: .line 980
            aload 0 /* node */
            getfield org.apache.lucene.geo.Tessellator$Node.previousZ:Lorg/apache/lucene/geo/Tessellator$Node;
            aload 0 /* node */
            getfield org.apache.lucene.geo.Tessellator$Node.nextZ:Lorg/apache/lucene/geo/Tessellator$Node;
            putfield org.apache.lucene.geo.Tessellator$Node.nextZ:Lorg/apache/lucene/geo/Tessellator$Node;
         5: .line 982
      StackMap locals:
      StackMap stack:
            aload 0 /* node */
            getfield org.apache.lucene.geo.Tessellator$Node.nextZ:Lorg/apache/lucene/geo/Tessellator$Node;
            ifnull 7
         6: .line 983
            aload 0 /* node */
            getfield org.apache.lucene.geo.Tessellator$Node.nextZ:Lorg/apache/lucene/geo/Tessellator$Node;
            aload 0 /* node */
            getfield org.apache.lucene.geo.Tessellator$Node.previousZ:Lorg/apache/lucene/geo/Tessellator$Node;
            putfield org.apache.lucene.geo.Tessellator$Node.previousZ:Lorg/apache/lucene/geo/Tessellator$Node;
         7: .line 985
      StackMap locals:
      StackMap stack:
            return
        end local 1 // boolean edgeFromPolygon
        end local 0 // org.apache.lucene.geo.Tessellator$Node node
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    8     0             node  Lorg/apache/lucene/geo/Tessellator$Node;
            0    8     1  edgeFromPolygon  Z
    MethodParameters:
                 Name  Flags
      node             
      edgeFromPolygon  

  private static final boolean isVertexEquals(org.apache.lucene.geo.Tessellator$Node, org.apache.lucene.geo.Tessellator$Node);
    descriptor: (Lorg/apache/lucene/geo/Tessellator$Node;Lorg/apache/lucene/geo/Tessellator$Node;)Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // org.apache.lucene.geo.Tessellator$Node a
        start local 1 // org.apache.lucene.geo.Tessellator$Node b
         0: .line 989
            aload 0 /* a */
            aload 1 /* b */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getX:()D
            aload 1 /* b */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getY:()D
            invokestatic org.apache.lucene.geo.Tessellator.isVertexEquals:(Lorg/apache/lucene/geo/Tessellator$Node;DD)Z
            ireturn
        end local 1 // org.apache.lucene.geo.Tessellator$Node b
        end local 0 // org.apache.lucene.geo.Tessellator$Node a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     a  Lorg/apache/lucene/geo/Tessellator$Node;
            0    1     1     b  Lorg/apache/lucene/geo/Tessellator$Node;
    MethodParameters:
      Name  Flags
      a     final
      b     final

  private static final boolean isVertexEquals(org.apache.lucene.geo.Tessellator$Node, double, double);
    descriptor: (Lorg/apache/lucene/geo/Tessellator$Node;DD)Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // org.apache.lucene.geo.Tessellator$Node a
        start local 1 // double x
        start local 3 // double y
         0: .line 994
            aload 0 /* a */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getX:()D
            dload 1 /* x */
            dcmpl
            ifne 1
            aload 0 /* a */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getY:()D
            dload 3 /* y */
            dcmpl
            ifne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 3 // double y
        end local 1 // double x
        end local 0 // org.apache.lucene.geo.Tessellator$Node a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0     a  Lorg/apache/lucene/geo/Tessellator$Node;
            0    2     1     x  D
            0    2     3     y  D
    MethodParameters:
      Name  Flags
      a     final
      x     final
      y     final

  private static double area(double, double, double, double, double, double);
    descriptor: (DDDDDD)D
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=8, locals=12, args_size=6
        start local 0 // double aX
        start local 2 // double aY
        start local 4 // double bX
        start local 6 // double bY
        start local 8 // double cX
        start local 10 // double cY
         0: .line 1000
            dload 6 /* bY */
            dload 2 /* aY */
            dsub
            dload 8 /* cX */
            dload 4 /* bX */
            dsub
            dmul
            dload 4 /* bX */
            dload 0 /* aX */
            dsub
            dload 10 /* cY */
            dload 6 /* bY */
            dsub
            dmul
            dsub
            dreturn
        end local 10 // double cY
        end local 8 // double cX
        end local 6 // double bY
        end local 4 // double bX
        end local 2 // double aY
        end local 0 // double aX
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0    aX  D
            0    1     2    aY  D
            0    1     4    bX  D
            0    1     6    bY  D
            0    1     8    cX  D
            0    1    10    cY  D
    MethodParameters:
      Name  Flags
      aX    final
      aY    final
      bX    final
      bY    final
      cX    final
      cY    final

  private static boolean pointInEar(double, double, double, double, double, double, double, double);
    descriptor: (DDDDDDDD)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=8, locals=16, args_size=8
        start local 0 // double x
        start local 2 // double y
        start local 4 // double ax
        start local 6 // double ay
        start local 8 // double bx
        start local 10 // double by
        start local 12 // double cx
        start local 14 // double cy
         0: .line 1006
            dload 12 /* cx */
            dload 0 /* x */
            dsub
            dload 6 /* ay */
            dload 2 /* y */
            dsub
            dmul
            dload 4 /* ax */
            dload 0 /* x */
            dsub
            dload 14 /* cy */
            dload 2 /* y */
            dsub
            dmul
            dsub
            dconst_0
            dcmpl
            iflt 4
         1: .line 1007
            dload 4 /* ax */
            dload 0 /* x */
            dsub
            dload 10 /* by */
            dload 2 /* y */
            dsub
            dmul
            dload 8 /* bx */
            dload 0 /* x */
            dsub
            dload 6 /* ay */
            dload 2 /* y */
            dsub
            dmul
            dsub
            dconst_0
            dcmpl
            iflt 4
         2: .line 1008
            dload 8 /* bx */
            dload 0 /* x */
            dsub
            dload 14 /* cy */
            dload 2 /* y */
            dsub
            dmul
            dload 12 /* cx */
            dload 0 /* x */
            dsub
            dload 10 /* by */
            dload 2 /* y */
            dsub
            dmul
            dsub
            dconst_0
         3: .line 1006
            dcmpl
            iflt 4
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         4: iconst_0
            ireturn
        end local 14 // double cy
        end local 12 // double cx
        end local 10 // double by
        end local 8 // double bx
        end local 6 // double ay
        end local 4 // double ax
        end local 2 // double y
        end local 0 // double x
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0     x  D
            0    5     2     y  D
            0    5     4    ax  D
            0    5     6    ay  D
            0    5     8    bx  D
            0    5    10    by  D
            0    5    12    cx  D
            0    5    14    cy  D
    MethodParameters:
      Name  Flags
      x     final
      y     final
      ax    final
      ay    final
      bx    final
      by    final
      cx    final
      cy    final

  public static boolean pointInTriangle(double, double, double, double, double, double, double, double);
    descriptor: (DDDDDDDD)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=12, locals=27, args_size=8
        start local 0 // double x
        start local 2 // double y
        start local 4 // double ax
        start local 6 // double ay
        start local 8 // double bx
        start local 10 // double by
        start local 12 // double cx
        start local 14 // double cy
         0: .line 1013
            dload 4 /* ax */
            dload 8 /* bx */
            dload 12 /* cx */
            invokestatic java.lang.StrictMath.min:(DD)D
            invokestatic java.lang.StrictMath.min:(DD)D
            dstore 16 /* minX */
        start local 16 // double minX
         1: .line 1014
            dload 6 /* ay */
            dload 10 /* by */
            dload 14 /* cy */
            invokestatic java.lang.StrictMath.min:(DD)D
            invokestatic java.lang.StrictMath.min:(DD)D
            dstore 18 /* minY */
        start local 18 // double minY
         2: .line 1015
            dload 4 /* ax */
            dload 8 /* bx */
            dload 12 /* cx */
            invokestatic java.lang.StrictMath.max:(DD)D
            invokestatic java.lang.StrictMath.max:(DD)D
            dstore 20 /* maxX */
        start local 20 // double maxX
         3: .line 1016
            dload 6 /* ay */
            dload 10 /* by */
            dload 14 /* cy */
            invokestatic java.lang.StrictMath.max:(DD)D
            invokestatic java.lang.StrictMath.max:(DD)D
            dstore 22 /* maxY */
        start local 22 // double maxY
         4: .line 1019
            dload 0 /* x */
            dload 16 /* minX */
            dcmpl
            iflt 20
            dload 0 /* x */
            dload 20 /* maxX */
            dcmpg
            ifgt 20
            dload 2 /* y */
            dload 18 /* minY */
            dcmpl
            iflt 20
            dload 2 /* y */
            dload 22 /* maxY */
            dcmpg
            ifgt 20
         5: .line 1020
            dload 0 /* x */
            dload 2 /* y */
            dload 4 /* ax */
            dload 6 /* ay */
            dload 8 /* bx */
            dload 10 /* by */
            invokestatic org.apache.lucene.geo.GeoUtils.orient:(DDDDDD)I
            istore 24 /* a */
        start local 24 // int a
         6: .line 1021
            dload 0 /* x */
            dload 2 /* y */
            dload 8 /* bx */
            dload 10 /* by */
            dload 12 /* cx */
            dload 14 /* cy */
            invokestatic org.apache.lucene.geo.GeoUtils.orient:(DDDDDD)I
            istore 25 /* b */
        start local 25 // int b
         7: .line 1022
            iload 24 /* a */
            ifeq 12
            iload 25 /* b */
            ifeq 12
            iload 24 /* a */
            ifge 8
            iconst_1
            goto 9
      StackMap locals: double double double double double double double double double double double double int int
      StackMap stack:
         8: iconst_0
      StackMap locals:
      StackMap stack: int
         9: iload 25 /* b */
            ifge 10
            iconst_1
            goto 11
      StackMap locals:
      StackMap stack: int
        10: iconst_0
      StackMap locals: double double double double double double double double double double double double int int
      StackMap stack: int int
        11: if_icmpne 19
        12: .line 1023
      StackMap locals:
      StackMap stack:
            dload 0 /* x */
            dload 2 /* y */
            dload 12 /* cx */
            dload 14 /* cy */
            dload 4 /* ax */
            dload 6 /* ay */
            invokestatic org.apache.lucene.geo.GeoUtils.orient:(DDDDDD)I
            istore 26 /* c */
        start local 26 // int c
        13: .line 1024
            iload 26 /* c */
            ifeq 18
            iload 26 /* c */
            ifge 14
            iconst_1
            goto 15
      StackMap locals: int
      StackMap stack:
        14: iconst_0
      StackMap locals:
      StackMap stack: int
        15: iload 25 /* b */
            iflt 16
            iload 24 /* a */
            iflt 16
            iconst_0
            goto 17
      StackMap locals:
      StackMap stack: int
        16: iconst_1
      StackMap locals: double double double double double double double double double double double double int int int
      StackMap stack: int int
        17: if_icmpeq 18
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
        18: iconst_1
            ireturn
        end local 26 // int c
        19: .line 1026
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 25 // int b
        end local 24 // int a
        20: .line 1028
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 22 // double maxY
        end local 20 // double maxX
        end local 18 // double minY
        end local 16 // double minX
        end local 14 // double cy
        end local 12 // double cx
        end local 10 // double by
        end local 8 // double bx
        end local 6 // double ay
        end local 4 // double ax
        end local 2 // double y
        end local 0 // double x
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   21     0     x  D
            0   21     2     y  D
            0   21     4    ax  D
            0   21     6    ay  D
            0   21     8    bx  D
            0   21    10    by  D
            0   21    12    cx  D
            0   21    14    cy  D
            1   21    16  minX  D
            2   21    18  minY  D
            3   21    20  maxX  D
            4   21    22  maxY  D
            6   20    24     a  I
            7   20    25     b  I
           13   19    26     c  I
    MethodParameters:
      Name  Flags
      x     
      y     
      ax    
      ay    
      bx    
      by    
      cx    
      cy    

  public static final boolean pointInPolygon(java.util.List<org.apache.lucene.geo.Tessellator$Triangle>, double, );
    descriptor: (Ljava/util/List;DD)Z
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    Code:
      stack=5, locals=6, args_size=3
        start local 0 // java.util.List tessellation
        start local 1 // double lat
        start local 3 // double lon
         0: .line 1037
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         1: goto 5
         2: .line 1038
      StackMap locals: int
      StackMap stack:
            aload 0 /* tessellation */
            iload 5 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast org.apache.lucene.geo.Tessellator$Triangle
            dload 1 /* lat */
            dload 3 /* lon */
            invokevirtual org.apache.lucene.geo.Tessellator$Triangle.containsPoint:(DD)Z
            ifeq 4
         3: .line 1039
            iconst_1
            ireturn
         4: .line 1037
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
         5: iload 5 /* i */
            aload 0 /* tessellation */
            invokeinterface java.util.List.size:()I
            if_icmplt 2
        end local 5 // int i
         6: .line 1042
            iconst_0
            ireturn
        end local 3 // double lon
        end local 1 // double lat
        end local 0 // java.util.List tessellation
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    7     0  tessellation  Ljava/util/List<Lorg/apache/lucene/geo/Tessellator$Triangle;>;
            0    7     1           lat  D
            0    7     3           lon  D
            1    6     5             i  I
    Signature: (Ljava/util/List<Lorg/apache/lucene/geo/Tessellator$Triangle;>;DD)Z
    MethodParameters:
              Name  Flags
      tessellation  final
      lat           
      lon           

  static int[] $SWITCH_TABLE$org$apache$lucene$geo$Tessellator$State();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 71
            getstatic org.apache.lucene.geo.Tessellator.$SWITCH_TABLE$org$apache$lucene$geo$Tessellator$State:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic org.apache.lucene.geo.Tessellator$State.values:()[Lorg/apache/lucene/geo/Tessellator$State;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic org.apache.lucene.geo.Tessellator$State.CURE:Lorg/apache/lucene/geo/Tessellator$State;
            invokevirtual org.apache.lucene.geo.Tessellator$State.ordinal:()I
            iconst_2
            iastore
         3: goto 5
      StackMap locals: int[]
      StackMap stack: java.lang.NoSuchFieldError
         4: pop
      StackMap locals:
      StackMap stack:
         5: aload 0
            getstatic org.apache.lucene.geo.Tessellator$State.INIT:Lorg/apache/lucene/geo/Tessellator$State;
            invokevirtual org.apache.lucene.geo.Tessellator$State.ordinal:()I
            iconst_1
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic org.apache.lucene.geo.Tessellator$State.SPLIT:Lorg/apache/lucene/geo/Tessellator$State;
            invokevirtual org.apache.lucene.geo.Tessellator$State.ordinal:()I
            iconst_3
            iastore
         9: goto 11
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        10: pop
      StackMap locals:
      StackMap stack:
        11: aload 0
            dup
            putstatic org.apache.lucene.geo.Tessellator.$SWITCH_TABLE$org$apache$lucene$geo$Tessellator$State:[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

  private static int lambda$0(org.apache.lucene.geo.Tessellator$Node, org.apache.lucene.geo.Tessellator$Node);
    descriptor: (Lorg/apache/lucene/geo/Tessellator$Node;Lorg/apache/lucene/geo/Tessellator$Node;)I
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=4, locals=8, args_size=2
        start local 0 // org.apache.lucene.geo.Tessellator$Node pNodeA
        start local 1 // org.apache.lucene.geo.Tessellator$Node pNodeB
         0: .line 241
            aload 0 /* pNodeA */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getX:()D
            aload 1 /* pNodeB */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getX:()D
            dsub
            dstore 2 /* diff */
        start local 2 // double diff
         1: .line 242
            dload 2 /* diff */
            dconst_0
            dcmpl
            ifne 7
         2: .line 243
            aload 0 /* pNodeA */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getY:()D
            aload 1 /* pNodeB */
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getY:()D
            dsub
            dstore 2 /* diff */
         3: .line 244
            dload 2 /* diff */
            dconst_0
            dcmpl
            ifne 7
         4: .line 246
            aload 0 /* pNodeA */
            getfield org.apache.lucene.geo.Tessellator$Node.previous:Lorg/apache/lucene/geo/Tessellator$Node;
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getY:()D
            aload 0 /* pNodeA */
            getfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getY:()D
            invokestatic java.lang.Math.min:(DD)D
            dstore 4 /* a */
        start local 4 // double a
         5: .line 247
            aload 1 /* pNodeB */
            getfield org.apache.lucene.geo.Tessellator$Node.previous:Lorg/apache/lucene/geo/Tessellator$Node;
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getY:()D
            aload 1 /* pNodeB */
            getfield org.apache.lucene.geo.Tessellator$Node.next:Lorg/apache/lucene/geo/Tessellator$Node;
            invokevirtual org.apache.lucene.geo.Tessellator$Node.getY:()D
            invokestatic java.lang.Math.min:(DD)D
            dstore 6 /* b */
        start local 6 // double b
         6: .line 248
            dload 4 /* a */
            dload 6 /* b */
            dsub
            dstore 2 /* diff */
        end local 6 // double b
        end local 4 // double a
         7: .line 251
      StackMap locals: double
      StackMap stack:
            dload 2 /* diff */
            dconst_0
            dcmpg
            ifge 8
            iconst_m1
            goto 10
      StackMap locals:
      StackMap stack:
         8: dload 2 /* diff */
            dconst_0
            dcmpl
            ifle 9
            iconst_1
            goto 10
      StackMap locals:
      StackMap stack:
         9: iconst_0
      StackMap locals:
      StackMap stack: int
        10: ireturn
        end local 2 // double diff
        end local 1 // org.apache.lucene.geo.Tessellator$Node pNodeB
        end local 0 // org.apache.lucene.geo.Tessellator$Node pNodeA
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   11     0  pNodeA  Lorg/apache/lucene/geo/Tessellator$Node;
            0   11     1  pNodeB  Lorg/apache/lucene/geo/Tessellator$Node;
            1   11     2    diff  D
            5    7     4       a  D
            6    7     6       b  D
}
SourceFile: "Tessellator.java"
NestMembers:
  org.apache.lucene.geo.Tessellator$Node  org.apache.lucene.geo.Tessellator$State  org.apache.lucene.geo.Tessellator$Triangle
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public final WindingOrder = org.apache.lucene.geo.GeoUtils$WindingOrder of org.apache.lucene.geo.GeoUtils
  protected Node = org.apache.lucene.geo.Tessellator$Node of org.apache.lucene.geo.Tessellator
  private final State = org.apache.lucene.geo.Tessellator$State of org.apache.lucene.geo.Tessellator
  public final Triangle = org.apache.lucene.geo.Tessellator$Triangle of org.apache.lucene.geo.Tessellator