public class org.eclipse.jgit.transport.Daemon
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.eclipse.jgit.transport.Daemon
  super_class: java.lang.Object
{
  public static final int DEFAULT_PORT;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 9418

  private static final int BACKLOG;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 5

  private java.net.InetSocketAddress myAddress;
    descriptor: Ljava/net/InetSocketAddress;
    flags: (0x0002) ACC_PRIVATE

  private final org.eclipse.jgit.transport.DaemonService[] services;
    descriptor: [Lorg/eclipse/jgit/transport/DaemonService;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.ThreadGroup processors;
    descriptor: Ljava/lang/ThreadGroup;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private org.eclipse.jgit.transport.Daemon$Acceptor acceptThread;
    descriptor: Lorg/eclipse/jgit/transport/Daemon$Acceptor;
    flags: (0x0002) ACC_PRIVATE

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

  private org.eclipse.jgit.storage.pack.PackConfig packConfig;
    descriptor: Lorg/eclipse/jgit/storage/pack/PackConfig;
    flags: (0x0002) ACC_PRIVATE

  private volatile org.eclipse.jgit.transport.resolver.RepositoryResolver<org.eclipse.jgit.transport.DaemonClient> repositoryResolver;
    descriptor: Lorg/eclipse/jgit/transport/resolver/RepositoryResolver;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
    Signature: Lorg/eclipse/jgit/transport/resolver/RepositoryResolver<Lorg/eclipse/jgit/transport/DaemonClient;>;

  volatile org.eclipse.jgit.transport.resolver.UploadPackFactory<org.eclipse.jgit.transport.DaemonClient> uploadPackFactory;
    descriptor: Lorg/eclipse/jgit/transport/resolver/UploadPackFactory;
    flags: (0x0040) ACC_VOLATILE
    Signature: Lorg/eclipse/jgit/transport/resolver/UploadPackFactory<Lorg/eclipse/jgit/transport/DaemonClient;>;

  volatile org.eclipse.jgit.transport.resolver.ReceivePackFactory<org.eclipse.jgit.transport.DaemonClient> receivePackFactory;
    descriptor: Lorg/eclipse/jgit/transport/resolver/ReceivePackFactory;
    flags: (0x0040) ACC_VOLATILE
    Signature: Lorg/eclipse/jgit/transport/resolver/ReceivePackFactory<Lorg/eclipse/jgit/transport/DaemonClient;>;

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.eclipse.jgit.transport.Daemon this
         0: .line 101
            aload 0 /* this */
            aconst_null
            invokespecial org.eclipse.jgit.transport.Daemon.<init>:(Ljava/net/InetSocketAddress;)V
         1: .line 102
            return
        end local 0 // org.eclipse.jgit.transport.Daemon this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/eclipse/jgit/transport/Daemon;

  public void <init>(java.net.InetSocketAddress);
    descriptor: (Ljava/net/InetSocketAddress;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=9, locals=2, args_size=2
        start local 0 // org.eclipse.jgit.transport.Daemon this
        start local 1 // java.net.InetSocketAddress addr
         0: .line 112
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 113
            aload 0 /* this */
            aload 1 /* addr */
            putfield org.eclipse.jgit.transport.Daemon.myAddress:Ljava/net/InetSocketAddress;
         2: .line 114
            aload 0 /* this */
            new java.lang.ThreadGroup
            dup
            ldc "Git-Daemon"
            invokespecial java.lang.ThreadGroup.<init>:(Ljava/lang/String;)V
            putfield org.eclipse.jgit.transport.Daemon.processors:Ljava/lang/ThreadGroup;
         3: .line 116
            aload 0 /* this */
            getstatic org.eclipse.jgit.transport.resolver.RepositoryResolver.NONE:Lorg/eclipse/jgit/transport/resolver/RepositoryResolver;
            putfield org.eclipse.jgit.transport.Daemon.repositoryResolver:Lorg/eclipse/jgit/transport/resolver/RepositoryResolver;
         4: .line 118
            aload 0 /* this */
            aload 0 /* this */
            invokedynamic create(Lorg/eclipse/jgit/transport/Daemon;)Lorg/eclipse/jgit/transport/resolver/UploadPackFactory;
              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;Lorg/eclipse/jgit/lib/Repository;)Lorg/eclipse/jgit/transport/UploadPack;
                  org/eclipse/jgit/transport/Daemon.lambda$0(Lorg/eclipse/jgit/transport/DaemonClient;Lorg/eclipse/jgit/lib/Repository;)Lorg/eclipse/jgit/transport/UploadPack; (7)
                  (Lorg/eclipse/jgit/transport/DaemonClient;Lorg/eclipse/jgit/lib/Repository;)Lorg/eclipse/jgit/transport/UploadPack;
            putfield org.eclipse.jgit.transport.Daemon.uploadPackFactory:Lorg/eclipse/jgit/transport/resolver/UploadPackFactory;
         5: .line 125
            aload 0 /* this */
            aload 0 /* this */
            invokedynamic create(Lorg/eclipse/jgit/transport/Daemon;)Lorg/eclipse/jgit/transport/resolver/ReceivePackFactory;
              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;Lorg/eclipse/jgit/lib/Repository;)Lorg/eclipse/jgit/transport/ReceivePack;
                  org/eclipse/jgit/transport/Daemon.lambda$1(Lorg/eclipse/jgit/transport/DaemonClient;Lorg/eclipse/jgit/lib/Repository;)Lorg/eclipse/jgit/transport/ReceivePack; (7)
                  (Lorg/eclipse/jgit/transport/DaemonClient;Lorg/eclipse/jgit/lib/Repository;)Lorg/eclipse/jgit/transport/ReceivePack;
            putfield org.eclipse.jgit.transport.Daemon.receivePackFactory:Lorg/eclipse/jgit/transport/resolver/ReceivePackFactory;
         6: .line 140
            aload 0 /* this */
            iconst_2
            anewarray org.eclipse.jgit.transport.DaemonService
            dup
            iconst_0
         7: .line 141
            new org.eclipse.jgit.transport.Daemon$1
            dup
            aload 0 /* this */
            ldc "upload-pack"
            ldc "uploadpack"
            invokespecial org.eclipse.jgit.transport.Daemon$1.<init>:(Lorg/eclipse/jgit/transport/Daemon;Ljava/lang/String;Ljava/lang/String;)V
            aastore
            dup
            iconst_1
         8: .line 161
            new org.eclipse.jgit.transport.Daemon$2
            dup
            aload 0 /* this */
            ldc "receive-pack"
            ldc "receivepack"
            invokespecial org.eclipse.jgit.transport.Daemon$2.<init>:(Lorg/eclipse/jgit/transport/Daemon;Ljava/lang/String;Ljava/lang/String;)V
            aastore
         9: .line 140
            putfield org.eclipse.jgit.transport.Daemon.services:[Lorg/eclipse/jgit/transport/DaemonService;
        10: .line 179
            return
        end local 1 // java.net.InetSocketAddress addr
        end local 0 // org.eclipse.jgit.transport.Daemon this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Lorg/eclipse/jgit/transport/Daemon;
            0   11     1  addr  Ljava/net/InetSocketAddress;
    MethodParameters:
      Name  Flags
      addr  

  public synchronized java.net.InetSocketAddress getAddress();
    descriptor: ()Ljava/net/InetSocketAddress;
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.eclipse.jgit.transport.Daemon this
         0: .line 187
            aload 0 /* this */
            getfield org.eclipse.jgit.transport.Daemon.myAddress:Ljava/net/InetSocketAddress;
            areturn
        end local 0 // org.eclipse.jgit.transport.Daemon this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/eclipse/jgit/transport/Daemon;

  public synchronized org.eclipse.jgit.transport.DaemonService getService(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/eclipse/jgit/transport/DaemonService;
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=3, locals=6, args_size=2
        start local 0 // org.eclipse.jgit.transport.Daemon this
        start local 1 // java.lang.String name
         0: .line 200
            aload 1 /* name */
            ldc "git-"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 2
         1: .line 201
            new java.lang.StringBuilder
            dup
            ldc "git-"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 1 /* name */
         2: .line 202
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jgit.transport.Daemon.services:[Lorg/eclipse/jgit/transport/DaemonService;
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 7
      StackMap locals: org.eclipse.jgit.transport.Daemon java.lang.String top int int org.eclipse.jgit.transport.DaemonService[]
      StackMap stack:
         3: aload 5
            iload 3
            aaload
            astore 2 /* s */
        start local 2 // org.eclipse.jgit.transport.DaemonService s
         4: .line 203
            aload 2 /* s */
            invokevirtual org.eclipse.jgit.transport.DaemonService.getCommandName:()Ljava/lang/String;
            aload 1 /* name */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 6
         5: .line 204
            aload 2 /* s */
            areturn
        end local 2 // org.eclipse.jgit.transport.DaemonService s
         6: .line 202
      StackMap locals:
      StackMap stack:
            iinc 3 1
      StackMap locals:
      StackMap stack:
         7: iload 3
            iload 4
            if_icmplt 3
         8: .line 206
            aconst_null
            areturn
        end local 1 // java.lang.String name
        end local 0 // org.eclipse.jgit.transport.Daemon this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lorg/eclipse/jgit/transport/Daemon;
            0    9     1  name  Ljava/lang/String;
            4    6     2     s  Lorg/eclipse/jgit/transport/DaemonService;
    MethodParameters:
      Name  Flags
      name  

  public int getTimeout();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.eclipse.jgit.transport.Daemon this
         0: .line 215
            aload 0 /* this */
            getfield org.eclipse.jgit.transport.Daemon.timeout:I
            ireturn
        end local 0 // org.eclipse.jgit.transport.Daemon this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/eclipse/jgit/transport/Daemon;

  public void setTimeout(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.eclipse.jgit.transport.Daemon this
        start local 1 // int seconds
         0: .line 227
            aload 0 /* this */
            iload 1 /* seconds */
            putfield org.eclipse.jgit.transport.Daemon.timeout:I
         1: .line 228
            return
        end local 1 // int seconds
        end local 0 // org.eclipse.jgit.transport.Daemon this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/eclipse/jgit/transport/Daemon;
            0    2     1  seconds  I
    MethodParameters:
         Name  Flags
      seconds  

  public org.eclipse.jgit.storage.pack.PackConfig getPackConfig();
    descriptor: ()Lorg/eclipse/jgit/storage/pack/PackConfig;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.eclipse.jgit.transport.Daemon this
         0: .line 236
            aload 0 /* this */
            getfield org.eclipse.jgit.transport.Daemon.packConfig:Lorg/eclipse/jgit/storage/pack/PackConfig;
            areturn
        end local 0 // org.eclipse.jgit.transport.Daemon this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/eclipse/jgit/transport/Daemon;

  public void setPackConfig(org.eclipse.jgit.storage.pack.PackConfig);
    descriptor: (Lorg/eclipse/jgit/storage/pack/PackConfig;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.eclipse.jgit.transport.Daemon this
        start local 1 // org.eclipse.jgit.storage.pack.PackConfig pc
         0: .line 247
            aload 0 /* this */
            aload 1 /* pc */
            putfield org.eclipse.jgit.transport.Daemon.packConfig:Lorg/eclipse/jgit/storage/pack/PackConfig;
         1: .line 248
            return
        end local 1 // org.eclipse.jgit.storage.pack.PackConfig pc
        end local 0 // org.eclipse.jgit.transport.Daemon this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/eclipse/jgit/transport/Daemon;
            0    2     1    pc  Lorg/eclipse/jgit/storage/pack/PackConfig;
    MethodParameters:
      Name  Flags
      pc    

  public void setRepositoryResolver(org.eclipse.jgit.transport.resolver.RepositoryResolver<org.eclipse.jgit.transport.DaemonClient>);
    descriptor: (Lorg/eclipse/jgit/transport/resolver/RepositoryResolver;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.eclipse.jgit.transport.Daemon this
        start local 1 // org.eclipse.jgit.transport.resolver.RepositoryResolver resolver
         0: .line 257
            aload 0 /* this */
            aload 1 /* resolver */
            putfield org.eclipse.jgit.transport.Daemon.repositoryResolver:Lorg/eclipse/jgit/transport/resolver/RepositoryResolver;
         1: .line 258
            return
        end local 1 // org.eclipse.jgit.transport.resolver.RepositoryResolver resolver
        end local 0 // org.eclipse.jgit.transport.Daemon this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lorg/eclipse/jgit/transport/Daemon;
            0    2     1  resolver  Lorg/eclipse/jgit/transport/resolver/RepositoryResolver<Lorg/eclipse/jgit/transport/DaemonClient;>;
    Signature: (Lorg/eclipse/jgit/transport/resolver/RepositoryResolver<Lorg/eclipse/jgit/transport/DaemonClient;>;)V
    MethodParameters:
          Name  Flags
      resolver  

  public void setUploadPackFactory(org.eclipse.jgit.transport.resolver.UploadPackFactory<org.eclipse.jgit.transport.DaemonClient>);
    descriptor: (Lorg/eclipse/jgit/transport/resolver/UploadPackFactory;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.eclipse.jgit.transport.Daemon this
        start local 1 // org.eclipse.jgit.transport.resolver.UploadPackFactory factory
         0: .line 268
            aload 1 /* factory */
            ifnull 2
         1: .line 269
            aload 0 /* this */
            aload 1 /* factory */
            putfield org.eclipse.jgit.transport.Daemon.uploadPackFactory:Lorg/eclipse/jgit/transport/resolver/UploadPackFactory;
            goto 3
         2: .line 271
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getstatic org.eclipse.jgit.transport.resolver.UploadPackFactory.DISABLED:Lorg/eclipse/jgit/transport/resolver/UploadPackFactory;
            putfield org.eclipse.jgit.transport.Daemon.uploadPackFactory:Lorg/eclipse/jgit/transport/resolver/UploadPackFactory;
         3: .line 272
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.eclipse.jgit.transport.resolver.UploadPackFactory factory
        end local 0 // org.eclipse.jgit.transport.Daemon this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Lorg/eclipse/jgit/transport/Daemon;
            0    4     1  factory  Lorg/eclipse/jgit/transport/resolver/UploadPackFactory<Lorg/eclipse/jgit/transport/DaemonClient;>;
    Signature: (Lorg/eclipse/jgit/transport/resolver/UploadPackFactory<Lorg/eclipse/jgit/transport/DaemonClient;>;)V
    MethodParameters:
         Name  Flags
      factory  

  public org.eclipse.jgit.transport.resolver.ReceivePackFactory<org.eclipse.jgit.transport.DaemonClient> getReceivePackFactory();
    descriptor: ()Lorg/eclipse/jgit/transport/resolver/ReceivePackFactory;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.eclipse.jgit.transport.Daemon this
         0: .line 281
            aload 0 /* this */
            getfield org.eclipse.jgit.transport.Daemon.receivePackFactory:Lorg/eclipse/jgit/transport/resolver/ReceivePackFactory;
            areturn
        end local 0 // org.eclipse.jgit.transport.Daemon this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/eclipse/jgit/transport/Daemon;
    Signature: ()Lorg/eclipse/jgit/transport/resolver/ReceivePackFactory<Lorg/eclipse/jgit/transport/DaemonClient;>;

  public void setReceivePackFactory(org.eclipse.jgit.transport.resolver.ReceivePackFactory<org.eclipse.jgit.transport.DaemonClient>);
    descriptor: (Lorg/eclipse/jgit/transport/resolver/ReceivePackFactory;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.eclipse.jgit.transport.Daemon this
        start local 1 // org.eclipse.jgit.transport.resolver.ReceivePackFactory factory
         0: .line 292
            aload 1 /* factory */
            ifnull 2
         1: .line 293
            aload 0 /* this */
            aload 1 /* factory */
            putfield org.eclipse.jgit.transport.Daemon.receivePackFactory:Lorg/eclipse/jgit/transport/resolver/ReceivePackFactory;
            goto 3
         2: .line 295
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getstatic org.eclipse.jgit.transport.resolver.ReceivePackFactory.DISABLED:Lorg/eclipse/jgit/transport/resolver/ReceivePackFactory;
            putfield org.eclipse.jgit.transport.Daemon.receivePackFactory:Lorg/eclipse/jgit/transport/resolver/ReceivePackFactory;
         3: .line 296
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.eclipse.jgit.transport.resolver.ReceivePackFactory factory
        end local 0 // org.eclipse.jgit.transport.Daemon this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Lorg/eclipse/jgit/transport/Daemon;
            0    4     1  factory  Lorg/eclipse/jgit/transport/resolver/ReceivePackFactory<Lorg/eclipse/jgit/transport/DaemonClient;>;
    Signature: (Lorg/eclipse/jgit/transport/resolver/ReceivePackFactory<Lorg/eclipse/jgit/transport/DaemonClient;>;)V
    MethodParameters:
         Name  Flags
      factory  

  public synchronized void start();
    descriptor: ()V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=7, locals=2, args_size=1
        start local 0 // org.eclipse.jgit.transport.Daemon this
         0: .line 357
            aload 0 /* this */
            getfield org.eclipse.jgit.transport.Daemon.acceptThread:Lorg/eclipse/jgit/transport/Daemon$Acceptor;
            ifnull 2
         1: .line 358
            new java.lang.IllegalStateException
            dup
            invokestatic org.eclipse.jgit.internal.JGitText.get:()Lorg/eclipse/jgit/internal/JGitText;
            getfield org.eclipse.jgit.internal.JGitText.daemonAlreadyRunning:Ljava/lang/String;
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 360
      StackMap locals:
      StackMap stack:
            new java.net.ServerSocket
            dup
            invokespecial java.net.ServerSocket.<init>:()V
            astore 1 /* socket */
        start local 1 // java.net.ServerSocket socket
         3: .line 361
            aload 1 /* socket */
            iconst_1
            invokevirtual java.net.ServerSocket.setReuseAddress:(Z)V
         4: .line 362
            aload 0 /* this */
            getfield org.eclipse.jgit.transport.Daemon.myAddress:Ljava/net/InetSocketAddress;
            ifnull 7
         5: .line 363
            aload 1 /* socket */
            aload 0 /* this */
            getfield org.eclipse.jgit.transport.Daemon.myAddress:Ljava/net/InetSocketAddress;
            iconst_5
            invokevirtual java.net.ServerSocket.bind:(Ljava/net/SocketAddress;I)V
         6: .line 364
            goto 8
         7: .line 365
      StackMap locals: java.net.ServerSocket
      StackMap stack:
            aload 1 /* socket */
            new java.net.InetSocketAddress
            dup
            aconst_null
            iconst_0
            invokespecial java.net.InetSocketAddress.<init>:(Ljava/net/InetAddress;I)V
            iconst_5
            invokevirtual java.net.ServerSocket.bind:(Ljava/net/SocketAddress;I)V
         8: .line 367
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* socket */
            invokevirtual java.net.ServerSocket.getLocalSocketAddress:()Ljava/net/SocketAddress;
            checkcast java.net.InetSocketAddress
            putfield org.eclipse.jgit.transport.Daemon.myAddress:Ljava/net/InetSocketAddress;
         9: .line 369
            aload 0 /* this */
            new org.eclipse.jgit.transport.Daemon$Acceptor
            dup
            aload 0 /* this */
            aload 0 /* this */
            getfield org.eclipse.jgit.transport.Daemon.processors:Ljava/lang/ThreadGroup;
            ldc "Git-Daemon-Accept"
            aload 1 /* socket */
            invokespecial org.eclipse.jgit.transport.Daemon$Acceptor.<init>:(Lorg/eclipse/jgit/transport/Daemon;Ljava/lang/ThreadGroup;Ljava/lang/String;Ljava/net/ServerSocket;)V
            putfield org.eclipse.jgit.transport.Daemon.acceptThread:Lorg/eclipse/jgit/transport/Daemon$Acceptor;
        10: .line 370
            aload 0 /* this */
            getfield org.eclipse.jgit.transport.Daemon.acceptThread:Lorg/eclipse/jgit/transport/Daemon$Acceptor;
            invokevirtual org.eclipse.jgit.transport.Daemon$Acceptor.start:()V
        11: .line 371
            return
        end local 1 // java.net.ServerSocket socket
        end local 0 // org.eclipse.jgit.transport.Daemon this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   12     0    this  Lorg/eclipse/jgit/transport/Daemon;
            3   12     1  socket  Ljava/net/ServerSocket;
    Exceptions:
      throws java.io.IOException

  private synchronized void clearThread();
    descriptor: ()V
    flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.eclipse.jgit.transport.Daemon this
         0: .line 374
            aload 0 /* this */
            aconst_null
            putfield org.eclipse.jgit.transport.Daemon.acceptThread:Lorg/eclipse/jgit/transport/Daemon$Acceptor;
         1: .line 375
            return
        end local 0 // org.eclipse.jgit.transport.Daemon this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/eclipse/jgit/transport/Daemon;

  public synchronized boolean isRunning();
    descriptor: ()Z
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.eclipse.jgit.transport.Daemon this
         0: .line 383
            aload 0 /* this */
            getfield org.eclipse.jgit.transport.Daemon.acceptThread:Lorg/eclipse/jgit/transport/Daemon$Acceptor;
            ifnull 1
            aload 0 /* this */
            getfield org.eclipse.jgit.transport.Daemon.acceptThread:Lorg/eclipse/jgit/transport/Daemon$Acceptor;
            invokevirtual org.eclipse.jgit.transport.Daemon$Acceptor.isRunning:()Z
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // org.eclipse.jgit.transport.Daemon this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/eclipse/jgit/transport/Daemon;

  public synchronized void stop();
    descriptor: ()V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.eclipse.jgit.transport.Daemon this
         0: .line 390
            aload 0 /* this */
            getfield org.eclipse.jgit.transport.Daemon.acceptThread:Lorg/eclipse/jgit/transport/Daemon$Acceptor;
            ifnull 2
         1: .line 391
            aload 0 /* this */
            getfield org.eclipse.jgit.transport.Daemon.acceptThread:Lorg/eclipse/jgit/transport/Daemon$Acceptor;
            invokevirtual org.eclipse.jgit.transport.Daemon$Acceptor.shutDown:()V
         2: .line 393
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.eclipse.jgit.transport.Daemon this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/eclipse/jgit/transport/Daemon;

  public void stopAndWait();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // org.eclipse.jgit.transport.Daemon this
         0: .line 403
            aconst_null
            astore 1 /* acceptor */
        start local 1 // java.lang.Thread acceptor
         1: .line 404
            aload 0 /* this */
            dup
            astore 2
            monitorenter
         2: .line 405
            aload 0 /* this */
            getfield org.eclipse.jgit.transport.Daemon.acceptThread:Lorg/eclipse/jgit/transport/Daemon$Acceptor;
            astore 1 /* acceptor */
         3: .line 406
            aload 0 /* this */
            invokevirtual org.eclipse.jgit.transport.Daemon.stop:()V
         4: .line 404
            aload 2
            monitorexit
         5: goto 8
      StackMap locals: org.eclipse.jgit.transport.Daemon java.lang.Thread org.eclipse.jgit.transport.Daemon
      StackMap stack: java.lang.Throwable
         6: aload 2
            monitorexit
         7: athrow
         8: .line 408
      StackMap locals:
      StackMap stack:
            aload 1 /* acceptor */
            ifnull 10
         9: .line 409
            aload 1 /* acceptor */
            invokevirtual java.lang.Thread.join:()V
        10: .line 411
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.Thread acceptor
        end local 0 // org.eclipse.jgit.transport.Daemon this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   11     0      this  Lorg/eclipse/jgit/transport/Daemon;
            1   11     1  acceptor  Ljava/lang/Thread;
      Exception table:
        from    to  target  type
           2     5       6  any
           6     7       6  any
    Exceptions:
      throws java.lang.InterruptedException

  void startClient(java.net.Socket);
    descriptor: (Ljava/net/Socket;)V
    flags: (0x0000) 
    Code:
      stack=7, locals=4, args_size=2
        start local 0 // org.eclipse.jgit.transport.Daemon this
        start local 1 // java.net.Socket s
         0: .line 414
            new org.eclipse.jgit.transport.DaemonClient
            dup
            aload 0 /* this */
            invokespecial org.eclipse.jgit.transport.DaemonClient.<init>:(Lorg/eclipse/jgit/transport/Daemon;)V
            astore 2 /* dc */
        start local 2 // org.eclipse.jgit.transport.DaemonClient dc
         1: .line 416
            aload 1 /* s */
            invokevirtual java.net.Socket.getRemoteSocketAddress:()Ljava/net/SocketAddress;
            astore 3 /* peer */
        start local 3 // java.net.SocketAddress peer
         2: .line 417
            aload 3 /* peer */
            instanceof java.net.InetSocketAddress
            ifeq 4
         3: .line 418
            aload 2 /* dc */
            aload 3 /* peer */
            checkcast java.net.InetSocketAddress
            invokevirtual java.net.InetSocketAddress.getAddress:()Ljava/net/InetAddress;
            invokevirtual org.eclipse.jgit.transport.DaemonClient.setRemoteAddress:(Ljava/net/InetAddress;)V
         4: .line 420
      StackMap locals: org.eclipse.jgit.transport.DaemonClient java.net.SocketAddress
      StackMap stack:
            new org.eclipse.jgit.transport.Daemon$3
            dup
            aload 0 /* this */
            aload 0 /* this */
            getfield org.eclipse.jgit.transport.Daemon.processors:Ljava/lang/ThreadGroup;
            new java.lang.StringBuilder
            dup
            ldc "Git-Daemon-Client "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* peer */
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 1 /* s */
            aload 2 /* dc */
            invokespecial org.eclipse.jgit.transport.Daemon$3.<init>:(Lorg/eclipse/jgit/transport/Daemon;Ljava/lang/ThreadGroup;Ljava/lang/String;Ljava/net/Socket;Lorg/eclipse/jgit/transport/DaemonClient;)V
         5: .line 444
            invokevirtual org.eclipse.jgit.transport.Daemon$3.start:()V
         6: .line 445
            return
        end local 3 // java.net.SocketAddress peer
        end local 2 // org.eclipse.jgit.transport.DaemonClient dc
        end local 1 // java.net.Socket s
        end local 0 // org.eclipse.jgit.transport.Daemon this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lorg/eclipse/jgit/transport/Daemon;
            0    7     1     s  Ljava/net/Socket;
            1    7     2    dc  Lorg/eclipse/jgit/transport/DaemonClient;
            2    7     3  peer  Ljava/net/SocketAddress;
    MethodParameters:
      Name  Flags
      s     

  synchronized org.eclipse.jgit.transport.DaemonService matchService(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/eclipse/jgit/transport/DaemonService;
    flags: (0x0020) ACC_SYNCHRONIZED
    Code:
      stack=2, locals=6, args_size=2
        start local 0 // org.eclipse.jgit.transport.Daemon this
        start local 1 // java.lang.String cmd
         0: .line 448
            aload 0 /* this */
            getfield org.eclipse.jgit.transport.Daemon.services:[Lorg/eclipse/jgit/transport/DaemonService;
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 5
      StackMap locals: org.eclipse.jgit.transport.Daemon java.lang.String top int int org.eclipse.jgit.transport.DaemonService[]
      StackMap stack:
         1: aload 5
            iload 3
            aaload
            astore 2 /* d */
        start local 2 // org.eclipse.jgit.transport.DaemonService d
         2: .line 449
            aload 2 /* d */
            aload 1 /* cmd */
            invokevirtual org.eclipse.jgit.transport.DaemonService.handles:(Ljava/lang/String;)Z
            ifeq 4
         3: .line 450
            aload 2 /* d */
            areturn
        end local 2 // org.eclipse.jgit.transport.DaemonService d
         4: .line 448
      StackMap locals:
      StackMap stack:
            iinc 3 1
      StackMap locals:
      StackMap stack:
         5: iload 3
            iload 4
            if_icmplt 1
         6: .line 452
            aconst_null
            areturn
        end local 1 // java.lang.String cmd
        end local 0 // org.eclipse.jgit.transport.Daemon this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lorg/eclipse/jgit/transport/Daemon;
            0    7     1   cmd  Ljava/lang/String;
            2    4     2     d  Lorg/eclipse/jgit/transport/DaemonService;
    MethodParameters:
      Name  Flags
      cmd   

  org.eclipse.jgit.lib.Repository openRepository(org.eclipse.jgit.transport.DaemonClient, java.lang.String);
    descriptor: (Lorg/eclipse/jgit/transport/DaemonClient;Ljava/lang/String;)Lorg/eclipse/jgit/lib/Repository;
    flags: (0x0000) 
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.eclipse.jgit.transport.Daemon this
        start local 1 // org.eclipse.jgit.transport.DaemonClient client
        start local 2 // java.lang.String name
         0: .line 460
            aload 2 /* name */
            bipush 92
            bipush 47
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            astore 2 /* name */
         1: .line 464
            aload 2 /* name */
            ldc "/"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 3
         2: .line 465
            aconst_null
            areturn
         3: .line 468
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jgit.transport.Daemon.repositoryResolver:Lorg/eclipse/jgit/transport/resolver/RepositoryResolver;
            aload 1 /* client */
            aload 2 /* name */
            iconst_1
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            invokeinterface org.eclipse.jgit.transport.resolver.RepositoryResolver.open:(Ljava/lang/Object;Ljava/lang/String;)Lorg/eclipse/jgit/lib/Repository;
         4: areturn
         5: .line 469
      StackMap locals:
      StackMap stack: org.eclipse.jgit.errors.RepositoryNotFoundException
            pop
         6: .line 472
            aconst_null
            areturn
         7: .line 473
      StackMap locals:
      StackMap stack: org.eclipse.jgit.transport.resolver.ServiceNotAuthorizedException
            pop
         8: .line 476
            aconst_null
            areturn
         9: .line 477
      StackMap locals:
      StackMap stack: org.eclipse.jgit.transport.resolver.ServiceNotEnabledException
            pop
        10: .line 480
            aconst_null
            areturn
        end local 2 // java.lang.String name
        end local 1 // org.eclipse.jgit.transport.DaemonClient client
        end local 0 // org.eclipse.jgit.transport.Daemon this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   11     0    this  Lorg/eclipse/jgit/transport/Daemon;
            0   11     1  client  Lorg/eclipse/jgit/transport/DaemonClient;
            0   11     2    name  Ljava/lang/String;
      Exception table:
        from    to  target  type
           3     4       5  Class org.eclipse.jgit.errors.RepositoryNotFoundException
           3     4       7  Class org.eclipse.jgit.transport.resolver.ServiceNotAuthorizedException
           3     4       9  Class org.eclipse.jgit.transport.resolver.ServiceNotEnabledException
    Exceptions:
      throws org.eclipse.jgit.transport.ServiceMayNotContinueException
    MethodParameters:
        Name  Flags
      client  
      name    

  private org.eclipse.jgit.transport.UploadPack lambda$0(org.eclipse.jgit.transport.DaemonClient, org.eclipse.jgit.lib.Repository);
    descriptor: (Lorg/eclipse/jgit/transport/DaemonClient;Lorg/eclipse/jgit/lib/Repository;)Lorg/eclipse/jgit/transport/UploadPack;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // org.eclipse.jgit.transport.Daemon this
        start local 1 // org.eclipse.jgit.transport.DaemonClient req
        start local 2 // org.eclipse.jgit.lib.Repository db
         0: .line 119
            new org.eclipse.jgit.transport.UploadPack
            dup
            aload 2 /* db */
            invokespecial org.eclipse.jgit.transport.UploadPack.<init>:(Lorg/eclipse/jgit/lib/Repository;)V
            astore 3 /* up */
        start local 3 // org.eclipse.jgit.transport.UploadPack up
         1: .line 120
            aload 3 /* up */
            aload 0 /* this */
            invokevirtual org.eclipse.jgit.transport.Daemon.getTimeout:()I
            invokevirtual org.eclipse.jgit.transport.UploadPack.setTimeout:(I)V
         2: .line 121
            aload 3 /* up */
            aload 0 /* this */
            invokevirtual org.eclipse.jgit.transport.Daemon.getPackConfig:()Lorg/eclipse/jgit/storage/pack/PackConfig;
            invokevirtual org.eclipse.jgit.transport.UploadPack.setPackConfig:(Lorg/eclipse/jgit/storage/pack/PackConfig;)V
         3: .line 122
            aload 3 /* up */
            areturn
        end local 3 // org.eclipse.jgit.transport.UploadPack up
        end local 2 // org.eclipse.jgit.lib.Repository db
        end local 1 // org.eclipse.jgit.transport.DaemonClient req
        end local 0 // org.eclipse.jgit.transport.Daemon this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/eclipse/jgit/transport/Daemon;
            0    4     1   req  Lorg/eclipse/jgit/transport/DaemonClient;
            0    4     2    db  Lorg/eclipse/jgit/lib/Repository;
            1    4     3    up  Lorg/eclipse/jgit/transport/UploadPack;
    Exceptions:
      throws org.eclipse.jgit.transport.resolver.ServiceNotEnabledException, org.eclipse.jgit.transport.resolver.ServiceNotAuthorizedException

  private org.eclipse.jgit.transport.ReceivePack lambda$1(org.eclipse.jgit.transport.DaemonClient, org.eclipse.jgit.lib.Repository);
    descriptor: (Lorg/eclipse/jgit/transport/DaemonClient;Lorg/eclipse/jgit/lib/Repository;)Lorg/eclipse/jgit/transport/ReceivePack;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=5, locals=8, args_size=3
        start local 0 // org.eclipse.jgit.transport.Daemon this
        start local 1 // org.eclipse.jgit.transport.DaemonClient req
        start local 2 // org.eclipse.jgit.lib.Repository db
         0: .line 126
            new org.eclipse.jgit.transport.ReceivePack
            dup
            aload 2 /* db */
            invokespecial org.eclipse.jgit.transport.ReceivePack.<init>:(Lorg/eclipse/jgit/lib/Repository;)V
            astore 3 /* rp */
        start local 3 // org.eclipse.jgit.transport.ReceivePack rp
         1: .line 128
            aload 1 /* req */
            invokevirtual org.eclipse.jgit.transport.DaemonClient.getRemoteAddress:()Ljava/net/InetAddress;
            astore 4 /* peer */
        start local 4 // java.net.InetAddress peer
         2: .line 129
            aload 4 /* peer */
            invokevirtual java.net.InetAddress.getCanonicalHostName:()Ljava/lang/String;
            astore 5 /* host */
        start local 5 // java.lang.String host
         3: .line 130
            aload 5 /* host */
            ifnonnull 5
         4: .line 131
            aload 4 /* peer */
            invokevirtual java.net.InetAddress.getHostAddress:()Ljava/lang/String;
            astore 5 /* host */
         5: .line 132
      StackMap locals: org.eclipse.jgit.transport.ReceivePack java.net.InetAddress java.lang.String
      StackMap stack:
            ldc "anonymous"
            astore 6 /* name */
        start local 6 // java.lang.String name
         6: .line 133
            new java.lang.StringBuilder
            dup
            aload 6 /* name */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "@"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 5 /* host */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 7 /* email */
        start local 7 // java.lang.String email
         7: .line 134
            aload 3 /* rp */
            new org.eclipse.jgit.lib.PersonIdent
            dup
            aload 6 /* name */
            aload 7 /* email */
            invokespecial org.eclipse.jgit.lib.PersonIdent.<init>:(Ljava/lang/String;Ljava/lang/String;)V
            invokevirtual org.eclipse.jgit.transport.ReceivePack.setRefLogIdent:(Lorg/eclipse/jgit/lib/PersonIdent;)V
         8: .line 135
            aload 3 /* rp */
            aload 0 /* this */
            invokevirtual org.eclipse.jgit.transport.Daemon.getTimeout:()I
            invokevirtual org.eclipse.jgit.transport.ReceivePack.setTimeout:(I)V
         9: .line 137
            aload 3 /* rp */
            areturn
        end local 7 // java.lang.String email
        end local 6 // java.lang.String name
        end local 5 // java.lang.String host
        end local 4 // java.net.InetAddress peer
        end local 3 // org.eclipse.jgit.transport.ReceivePack rp
        end local 2 // org.eclipse.jgit.lib.Repository db
        end local 1 // org.eclipse.jgit.transport.DaemonClient req
        end local 0 // org.eclipse.jgit.transport.Daemon this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   10     0   this  Lorg/eclipse/jgit/transport/Daemon;
            0   10     1    req  Lorg/eclipse/jgit/transport/DaemonClient;
            0   10     2     db  Lorg/eclipse/jgit/lib/Repository;
            1   10     3     rp  Lorg/eclipse/jgit/transport/ReceivePack;
            2   10     4   peer  Ljava/net/InetAddress;
            3   10     5   host  Ljava/lang/String;
            6   10     6   name  Ljava/lang/String;
            7   10     7  email  Ljava/lang/String;
    Exceptions:
      throws org.eclipse.jgit.transport.resolver.ServiceNotEnabledException, org.eclipse.jgit.transport.resolver.ServiceNotAuthorizedException
}
SourceFile: "Daemon.java"
NestMembers:
  org.eclipse.jgit.transport.Daemon$1  org.eclipse.jgit.transport.Daemon$2  org.eclipse.jgit.transport.Daemon$3  org.eclipse.jgit.transport.Daemon$Acceptor
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  org.eclipse.jgit.transport.Daemon$1
  org.eclipse.jgit.transport.Daemon$2
  org.eclipse.jgit.transport.Daemon$3
  private Acceptor = org.eclipse.jgit.transport.Daemon$Acceptor of org.eclipse.jgit.transport.Daemon