public abstract class org.springframework.util.CollectionUtils
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: org.springframework.util.CollectionUtils
  super_class: java.lang.Object
{
  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.util.CollectionUtils this
         0: .line 45
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // org.springframework.util.CollectionUtils this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/util/CollectionUtils;

  public static boolean isEmpty(java.util.Collection<?>);
    descriptor: (Ljava/util/Collection;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.util.Collection collection
         0: .line 54
            aload 0 /* collection */
            ifnull 1
            aload 0 /* collection */
            invokeinterface java.util.Collection.isEmpty:()Z
            ifne 1
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_1
            ireturn
        end local 0 // java.util.Collection collection
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0  collection  Ljava/util/Collection<*>;
    Signature: (Ljava/util/Collection<*>;)Z
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
    MethodParameters:
            Name  Flags
      collection  

  public static boolean isEmpty(java.util.Map<?, ?>);
    descriptor: (Ljava/util/Map;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.util.Map map
         0: .line 64
            aload 0 /* map */
            ifnull 1
            aload 0 /* map */
            invokeinterface java.util.Map.isEmpty:()Z
            ifne 1
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_1
            ireturn
        end local 0 // java.util.Map map
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0   map  Ljava/util/Map<**>;
    Signature: (Ljava/util/Map<**>;)Z
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
    MethodParameters:
      Name  Flags
      map   

  public static java.util.List arrayToList(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/util/List;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.Object source
         0: .line 81
            aload 0 /* source */
            invokestatic org.springframework.util.ObjectUtils.toObjectArray:(Ljava/lang/Object;)[Ljava/lang/Object;
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            areturn
        end local 0 // java.lang.Object source
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0  source  Ljava/lang/Object;
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
    MethodParameters:
        Name  Flags
      source  

  public static <E> void mergeArrayIntoCollection(, java.util.Collection<E>);
    descriptor: (Ljava/lang/Object;Ljava/util/Collection;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=7, args_size=2
        start local 0 // java.lang.Object array
        start local 1 // java.util.Collection collection
         0: .line 91
            aload 0 /* array */
            invokestatic org.springframework.util.ObjectUtils.toObjectArray:(Ljava/lang/Object;)[Ljava/lang/Object;
            astore 2 /* arr */
        start local 2 // java.lang.Object[] arr
         1: .line 92
            aload 2 /* arr */
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 5
      StackMap locals: java.lang.Object java.util.Collection java.lang.Object[] top int int java.lang.Object[]
      StackMap stack:
         2: aload 6
            iload 4
            aaload
            astore 3 /* elem */
        start local 3 // java.lang.Object elem
         3: .line 93
            aload 1 /* collection */
            aload 3 /* elem */
            invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
            pop
        end local 3 // java.lang.Object elem
         4: .line 92
            iinc 4 1
      StackMap locals:
      StackMap stack:
         5: iload 4
            iload 5
            if_icmplt 2
         6: .line 95
            return
        end local 2 // java.lang.Object[] arr
        end local 1 // java.util.Collection collection
        end local 0 // java.lang.Object array
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    7     0       array  Ljava/lang/Object;
            0    7     1  collection  Ljava/util/Collection<TE;>;
            1    7     2         arr  [Ljava/lang/Object;
            3    4     3        elem  Ljava/lang/Object;
    Signature: <E:Ljava/lang/Object;>(Ljava/lang/Object;Ljava/util/Collection<TE;>;)V
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
      1:
    MethodParameters:
            Name  Flags
      array       
      collection  

  public static <K, V> void mergePropertiesIntoMap(java.util.Properties, java.util.Map<K, V>);
    descriptor: (Ljava/util/Properties;Ljava/util/Map;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // java.util.Properties props
        start local 1 // java.util.Map map
         0: .line 107
            aload 0 /* props */
            ifnull 9
         1: .line 108
            aload 0 /* props */
            invokevirtual java.util.Properties.propertyNames:()Ljava/util/Enumeration;
            astore 2 /* en */
        start local 2 // java.util.Enumeration en
         2: goto 8
         3: .line 109
      StackMap locals: java.util.Enumeration
      StackMap stack:
            aload 2 /* en */
            invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 3 /* key */
        start local 3 // java.lang.String key
         4: .line 110
            aload 0 /* props */
            aload 3 /* key */
            invokevirtual java.util.Properties.get:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 4 /* value */
        start local 4 // java.lang.Object value
         5: .line 111
            aload 4 /* value */
            ifnonnull 7
         6: .line 113
            aload 0 /* props */
            aload 3 /* key */
            invokevirtual java.util.Properties.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 4 /* value */
         7: .line 115
      StackMap locals: java.lang.String java.lang.Object
      StackMap stack:
            aload 1 /* map */
            aload 3 /* key */
            aload 4 /* value */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 4 // java.lang.Object value
        end local 3 // java.lang.String key
         8: .line 108
      StackMap locals:
      StackMap stack:
            aload 2 /* en */
            invokeinterface java.util.Enumeration.hasMoreElements:()Z
            ifne 3
        end local 2 // java.util.Enumeration en
         9: .line 118
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.util.Map map
        end local 0 // java.util.Properties props
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   10     0  props  Ljava/util/Properties;
            0   10     1    map  Ljava/util/Map<TK;TV;>;
            2    9     2     en  Ljava/util/Enumeration<*>;
            4    8     3    key  Ljava/lang/String;
            5    8     4  value  Ljava/lang/Object;
    Signature: <K:Ljava/lang/Object;V:Ljava/lang/Object;>(Ljava/util/Properties;Ljava/util/Map<TK;TV;>;)V
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
      1:
    MethodParameters:
       Name  Flags
      props  
      map    

  public static boolean contains(java.util.Iterator<?>, );
    descriptor: (Ljava/util/Iterator;Ljava/lang/Object;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // java.util.Iterator iterator
        start local 1 // java.lang.Object element
         0: .line 128
            aload 0 /* iterator */
            ifnull 6
         1: .line 129
            goto 5
         2: .line 130
      StackMap locals:
      StackMap stack:
            aload 0 /* iterator */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            astore 2 /* candidate */
        start local 2 // java.lang.Object candidate
         3: .line 131
            aload 2 /* candidate */
            aload 1 /* element */
            invokestatic org.springframework.util.ObjectUtils.nullSafeEquals:(Ljava/lang/Object;Ljava/lang/Object;)Z
            ifeq 5
         4: .line 132
            iconst_1
            ireturn
        end local 2 // java.lang.Object candidate
         5: .line 129
      StackMap locals:
      StackMap stack:
            aload 0 /* iterator */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         6: .line 136
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 1 // java.lang.Object element
        end local 0 // java.util.Iterator iterator
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    7     0   iterator  Ljava/util/Iterator<*>;
            0    7     1    element  Ljava/lang/Object;
            3    5     2  candidate  Ljava/lang/Object;
    Signature: (Ljava/util/Iterator<*>;Ljava/lang/Object;)Z
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
      1:
    MethodParameters:
          Name  Flags
      iterator  
      element   

  public static boolean contains(java.util.Enumeration<?>, );
    descriptor: (Ljava/util/Enumeration;Ljava/lang/Object;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // java.util.Enumeration enumeration
        start local 1 // java.lang.Object element
         0: .line 146
            aload 0 /* enumeration */
            ifnull 6
         1: .line 147
            goto 5
         2: .line 148
      StackMap locals:
      StackMap stack:
            aload 0 /* enumeration */
            invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
            astore 2 /* candidate */
        start local 2 // java.lang.Object candidate
         3: .line 149
            aload 2 /* candidate */
            aload 1 /* element */
            invokestatic org.springframework.util.ObjectUtils.nullSafeEquals:(Ljava/lang/Object;Ljava/lang/Object;)Z
            ifeq 5
         4: .line 150
            iconst_1
            ireturn
        end local 2 // java.lang.Object candidate
         5: .line 147
      StackMap locals:
      StackMap stack:
            aload 0 /* enumeration */
            invokeinterface java.util.Enumeration.hasMoreElements:()Z
            ifne 2
         6: .line 154
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 1 // java.lang.Object element
        end local 0 // java.util.Enumeration enumeration
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    7     0  enumeration  Ljava/util/Enumeration<*>;
            0    7     1      element  Ljava/lang/Object;
            3    5     2    candidate  Ljava/lang/Object;
    Signature: (Ljava/util/Enumeration<*>;Ljava/lang/Object;)Z
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
      1:
    MethodParameters:
             Name  Flags
      enumeration  
      element      

  public static boolean containsInstance(java.util.Collection<?>, );
    descriptor: (Ljava/util/Collection;Ljava/lang/Object;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // java.util.Collection collection
        start local 1 // java.lang.Object element
         0: .line 166
            aload 0 /* collection */
            ifnull 6
         1: .line 167
            aload 0 /* collection */
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 3
            goto 5
      StackMap locals: java.util.Collection java.lang.Object top java.util.Iterator
      StackMap stack:
         2: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            astore 2 /* candidate */
        start local 2 // java.lang.Object candidate
         3: .line 168
            aload 2 /* candidate */
            aload 1 /* element */
            if_acmpne 5
         4: .line 169
            iconst_1
            ireturn
        end local 2 // java.lang.Object candidate
         5: .line 167
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         6: .line 173
      StackMap locals: java.util.Collection java.lang.Object
      StackMap stack:
            iconst_0
            ireturn
        end local 1 // java.lang.Object element
        end local 0 // java.util.Collection collection
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    7     0  collection  Ljava/util/Collection<*>;
            0    7     1     element  Ljava/lang/Object;
            3    5     2   candidate  Ljava/lang/Object;
    Signature: (Ljava/util/Collection<*>;Ljava/lang/Object;)Z
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
      1:
    MethodParameters:
            Name  Flags
      collection  
      element     

  public static boolean containsAny(java.util.Collection<?>, java.util.Collection<?>);
    descriptor: (Ljava/util/Collection;Ljava/util/Collection;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // java.util.Collection source
        start local 1 // java.util.Collection candidates
         0: .line 184
            aload 0 /* source */
            invokestatic org.springframework.util.CollectionUtils.isEmpty:(Ljava/util/Collection;)Z
            ifne 1
            aload 1 /* candidates */
            invokestatic org.springframework.util.CollectionUtils.isEmpty:(Ljava/util/Collection;)Z
            ifeq 2
         1: .line 185
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
         2: .line 187
      StackMap locals:
      StackMap stack:
            aload 1 /* candidates */
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 3
            goto 6
      StackMap locals: java.util.Collection java.util.Collection top java.util.Iterator
      StackMap stack:
         3: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            astore 2 /* candidate */
        start local 2 // java.lang.Object candidate
         4: .line 188
            aload 0 /* source */
            aload 2 /* candidate */
            invokeinterface java.util.Collection.contains:(Ljava/lang/Object;)Z
            ifeq 6
         5: .line 189
            iconst_1
            ireturn
        end local 2 // java.lang.Object candidate
         6: .line 187
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
         7: .line 192
            iconst_0
            ireturn
        end local 1 // java.util.Collection candidates
        end local 0 // java.util.Collection source
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    8     0      source  Ljava/util/Collection<*>;
            0    8     1  candidates  Ljava/util/Collection<*>;
            4    6     2   candidate  Ljava/lang/Object;
    Signature: (Ljava/util/Collection<*>;Ljava/util/Collection<*>;)Z
    MethodParameters:
            Name  Flags
      source      
      candidates  

  public static <E> E findFirstMatch(java.util.Collection<?>, java.util.Collection<E>);
    descriptor: (Ljava/util/Collection;Ljava/util/Collection;)Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // java.util.Collection source
        start local 1 // java.util.Collection candidates
         0: .line 207
            aload 0 /* source */
            invokestatic org.springframework.util.CollectionUtils.isEmpty:(Ljava/util/Collection;)Z
            ifne 1
            aload 1 /* candidates */
            invokestatic org.springframework.util.CollectionUtils.isEmpty:(Ljava/util/Collection;)Z
            ifeq 2
         1: .line 208
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
         2: .line 210
      StackMap locals:
      StackMap stack:
            aload 1 /* candidates */
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 3
            goto 6
      StackMap locals: java.util.Collection java.util.Collection top java.util.Iterator
      StackMap stack:
         3: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            astore 2 /* candidate */
        start local 2 // java.lang.Object candidate
         4: .line 211
            aload 0 /* source */
            aload 2 /* candidate */
            invokeinterface java.util.Collection.contains:(Ljava/lang/Object;)Z
            ifeq 6
         5: .line 212
            aload 2 /* candidate */
            areturn
        end local 2 // java.lang.Object candidate
         6: .line 210
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
         7: .line 215
            aconst_null
            areturn
        end local 1 // java.util.Collection candidates
        end local 0 // java.util.Collection source
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    8     0      source  Ljava/util/Collection<*>;
            0    8     1  candidates  Ljava/util/Collection<TE;>;
            4    6     2   candidate  Ljava/lang/Object;
    Signature: <E:Ljava/lang/Object;>(Ljava/util/Collection<*>;Ljava/util/Collection<TE;>;)TE;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()
    MethodParameters:
            Name  Flags
      source      
      candidates  

  public static <T> T findValueOfType(java.util.Collection<?>, java.lang.Class<T>);
    descriptor: (Ljava/util/Collection;Ljava/lang/Class;)Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=5, args_size=2
        start local 0 // java.util.Collection collection
        start local 1 // java.lang.Class type
         0: .line 228
            aload 0 /* collection */
            invokestatic org.springframework.util.CollectionUtils.isEmpty:(Ljava/util/Collection;)Z
            ifeq 2
         1: .line 229
            aconst_null
            areturn
         2: .line 231
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 2 /* value */
        start local 2 // java.lang.Object value
         3: .line 232
            aload 0 /* collection */
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 4
            goto 9
      StackMap locals: java.util.Collection java.lang.Class java.lang.Object top java.util.Iterator
      StackMap stack:
         4: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            astore 3 /* element */
        start local 3 // java.lang.Object element
         5: .line 233
            aload 1 /* type */
            ifnull 6
            aload 1 /* type */
            aload 3 /* element */
            invokevirtual java.lang.Class.isInstance:(Ljava/lang/Object;)Z
            ifeq 9
         6: .line 234
      StackMap locals: java.util.Collection java.lang.Class java.lang.Object java.lang.Object java.util.Iterator
      StackMap stack:
            aload 2 /* value */
            ifnull 8
         7: .line 236
            aconst_null
            areturn
         8: .line 238
      StackMap locals:
      StackMap stack:
            aload 3 /* element */
            astore 2 /* value */
        end local 3 // java.lang.Object element
         9: .line 232
      StackMap locals: java.util.Collection java.lang.Class java.lang.Object top java.util.Iterator
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
        10: .line 241
            aload 2 /* value */
            areturn
        end local 2 // java.lang.Object value
        end local 1 // java.lang.Class type
        end local 0 // java.util.Collection collection
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   11     0  collection  Ljava/util/Collection<*>;
            0   11     1        type  Ljava/lang/Class<TT;>;
            3   11     2       value  TT;
            5    9     3     element  Ljava/lang/Object;
    Signature: <T:Ljava/lang/Object;>(Ljava/util/Collection<*>;Ljava/lang/Class<TT;>;)TT;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()
    RuntimeVisibleParameterAnnotations: 
      0:
      1:
        org.springframework.lang.Nullable()
    MethodParameters:
            Name  Flags
      collection  
      type        

  public static  findValueOfType(java.util.Collection<?>, java.lang.Class<?>[]);
    descriptor: (Ljava/util/Collection;[Ljava/lang/Class;)Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=7, args_size=2
        start local 0 // java.util.Collection collection
        start local 1 // java.lang.Class[] types
         0: .line 255
            aload 0 /* collection */
            invokestatic org.springframework.util.CollectionUtils.isEmpty:(Ljava/util/Collection;)Z
            ifne 1
            aload 1 /* types */
            invokestatic org.springframework.util.ObjectUtils.isEmpty:([Ljava/lang/Object;)Z
            ifeq 2
         1: .line 256
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
         2: .line 258
      StackMap locals:
      StackMap stack:
            aload 1 /* types */
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 8
      StackMap locals: java.util.Collection java.lang.Class[] top int int java.lang.Class[]
      StackMap stack:
         3: aload 5
            iload 3
            aaload
            astore 2 /* type */
        start local 2 // java.lang.Class type
         4: .line 259
            aload 0 /* collection */
            aload 2 /* type */
            invokestatic org.springframework.util.CollectionUtils.findValueOfType:(Ljava/util/Collection;Ljava/lang/Class;)Ljava/lang/Object;
            astore 6 /* value */
        start local 6 // java.lang.Object value
         5: .line 260
            aload 6 /* value */
            ifnull 7
         6: .line 261
            aload 6 /* value */
            areturn
        end local 6 // java.lang.Object value
        end local 2 // java.lang.Class type
         7: .line 258
      StackMap locals:
      StackMap stack:
            iinc 3 1
      StackMap locals:
      StackMap stack:
         8: iload 3
            iload 4
            if_icmplt 3
         9: .line 264
            aconst_null
            areturn
        end local 1 // java.lang.Class[] types
        end local 0 // java.util.Collection collection
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   10     0  collection  Ljava/util/Collection<*>;
            0   10     1       types  [Ljava/lang/Class;
            4    7     2        type  Ljava/lang/Class<*>;
            5    7     6       value  Ljava/lang/Object;
    Signature: (Ljava/util/Collection<*>;[Ljava/lang/Class<*>;)Ljava/lang/Object;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()
    MethodParameters:
            Name  Flags
      collection  
      types       

  public static boolean hasUniqueObject(java.util.Collection<?>);
    descriptor: (Ljava/util/Collection;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=5, args_size=1
        start local 0 // java.util.Collection collection
         0: .line 274
            aload 0 /* collection */
            invokestatic org.springframework.util.CollectionUtils.isEmpty:(Ljava/util/Collection;)Z
            ifeq 2
         1: .line 275
            iconst_0
            ireturn
         2: .line 277
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 1 /* hasCandidate */
        start local 1 // boolean hasCandidate
         3: .line 278
            aconst_null
            astore 2 /* candidate */
        start local 2 // java.lang.Object candidate
         4: .line 279
            aload 0 /* collection */
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 4
            goto 12
      StackMap locals: java.util.Collection int java.lang.Object top java.util.Iterator
      StackMap stack:
         5: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            astore 3 /* elem */
        start local 3 // java.lang.Object elem
         6: .line 280
            iload 1 /* hasCandidate */
            ifne 10
         7: .line 281
            iconst_1
            istore 1 /* hasCandidate */
         8: .line 282
            aload 3 /* elem */
            astore 2 /* candidate */
         9: .line 283
            goto 12
        10: .line 284
      StackMap locals: java.util.Collection int java.lang.Object java.lang.Object java.util.Iterator
      StackMap stack:
            aload 2 /* candidate */
            aload 3 /* elem */
            if_acmpeq 12
        11: .line 285
            iconst_0
            ireturn
        end local 3 // java.lang.Object elem
        12: .line 279
      StackMap locals: java.util.Collection int java.lang.Object top java.util.Iterator
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
        13: .line 288
            iconst_1
            ireturn
        end local 2 // java.lang.Object candidate
        end local 1 // boolean hasCandidate
        end local 0 // java.util.Collection collection
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   14     0    collection  Ljava/util/Collection<*>;
            3   14     1  hasCandidate  Z
            4   14     2     candidate  Ljava/lang/Object;
            6   12     3          elem  Ljava/lang/Object;
    Signature: (Ljava/util/Collection<*>;)Z
    MethodParameters:
            Name  Flags
      collection  

  public static java.lang.Class<?> findCommonElementType(java.util.Collection<?>);
    descriptor: (Ljava/util/Collection;)Ljava/lang/Class;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=4, args_size=1
        start local 0 // java.util.Collection collection
         0: .line 299
            aload 0 /* collection */
            invokestatic org.springframework.util.CollectionUtils.isEmpty:(Ljava/util/Collection;)Z
            ifeq 2
         1: .line 300
            aconst_null
            areturn
         2: .line 302
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 1 /* candidate */
        start local 1 // java.lang.Class candidate
         3: .line 303
            aload 0 /* collection */
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 3
            goto 11
      StackMap locals: java.util.Collection java.lang.Class top java.util.Iterator
      StackMap stack:
         4: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            astore 2 /* val */
        start local 2 // java.lang.Object val
         5: .line 304
            aload 2 /* val */
            ifnull 11
         6: .line 305
            aload 1 /* candidate */
            ifnonnull 9
         7: .line 306
            aload 2 /* val */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            astore 1 /* candidate */
         8: .line 307
            goto 11
         9: .line 308
      StackMap locals: java.util.Collection java.lang.Class java.lang.Object java.util.Iterator
      StackMap stack:
            aload 1 /* candidate */
            aload 2 /* val */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            if_acmpeq 11
        10: .line 309
            aconst_null
            areturn
        end local 2 // java.lang.Object val
        11: .line 303
      StackMap locals: java.util.Collection java.lang.Class top java.util.Iterator
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
        12: .line 313
            aload 1 /* candidate */
            areturn
        end local 1 // java.lang.Class candidate
        end local 0 // java.util.Collection collection
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   13     0  collection  Ljava/util/Collection<*>;
            3   13     1   candidate  Ljava/lang/Class<*>;
            5   11     2         val  Ljava/lang/Object;
    Signature: (Ljava/util/Collection<*>;)Ljava/lang/Class<*>;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()
    MethodParameters:
            Name  Flags
      collection  

  public static <T> T lastElement(java.util.Set<T>);
    descriptor: (Ljava/util/Set;)Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=3, args_size=1
        start local 0 // java.util.Set set
         0: .line 328
            aload 0 /* set */
            invokestatic org.springframework.util.CollectionUtils.isEmpty:(Ljava/util/Collection;)Z
            ifeq 2
         1: .line 329
            aconst_null
            areturn
         2: .line 331
      StackMap locals:
      StackMap stack:
            aload 0 /* set */
            instanceof java.util.SortedSet
            ifeq 4
         3: .line 332
            aload 0 /* set */
            checkcast java.util.SortedSet
            invokeinterface java.util.SortedSet.last:()Ljava/lang/Object;
            areturn
         4: .line 336
      StackMap locals:
      StackMap stack:
            aload 0 /* set */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 1 /* it */
        start local 1 // java.util.Iterator it
         5: .line 337
            aconst_null
            astore 2 /* last */
        start local 2 // java.lang.Object last
         6: .line 338
            goto 8
         7: .line 339
      StackMap locals: java.util.Iterator java.lang.Object
      StackMap stack:
            aload 1 /* it */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            astore 2 /* last */
         8: .line 338
      StackMap locals:
      StackMap stack:
            aload 1 /* it */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 7
         9: .line 341
            aload 2 /* last */
            areturn
        end local 2 // java.lang.Object last
        end local 1 // java.util.Iterator it
        end local 0 // java.util.Set set
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0   set  Ljava/util/Set<TT;>;
            5   10     1    it  Ljava/util/Iterator<TT;>;
            6   10     2  last  TT;
    Signature: <T:Ljava/lang/Object;>(Ljava/util/Set<TT;>;)TT;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
    MethodParameters:
      Name  Flags
      set   

  public static <T> T lastElement(java.util.List<T>);
    descriptor: (Ljava/util/List;)Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.util.List list
         0: .line 352
            aload 0 /* list */
            invokestatic org.springframework.util.CollectionUtils.isEmpty:(Ljava/util/Collection;)Z
            ifeq 2
         1: .line 353
            aconst_null
            areturn
         2: .line 355
      StackMap locals:
      StackMap stack:
            aload 0 /* list */
            aload 0 /* list */
            invokeinterface java.util.List.size:()I
            iconst_1
            isub
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            areturn
        end local 0 // java.util.List list
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  list  Ljava/util/List<TT;>;
    Signature: <T:Ljava/lang/Object;>(Ljava/util/List<TT;>;)TT;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
    MethodParameters:
      Name  Flags
      list  

  public static <A, E extends A> A[] toArray(java.util.Enumeration<E>, );
    descriptor: (Ljava/util/Enumeration;[Ljava/lang/Object;)[Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // java.util.Enumeration enumeration
        start local 1 // java.lang.Object[] array
         0: .line 364
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 2 /* elements */
        start local 2 // java.util.ArrayList elements
         1: .line 365
            goto 3
         2: .line 366
      StackMap locals: java.util.ArrayList
      StackMap stack:
            aload 2 /* elements */
            aload 0 /* enumeration */
            invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
         3: .line 365
      StackMap locals:
      StackMap stack:
            aload 0 /* enumeration */
            invokeinterface java.util.Enumeration.hasMoreElements:()Z
            ifne 2
         4: .line 368
            aload 2 /* elements */
            aload 1 /* array */
            invokevirtual java.util.ArrayList.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            areturn
        end local 2 // java.util.ArrayList elements
        end local 1 // java.lang.Object[] array
        end local 0 // java.util.Enumeration enumeration
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    5     0  enumeration  Ljava/util/Enumeration<TE;>;
            0    5     1        array  [Ljava/lang/Object;
            1    5     2     elements  Ljava/util/ArrayList<TA;>;
    Signature: <A:Ljava/lang/Object;E:TA;>(Ljava/util/Enumeration<TE;>;[TA;)[TA;
    MethodParameters:
             Name  Flags
      enumeration  
      array        

  public static <E> java.util.Iterator<E> toIterator(java.util.Enumeration<E>);
    descriptor: (Ljava/util/Enumeration;)Ljava/util/Iterator;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.util.Enumeration enumeration
         0: .line 377
            new org.springframework.util.CollectionUtils$EnumerationIterator
            dup
            aload 0 /* enumeration */
            invokespecial org.springframework.util.CollectionUtils$EnumerationIterator.<init>:(Ljava/util/Enumeration;)V
            areturn
        end local 0 // java.util.Enumeration enumeration
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0  enumeration  Ljava/util/Enumeration<TE;>;
    Signature: <E:Ljava/lang/Object;>(Ljava/util/Enumeration<TE;>;)Ljava/util/Iterator<TE;>;
    MethodParameters:
             Name  Flags
      enumeration  

  public static <K, V> org.springframework.util.MultiValueMap<K, V> toMultiValueMap(java.util.Map<K, java.util.List<V>>);
    descriptor: (Ljava/util/Map;)Lorg/springframework/util/MultiValueMap;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.util.Map map
         0: .line 387
            new org.springframework.util.CollectionUtils$MultiValueMapAdapter
            dup
            aload 0 /* map */
            invokespecial org.springframework.util.CollectionUtils$MultiValueMapAdapter.<init>:(Ljava/util/Map;)V
            areturn
        end local 0 // java.util.Map map
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   map  Ljava/util/Map<TK;Ljava/util/List<TV;>;>;
    Signature: <K:Ljava/lang/Object;V:Ljava/lang/Object;>(Ljava/util/Map<TK;Ljava/util/List<TV;>;>;)Lorg/springframework/util/MultiValueMap<TK;TV;>;
    MethodParameters:
      Name  Flags
      map   

  public static <K, V> org.springframework.util.MultiValueMap<K, V> unmodifiableMultiValueMap(org.springframework.util.MultiValueMap<? extends K, ? extends V>);
    descriptor: (Lorg/springframework/util/MultiValueMap;)Lorg/springframework/util/MultiValueMap;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // org.springframework.util.MultiValueMap map
         0: .line 398
            aload 0 /* map */
            ldc "'map' must not be null"
            invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
         1: .line 399
            new java.util.LinkedHashMap
            dup
            aload 0 /* map */
            invokeinterface org.springframework.util.MultiValueMap.size:()I
            invokespecial java.util.LinkedHashMap.<init>:(I)V
            astore 1 /* result */
        start local 1 // java.util.Map result
         2: .line 400
            aload 0 /* map */
            aload 1 /* result */
            invokedynamic accept(Ljava/util/Map;)Ljava/util/function/BiConsumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;Ljava/lang/Object;)V
                  org/springframework/util/CollectionUtils.lambda$0(Ljava/util/Map;Ljava/lang/Object;Ljava/util/List;)V (6)
                  (Ljava/lang/Object;Ljava/util/List;)V
            invokeinterface org.springframework.util.MultiValueMap.forEach:(Ljava/util/function/BiConsumer;)V
         3: .line 404
            aload 1 /* result */
            invokestatic java.util.Collections.unmodifiableMap:(Ljava/util/Map;)Ljava/util/Map;
            astore 2 /* unmodifiableMap */
        start local 2 // java.util.Map unmodifiableMap
         4: .line 405
            aload 2 /* unmodifiableMap */
            invokestatic org.springframework.util.CollectionUtils.toMultiValueMap:(Ljava/util/Map;)Lorg/springframework/util/MultiValueMap;
            areturn
        end local 2 // java.util.Map unmodifiableMap
        end local 1 // java.util.Map result
        end local 0 // org.springframework.util.MultiValueMap map
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    5     0              map  Lorg/springframework/util/MultiValueMap<+TK;+TV;>;
            2    5     1           result  Ljava/util/Map<TK;Ljava/util/List<TV;>;>;
            4    5     2  unmodifiableMap  Ljava/util/Map<TK;Ljava/util/List<TV;>;>;
    Signature: <K:Ljava/lang/Object;V:Ljava/lang/Object;>(Lorg/springframework/util/MultiValueMap<+TK;+TV;>;)Lorg/springframework/util/MultiValueMap<TK;TV;>;
    MethodParameters:
      Name  Flags
      map   

  private static void lambda$0(java.util.Map, java.lang.Object, java.util.List);
    descriptor: (Ljava/util/Map;Ljava/lang/Object;Ljava/util/List;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=4, args_size=3
        start local 1 // java.lang.Object key
        start local 2 // java.util.List value
         0: .line 401
            aload 2 /* value */
            invokestatic java.util.Collections.unmodifiableList:(Ljava/util/List;)Ljava/util/List;
            astore 3 /* values */
        start local 3 // java.util.List values
         1: .line 402
            aload 0
            aload 1 /* key */
            aload 3 /* values */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 3 // java.util.List values
         2: .line 403
            return
        end local 2 // java.util.List value
        end local 1 // java.lang.Object key
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     1     key  Ljava/lang/Object;
            0    3     2   value  Ljava/util/List<Ljava/lang/Object;>;
            1    2     3  values  Ljava/util/List<+TV;>;
}
SourceFile: "CollectionUtils.java"
NestMembers:
  org.springframework.util.CollectionUtils$EnumerationIterator  org.springframework.util.CollectionUtils$MultiValueMapAdapter
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  private EnumerationIterator = org.springframework.util.CollectionUtils$EnumerationIterator of org.springframework.util.CollectionUtils
  private MultiValueMapAdapter = org.springframework.util.CollectionUtils$MultiValueMapAdapter of org.springframework.util.CollectionUtils