public class org.springframework.http.codec.ResourceHttpMessageWriter implements org.springframework.http.codec.HttpMessageWriter<org.springframework.core.io.Resource>
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.springframework.http.codec.ResourceHttpMessageWriter
  super_class: java.lang.Object
{
  private static final org.springframework.core.ResolvableType REGION_TYPE;
    descriptor: Lorg/springframework/core/ResolvableType;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final org.apache.commons.logging.Log logger;
    descriptor: Lorg/apache/commons/logging/Log;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private final org.springframework.core.codec.ResourceEncoder encoder;
    descriptor: Lorg/springframework/core/codec/ResourceEncoder;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.springframework.core.codec.ResourceRegionEncoder regionEncoder;
    descriptor: Lorg/springframework/core/codec/ResourceRegionEncoder;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.List<org.springframework.http.MediaType> mediaTypes;
    descriptor: Ljava/util/List;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/List<Lorg/springframework/http/MediaType;>;

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 73
            ldc Lorg/springframework/core/io/support/ResourceRegion;
            invokestatic org.springframework.core.ResolvableType.forClass:(Ljava/lang/Class;)Lorg/springframework/core/ResolvableType;
            putstatic org.springframework.http.codec.ResourceHttpMessageWriter.REGION_TYPE:Lorg/springframework/core/ResolvableType;
         1: .line 75
            ldc Lorg/springframework/http/codec/ResourceHttpMessageWriter;
            invokestatic org.springframework.http.HttpLogging.forLogName:(Ljava/lang/Class;)Lorg/apache/commons/logging/Log;
            putstatic org.springframework.http.codec.ResourceHttpMessageWriter.logger:Lorg/apache/commons/logging/Log;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.springframework.http.codec.ResourceHttpMessageWriter this
         0: .line 86
            aload 0 /* this */
            sipush 4096
            invokespecial org.springframework.http.codec.ResourceHttpMessageWriter.<init>:(I)V
         1: .line 87
            return
        end local 0 // org.springframework.http.codec.ResourceHttpMessageWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/springframework/http/codec/ResourceHttpMessageWriter;

  public void <init>(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.springframework.http.codec.ResourceHttpMessageWriter this
        start local 1 // int bufferSize
         0: .line 89
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 90
            aload 0 /* this */
            new org.springframework.core.codec.ResourceEncoder
            dup
            iload 1 /* bufferSize */
            invokespecial org.springframework.core.codec.ResourceEncoder.<init>:(I)V
            putfield org.springframework.http.codec.ResourceHttpMessageWriter.encoder:Lorg/springframework/core/codec/ResourceEncoder;
         2: .line 91
            aload 0 /* this */
            new org.springframework.core.codec.ResourceRegionEncoder
            dup
            iload 1 /* bufferSize */
            invokespecial org.springframework.core.codec.ResourceRegionEncoder.<init>:(I)V
            putfield org.springframework.http.codec.ResourceHttpMessageWriter.regionEncoder:Lorg/springframework/core/codec/ResourceRegionEncoder;
         3: .line 92
            aload 0 /* this */
            aload 0 /* this */
            getfield org.springframework.http.codec.ResourceHttpMessageWriter.encoder:Lorg/springframework/core/codec/ResourceEncoder;
            invokevirtual org.springframework.core.codec.ResourceEncoder.getEncodableMimeTypes:()Ljava/util/List;
            invokestatic org.springframework.http.MediaType.asMediaTypes:(Ljava/util/List;)Ljava/util/List;
            putfield org.springframework.http.codec.ResourceHttpMessageWriter.mediaTypes:Ljava/util/List;
         4: .line 93
            return
        end local 1 // int bufferSize
        end local 0 // org.springframework.http.codec.ResourceHttpMessageWriter this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    5     0        this  Lorg/springframework/http/codec/ResourceHttpMessageWriter;
            0    5     1  bufferSize  I
    MethodParameters:
            Name  Flags
      bufferSize  

  public boolean canWrite(org.springframework.core.ResolvableType, org.springframework.http.MediaType);
    descriptor: (Lorg/springframework/core/ResolvableType;Lorg/springframework/http/MediaType;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.springframework.http.codec.ResourceHttpMessageWriter this
        start local 1 // org.springframework.core.ResolvableType elementType
        start local 2 // org.springframework.http.MediaType mediaType
         0: .line 98
            aload 0 /* this */
            getfield org.springframework.http.codec.ResourceHttpMessageWriter.encoder:Lorg/springframework/core/codec/ResourceEncoder;
            aload 1 /* elementType */
            aload 2 /* mediaType */
            invokevirtual org.springframework.core.codec.ResourceEncoder.canEncode:(Lorg/springframework/core/ResolvableType;Lorg/springframework/util/MimeType;)Z
            ireturn
        end local 2 // org.springframework.http.MediaType mediaType
        end local 1 // org.springframework.core.ResolvableType elementType
        end local 0 // org.springframework.http.codec.ResourceHttpMessageWriter this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lorg/springframework/http/codec/ResourceHttpMessageWriter;
            0    1     1  elementType  Lorg/springframework/core/ResolvableType;
            0    1     2    mediaType  Lorg/springframework/http/MediaType;
    RuntimeVisibleParameterAnnotations: 
      0:
      1:
        org.springframework.lang.Nullable()
    MethodParameters:
             Name  Flags
      elementType  
      mediaType    

  public java.util.List<org.springframework.http.MediaType> getWritableMediaTypes();
    descriptor: ()Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.http.codec.ResourceHttpMessageWriter this
         0: .line 103
            aload 0 /* this */
            getfield org.springframework.http.codec.ResourceHttpMessageWriter.mediaTypes:Ljava/util/List;
            areturn
        end local 0 // org.springframework.http.codec.ResourceHttpMessageWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/http/codec/ResourceHttpMessageWriter;
    Signature: ()Ljava/util/List<Lorg/springframework/http/MediaType;>;

  public reactor.core.publisher.Mono<java.lang.Void> write(org.reactivestreams.Publisher<? extends org.springframework.core.io.Resource>, org.springframework.core.ResolvableType, org.springframework.http.MediaType, org.springframework.http.ReactiveHttpOutputMessage, java.util.Map<java.lang.String, java.lang.Object>);
    descriptor: (Lorg/reactivestreams/Publisher;Lorg/springframework/core/ResolvableType;Lorg/springframework/http/MediaType;Lorg/springframework/http/ReactiveHttpOutputMessage;Ljava/util/Map;)Lreactor/core/publisher/Mono;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=6, args_size=6
        start local 0 // org.springframework.http.codec.ResourceHttpMessageWriter this
        start local 1 // org.reactivestreams.Publisher inputStream
        start local 2 // org.springframework.core.ResolvableType elementType
        start local 3 // org.springframework.http.MediaType mediaType
        start local 4 // org.springframework.http.ReactiveHttpOutputMessage message
        start local 5 // java.util.Map hints
         0: .line 113
            aload 1 /* inputStream */
            invokestatic reactor.core.publisher.Mono.from:(Lorg/reactivestreams/Publisher;)Lreactor/core/publisher/Mono;
            aload 0 /* this */
            aload 2 /* elementType */
            aload 3 /* mediaType */
            aload 4 /* message */
            aload 5 /* hints */
            invokedynamic apply(Lorg/springframework/http/codec/ResourceHttpMessageWriter;Lorg/springframework/core/ResolvableType;Lorg/springframework/http/MediaType;Lorg/springframework/http/ReactiveHttpOutputMessage;Ljava/util/Map;)Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  org/springframework/http/codec/ResourceHttpMessageWriter.lambda$0(Lorg/springframework/core/ResolvableType;Lorg/springframework/http/MediaType;Lorg/springframework/http/ReactiveHttpOutputMessage;Ljava/util/Map;Lorg/springframework/core/io/Resource;)Lreactor/core/publisher/Mono; (7)
                  (Lorg/springframework/core/io/Resource;)Lreactor/core/publisher/Mono;
            invokevirtual reactor.core.publisher.Mono.flatMap:(Ljava/util/function/Function;)Lreactor/core/publisher/Mono;
            areturn
        end local 5 // java.util.Map hints
        end local 4 // org.springframework.http.ReactiveHttpOutputMessage message
        end local 3 // org.springframework.http.MediaType mediaType
        end local 2 // org.springframework.core.ResolvableType elementType
        end local 1 // org.reactivestreams.Publisher inputStream
        end local 0 // org.springframework.http.codec.ResourceHttpMessageWriter this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lorg/springframework/http/codec/ResourceHttpMessageWriter;
            0    1     1  inputStream  Lorg/reactivestreams/Publisher<+Lorg/springframework/core/io/Resource;>;
            0    1     2  elementType  Lorg/springframework/core/ResolvableType;
            0    1     3    mediaType  Lorg/springframework/http/MediaType;
            0    1     4      message  Lorg/springframework/http/ReactiveHttpOutputMessage;
            0    1     5        hints  Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
    Signature: (Lorg/reactivestreams/Publisher<+Lorg/springframework/core/io/Resource;>;Lorg/springframework/core/ResolvableType;Lorg/springframework/http/MediaType;Lorg/springframework/http/ReactiveHttpOutputMessage;Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;)Lreactor/core/publisher/Mono<Ljava/lang/Void;>;
    RuntimeVisibleParameterAnnotations: 
      0:
      1:
      2:
        org.springframework.lang.Nullable()
      3:
      4:
    MethodParameters:
             Name  Flags
      inputStream  
      elementType  
      mediaType    
      message      
      hints        

  private reactor.core.publisher.Mono<java.lang.Void> writeResource(org.springframework.core.io.Resource, org.springframework.core.ResolvableType, org.springframework.http.MediaType, org.springframework.http.ReactiveHttpOutputMessage, java.util.Map<java.lang.String, java.lang.Object>);
    descriptor: (Lorg/springframework/core/io/Resource;Lorg/springframework/core/ResolvableType;Lorg/springframework/http/MediaType;Lorg/springframework/http/ReactiveHttpOutputMessage;Ljava/util/Map;)Lreactor/core/publisher/Mono;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=10, args_size=6
        start local 0 // org.springframework.http.codec.ResourceHttpMessageWriter this
        start local 1 // org.springframework.core.io.Resource resource
        start local 2 // org.springframework.core.ResolvableType type
        start local 3 // org.springframework.http.MediaType mediaType
        start local 4 // org.springframework.http.ReactiveHttpOutputMessage message
        start local 5 // java.util.Map hints
         0: .line 120
            aload 4 /* message */
            invokeinterface org.springframework.http.ReactiveHttpOutputMessage.getHeaders:()Lorg/springframework/http/HttpHeaders;
            astore 6 /* headers */
        start local 6 // org.springframework.http.HttpHeaders headers
         1: .line 121
            aload 3 /* mediaType */
            aload 1 /* resource */
            aload 5 /* hints */
            invokestatic org.springframework.http.codec.ResourceHttpMessageWriter.getResourceMediaType:(Lorg/springframework/http/MediaType;Lorg/springframework/core/io/Resource;Ljava/util/Map;)Lorg/springframework/http/MediaType;
            astore 7 /* resourceMediaType */
        start local 7 // org.springframework.http.MediaType resourceMediaType
         2: .line 122
            aload 6 /* headers */
            aload 7 /* resourceMediaType */
            invokevirtual org.springframework.http.HttpHeaders.setContentType:(Lorg/springframework/http/MediaType;)V
         3: .line 124
            aload 6 /* headers */
            invokevirtual org.springframework.http.HttpHeaders.getContentLength:()J
            lconst_0
            lcmp
            ifge 7
         4: .line 125
            aload 1 /* resource */
            invokestatic org.springframework.http.codec.ResourceHttpMessageWriter.lengthOf:(Lorg/springframework/core/io/Resource;)J
            lstore 8 /* length */
        start local 8 // long length
         5: .line 126
            lload 8 /* length */
            ldc -1
            lcmp
            ifeq 7
         6: .line 127
            aload 6 /* headers */
            lload 8 /* length */
            invokevirtual org.springframework.http.HttpHeaders.setContentLength:(J)V
        end local 8 // long length
         7: .line 131
      StackMap locals: org.springframework.http.HttpHeaders org.springframework.http.MediaType
      StackMap stack:
            aload 1 /* resource */
            aconst_null
            aload 4 /* message */
            aload 5 /* hints */
            invokestatic org.springframework.http.codec.ResourceHttpMessageWriter.zeroCopy:(Lorg/springframework/core/io/Resource;Lorg/springframework/core/io/support/ResourceRegion;Lorg/springframework/http/ReactiveHttpOutputMessage;Ljava/util/Map;)Ljava/util/Optional;
         8: .line 132
            aload 0 /* this */
            aload 1 /* resource */
            aload 4 /* message */
            aload 2 /* type */
            aload 7 /* resourceMediaType */
            aload 5 /* hints */
            invokedynamic get(Lorg/springframework/http/codec/ResourceHttpMessageWriter;Lorg/springframework/core/io/Resource;Lorg/springframework/http/ReactiveHttpOutputMessage;Lorg/springframework/core/ResolvableType;Lorg/springframework/http/MediaType;Ljava/util/Map;)Ljava/util/function/Supplier;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()Ljava/lang/Object;
                  org/springframework/http/codec/ResourceHttpMessageWriter.lambda$1(Lorg/springframework/core/io/Resource;Lorg/springframework/http/ReactiveHttpOutputMessage;Lorg/springframework/core/ResolvableType;Lorg/springframework/http/MediaType;Ljava/util/Map;)Lreactor/core/publisher/Mono; (7)
                  ()Lreactor/core/publisher/Mono;
            invokevirtual java.util.Optional.orElseGet:(Ljava/util/function/Supplier;)Ljava/lang/Object;
            checkcast reactor.core.publisher.Mono
         9: .line 131
            areturn
        end local 7 // org.springframework.http.MediaType resourceMediaType
        end local 6 // org.springframework.http.HttpHeaders headers
        end local 5 // java.util.Map hints
        end local 4 // org.springframework.http.ReactiveHttpOutputMessage message
        end local 3 // org.springframework.http.MediaType mediaType
        end local 2 // org.springframework.core.ResolvableType type
        end local 1 // org.springframework.core.io.Resource resource
        end local 0 // org.springframework.http.codec.ResourceHttpMessageWriter this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   10     0               this  Lorg/springframework/http/codec/ResourceHttpMessageWriter;
            0   10     1           resource  Lorg/springframework/core/io/Resource;
            0   10     2               type  Lorg/springframework/core/ResolvableType;
            0   10     3          mediaType  Lorg/springframework/http/MediaType;
            0   10     4            message  Lorg/springframework/http/ReactiveHttpOutputMessage;
            0   10     5              hints  Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
            1   10     6            headers  Lorg/springframework/http/HttpHeaders;
            2   10     7  resourceMediaType  Lorg/springframework/http/MediaType;
            5    7     8             length  J
    Signature: (Lorg/springframework/core/io/Resource;Lorg/springframework/core/ResolvableType;Lorg/springframework/http/MediaType;Lorg/springframework/http/ReactiveHttpOutputMessage;Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;)Lreactor/core/publisher/Mono<Ljava/lang/Void;>;
    RuntimeVisibleParameterAnnotations: 
      0:
      1:
      2:
        org.springframework.lang.Nullable()
      3:
      4:
    MethodParameters:
           Name  Flags
      resource   
      type       
      mediaType  
      message    
      hints      

  private static org.springframework.http.MediaType getResourceMediaType(org.springframework.http.MediaType, org.springframework.core.io.Resource, java.util.Map<java.lang.String, java.lang.Object>);
    descriptor: (Lorg/springframework/http/MediaType;Lorg/springframework/core/io/Resource;Ljava/util/Map;)Lorg/springframework/http/MediaType;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.springframework.http.MediaType mediaType
        start local 1 // org.springframework.core.io.Resource resource
        start local 2 // java.util.Map hints
         0: .line 143
            aload 0 /* mediaType */
            ifnull 2
            aload 0 /* mediaType */
            invokevirtual org.springframework.http.MediaType.isConcrete:()Z
            ifeq 2
            aload 0 /* mediaType */
            getstatic org.springframework.http.MediaType.APPLICATION_OCTET_STREAM:Lorg/springframework/http/MediaType;
            invokevirtual org.springframework.http.MediaType.equals:(Ljava/lang/Object;)Z
            ifne 2
         1: .line 144
            aload 0 /* mediaType */
            areturn
         2: .line 146
      StackMap locals:
      StackMap stack:
            aload 1 /* resource */
            invokestatic org.springframework.http.MediaTypeFactory.getMediaType:(Lorg/springframework/core/io/Resource;)Ljava/util/Optional;
            getstatic org.springframework.http.MediaType.APPLICATION_OCTET_STREAM:Lorg/springframework/http/MediaType;
            invokevirtual java.util.Optional.orElse:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.springframework.http.MediaType
            astore 0 /* mediaType */
         3: .line 147
            getstatic org.springframework.http.codec.ResourceHttpMessageWriter.logger:Lorg/apache/commons/logging/Log;
            invokeinterface org.apache.commons.logging.Log.isDebugEnabled:()Z
            ifeq 5
            aload 2 /* hints */
            invokestatic org.springframework.core.codec.Hints.isLoggingSuppressed:(Ljava/util/Map;)Z
            ifne 5
         4: .line 148
            getstatic org.springframework.http.codec.ResourceHttpMessageWriter.logger:Lorg/apache/commons/logging/Log;
            new java.lang.StringBuilder
            dup
            aload 2 /* hints */
            invokestatic org.springframework.core.codec.Hints.getLogPrefix:(Ljava/util/Map;)Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "Resource associated with '"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* mediaType */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "'"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
         5: .line 150
      StackMap locals:
      StackMap stack:
            aload 0 /* mediaType */
            areturn
        end local 2 // java.util.Map hints
        end local 1 // org.springframework.core.io.Resource resource
        end local 0 // org.springframework.http.MediaType mediaType
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    6     0  mediaType  Lorg/springframework/http/MediaType;
            0    6     1   resource  Lorg/springframework/core/io/Resource;
            0    6     2      hints  Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
    Signature: (Lorg/springframework/http/MediaType;Lorg/springframework/core/io/Resource;Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;)Lorg/springframework/http/MediaType;
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
      1:
      2:
    MethodParameters:
           Name  Flags
      mediaType  
      resource   
      hints      

  private static long lengthOf(org.springframework.core.io.Resource);
    descriptor: (Lorg/springframework/core/io/Resource;)J
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.springframework.core.io.Resource resource
         0: .line 155
            ldc Lorg/springframework/core/io/InputStreamResource;
            aload 0 /* resource */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            if_acmpeq 4
         1: .line 157
            aload 0 /* resource */
            invokeinterface org.springframework.core.io.Resource.contentLength:()J
         2: lreturn
         3: .line 159
      StackMap locals:
      StackMap stack: java.io.IOException
            pop
         4: .line 162
      StackMap locals:
      StackMap stack:
            ldc -1
            lreturn
        end local 0 // org.springframework.core.io.Resource resource
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0  resource  Lorg/springframework/core/io/Resource;
      Exception table:
        from    to  target  type
           1     2       3  Class java.io.IOException
    MethodParameters:
          Name  Flags
      resource  

  private static java.util.Optional<reactor.core.publisher.Mono<java.lang.Void>> zeroCopy(org.springframework.core.io.Resource, org.springframework.core.io.support.ResourceRegion, org.springframework.http.ReactiveHttpOutputMessage, java.util.Map<java.lang.String, java.lang.Object>);
    descriptor: (Lorg/springframework/core/io/Resource;Lorg/springframework/core/io/support/ResourceRegion;Lorg/springframework/http/ReactiveHttpOutputMessage;Ljava/util/Map;)Ljava/util/Optional;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=10, args_size=4
        start local 0 // org.springframework.core.io.Resource resource
        start local 1 // org.springframework.core.io.support.ResourceRegion region
        start local 2 // org.springframework.http.ReactiveHttpOutputMessage message
        start local 3 // java.util.Map hints
         0: .line 168
            aload 2 /* message */
            instanceof org.springframework.http.ZeroCopyHttpOutputMessage
            ifeq 16
            aload 0 /* resource */
            invokeinterface org.springframework.core.io.Resource.isFile:()Z
            ifeq 16
         1: .line 170
            aload 0 /* resource */
            invokeinterface org.springframework.core.io.Resource.getFile:()Ljava/io/File;
            astore 4 /* file */
        start local 4 // java.io.File file
         2: .line 171
            aload 1 /* region */
            ifnull 3
            aload 1 /* region */
            invokevirtual org.springframework.core.io.support.ResourceRegion.getPosition:()J
            goto 4
      StackMap locals: java.io.File
      StackMap stack:
         3: lconst_0
      StackMap locals:
      StackMap stack: long
         4: lstore 5 /* pos */
        start local 5 // long pos
         5: .line 172
            aload 1 /* region */
            ifnull 6
            aload 1 /* region */
            invokevirtual org.springframework.core.io.support.ResourceRegion.getCount:()J
            goto 7
      StackMap locals: long
      StackMap stack:
         6: aload 4 /* file */
            invokevirtual java.io.File.length:()J
      StackMap locals:
      StackMap stack: long
         7: lstore 7 /* count */
        start local 7 // long count
         8: .line 173
            getstatic org.springframework.http.codec.ResourceHttpMessageWriter.logger:Lorg/apache/commons/logging/Log;
            invokeinterface org.apache.commons.logging.Log.isDebugEnabled:()Z
            ifeq 13
         9: .line 174
            aload 1 /* region */
            ifnull 10
            new java.lang.StringBuilder
            dup
            ldc "region "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            lload 5 /* pos */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc "-"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            lload 7 /* count */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc " of "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            goto 11
      StackMap locals: long
      StackMap stack:
        10: ldc ""
      StackMap locals:
      StackMap stack: java.lang.String
        11: astore 9 /* formatted */
        start local 9 // java.lang.String formatted
        12: .line 175
            getstatic org.springframework.http.codec.ResourceHttpMessageWriter.logger:Lorg/apache/commons/logging/Log;
            new java.lang.StringBuilder
            dup
            aload 3 /* hints */
            invokestatic org.springframework.core.codec.Hints.getLogPrefix:(Ljava/util/Map;)Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "Zero-copy "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 9 /* formatted */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "["
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* resource */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
        end local 9 // java.lang.String formatted
        13: .line 177
      StackMap locals:
      StackMap stack:
            aload 2 /* message */
            checkcast org.springframework.http.ZeroCopyHttpOutputMessage
            aload 4 /* file */
            lload 5 /* pos */
            lload 7 /* count */
            invokeinterface org.springframework.http.ZeroCopyHttpOutputMessage.writeWith:(Ljava/io/File;JJ)Lreactor/core/publisher/Mono;
            invokestatic java.util.Optional.of:(Ljava/lang/Object;)Ljava/util/Optional;
        14: areturn
        end local 7 // long count
        end local 5 // long pos
        end local 4 // java.io.File file
        15: .line 179
      StackMap locals: org.springframework.core.io.Resource org.springframework.core.io.support.ResourceRegion org.springframework.http.ReactiveHttpOutputMessage java.util.Map
      StackMap stack: java.io.IOException
            pop
        16: .line 183
      StackMap locals:
      StackMap stack:
            invokestatic java.util.Optional.empty:()Ljava/util/Optional;
            areturn
        end local 3 // java.util.Map hints
        end local 2 // org.springframework.http.ReactiveHttpOutputMessage message
        end local 1 // org.springframework.core.io.support.ResourceRegion region
        end local 0 // org.springframework.core.io.Resource resource
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   17     0   resource  Lorg/springframework/core/io/Resource;
            0   17     1     region  Lorg/springframework/core/io/support/ResourceRegion;
            0   17     2    message  Lorg/springframework/http/ReactiveHttpOutputMessage;
            0   17     3      hints  Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
            2   15     4       file  Ljava/io/File;
            5   15     5        pos  J
            8   15     7      count  J
           12   13     9  formatted  Ljava/lang/String;
      Exception table:
        from    to  target  type
           1    14      15  Class java.io.IOException
    Signature: (Lorg/springframework/core/io/Resource;Lorg/springframework/core/io/support/ResourceRegion;Lorg/springframework/http/ReactiveHttpOutputMessage;Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;)Ljava/util/Optional<Lreactor/core/publisher/Mono<Ljava/lang/Void;>;>;
    RuntimeVisibleParameterAnnotations: 
      0:
      1:
        org.springframework.lang.Nullable()
      2:
      3:
    MethodParameters:
          Name  Flags
      resource  
      region    
      message   
      hints     

  public reactor.core.publisher.Mono<java.lang.Void> write(org.reactivestreams.Publisher<? extends org.springframework.core.io.Resource>, org.springframework.core.ResolvableType, org.springframework.core.ResolvableType, org.springframework.http.MediaType, org.springframework.http.server.reactive.ServerHttpRequest, org.springframework.http.server.reactive.ServerHttpResponse, java.util.Map<java.lang.String, java.lang.Object>);
    descriptor: (Lorg/reactivestreams/Publisher;Lorg/springframework/core/ResolvableType;Lorg/springframework/core/ResolvableType;Lorg/springframework/http/MediaType;Lorg/springframework/http/server/reactive/ServerHttpRequest;Lorg/springframework/http/server/reactive/ServerHttpResponse;Ljava/util/Map;)Lreactor/core/publisher/Mono;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=10, args_size=8
        start local 0 // org.springframework.http.codec.ResourceHttpMessageWriter this
        start local 1 // org.reactivestreams.Publisher inputStream
        start local 2 // org.springframework.core.ResolvableType actualType
        start local 3 // org.springframework.core.ResolvableType elementType
        start local 4 // org.springframework.http.MediaType mediaType
        start local 5 // org.springframework.http.server.reactive.ServerHttpRequest request
        start local 6 // org.springframework.http.server.reactive.ServerHttpResponse response
        start local 7 // java.util.Map hints
         0: .line 195
            aload 6 /* response */
            invokeinterface org.springframework.http.server.reactive.ServerHttpResponse.getHeaders:()Lorg/springframework/http/HttpHeaders;
            astore 8 /* headers */
        start local 8 // org.springframework.http.HttpHeaders headers
         1: .line 196
            aload 8 /* headers */
            ldc "Accept-Ranges"
            ldc "bytes"
            invokevirtual org.springframework.http.HttpHeaders.set:(Ljava/lang/String;Ljava/lang/String;)V
         2: .line 200
            aload 5 /* request */
            invokeinterface org.springframework.http.server.reactive.ServerHttpRequest.getHeaders:()Lorg/springframework/http/HttpHeaders;
            invokevirtual org.springframework.http.HttpHeaders.getRange:()Ljava/util/List;
            astore 9 /* ranges */
        start local 9 // java.util.List ranges
         3: .line 201
            goto 7
        end local 9 // java.util.List ranges
         4: .line 202
      StackMap locals: org.springframework.http.codec.ResourceHttpMessageWriter org.reactivestreams.Publisher org.springframework.core.ResolvableType org.springframework.core.ResolvableType org.springframework.http.MediaType org.springframework.http.server.reactive.ServerHttpRequest org.springframework.http.server.reactive.ServerHttpResponse java.util.Map org.springframework.http.HttpHeaders
      StackMap stack: java.lang.IllegalArgumentException
            pop
         5: .line 203
            aload 6 /* response */
            getstatic org.springframework.http.HttpStatus.REQUESTED_RANGE_NOT_SATISFIABLE:Lorg/springframework/http/HttpStatus;
            invokeinterface org.springframework.http.server.reactive.ServerHttpResponse.setStatusCode:(Lorg/springframework/http/HttpStatus;)Z
            pop
         6: .line 204
            aload 6 /* response */
            invokeinterface org.springframework.http.server.reactive.ServerHttpResponse.setComplete:()Lreactor/core/publisher/Mono;
            areturn
        start local 9 // java.util.List ranges
         7: .line 207
      StackMap locals: java.util.List
      StackMap stack:
            aload 1 /* inputStream */
            invokestatic reactor.core.publisher.Mono.from:(Lorg/reactivestreams/Publisher;)Lreactor/core/publisher/Mono;
            aload 0 /* this */
            aload 9 /* ranges */
            aload 3 /* elementType */
            aload 4 /* mediaType */
            aload 6 /* response */
            aload 7 /* hints */
            aload 8 /* headers */
            invokedynamic apply(Lorg/springframework/http/codec/ResourceHttpMessageWriter;Ljava/util/List;Lorg/springframework/core/ResolvableType;Lorg/springframework/http/MediaType;Lorg/springframework/http/server/reactive/ServerHttpResponse;Ljava/util/Map;Lorg/springframework/http/HttpHeaders;)Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  org/springframework/http/codec/ResourceHttpMessageWriter.lambda$2(Ljava/util/List;Lorg/springframework/core/ResolvableType;Lorg/springframework/http/MediaType;Lorg/springframework/http/server/reactive/ServerHttpResponse;Ljava/util/Map;Lorg/springframework/http/HttpHeaders;Lorg/springframework/core/io/Resource;)Lreactor/core/publisher/Mono; (7)
                  (Lorg/springframework/core/io/Resource;)Lreactor/core/publisher/Mono;
            invokevirtual reactor.core.publisher.Mono.flatMap:(Ljava/util/function/Function;)Lreactor/core/publisher/Mono;
            areturn
        end local 9 // java.util.List ranges
        end local 8 // org.springframework.http.HttpHeaders headers
        end local 7 // java.util.Map hints
        end local 6 // org.springframework.http.server.reactive.ServerHttpResponse response
        end local 5 // org.springframework.http.server.reactive.ServerHttpRequest request
        end local 4 // org.springframework.http.MediaType mediaType
        end local 3 // org.springframework.core.ResolvableType elementType
        end local 2 // org.springframework.core.ResolvableType actualType
        end local 1 // org.reactivestreams.Publisher inputStream
        end local 0 // org.springframework.http.codec.ResourceHttpMessageWriter this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    8     0         this  Lorg/springframework/http/codec/ResourceHttpMessageWriter;
            0    8     1  inputStream  Lorg/reactivestreams/Publisher<+Lorg/springframework/core/io/Resource;>;
            0    8     2   actualType  Lorg/springframework/core/ResolvableType;
            0    8     3  elementType  Lorg/springframework/core/ResolvableType;
            0    8     4    mediaType  Lorg/springframework/http/MediaType;
            0    8     5      request  Lorg/springframework/http/server/reactive/ServerHttpRequest;
            0    8     6     response  Lorg/springframework/http/server/reactive/ServerHttpResponse;
            0    8     7        hints  Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
            1    8     8      headers  Lorg/springframework/http/HttpHeaders;
            3    4     9       ranges  Ljava/util/List<Lorg/springframework/http/HttpRange;>;
            7    8     9       ranges  Ljava/util/List<Lorg/springframework/http/HttpRange;>;
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.IllegalArgumentException
    Signature: (Lorg/reactivestreams/Publisher<+Lorg/springframework/core/io/Resource;>;Lorg/springframework/core/ResolvableType;Lorg/springframework/core/ResolvableType;Lorg/springframework/http/MediaType;Lorg/springframework/http/server/reactive/ServerHttpRequest;Lorg/springframework/http/server/reactive/ServerHttpResponse;Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;)Lreactor/core/publisher/Mono<Ljava/lang/Void;>;
    RuntimeVisibleParameterAnnotations: 
      0:
      1:
        org.springframework.lang.Nullable()
      2:
      3:
        org.springframework.lang.Nullable()
      4:
      5:
      6:
    MethodParameters:
             Name  Flags
      inputStream  
      actualType   
      elementType  
      mediaType    
      request      
      response     
      hints        

  private reactor.core.publisher.Mono<java.lang.Void> writeSingleRegion(org.springframework.core.io.support.ResourceRegion, org.springframework.http.ReactiveHttpOutputMessage, java.util.Map<java.lang.String, java.lang.Object>);
    descriptor: (Lorg/springframework/core/io/support/ResourceRegion;Lorg/springframework/http/ReactiveHttpOutputMessage;Ljava/util/Map;)Lreactor/core/publisher/Mono;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // org.springframework.http.codec.ResourceHttpMessageWriter this
        start local 1 // org.springframework.core.io.support.ResourceRegion region
        start local 2 // org.springframework.http.ReactiveHttpOutputMessage message
        start local 3 // java.util.Map hints
         0: .line 243
            aload 1 /* region */
            invokevirtual org.springframework.core.io.support.ResourceRegion.getResource:()Lorg/springframework/core/io/Resource;
            aload 1 /* region */
            aload 2 /* message */
            aload 3 /* hints */
            invokestatic org.springframework.http.codec.ResourceHttpMessageWriter.zeroCopy:(Lorg/springframework/core/io/Resource;Lorg/springframework/core/io/support/ResourceRegion;Lorg/springframework/http/ReactiveHttpOutputMessage;Ljava/util/Map;)Ljava/util/Optional;
         1: .line 244
            aload 0 /* this */
            aload 1 /* region */
            aload 2 /* message */
            aload 3 /* hints */
            invokedynamic get(Lorg/springframework/http/codec/ResourceHttpMessageWriter;Lorg/springframework/core/io/support/ResourceRegion;Lorg/springframework/http/ReactiveHttpOutputMessage;Ljava/util/Map;)Ljava/util/function/Supplier;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()Ljava/lang/Object;
                  org/springframework/http/codec/ResourceHttpMessageWriter.lambda$3(Lorg/springframework/core/io/support/ResourceRegion;Lorg/springframework/http/ReactiveHttpOutputMessage;Ljava/util/Map;)Lreactor/core/publisher/Mono; (7)
                  ()Lreactor/core/publisher/Mono;
            invokevirtual java.util.Optional.orElseGet:(Ljava/util/function/Supplier;)Ljava/lang/Object;
            checkcast reactor.core.publisher.Mono
         2: .line 243
            areturn
        end local 3 // java.util.Map hints
        end local 2 // org.springframework.http.ReactiveHttpOutputMessage message
        end local 1 // org.springframework.core.io.support.ResourceRegion region
        end local 0 // org.springframework.http.codec.ResourceHttpMessageWriter this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lorg/springframework/http/codec/ResourceHttpMessageWriter;
            0    3     1   region  Lorg/springframework/core/io/support/ResourceRegion;
            0    3     2  message  Lorg/springframework/http/ReactiveHttpOutputMessage;
            0    3     3    hints  Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
    Signature: (Lorg/springframework/core/io/support/ResourceRegion;Lorg/springframework/http/ReactiveHttpOutputMessage;Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;)Lreactor/core/publisher/Mono<Ljava/lang/Void;>;
    MethodParameters:
         Name  Flags
      region   
      message  
      hints    

  private reactor.core.publisher.Mono<java.lang.Void> encodeAndWriteRegions(org.reactivestreams.Publisher<? extends org.springframework.core.io.support.ResourceRegion>, org.springframework.http.MediaType, org.springframework.http.ReactiveHttpOutputMessage, java.util.Map<java.lang.String, java.lang.Object>);
    descriptor: (Lorg/reactivestreams/Publisher;Lorg/springframework/http/MediaType;Lorg/springframework/http/ReactiveHttpOutputMessage;Ljava/util/Map;)Lreactor/core/publisher/Mono;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=6, args_size=5
        start local 0 // org.springframework.http.codec.ResourceHttpMessageWriter this
        start local 1 // org.reactivestreams.Publisher publisher
        start local 2 // org.springframework.http.MediaType mediaType
        start local 3 // org.springframework.http.ReactiveHttpOutputMessage message
        start local 4 // java.util.Map hints
         0: .line 254
            aload 0 /* this */
            getfield org.springframework.http.codec.ResourceHttpMessageWriter.regionEncoder:Lorg/springframework/core/codec/ResourceRegionEncoder;
         1: .line 255
            aload 1 /* publisher */
            aload 3 /* message */
            invokeinterface org.springframework.http.ReactiveHttpOutputMessage.bufferFactory:()Lorg/springframework/core/io/buffer/DataBufferFactory;
            getstatic org.springframework.http.codec.ResourceHttpMessageWriter.REGION_TYPE:Lorg/springframework/core/ResolvableType;
            aload 2 /* mediaType */
            aload 4 /* hints */
         2: .line 254
            invokevirtual org.springframework.core.codec.ResourceRegionEncoder.encode:(Lorg/reactivestreams/Publisher;Lorg/springframework/core/io/buffer/DataBufferFactory;Lorg/springframework/core/ResolvableType;Lorg/springframework/util/MimeType;Ljava/util/Map;)Lreactor/core/publisher/Flux;
            astore 5 /* body */
        start local 5 // reactor.core.publisher.Flux body
         3: .line 257
            aload 3 /* message */
            aload 5 /* body */
            invokeinterface org.springframework.http.ReactiveHttpOutputMessage.writeWith:(Lorg/reactivestreams/Publisher;)Lreactor/core/publisher/Mono;
            areturn
        end local 5 // reactor.core.publisher.Flux body
        end local 4 // java.util.Map hints
        end local 3 // org.springframework.http.ReactiveHttpOutputMessage message
        end local 2 // org.springframework.http.MediaType mediaType
        end local 1 // org.reactivestreams.Publisher publisher
        end local 0 // org.springframework.http.codec.ResourceHttpMessageWriter this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0       this  Lorg/springframework/http/codec/ResourceHttpMessageWriter;
            0    4     1  publisher  Lorg/reactivestreams/Publisher<+Lorg/springframework/core/io/support/ResourceRegion;>;
            0    4     2  mediaType  Lorg/springframework/http/MediaType;
            0    4     3    message  Lorg/springframework/http/ReactiveHttpOutputMessage;
            0    4     4      hints  Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
            3    4     5       body  Lreactor/core/publisher/Flux<Lorg/springframework/core/io/buffer/DataBuffer;>;
    Signature: (Lorg/reactivestreams/Publisher<+Lorg/springframework/core/io/support/ResourceRegion;>;Lorg/springframework/http/MediaType;Lorg/springframework/http/ReactiveHttpOutputMessage;Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;)Lreactor/core/publisher/Mono<Ljava/lang/Void;>;
    RuntimeVisibleParameterAnnotations: 
      0:
      1:
        org.springframework.lang.Nullable()
      2:
      3:
    MethodParameters:
           Name  Flags
      publisher  
      mediaType  
      message    
      hints      

  private reactor.core.publisher.Mono lambda$0(org.springframework.core.ResolvableType, org.springframework.http.MediaType, org.springframework.http.ReactiveHttpOutputMessage, java.util.Map, org.springframework.core.io.Resource);
    descriptor: (Lorg/springframework/core/ResolvableType;Lorg/springframework/http/MediaType;Lorg/springframework/http/ReactiveHttpOutputMessage;Ljava/util/Map;Lorg/springframework/core/io/Resource;)Lreactor/core/publisher/Mono;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=6, locals=6, args_size=6
        start local 0 // org.springframework.http.codec.ResourceHttpMessageWriter this
        start local 5 // org.springframework.core.io.Resource resource
         0: .line 114
            aload 0 /* this */
            aload 5 /* resource */
            aload 1
            aload 2
            aload 3
            aload 4
            invokevirtual org.springframework.http.codec.ResourceHttpMessageWriter.writeResource:(Lorg/springframework/core/io/Resource;Lorg/springframework/core/ResolvableType;Lorg/springframework/http/MediaType;Lorg/springframework/http/ReactiveHttpOutputMessage;Ljava/util/Map;)Lreactor/core/publisher/Mono;
            areturn
        end local 5 // org.springframework.core.io.Resource resource
        end local 0 // org.springframework.http.codec.ResourceHttpMessageWriter this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lorg/springframework/http/codec/ResourceHttpMessageWriter;
            0    1     5  resource  Lorg/springframework/core/io/Resource;

  private reactor.core.publisher.Mono lambda$1(org.springframework.core.io.Resource, org.springframework.http.ReactiveHttpOutputMessage, org.springframework.core.ResolvableType, org.springframework.http.MediaType, java.util.Map);
    descriptor: (Lorg/springframework/core/io/Resource;Lorg/springframework/http/ReactiveHttpOutputMessage;Lorg/springframework/core/ResolvableType;Lorg/springframework/http/MediaType;Ljava/util/Map;)Lreactor/core/publisher/Mono;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=6, locals=9, args_size=6
        start local 0 // org.springframework.http.codec.ResourceHttpMessageWriter this
         0: .line 133
            aload 1
            invokestatic reactor.core.publisher.Mono.just:(Ljava/lang/Object;)Lreactor/core/publisher/Mono;
            astore 6 /* input */
        start local 6 // reactor.core.publisher.Mono input
         1: .line 134
            aload 2
            invokeinterface org.springframework.http.ReactiveHttpOutputMessage.bufferFactory:()Lorg/springframework/core/io/buffer/DataBufferFactory;
            astore 7 /* factory */
        start local 7 // org.springframework.core.io.buffer.DataBufferFactory factory
         2: .line 135
            aload 0 /* this */
            getfield org.springframework.http.codec.ResourceHttpMessageWriter.encoder:Lorg/springframework/core/codec/ResourceEncoder;
            aload 6 /* input */
            aload 7 /* factory */
            aload 3
            aload 4
            aload 5
            invokevirtual org.springframework.core.codec.ResourceEncoder.encode:(Lorg/reactivestreams/Publisher;Lorg/springframework/core/io/buffer/DataBufferFactory;Lorg/springframework/core/ResolvableType;Lorg/springframework/util/MimeType;Ljava/util/Map;)Lreactor/core/publisher/Flux;
            astore 8 /* body */
        start local 8 // reactor.core.publisher.Flux body
         3: .line 136
            aload 2
            aload 8 /* body */
            invokeinterface org.springframework.http.ReactiveHttpOutputMessage.writeWith:(Lorg/reactivestreams/Publisher;)Lreactor/core/publisher/Mono;
            areturn
        end local 8 // reactor.core.publisher.Flux body
        end local 7 // org.springframework.core.io.buffer.DataBufferFactory factory
        end local 6 // reactor.core.publisher.Mono input
        end local 0 // org.springframework.http.codec.ResourceHttpMessageWriter this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Lorg/springframework/http/codec/ResourceHttpMessageWriter;
            1    4     6    input  Lreactor/core/publisher/Mono<Lorg/springframework/core/io/Resource;>;
            2    4     7  factory  Lorg/springframework/core/io/buffer/DataBufferFactory;
            3    4     8     body  Lreactor/core/publisher/Flux<Lorg/springframework/core/io/buffer/DataBuffer;>;

  private reactor.core.publisher.Mono lambda$2(java.util.List, org.springframework.core.ResolvableType, org.springframework.http.MediaType, org.springframework.http.server.reactive.ServerHttpResponse, java.util.Map, org.springframework.http.HttpHeaders, org.springframework.core.io.Resource);
    descriptor: (Ljava/util/List;Lorg/springframework/core/ResolvableType;Lorg/springframework/http/MediaType;Lorg/springframework/http/server/reactive/ServerHttpResponse;Ljava/util/Map;Lorg/springframework/http/HttpHeaders;Lorg/springframework/core/io/Resource;)Lreactor/core/publisher/Mono;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=6, locals=17, args_size=8
        start local 0 // org.springframework.http.codec.ResourceHttpMessageWriter this
        start local 7 // org.springframework.core.io.Resource resource
         0: .line 209
            aload 1
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 2
         1: .line 210
            aload 0 /* this */
            aload 7 /* resource */
            aload 2
            aload 3
            aload 4
            aload 5
            invokevirtual org.springframework.http.codec.ResourceHttpMessageWriter.writeResource:(Lorg/springframework/core/io/Resource;Lorg/springframework/core/ResolvableType;Lorg/springframework/http/MediaType;Lorg/springframework/http/ReactiveHttpOutputMessage;Ljava/util/Map;)Lreactor/core/publisher/Mono;
            areturn
         2: .line 213
      StackMap locals:
      StackMap stack:
            aload 4
            getstatic org.springframework.http.HttpStatus.PARTIAL_CONTENT:Lorg/springframework/http/HttpStatus;
            invokeinterface org.springframework.http.server.reactive.ServerHttpResponse.setStatusCode:(Lorg/springframework/http/HttpStatus;)Z
            pop
         3: .line 214
            aload 1
            aload 7 /* resource */
            invokestatic org.springframework.http.HttpRange.toResourceRegions:(Ljava/util/List;Lorg/springframework/core/io/Resource;)Ljava/util/List;
            astore 8 /* regions */
        start local 8 // java.util.List regions
         4: .line 215
            aload 3
            aload 7 /* resource */
            aload 5
            invokestatic org.springframework.http.codec.ResourceHttpMessageWriter.getResourceMediaType:(Lorg/springframework/http/MediaType;Lorg/springframework/core/io/Resource;Ljava/util/Map;)Lorg/springframework/http/MediaType;
            astore 9 /* resourceMediaType */
        start local 9 // org.springframework.http.MediaType resourceMediaType
         5: .line 217
            aload 8 /* regions */
            invokeinterface java.util.List.size:()I
            iconst_1
            if_icmpne 16
         6: .line 218
            aload 8 /* regions */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast org.springframework.core.io.support.ResourceRegion
            astore 10 /* region */
        start local 10 // org.springframework.core.io.support.ResourceRegion region
         7: .line 219
            aload 6
            aload 9 /* resourceMediaType */
            invokevirtual org.springframework.http.HttpHeaders.setContentType:(Lorg/springframework/http/MediaType;)V
         8: .line 220
            aload 7 /* resource */
            invokestatic org.springframework.http.codec.ResourceHttpMessageWriter.lengthOf:(Lorg/springframework/core/io/Resource;)J
            lstore 11 /* contentLength */
        start local 11 // long contentLength
         9: .line 221
            lload 11 /* contentLength */
            ldc -1
            lcmp
            ifeq 15
        10: .line 222
            aload 10 /* region */
            invokevirtual org.springframework.core.io.support.ResourceRegion.getPosition:()J
            lstore 13 /* start */
        start local 13 // long start
        11: .line 223
            lload 13 /* start */
            aload 10 /* region */
            invokevirtual org.springframework.core.io.support.ResourceRegion.getCount:()J
            ladd
            lconst_1
            lsub
            lstore 15 /* end */
        start local 15 // long end
        12: .line 224
            lload 15 /* end */
            lload 11 /* contentLength */
            lconst_1
            lsub
            invokestatic java.lang.Math.min:(JJ)J
            lstore 15 /* end */
        13: .line 225
            aload 6
            ldc "Content-Range"
            new java.lang.StringBuilder
            dup
            ldc "bytes "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            lload 13 /* start */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            bipush 45
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            lload 15 /* end */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            bipush 47
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            lload 11 /* contentLength */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.springframework.http.HttpHeaders.add:(Ljava/lang/String;Ljava/lang/String;)V
        14: .line 226
            aload 6
            lload 15 /* end */
            lload 13 /* start */
            lsub
            lconst_1
            ladd
            invokevirtual org.springframework.http.HttpHeaders.setContentLength:(J)V
        end local 15 // long end
        end local 13 // long start
        15: .line 228
      StackMap locals: org.springframework.http.codec.ResourceHttpMessageWriter java.util.List org.springframework.core.ResolvableType org.springframework.http.MediaType org.springframework.http.server.reactive.ServerHttpResponse java.util.Map org.springframework.http.HttpHeaders org.springframework.core.io.Resource java.util.List org.springframework.http.MediaType org.springframework.core.io.support.ResourceRegion long
      StackMap stack:
            aload 0 /* this */
            aload 10 /* region */
            aload 4
            aload 5
            invokevirtual org.springframework.http.codec.ResourceHttpMessageWriter.writeSingleRegion:(Lorg/springframework/core/io/support/ResourceRegion;Lorg/springframework/http/ReactiveHttpOutputMessage;Ljava/util/Map;)Lreactor/core/publisher/Mono;
            areturn
        end local 11 // long contentLength
        end local 10 // org.springframework.core.io.support.ResourceRegion region
        16: .line 231
      StackMap locals:
      StackMap stack:
            invokestatic org.springframework.util.MimeTypeUtils.generateMultipartBoundaryString:()Ljava/lang/String;
            astore 10 /* boundary */
        start local 10 // java.lang.String boundary
        17: .line 232
            new java.lang.StringBuilder
            dup
            ldc "multipart/byteranges;boundary="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 10 /* boundary */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic org.springframework.http.MediaType.parseMediaType:(Ljava/lang/String;)Lorg/springframework/http/MediaType;
            astore 11 /* multipartType */
        start local 11 // org.springframework.http.MediaType multipartType
        18: .line 233
            aload 6
            aload 11 /* multipartType */
            invokevirtual org.springframework.http.HttpHeaders.setContentType:(Lorg/springframework/http/MediaType;)V
        19: .line 234
            aload 5
            getstatic org.springframework.core.codec.ResourceRegionEncoder.BOUNDARY_STRING_HINT:Ljava/lang/String;
            aload 10 /* boundary */
            invokestatic org.springframework.core.codec.Hints.merge:(Ljava/util/Map;Ljava/lang/String;Ljava/lang/Object;)Ljava/util/Map;
            astore 12 /* allHints */
        start local 12 // java.util.Map allHints
        20: .line 235
            aload 0 /* this */
            aload 8 /* regions */
            invokestatic reactor.core.publisher.Flux.fromIterable:(Ljava/lang/Iterable;)Lreactor/core/publisher/Flux;
            aload 9 /* resourceMediaType */
            aload 4
            aload 12 /* allHints */
            invokevirtual org.springframework.http.codec.ResourceHttpMessageWriter.encodeAndWriteRegions:(Lorg/reactivestreams/Publisher;Lorg/springframework/http/MediaType;Lorg/springframework/http/ReactiveHttpOutputMessage;Ljava/util/Map;)Lreactor/core/publisher/Mono;
            areturn
        end local 12 // java.util.Map allHints
        end local 11 // org.springframework.http.MediaType multipartType
        end local 10 // java.lang.String boundary
        end local 9 // org.springframework.http.MediaType resourceMediaType
        end local 8 // java.util.List regions
        end local 7 // org.springframework.core.io.Resource resource
        end local 0 // org.springframework.http.codec.ResourceHttpMessageWriter this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   21     0               this  Lorg/springframework/http/codec/ResourceHttpMessageWriter;
            0   21     7           resource  Lorg/springframework/core/io/Resource;
            4   21     8            regions  Ljava/util/List<Lorg/springframework/core/io/support/ResourceRegion;>;
            5   21     9  resourceMediaType  Lorg/springframework/http/MediaType;
            7   16    10             region  Lorg/springframework/core/io/support/ResourceRegion;
            9   16    11      contentLength  J
           11   15    13              start  J
           12   15    15                end  J
           17   21    10           boundary  Ljava/lang/String;
           18   21    11      multipartType  Lorg/springframework/http/MediaType;
           20   21    12           allHints  Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;

  private reactor.core.publisher.Mono lambda$3(org.springframework.core.io.support.ResourceRegion, org.springframework.http.ReactiveHttpOutputMessage, java.util.Map);
    descriptor: (Lorg/springframework/core/io/support/ResourceRegion;Lorg/springframework/http/ReactiveHttpOutputMessage;Ljava/util/Map;)Lreactor/core/publisher/Mono;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=5, locals=6, args_size=4
        start local 0 // org.springframework.http.codec.ResourceHttpMessageWriter this
         0: .line 245
            aload 1
            invokestatic reactor.core.publisher.Mono.just:(Ljava/lang/Object;)Lreactor/core/publisher/Mono;
            astore 4 /* input */
        start local 4 // org.reactivestreams.Publisher input
         1: .line 246
            aload 2
            invokeinterface org.springframework.http.ReactiveHttpOutputMessage.getHeaders:()Lorg/springframework/http/HttpHeaders;
            invokevirtual org.springframework.http.HttpHeaders.getContentType:()Lorg/springframework/http/MediaType;
            astore 5 /* mediaType */
        start local 5 // org.springframework.http.MediaType mediaType
         2: .line 247
            aload 0 /* this */
            aload 4 /* input */
            aload 5 /* mediaType */
            aload 2
            aload 3
            invokevirtual org.springframework.http.codec.ResourceHttpMessageWriter.encodeAndWriteRegions:(Lorg/reactivestreams/Publisher;Lorg/springframework/http/MediaType;Lorg/springframework/http/ReactiveHttpOutputMessage;Ljava/util/Map;)Lreactor/core/publisher/Mono;
            areturn
        end local 5 // org.springframework.http.MediaType mediaType
        end local 4 // org.reactivestreams.Publisher input
        end local 0 // org.springframework.http.codec.ResourceHttpMessageWriter this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0       this  Lorg/springframework/http/codec/ResourceHttpMessageWriter;
            1    3     4      input  Lorg/reactivestreams/Publisher<+Lorg/springframework/core/io/support/ResourceRegion;>;
            2    3     5  mediaType  Lorg/springframework/http/MediaType;
}
Signature: Ljava/lang/Object;Lorg/springframework/http/codec/HttpMessageWriter<Lorg/springframework/core/io/Resource;>;
SourceFile: "ResourceHttpMessageWriter.java"
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles