public class org.jdbi.v3.sqlobject.SqlObjectFactory implements org.jdbi.v3.core.extension.ExtensionFactory
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.jdbi.v3.sqlobject.SqlObjectFactory
  super_class: java.lang.Object
{
  private static final java.lang.Object[] NO_ARGS;
    descriptor: [Ljava/lang/Object;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private final java.util.Map<java.lang.Class<?>, java.util.Map<java.lang.reflect.Method, org.jdbi.v3.sqlobject.Handler>> handlersCache;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/Class<*>;Ljava/util/Map<Ljava/lang/reflect/Method;Lorg/jdbi/v3/sqlobject/Handler;>;>;

  private final java.util.Map<java.lang.Class<? extends org.jdbi.v3.sqlobject.config.Configurer>, org.jdbi.v3.sqlobject.config.Configurer> configurers;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/Class<+Lorg/jdbi/v3/sqlobject/config/Configurer;>;Lorg/jdbi/v3/sqlobject/config/Configurer;>;

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 46
            iconst_0
            anewarray java.lang.Object
            putstatic org.jdbi.v3.sqlobject.SqlObjectFactory.NO_ARGS:[Ljava/lang/Object;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.jdbi.v3.sqlobject.SqlObjectFactory this
         0: .line 51
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 48
            aload 0 /* this */
            new java.util.WeakHashMap
            dup
            invokespecial java.util.WeakHashMap.<init>:()V
            invokestatic java.util.Collections.synchronizedMap:(Ljava/util/Map;)Ljava/util/Map;
            putfield org.jdbi.v3.sqlobject.SqlObjectFactory.handlersCache:Ljava/util/Map;
         2: .line 49
            aload 0 /* this */
            new java.util.WeakHashMap
            dup
            invokespecial java.util.WeakHashMap.<init>:()V
            invokestatic java.util.Collections.synchronizedMap:(Ljava/util/Map;)Ljava/util/Map;
            putfield org.jdbi.v3.sqlobject.SqlObjectFactory.configurers:Ljava/util/Map;
         3: .line 51
            return
        end local 0 // org.jdbi.v3.sqlobject.SqlObjectFactory this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/jdbi/v3/sqlobject/SqlObjectFactory;

  public boolean accepts(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.jdbi.v3.sqlobject.SqlObjectFactory this
        start local 1 // java.lang.Class extensionType
         0: .line 55
            aload 0 /* this */
            aload 1 /* extensionType */
            invokevirtual org.jdbi.v3.sqlobject.SqlObjectFactory.looksLikeSqlObject:(Ljava/lang/Class;)Z
            ifeq 4
         1: .line 56
            aload 1 /* extensionType */
            invokevirtual java.lang.Class.isInterface:()Z
            ifne 3
         2: .line 57
            new java.lang.IllegalArgumentException
            dup
            ldc "SQL Objects are only supported for interfaces."
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 60
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
         4: .line 63
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 1 // java.lang.Class extensionType
        end local 0 // org.jdbi.v3.sqlobject.SqlObjectFactory this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    5     0           this  Lorg/jdbi/v3/sqlobject/SqlObjectFactory;
            0    5     1  extensionType  Ljava/lang/Class<*>;
    Signature: (Ljava/lang/Class<*>;)Z
    MethodParameters:
               Name  Flags
      extensionType  

  private boolean looksLikeSqlObject(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jdbi.v3.sqlobject.SqlObjectFactory this
        start local 1 // java.lang.Class extensionType
         0: .line 67
            ldc Lorg/jdbi/v3/sqlobject/SqlObject;
            aload 1 /* extensionType */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 2
         1: .line 68
            iconst_1
            ireturn
         2: .line 71
      StackMap locals:
      StackMap stack:
            aload 1 /* extensionType */
            invokevirtual java.lang.Class.getMethods:()[Ljava/lang/reflect/Method;
            invokestatic java.util.stream.Stream.of:([Ljava/lang/Object;)Ljava/util/stream/Stream;
         3: .line 72
            invokedynamic apply()Ljava/util/function/Function;
              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;
                  org/jdbi/v3/sqlobject/SqlObjectFactory.lambda$0(Ljava/lang/reflect/Method;)Ljava/util/stream/Stream; (6)
                  (Ljava/lang/reflect/Method;)Ljava/util/stream/Stream;
            invokeinterface java.util.stream.Stream.flatMap:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
         4: .line 73
            invokedynamic test()Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  org/jdbi/v3/sqlobject/SqlObjectFactory.lambda$1(Ljava/lang/annotation/Annotation;)Z (6)
                  (Ljava/lang/annotation/Annotation;)Z
            invokeinterface java.util.stream.Stream.anyMatch:(Ljava/util/function/Predicate;)Z
         5: .line 71
            ireturn
        end local 1 // java.lang.Class extensionType
        end local 0 // org.jdbi.v3.sqlobject.SqlObjectFactory this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    6     0           this  Lorg/jdbi/v3/sqlobject/SqlObjectFactory;
            0    6     1  extensionType  Ljava/lang/Class<*>;
    Signature: (Ljava/lang/Class<*>;)Z
    MethodParameters:
               Name  Flags
      extensionType  

  public <E> E attach(java.lang.Class<E>, org.jdbi.v3.core.extension.HandleSupplier);
    descriptor: (Ljava/lang/Class;Lorg/jdbi/v3/core/extension/HandleSupplier;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=9, args_size=3
        start local 0 // org.jdbi.v3.sqlobject.SqlObjectFactory this
        start local 1 // java.lang.Class extensionType
        start local 2 // org.jdbi.v3.core.extension.HandleSupplier handle
         0: .line 86
            aload 0 /* this */
         1: .line 87
            aload 1 /* extensionType */
         2: .line 88
            aload 2 /* handle */
            ldc Lorg/jdbi/v3/sqlobject/Handlers;
            invokeinterface org.jdbi.v3.core.extension.HandleSupplier.getConfig:(Ljava/lang/Class;)Lorg/jdbi/v3/core/config/JdbiConfig;
            checkcast org.jdbi.v3.sqlobject.Handlers
         3: .line 89
            aload 2 /* handle */
            ldc Lorg/jdbi/v3/sqlobject/HandlerDecorators;
            invokeinterface org.jdbi.v3.core.extension.HandleSupplier.getConfig:(Ljava/lang/Class;)Lorg/jdbi/v3/core/config/JdbiConfig;
            checkcast org.jdbi.v3.sqlobject.HandlerDecorators
         4: .line 86
            invokevirtual org.jdbi.v3.sqlobject.SqlObjectFactory.methodHandlersFor:(Ljava/lang/Class;Lorg/jdbi/v3/sqlobject/Handlers;Lorg/jdbi/v3/sqlobject/HandlerDecorators;)Ljava/util/Map;
            astore 3 /* handlers */
        start local 3 // java.util.Map handlers
         5: .line 91
            aload 2 /* handle */
            invokeinterface org.jdbi.v3.core.extension.HandleSupplier.getConfig:()Lorg/jdbi/v3/core/config/ConfigRegistry;
            invokevirtual org.jdbi.v3.core.config.ConfigRegistry.createCopy:()Lorg/jdbi/v3/core/config/ConfigRegistry;
            astore 4 /* instanceConfig */
        start local 4 // org.jdbi.v3.core.config.ConfigRegistry instanceConfig
         6: .line 93
            aload 1 /* extensionType */
            invokevirtual java.lang.Class.getInterfaces:()[Ljava/lang/Class;
            dup
            astore 8
            arraylength
            istore 7
            iconst_0
            istore 6
            goto 10
      StackMap locals: org.jdbi.v3.sqlobject.SqlObjectFactory java.lang.Class org.jdbi.v3.core.extension.HandleSupplier java.util.Map org.jdbi.v3.core.config.ConfigRegistry top int int java.lang.Class[]
      StackMap stack:
         7: aload 8
            iload 6
            aaload
            astore 5 /* iface */
        start local 5 // java.lang.Class iface
         8: .line 94
            aload 0 /* this */
            aload 5 /* iface */
            aload 4 /* instanceConfig */
            aload 1 /* extensionType */
            invokedynamic accept(Lorg/jdbi/v3/core/config/ConfigRegistry;Ljava/lang/Class;)Ljava/util/function/BiConsumer;
              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;)V
                  org/jdbi/v3/sqlobject/SqlObjectFactory.lambda$2(Lorg/jdbi/v3/core/config/ConfigRegistry;Ljava/lang/Class;Lorg/jdbi/v3/sqlobject/config/Configurer;Ljava/lang/annotation/Annotation;)V (6)
                  (Lorg/jdbi/v3/sqlobject/config/Configurer;Ljava/lang/annotation/Annotation;)V
            invokevirtual org.jdbi.v3.sqlobject.SqlObjectFactory.forEachConfigurer:(Ljava/lang/reflect/AnnotatedElement;Ljava/util/function/BiConsumer;)V
        end local 5 // java.lang.Class iface
         9: .line 93
            iinc 6 1
      StackMap locals:
      StackMap stack:
        10: iload 6
            iload 7
            if_icmplt 7
        11: .line 97
            aload 0 /* this */
            aload 1 /* extensionType */
            aload 4 /* instanceConfig */
            aload 1 /* extensionType */
            invokedynamic accept(Lorg/jdbi/v3/core/config/ConfigRegistry;Ljava/lang/Class;)Ljava/util/function/BiConsumer;
              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;)V
                  org/jdbi/v3/sqlobject/SqlObjectFactory.lambda$3(Lorg/jdbi/v3/core/config/ConfigRegistry;Ljava/lang/Class;Lorg/jdbi/v3/sqlobject/config/Configurer;Ljava/lang/annotation/Annotation;)V (6)
                  (Lorg/jdbi/v3/sqlobject/config/Configurer;Ljava/lang/annotation/Annotation;)V
            invokevirtual org.jdbi.v3.sqlobject.SqlObjectFactory.forEachConfigurer:(Ljava/lang/reflect/AnnotatedElement;Ljava/util/function/BiConsumer;)V
        12: .line 100
            aload 0 /* this */
            aload 1 /* extensionType */
            aload 4 /* instanceConfig */
            aload 3 /* handlers */
            aload 2 /* handle */
            invokevirtual org.jdbi.v3.sqlobject.SqlObjectFactory.createInvocationHandler:(Ljava/lang/Class;Lorg/jdbi/v3/core/config/ConfigRegistry;Ljava/util/Map;Lorg/jdbi/v3/core/extension/HandleSupplier;)Ljava/lang/reflect/InvocationHandler;
            astore 5 /* invocationHandler */
        start local 5 // java.lang.reflect.InvocationHandler invocationHandler
        13: .line 101
            aload 1 /* extensionType */
        14: .line 103
            aload 1 /* extensionType */
            invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
        15: .line 104
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            aload 1 /* extensionType */
            aastore
        16: .line 105
            aload 5 /* invocationHandler */
        17: .line 102
            invokestatic java.lang.reflect.Proxy.newProxyInstance:(Ljava/lang/ClassLoader;[Ljava/lang/Class;Ljava/lang/reflect/InvocationHandler;)Ljava/lang/Object;
        18: .line 101
            invokevirtual java.lang.Class.cast:(Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 5 // java.lang.reflect.InvocationHandler invocationHandler
        end local 4 // org.jdbi.v3.core.config.ConfigRegistry instanceConfig
        end local 3 // java.util.Map handlers
        end local 2 // org.jdbi.v3.core.extension.HandleSupplier handle
        end local 1 // java.lang.Class extensionType
        end local 0 // org.jdbi.v3.sqlobject.SqlObjectFactory this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   19     0               this  Lorg/jdbi/v3/sqlobject/SqlObjectFactory;
            0   19     1      extensionType  Ljava/lang/Class<TE;>;
            0   19     2             handle  Lorg/jdbi/v3/core/extension/HandleSupplier;
            5   19     3           handlers  Ljava/util/Map<Ljava/lang/reflect/Method;Lorg/jdbi/v3/sqlobject/Handler;>;
            6   19     4     instanceConfig  Lorg/jdbi/v3/core/config/ConfigRegistry;
            8    9     5              iface  Ljava/lang/Class<*>;
           13   19     5  invocationHandler  Ljava/lang/reflect/InvocationHandler;
    Signature: <E:Ljava/lang/Object;>(Ljava/lang/Class<TE;>;Lorg/jdbi/v3/core/extension/HandleSupplier;)TE;
    MethodParameters:
               Name  Flags
      extensionType  
      handle         

  private java.util.Map<java.lang.reflect.Method, org.jdbi.v3.sqlobject.Handler> methodHandlersFor(java.lang.Class<?>, org.jdbi.v3.sqlobject.Handlers, org.jdbi.v3.sqlobject.HandlerDecorators);
    descriptor: (Ljava/lang/Class;Lorg/jdbi/v3/sqlobject/Handlers;Lorg/jdbi/v3/sqlobject/HandlerDecorators;)Ljava/util/Map;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // org.jdbi.v3.sqlobject.SqlObjectFactory this
        start local 1 // java.lang.Class sqlObjectType
        start local 2 // org.jdbi.v3.sqlobject.Handlers registry
        start local 3 // org.jdbi.v3.sqlobject.HandlerDecorators decorators
         0: .line 109
            aload 0 /* this */
            getfield org.jdbi.v3.sqlobject.SqlObjectFactory.handlersCache:Ljava/util/Map;
            aload 1 /* sqlObjectType */
            aload 0 /* this */
            aload 1 /* sqlObjectType */
            aload 2 /* registry */
            aload 3 /* decorators */
            invokedynamic apply(Lorg/jdbi/v3/sqlobject/SqlObjectFactory;Ljava/lang/Class;Lorg/jdbi/v3/sqlobject/Handlers;Lorg/jdbi/v3/sqlobject/HandlerDecorators;)Ljava/util/function/Function;
              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;
                  org/jdbi/v3/sqlobject/SqlObjectFactory.lambda$4(Ljava/lang/Class;Lorg/jdbi/v3/sqlobject/Handlers;Lorg/jdbi/v3/sqlobject/HandlerDecorators;Ljava/lang/Class;)Ljava/util/Map; (7)
                  (Ljava/lang/Class;)Ljava/util/Map;
            invokeinterface java.util.Map.computeIfAbsent:(Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object;
            checkcast java.util.Map
            areturn
        end local 3 // org.jdbi.v3.sqlobject.HandlerDecorators decorators
        end local 2 // org.jdbi.v3.sqlobject.Handlers registry
        end local 1 // java.lang.Class sqlObjectType
        end local 0 // org.jdbi.v3.sqlobject.SqlObjectFactory this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lorg/jdbi/v3/sqlobject/SqlObjectFactory;
            0    1     1  sqlObjectType  Ljava/lang/Class<*>;
            0    1     2       registry  Lorg/jdbi/v3/sqlobject/Handlers;
            0    1     3     decorators  Lorg/jdbi/v3/sqlobject/HandlerDecorators;
    Signature: (Ljava/lang/Class<*>;Lorg/jdbi/v3/sqlobject/Handlers;Lorg/jdbi/v3/sqlobject/HandlerDecorators;)Ljava/util/Map<Ljava/lang/reflect/Method;Lorg/jdbi/v3/sqlobject/Handler;>;
    MethodParameters:
               Name  Flags
      sqlObjectType  
      registry       
      decorators     

  private org.jdbi.v3.sqlobject.Handler buildMethodHandler(java.lang.Class<?>, java.lang.reflect.Method, org.jdbi.v3.sqlobject.Handlers, org.jdbi.v3.sqlobject.HandlerDecorators);
    descriptor: (Ljava/lang/Class;Ljava/lang/reflect/Method;Lorg/jdbi/v3/sqlobject/Handlers;Lorg/jdbi/v3/sqlobject/HandlerDecorators;)Lorg/jdbi/v3/sqlobject/Handler;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=6, args_size=5
        start local 0 // org.jdbi.v3.sqlobject.SqlObjectFactory this
        start local 1 // java.lang.Class sqlObjectType
        start local 2 // java.lang.reflect.Method method
        start local 3 // org.jdbi.v3.sqlobject.Handlers handlers
        start local 4 // org.jdbi.v3.sqlobject.HandlerDecorators decorators
         0: .line 147
            aload 3 /* handlers */
            aload 1 /* sqlObjectType */
            aload 2 /* method */
            invokevirtual org.jdbi.v3.sqlobject.Handlers.findFor:(Ljava/lang/Class;Ljava/lang/reflect/Method;)Ljava/util/Optional;
         1: .line 148
            aload 1 /* sqlObjectType */
            aload 2 /* method */
            invokedynamic get(Ljava/lang/Class;Ljava/lang/reflect/Method;)Ljava/util/function/Supplier;
              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;
                  org/jdbi/v3/sqlobject/SqlObjectFactory.lambda$15(Ljava/lang/Class;Ljava/lang/reflect/Method;)Ljava/lang/IllegalStateException; (6)
                  ()Ljava/lang/IllegalStateException;
            invokevirtual java.util.Optional.orElseThrow:(Ljava/util/function/Supplier;)Ljava/lang/Object;
            checkcast org.jdbi.v3.sqlobject.Handler
         2: .line 147
            astore 5 /* handler */
        start local 5 // org.jdbi.v3.sqlobject.Handler handler
         3: .line 153
            aload 4 /* decorators */
            aload 5 /* handler */
            aload 1 /* sqlObjectType */
            aload 2 /* method */
            invokevirtual org.jdbi.v3.sqlobject.HandlerDecorators.applyDecorators:(Lorg/jdbi/v3/sqlobject/Handler;Ljava/lang/Class;Ljava/lang/reflect/Method;)Lorg/jdbi/v3/sqlobject/Handler;
            areturn
        end local 5 // org.jdbi.v3.sqlobject.Handler handler
        end local 4 // org.jdbi.v3.sqlobject.HandlerDecorators decorators
        end local 3 // org.jdbi.v3.sqlobject.Handlers handlers
        end local 2 // java.lang.reflect.Method method
        end local 1 // java.lang.Class sqlObjectType
        end local 0 // org.jdbi.v3.sqlobject.SqlObjectFactory this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    4     0           this  Lorg/jdbi/v3/sqlobject/SqlObjectFactory;
            0    4     1  sqlObjectType  Ljava/lang/Class<*>;
            0    4     2         method  Ljava/lang/reflect/Method;
            0    4     3       handlers  Lorg/jdbi/v3/sqlobject/Handlers;
            0    4     4     decorators  Lorg/jdbi/v3/sqlobject/HandlerDecorators;
            3    4     5        handler  Lorg/jdbi/v3/sqlobject/Handler;
    Signature: (Ljava/lang/Class<*>;Ljava/lang/reflect/Method;Lorg/jdbi/v3/sqlobject/Handlers;Lorg/jdbi/v3/sqlobject/HandlerDecorators;)Lorg/jdbi/v3/sqlobject/Handler;
    MethodParameters:
               Name  Flags
      sqlObjectType  
      method         
      handlers       
      decorators     

  private static java.util.Map<java.lang.reflect.Method, org.jdbi.v3.sqlobject.Handler> handlerEntry(org.jdbi.v3.sqlobject.Handler, java.lang.Class<?>, java.lang.String, java.lang.Class<?>[]);
    descriptor: (Lorg/jdbi/v3/sqlobject/Handler;Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/Class;)Ljava/util/Map;
    flags: (0x008a) ACC_PRIVATE, ACC_STATIC, ACC_VARARGS
    Code:
      stack=7, locals=5, args_size=4
        start local 0 // org.jdbi.v3.sqlobject.Handler handler
        start local 1 // java.lang.Class klass
        start local 2 // java.lang.String methodName
        start local 3 // java.lang.Class[] parameterTypes
         0: .line 158
            aload 1 /* klass */
            aload 2 /* methodName */
            aload 3 /* parameterTypes */
            invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            aload 0 /* handler */
            invokestatic java.util.Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;
         1: areturn
         2: .line 159
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 4 /* e */
        start local 4 // java.lang.Exception e
         3: .line 160
            new java.lang.IllegalStateException
            dup
         4: .line 161
            ldc "can't find %s#%s%s"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* klass */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aastore
            dup
            iconst_1
            aload 2 /* methodName */
            aastore
            dup
            iconst_2
            aload 3 /* parameterTypes */
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            aload 4 /* e */
         5: .line 160
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 4 // java.lang.Exception e
        end local 3 // java.lang.Class[] parameterTypes
        end local 2 // java.lang.String methodName
        end local 1 // java.lang.Class klass
        end local 0 // org.jdbi.v3.sqlobject.Handler handler
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    6     0         handler  Lorg/jdbi/v3/sqlobject/Handler;
            0    6     1           klass  Ljava/lang/Class<*>;
            0    6     2      methodName  Ljava/lang/String;
            0    6     3  parameterTypes  [Ljava/lang/Class;
            3    6     4               e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.NoSuchMethodException
           0     1       2  Class java.lang.SecurityException
    Signature: (Lorg/jdbi/v3/sqlobject/Handler;Ljava/lang/Class<*>;Ljava/lang/String;[Ljava/lang/Class<*>;)Ljava/util/Map<Ljava/lang/reflect/Method;Lorg/jdbi/v3/sqlobject/Handler;>;
    MethodParameters:
                Name  Flags
      handler         
      klass           
      methodName      
      parameterTypes  

  private java.lang.reflect.InvocationHandler createInvocationHandler(java.lang.Class<?>, org.jdbi.v3.core.config.ConfigRegistry, java.util.Map<java.lang.reflect.Method, org.jdbi.v3.sqlobject.Handler>, org.jdbi.v3.core.extension.HandleSupplier);
    descriptor: (Ljava/lang/Class;Lorg/jdbi/v3/core/config/ConfigRegistry;Ljava/util/Map;Lorg/jdbi/v3/core/extension/HandleSupplier;)Ljava/lang/reflect/InvocationHandler;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=7, args_size=5
        start local 0 // org.jdbi.v3.sqlobject.SqlObjectFactory this
        start local 1 // java.lang.Class sqlObjectType
        start local 2 // org.jdbi.v3.core.config.ConfigRegistry instanceConfig
        start local 3 // java.util.Map handlers
        start local 4 // org.jdbi.v3.core.extension.HandleSupplier handle
         0: .line 169
            new java.util.concurrent.ConcurrentHashMap
            dup
            invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
            astore 5 /* methodConfigs */
        start local 5 // java.util.Map methodConfigs
         1: .line 171
            aload 0 /* this */
            aload 2 /* instanceConfig */
            aload 1 /* sqlObjectType */
            invokedynamic apply(Lorg/jdbi/v3/sqlobject/SqlObjectFactory;Lorg/jdbi/v3/core/config/ConfigRegistry;Ljava/lang/Class;)Ljava/util/function/Function;
              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;
                  org/jdbi/v3/sqlobject/SqlObjectFactory.lambda$16(Lorg/jdbi/v3/core/config/ConfigRegistry;Ljava/lang/Class;Ljava/lang/reflect/Method;)Lorg/jdbi/v3/core/config/ConfigRegistry; (7)
                  (Ljava/lang/reflect/Method;)Lorg/jdbi/v3/core/config/ConfigRegistry;
            astore 6 /* createConfigForMethod */
        start local 6 // java.util.function.Function createConfigForMethod
         2: .line 177
            aload 4 /* handle */
            aload 5 /* methodConfigs */
            aload 6 /* createConfigForMethod */
            aload 3 /* handlers */
            aload 1 /* sqlObjectType */
            invokedynamic invoke(Lorg/jdbi/v3/core/extension/HandleSupplier;Ljava/util/Map;Ljava/util/function/Function;Ljava/util/Map;Ljava/lang/Class;)Ljava/lang/reflect/InvocationHandler;
              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/reflect/Method;[Ljava/lang/Object;)Ljava/lang/Object;
                  org/jdbi/v3/sqlobject/SqlObjectFactory.lambda$18(Lorg/jdbi/v3/core/extension/HandleSupplier;Ljava/util/Map;Ljava/util/function/Function;Ljava/util/Map;Ljava/lang/Class;Ljava/lang/Object;Ljava/lang/reflect/Method;[Ljava/lang/Object;)Ljava/lang/Object; (6)
                  (Ljava/lang/Object;Ljava/lang/reflect/Method;[Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 6 // java.util.function.Function createConfigForMethod
        end local 5 // java.util.Map methodConfigs
        end local 4 // org.jdbi.v3.core.extension.HandleSupplier handle
        end local 3 // java.util.Map handlers
        end local 2 // org.jdbi.v3.core.config.ConfigRegistry instanceConfig
        end local 1 // java.lang.Class sqlObjectType
        end local 0 // org.jdbi.v3.sqlobject.SqlObjectFactory this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0    3     0                   this  Lorg/jdbi/v3/sqlobject/SqlObjectFactory;
            0    3     1          sqlObjectType  Ljava/lang/Class<*>;
            0    3     2         instanceConfig  Lorg/jdbi/v3/core/config/ConfigRegistry;
            0    3     3               handlers  Ljava/util/Map<Ljava/lang/reflect/Method;Lorg/jdbi/v3/sqlobject/Handler;>;
            0    3     4                 handle  Lorg/jdbi/v3/core/extension/HandleSupplier;
            1    3     5          methodConfigs  Ljava/util/Map<Ljava/lang/reflect/Method;Lorg/jdbi/v3/core/config/ConfigRegistry;>;
            2    3     6  createConfigForMethod  Ljava/util/function/Function<Ljava/lang/reflect/Method;Lorg/jdbi/v3/core/config/ConfigRegistry;>;
    Signature: (Ljava/lang/Class<*>;Lorg/jdbi/v3/core/config/ConfigRegistry;Ljava/util/Map<Ljava/lang/reflect/Method;Lorg/jdbi/v3/sqlobject/Handler;>;Lorg/jdbi/v3/core/extension/HandleSupplier;)Ljava/lang/reflect/InvocationHandler;
    MethodParameters:
                Name  Flags
      sqlObjectType   
      instanceConfig  
      handlers        
      handle          

  private void forEachConfigurer(java.lang.reflect.AnnotatedElement, java.util.function.BiConsumer<org.jdbi.v3.sqlobject.config.Configurer, java.lang.annotation.Annotation>);
    descriptor: (Ljava/lang/reflect/AnnotatedElement;Ljava/util/function/BiConsumer;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.jdbi.v3.sqlobject.SqlObjectFactory this
        start local 1 // java.lang.reflect.AnnotatedElement element
        start local 2 // java.util.function.BiConsumer consumer
         0: .line 190
            aload 1 /* element */
            invokeinterface java.lang.reflect.AnnotatedElement.getAnnotations:()[Ljava/lang/annotation/Annotation;
            invokestatic java.util.stream.Stream.of:([Ljava/lang/Object;)Ljava/util/stream/Stream;
         1: .line 191
            invokedynamic test()Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  org/jdbi/v3/sqlobject/SqlObjectFactory.lambda$20(Ljava/lang/annotation/Annotation;)Z (6)
                  (Ljava/lang/annotation/Annotation;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
         2: .line 192
            aload 0 /* this */
            aload 2 /* consumer */
            invokedynamic accept(Lorg/jdbi/v3/sqlobject/SqlObjectFactory;Ljava/util/function/BiConsumer;)Ljava/util/function/Consumer;
              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;)V
                  org/jdbi/v3/sqlobject/SqlObjectFactory.lambda$21(Ljava/util/function/BiConsumer;Ljava/lang/annotation/Annotation;)V (7)
                  (Ljava/lang/annotation/Annotation;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
         3: .line 198
            return
        end local 2 // java.util.function.BiConsumer consumer
        end local 1 // java.lang.reflect.AnnotatedElement element
        end local 0 // org.jdbi.v3.sqlobject.SqlObjectFactory this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0      this  Lorg/jdbi/v3/sqlobject/SqlObjectFactory;
            0    4     1   element  Ljava/lang/reflect/AnnotatedElement;
            0    4     2  consumer  Ljava/util/function/BiConsumer<Lorg/jdbi/v3/sqlobject/config/Configurer;Ljava/lang/annotation/Annotation;>;
    Signature: (Ljava/lang/reflect/AnnotatedElement;Ljava/util/function/BiConsumer<Lorg/jdbi/v3/sqlobject/config/Configurer;Ljava/lang/annotation/Annotation;>;)V
    MethodParameters:
          Name  Flags
      element   
      consumer  

  private org.jdbi.v3.sqlobject.config.Configurer getConfigurer(java.lang.Class<? extends org.jdbi.v3.sqlobject.config.Configurer>);
    descriptor: (Ljava/lang/Class;)Lorg/jdbi/v3/sqlobject/config/Configurer;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.jdbi.v3.sqlobject.SqlObjectFactory this
        start local 1 // java.lang.Class factoryClass
         0: .line 201
            aload 0 /* this */
            getfield org.jdbi.v3.sqlobject.SqlObjectFactory.configurers:Ljava/util/Map;
            aload 1 /* factoryClass */
            aload 1 /* factoryClass */
            invokedynamic apply(Ljava/lang/Class;)Ljava/util/function/Function;
              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;
                  org/jdbi/v3/sqlobject/SqlObjectFactory.lambda$22(Ljava/lang/Class;Ljava/lang/Class;)Lorg/jdbi/v3/sqlobject/config/Configurer; (6)
                  (Ljava/lang/Class;)Lorg/jdbi/v3/sqlobject/config/Configurer;
            invokeinterface java.util.Map.computeIfAbsent:(Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object;
            checkcast org.jdbi.v3.sqlobject.config.Configurer
            areturn
        end local 1 // java.lang.Class factoryClass
        end local 0 // org.jdbi.v3.sqlobject.SqlObjectFactory this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Lorg/jdbi/v3/sqlobject/SqlObjectFactory;
            0    1     1  factoryClass  Ljava/lang/Class<+Lorg/jdbi/v3/sqlobject/config/Configurer;>;
    Signature: (Ljava/lang/Class<+Lorg/jdbi/v3/sqlobject/config/Configurer;>;)Lorg/jdbi/v3/sqlobject/config/Configurer;
    MethodParameters:
              Name  Flags
      factoryClass  

  private static java.util.stream.Stream lambda$0(java.lang.reflect.Method);
    descriptor: (Ljava/lang/reflect/Method;)Ljava/util/stream/Stream;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.reflect.Method m
         0: .line 72
            aload 0 /* m */
            invokevirtual java.lang.reflect.Method.getAnnotations:()[Ljava/lang/annotation/Annotation;
            invokestatic java.util.stream.Stream.of:([Ljava/lang/Object;)Ljava/util/stream/Stream;
            areturn
        end local 0 // java.lang.reflect.Method m
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     m  Ljava/lang/reflect/Method;

  private static boolean lambda$1(java.lang.annotation.Annotation);
    descriptor: (Ljava/lang/annotation/Annotation;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.annotation.Annotation a
         0: .line 73
            aload 0 /* a */
            invokeinterface java.lang.annotation.Annotation.annotationType:()Ljava/lang/Class;
            ldc Lorg/jdbi/v3/sqlobject/SqlOperation;
            invokevirtual java.lang.Class.isAnnotationPresent:(Ljava/lang/Class;)Z
            ireturn
        end local 0 // java.lang.annotation.Annotation a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     a  Ljava/lang/annotation/Annotation;

  private static void lambda$2(org.jdbi.v3.core.config.ConfigRegistry, java.lang.Class, org.jdbi.v3.sqlobject.config.Configurer, java.lang.annotation.Annotation);
    descriptor: (Lorg/jdbi/v3/core/config/ConfigRegistry;Ljava/lang/Class;Lorg/jdbi/v3/sqlobject/config/Configurer;Ljava/lang/annotation/Annotation;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=4, locals=4, args_size=4
        start local 2 // org.jdbi.v3.sqlobject.config.Configurer configurer
        start local 3 // java.lang.annotation.Annotation annotation
         0: .line 95
            aload 2 /* configurer */
            aload 0
            aload 3 /* annotation */
            aload 1
            invokeinterface org.jdbi.v3.sqlobject.config.Configurer.configureForType:(Lorg/jdbi/v3/core/config/ConfigRegistry;Ljava/lang/annotation/Annotation;Ljava/lang/Class;)V
            return
        end local 3 // java.lang.annotation.Annotation annotation
        end local 2 // org.jdbi.v3.sqlobject.config.Configurer configurer
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     2  configurer  Lorg/jdbi/v3/sqlobject/config/Configurer;
            0    1     3  annotation  Ljava/lang/annotation/Annotation;

  private static void lambda$3(org.jdbi.v3.core.config.ConfigRegistry, java.lang.Class, org.jdbi.v3.sqlobject.config.Configurer, java.lang.annotation.Annotation);
    descriptor: (Lorg/jdbi/v3/core/config/ConfigRegistry;Ljava/lang/Class;Lorg/jdbi/v3/sqlobject/config/Configurer;Ljava/lang/annotation/Annotation;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=4, locals=4, args_size=4
        start local 2 // org.jdbi.v3.sqlobject.config.Configurer configurer
        start local 3 // java.lang.annotation.Annotation annotation
         0: .line 98
            aload 2 /* configurer */
            aload 0
            aload 3 /* annotation */
            aload 1
            invokeinterface org.jdbi.v3.sqlobject.config.Configurer.configureForType:(Lorg/jdbi/v3/core/config/ConfigRegistry;Ljava/lang/annotation/Annotation;Ljava/lang/Class;)V
            return
        end local 3 // java.lang.annotation.Annotation annotation
        end local 2 // org.jdbi.v3.sqlobject.config.Configurer configurer
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     2  configurer  Lorg/jdbi/v3/sqlobject/config/Configurer;
            0    1     3  annotation  Ljava/lang/annotation/Annotation;

  private java.util.Map lambda$4(java.lang.Class, org.jdbi.v3.sqlobject.Handlers, org.jdbi.v3.sqlobject.HandlerDecorators, java.lang.Class);
    descriptor: (Ljava/lang/Class;Lorg/jdbi/v3/sqlobject/Handlers;Lorg/jdbi/v3/sqlobject/HandlerDecorators;Ljava/lang/Class;)Ljava/util/Map;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=8, locals=10, args_size=5
        start local 0 // org.jdbi.v3.sqlobject.SqlObjectFactory this
        start local 4 // java.lang.Class type
         0: .line 110
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 5 /* handlers */
        start local 5 // java.util.Map handlers
         1: .line 112
            aload 5 /* handlers */
            aload 1
            invokedynamic invoke(Ljava/lang/Class;)Lorg/jdbi/v3/sqlobject/Handler;
              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;Lorg/jdbi/v3/core/extension/HandleSupplier;)Ljava/lang/Object;
                  org/jdbi/v3/sqlobject/SqlObjectFactory.lambda$5(Ljava/lang/Class;Ljava/lang/Object;[Ljava/lang/Object;Lorg/jdbi/v3/core/extension/HandleSupplier;)Ljava/lang/Object; (6)
                  (Ljava/lang/Object;[Ljava/lang/Object;Lorg/jdbi/v3/core/extension/HandleSupplier;)Ljava/lang/Object;
         2: .line 114
            ldc Ljava/lang/Object;
            ldc "toString"
            iconst_0
            anewarray java.lang.Class
         3: .line 112
            invokestatic org.jdbi.v3.sqlobject.SqlObjectFactory.handlerEntry:(Lorg/jdbi/v3/sqlobject/Handler;Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/Class;)Ljava/util/Map;
            invokeinterface java.util.Map.putAll:(Ljava/util/Map;)V
         4: .line 115
            aload 5 /* handlers */
            invokedynamic invoke()Lorg/jdbi/v3/sqlobject/Handler;
              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;Lorg/jdbi/v3/core/extension/HandleSupplier;)Ljava/lang/Object;
                  org/jdbi/v3/sqlobject/SqlObjectFactory.lambda$6(Ljava/lang/Object;[Ljava/lang/Object;Lorg/jdbi/v3/core/extension/HandleSupplier;)Ljava/lang/Object; (6)
                  (Ljava/lang/Object;[Ljava/lang/Object;Lorg/jdbi/v3/core/extension/HandleSupplier;)Ljava/lang/Object;
            ldc Ljava/lang/Object;
            ldc "equals"
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Ljava/lang/Object;
            aastore
            invokestatic org.jdbi.v3.sqlobject.SqlObjectFactory.handlerEntry:(Lorg/jdbi/v3/sqlobject/Handler;Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/Class;)Ljava/util/Map;
            invokeinterface java.util.Map.putAll:(Ljava/util/Map;)V
         5: .line 116
            aload 5 /* handlers */
            invokedynamic invoke()Lorg/jdbi/v3/sqlobject/Handler;
              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;Lorg/jdbi/v3/core/extension/HandleSupplier;)Ljava/lang/Object;
                  org/jdbi/v3/sqlobject/SqlObjectFactory.lambda$7(Ljava/lang/Object;[Ljava/lang/Object;Lorg/jdbi/v3/core/extension/HandleSupplier;)Ljava/lang/Object; (6)
                  (Ljava/lang/Object;[Ljava/lang/Object;Lorg/jdbi/v3/core/extension/HandleSupplier;)Ljava/lang/Object;
            ldc Ljava/lang/Object;
            ldc "hashCode"
            iconst_0
            anewarray java.lang.Class
            invokestatic org.jdbi.v3.sqlobject.SqlObjectFactory.handlerEntry:(Lorg/jdbi/v3/sqlobject/Handler;Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/Class;)Ljava/util/Map;
            invokeinterface java.util.Map.putAll:(Ljava/util/Map;)V
         6: .line 117
            aload 5 /* handlers */
            invokedynamic invoke()Lorg/jdbi/v3/sqlobject/Handler;
              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;Lorg/jdbi/v3/core/extension/HandleSupplier;)Ljava/lang/Object;
                  org/jdbi/v3/sqlobject/SqlObjectFactory.lambda$8(Ljava/lang/Object;[Ljava/lang/Object;Lorg/jdbi/v3/core/extension/HandleSupplier;)Ljava/lang/Object; (6)
                  (Ljava/lang/Object;[Ljava/lang/Object;Lorg/jdbi/v3/core/extension/HandleSupplier;)Ljava/lang/Object;
            ldc Lorg/jdbi/v3/sqlobject/SqlObject;
            ldc "getHandle"
            iconst_0
            anewarray java.lang.Class
            invokestatic org.jdbi.v3.sqlobject.SqlObjectFactory.handlerEntry:(Lorg/jdbi/v3/sqlobject/Handler;Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/Class;)Ljava/util/Map;
            invokeinterface java.util.Map.putAll:(Ljava/util/Map;)V
         7: .line 119
            aload 5 /* handlers */
            invokedynamic invoke()Lorg/jdbi/v3/sqlobject/Handler;
              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;Lorg/jdbi/v3/core/extension/HandleSupplier;)Ljava/lang/Object;
                  org/jdbi/v3/sqlobject/SqlObjectFactory.lambda$9(Ljava/lang/Object;[Ljava/lang/Object;Lorg/jdbi/v3/core/extension/HandleSupplier;)Ljava/lang/Object; (6)
                  (Ljava/lang/Object;[Ljava/lang/Object;Lorg/jdbi/v3/core/extension/HandleSupplier;)Ljava/lang/Object;
            aload 1
            ldc "finalize"
            iconst_0
            anewarray java.lang.Class
            invokestatic org.jdbi.v3.sqlobject.SqlObjectFactory.handlerEntry:(Lorg/jdbi/v3/sqlobject/Handler;Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/Class;)Ljava/util/Map;
            invokeinterface java.util.Map.putAll:(Ljava/util/Map;)V
         8: .line 120
            goto 10
      StackMap locals: org.jdbi.v3.sqlobject.SqlObjectFactory java.lang.Class org.jdbi.v3.sqlobject.Handlers org.jdbi.v3.sqlobject.HandlerDecorators java.lang.Class java.util.Map
      StackMap stack: java.lang.IllegalStateException
         9: pop
        10: .line 124
      StackMap locals:
      StackMap stack:
            aload 1
            invokevirtual java.lang.Class.getMethods:()[Ljava/lang/reflect/Method;
            dup
            astore 9
            arraylength
            istore 8
            iconst_0
            istore 7
            goto 16
      StackMap locals: org.jdbi.v3.sqlobject.SqlObjectFactory java.lang.Class org.jdbi.v3.sqlobject.Handlers org.jdbi.v3.sqlobject.HandlerDecorators java.lang.Class java.util.Map top int int java.lang.reflect.Method[]
      StackMap stack:
        11: aload 9
            iload 7
            aaload
            astore 6 /* method */
        start local 6 // java.lang.reflect.Method method
        12: .line 125
            aload 6 /* method */
            invokevirtual java.lang.reflect.Method.getModifiers:()I
            invokestatic java.lang.reflect.Modifier.isStatic:(I)Z
            ifeq 14
        13: .line 126
            goto 15
        14: .line 128
      StackMap locals: org.jdbi.v3.sqlobject.SqlObjectFactory java.lang.Class org.jdbi.v3.sqlobject.Handlers org.jdbi.v3.sqlobject.HandlerDecorators java.lang.Class java.util.Map java.lang.reflect.Method int int java.lang.reflect.Method[]
      StackMap stack:
            aload 5 /* handlers */
            aload 6 /* method */
            aload 0 /* this */
            aload 1
            aload 2
            aload 3
            invokedynamic apply(Lorg/jdbi/v3/sqlobject/SqlObjectFactory;Ljava/lang/Class;Lorg/jdbi/v3/sqlobject/Handlers;Lorg/jdbi/v3/sqlobject/HandlerDecorators;)Ljava/util/function/Function;
              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;
                  org/jdbi/v3/sqlobject/SqlObjectFactory.lambda$10(Ljava/lang/Class;Lorg/jdbi/v3/sqlobject/Handlers;Lorg/jdbi/v3/sqlobject/HandlerDecorators;Ljava/lang/reflect/Method;)Lorg/jdbi/v3/sqlobject/Handler; (7)
                  (Ljava/lang/reflect/Method;)Lorg/jdbi/v3/sqlobject/Handler;
            invokeinterface java.util.Map.computeIfAbsent:(Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object;
            pop
        end local 6 // java.lang.reflect.Method method
        15: .line 124
      StackMap locals: org.jdbi.v3.sqlobject.SqlObjectFactory java.lang.Class org.jdbi.v3.sqlobject.Handlers org.jdbi.v3.sqlobject.HandlerDecorators java.lang.Class java.util.Map top int int java.lang.reflect.Method[]
      StackMap stack:
            iinc 7 1
      StackMap locals:
      StackMap stack:
        16: iload 7
            iload 8
            if_icmplt 11
        17: .line 131
            aload 5 /* handlers */
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
        18: .line 132
            invokedynamic test()Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  org/jdbi/v3/sqlobject/SqlObjectFactory.lambda$11(Ljava/lang/reflect/Method;)Z (6)
                  (Ljava/lang/reflect/Method;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
        19: .line 133
            invokedynamic apply()Ljava/util/function/Function;
              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;
                  org/jdbi/v3/sqlobject/SqlObjectFactory.lambda$12(Ljava/lang/reflect/Method;)Ljava/util/List; (6)
                  (Ljava/lang/reflect/Method;)Ljava/util/List;
            invokestatic java.util.stream.Collectors.groupingBy:(Ljava/util/function/Function;)Ljava/util/stream/Collector;
            invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
            checkcast java.util.Map
        20: .line 134
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
        21: .line 135
            invokeinterface java.util.Collection.stream:()Ljava/util/stream/Stream;
        22: .line 136
            invokedynamic test()Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  org/jdbi/v3/sqlobject/SqlObjectFactory.lambda$13(Ljava/util/List;)Z (6)
                  (Ljava/util/List;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
        23: .line 137
            invokeinterface java.util.stream.Stream.findAny:()Ljava/util/Optional;
        24: .line 138
            aload 1
            invokedynamic accept(Ljava/lang/Class;)Ljava/util/function/Consumer;
              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;)V
                  org/jdbi/v3/sqlobject/SqlObjectFactory.lambda$14(Ljava/lang/Class;Ljava/util/List;)V (6)
                  (Ljava/util/List;)V
            invokevirtual java.util.Optional.ifPresent:(Ljava/util/function/Consumer;)V
        25: .line 142
            aload 5 /* handlers */
            areturn
        end local 5 // java.util.Map handlers
        end local 4 // java.lang.Class type
        end local 0 // org.jdbi.v3.sqlobject.SqlObjectFactory this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   26     0      this  Lorg/jdbi/v3/sqlobject/SqlObjectFactory;
            0   26     4      type  Ljava/lang/Class<*>;
            1   26     5  handlers  Ljava/util/Map<Ljava/lang/reflect/Method;Lorg/jdbi/v3/sqlobject/Handler;>;
           12   15     6    method  Ljava/lang/reflect/Method;
      Exception table:
        from    to  target  type
           7     8       9  Class java.lang.IllegalStateException

  private static java.lang.IllegalStateException lambda$15(java.lang.Class, java.lang.reflect.Method);
    descriptor: (Ljava/lang/Class;Ljava/lang/reflect/Method;)Ljava/lang/IllegalStateException;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=7, locals=2, args_size=2
         0: .line 148
            new java.lang.IllegalStateException
            dup
         1: .line 149
            ldc "Method %s.%s must be default or be annotated with a SQL method annotation."
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
         2: .line 150
            aload 0
            invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
            aastore
            dup
            iconst_1
         3: .line 151
            aload 1
            invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
            aastore
         4: .line 148
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
         5: .line 151
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private org.jdbi.v3.core.config.ConfigRegistry lambda$16(org.jdbi.v3.core.config.ConfigRegistry, java.lang.Class, java.lang.reflect.Method);
    descriptor: (Lorg/jdbi/v3/core/config/ConfigRegistry;Ljava/lang/Class;Ljava/lang/reflect/Method;)Lorg/jdbi/v3/core/config/ConfigRegistry;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // org.jdbi.v3.sqlobject.SqlObjectFactory this
        start local 3 // java.lang.reflect.Method method
         0: .line 172
            aload 1
            invokevirtual org.jdbi.v3.core.config.ConfigRegistry.createCopy:()Lorg/jdbi/v3/core/config/ConfigRegistry;
            astore 4 /* config */
        start local 4 // org.jdbi.v3.core.config.ConfigRegistry config
         1: .line 173
            aload 0 /* this */
            aload 3 /* method */
            aload 4 /* config */
            aload 2
            aload 3 /* method */
            invokedynamic accept(Lorg/jdbi/v3/core/config/ConfigRegistry;Ljava/lang/Class;Ljava/lang/reflect/Method;)Ljava/util/function/BiConsumer;
              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;)V
                  org/jdbi/v3/sqlobject/SqlObjectFactory.lambda$17(Lorg/jdbi/v3/core/config/ConfigRegistry;Ljava/lang/Class;Ljava/lang/reflect/Method;Lorg/jdbi/v3/sqlobject/config/Configurer;Ljava/lang/annotation/Annotation;)V (6)
                  (Lorg/jdbi/v3/sqlobject/config/Configurer;Ljava/lang/annotation/Annotation;)V
            invokevirtual org.jdbi.v3.sqlobject.SqlObjectFactory.forEachConfigurer:(Ljava/lang/reflect/AnnotatedElement;Ljava/util/function/BiConsumer;)V
         2: .line 174
            aload 4 /* config */
            areturn
        end local 4 // org.jdbi.v3.core.config.ConfigRegistry config
        end local 3 // java.lang.reflect.Method method
        end local 0 // org.jdbi.v3.sqlobject.SqlObjectFactory this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lorg/jdbi/v3/sqlobject/SqlObjectFactory;
            0    3     3  method  Ljava/lang/reflect/Method;
            1    3     4  config  Lorg/jdbi/v3/core/config/ConfigRegistry;

  private static java.lang.Object lambda$18(org.jdbi.v3.core.extension.HandleSupplier, java.util.Map, java.util.function.Function, java.util.Map, java.lang.Class, java.lang.Object, java.lang.reflect.Method, java.lang.Object[]);
    descriptor: (Lorg/jdbi/v3/core/extension/HandleSupplier;Ljava/util/Map;Ljava/util/function/Function;Ljava/util/Map;Ljava/lang/Class;Ljava/lang/Object;Ljava/lang/reflect/Method;[Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=7, locals=10, args_size=8
        start local 5 // java.lang.Object proxy
        start local 6 // java.lang.reflect.Method method
        start local 7 // java.lang.Object[] args
         0: .line 178
            aload 1
            aload 6 /* method */
            aload 2
            invokeinterface java.util.Map.computeIfAbsent:(Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object;
            checkcast org.jdbi.v3.core.config.ConfigRegistry
            invokevirtual org.jdbi.v3.core.config.ConfigRegistry.createCopy:()Lorg/jdbi/v3/core/config/ConfigRegistry;
            astore 8 /* methodConfig */
        start local 8 // org.jdbi.v3.core.config.ConfigRegistry methodConfig
         1: .line 179
            aload 3
            aload 6 /* method */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.jdbi.v3.sqlobject.Handler
            astore 9 /* handler */
        start local 9 // org.jdbi.v3.sqlobject.Handler handler
         2: .line 181
            aload 0
         3: .line 182
            new org.jdbi.v3.core.extension.ExtensionMethod
            dup
            aload 4
            aload 6 /* method */
            invokespecial org.jdbi.v3.core.extension.ExtensionMethod.<init>:(Ljava/lang/Class;Ljava/lang/reflect/Method;)V
         4: .line 183
            aload 8 /* methodConfig */
         5: .line 184
            aload 9 /* handler */
            aload 5 /* proxy */
            aload 7 /* args */
            aload 0
            invokedynamic call(Lorg/jdbi/v3/sqlobject/Handler;Ljava/lang/Object;[Ljava/lang/Object;Lorg/jdbi/v3/core/extension/HandleSupplier;)Ljava/util/concurrent/Callable;
              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;
                  org/jdbi/v3/sqlobject/SqlObjectFactory.lambda$19(Lorg/jdbi/v3/sqlobject/Handler;Ljava/lang/Object;[Ljava/lang/Object;Lorg/jdbi/v3/core/extension/HandleSupplier;)Ljava/lang/Object; (6)
                  ()Ljava/lang/Object;
         6: .line 181
            invokeinterface org.jdbi.v3.core.extension.HandleSupplier.invokeInContext:(Lorg/jdbi/v3/core/extension/ExtensionMethod;Lorg/jdbi/v3/core/config/ConfigRegistry;Ljava/util/concurrent/Callable;)Ljava/lang/Object;
            areturn
        end local 9 // org.jdbi.v3.sqlobject.Handler handler
        end local 8 // org.jdbi.v3.core.config.ConfigRegistry methodConfig
        end local 7 // java.lang.Object[] args
        end local 6 // java.lang.reflect.Method method
        end local 5 // java.lang.Object proxy
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    7     5         proxy  Ljava/lang/Object;
            0    7     6        method  Ljava/lang/reflect/Method;
            0    7     7          args  [Ljava/lang/Object;
            1    7     8  methodConfig  Lorg/jdbi/v3/core/config/ConfigRegistry;
            2    7     9       handler  Lorg/jdbi/v3/sqlobject/Handler;
    Exceptions:
      throws java.lang.Throwable

  private static boolean lambda$20(java.lang.annotation.Annotation);
    descriptor: (Ljava/lang/annotation/Annotation;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.annotation.Annotation a
         0: .line 191
            aload 0 /* a */
            invokeinterface java.lang.annotation.Annotation.annotationType:()Ljava/lang/Class;
            ldc Lorg/jdbi/v3/sqlobject/config/ConfiguringAnnotation;
            invokevirtual java.lang.Class.isAnnotationPresent:(Ljava/lang/Class;)Z
            ireturn
        end local 0 // java.lang.annotation.Annotation a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     a  Ljava/lang/annotation/Annotation;

  private void lambda$21(java.util.function.BiConsumer, java.lang.annotation.Annotation);
    descriptor: (Ljava/util/function/BiConsumer;Ljava/lang/annotation/Annotation;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // org.jdbi.v3.sqlobject.SqlObjectFactory this
        start local 2 // java.lang.annotation.Annotation a
         0: .line 193
            aload 2 /* a */
            invokeinterface java.lang.annotation.Annotation.annotationType:()Ljava/lang/Class;
         1: .line 194
            ldc Lorg/jdbi/v3/sqlobject/config/ConfiguringAnnotation;
            invokevirtual java.lang.Class.getAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
            checkcast org.jdbi.v3.sqlobject.config.ConfiguringAnnotation
         2: .line 193
            astore 3 /* meta */
        start local 3 // org.jdbi.v3.sqlobject.config.ConfiguringAnnotation meta
         3: .line 196
            aload 1
            aload 0 /* this */
            aload 3 /* meta */
            invokeinterface org.jdbi.v3.sqlobject.config.ConfiguringAnnotation.value:()Ljava/lang/Class;
            invokevirtual org.jdbi.v3.sqlobject.SqlObjectFactory.getConfigurer:(Ljava/lang/Class;)Lorg/jdbi/v3/sqlobject/config/Configurer;
            aload 2 /* a */
            invokeinterface java.util.function.BiConsumer.accept:(Ljava/lang/Object;Ljava/lang/Object;)V
        end local 3 // org.jdbi.v3.sqlobject.config.ConfiguringAnnotation meta
         4: .line 197
            return
        end local 2 // java.lang.annotation.Annotation a
        end local 0 // org.jdbi.v3.sqlobject.SqlObjectFactory this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/jdbi/v3/sqlobject/SqlObjectFactory;
            0    5     2     a  Ljava/lang/annotation/Annotation;
            3    4     3  meta  Lorg/jdbi/v3/sqlobject/config/ConfiguringAnnotation;

  private static org.jdbi.v3.sqlobject.config.Configurer lambda$22(java.lang.Class, java.lang.Class);
    descriptor: (Ljava/lang/Class;Ljava/lang/Class;)Lorg/jdbi/v3/sqlobject/config/Configurer;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=5, locals=3, args_size=2
        start local 1 // java.lang.Class c
         0: .line 203
            aload 1 /* c */
            invokevirtual java.lang.Class.newInstance:()Ljava/lang/Object;
            checkcast org.jdbi.v3.sqlobject.config.Configurer
         1: areturn
         2: .line 204
      StackMap locals:
      StackMap stack: java.lang.ReflectiveOperationException
            astore 2 /* e */
        start local 2 // java.lang.ReflectiveOperationException e
         3: .line 205
            new java.lang.IllegalStateException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unable to instantiate configurer factory class "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 2 /* e */
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 2 // java.lang.ReflectiveOperationException e
        end local 1 // java.lang.Class c
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     1     c  Ljava/lang/Class<+Lorg/jdbi/v3/sqlobject/config/Configurer;>;
            3    4     2     e  Ljava/lang/ReflectiveOperationException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.InstantiationException
           0     1       2  Class java.lang.IllegalAccessException

  private static java.lang.Object lambda$5(java.lang.Class, java.lang.Object, java.lang.Object[], org.jdbi.v3.core.extension.HandleSupplier);
    descriptor: (Ljava/lang/Class;Ljava/lang/Object;[Ljava/lang/Object;Lorg/jdbi/v3/core/extension/HandleSupplier;)Ljava/lang/Object;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=4, args_size=4
        start local 1 // java.lang.Object t
        start local 2 // java.lang.Object[] a
        start local 3 // org.jdbi.v3.core.extension.HandleSupplier h
         0: .line 113
            new java.lang.StringBuilder
            dup
            aload 0
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            bipush 64
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            aload 1 /* t */
            invokevirtual java.lang.Object.hashCode:()I
            invokestatic java.lang.Integer.toHexString:(I)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 3 // org.jdbi.v3.core.extension.HandleSupplier h
        end local 2 // java.lang.Object[] a
        end local 1 // java.lang.Object t
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     1     t  Ljava/lang/Object;
            0    1     2     a  [Ljava/lang/Object;
            0    1     3     h  Lorg/jdbi/v3/core/extension/HandleSupplier;
    Exceptions:
      throws java.lang.Exception

  private static java.lang.Object lambda$6(java.lang.Object, java.lang.Object[], org.jdbi.v3.core.extension.HandleSupplier);
    descriptor: (Ljava/lang/Object;[Ljava/lang/Object;Lorg/jdbi/v3/core/extension/HandleSupplier;)Ljava/lang/Object;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // java.lang.Object t
        start local 1 // java.lang.Object[] a
        start local 2 // org.jdbi.v3.core.extension.HandleSupplier h
         0: .line 115
            aload 0 /* t */
            aload 1 /* a */
            iconst_0
            aaload
            if_acmpne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            areturn
        end local 2 // org.jdbi.v3.core.extension.HandleSupplier h
        end local 1 // java.lang.Object[] a
        end local 0 // java.lang.Object t
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0     t  Ljava/lang/Object;
            0    3     1     a  [Ljava/lang/Object;
            0    3     2     h  Lorg/jdbi/v3/core/extension/HandleSupplier;
    Exceptions:
      throws java.lang.Exception

  private static java.lang.Object lambda$7(java.lang.Object, java.lang.Object[], org.jdbi.v3.core.extension.HandleSupplier);
    descriptor: (Ljava/lang/Object;[Ljava/lang/Object;Lorg/jdbi/v3/core/extension/HandleSupplier;)Ljava/lang/Object;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=3, args_size=3
        start local 0 // java.lang.Object t
        start local 1 // java.lang.Object[] a
        start local 2 // org.jdbi.v3.core.extension.HandleSupplier h
         0: .line 116
            aload 0 /* t */
            invokestatic java.lang.System.identityHashCode:(Ljava/lang/Object;)I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            areturn
        end local 2 // org.jdbi.v3.core.extension.HandleSupplier h
        end local 1 // java.lang.Object[] a
        end local 0 // java.lang.Object t
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     t  Ljava/lang/Object;
            0    1     1     a  [Ljava/lang/Object;
            0    1     2     h  Lorg/jdbi/v3/core/extension/HandleSupplier;
    Exceptions:
      throws java.lang.Exception

  private static java.lang.Object lambda$8(java.lang.Object, java.lang.Object[], org.jdbi.v3.core.extension.HandleSupplier);
    descriptor: (Ljava/lang/Object;[Ljava/lang/Object;Lorg/jdbi/v3/core/extension/HandleSupplier;)Ljava/lang/Object;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=3, args_size=3
        start local 0 // java.lang.Object t
        start local 1 // java.lang.Object[] a
        start local 2 // org.jdbi.v3.core.extension.HandleSupplier h
         0: .line 117
            aload 2 /* h */
            invokeinterface org.jdbi.v3.core.extension.HandleSupplier.getHandle:()Lorg/jdbi/v3/core/Handle;
            areturn
        end local 2 // org.jdbi.v3.core.extension.HandleSupplier h
        end local 1 // java.lang.Object[] a
        end local 0 // java.lang.Object t
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     t  Ljava/lang/Object;
            0    1     1     a  [Ljava/lang/Object;
            0    1     2     h  Lorg/jdbi/v3/core/extension/HandleSupplier;
    Exceptions:
      throws java.lang.Exception

  private static java.lang.Object lambda$9(java.lang.Object, java.lang.Object[], org.jdbi.v3.core.extension.HandleSupplier);
    descriptor: (Ljava/lang/Object;[Ljava/lang/Object;Lorg/jdbi/v3/core/extension/HandleSupplier;)Ljava/lang/Object;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=3, args_size=3
        start local 0 // java.lang.Object t
        start local 1 // java.lang.Object[] a
        start local 2 // org.jdbi.v3.core.extension.HandleSupplier h
         0: .line 119
            aconst_null
            areturn
        end local 2 // org.jdbi.v3.core.extension.HandleSupplier h
        end local 1 // java.lang.Object[] a
        end local 0 // java.lang.Object t
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     t  Ljava/lang/Object;
            0    1     1     a  [Ljava/lang/Object;
            0    1     2     h  Lorg/jdbi/v3/core/extension/HandleSupplier;
    Exceptions:
      throws java.lang.Exception

  private org.jdbi.v3.sqlobject.Handler lambda$10(java.lang.Class, org.jdbi.v3.sqlobject.Handlers, org.jdbi.v3.sqlobject.HandlerDecorators, java.lang.reflect.Method);
    descriptor: (Ljava/lang/Class;Lorg/jdbi/v3/sqlobject/Handlers;Lorg/jdbi/v3/sqlobject/HandlerDecorators;Ljava/lang/reflect/Method;)Lorg/jdbi/v3/sqlobject/Handler;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // org.jdbi.v3.sqlobject.SqlObjectFactory this
        start local 4 // java.lang.reflect.Method m
         0: .line 128
            aload 0 /* this */
            aload 1
            aload 4 /* m */
            aload 2
            aload 3
            invokevirtual org.jdbi.v3.sqlobject.SqlObjectFactory.buildMethodHandler:(Ljava/lang/Class;Ljava/lang/reflect/Method;Lorg/jdbi/v3/sqlobject/Handlers;Lorg/jdbi/v3/sqlobject/HandlerDecorators;)Lorg/jdbi/v3/sqlobject/Handler;
            areturn
        end local 4 // java.lang.reflect.Method m
        end local 0 // org.jdbi.v3.sqlobject.SqlObjectFactory this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jdbi/v3/sqlobject/SqlObjectFactory;
            0    1     4     m  Ljava/lang/reflect/Method;

  private static boolean lambda$11(java.lang.reflect.Method);
    descriptor: (Ljava/lang/reflect/Method;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.reflect.Method m
         0: .line 132
            aload 0 /* m */
            invokevirtual java.lang.reflect.Method.isSynthetic:()Z
            ifeq 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 0 // java.lang.reflect.Method m
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0     m  Ljava/lang/reflect/Method;

  private static java.util.List lambda$12(java.lang.reflect.Method);
    descriptor: (Ljava/lang/reflect/Method;)Ljava/util/List;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // java.lang.reflect.Method m
         0: .line 133
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* m */
            invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
            aastore
            dup
            iconst_1
            aload 0 /* m */
            invokevirtual java.lang.reflect.Method.getParameterTypes:()[Ljava/lang/Class;
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            aastore
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            areturn
        end local 0 // java.lang.reflect.Method m
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     m  Ljava/lang/reflect/Method;

  private static boolean lambda$13(java.util.List);
    descriptor: (Ljava/util/List;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.util.List l
         0: .line 136
            aload 0 /* l */
            invokeinterface java.util.List.size:()I
            iconst_1
            if_icmple 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 0 // java.util.List l
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0     l  Ljava/util/List<Ljava/lang/reflect/Method;>;

  private static void lambda$14(java.lang.Class, java.util.List);
    descriptor: (Ljava/lang/Class;Ljava/util/List;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=4, locals=2, args_size=2
        start local 1 // java.util.List ms
         0: .line 139
            new org.jdbi.v3.sqlobject.UnableToCreateSqlObjectException
            dup
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            aload 0
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " has ambiguous methods "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* ms */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc ", please resolve with an explicit override"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial org.jdbi.v3.sqlobject.UnableToCreateSqlObjectException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // java.util.List ms
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     1    ms  Ljava/util/List<Ljava/lang/reflect/Method;>;

  private static void lambda$17(org.jdbi.v3.core.config.ConfigRegistry, java.lang.Class, java.lang.reflect.Method, org.jdbi.v3.sqlobject.config.Configurer, java.lang.annotation.Annotation);
    descriptor: (Lorg/jdbi/v3/core/config/ConfigRegistry;Ljava/lang/Class;Ljava/lang/reflect/Method;Lorg/jdbi/v3/sqlobject/config/Configurer;Ljava/lang/annotation/Annotation;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=5, locals=5, args_size=5
        start local 3 // org.jdbi.v3.sqlobject.config.Configurer configurer
        start local 4 // java.lang.annotation.Annotation annotation
         0: .line 173
            aload 3 /* configurer */
            aload 0
            aload 4 /* annotation */
            aload 1
            aload 2
            invokeinterface org.jdbi.v3.sqlobject.config.Configurer.configureForMethod:(Lorg/jdbi/v3/core/config/ConfigRegistry;Ljava/lang/annotation/Annotation;Ljava/lang/Class;Ljava/lang/reflect/Method;)V
            return
        end local 4 // java.lang.annotation.Annotation annotation
        end local 3 // org.jdbi.v3.sqlobject.config.Configurer configurer
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     3  configurer  Lorg/jdbi/v3/sqlobject/config/Configurer;
            0    1     4  annotation  Ljava/lang/annotation/Annotation;

  private static java.lang.Object lambda$19(org.jdbi.v3.sqlobject.Handler, java.lang.Object, java.lang.Object[], org.jdbi.v3.core.extension.HandleSupplier);
    descriptor: (Lorg/jdbi/v3/sqlobject/Handler;Ljava/lang/Object;[Ljava/lang/Object;Lorg/jdbi/v3/core/extension/HandleSupplier;)Ljava/lang/Object;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=4, locals=4, args_size=4
         0: .line 184
            aload 0
            aload 1
            aload 2
            ifnonnull 1
            getstatic org.jdbi.v3.sqlobject.SqlObjectFactory.NO_ARGS:[Ljava/lang/Object;
            goto 2
      StackMap locals: org.jdbi.v3.sqlobject.Handler java.lang.Object java.lang.Object[] org.jdbi.v3.core.extension.HandleSupplier
      StackMap stack: org.jdbi.v3.sqlobject.Handler java.lang.Object
         1: aload 2
      StackMap locals: org.jdbi.v3.sqlobject.Handler java.lang.Object java.lang.Object[] org.jdbi.v3.core.extension.HandleSupplier
      StackMap stack: org.jdbi.v3.sqlobject.Handler java.lang.Object java.lang.Object[]
         2: aload 3
            invokeinterface org.jdbi.v3.sqlobject.Handler.invoke:(Ljava/lang/Object;[Ljava/lang/Object;Lorg/jdbi/v3/core/extension/HandleSupplier;)Ljava/lang/Object;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Exceptions:
      throws java.lang.Exception
}
SourceFile: "SqlObjectFactory.java"
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles