public abstract class io.netty.bootstrap.AbstractBootstrap<B extends io.netty.bootstrap.AbstractBootstrap<B, C>, C extends io.netty.channel.Channel> implements java.lang.Cloneable
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: io.netty.bootstrap.AbstractBootstrap
  super_class: java.lang.Object
{
  volatile io.netty.channel.EventLoopGroup group;
    descriptor: Lio/netty/channel/EventLoopGroup;
    flags: (0x0040) ACC_VOLATILE

  private volatile io.netty.bootstrap.ChannelFactory<? extends C> channelFactory;
    descriptor: Lio/netty/bootstrap/ChannelFactory;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
    Signature: Lio/netty/bootstrap/ChannelFactory<+TC;>;

  private volatile java.net.SocketAddress localAddress;
    descriptor: Ljava/net/SocketAddress;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private final java.util.Map<io.netty.channel.ChannelOption<?>, java.lang.Object> options;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Map<Lio/netty/channel/ChannelOption<*>;Ljava/lang/Object;>;

  private final java.util.Map<io.netty.util.AttributeKey<?>, java.lang.Object> attrs;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Map<Lio/netty/util/AttributeKey<*>;Ljava/lang/Object;>;

  private volatile io.netty.channel.ChannelHandler handler;
    descriptor: Lio/netty/channel/ChannelHandler;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  void <init>();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // io.netty.bootstrap.AbstractBootstrap this
         0: .line 60
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 56
            aload 0 /* this */
            new java.util.LinkedHashMap
            dup
            invokespecial java.util.LinkedHashMap.<init>:()V
            putfield io.netty.bootstrap.AbstractBootstrap.options:Ljava/util/Map;
         2: .line 57
            aload 0 /* this */
            new java.util.LinkedHashMap
            dup
            invokespecial java.util.LinkedHashMap.<init>:()V
            putfield io.netty.bootstrap.AbstractBootstrap.attrs:Ljava/util/Map;
         3: .line 62
            return
        end local 0 // io.netty.bootstrap.AbstractBootstrap this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lio/netty/bootstrap/AbstractBootstrap<TB;TC;>;

  void <init>(io.netty.bootstrap.AbstractBootstrap<B, C>);
    descriptor: (Lio/netty/bootstrap/AbstractBootstrap;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // io.netty.bootstrap.AbstractBootstrap this
        start local 1 // io.netty.bootstrap.AbstractBootstrap bootstrap
         0: .line 64
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 56
            aload 0 /* this */
            new java.util.LinkedHashMap
            dup
            invokespecial java.util.LinkedHashMap.<init>:()V
            putfield io.netty.bootstrap.AbstractBootstrap.options:Ljava/util/Map;
         2: .line 57
            aload 0 /* this */
            new java.util.LinkedHashMap
            dup
            invokespecial java.util.LinkedHashMap.<init>:()V
            putfield io.netty.bootstrap.AbstractBootstrap.attrs:Ljava/util/Map;
         3: .line 65
            aload 0 /* this */
            aload 1 /* bootstrap */
            getfield io.netty.bootstrap.AbstractBootstrap.group:Lio/netty/channel/EventLoopGroup;
            putfield io.netty.bootstrap.AbstractBootstrap.group:Lio/netty/channel/EventLoopGroup;
         4: .line 66
            aload 0 /* this */
            aload 1 /* bootstrap */
            getfield io.netty.bootstrap.AbstractBootstrap.channelFactory:Lio/netty/bootstrap/ChannelFactory;
            putfield io.netty.bootstrap.AbstractBootstrap.channelFactory:Lio/netty/bootstrap/ChannelFactory;
         5: .line 67
            aload 0 /* this */
            aload 1 /* bootstrap */
            getfield io.netty.bootstrap.AbstractBootstrap.handler:Lio/netty/channel/ChannelHandler;
            putfield io.netty.bootstrap.AbstractBootstrap.handler:Lio/netty/channel/ChannelHandler;
         6: .line 68
            aload 0 /* this */
            aload 1 /* bootstrap */
            getfield io.netty.bootstrap.AbstractBootstrap.localAddress:Ljava/net/SocketAddress;
            putfield io.netty.bootstrap.AbstractBootstrap.localAddress:Ljava/net/SocketAddress;
         7: .line 69
            aload 1 /* bootstrap */
            getfield io.netty.bootstrap.AbstractBootstrap.options:Ljava/util/Map;
            dup
            astore 2
            monitorenter
         8: .line 70
            aload 0 /* this */
            getfield io.netty.bootstrap.AbstractBootstrap.options:Ljava/util/Map;
            aload 1 /* bootstrap */
            getfield io.netty.bootstrap.AbstractBootstrap.options:Ljava/util/Map;
            invokeinterface java.util.Map.putAll:(Ljava/util/Map;)V
         9: .line 69
            aload 2
            monitorexit
        10: goto 13
      StackMap locals: io.netty.bootstrap.AbstractBootstrap io.netty.bootstrap.AbstractBootstrap java.util.Map
      StackMap stack: java.lang.Throwable
        11: aload 2
            monitorexit
        12: athrow
        13: .line 72
      StackMap locals:
      StackMap stack:
            aload 1 /* bootstrap */
            getfield io.netty.bootstrap.AbstractBootstrap.attrs:Ljava/util/Map;
            dup
            astore 2
            monitorenter
        14: .line 73
            aload 0 /* this */
            getfield io.netty.bootstrap.AbstractBootstrap.attrs:Ljava/util/Map;
            aload 1 /* bootstrap */
            getfield io.netty.bootstrap.AbstractBootstrap.attrs:Ljava/util/Map;
            invokeinterface java.util.Map.putAll:(Ljava/util/Map;)V
        15: .line 72
            aload 2
            monitorexit
        16: goto 19
      StackMap locals: io.netty.bootstrap.AbstractBootstrap io.netty.bootstrap.AbstractBootstrap java.util.Map
      StackMap stack: java.lang.Throwable
        17: aload 2
            monitorexit
        18: athrow
        19: .line 75
      StackMap locals:
      StackMap stack:
            return
        end local 1 // io.netty.bootstrap.AbstractBootstrap bootstrap
        end local 0 // io.netty.bootstrap.AbstractBootstrap this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   20     0       this  Lio/netty/bootstrap/AbstractBootstrap<TB;TC;>;
            0   20     1  bootstrap  Lio/netty/bootstrap/AbstractBootstrap<TB;TC;>;
      Exception table:
        from    to  target  type
           8    10      11  any
          11    12      11  any
          14    16      17  any
          17    18      17  any
    Signature: (Lio/netty/bootstrap/AbstractBootstrap<TB;TC;>;)V
    MethodParameters:
           Name  Flags
      bootstrap  

  public B group(io.netty.channel.EventLoopGroup);
    descriptor: (Lio/netty/channel/EventLoopGroup;)Lio/netty/bootstrap/AbstractBootstrap;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // io.netty.bootstrap.AbstractBootstrap this
        start local 1 // io.netty.channel.EventLoopGroup group
         0: .line 82
            aload 1 /* group */
            ifnonnull 2
         1: .line 83
            new java.lang.NullPointerException
            dup
            ldc "group"
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 85
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.netty.bootstrap.AbstractBootstrap.group:Lio/netty/channel/EventLoopGroup;
            ifnull 4
         3: .line 86
            new java.lang.IllegalStateException
            dup
            ldc "group set already"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 88
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* group */
            putfield io.netty.bootstrap.AbstractBootstrap.group:Lio/netty/channel/EventLoopGroup;
         5: .line 89
            aload 0 /* this */
            invokevirtual io.netty.bootstrap.AbstractBootstrap.self:()Lio/netty/bootstrap/AbstractBootstrap;
            areturn
        end local 1 // io.netty.channel.EventLoopGroup group
        end local 0 // io.netty.bootstrap.AbstractBootstrap this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    6     0   this  Lio/netty/bootstrap/AbstractBootstrap<TB;TC;>;
            0    6     1  group  Lio/netty/channel/EventLoopGroup;
    Signature: (Lio/netty/channel/EventLoopGroup;)TB;
    MethodParameters:
       Name  Flags
      group  

  private B self();
    descriptor: ()Lio/netty/bootstrap/AbstractBootstrap;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.netty.bootstrap.AbstractBootstrap this
         0: .line 94
            aload 0 /* this */
            areturn
        end local 0 // io.netty.bootstrap.AbstractBootstrap this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/netty/bootstrap/AbstractBootstrap<TB;TC;>;
    Signature: ()TB;

  public B channel(java.lang.Class<? extends C>);
    descriptor: (Ljava/lang/Class;)Lio/netty/bootstrap/AbstractBootstrap;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // io.netty.bootstrap.AbstractBootstrap this
        start local 1 // java.lang.Class channelClass
         0: .line 103
            aload 1 /* channelClass */
            ifnonnull 2
         1: .line 104
            new java.lang.NullPointerException
            dup
            ldc "channelClass"
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 106
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new io.netty.channel.ReflectiveChannelFactory
            dup
            aload 1 /* channelClass */
            invokespecial io.netty.channel.ReflectiveChannelFactory.<init>:(Ljava/lang/Class;)V
            invokevirtual io.netty.bootstrap.AbstractBootstrap.channelFactory:(Lio/netty/channel/ChannelFactory;)Lio/netty/bootstrap/AbstractBootstrap;
            areturn
        end local 1 // java.lang.Class channelClass
        end local 0 // io.netty.bootstrap.AbstractBootstrap this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    3     0          this  Lio/netty/bootstrap/AbstractBootstrap<TB;TC;>;
            0    3     1  channelClass  Ljava/lang/Class<+TC;>;
    Signature: (Ljava/lang/Class<+TC;>;)TB;
    MethodParameters:
              Name  Flags
      channelClass  

  public B channelFactory(io.netty.bootstrap.ChannelFactory<? extends C>);
    descriptor: (Lio/netty/bootstrap/ChannelFactory;)Lio/netty/bootstrap/AbstractBootstrap;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // io.netty.bootstrap.AbstractBootstrap this
        start local 1 // io.netty.bootstrap.ChannelFactory channelFactory
         0: .line 114
            aload 1 /* channelFactory */
            ifnonnull 2
         1: .line 115
            new java.lang.NullPointerException
            dup
            ldc "channelFactory"
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 117
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.netty.bootstrap.AbstractBootstrap.channelFactory:Lio/netty/bootstrap/ChannelFactory;
            ifnull 4
         3: .line 118
            new java.lang.IllegalStateException
            dup
            ldc "channelFactory set already"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 121
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* channelFactory */
            putfield io.netty.bootstrap.AbstractBootstrap.channelFactory:Lio/netty/bootstrap/ChannelFactory;
         5: .line 122
            aload 0 /* this */
            invokevirtual io.netty.bootstrap.AbstractBootstrap.self:()Lio/netty/bootstrap/AbstractBootstrap;
            areturn
        end local 1 // io.netty.bootstrap.ChannelFactory channelFactory
        end local 0 // io.netty.bootstrap.AbstractBootstrap this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    6     0            this  Lio/netty/bootstrap/AbstractBootstrap<TB;TC;>;
            0    6     1  channelFactory  Lio/netty/bootstrap/ChannelFactory<+TC;>;
    Signature: (Lio/netty/bootstrap/ChannelFactory<+TC;>;)TB;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
                Name  Flags
      channelFactory  

  public B channelFactory(io.netty.channel.ChannelFactory<? extends C>);
    descriptor: (Lio/netty/channel/ChannelFactory;)Lio/netty/bootstrap/AbstractBootstrap;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.netty.bootstrap.AbstractBootstrap this
        start local 1 // io.netty.channel.ChannelFactory channelFactory
         0: .line 134
            aload 0 /* this */
            aload 1 /* channelFactory */
            invokevirtual io.netty.bootstrap.AbstractBootstrap.channelFactory:(Lio/netty/bootstrap/ChannelFactory;)Lio/netty/bootstrap/AbstractBootstrap;
            areturn
        end local 1 // io.netty.channel.ChannelFactory channelFactory
        end local 0 // io.netty.bootstrap.AbstractBootstrap this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    1     0            this  Lio/netty/bootstrap/AbstractBootstrap<TB;TC;>;
            0    1     1  channelFactory  Lio/netty/channel/ChannelFactory<+TC;>;
    Signature: (Lio/netty/channel/ChannelFactory<+TC;>;)TB;
    MethodParameters:
                Name  Flags
      channelFactory  

  public B localAddress(java.net.SocketAddress);
    descriptor: (Ljava/net/SocketAddress;)Lio/netty/bootstrap/AbstractBootstrap;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.netty.bootstrap.AbstractBootstrap this
        start local 1 // java.net.SocketAddress localAddress
         0: .line 141
            aload 0 /* this */
            aload 1 /* localAddress */
            putfield io.netty.bootstrap.AbstractBootstrap.localAddress:Ljava/net/SocketAddress;
         1: .line 142
            aload 0 /* this */
            invokevirtual io.netty.bootstrap.AbstractBootstrap.self:()Lio/netty/bootstrap/AbstractBootstrap;
            areturn
        end local 1 // java.net.SocketAddress localAddress
        end local 0 // io.netty.bootstrap.AbstractBootstrap this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    2     0          this  Lio/netty/bootstrap/AbstractBootstrap<TB;TC;>;
            0    2     1  localAddress  Ljava/net/SocketAddress;
    Signature: (Ljava/net/SocketAddress;)TB;
    MethodParameters:
              Name  Flags
      localAddress  

  public B localAddress();
    descriptor: (I)Lio/netty/bootstrap/AbstractBootstrap;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // io.netty.bootstrap.AbstractBootstrap this
        start local 1 // int inetPort
         0: .line 149
            aload 0 /* this */
            new java.net.InetSocketAddress
            dup
            iload 1 /* inetPort */
            invokespecial java.net.InetSocketAddress.<init>:(I)V
            invokevirtual io.netty.bootstrap.AbstractBootstrap.localAddress:(Ljava/net/SocketAddress;)Lio/netty/bootstrap/AbstractBootstrap;
            areturn
        end local 1 // int inetPort
        end local 0 // io.netty.bootstrap.AbstractBootstrap this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lio/netty/bootstrap/AbstractBootstrap<TB;TC;>;
            0    1     1  inetPort  I
    Signature: (I)TB;
    MethodParameters:
          Name  Flags
      inetPort  

  public B localAddress(java.lang.String, );
    descriptor: (Ljava/lang/String;I)Lio/netty/bootstrap/AbstractBootstrap;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // io.netty.bootstrap.AbstractBootstrap this
        start local 1 // java.lang.String inetHost
        start local 2 // int inetPort
         0: .line 156
            aload 0 /* this */
            aload 1 /* inetHost */
            iload 2 /* inetPort */
            invokestatic io.netty.util.internal.SocketUtils.socketAddress:(Ljava/lang/String;I)Ljava/net/InetSocketAddress;
            invokevirtual io.netty.bootstrap.AbstractBootstrap.localAddress:(Ljava/net/SocketAddress;)Lio/netty/bootstrap/AbstractBootstrap;
            areturn
        end local 2 // int inetPort
        end local 1 // java.lang.String inetHost
        end local 0 // io.netty.bootstrap.AbstractBootstrap this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lio/netty/bootstrap/AbstractBootstrap<TB;TC;>;
            0    1     1  inetHost  Ljava/lang/String;
            0    1     2  inetPort  I
    Signature: (Ljava/lang/String;I)TB;
    MethodParameters:
          Name  Flags
      inetHost  
      inetPort  

  public B localAddress(java.net.InetAddress, );
    descriptor: (Ljava/net/InetAddress;I)Lio/netty/bootstrap/AbstractBootstrap;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // io.netty.bootstrap.AbstractBootstrap this
        start local 1 // java.net.InetAddress inetHost
        start local 2 // int inetPort
         0: .line 163
            aload 0 /* this */
            new java.net.InetSocketAddress
            dup
            aload 1 /* inetHost */
            iload 2 /* inetPort */
            invokespecial java.net.InetSocketAddress.<init>:(Ljava/net/InetAddress;I)V
            invokevirtual io.netty.bootstrap.AbstractBootstrap.localAddress:(Ljava/net/SocketAddress;)Lio/netty/bootstrap/AbstractBootstrap;
            areturn
        end local 2 // int inetPort
        end local 1 // java.net.InetAddress inetHost
        end local 0 // io.netty.bootstrap.AbstractBootstrap this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lio/netty/bootstrap/AbstractBootstrap<TB;TC;>;
            0    1     1  inetHost  Ljava/net/InetAddress;
            0    1     2  inetPort  I
    Signature: (Ljava/net/InetAddress;I)TB;
    MethodParameters:
          Name  Flags
      inetHost  
      inetPort  

  public <T> B option(io.netty.channel.ChannelOption<T>, );
    descriptor: (Lio/netty/channel/ChannelOption;Ljava/lang/Object;)Lio/netty/bootstrap/AbstractBootstrap;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // io.netty.bootstrap.AbstractBootstrap this
        start local 1 // io.netty.channel.ChannelOption option
        start local 2 // java.lang.Object value
         0: .line 171
            aload 1 /* option */
            ifnonnull 2
         1: .line 172
            new java.lang.NullPointerException
            dup
            ldc "option"
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 174
      StackMap locals:
      StackMap stack:
            aload 2 /* value */
            ifnonnull 9
         3: .line 175
            aload 0 /* this */
            getfield io.netty.bootstrap.AbstractBootstrap.options:Ljava/util/Map;
            dup
            astore 3
            monitorenter
         4: .line 176
            aload 0 /* this */
            getfield io.netty.bootstrap.AbstractBootstrap.options:Ljava/util/Map;
            aload 1 /* option */
            invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         5: .line 175
            aload 3
            monitorexit
         6: goto 15
      StackMap locals: io.netty.bootstrap.AbstractBootstrap io.netty.channel.ChannelOption java.lang.Object java.util.Map
      StackMap stack: java.lang.Throwable
         7: aload 3
            monitorexit
         8: athrow
         9: .line 179
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.netty.bootstrap.AbstractBootstrap.options:Ljava/util/Map;
            dup
            astore 3
            monitorenter
        10: .line 180
            aload 0 /* this */
            getfield io.netty.bootstrap.AbstractBootstrap.options:Ljava/util/Map;
            aload 1 /* option */
            aload 2 /* value */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        11: .line 179
            aload 3
            monitorexit
        12: goto 15
      StackMap locals: io.netty.bootstrap.AbstractBootstrap io.netty.channel.ChannelOption java.lang.Object java.util.Map
      StackMap stack: java.lang.Throwable
        13: aload 3
            monitorexit
        14: athrow
        15: .line 183
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual io.netty.bootstrap.AbstractBootstrap.self:()Lio/netty/bootstrap/AbstractBootstrap;
            areturn
        end local 2 // java.lang.Object value
        end local 1 // io.netty.channel.ChannelOption option
        end local 0 // io.netty.bootstrap.AbstractBootstrap this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   16     0    this  Lio/netty/bootstrap/AbstractBootstrap<TB;TC;>;
            0   16     1  option  Lio/netty/channel/ChannelOption<TT;>;
            0   16     2   value  TT;
      Exception table:
        from    to  target  type
           4     6       7  any
           7     8       7  any
          10    12      13  any
          13    14      13  any
    Signature: <T:Ljava/lang/Object;>(Lio/netty/channel/ChannelOption<TT;>;TT;)TB;
    MethodParameters:
        Name  Flags
      option  
      value   

  public <T> B attr(io.netty.util.AttributeKey<T>, );
    descriptor: (Lio/netty/util/AttributeKey;Ljava/lang/Object;)Lio/netty/bootstrap/AbstractBootstrap;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // io.netty.bootstrap.AbstractBootstrap this
        start local 1 // io.netty.util.AttributeKey key
        start local 2 // java.lang.Object value
         0: .line 191
            aload 1 /* key */
            ifnonnull 2
         1: .line 192
            new java.lang.NullPointerException
            dup
            ldc "key"
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 194
      StackMap locals:
      StackMap stack:
            aload 2 /* value */
            ifnonnull 9
         3: .line 195
            aload 0 /* this */
            getfield io.netty.bootstrap.AbstractBootstrap.attrs:Ljava/util/Map;
            dup
            astore 3
            monitorenter
         4: .line 196
            aload 0 /* this */
            getfield io.netty.bootstrap.AbstractBootstrap.attrs:Ljava/util/Map;
            aload 1 /* key */
            invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         5: .line 195
            aload 3
            monitorexit
         6: goto 15
      StackMap locals: io.netty.bootstrap.AbstractBootstrap io.netty.util.AttributeKey java.lang.Object java.util.Map
      StackMap stack: java.lang.Throwable
         7: aload 3
            monitorexit
         8: athrow
         9: .line 199
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.netty.bootstrap.AbstractBootstrap.attrs:Ljava/util/Map;
            dup
            astore 3
            monitorenter
        10: .line 200
            aload 0 /* this */
            getfield io.netty.bootstrap.AbstractBootstrap.attrs:Ljava/util/Map;
            aload 1 /* key */
            aload 2 /* value */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        11: .line 199
            aload 3
            monitorexit
        12: goto 15
      StackMap locals: io.netty.bootstrap.AbstractBootstrap io.netty.util.AttributeKey java.lang.Object java.util.Map
      StackMap stack: java.lang.Throwable
        13: aload 3
            monitorexit
        14: athrow
        15: .line 203
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual io.netty.bootstrap.AbstractBootstrap.self:()Lio/netty/bootstrap/AbstractBootstrap;
            areturn
        end local 2 // java.lang.Object value
        end local 1 // io.netty.util.AttributeKey key
        end local 0 // io.netty.bootstrap.AbstractBootstrap this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   16     0   this  Lio/netty/bootstrap/AbstractBootstrap<TB;TC;>;
            0   16     1    key  Lio/netty/util/AttributeKey<TT;>;
            0   16     2  value  TT;
      Exception table:
        from    to  target  type
           4     6       7  any
           7     8       7  any
          10    12      13  any
          13    14      13  any
    Signature: <T:Ljava/lang/Object;>(Lio/netty/util/AttributeKey<TT;>;TT;)TB;
    MethodParameters:
       Name  Flags
      key    
      value  

  public B validate();
    descriptor: ()Lio/netty/bootstrap/AbstractBootstrap;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // io.netty.bootstrap.AbstractBootstrap this
         0: .line 211
            aload 0 /* this */
            getfield io.netty.bootstrap.AbstractBootstrap.group:Lio/netty/channel/EventLoopGroup;
            ifnonnull 2
         1: .line 212
            new java.lang.IllegalStateException
            dup
            ldc "group not set"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 214
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.netty.bootstrap.AbstractBootstrap.channelFactory:Lio/netty/bootstrap/ChannelFactory;
            ifnonnull 4
         3: .line 215
            new java.lang.IllegalStateException
            dup
            ldc "channel or channelFactory not set"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 217
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual io.netty.bootstrap.AbstractBootstrap.self:()Lio/netty/bootstrap/AbstractBootstrap;
            areturn
        end local 0 // io.netty.bootstrap.AbstractBootstrap this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lio/netty/bootstrap/AbstractBootstrap<TB;TC;>;
    Signature: ()TB;

  public abstract B clone();
    descriptor: ()Lio/netty/bootstrap/AbstractBootstrap;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Signature: ()TB;

  public io.netty.channel.ChannelFuture register();
    descriptor: ()Lio/netty/channel/ChannelFuture;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.netty.bootstrap.AbstractBootstrap this
         0: .line 233
            aload 0 /* this */
            invokevirtual io.netty.bootstrap.AbstractBootstrap.validate:()Lio/netty/bootstrap/AbstractBootstrap;
            pop
         1: .line 234
            aload 0 /* this */
            invokevirtual io.netty.bootstrap.AbstractBootstrap.initAndRegister:()Lio/netty/channel/ChannelFuture;
            areturn
        end local 0 // io.netty.bootstrap.AbstractBootstrap this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lio/netty/bootstrap/AbstractBootstrap<TB;TC;>;

  public io.netty.channel.ChannelFuture bind();
    descriptor: ()Lio/netty/channel/ChannelFuture;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // io.netty.bootstrap.AbstractBootstrap this
         0: .line 241
            aload 0 /* this */
            invokevirtual io.netty.bootstrap.AbstractBootstrap.validate:()Lio/netty/bootstrap/AbstractBootstrap;
            pop
         1: .line 242
            aload 0 /* this */
            getfield io.netty.bootstrap.AbstractBootstrap.localAddress:Ljava/net/SocketAddress;
            astore 1 /* localAddress */
        start local 1 // java.net.SocketAddress localAddress
         2: .line 243
            aload 1 /* localAddress */
            ifnonnull 4
         3: .line 244
            new java.lang.IllegalStateException
            dup
            ldc "localAddress not set"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 246
      StackMap locals: java.net.SocketAddress
      StackMap stack:
            aload 0 /* this */
            aload 1 /* localAddress */
            invokevirtual io.netty.bootstrap.AbstractBootstrap.doBind:(Ljava/net/SocketAddress;)Lio/netty/channel/ChannelFuture;
            areturn
        end local 1 // java.net.SocketAddress localAddress
        end local 0 // io.netty.bootstrap.AbstractBootstrap this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    5     0          this  Lio/netty/bootstrap/AbstractBootstrap<TB;TC;>;
            2    5     1  localAddress  Ljava/net/SocketAddress;

  public io.netty.channel.ChannelFuture bind(int);
    descriptor: (I)Lio/netty/channel/ChannelFuture;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // io.netty.bootstrap.AbstractBootstrap this
        start local 1 // int inetPort
         0: .line 253
            aload 0 /* this */
            new java.net.InetSocketAddress
            dup
            iload 1 /* inetPort */
            invokespecial java.net.InetSocketAddress.<init>:(I)V
            invokevirtual io.netty.bootstrap.AbstractBootstrap.bind:(Ljava/net/SocketAddress;)Lio/netty/channel/ChannelFuture;
            areturn
        end local 1 // int inetPort
        end local 0 // io.netty.bootstrap.AbstractBootstrap this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lio/netty/bootstrap/AbstractBootstrap<TB;TC;>;
            0    1     1  inetPort  I
    MethodParameters:
          Name  Flags
      inetPort  

  public io.netty.channel.ChannelFuture bind(java.lang.String, int);
    descriptor: (Ljava/lang/String;I)Lio/netty/channel/ChannelFuture;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // io.netty.bootstrap.AbstractBootstrap this
        start local 1 // java.lang.String inetHost
        start local 2 // int inetPort
         0: .line 260
            aload 0 /* this */
            aload 1 /* inetHost */
            iload 2 /* inetPort */
            invokestatic io.netty.util.internal.SocketUtils.socketAddress:(Ljava/lang/String;I)Ljava/net/InetSocketAddress;
            invokevirtual io.netty.bootstrap.AbstractBootstrap.bind:(Ljava/net/SocketAddress;)Lio/netty/channel/ChannelFuture;
            areturn
        end local 2 // int inetPort
        end local 1 // java.lang.String inetHost
        end local 0 // io.netty.bootstrap.AbstractBootstrap this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lio/netty/bootstrap/AbstractBootstrap<TB;TC;>;
            0    1     1  inetHost  Ljava/lang/String;
            0    1     2  inetPort  I
    MethodParameters:
          Name  Flags
      inetHost  
      inetPort  

  public io.netty.channel.ChannelFuture bind(java.net.InetAddress, int);
    descriptor: (Ljava/net/InetAddress;I)Lio/netty/channel/ChannelFuture;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // io.netty.bootstrap.AbstractBootstrap this
        start local 1 // java.net.InetAddress inetHost
        start local 2 // int inetPort
         0: .line 267
            aload 0 /* this */
            new java.net.InetSocketAddress
            dup
            aload 1 /* inetHost */
            iload 2 /* inetPort */
            invokespecial java.net.InetSocketAddress.<init>:(Ljava/net/InetAddress;I)V
            invokevirtual io.netty.bootstrap.AbstractBootstrap.bind:(Ljava/net/SocketAddress;)Lio/netty/channel/ChannelFuture;
            areturn
        end local 2 // int inetPort
        end local 1 // java.net.InetAddress inetHost
        end local 0 // io.netty.bootstrap.AbstractBootstrap this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lio/netty/bootstrap/AbstractBootstrap<TB;TC;>;
            0    1     1  inetHost  Ljava/net/InetAddress;
            0    1     2  inetPort  I
    MethodParameters:
          Name  Flags
      inetHost  
      inetPort  

  public io.netty.channel.ChannelFuture bind(java.net.SocketAddress);
    descriptor: (Ljava/net/SocketAddress;)Lio/netty/channel/ChannelFuture;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // io.netty.bootstrap.AbstractBootstrap this
        start local 1 // java.net.SocketAddress localAddress
         0: .line 274
            aload 0 /* this */
            invokevirtual io.netty.bootstrap.AbstractBootstrap.validate:()Lio/netty/bootstrap/AbstractBootstrap;
            pop
         1: .line 275
            aload 1 /* localAddress */
            ifnonnull 3
         2: .line 276
            new java.lang.NullPointerException
            dup
            ldc "localAddress"
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 278
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* localAddress */
            invokevirtual io.netty.bootstrap.AbstractBootstrap.doBind:(Ljava/net/SocketAddress;)Lio/netty/channel/ChannelFuture;
            areturn
        end local 1 // java.net.SocketAddress localAddress
        end local 0 // io.netty.bootstrap.AbstractBootstrap this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    4     0          this  Lio/netty/bootstrap/AbstractBootstrap<TB;TC;>;
            0    4     1  localAddress  Ljava/net/SocketAddress;
    MethodParameters:
              Name  Flags
      localAddress  

  private io.netty.channel.ChannelFuture doBind(java.net.SocketAddress);
    descriptor: (Ljava/net/SocketAddress;)Lio/netty/channel/ChannelFuture;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=5, args_size=2
        start local 0 // io.netty.bootstrap.AbstractBootstrap this
        start local 1 // java.net.SocketAddress localAddress
         0: .line 282
            aload 0 /* this */
            invokevirtual io.netty.bootstrap.AbstractBootstrap.initAndRegister:()Lio/netty/channel/ChannelFuture;
            astore 2 /* regFuture */
        start local 2 // io.netty.channel.ChannelFuture regFuture
         1: .line 283
            aload 2 /* regFuture */
            invokeinterface io.netty.channel.ChannelFuture.channel:()Lio/netty/channel/Channel;
            astore 3 /* channel */
        start local 3 // io.netty.channel.Channel channel
         2: .line 284
            aload 2 /* regFuture */
            invokeinterface io.netty.channel.ChannelFuture.cause:()Ljava/lang/Throwable;
            ifnull 4
         3: .line 285
            aload 2 /* regFuture */
            areturn
         4: .line 288
      StackMap locals: io.netty.channel.ChannelFuture io.netty.channel.Channel
      StackMap stack:
            aload 2 /* regFuture */
            invokeinterface io.netty.channel.ChannelFuture.isDone:()Z
            ifeq 8
         5: .line 290
            aload 3 /* channel */
            invokeinterface io.netty.channel.Channel.newPromise:()Lio/netty/channel/ChannelPromise;
            astore 4 /* promise */
        start local 4 // io.netty.channel.ChannelPromise promise
         6: .line 291
            aload 2 /* regFuture */
            aload 3 /* channel */
            aload 1 /* localAddress */
            aload 4 /* promise */
            invokestatic io.netty.bootstrap.AbstractBootstrap.doBind0:(Lio/netty/channel/ChannelFuture;Lio/netty/channel/Channel;Ljava/net/SocketAddress;Lio/netty/channel/ChannelPromise;)V
         7: .line 292
            aload 4 /* promise */
            areturn
        end local 4 // io.netty.channel.ChannelPromise promise
         8: .line 295
      StackMap locals:
      StackMap stack:
            new io.netty.bootstrap.AbstractBootstrap$PendingRegistrationPromise
            dup
            aload 3 /* channel */
            invokespecial io.netty.bootstrap.AbstractBootstrap$PendingRegistrationPromise.<init>:(Lio/netty/channel/Channel;)V
            astore 4 /* promise */
        start local 4 // io.netty.bootstrap.AbstractBootstrap$PendingRegistrationPromise promise
         9: .line 296
            aload 2 /* regFuture */
            new io.netty.bootstrap.AbstractBootstrap$1
            dup
            aload 0 /* this */
            aload 4 /* promise */
            aload 2 /* regFuture */
            aload 3 /* channel */
            aload 1 /* localAddress */
            invokespecial io.netty.bootstrap.AbstractBootstrap$1.<init>:(Lio/netty/bootstrap/AbstractBootstrap;Lio/netty/bootstrap/AbstractBootstrap$PendingRegistrationPromise;Lio/netty/channel/ChannelFuture;Lio/netty/channel/Channel;Ljava/net/SocketAddress;)V
            invokeinterface io.netty.channel.ChannelFuture.addListener:(Lio/netty/util/concurrent/GenericFutureListener;)Lio/netty/channel/ChannelFuture;
            pop
        10: .line 313
            aload 4 /* promise */
            areturn
        end local 4 // io.netty.bootstrap.AbstractBootstrap$PendingRegistrationPromise promise
        end local 3 // io.netty.channel.Channel channel
        end local 2 // io.netty.channel.ChannelFuture regFuture
        end local 1 // java.net.SocketAddress localAddress
        end local 0 // io.netty.bootstrap.AbstractBootstrap this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   11     0          this  Lio/netty/bootstrap/AbstractBootstrap<TB;TC;>;
            0   11     1  localAddress  Ljava/net/SocketAddress;
            1   11     2     regFuture  Lio/netty/channel/ChannelFuture;
            2   11     3       channel  Lio/netty/channel/Channel;
            6    8     4       promise  Lio/netty/channel/ChannelPromise;
            9   11     4       promise  Lio/netty/bootstrap/AbstractBootstrap$PendingRegistrationPromise;
    MethodParameters:
              Name  Flags
      localAddress  final

  final io.netty.channel.ChannelFuture initAndRegister();
    descriptor: ()Lio/netty/channel/ChannelFuture;
    flags: (0x0010) ACC_FINAL
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // io.netty.bootstrap.AbstractBootstrap this
         0: .line 318
            aconst_null
            astore 1 /* channel */
        start local 1 // io.netty.channel.Channel channel
         1: .line 320
            aload 0 /* this */
            getfield io.netty.bootstrap.AbstractBootstrap.channelFactory:Lio/netty/bootstrap/ChannelFactory;
            invokeinterface io.netty.bootstrap.ChannelFactory.newChannel:()Lio/netty/channel/Channel;
            astore 1 /* channel */
         2: .line 321
            aload 0 /* this */
            aload 1 /* channel */
            invokevirtual io.netty.bootstrap.AbstractBootstrap.init:(Lio/netty/channel/Channel;)V
         3: .line 322
            goto 9
      StackMap locals: io.netty.bootstrap.AbstractBootstrap io.netty.channel.Channel
      StackMap stack: java.lang.Throwable
         4: astore 2 /* t */
        start local 2 // java.lang.Throwable t
         5: .line 323
            aload 1 /* channel */
            ifnull 8
         6: .line 325
            aload 1 /* channel */
            invokeinterface io.netty.channel.Channel.unsafe:()Lio/netty/channel/Channel$Unsafe;
            invokeinterface io.netty.channel.Channel$Unsafe.closeForcibly:()V
         7: .line 327
            new io.netty.channel.DefaultChannelPromise
            dup
            aload 1 /* channel */
            getstatic io.netty.util.concurrent.GlobalEventExecutor.INSTANCE:Lio/netty/util/concurrent/GlobalEventExecutor;
            invokespecial io.netty.channel.DefaultChannelPromise.<init>:(Lio/netty/channel/Channel;Lio/netty/util/concurrent/EventExecutor;)V
            aload 2 /* t */
            invokevirtual io.netty.channel.DefaultChannelPromise.setFailure:(Ljava/lang/Throwable;)Lio/netty/channel/ChannelPromise;
            areturn
         8: .line 330
      StackMap locals: java.lang.Throwable
      StackMap stack:
            new io.netty.channel.DefaultChannelPromise
            dup
            new io.netty.bootstrap.FailedChannel
            dup
            invokespecial io.netty.bootstrap.FailedChannel.<init>:()V
            getstatic io.netty.util.concurrent.GlobalEventExecutor.INSTANCE:Lio/netty/util/concurrent/GlobalEventExecutor;
            invokespecial io.netty.channel.DefaultChannelPromise.<init>:(Lio/netty/channel/Channel;Lio/netty/util/concurrent/EventExecutor;)V
            aload 2 /* t */
            invokevirtual io.netty.channel.DefaultChannelPromise.setFailure:(Ljava/lang/Throwable;)Lio/netty/channel/ChannelPromise;
            areturn
        end local 2 // java.lang.Throwable t
         9: .line 333
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual io.netty.bootstrap.AbstractBootstrap.config:()Lio/netty/bootstrap/AbstractBootstrapConfig;
            invokevirtual io.netty.bootstrap.AbstractBootstrapConfig.group:()Lio/netty/channel/EventLoopGroup;
            aload 1 /* channel */
            invokeinterface io.netty.channel.EventLoopGroup.register:(Lio/netty/channel/Channel;)Lio/netty/channel/ChannelFuture;
            astore 2 /* regFuture */
        start local 2 // io.netty.channel.ChannelFuture regFuture
        10: .line 334
            aload 2 /* regFuture */
            invokeinterface io.netty.channel.ChannelFuture.cause:()Ljava/lang/Throwable;
            ifnull 15
        11: .line 335
            aload 1 /* channel */
            invokeinterface io.netty.channel.Channel.isRegistered:()Z
            ifeq 14
        12: .line 336
            aload 1 /* channel */
            invokeinterface io.netty.channel.Channel.close:()Lio/netty/channel/ChannelFuture;
            pop
        13: .line 337
            goto 15
        14: .line 338
      StackMap locals: io.netty.channel.ChannelFuture
      StackMap stack:
            aload 1 /* channel */
            invokeinterface io.netty.channel.Channel.unsafe:()Lio/netty/channel/Channel$Unsafe;
            invokeinterface io.netty.channel.Channel$Unsafe.closeForcibly:()V
        15: .line 351
      StackMap locals:
      StackMap stack:
            aload 2 /* regFuture */
            areturn
        end local 2 // io.netty.channel.ChannelFuture regFuture
        end local 1 // io.netty.channel.Channel channel
        end local 0 // io.netty.bootstrap.AbstractBootstrap this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   16     0       this  Lio/netty/bootstrap/AbstractBootstrap<TB;TC;>;
            1   16     1    channel  Lio/netty/channel/Channel;
            5    9     2          t  Ljava/lang/Throwable;
           10   16     2  regFuture  Lio/netty/channel/ChannelFuture;
      Exception table:
        from    to  target  type
           1     3       4  Class java.lang.Throwable

  abstract void init(io.netty.channel.Channel);
    descriptor: (Lio/netty/channel/Channel;)V
    flags: (0x0400) ACC_ABSTRACT
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
         Name  Flags
      channel  

  private static void doBind0(io.netty.channel.ChannelFuture, io.netty.channel.Channel, java.net.SocketAddress, io.netty.channel.ChannelPromise);
    descriptor: (Lio/netty/channel/ChannelFuture;Lio/netty/channel/Channel;Ljava/net/SocketAddress;Lio/netty/channel/ChannelPromise;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=4, args_size=4
        start local 0 // io.netty.channel.ChannelFuture regFuture
        start local 1 // io.netty.channel.Channel channel
        start local 2 // java.net.SocketAddress localAddress
        start local 3 // io.netty.channel.ChannelPromise promise
         0: .line 362
            aload 1 /* channel */
            invokeinterface io.netty.channel.Channel.eventLoop:()Lio/netty/channel/EventLoop;
            new io.netty.bootstrap.AbstractBootstrap$2
            dup
            aload 0 /* regFuture */
            aload 1 /* channel */
            aload 2 /* localAddress */
            aload 3 /* promise */
            invokespecial io.netty.bootstrap.AbstractBootstrap$2.<init>:(Lio/netty/channel/ChannelFuture;Lio/netty/channel/Channel;Ljava/net/SocketAddress;Lio/netty/channel/ChannelPromise;)V
            invokeinterface io.netty.channel.EventLoop.execute:(Ljava/lang/Runnable;)V
         1: .line 372
            return
        end local 3 // io.netty.channel.ChannelPromise promise
        end local 2 // java.net.SocketAddress localAddress
        end local 1 // io.netty.channel.Channel channel
        end local 0 // io.netty.channel.ChannelFuture regFuture
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    2     0     regFuture  Lio/netty/channel/ChannelFuture;
            0    2     1       channel  Lio/netty/channel/Channel;
            0    2     2  localAddress  Ljava/net/SocketAddress;
            0    2     3       promise  Lio/netty/channel/ChannelPromise;
    MethodParameters:
              Name  Flags
      regFuture     final
      channel       final
      localAddress  final
      promise       final

  public B handler(io.netty.channel.ChannelHandler);
    descriptor: (Lio/netty/channel/ChannelHandler;)Lio/netty/bootstrap/AbstractBootstrap;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // io.netty.bootstrap.AbstractBootstrap this
        start local 1 // io.netty.channel.ChannelHandler handler
         0: .line 378
            aload 1 /* handler */
            ifnonnull 2
         1: .line 379
            new java.lang.NullPointerException
            dup
            ldc "handler"
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 381
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* handler */
            putfield io.netty.bootstrap.AbstractBootstrap.handler:Lio/netty/channel/ChannelHandler;
         3: .line 382
            aload 0 /* this */
            invokevirtual io.netty.bootstrap.AbstractBootstrap.self:()Lio/netty/bootstrap/AbstractBootstrap;
            areturn
        end local 1 // io.netty.channel.ChannelHandler handler
        end local 0 // io.netty.bootstrap.AbstractBootstrap this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Lio/netty/bootstrap/AbstractBootstrap<TB;TC;>;
            0    4     1  handler  Lio/netty/channel/ChannelHandler;
    Signature: (Lio/netty/channel/ChannelHandler;)TB;
    MethodParameters:
         Name  Flags
      handler  

  public final io.netty.channel.EventLoopGroup group();
    descriptor: ()Lio/netty/channel/EventLoopGroup;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.netty.bootstrap.AbstractBootstrap this
         0: .line 392
            aload 0 /* this */
            getfield io.netty.bootstrap.AbstractBootstrap.group:Lio/netty/channel/EventLoopGroup;
            areturn
        end local 0 // io.netty.bootstrap.AbstractBootstrap this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/netty/bootstrap/AbstractBootstrap<TB;TC;>;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  public abstract io.netty.bootstrap.AbstractBootstrapConfig<B, C> config();
    descriptor: ()Lio/netty/bootstrap/AbstractBootstrapConfig;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Signature: ()Lio/netty/bootstrap/AbstractBootstrapConfig<TB;TC;>;

  static <K, V> java.util.Map<K, V> copiedMap(java.util.Map<K, V>);
    descriptor: (Ljava/util/Map;)Ljava/util/Map;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // java.util.Map map
         0: .line 403
            aload 0 /* map */
            dup
            astore 2
            monitorenter
         1: .line 404
            aload 0 /* map */
            invokeinterface java.util.Map.isEmpty:()Z
            ifeq 4
         2: .line 405
            invokestatic java.util.Collections.emptyMap:()Ljava/util/Map;
            aload 2
            monitorexit
         3: areturn
         4: .line 407
      StackMap locals: java.util.Map top java.util.Map
      StackMap stack:
            new java.util.LinkedHashMap
            dup
            aload 0 /* map */
            invokespecial java.util.LinkedHashMap.<init>:(Ljava/util/Map;)V
            astore 1 /* copied */
        start local 1 // java.util.Map copied
         5: .line 403
            aload 2
            monitorexit
         6: goto 9
        end local 1 // java.util.Map copied
      StackMap locals:
      StackMap stack: java.lang.Throwable
         7: aload 2
            monitorexit
         8: athrow
        start local 1 // java.util.Map copied
         9: .line 409
      StackMap locals: java.util.Map java.util.Map
      StackMap stack:
            aload 1 /* copied */
            invokestatic java.util.Collections.unmodifiableMap:(Ljava/util/Map;)Ljava/util/Map;
            areturn
        end local 1 // java.util.Map copied
        end local 0 // java.util.Map map
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   10     0     map  Ljava/util/Map<TK;TV;>;
            5    7     1  copied  Ljava/util/Map<TK;TV;>;
            9   10     1  copied  Ljava/util/Map<TK;TV;>;
      Exception table:
        from    to  target  type
           1     3       7  any
           4     6       7  any
           7     8       7  any
    Signature: <K:Ljava/lang/Object;V:Ljava/lang/Object;>(Ljava/util/Map<TK;TV;>;)Ljava/util/Map<TK;TV;>;
    MethodParameters:
      Name  Flags
      map   

  final java.util.Map<io.netty.channel.ChannelOption<?>, java.lang.Object> options0();
    descriptor: ()Ljava/util/Map;
    flags: (0x0010) ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.netty.bootstrap.AbstractBootstrap this
         0: .line 413
            aload 0 /* this */
            getfield io.netty.bootstrap.AbstractBootstrap.options:Ljava/util/Map;
            areturn
        end local 0 // io.netty.bootstrap.AbstractBootstrap this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/netty/bootstrap/AbstractBootstrap<TB;TC;>;
    Signature: ()Ljava/util/Map<Lio/netty/channel/ChannelOption<*>;Ljava/lang/Object;>;

  final java.util.Map<io.netty.util.AttributeKey<?>, java.lang.Object> attrs0();
    descriptor: ()Ljava/util/Map;
    flags: (0x0010) ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.netty.bootstrap.AbstractBootstrap this
         0: .line 417
            aload 0 /* this */
            getfield io.netty.bootstrap.AbstractBootstrap.attrs:Ljava/util/Map;
            areturn
        end local 0 // io.netty.bootstrap.AbstractBootstrap this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/netty/bootstrap/AbstractBootstrap<TB;TC;>;
    Signature: ()Ljava/util/Map<Lio/netty/util/AttributeKey<*>;Ljava/lang/Object;>;

  final java.net.SocketAddress localAddress();
    descriptor: ()Ljava/net/SocketAddress;
    flags: (0x0010) ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.netty.bootstrap.AbstractBootstrap this
         0: .line 421
            aload 0 /* this */
            getfield io.netty.bootstrap.AbstractBootstrap.localAddress:Ljava/net/SocketAddress;
            areturn
        end local 0 // io.netty.bootstrap.AbstractBootstrap this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/netty/bootstrap/AbstractBootstrap<TB;TC;>;

  final io.netty.bootstrap.ChannelFactory<? extends C> channelFactory();
    descriptor: ()Lio/netty/bootstrap/ChannelFactory;
    flags: (0x0010) ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.netty.bootstrap.AbstractBootstrap this
         0: .line 426
            aload 0 /* this */
            getfield io.netty.bootstrap.AbstractBootstrap.channelFactory:Lio/netty/bootstrap/ChannelFactory;
            areturn
        end local 0 // io.netty.bootstrap.AbstractBootstrap this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/netty/bootstrap/AbstractBootstrap<TB;TC;>;
    Signature: ()Lio/netty/bootstrap/ChannelFactory<+TC;>;

  final io.netty.channel.ChannelHandler handler();
    descriptor: ()Lio/netty/channel/ChannelHandler;
    flags: (0x0010) ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.netty.bootstrap.AbstractBootstrap this
         0: .line 430
            aload 0 /* this */
            getfield io.netty.bootstrap.AbstractBootstrap.handler:Lio/netty/channel/ChannelHandler;
            areturn
        end local 0 // io.netty.bootstrap.AbstractBootstrap this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/netty/bootstrap/AbstractBootstrap<TB;TC;>;

  final java.util.Map<io.netty.channel.ChannelOption<?>, java.lang.Object> options();
    descriptor: ()Ljava/util/Map;
    flags: (0x0010) ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.netty.bootstrap.AbstractBootstrap this
         0: .line 434
            aload 0 /* this */
            getfield io.netty.bootstrap.AbstractBootstrap.options:Ljava/util/Map;
            invokestatic io.netty.bootstrap.AbstractBootstrap.copiedMap:(Ljava/util/Map;)Ljava/util/Map;
            areturn
        end local 0 // io.netty.bootstrap.AbstractBootstrap this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/netty/bootstrap/AbstractBootstrap<TB;TC;>;
    Signature: ()Ljava/util/Map<Lio/netty/channel/ChannelOption<*>;Ljava/lang/Object;>;

  final java.util.Map<io.netty.util.AttributeKey<?>, java.lang.Object> attrs();
    descriptor: ()Ljava/util/Map;
    flags: (0x0010) ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.netty.bootstrap.AbstractBootstrap this
         0: .line 438
            aload 0 /* this */
            getfield io.netty.bootstrap.AbstractBootstrap.attrs:Ljava/util/Map;
            invokestatic io.netty.bootstrap.AbstractBootstrap.copiedMap:(Ljava/util/Map;)Ljava/util/Map;
            areturn
        end local 0 // io.netty.bootstrap.AbstractBootstrap this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/netty/bootstrap/AbstractBootstrap<TB;TC;>;
    Signature: ()Ljava/util/Map<Lio/netty/util/AttributeKey<*>;Ljava/lang/Object;>;

  static void setChannelOptions(io.netty.channel.Channel, java.util.Map<io.netty.channel.ChannelOption<?>, java.lang.Object>, io.netty.util.internal.logging.InternalLogger);
    descriptor: (Lio/netty/channel/Channel;Ljava/util/Map;Lio/netty/util/internal/logging/InternalLogger;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // io.netty.channel.Channel channel
        start local 1 // java.util.Map options
        start local 2 // io.netty.util.internal.logging.InternalLogger logger
         0: .line 443
            aload 1 /* options */
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 4
            goto 3
      StackMap locals: io.netty.channel.Channel java.util.Map io.netty.util.internal.logging.InternalLogger top java.util.Iterator
      StackMap stack:
         1: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 3 /* e */
        start local 3 // java.util.Map$Entry e
         2: .line 444
            aload 0 /* channel */
            aload 3 /* e */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast io.netty.channel.ChannelOption
            aload 3 /* e */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            aload 2 /* logger */
            invokestatic io.netty.bootstrap.AbstractBootstrap.setChannelOption:(Lio/netty/channel/Channel;Lio/netty/channel/ChannelOption;Ljava/lang/Object;Lio/netty/util/internal/logging/InternalLogger;)V
        end local 3 // java.util.Map$Entry e
         3: .line 443
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         4: .line 446
            return
        end local 2 // io.netty.util.internal.logging.InternalLogger logger
        end local 1 // java.util.Map options
        end local 0 // io.netty.channel.Channel channel
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0  channel  Lio/netty/channel/Channel;
            0    5     1  options  Ljava/util/Map<Lio/netty/channel/ChannelOption<*>;Ljava/lang/Object;>;
            0    5     2   logger  Lio/netty/util/internal/logging/InternalLogger;
            2    3     3        e  Ljava/util/Map$Entry<Lio/netty/channel/ChannelOption<*>;Ljava/lang/Object;>;
    Signature: (Lio/netty/channel/Channel;Ljava/util/Map<Lio/netty/channel/ChannelOption<*>;Ljava/lang/Object;>;Lio/netty/util/internal/logging/InternalLogger;)V
    MethodParameters:
         Name  Flags
      channel  
      options  
      logger   

  static void setChannelOptions(io.netty.channel.Channel, java.util.Map$Entry<io.netty.channel.ChannelOption<?>, java.lang.Object>[], io.netty.util.internal.logging.InternalLogger);
    descriptor: (Lio/netty/channel/Channel;[Ljava/util/Map$Entry;Lio/netty/util/internal/logging/InternalLogger;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=7, args_size=3
        start local 0 // io.netty.channel.Channel channel
        start local 1 // java.util.Map$Entry[] options
        start local 2 // io.netty.util.internal.logging.InternalLogger logger
         0: .line 450
            aload 1 /* options */
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 4
      StackMap locals: io.netty.channel.Channel java.util.Map$Entry[] io.netty.util.internal.logging.InternalLogger top int int java.util.Map$Entry[]
      StackMap stack:
         1: aload 6
            iload 4
            aaload
            astore 3 /* e */
        start local 3 // java.util.Map$Entry e
         2: .line 451
            aload 0 /* channel */
            aload 3 /* e */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast io.netty.channel.ChannelOption
            aload 3 /* e */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            aload 2 /* logger */
            invokestatic io.netty.bootstrap.AbstractBootstrap.setChannelOption:(Lio/netty/channel/Channel;Lio/netty/channel/ChannelOption;Ljava/lang/Object;Lio/netty/util/internal/logging/InternalLogger;)V
        end local 3 // java.util.Map$Entry e
         3: .line 450
            iinc 4 1
      StackMap locals:
      StackMap stack:
         4: iload 4
            iload 5
            if_icmplt 1
         5: .line 453
            return
        end local 2 // io.netty.util.internal.logging.InternalLogger logger
        end local 1 // java.util.Map$Entry[] options
        end local 0 // io.netty.channel.Channel channel
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0  channel  Lio/netty/channel/Channel;
            0    6     1  options  [Ljava/util/Map$Entry;
            0    6     2   logger  Lio/netty/util/internal/logging/InternalLogger;
            2    3     3        e  Ljava/util/Map$Entry<Lio/netty/channel/ChannelOption<*>;Ljava/lang/Object;>;
    Signature: (Lio/netty/channel/Channel;[Ljava/util/Map$Entry<Lio/netty/channel/ChannelOption<*>;Ljava/lang/Object;>;Lio/netty/util/internal/logging/InternalLogger;)V
    MethodParameters:
         Name  Flags
      channel  
      options  
      logger   

  private static void setChannelOption(io.netty.channel.Channel, io.netty.channel.ChannelOption<?>, , io.netty.util.internal.logging.InternalLogger);
    descriptor: (Lio/netty/channel/Channel;Lio/netty/channel/ChannelOption;Ljava/lang/Object;Lio/netty/util/internal/logging/InternalLogger;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=5, args_size=4
        start local 0 // io.netty.channel.Channel channel
        start local 1 // io.netty.channel.ChannelOption option
        start local 2 // java.lang.Object value
        start local 3 // io.netty.util.internal.logging.InternalLogger logger
         0: .line 459
            aload 0 /* channel */
            invokeinterface io.netty.channel.Channel.config:()Lio/netty/channel/ChannelConfig;
            aload 1 /* option */
            aload 2 /* value */
            invokeinterface io.netty.channel.ChannelConfig.setOption:(Lio/netty/channel/ChannelOption;Ljava/lang/Object;)Z
            ifne 7
         1: .line 460
            aload 3 /* logger */
            ldc "Unknown channel option '{}' for channel '{}'"
            aload 1 /* option */
            aload 0 /* channel */
            invokeinterface io.netty.util.internal.logging.InternalLogger.warn:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
         2: .line 462
            goto 7
      StackMap locals:
      StackMap stack: java.lang.Throwable
         3: astore 4 /* t */
        start local 4 // java.lang.Throwable t
         4: .line 463
            aload 3 /* logger */
         5: .line 464
            ldc "Failed to set channel option '{}' with value '{}' for channel '{}'"
            iconst_4
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* option */
            aastore
            dup
            iconst_1
            aload 2 /* value */
            aastore
            dup
            iconst_2
            aload 0 /* channel */
            aastore
            dup
            iconst_3
            aload 4 /* t */
            aastore
         6: .line 463
            invokeinterface io.netty.util.internal.logging.InternalLogger.warn:(Ljava/lang/String;[Ljava/lang/Object;)V
        end local 4 // java.lang.Throwable t
         7: .line 466
      StackMap locals:
      StackMap stack:
            return
        end local 3 // io.netty.util.internal.logging.InternalLogger logger
        end local 2 // java.lang.Object value
        end local 1 // io.netty.channel.ChannelOption option
        end local 0 // io.netty.channel.Channel channel
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    8     0  channel  Lio/netty/channel/Channel;
            0    8     1   option  Lio/netty/channel/ChannelOption<*>;
            0    8     2    value  Ljava/lang/Object;
            0    8     3   logger  Lio/netty/util/internal/logging/InternalLogger;
            4    7     4        t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0     2       3  Class java.lang.Throwable
    Signature: (Lio/netty/channel/Channel;Lio/netty/channel/ChannelOption<*>;Ljava/lang/Object;Lio/netty/util/internal/logging/InternalLogger;)V
    MethodParameters:
         Name  Flags
      channel  
      option   
      value    
      logger   

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // io.netty.bootstrap.AbstractBootstrap this
         0: .line 470
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
         1: .line 471
            aload 0 /* this */
            invokestatic io.netty.util.internal.StringUtil.simpleClassName:(Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         2: .line 472
            bipush 40
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            aload 0 /* this */
            invokevirtual io.netty.bootstrap.AbstractBootstrap.config:()Lio/netty/bootstrap/AbstractBootstrapConfig;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            bipush 41
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
         3: .line 470
            astore 1 /* buf */
        start local 1 // java.lang.StringBuilder buf
         4: .line 473
            aload 1 /* buf */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 1 // java.lang.StringBuilder buf
        end local 0 // io.netty.bootstrap.AbstractBootstrap this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lio/netty/bootstrap/AbstractBootstrap<TB;TC;>;
            4    5     1   buf  Ljava/lang/StringBuilder;

  public java.lang.Object clone();
    descriptor: ()Ljava/lang/Object;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokevirtual io.netty.bootstrap.AbstractBootstrap.clone:()Lio/netty/bootstrap/AbstractBootstrap;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Exceptions:
      throws java.lang.CloneNotSupportedException
}
Signature: <B:Lio/netty/bootstrap/AbstractBootstrap<TB;TC;>;C::Lio/netty/channel/Channel;>Ljava/lang/Object;Ljava/lang/Cloneable;
SourceFile: "AbstractBootstrap.java"
NestMembers:
  io.netty.bootstrap.AbstractBootstrap$1  io.netty.bootstrap.AbstractBootstrap$2  io.netty.bootstrap.AbstractBootstrap$PendingRegistrationPromise
InnerClasses:
  io.netty.bootstrap.AbstractBootstrap$1
  io.netty.bootstrap.AbstractBootstrap$2
  final PendingRegistrationPromise = io.netty.bootstrap.AbstractBootstrap$PendingRegistrationPromise of io.netty.bootstrap.AbstractBootstrap
  public abstract Unsafe = io.netty.channel.Channel$Unsafe of io.netty.channel.Channel
  public abstract Entry = java.util.Map$Entry of java.util.Map