public final class org.h2.util.geometry.EWKTUtils
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: org.h2.util.geometry.EWKTUtils
  super_class: java.lang.Object
{
  private static final java.lang.String[] TYPES;
    descriptor: [Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.lang.String[] DIMENSION_SYSTEMS;
    descriptor: [Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=0, args_size=0
         0: .line 47
            bipush 7
            anewarray java.lang.String
            dup
            iconst_0
         1: .line 48
            ldc "POINT"
            aastore
            dup
            iconst_1
         2: .line 49
            ldc "LINESTRING"
            aastore
            dup
            iconst_2
         3: .line 50
            ldc "POLYGON"
            aastore
            dup
            iconst_3
         4: .line 51
            ldc "MULTIPOINT"
            aastore
            dup
            iconst_4
         5: .line 52
            ldc "MULTILINESTRING"
            aastore
            dup
            iconst_5
         6: .line 53
            ldc "MULTIPOLYGON"
            aastore
            dup
            bipush 6
         7: .line 54
            ldc "GEOMETRYCOLLECTION"
            aastore
         8: .line 47
            putstatic org.h2.util.geometry.EWKTUtils.TYPES:[Ljava/lang/String;
         9: .line 60
            iconst_4
            anewarray java.lang.String
            dup
            iconst_0
        10: .line 61
            ldc "XY"
            aastore
            dup
            iconst_1
        11: .line 62
            ldc "Z"
            aastore
            dup
            iconst_2
        12: .line 63
            ldc "M"
            aastore
            dup
            iconst_3
        13: .line 64
            ldc "ZM"
            aastore
        14: .line 60
            putstatic org.h2.util.geometry.EWKTUtils.DIMENSION_SYSTEMS:[Ljava/lang/String;
        15: .line 65
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static java.lang.String ewkb2ewkt(byte[]);
    descriptor: ([B)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // byte[] ewkb
         0: .line 546
            new org.h2.util.geometry.GeometryUtils$DimensionSystemTarget
            dup
            invokespecial org.h2.util.geometry.GeometryUtils$DimensionSystemTarget.<init>:()V
            astore 1 /* dimensionTarget */
        start local 1 // org.h2.util.geometry.GeometryUtils$DimensionSystemTarget dimensionTarget
         1: .line 547
            aload 0 /* ewkb */
            aload 1 /* dimensionTarget */
            invokestatic org.h2.util.geometry.EWKBUtils.parseEWKB:([BLorg/h2/util/geometry/GeometryUtils$Target;)V
         2: .line 549
            aload 0 /* ewkb */
            aload 1 /* dimensionTarget */
            invokevirtual org.h2.util.geometry.GeometryUtils$DimensionSystemTarget.getDimensionSystem:()I
            invokestatic org.h2.util.geometry.EWKTUtils.ewkb2ewkt:([BI)Ljava/lang/String;
            areturn
        end local 1 // org.h2.util.geometry.GeometryUtils$DimensionSystemTarget dimensionTarget
        end local 0 // byte[] ewkb
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    3     0             ewkb  [B
            1    3     1  dimensionTarget  Lorg/h2/util/geometry/GeometryUtils$DimensionSystemTarget;
    MethodParameters:
      Name  Flags
      ewkb  

  public static java.lang.String ewkb2ewkt(byte[], int);
    descriptor: ([BI)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // byte[] ewkb
        start local 1 // int dimensionSystem
         0: .line 562
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 2 /* output */
        start local 2 // java.lang.StringBuilder output
         1: .line 563
            new org.h2.util.geometry.EWKTUtils$EWKTTarget
            dup
            aload 2 /* output */
            iload 1 /* dimensionSystem */
            invokespecial org.h2.util.geometry.EWKTUtils$EWKTTarget.<init>:(Ljava/lang/StringBuilder;I)V
            astore 3 /* target */
        start local 3 // org.h2.util.geometry.EWKTUtils$EWKTTarget target
         2: .line 564
            aload 0 /* ewkb */
            aload 3 /* target */
            invokestatic org.h2.util.geometry.EWKBUtils.parseEWKB:([BLorg/h2/util/geometry/GeometryUtils$Target;)V
         3: .line 565
            aload 2 /* output */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 3 // org.h2.util.geometry.EWKTUtils$EWKTTarget target
        end local 2 // java.lang.StringBuilder output
        end local 1 // int dimensionSystem
        end local 0 // byte[] ewkb
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    4     0             ewkb  [B
            0    4     1  dimensionSystem  I
            1    4     2           output  Ljava/lang/StringBuilder;
            2    4     3           target  Lorg/h2/util/geometry/EWKTUtils$EWKTTarget;
    MethodParameters:
                 Name  Flags
      ewkb             
      dimensionSystem  

  public static byte[] ewkt2ewkb(java.lang.String);
    descriptor: (Ljava/lang/String;)[B
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // java.lang.String ewkt
         0: .line 577
            new org.h2.util.geometry.GeometryUtils$DimensionSystemTarget
            dup
            invokespecial org.h2.util.geometry.GeometryUtils$DimensionSystemTarget.<init>:()V
            astore 1 /* dimensionTarget */
        start local 1 // org.h2.util.geometry.GeometryUtils$DimensionSystemTarget dimensionTarget
         1: .line 578
            aload 0 /* ewkt */
            aload 1 /* dimensionTarget */
            invokestatic org.h2.util.geometry.EWKTUtils.parseEWKT:(Ljava/lang/String;Lorg/h2/util/geometry/GeometryUtils$Target;)V
         2: .line 580
            aload 0 /* ewkt */
            aload 1 /* dimensionTarget */
            invokevirtual org.h2.util.geometry.GeometryUtils$DimensionSystemTarget.getDimensionSystem:()I
            invokestatic org.h2.util.geometry.EWKTUtils.ewkt2ewkb:(Ljava/lang/String;I)[B
            areturn
        end local 1 // org.h2.util.geometry.GeometryUtils$DimensionSystemTarget dimensionTarget
        end local 0 // java.lang.String ewkt
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    3     0             ewkt  Ljava/lang/String;
            1    3     1  dimensionTarget  Lorg/h2/util/geometry/GeometryUtils$DimensionSystemTarget;
    MethodParameters:
      Name  Flags
      ewkt  

  public static byte[] ewkt2ewkb(java.lang.String, int);
    descriptor: (Ljava/lang/String;I)[B
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // java.lang.String ewkt
        start local 1 // int dimensionSystem
         0: .line 593
            new java.io.ByteArrayOutputStream
            dup
            invokespecial java.io.ByteArrayOutputStream.<init>:()V
            astore 2 /* output */
        start local 2 // java.io.ByteArrayOutputStream output
         1: .line 594
            new org.h2.util.geometry.EWKBUtils$EWKBTarget
            dup
            aload 2 /* output */
            iload 1 /* dimensionSystem */
            invokespecial org.h2.util.geometry.EWKBUtils$EWKBTarget.<init>:(Ljava/io/ByteArrayOutputStream;I)V
            astore 3 /* target */
        start local 3 // org.h2.util.geometry.EWKBUtils$EWKBTarget target
         2: .line 595
            aload 0 /* ewkt */
            aload 3 /* target */
            invokestatic org.h2.util.geometry.EWKTUtils.parseEWKT:(Ljava/lang/String;Lorg/h2/util/geometry/GeometryUtils$Target;)V
         3: .line 596
            aload 2 /* output */
            invokevirtual java.io.ByteArrayOutputStream.toByteArray:()[B
            areturn
        end local 3 // org.h2.util.geometry.EWKBUtils$EWKBTarget target
        end local 2 // java.io.ByteArrayOutputStream output
        end local 1 // int dimensionSystem
        end local 0 // java.lang.String ewkt
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    4     0             ewkt  Ljava/lang/String;
            0    4     1  dimensionSystem  I
            1    4     2           output  Ljava/io/ByteArrayOutputStream;
            2    4     3           target  Lorg/h2/util/geometry/EWKBUtils$EWKBTarget;
    MethodParameters:
                 Name  Flags
      ewkt             
      dimensionSystem  

  public static void parseEWKT(java.lang.String, org.h2.util.geometry.GeometryUtils$Target);
    descriptor: (Ljava/lang/String;Lorg/h2/util/geometry/GeometryUtils$Target;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // java.lang.String ewkt
        start local 1 // org.h2.util.geometry.GeometryUtils$Target target
         0: .line 608
            new org.h2.util.geometry.EWKTUtils$EWKTSource
            dup
            aload 0 /* ewkt */
            invokespecial org.h2.util.geometry.EWKTUtils$EWKTSource.<init>:(Ljava/lang/String;)V
            aload 1 /* target */
            iconst_0
            iconst_0
            invokestatic org.h2.util.geometry.EWKTUtils.parseEWKT:(Lorg/h2/util/geometry/EWKTUtils$EWKTSource;Lorg/h2/util/geometry/GeometryUtils$Target;II)V
         1: .line 609
            return
        end local 1 // org.h2.util.geometry.GeometryUtils$Target target
        end local 0 // java.lang.String ewkt
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    ewkt  Ljava/lang/String;
            0    2     1  target  Lorg/h2/util/geometry/GeometryUtils$Target;
    MethodParameters:
        Name  Flags
      ewkt    
      target  

  public static int parseGeometryType(java.lang.String);
    descriptor: (Ljava/lang/String;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // java.lang.String s
         0: .line 622
            new org.h2.util.geometry.EWKTUtils$EWKTSource
            dup
            aload 0 /* s */
            invokespecial org.h2.util.geometry.EWKTUtils$EWKTSource.<init>:(Ljava/lang/String;)V
            astore 1 /* source */
        start local 1 // org.h2.util.geometry.EWKTUtils$EWKTSource source
         1: .line 623
            aload 1 /* source */
            invokevirtual org.h2.util.geometry.EWKTUtils$EWKTSource.readType:()I
            istore 2 /* type */
        start local 2 // int type
         2: .line 624
            iconst_0
            istore 3 /* dimensionSystem */
        start local 3 // int dimensionSystem
         3: .line 625
            aload 1 /* source */
            invokevirtual org.h2.util.geometry.EWKTUtils$EWKTSource.hasData:()Z
            ifeq 7
         4: .line 626
            aload 1 /* source */
            invokevirtual org.h2.util.geometry.EWKTUtils$EWKTSource.readDimensionSystem:()I
            istore 3 /* dimensionSystem */
         5: .line 627
            aload 1 /* source */
            invokevirtual org.h2.util.geometry.EWKTUtils$EWKTSource.hasData:()Z
            ifeq 7
         6: .line 628
            new java.lang.IllegalArgumentException
            dup
            invokespecial java.lang.IllegalArgumentException.<init>:()V
            athrow
         7: .line 631
      StackMap locals: org.h2.util.geometry.EWKTUtils$EWKTSource int int
      StackMap stack:
            iload 3 /* dimensionSystem */
            sipush 1000
            imul
            iload 2 /* type */
            iadd
            ireturn
        end local 3 // int dimensionSystem
        end local 2 // int type
        end local 1 // org.h2.util.geometry.EWKTUtils$EWKTSource source
        end local 0 // java.lang.String s
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    8     0                s  Ljava/lang/String;
            1    8     1           source  Lorg/h2/util/geometry/EWKTUtils$EWKTSource;
            2    8     2             type  I
            3    8     3  dimensionSystem  I
    MethodParameters:
      Name  Flags
      s     

  public static int parseDimensionSystem(java.lang.String);
    descriptor: (Ljava/lang/String;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // java.lang.String s
         0: .line 647
            new org.h2.util.geometry.EWKTUtils$EWKTSource
            dup
            aload 0 /* s */
            invokespecial org.h2.util.geometry.EWKTUtils$EWKTSource.<init>:(Ljava/lang/String;)V
            astore 1 /* source */
        start local 1 // org.h2.util.geometry.EWKTUtils$EWKTSource source
         1: .line 648
            aload 1 /* source */
            invokevirtual org.h2.util.geometry.EWKTUtils$EWKTSource.readDimensionSystem:()I
            istore 2 /* dimensionSystem */
        start local 2 // int dimensionSystem
         2: .line 649
            aload 1 /* source */
            invokevirtual org.h2.util.geometry.EWKTUtils$EWKTSource.hasData:()Z
            ifne 3
            iload 2 /* dimensionSystem */
            ifne 4
         3: .line 650
      StackMap locals: org.h2.util.geometry.EWKTUtils$EWKTSource int
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            invokespecial java.lang.IllegalArgumentException.<init>:()V
            athrow
         4: .line 652
      StackMap locals:
      StackMap stack:
            iload 2 /* dimensionSystem */
            ireturn
        end local 2 // int dimensionSystem
        end local 1 // org.h2.util.geometry.EWKTUtils$EWKTSource source
        end local 0 // java.lang.String s
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    5     0                s  Ljava/lang/String;
            1    5     1           source  Lorg/h2/util/geometry/EWKTUtils$EWKTSource;
            2    5     2  dimensionSystem  I
    MethodParameters:
      Name  Flags
      s     

  public static java.lang.String formatGeometryTypeAndDimensionSystem(int);
    descriptor: (I)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // int type
         0: .line 665
            iload 0 /* type */
            sipush 1000
            irem
            istore 1 /* t */
        start local 1 // int t
         1: iload 0 /* type */
            sipush 1000
            idiv
            istore 2 /* d */
        start local 2 // int d
         2: .line 666
            iload 1 /* t */
            iconst_1
            if_icmplt 3
            iload 1 /* t */
            bipush 7
            if_icmpgt 3
            iload 2 /* d */
            iflt 3
            iload 2 /* d */
            iconst_3
            if_icmple 4
         3: .line 667
      StackMap locals: int int
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            invokespecial java.lang.IllegalArgumentException.<init>:()V
            athrow
         4: .line 669
      StackMap locals:
      StackMap stack:
            getstatic org.h2.util.geometry.EWKTUtils.TYPES:[Ljava/lang/String;
            iload 1 /* t */
            iconst_1
            isub
            aaload
            astore 3 /* result */
        start local 3 // java.lang.String result
         5: .line 670
            iload 2 /* d */
            ifeq 7
         6: .line 671
            new java.lang.StringBuilder
            dup
            aload 3 /* result */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            bipush 32
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            getstatic org.h2.util.geometry.EWKTUtils.DIMENSION_SYSTEMS:[Ljava/lang/String;
            iload 2 /* d */
            aaload
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 3 /* result */
         7: .line 673
      StackMap locals: java.lang.String
      StackMap stack:
            aload 3 /* result */
            areturn
        end local 3 // java.lang.String result
        end local 2 // int d
        end local 1 // int t
        end local 0 // int type
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0    type  I
            1    8     1       t  I
            2    8     2       d  I
            5    8     3  result  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      type  

  private static void parseEWKT(org.h2.util.geometry.EWKTUtils$EWKTSource, org.h2.util.geometry.GeometryUtils$Target, int, int);
    descriptor: (Lorg/h2/util/geometry/EWKTUtils$EWKTSource;Lorg/h2/util/geometry/GeometryUtils$Target;II)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=11, locals=12, args_size=4
        start local 0 // org.h2.util.geometry.EWKTUtils$EWKTSource source
        start local 1 // org.h2.util.geometry.GeometryUtils$Target target
        start local 2 // int parentType
        start local 3 // int dimensionSystem
         0: .line 689
            iload 2 /* parentType */
            ifne 2
         1: .line 690
            aload 1 /* target */
            aload 0 /* source */
            invokevirtual org.h2.util.geometry.EWKTUtils$EWKTSource.readSRID:()I
            invokevirtual org.h2.util.geometry.GeometryUtils$Target.init:(I)V
         2: .line 693
      StackMap locals:
      StackMap stack:
            iload 2 /* parentType */
            tableswitch { // 4 - 6
                    4: 6
                    5: 8
                    6: 10
              default: 3
          }
         3: .line 695
      StackMap locals:
      StackMap stack:
            aload 0 /* source */
            invokevirtual org.h2.util.geometry.EWKTUtils$EWKTSource.readType:()I
            istore 4 /* type */
        start local 4 // int type
         4: .line 696
            aload 0 /* source */
            invokevirtual org.h2.util.geometry.EWKTUtils$EWKTSource.readDimensionSystem:()I
            istore 3 /* dimensionSystem */
         5: .line 697
            goto 11
        end local 4 // int type
         6: .line 700
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 4 /* type */
        start local 4 // int type
         7: .line 701
            goto 11
        end local 4 // int type
         8: .line 703
      StackMap locals:
      StackMap stack:
            iconst_2
            istore 4 /* type */
        start local 4 // int type
         9: .line 704
            goto 11
        end local 4 // int type
        10: .line 706
      StackMap locals:
      StackMap stack:
            iconst_3
            istore 4 /* type */
        start local 4 // int type
        11: .line 709
      StackMap locals: int
      StackMap stack:
            aload 1 /* target */
            iload 3 /* dimensionSystem */
            invokevirtual org.h2.util.geometry.GeometryUtils$Target.dimensionSystem:(I)V
        12: .line 710
            iload 4 /* type */
            tableswitch { // 1 - 7
                    1: 13
                    2: 23
                    3: 43
                    4: 75
                    5: 77
                    6: 79
                    7: 81
              default: 83
          }
        13: .line 712
      StackMap locals:
      StackMap stack:
            iload 2 /* parentType */
            ifeq 15
            iload 2 /* parentType */
            iconst_4
            if_icmpeq 15
            iload 2 /* parentType */
            bipush 7
            if_icmpeq 15
        14: .line 713
            new java.lang.IllegalArgumentException
            dup
            invokespecial java.lang.IllegalArgumentException.<init>:()V
            athrow
        15: .line 715
      StackMap locals:
      StackMap stack:
            aload 0 /* source */
            invokevirtual org.h2.util.geometry.EWKTUtils$EWKTSource.readEmpty:()Z
            istore 5 /* empty */
        start local 5 // boolean empty
        16: .line 716
            aload 1 /* target */
            invokevirtual org.h2.util.geometry.GeometryUtils$Target.startPoint:()V
        17: .line 717
            iload 5 /* empty */
            ifeq 20
        18: .line 718
            aload 1 /* target */
            ldc NaN
            ldc NaN
            ldc NaN
            ldc NaN
            iconst_0
            iconst_1
            invokevirtual org.h2.util.geometry.GeometryUtils$Target.addCoordinate:(DDDDII)V
        19: .line 719
            goto 84
        20: .line 720
      StackMap locals: int
      StackMap stack:
            aload 0 /* source */
            aload 1 /* target */
            iload 3 /* dimensionSystem */
            iconst_0
            iconst_1
            invokestatic org.h2.util.geometry.EWKTUtils.addCoordinate:(Lorg/h2/util/geometry/EWKTUtils$EWKTSource;Lorg/h2/util/geometry/GeometryUtils$Target;III)V
        21: .line 721
            aload 0 /* source */
            bipush 41
            invokevirtual org.h2.util.geometry.EWKTUtils$EWKTSource.read:(C)V
        22: .line 723
            goto 84
        end local 5 // boolean empty
        23: .line 726
      StackMap locals:
      StackMap stack:
            iload 2 /* parentType */
            ifeq 25
            iload 2 /* parentType */
            iconst_5
            if_icmpeq 25
            iload 2 /* parentType */
            bipush 7
            if_icmpeq 25
        24: .line 727
            new java.lang.IllegalArgumentException
            dup
            invokespecial java.lang.IllegalArgumentException.<init>:()V
            athrow
        25: .line 729
      StackMap locals:
      StackMap stack:
            aload 0 /* source */
            invokevirtual org.h2.util.geometry.EWKTUtils$EWKTSource.readEmpty:()Z
            istore 5 /* empty */
        start local 5 // boolean empty
        26: .line 730
            iload 5 /* empty */
            ifeq 29
        27: .line 731
            aload 1 /* target */
            iconst_0
            invokevirtual org.h2.util.geometry.GeometryUtils$Target.startLineString:(I)V
        28: .line 732
            goto 84
        29: .line 733
      StackMap locals: int
      StackMap stack:
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 6 /* coordinates */
        start local 6 // java.util.ArrayList coordinates
        30: .line 735
      StackMap locals: java.util.ArrayList
      StackMap stack:
            aload 6 /* coordinates */
            aload 0 /* source */
            iload 3 /* dimensionSystem */
            invokestatic org.h2.util.geometry.EWKTUtils.readCoordinate:(Lorg/h2/util/geometry/EWKTUtils$EWKTSource;I)[D
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        31: .line 736
            aload 0 /* source */
            invokevirtual org.h2.util.geometry.EWKTUtils$EWKTSource.hasMoreCoordinates:()Z
            ifne 30
        32: .line 737
            aload 6 /* coordinates */
            invokevirtual java.util.ArrayList.size:()I
            istore 7 /* numPoints */
        start local 7 // int numPoints
        33: .line 738
            iload 7 /* numPoints */
            iflt 34
            iload 7 /* numPoints */
            iconst_1
            if_icmpne 35
        34: .line 739
      StackMap locals: int
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            invokespecial java.lang.IllegalArgumentException.<init>:()V
            athrow
        35: .line 741
      StackMap locals:
      StackMap stack:
            aload 1 /* target */
            iload 7 /* numPoints */
            invokevirtual org.h2.util.geometry.GeometryUtils$Target.startLineString:(I)V
        36: .line 742
            iconst_0
            istore 8 /* i */
        start local 8 // int i
        37: goto 41
        38: .line 743
      StackMap locals: int
      StackMap stack:
            aload 6 /* coordinates */
            iload 8 /* i */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast double[]
            astore 9 /* c */
        start local 9 // double[] c
        39: .line 744
            aload 1 /* target */
            aload 9 /* c */
            iconst_0
            daload
            aload 9 /* c */
            iconst_1
            daload
            aload 9 /* c */
            iconst_2
            daload
            aload 9 /* c */
            iconst_3
            daload
            iload 8 /* i */
            iload 7 /* numPoints */
            invokevirtual org.h2.util.geometry.GeometryUtils$Target.addCoordinate:(DDDDII)V
        end local 9 // double[] c
        40: .line 742
            iinc 8 /* i */ 1
      StackMap locals:
      StackMap stack:
        41: iload 8 /* i */
            iload 7 /* numPoints */
            if_icmplt 38
        end local 8 // int i
        end local 7 // int numPoints
        end local 6 // java.util.ArrayList coordinates
        42: .line 747
            goto 84
        end local 5 // boolean empty
        43: .line 750
      StackMap locals: org.h2.util.geometry.EWKTUtils$EWKTSource org.h2.util.geometry.GeometryUtils$Target int int int
      StackMap stack:
            iload 2 /* parentType */
            ifeq 45
            iload 2 /* parentType */
            bipush 6
            if_icmpeq 45
            iload 2 /* parentType */
            bipush 7
            if_icmpeq 45
        44: .line 751
            new java.lang.IllegalArgumentException
            dup
            invokespecial java.lang.IllegalArgumentException.<init>:()V
            athrow
        45: .line 753
      StackMap locals:
      StackMap stack:
            aload 0 /* source */
            invokevirtual org.h2.util.geometry.EWKTUtils$EWKTSource.readEmpty:()Z
            istore 5 /* empty */
        start local 5 // boolean empty
        46: .line 754
            iload 5 /* empty */
            ifeq 49
        47: .line 755
            aload 1 /* target */
            iconst_0
            iconst_0
            invokevirtual org.h2.util.geometry.GeometryUtils$Target.startPolygon:(II)V
        48: .line 756
            goto 84
        49: .line 757
      StackMap locals: int
      StackMap stack:
            aload 0 /* source */
            iload 3 /* dimensionSystem */
            invokestatic org.h2.util.geometry.EWKTUtils.readRing:(Lorg/h2/util/geometry/EWKTUtils$EWKTSource;I)Ljava/util/ArrayList;
            astore 6 /* outer */
        start local 6 // java.util.ArrayList outer
        50: .line 758
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 7 /* inner */
        start local 7 // java.util.ArrayList inner
        51: .line 759
            goto 53
        52: .line 760
      StackMap locals: java.util.ArrayList java.util.ArrayList
      StackMap stack:
            aload 7 /* inner */
            aload 0 /* source */
            iload 3 /* dimensionSystem */
            invokestatic org.h2.util.geometry.EWKTUtils.readRing:(Lorg/h2/util/geometry/EWKTUtils$EWKTSource;I)Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        53: .line 759
      StackMap locals:
      StackMap stack:
            aload 0 /* source */
            invokevirtual org.h2.util.geometry.EWKTUtils$EWKTSource.hasMoreCoordinates:()Z
            ifne 52
        54: .line 762
            aload 7 /* inner */
            invokevirtual java.util.ArrayList.size:()I
            istore 8 /* numInner */
        start local 8 // int numInner
        55: .line 763
            aload 6 /* outer */
            invokevirtual java.util.ArrayList.size:()I
            istore 9 /* size */
        start local 9 // int size
        56: .line 765
            iload 9 /* size */
            iconst_1
            if_icmplt 58
            iload 9 /* size */
            iconst_3
            if_icmpgt 58
        57: .line 766
            new java.lang.IllegalArgumentException
            dup
            invokespecial java.lang.IllegalArgumentException.<init>:()V
            athrow
        58: .line 768
      StackMap locals: int int
      StackMap stack:
            iload 9 /* size */
            ifne 60
            iload 8 /* numInner */
            ifle 60
        59: .line 769
            new java.lang.IllegalArgumentException
            dup
            invokespecial java.lang.IllegalArgumentException.<init>:()V
            athrow
        60: .line 771
      StackMap locals:
      StackMap stack:
            aload 1 /* target */
            iload 8 /* numInner */
            iload 9 /* size */
            invokevirtual org.h2.util.geometry.GeometryUtils$Target.startPolygon:(II)V
        61: .line 772
            iload 9 /* size */
            ifle 84
        62: .line 773
            aload 6 /* outer */
            aload 1 /* target */
            invokestatic org.h2.util.geometry.EWKTUtils.addRing:(Ljava/util/ArrayList;Lorg/h2/util/geometry/GeometryUtils$Target;)V
        63: .line 774
            iconst_0
            istore 10 /* i */
        start local 10 // int i
        64: goto 72
        65: .line 775
      StackMap locals: int
      StackMap stack:
            aload 7 /* inner */
            iload 10 /* i */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast java.util.ArrayList
            astore 11 /* ring */
        start local 11 // java.util.ArrayList ring
        66: .line 776
            aload 11 /* ring */
            invokevirtual java.util.ArrayList.size:()I
            istore 9 /* size */
        67: .line 778
            iload 9 /* size */
            iconst_1
            if_icmplt 69
            iload 9 /* size */
            iconst_3
            if_icmpgt 69
        68: .line 779
            new java.lang.IllegalArgumentException
            dup
            invokespecial java.lang.IllegalArgumentException.<init>:()V
            athrow
        69: .line 781
      StackMap locals: java.util.ArrayList
      StackMap stack:
            aload 1 /* target */
            iload 9 /* size */
            invokevirtual org.h2.util.geometry.GeometryUtils$Target.startPolygonInner:(I)V
        70: .line 782
            aload 11 /* ring */
            aload 1 /* target */
            invokestatic org.h2.util.geometry.EWKTUtils.addRing:(Ljava/util/ArrayList;Lorg/h2/util/geometry/GeometryUtils$Target;)V
        end local 11 // java.util.ArrayList ring
        71: .line 774
            iinc 10 /* i */ 1
      StackMap locals:
      StackMap stack:
        72: iload 10 /* i */
            iload 8 /* numInner */
            if_icmplt 65
        end local 10 // int i
        73: .line 784
            aload 1 /* target */
            invokevirtual org.h2.util.geometry.GeometryUtils$Target.endNonEmptyPolygon:()V
        end local 9 // int size
        end local 8 // int numInner
        end local 7 // java.util.ArrayList inner
        end local 6 // java.util.ArrayList outer
        74: .line 787
            goto 84
        end local 5 // boolean empty
        75: .line 790
      StackMap locals: org.h2.util.geometry.EWKTUtils$EWKTSource org.h2.util.geometry.GeometryUtils$Target int int int
      StackMap stack:
            aload 0 /* source */
            aload 1 /* target */
            iconst_4
            iload 2 /* parentType */
            iload 3 /* dimensionSystem */
            invokestatic org.h2.util.geometry.EWKTUtils.parseCollection:(Lorg/h2/util/geometry/EWKTUtils$EWKTSource;Lorg/h2/util/geometry/GeometryUtils$Target;III)V
        76: .line 791
            goto 84
        77: .line 793
      StackMap locals:
      StackMap stack:
            aload 0 /* source */
            aload 1 /* target */
            iconst_5
            iload 2 /* parentType */
            iload 3 /* dimensionSystem */
            invokestatic org.h2.util.geometry.EWKTUtils.parseCollection:(Lorg/h2/util/geometry/EWKTUtils$EWKTSource;Lorg/h2/util/geometry/GeometryUtils$Target;III)V
        78: .line 794
            goto 84
        79: .line 796
      StackMap locals:
      StackMap stack:
            aload 0 /* source */
            aload 1 /* target */
            bipush 6
            iload 2 /* parentType */
            iload 3 /* dimensionSystem */
            invokestatic org.h2.util.geometry.EWKTUtils.parseCollection:(Lorg/h2/util/geometry/EWKTUtils$EWKTSource;Lorg/h2/util/geometry/GeometryUtils$Target;III)V
        80: .line 797
            goto 84
        81: .line 799
      StackMap locals:
      StackMap stack:
            aload 0 /* source */
            aload 1 /* target */
            bipush 7
            iload 2 /* parentType */
            iconst_0
            invokestatic org.h2.util.geometry.EWKTUtils.parseCollection:(Lorg/h2/util/geometry/EWKTUtils$EWKTSource;Lorg/h2/util/geometry/GeometryUtils$Target;III)V
        82: .line 800
            goto 84
        83: .line 802
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            invokespecial java.lang.IllegalArgumentException.<init>:()V
            athrow
        84: .line 804
      StackMap locals:
      StackMap stack:
            iload 2 /* parentType */
            ifne 86
            aload 0 /* source */
            invokevirtual org.h2.util.geometry.EWKTUtils$EWKTSource.hasData:()Z
            ifeq 86
        85: .line 805
            new java.lang.IllegalArgumentException
            dup
            invokespecial java.lang.IllegalArgumentException.<init>:()V
            athrow
        86: .line 807
      StackMap locals:
      StackMap stack:
            return
        end local 4 // int type
        end local 3 // int dimensionSystem
        end local 2 // int parentType
        end local 1 // org.h2.util.geometry.GeometryUtils$Target target
        end local 0 // org.h2.util.geometry.EWKTUtils$EWKTSource source
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   87     0           source  Lorg/h2/util/geometry/EWKTUtils$EWKTSource;
            0   87     1           target  Lorg/h2/util/geometry/GeometryUtils$Target;
            0   87     2       parentType  I
            0   87     3  dimensionSystem  I
            4    6     4             type  I
            7    8     4             type  I
            9   10     4             type  I
           11   87     4             type  I
           16   23     5            empty  Z
           26   43     5            empty  Z
           30   42     6      coordinates  Ljava/util/ArrayList<[D>;
           33   42     7        numPoints  I
           37   42     8                i  I
           39   40     9                c  [D
           46   75     5            empty  Z
           50   74     6            outer  Ljava/util/ArrayList<[D>;
           51   74     7            inner  Ljava/util/ArrayList<Ljava/util/ArrayList<[D>;>;
           55   74     8         numInner  I
           56   74     9             size  I
           64   73    10                i  I
           66   71    11             ring  Ljava/util/ArrayList<[D>;
    MethodParameters:
                 Name  Flags
      source           
      target           
      parentType       
      dimensionSystem  

  private static void parseCollection(org.h2.util.geometry.EWKTUtils$EWKTSource, org.h2.util.geometry.GeometryUtils$Target, int, int, int);
    descriptor: (Lorg/h2/util/geometry/EWKTUtils$EWKTSource;Lorg/h2/util/geometry/GeometryUtils$Target;III)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=8, args_size=5
        start local 0 // org.h2.util.geometry.EWKTUtils$EWKTSource source
        start local 1 // org.h2.util.geometry.GeometryUtils$Target target
        start local 2 // int type
        start local 3 // int parentType
        start local 4 // int dimensionSystem
         0: .line 811
            iload 3 /* parentType */
            ifeq 2
            iload 3 /* parentType */
            bipush 7
            if_icmpeq 2
         1: .line 812
            new java.lang.IllegalArgumentException
            dup
            invokespecial java.lang.IllegalArgumentException.<init>:()V
            athrow
         2: .line 814
      StackMap locals:
      StackMap stack:
            aload 0 /* source */
            invokevirtual org.h2.util.geometry.EWKTUtils$EWKTSource.readEmpty:()Z
            ifeq 5
         3: .line 815
            aload 1 /* target */
            iload 2 /* type */
            iconst_0
            invokevirtual org.h2.util.geometry.GeometryUtils$Target.startCollection:(II)V
         4: .line 816
            goto 20
         5: .line 817
      StackMap locals:
      StackMap stack:
            iload 2 /* type */
            iconst_4
            if_icmpne 8
            aload 0 /* source */
            invokevirtual org.h2.util.geometry.EWKTUtils$EWKTSource.hasCoordinate:()Z
            ifeq 8
         6: .line 818
            aload 0 /* source */
            aload 1 /* target */
            iload 4 /* dimensionSystem */
            invokestatic org.h2.util.geometry.EWKTUtils.parseMultiPointAlternative:(Lorg/h2/util/geometry/EWKTUtils$EWKTSource;Lorg/h2/util/geometry/GeometryUtils$Target;I)V
         7: .line 819
            goto 20
         8: .line 820
      StackMap locals:
      StackMap stack:
            aload 0 /* source */
            invokevirtual org.h2.util.geometry.EWKTUtils$EWKTSource.getItemCount:()I
            istore 5 /* numItems */
        start local 5 // int numItems
         9: .line 821
            aload 1 /* target */
            iload 2 /* type */
            iload 5 /* numItems */
            invokevirtual org.h2.util.geometry.GeometryUtils$Target.startCollection:(II)V
        10: .line 822
            iconst_0
            istore 6 /* i */
        start local 6 // int i
        11: goto 18
        12: .line 823
      StackMap locals: int int
      StackMap stack:
            iload 6 /* i */
            ifle 14
        13: .line 824
            aload 0 /* source */
            bipush 44
            invokevirtual org.h2.util.geometry.EWKTUtils$EWKTSource.read:(C)V
        14: .line 826
      StackMap locals:
      StackMap stack:
            aload 1 /* target */
            iload 6 /* i */
            iload 5 /* numItems */
            invokevirtual org.h2.util.geometry.GeometryUtils$Target.startCollectionItem:(II)Lorg/h2/util/geometry/GeometryUtils$Target;
            astore 7 /* innerTarget */
        start local 7 // org.h2.util.geometry.GeometryUtils$Target innerTarget
        15: .line 827
            aload 0 /* source */
            aload 7 /* innerTarget */
            iload 2 /* type */
            iload 4 /* dimensionSystem */
            invokestatic org.h2.util.geometry.EWKTUtils.parseEWKT:(Lorg/h2/util/geometry/EWKTUtils$EWKTSource;Lorg/h2/util/geometry/GeometryUtils$Target;II)V
        16: .line 828
            aload 1 /* target */
            aload 7 /* innerTarget */
            iload 6 /* i */
            iload 5 /* numItems */
            invokevirtual org.h2.util.geometry.GeometryUtils$Target.endCollectionItem:(Lorg/h2/util/geometry/GeometryUtils$Target;II)V
        end local 7 // org.h2.util.geometry.GeometryUtils$Target innerTarget
        17: .line 822
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        18: iload 6 /* i */
            iload 5 /* numItems */
            if_icmplt 12
        end local 6 // int i
        19: .line 830
            aload 0 /* source */
            bipush 41
            invokevirtual org.h2.util.geometry.EWKTUtils$EWKTSource.read:(C)V
        end local 5 // int numItems
        20: .line 833
      StackMap locals:
      StackMap stack:
            aload 1 /* target */
            iload 2 /* type */
            invokevirtual org.h2.util.geometry.GeometryUtils$Target.endCollection:(I)V
        21: .line 834
            return
        end local 4 // int dimensionSystem
        end local 3 // int parentType
        end local 2 // int type
        end local 1 // org.h2.util.geometry.GeometryUtils$Target target
        end local 0 // org.h2.util.geometry.EWKTUtils$EWKTSource source
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   22     0           source  Lorg/h2/util/geometry/EWKTUtils$EWKTSource;
            0   22     1           target  Lorg/h2/util/geometry/GeometryUtils$Target;
            0   22     2             type  I
            0   22     3       parentType  I
            0   22     4  dimensionSystem  I
            9   20     5         numItems  I
           11   19     6                i  I
           15   17     7      innerTarget  Lorg/h2/util/geometry/GeometryUtils$Target;
    MethodParameters:
                 Name  Flags
      source           
      target           
      type             
      parentType       
      dimensionSystem  

  private static void parseMultiPointAlternative(org.h2.util.geometry.EWKTUtils$EWKTSource, org.h2.util.geometry.GeometryUtils$Target, int);
    descriptor: (Lorg/h2/util/geometry/EWKTUtils$EWKTSource;Lorg/h2/util/geometry/GeometryUtils$Target;I)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=11, locals=8, args_size=3
        start local 0 // org.h2.util.geometry.EWKTUtils$EWKTSource source
        start local 1 // org.h2.util.geometry.GeometryUtils$Target target
        start local 2 // int dimensionSystem
         0: .line 838
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 3 /* points */
        start local 3 // java.util.ArrayList points
         1: .line 840
      StackMap locals: java.util.ArrayList
      StackMap stack:
            aload 3 /* points */
            aload 0 /* source */
            iload 2 /* dimensionSystem */
            invokestatic org.h2.util.geometry.EWKTUtils.readCoordinate:(Lorg/h2/util/geometry/EWKTUtils$EWKTSource;I)[D
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
         2: .line 841
            aload 0 /* source */
            invokevirtual org.h2.util.geometry.EWKTUtils$EWKTSource.hasMoreCoordinates:()Z
            ifne 1
         3: .line 842
            aload 3 /* points */
            invokevirtual java.util.ArrayList.size:()I
            istore 4 /* numItems */
        start local 4 // int numItems
         4: .line 843
            aload 1 /* target */
            iconst_4
            iload 4 /* numItems */
            invokevirtual org.h2.util.geometry.GeometryUtils$Target.startCollection:(II)V
         5: .line 844
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         6: goto 13
         7: .line 845
      StackMap locals: int int
      StackMap stack:
            aload 1 /* target */
            iload 5 /* i */
            iload 4 /* numItems */
            invokevirtual org.h2.util.geometry.GeometryUtils$Target.startCollectionItem:(II)Lorg/h2/util/geometry/GeometryUtils$Target;
            astore 6 /* innerTarget */
        start local 6 // org.h2.util.geometry.GeometryUtils$Target innerTarget
         8: .line 846
            aload 1 /* target */
            invokevirtual org.h2.util.geometry.GeometryUtils$Target.startPoint:()V
         9: .line 847
            aload 3 /* points */
            iload 5 /* i */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast double[]
            astore 7 /* c */
        start local 7 // double[] c
        10: .line 848
            aload 1 /* target */
            aload 7 /* c */
            iconst_0
            daload
            aload 7 /* c */
            iconst_1
            daload
            aload 7 /* c */
            iconst_2
            daload
            aload 7 /* c */
            iconst_3
            daload
            iconst_0
            iconst_1
            invokevirtual org.h2.util.geometry.GeometryUtils$Target.addCoordinate:(DDDDII)V
        11: .line 849
            aload 1 /* target */
            aload 6 /* innerTarget */
            iload 5 /* i */
            iload 4 /* numItems */
            invokevirtual org.h2.util.geometry.GeometryUtils$Target.endCollectionItem:(Lorg/h2/util/geometry/GeometryUtils$Target;II)V
        end local 7 // double[] c
        end local 6 // org.h2.util.geometry.GeometryUtils$Target innerTarget
        12: .line 844
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        13: iload 5 /* i */
            aload 3 /* points */
            invokevirtual java.util.ArrayList.size:()I
            if_icmplt 7
        end local 5 // int i
        14: .line 851
            return
        end local 4 // int numItems
        end local 3 // java.util.ArrayList points
        end local 2 // int dimensionSystem
        end local 1 // org.h2.util.geometry.GeometryUtils$Target target
        end local 0 // org.h2.util.geometry.EWKTUtils$EWKTSource source
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   15     0           source  Lorg/h2/util/geometry/EWKTUtils$EWKTSource;
            0   15     1           target  Lorg/h2/util/geometry/GeometryUtils$Target;
            0   15     2  dimensionSystem  I
            1   15     3           points  Ljava/util/ArrayList<[D>;
            4   15     4         numItems  I
            6   14     5                i  I
            8   12     6      innerTarget  Lorg/h2/util/geometry/GeometryUtils$Target;
           10   12     7                c  [D
    MethodParameters:
                 Name  Flags
      source           
      target           
      dimensionSystem  

  private static java.util.ArrayList<double[]> readRing(org.h2.util.geometry.EWKTUtils$EWKTSource, int);
    descriptor: (Lorg/h2/util/geometry/EWKTUtils$EWKTSource;I)Ljava/util/ArrayList;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=13, args_size=2
        start local 0 // org.h2.util.geometry.EWKTUtils$EWKTSource source
        start local 1 // int dimensionSystem
         0: .line 854
            aload 0 /* source */
            invokevirtual org.h2.util.geometry.EWKTUtils$EWKTSource.readEmpty:()Z
            ifeq 2
         1: .line 855
            new java.util.ArrayList
            dup
            iconst_0
            invokespecial java.util.ArrayList.<init>:(I)V
            areturn
         2: .line 857
      StackMap locals:
      StackMap stack:
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 2 /* result */
        start local 2 // java.util.ArrayList result
         3: .line 858
            aload 0 /* source */
            iload 1 /* dimensionSystem */
            invokestatic org.h2.util.geometry.EWKTUtils.readCoordinate:(Lorg/h2/util/geometry/EWKTUtils$EWKTSource;I)[D
            astore 3 /* c */
        start local 3 // double[] c
         4: .line 859
            aload 3 /* c */
            iconst_0
            daload
            dstore 4 /* startX */
        start local 4 // double startX
         5: aload 3 /* c */
            iconst_1
            daload
            dstore 6 /* startY */
        start local 6 // double startY
         6: .line 860
            aload 2 /* result */
            aload 3 /* c */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
         7: .line 861
            goto 9
         8: .line 862
      StackMap locals: org.h2.util.geometry.EWKTUtils$EWKTSource int java.util.ArrayList double[] double double
      StackMap stack:
            aload 2 /* result */
            aload 0 /* source */
            iload 1 /* dimensionSystem */
            invokestatic org.h2.util.geometry.EWKTUtils.readCoordinate:(Lorg/h2/util/geometry/EWKTUtils$EWKTSource;I)[D
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
         9: .line 861
      StackMap locals:
      StackMap stack:
            aload 0 /* source */
            invokevirtual org.h2.util.geometry.EWKTUtils$EWKTSource.hasMoreCoordinates:()Z
            ifne 8
        10: .line 864
            aload 2 /* result */
            invokevirtual java.util.ArrayList.size:()I
            istore 8 /* size */
        start local 8 // int size
        11: .line 865
            iload 8 /* size */
            iconst_4
            if_icmpge 13
        12: .line 866
            new java.lang.IllegalArgumentException
            dup
            invokespecial java.lang.IllegalArgumentException.<init>:()V
            athrow
        13: .line 868
      StackMap locals: int
      StackMap stack:
            aload 2 /* result */
            iload 8 /* size */
            iconst_1
            isub
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast double[]
            astore 3 /* c */
        14: .line 869
            aload 3 /* c */
            iconst_0
            daload
            dstore 9 /* endX */
        start local 9 // double endX
        15: aload 3 /* c */
            iconst_1
            daload
            dstore 11 /* endY */
        start local 11 // double endY
        16: .line 874
            dload 4 /* startX */
            dload 9 /* endX */
            dcmpl
            ifne 17
            dload 6 /* startY */
            dload 11 /* endY */
            dcmpl
            ifeq 18
        17: .line 875
      StackMap locals: double double
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            invokespecial java.lang.IllegalArgumentException.<init>:()V
            athrow
        18: .line 877
      StackMap locals:
      StackMap stack:
            aload 2 /* result */
            areturn
        end local 11 // double endY
        end local 9 // double endX
        end local 8 // int size
        end local 6 // double startY
        end local 4 // double startX
        end local 3 // double[] c
        end local 2 // java.util.ArrayList result
        end local 1 // int dimensionSystem
        end local 0 // org.h2.util.geometry.EWKTUtils$EWKTSource source
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   19     0           source  Lorg/h2/util/geometry/EWKTUtils$EWKTSource;
            0   19     1  dimensionSystem  I
            3   19     2           result  Ljava/util/ArrayList<[D>;
            4   19     3                c  [D
            5   19     4           startX  D
            6   19     6           startY  D
           11   19     8             size  I
           15   19     9             endX  D
           16   19    11             endY  D
    Signature: (Lorg/h2/util/geometry/EWKTUtils$EWKTSource;I)Ljava/util/ArrayList<[D>;
    MethodParameters:
                 Name  Flags
      source           
      dimensionSystem  

  private static void addRing(java.util.ArrayList<double[]>, org.h2.util.geometry.GeometryUtils$Target);
    descriptor: (Ljava/util/ArrayList;Lorg/h2/util/geometry/GeometryUtils$Target;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=11, locals=5, args_size=2
        start local 0 // java.util.ArrayList ring
        start local 1 // org.h2.util.geometry.GeometryUtils$Target target
         0: .line 881
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         1: aload 0 /* ring */
            invokevirtual java.util.ArrayList.size:()I
            istore 3 /* size */
        start local 3 // int size
         2: goto 6
         3: .line 882
      StackMap locals: int int
      StackMap stack:
            aload 0 /* ring */
            iload 2 /* i */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast double[]
            astore 4 /* coordinates */
        start local 4 // double[] coordinates
         4: .line 883
            aload 1 /* target */
            aload 4 /* coordinates */
            iconst_0
            daload
            aload 4 /* coordinates */
            iconst_1
            daload
            aload 4 /* coordinates */
            iconst_2
            daload
            aload 4 /* coordinates */
            iconst_3
            daload
            iload 2 /* i */
            iload 3 /* size */
            invokevirtual org.h2.util.geometry.GeometryUtils$Target.addCoordinate:(DDDDII)V
        end local 4 // double[] coordinates
         5: .line 881
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 2 /* i */
            iload 3 /* size */
            if_icmplt 3
        end local 3 // int size
        end local 2 // int i
         7: .line 885
            return
        end local 1 // org.h2.util.geometry.GeometryUtils$Target target
        end local 0 // java.util.ArrayList ring
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    8     0         ring  Ljava/util/ArrayList<[D>;
            0    8     1       target  Lorg/h2/util/geometry/GeometryUtils$Target;
            1    7     2            i  I
            2    7     3         size  I
            4    5     4  coordinates  [D
    Signature: (Ljava/util/ArrayList<[D>;Lorg/h2/util/geometry/GeometryUtils$Target;)V
    MethodParameters:
        Name  Flags
      ring    
      target  

  private static void addCoordinate(org.h2.util.geometry.EWKTUtils$EWKTSource, org.h2.util.geometry.GeometryUtils$Target, int, int, int);
    descriptor: (Lorg/h2/util/geometry/EWKTUtils$EWKTSource;Lorg/h2/util/geometry/GeometryUtils$Target;III)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=11, locals=13, args_size=5
        start local 0 // org.h2.util.geometry.EWKTUtils$EWKTSource source
        start local 1 // org.h2.util.geometry.GeometryUtils$Target target
        start local 2 // int dimensionSystem
        start local 3 // int index
        start local 4 // int total
         0: .line 888
            aload 0 /* source */
            invokevirtual org.h2.util.geometry.EWKTUtils$EWKTSource.readCoordinate:()D
            dstore 5 /* x */
        start local 5 // double x
         1: .line 889
            aload 0 /* source */
            invokevirtual org.h2.util.geometry.EWKTUtils$EWKTSource.readCoordinate:()D
            dstore 7 /* y */
        start local 7 // double y
         2: .line 890
            ldc NaN
            dstore 9 /* z */
        start local 9 // double z
         3: ldc NaN
            dstore 11 /* m */
        start local 11 // double m
         4: .line 891
            aload 0 /* source */
            invokevirtual org.h2.util.geometry.EWKTUtils$EWKTSource.hasCoordinate:()Z
            ifeq 11
         5: .line 892
            iload 2 /* dimensionSystem */
            iconst_2
            if_icmpne 8
         6: .line 893
            aload 0 /* source */
            invokevirtual org.h2.util.geometry.EWKTUtils$EWKTSource.readCoordinate:()D
            dstore 11 /* m */
         7: .line 894
            goto 11
         8: .line 895
      StackMap locals: org.h2.util.geometry.EWKTUtils$EWKTSource org.h2.util.geometry.GeometryUtils$Target int int int double double double double
      StackMap stack:
            aload 0 /* source */
            invokevirtual org.h2.util.geometry.EWKTUtils$EWKTSource.readCoordinate:()D
            dstore 9 /* z */
         9: .line 896
            aload 0 /* source */
            invokevirtual org.h2.util.geometry.EWKTUtils$EWKTSource.hasCoordinate:()Z
            ifeq 11
        10: .line 897
            aload 0 /* source */
            invokevirtual org.h2.util.geometry.EWKTUtils$EWKTSource.readCoordinate:()D
            dstore 11 /* m */
        11: .line 901
      StackMap locals:
      StackMap stack:
            aload 1 /* target */
            dload 5 /* x */
            dload 7 /* y */
            dload 9 /* z */
            dload 11 /* m */
            iload 3 /* index */
            iload 4 /* total */
            invokevirtual org.h2.util.geometry.GeometryUtils$Target.addCoordinate:(DDDDII)V
        12: .line 902
            return
        end local 11 // double m
        end local 9 // double z
        end local 7 // double y
        end local 5 // double x
        end local 4 // int total
        end local 3 // int index
        end local 2 // int dimensionSystem
        end local 1 // org.h2.util.geometry.GeometryUtils$Target target
        end local 0 // org.h2.util.geometry.EWKTUtils$EWKTSource source
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   13     0           source  Lorg/h2/util/geometry/EWKTUtils$EWKTSource;
            0   13     1           target  Lorg/h2/util/geometry/GeometryUtils$Target;
            0   13     2  dimensionSystem  I
            0   13     3            index  I
            0   13     4            total  I
            1   13     5                x  D
            2   13     7                y  D
            3   13     9                z  D
            4   13    11                m  D
    MethodParameters:
                 Name  Flags
      source           
      target           
      dimensionSystem  
      index            
      total            

  private static double[] readCoordinate(org.h2.util.geometry.EWKTUtils$EWKTSource, int);
    descriptor: (Lorg/h2/util/geometry/EWKTUtils$EWKTSource;I)[D
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=10, args_size=2
        start local 0 // org.h2.util.geometry.EWKTUtils$EWKTSource source
        start local 1 // int dimensionSystem
         0: .line 905
            aload 0 /* source */
            invokevirtual org.h2.util.geometry.EWKTUtils$EWKTSource.readCoordinate:()D
            dstore 2 /* x */
        start local 2 // double x
         1: .line 906
            aload 0 /* source */
            invokevirtual org.h2.util.geometry.EWKTUtils$EWKTSource.readCoordinate:()D
            dstore 4 /* y */
        start local 4 // double y
         2: .line 907
            ldc NaN
            dstore 6 /* z */
        start local 6 // double z
         3: ldc NaN
            dstore 8 /* m */
        start local 8 // double m
         4: .line 908
            aload 0 /* source */
            invokevirtual org.h2.util.geometry.EWKTUtils$EWKTSource.hasCoordinate:()Z
            ifeq 11
         5: .line 909
            iload 1 /* dimensionSystem */
            iconst_2
            if_icmpne 8
         6: .line 910
            aload 0 /* source */
            invokevirtual org.h2.util.geometry.EWKTUtils$EWKTSource.readCoordinate:()D
            dstore 8 /* m */
         7: .line 911
            goto 11
         8: .line 912
      StackMap locals: org.h2.util.geometry.EWKTUtils$EWKTSource int double double double double
      StackMap stack:
            aload 0 /* source */
            invokevirtual org.h2.util.geometry.EWKTUtils$EWKTSource.readCoordinate:()D
            dstore 6 /* z */
         9: .line 913
            aload 0 /* source */
            invokevirtual org.h2.util.geometry.EWKTUtils$EWKTSource.hasCoordinate:()Z
            ifeq 11
        10: .line 914
            aload 0 /* source */
            invokevirtual org.h2.util.geometry.EWKTUtils$EWKTSource.readCoordinate:()D
            dstore 8 /* m */
        11: .line 918
      StackMap locals:
      StackMap stack:
            iconst_4
            newarray 7
            dup
            iconst_0
            dload 2 /* x */
            dastore
            dup
            iconst_1
            dload 4 /* y */
            dastore
            dup
            iconst_2
            dload 6 /* z */
            dastore
            dup
            iconst_3
            dload 8 /* m */
            dastore
            areturn
        end local 8 // double m
        end local 6 // double z
        end local 4 // double y
        end local 2 // double x
        end local 1 // int dimensionSystem
        end local 0 // org.h2.util.geometry.EWKTUtils$EWKTSource source
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   12     0           source  Lorg/h2/util/geometry/EWKTUtils$EWKTSource;
            0   12     1  dimensionSystem  I
            1   12     2                x  D
            2   12     4                y  D
            3   12     6                z  D
            4   12     8                m  D
    MethodParameters:
                 Name  Flags
      source           
      dimensionSystem  

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.util.geometry.EWKTUtils this
         0: .line 921
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 922
            return
        end local 0 // org.h2.util.geometry.EWKTUtils this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/h2/util/geometry/EWKTUtils;
}
SourceFile: "EWKTUtils.java"
NestMembers:
  org.h2.util.geometry.EWKTUtils$EWKTSource  org.h2.util.geometry.EWKTUtils$EWKTTarget
InnerClasses:
  public final EWKBTarget = org.h2.util.geometry.EWKBUtils$EWKBTarget of org.h2.util.geometry.EWKBUtils
  private final EWKTSource = org.h2.util.geometry.EWKTUtils$EWKTSource of org.h2.util.geometry.EWKTUtils
  public final EWKTTarget = org.h2.util.geometry.EWKTUtils$EWKTTarget of org.h2.util.geometry.EWKTUtils
  public final DimensionSystemTarget = org.h2.util.geometry.GeometryUtils$DimensionSystemTarget of org.h2.util.geometry.GeometryUtils
  public abstract Target = org.h2.util.geometry.GeometryUtils$Target of org.h2.util.geometry.GeometryUtils