final class org.apache.cassandra.hints.HintsDescriptor
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: org.apache.cassandra.hints.HintsDescriptor
  super_class: java.lang.Object
{
  private static final org.slf4j.Logger logger;
    descriptor: Lorg/slf4j/Logger;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  static final int VERSION_30;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  static final int CURRENT_VERSION;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  static final java.lang.String COMPRESSION;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: "compression"

  static final java.lang.String ENCRYPTION;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: "encryption"

  static final java.util.regex.Pattern pattern;
    descriptor: Ljava/util/regex/Pattern;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  final java.util.UUID hostId;
    descriptor: Ljava/util/UUID;
    flags: (0x0010) ACC_FINAL

  final int version;
    descriptor: I
    flags: (0x0010) ACC_FINAL

  final long timestamp;
    descriptor: J
    flags: (0x0010) ACC_FINAL

  final com.google.common.collect.ImmutableMap<java.lang.String, java.lang.Object> parameters;
    descriptor: Lcom/google/common/collect/ImmutableMap;
    flags: (0x0010) ACC_FINAL
    Signature: Lcom/google/common/collect/ImmutableMap<Ljava/lang/String;Ljava/lang/Object;>;

  final org.apache.cassandra.config.ParameterizedClass compressionConfig;
    descriptor: Lorg/apache/cassandra/config/ParameterizedClass;
    flags: (0x0010) ACC_FINAL

  private final javax.crypto.Cipher cipher;
    descriptor: Ljavax/crypto/Cipher;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.apache.cassandra.io.compress.ICompressor compressor;
    descriptor: Lorg/apache/cassandra/io/compress/ICompressor;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 61
            ldc Lorg/apache/cassandra/hints/HintsDescriptor;
            invokestatic org.slf4j.LoggerFactory.getLogger:(Ljava/lang/Class;)Lorg/slf4j/Logger;
            putstatic org.apache.cassandra.hints.HintsDescriptor.logger:Lorg/slf4j/Logger;
         1: .line 70
            ldc "^[a-fA-F0-9]{8}\\-[a-fA-F0-9]{4}\\-[a-fA-F0-9]{4}\\-[a-fA-F0-9]{4}\\-[a-fA-F0-9]{12}\\-(\\d+)\\-(\\d+)\\.hints$"
            invokestatic java.util.regex.Pattern.compile:(Ljava/lang/String;)Ljava/util/regex/Pattern;
         2: .line 69
            putstatic org.apache.cassandra.hints.HintsDescriptor.pattern:Ljava/util/regex/Pattern;
         3: .line 70
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>(java.util.UUID, int, long, com.google.common.collect.ImmutableMap<java.lang.String, java.lang.Object>);
    descriptor: (Ljava/util/UUID;IJLcom/google/common/collect/ImmutableMap;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=7, args_size=5
        start local 0 // org.apache.cassandra.hints.HintsDescriptor this
        start local 1 // java.util.UUID hostId
        start local 2 // int version
        start local 3 // long timestamp
        start local 5 // com.google.common.collect.ImmutableMap parameters
         0: .line 82
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 84
            aload 0 /* this */
            aload 1 /* hostId */
            putfield org.apache.cassandra.hints.HintsDescriptor.hostId:Ljava/util/UUID;
         2: .line 85
            aload 0 /* this */
            iload 2 /* version */
            putfield org.apache.cassandra.hints.HintsDescriptor.version:I
         3: .line 86
            aload 0 /* this */
            lload 3 /* timestamp */
            putfield org.apache.cassandra.hints.HintsDescriptor.timestamp:J
         4: .line 87
            aload 0 /* this */
            aload 5 /* parameters */
            invokestatic org.apache.cassandra.hints.HintsDescriptor.createCompressionConfig:(Ljava/util/Map;)Lorg/apache/cassandra/config/ParameterizedClass;
            putfield org.apache.cassandra.hints.HintsDescriptor.compressionConfig:Lorg/apache/cassandra/config/ParameterizedClass;
         5: .line 89
            aload 5 /* parameters */
            invokestatic org.apache.cassandra.hints.HintsDescriptor.createEncryption:(Lcom/google/common/collect/ImmutableMap;)Lorg/apache/cassandra/hints/HintsDescriptor$EncryptionData;
            astore 6 /* encryption */
        start local 6 // org.apache.cassandra.hints.HintsDescriptor$EncryptionData encryption
         6: .line 90
            aload 6 /* encryption */
            ifnonnull 10
         7: .line 92
            aload 0 /* this */
            aconst_null
            putfield org.apache.cassandra.hints.HintsDescriptor.cipher:Ljavax/crypto/Cipher;
         8: .line 93
            aload 0 /* this */
            aconst_null
            putfield org.apache.cassandra.hints.HintsDescriptor.compressor:Lorg/apache/cassandra/io/compress/ICompressor;
         9: .line 94
            goto 15
        10: .line 97
      StackMap locals: org.apache.cassandra.hints.HintsDescriptor java.util.UUID int long com.google.common.collect.ImmutableMap org.apache.cassandra.hints.HintsDescriptor$EncryptionData
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.hints.HintsDescriptor.compressionConfig:Lorg/apache/cassandra/config/ParameterizedClass;
            ifnull 12
        11: .line 98
            new java.lang.IllegalStateException
            dup
            ldc "a hints file cannot be configured for both compression and encryption"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        12: .line 99
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 6 /* encryption */
            getfield org.apache.cassandra.hints.HintsDescriptor$EncryptionData.cipher:Ljavax/crypto/Cipher;
            putfield org.apache.cassandra.hints.HintsDescriptor.cipher:Ljavax/crypto/Cipher;
        13: .line 100
            aload 0 /* this */
            aload 6 /* encryption */
            getfield org.apache.cassandra.hints.HintsDescriptor$EncryptionData.compressor:Lorg/apache/cassandra/io/compress/ICompressor;
            putfield org.apache.cassandra.hints.HintsDescriptor.compressor:Lorg/apache/cassandra/io/compress/ICompressor;
        14: .line 101
            aload 6 /* encryption */
            getfield org.apache.cassandra.hints.HintsDescriptor$EncryptionData.params:Lcom/google/common/collect/ImmutableMap;
            astore 5 /* parameters */
        15: .line 104
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 5 /* parameters */
            putfield org.apache.cassandra.hints.HintsDescriptor.parameters:Lcom/google/common/collect/ImmutableMap;
        16: .line 105
            return
        end local 6 // org.apache.cassandra.hints.HintsDescriptor$EncryptionData encryption
        end local 5 // com.google.common.collect.ImmutableMap parameters
        end local 3 // long timestamp
        end local 2 // int version
        end local 1 // java.util.UUID hostId
        end local 0 // org.apache.cassandra.hints.HintsDescriptor this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   17     0        this  Lorg/apache/cassandra/hints/HintsDescriptor;
            0   17     1      hostId  Ljava/util/UUID;
            0   17     2     version  I
            0   17     3   timestamp  J
            0   17     5  parameters  Lcom/google/common/collect/ImmutableMap<Ljava/lang/String;Ljava/lang/Object;>;
            6   17     6  encryption  Lorg/apache/cassandra/hints/HintsDescriptor$EncryptionData;
    Signature: (Ljava/util/UUID;IJLcom/google/common/collect/ImmutableMap<Ljava/lang/String;Ljava/lang/Object;>;)V
    MethodParameters:
            Name  Flags
      hostId      
      version     
      timestamp   
      parameters  

  void <init>(java.util.UUID, long, com.google.common.collect.ImmutableMap<java.lang.String, java.lang.Object>);
    descriptor: (Ljava/util/UUID;JLcom/google/common/collect/ImmutableMap;)V
    flags: (0x0000) 
    Code:
      stack=6, locals=5, args_size=4
        start local 0 // org.apache.cassandra.hints.HintsDescriptor this
        start local 1 // java.util.UUID hostId
        start local 2 // long timestamp
        start local 4 // com.google.common.collect.ImmutableMap parameters
         0: .line 109
            aload 0 /* this */
            aload 1 /* hostId */
            iconst_1
            lload 2 /* timestamp */
            aload 4 /* parameters */
            invokespecial org.apache.cassandra.hints.HintsDescriptor.<init>:(Ljava/util/UUID;IJLcom/google/common/collect/ImmutableMap;)V
         1: .line 110
            return
        end local 4 // com.google.common.collect.ImmutableMap parameters
        end local 2 // long timestamp
        end local 1 // java.util.UUID hostId
        end local 0 // org.apache.cassandra.hints.HintsDescriptor this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lorg/apache/cassandra/hints/HintsDescriptor;
            0    2     1      hostId  Ljava/util/UUID;
            0    2     2   timestamp  J
            0    2     4  parameters  Lcom/google/common/collect/ImmutableMap<Ljava/lang/String;Ljava/lang/Object;>;
    Signature: (Ljava/util/UUID;JLcom/google/common/collect/ImmutableMap<Ljava/lang/String;Ljava/lang/Object;>;)V
    MethodParameters:
            Name  Flags
      hostId      
      timestamp   
      parameters  

  void <init>(java.util.UUID, long);
    descriptor: (Ljava/util/UUID;J)V
    flags: (0x0000) 
    Code:
      stack=6, locals=4, args_size=3
        start local 0 // org.apache.cassandra.hints.HintsDescriptor this
        start local 1 // java.util.UUID hostId
        start local 2 // long timestamp
         0: .line 114
            aload 0 /* this */
            aload 1 /* hostId */
            iconst_1
            lload 2 /* timestamp */
            invokestatic com.google.common.collect.ImmutableMap.of:()Lcom/google/common/collect/ImmutableMap;
            invokespecial org.apache.cassandra.hints.HintsDescriptor.<init>:(Ljava/util/UUID;IJLcom/google/common/collect/ImmutableMap;)V
         1: .line 115
            return
        end local 2 // long timestamp
        end local 1 // java.util.UUID hostId
        end local 0 // org.apache.cassandra.hints.HintsDescriptor this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       this  Lorg/apache/cassandra/hints/HintsDescriptor;
            0    2     1     hostId  Ljava/util/UUID;
            0    2     2  timestamp  J
    MethodParameters:
           Name  Flags
      hostId     
      timestamp  

  static org.apache.cassandra.config.ParameterizedClass createCompressionConfig(java.util.Map<java.lang.String, java.lang.Object>);
    descriptor: (Ljava/util/Map;)Lorg/apache/cassandra/config/ParameterizedClass;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // java.util.Map params
         0: .line 120
            aload 0 /* params */
            ldc "compression"
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifeq 5
         1: .line 122
            aload 0 /* params */
            ldc "compression"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.Map
            astore 1 /* compressorConfig */
        start local 1 // java.util.Map compressorConfig
         2: .line 123
            new org.apache.cassandra.config.ParameterizedClass
            dup
            aload 1 /* compressorConfig */
            ldc "class_name"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
         3: .line 124
            aload 1 /* compressorConfig */
            ldc "parameters"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.Map
         4: .line 123
            invokespecial org.apache.cassandra.config.ParameterizedClass.<init>:(Ljava/lang/String;Ljava/util/Map;)V
            areturn
        end local 1 // java.util.Map compressorConfig
         5: .line 128
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 0 // java.util.Map params
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    6     0            params  Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
            2    5     1  compressorConfig  Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
    Signature: (Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;)Lorg/apache/cassandra/config/ParameterizedClass;
    MethodParameters:
        Name  Flags
      params  

  static org.apache.cassandra.hints.HintsDescriptor$EncryptionData createEncryption(com.google.common.collect.ImmutableMap<java.lang.String, java.lang.Object>);
    descriptor: (Lcom/google/common/collect/ImmutableMap;)Lorg/apache/cassandra/hints/HintsDescriptor$EncryptionData;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=6, args_size=1
        start local 0 // com.google.common.collect.ImmutableMap params
         0: .line 145
            aload 0 /* params */
            ldc "encryption"
            invokevirtual com.google.common.collect.ImmutableMap.containsKey:(Ljava/lang/Object;)Z
            ifeq 20
         1: .line 147
            aload 0 /* params */
            ldc "encryption"
            invokevirtual com.google.common.collect.ImmutableMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.Map
            astore 1 /* encryptionConfig */
        start local 1 // java.util.Map encryptionConfig
         2: .line 148
            aload 1 /* encryptionConfig */
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getEncryptionContext:()Lorg/apache/cassandra/security/EncryptionContext;
            invokestatic org.apache.cassandra.security.EncryptionContext.createFromMap:(Ljava/util/Map;Lorg/apache/cassandra/security/EncryptionContext;)Lorg/apache/cassandra/security/EncryptionContext;
            astore 2 /* encryptionContext */
        start local 2 // org.apache.cassandra.security.EncryptionContext encryptionContext
         3: .line 153
            aload 1 /* encryptionConfig */
            ldc "encIV"
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifeq 6
         4: .line 155
            aload 2 /* encryptionContext */
            invokevirtual org.apache.cassandra.security.EncryptionContext.getDecryptor:()Ljavax/crypto/Cipher;
            astore 3 /* cipher */
        start local 3 // javax.crypto.Cipher cipher
         5: .line 156
            goto 15
        end local 3 // javax.crypto.Cipher cipher
         6: .line 159
      StackMap locals: java.util.Map org.apache.cassandra.security.EncryptionContext
      StackMap stack:
            aload 2 /* encryptionContext */
            invokevirtual org.apache.cassandra.security.EncryptionContext.getEncryptor:()Ljavax/crypto/Cipher;
            astore 3 /* cipher */
        start local 3 // javax.crypto.Cipher cipher
         7: .line 160
            invokestatic com.google.common.collect.ImmutableMap.builder:()Lcom/google/common/collect/ImmutableMap$Builder;
         8: .line 161
            aload 2 /* encryptionContext */
            invokevirtual org.apache.cassandra.security.EncryptionContext.toHeaderParameters:()Ljava/util/Map;
            invokevirtual com.google.common.collect.ImmutableMap$Builder.putAll:(Ljava/util/Map;)Lcom/google/common/collect/ImmutableMap$Builder;
         9: .line 162
            ldc "encIV"
            aload 3 /* cipher */
            invokevirtual javax.crypto.Cipher.getIV:()[B
            invokestatic org.apache.cassandra.utils.Hex.bytesToHex:([B)Ljava/lang/String;
            invokevirtual com.google.common.collect.ImmutableMap$Builder.put:(Ljava/lang/Object;Ljava/lang/Object;)Lcom/google/common/collect/ImmutableMap$Builder;
        10: .line 163
            invokevirtual com.google.common.collect.ImmutableMap$Builder.build:()Lcom/google/common/collect/ImmutableMap;
        11: .line 160
            astore 4 /* encParams */
        start local 4 // com.google.common.collect.ImmutableMap encParams
        12: .line 165
            new java.util.HashMap
            dup
            aload 0 /* params */
            invokespecial java.util.HashMap.<init>:(Ljava/util/Map;)V
            astore 5 /* map */
        start local 5 // java.util.Map map
        13: .line 166
            aload 5 /* map */
            ldc "encryption"
            aload 4 /* encParams */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        14: .line 167
            invokestatic com.google.common.collect.ImmutableMap.builder:()Lcom/google/common/collect/ImmutableMap$Builder;
            aload 5 /* map */
            invokevirtual com.google.common.collect.ImmutableMap$Builder.putAll:(Ljava/util/Map;)Lcom/google/common/collect/ImmutableMap$Builder;
            invokevirtual com.google.common.collect.ImmutableMap$Builder.build:()Lcom/google/common/collect/ImmutableMap;
            astore 0 /* params */
        end local 5 // java.util.Map map
        end local 4 // com.google.common.collect.ImmutableMap encParams
        15: .line 169
      StackMap locals: javax.crypto.Cipher
      StackMap stack:
            new org.apache.cassandra.hints.HintsDescriptor$EncryptionData
            dup
            aload 3 /* cipher */
            aload 2 /* encryptionContext */
            invokevirtual org.apache.cassandra.security.EncryptionContext.getCompressor:()Lorg/apache/cassandra/io/compress/ICompressor;
            aload 0 /* params */
            invokespecial org.apache.cassandra.hints.HintsDescriptor$EncryptionData.<init>:(Ljavax/crypto/Cipher;Lorg/apache/cassandra/io/compress/ICompressor;Lcom/google/common/collect/ImmutableMap;)V
        16: areturn
        end local 3 // javax.crypto.Cipher cipher
        17: .line 171
      StackMap locals: com.google.common.collect.ImmutableMap java.util.Map org.apache.cassandra.security.EncryptionContext
      StackMap stack: java.io.IOException
            astore 3 /* ioe */
        start local 3 // java.io.IOException ioe
        18: .line 173
            getstatic org.apache.cassandra.hints.HintsDescriptor.logger:Lorg/slf4j/Logger;
            ldc "failed to create encyption context for hints file. ignoring encryption for hints."
            aload 3 /* ioe */
            invokeinterface org.slf4j.Logger.warn:(Ljava/lang/String;Ljava/lang/Throwable;)V
        19: .line 174
            aconst_null
            areturn
        end local 3 // java.io.IOException ioe
        end local 2 // org.apache.cassandra.security.EncryptionContext encryptionContext
        end local 1 // java.util.Map encryptionConfig
        20: .line 179
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 0 // com.google.common.collect.ImmutableMap params
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   21     0             params  Lcom/google/common/collect/ImmutableMap<Ljava/lang/String;Ljava/lang/Object;>;
            2   20     1   encryptionConfig  Ljava/util/Map<**>;
            3   20     2  encryptionContext  Lorg/apache/cassandra/security/EncryptionContext;
            5    6     3             cipher  Ljavax/crypto/Cipher;
            7   17     3             cipher  Ljavax/crypto/Cipher;
           12   15     4          encParams  Lcom/google/common/collect/ImmutableMap<Ljava/lang/String;Ljava/lang/Object;>;
           13   15     5                map  Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
           18   20     3                ioe  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           3    16      17  Class java.io.IOException
    Signature: (Lcom/google/common/collect/ImmutableMap<Ljava/lang/String;Ljava/lang/Object;>;)Lorg/apache/cassandra/hints/HintsDescriptor$EncryptionData;
    MethodParameters:
        Name  Flags
      params  

  java.lang.String fileName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0000) 
    Code:
      stack=6, locals=1, args_size=1
        start local 0 // org.apache.cassandra.hints.HintsDescriptor this
         0: .line 199
            ldc "%s-%s-%s.hints"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* this */
            getfield org.apache.cassandra.hints.HintsDescriptor.hostId:Ljava/util/UUID;
            aastore
            dup
            iconst_1
            aload 0 /* this */
            getfield org.apache.cassandra.hints.HintsDescriptor.timestamp:J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            dup
            iconst_2
            aload 0 /* this */
            getfield org.apache.cassandra.hints.HintsDescriptor.version:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            areturn
        end local 0 // org.apache.cassandra.hints.HintsDescriptor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/hints/HintsDescriptor;

  java.lang.String checksumFileName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0000) 
    Code:
      stack=6, locals=1, args_size=1
        start local 0 // org.apache.cassandra.hints.HintsDescriptor this
         0: .line 204
            ldc "%s-%s-%s.crc32"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* this */
            getfield org.apache.cassandra.hints.HintsDescriptor.hostId:Ljava/util/UUID;
            aastore
            dup
            iconst_1
            aload 0 /* this */
            getfield org.apache.cassandra.hints.HintsDescriptor.timestamp:J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            dup
            iconst_2
            aload 0 /* this */
            getfield org.apache.cassandra.hints.HintsDescriptor.version:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            areturn
        end local 0 // org.apache.cassandra.hints.HintsDescriptor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/hints/HintsDescriptor;

  int messagingVersion();
    descriptor: ()I
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.hints.HintsDescriptor this
         0: .line 209
            aload 0 /* this */
            getfield org.apache.cassandra.hints.HintsDescriptor.version:I
            invokestatic org.apache.cassandra.hints.HintsDescriptor.messagingVersion:(I)I
            ireturn
        end local 0 // org.apache.cassandra.hints.HintsDescriptor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/hints/HintsDescriptor;

  static int messagingVersion(int);
    descriptor: (I)I
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // int hintsVersion
         0: .line 214
            iload 0 /* hintsVersion */
            tableswitch { // 1 - 1
                    1: 1
              default: 4
          }
         1: .line 217
      StackMap locals:
      StackMap stack:
            getstatic org.apache.cassandra.net.MessagingService.FORCE_3_0_PROTOCOL_VERSION:Z
            ifeq 2
            bipush 10
            goto 3
      StackMap locals:
      StackMap stack:
         2: bipush 11
      StackMap locals:
      StackMap stack: int
         3: ireturn
         4: .line 219
      StackMap locals:
      StackMap stack:
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        end local 0 // int hintsVersion
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    5     0  hintsVersion  I
    MethodParameters:
              Name  Flags
      hintsVersion  

  static boolean isHintFileName(java.nio.file.Path);
    descriptor: (Ljava/nio/file/Path;)Z
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.nio.file.Path path
         0: .line 225
            getstatic org.apache.cassandra.hints.HintsDescriptor.pattern:Ljava/util/regex/Pattern;
            aload 0 /* path */
            invokeinterface java.nio.file.Path.getFileName:()Ljava/nio/file/Path;
            invokeinterface java.nio.file.Path.toString:()Ljava/lang/String;
            invokevirtual java.util.regex.Pattern.matcher:(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
            invokevirtual java.util.regex.Matcher.matches:()Z
            ireturn
        end local 0 // java.nio.file.Path path
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  path  Ljava/nio/file/Path;
    MethodParameters:
      Name  Flags
      path  

  static java.util.Optional<org.apache.cassandra.hints.HintsDescriptor> readFromFileQuietly(java.nio.file.Path);
    descriptor: (Ljava/nio/file/Path;)Ljava/util/Optional;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=4, args_size=1
        start local 0 // java.nio.file.Path path
         0: .line 230
            aconst_null
            astore 1
            aconst_null
            astore 2
         1: new java.io.RandomAccessFile
            dup
            aload 0 /* path */
            invokeinterface java.nio.file.Path.toFile:()Ljava/io/File;
            ldc "r"
            invokespecial java.io.RandomAccessFile.<init>:(Ljava/io/File;Ljava/lang/String;)V
            astore 3 /* raf */
        start local 3 // java.io.RandomAccessFile raf
         2: .line 232
            aload 3 /* raf */
            invokestatic org.apache.cassandra.hints.HintsDescriptor.deserialize:(Ljava/io/DataInput;)Lorg/apache/cassandra/hints/HintsDescriptor;
            invokestatic java.util.Optional.of:(Ljava/lang/Object;)Ljava/util/Optional;
         3: .line 233
            aload 3 /* raf */
            ifnull 4
            aload 3 /* raf */
            invokevirtual java.io.RandomAccessFile.close:()V
         4: .line 232
      StackMap locals: java.nio.file.Path java.lang.Throwable java.lang.Throwable java.io.RandomAccessFile
      StackMap stack: java.util.Optional
            areturn
      StackMap locals:
      StackMap stack: java.lang.Throwable
         5: astore 1
         6: .line 233
            aload 3 /* raf */
            ifnull 7
            aload 3 /* raf */
            invokevirtual java.io.RandomAccessFile.close:()V
        end local 3 // java.io.RandomAccessFile raf
      StackMap locals:
      StackMap stack:
         7: aload 1
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
         8: astore 2
            aload 1
            ifnonnull 9
            aload 2
            astore 1
            goto 10
      StackMap locals:
      StackMap stack:
         9: aload 1
            aload 2
            if_acmpeq 10
            aload 1
            aload 2
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        10: aload 1
            athrow
        11: .line 234
      StackMap locals: java.nio.file.Path
      StackMap stack: org.apache.cassandra.hints.ChecksumMismatchException
            astore 1 /* e */
        start local 1 // org.apache.cassandra.hints.ChecksumMismatchException e
        12: .line 236
            new org.apache.cassandra.io.FSReadError
            dup
            aload 1 /* e */
            aload 0 /* path */
            invokeinterface java.nio.file.Path.toFile:()Ljava/io/File;
            invokespecial org.apache.cassandra.io.FSReadError.<init>:(Ljava/lang/Throwable;Ljava/io/File;)V
            athrow
        end local 1 // org.apache.cassandra.hints.ChecksumMismatchException e
        13: .line 238
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 1 /* e */
        start local 1 // java.io.IOException e
        14: .line 240
            getstatic org.apache.cassandra.hints.HintsDescriptor.logger:Lorg/slf4j/Logger;
            ldc "Failed to deserialize hints descriptor {}"
            aload 0 /* path */
            invokeinterface java.nio.file.Path.toString:()Ljava/lang/String;
            aload 1 /* e */
            invokeinterface org.slf4j.Logger.error:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
        15: .line 241
            invokestatic java.util.Optional.empty:()Ljava/util/Optional;
            areturn
        end local 1 // java.io.IOException e
        end local 0 // java.nio.file.Path path
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   16     0  path  Ljava/nio/file/Path;
            2    7     3   raf  Ljava/io/RandomAccessFile;
           12   13     1     e  Lorg/apache/cassandra/hints/ChecksumMismatchException;
           14   16     1     e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           2     3       5  any
           1     4       8  any
           5     8       8  any
           0     4      11  Class org.apache.cassandra.hints.ChecksumMismatchException
           5    11      11  Class org.apache.cassandra.hints.ChecksumMismatchException
           0     4      13  Class java.io.IOException
           5    11      13  Class java.io.IOException
    Signature: (Ljava/nio/file/Path;)Ljava/util/Optional<Lorg/apache/cassandra/hints/HintsDescriptor;>;
    MethodParameters:
      Name  Flags
      path  

  static org.apache.cassandra.hints.HintsDescriptor readFromFile(java.nio.file.Path);
    descriptor: (Ljava/nio/file/Path;)Lorg/apache/cassandra/hints/HintsDescriptor;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=4, args_size=1
        start local 0 // java.nio.file.Path path
         0: .line 247
            aconst_null
            astore 1
            aconst_null
            astore 2
         1: new java.io.RandomAccessFile
            dup
            aload 0 /* path */
            invokeinterface java.nio.file.Path.toFile:()Ljava/io/File;
            ldc "r"
            invokespecial java.io.RandomAccessFile.<init>:(Ljava/io/File;Ljava/lang/String;)V
            astore 3 /* raf */
        start local 3 // java.io.RandomAccessFile raf
         2: .line 249
            aload 3 /* raf */
            invokestatic org.apache.cassandra.hints.HintsDescriptor.deserialize:(Ljava/io/DataInput;)Lorg/apache/cassandra/hints/HintsDescriptor;
         3: .line 250
            aload 3 /* raf */
            ifnull 4
            aload 3 /* raf */
            invokevirtual java.io.RandomAccessFile.close:()V
         4: .line 249
      StackMap locals: java.nio.file.Path java.lang.Throwable java.lang.Throwable java.io.RandomAccessFile
      StackMap stack: org.apache.cassandra.hints.HintsDescriptor
            areturn
      StackMap locals:
      StackMap stack: java.lang.Throwable
         5: astore 1
         6: .line 250
            aload 3 /* raf */
            ifnull 7
            aload 3 /* raf */
            invokevirtual java.io.RandomAccessFile.close:()V
        end local 3 // java.io.RandomAccessFile raf
      StackMap locals:
      StackMap stack:
         7: aload 1
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
         8: astore 2
            aload 1
            ifnonnull 9
            aload 2
            astore 1
            goto 10
      StackMap locals:
      StackMap stack:
         9: aload 1
            aload 2
            if_acmpeq 10
            aload 1
            aload 2
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        10: aload 1
            athrow
        11: .line 251
      StackMap locals: java.nio.file.Path
      StackMap stack: java.io.IOException
            astore 1 /* e */
        start local 1 // java.io.IOException e
        12: .line 253
            new org.apache.cassandra.io.FSReadError
            dup
            aload 1 /* e */
            aload 0 /* path */
            invokeinterface java.nio.file.Path.toFile:()Ljava/io/File;
            invokespecial org.apache.cassandra.io.FSReadError.<init>:(Ljava/lang/Throwable;Ljava/io/File;)V
            athrow
        end local 1 // java.io.IOException e
        end local 0 // java.nio.file.Path path
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   13     0  path  Ljava/nio/file/Path;
            2    7     3   raf  Ljava/io/RandomAccessFile;
           12   13     1     e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           2     3       5  any
           1     4       8  any
           5     8       8  any
           0     4      11  Class java.io.IOException
           5    11      11  Class java.io.IOException
    MethodParameters:
      Name  Flags
      path  

  public boolean isCompressed();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.hints.HintsDescriptor this
         0: .line 259
            aload 0 /* this */
            getfield org.apache.cassandra.hints.HintsDescriptor.compressionConfig:Lorg/apache/cassandra/config/ParameterizedClass;
            ifnull 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // org.apache.cassandra.hints.HintsDescriptor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/cassandra/hints/HintsDescriptor;

  public boolean isEncrypted();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.hints.HintsDescriptor this
         0: .line 264
            aload 0 /* this */
            getfield org.apache.cassandra.hints.HintsDescriptor.cipher:Ljavax/crypto/Cipher;
            ifnull 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // org.apache.cassandra.hints.HintsDescriptor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/cassandra/hints/HintsDescriptor;

  public org.apache.cassandra.io.compress.ICompressor createCompressor();
    descriptor: ()Lorg/apache/cassandra/io/compress/ICompressor;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.hints.HintsDescriptor this
         0: .line 269
            aload 0 /* this */
            invokevirtual org.apache.cassandra.hints.HintsDescriptor.isCompressed:()Z
            ifeq 2
         1: .line 270
            aload 0 /* this */
            getfield org.apache.cassandra.hints.HintsDescriptor.compressionConfig:Lorg/apache/cassandra/config/ParameterizedClass;
            invokestatic org.apache.cassandra.schema.CompressionParams.createCompressor:(Lorg/apache/cassandra/config/ParameterizedClass;)Lorg/apache/cassandra/io/compress/ICompressor;
            areturn
         2: .line 271
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.apache.cassandra.hints.HintsDescriptor.isEncrypted:()Z
            ifeq 4
         3: .line 272
            aload 0 /* this */
            getfield org.apache.cassandra.hints.HintsDescriptor.compressor:Lorg/apache/cassandra/io/compress/ICompressor;
            areturn
         4: .line 273
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 0 // org.apache.cassandra.hints.HintsDescriptor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/apache/cassandra/hints/HintsDescriptor;

  public javax.crypto.Cipher getCipher();
    descriptor: ()Ljavax/crypto/Cipher;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.hints.HintsDescriptor this
         0: .line 278
            aload 0 /* this */
            invokevirtual org.apache.cassandra.hints.HintsDescriptor.isEncrypted:()Z
            ifeq 1
            aload 0 /* this */
            getfield org.apache.cassandra.hints.HintsDescriptor.cipher:Ljavax/crypto/Cipher;
            goto 2
      StackMap locals:
      StackMap stack:
         1: aconst_null
      StackMap locals:
      StackMap stack: javax.crypto.Cipher
         2: areturn
        end local 0 // org.apache.cassandra.hints.HintsDescriptor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/apache/cassandra/hints/HintsDescriptor;

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.apache.cassandra.hints.HintsDescriptor this
         0: .line 284
            aload 0 /* this */
            invokestatic com.google.common.base.MoreObjects.toStringHelper:(Ljava/lang/Object;)Lcom/google/common/base/MoreObjects$ToStringHelper;
         1: .line 285
            ldc "hostId"
            aload 0 /* this */
            getfield org.apache.cassandra.hints.HintsDescriptor.hostId:Ljava/util/UUID;
            invokevirtual com.google.common.base.MoreObjects$ToStringHelper.add:(Ljava/lang/String;Ljava/lang/Object;)Lcom/google/common/base/MoreObjects$ToStringHelper;
         2: .line 286
            ldc "version"
            aload 0 /* this */
            getfield org.apache.cassandra.hints.HintsDescriptor.version:I
            invokevirtual com.google.common.base.MoreObjects$ToStringHelper.add:(Ljava/lang/String;I)Lcom/google/common/base/MoreObjects$ToStringHelper;
         3: .line 287
            ldc "timestamp"
            aload 0 /* this */
            getfield org.apache.cassandra.hints.HintsDescriptor.timestamp:J
            invokevirtual com.google.common.base.MoreObjects$ToStringHelper.add:(Ljava/lang/String;J)Lcom/google/common/base/MoreObjects$ToStringHelper;
         4: .line 288
            ldc "parameters"
            aload 0 /* this */
            getfield org.apache.cassandra.hints.HintsDescriptor.parameters:Lcom/google/common/collect/ImmutableMap;
            invokevirtual com.google.common.base.MoreObjects$ToStringHelper.add:(Ljava/lang/String;Ljava/lang/Object;)Lcom/google/common/base/MoreObjects$ToStringHelper;
         5: .line 289
            invokevirtual com.google.common.base.MoreObjects$ToStringHelper.toString:()Ljava/lang/String;
         6: .line 284
            areturn
        end local 0 // org.apache.cassandra.hints.HintsDescriptor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lorg/apache/cassandra/hints/HintsDescriptor;

  public boolean equals(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.apache.cassandra.hints.HintsDescriptor this
        start local 1 // java.lang.Object o
         0: .line 295
            aload 0 /* this */
            aload 1 /* o */
            if_acmpne 2
         1: .line 296
            iconst_1
            ireturn
         2: .line 298
      StackMap locals:
      StackMap stack:
            aload 1 /* o */
            instanceof org.apache.cassandra.hints.HintsDescriptor
            ifne 4
         3: .line 299
            iconst_0
            ireturn
         4: .line 301
      StackMap locals:
      StackMap stack:
            aload 1 /* o */
            checkcast org.apache.cassandra.hints.HintsDescriptor
            astore 2 /* hd */
        start local 2 // org.apache.cassandra.hints.HintsDescriptor hd
         5: .line 303
            aload 0 /* this */
            getfield org.apache.cassandra.hints.HintsDescriptor.hostId:Ljava/util/UUID;
            aload 2 /* hd */
            getfield org.apache.cassandra.hints.HintsDescriptor.hostId:Ljava/util/UUID;
            invokestatic com.google.common.base.Objects.equal:(Ljava/lang/Object;Ljava/lang/Object;)Z
            ifeq 10
         6: .line 304
            aload 0 /* this */
            getfield org.apache.cassandra.hints.HintsDescriptor.version:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aload 2 /* hd */
            getfield org.apache.cassandra.hints.HintsDescriptor.version:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokestatic com.google.common.base.Objects.equal:(Ljava/lang/Object;Ljava/lang/Object;)Z
            ifeq 10
         7: .line 305
            aload 0 /* this */
            getfield org.apache.cassandra.hints.HintsDescriptor.timestamp:J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aload 2 /* hd */
            getfield org.apache.cassandra.hints.HintsDescriptor.timestamp:J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            invokestatic com.google.common.base.Objects.equal:(Ljava/lang/Object;Ljava/lang/Object;)Z
            ifeq 10
         8: .line 306
            aload 0 /* this */
            getfield org.apache.cassandra.hints.HintsDescriptor.parameters:Lcom/google/common/collect/ImmutableMap;
            aload 2 /* hd */
            getfield org.apache.cassandra.hints.HintsDescriptor.parameters:Lcom/google/common/collect/ImmutableMap;
            invokestatic com.google.common.base.Objects.equal:(Ljava/lang/Object;Ljava/lang/Object;)Z
            ifeq 10
         9: .line 303
            iconst_1
            ireturn
      StackMap locals: org.apache.cassandra.hints.HintsDescriptor
      StackMap stack:
        10: iconst_0
            ireturn
        end local 2 // org.apache.cassandra.hints.HintsDescriptor hd
        end local 1 // java.lang.Object o
        end local 0 // org.apache.cassandra.hints.HintsDescriptor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Lorg/apache/cassandra/hints/HintsDescriptor;
            0   11     1     o  Ljava/lang/Object;
            5   11     2    hd  Lorg/apache/cassandra/hints/HintsDescriptor;
    MethodParameters:
      Name  Flags
      o     

  public int hashCode();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // org.apache.cassandra.hints.HintsDescriptor this
         0: .line 312
            iconst_4
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* this */
            getfield org.apache.cassandra.hints.HintsDescriptor.hostId:Ljava/util/UUID;
            aastore
            dup
            iconst_1
            aload 0 /* this */
            getfield org.apache.cassandra.hints.HintsDescriptor.version:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_2
            aload 0 /* this */
            getfield org.apache.cassandra.hints.HintsDescriptor.timestamp:J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            dup
            iconst_3
            aload 0 /* this */
            getfield org.apache.cassandra.hints.HintsDescriptor.parameters:Lcom/google/common/collect/ImmutableMap;
            aastore
            invokestatic com.google.common.base.Objects.hashCode:([Ljava/lang/Object;)I
            ireturn
        end local 0 // org.apache.cassandra.hints.HintsDescriptor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/hints/HintsDescriptor;

  void serialize(org.apache.cassandra.io.util.DataOutputPlus);
    descriptor: (Lorg/apache/cassandra/io/util/DataOutputPlus;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // org.apache.cassandra.hints.HintsDescriptor this
        start local 1 // org.apache.cassandra.io.util.DataOutputPlus out
         0: .line 317
            new java.util.zip.CRC32
            dup
            invokespecial java.util.zip.CRC32.<init>:()V
            astore 2 /* crc */
        start local 2 // java.util.zip.CRC32 crc
         1: .line 319
            aload 1 /* out */
            aload 0 /* this */
            getfield org.apache.cassandra.hints.HintsDescriptor.version:I
            invokeinterface org.apache.cassandra.io.util.DataOutputPlus.writeInt:(I)V
         2: .line 320
            aload 2 /* crc */
            aload 0 /* this */
            getfield org.apache.cassandra.hints.HintsDescriptor.version:I
            invokestatic org.apache.cassandra.utils.FBUtilities.updateChecksumInt:(Ljava/util/zip/Checksum;I)V
         3: .line 322
            aload 1 /* out */
            aload 0 /* this */
            getfield org.apache.cassandra.hints.HintsDescriptor.timestamp:J
            invokeinterface org.apache.cassandra.io.util.DataOutputPlus.writeLong:(J)V
         4: .line 323
            aload 2 /* crc */
            aload 0 /* this */
            getfield org.apache.cassandra.hints.HintsDescriptor.timestamp:J
            invokestatic org.apache.cassandra.hints.HintsDescriptor.updateChecksumLong:(Ljava/util/zip/CRC32;J)V
         5: .line 325
            aload 1 /* out */
            aload 0 /* this */
            getfield org.apache.cassandra.hints.HintsDescriptor.hostId:Ljava/util/UUID;
            invokevirtual java.util.UUID.getMostSignificantBits:()J
            invokeinterface org.apache.cassandra.io.util.DataOutputPlus.writeLong:(J)V
         6: .line 326
            aload 2 /* crc */
            aload 0 /* this */
            getfield org.apache.cassandra.hints.HintsDescriptor.hostId:Ljava/util/UUID;
            invokevirtual java.util.UUID.getMostSignificantBits:()J
            invokestatic org.apache.cassandra.hints.HintsDescriptor.updateChecksumLong:(Ljava/util/zip/CRC32;J)V
         7: .line 327
            aload 1 /* out */
            aload 0 /* this */
            getfield org.apache.cassandra.hints.HintsDescriptor.hostId:Ljava/util/UUID;
            invokevirtual java.util.UUID.getLeastSignificantBits:()J
            invokeinterface org.apache.cassandra.io.util.DataOutputPlus.writeLong:(J)V
         8: .line 328
            aload 2 /* crc */
            aload 0 /* this */
            getfield org.apache.cassandra.hints.HintsDescriptor.hostId:Ljava/util/UUID;
            invokevirtual java.util.UUID.getLeastSignificantBits:()J
            invokestatic org.apache.cassandra.hints.HintsDescriptor.updateChecksumLong:(Ljava/util/zip/CRC32;J)V
         9: .line 330
            aload 0 /* this */
            getfield org.apache.cassandra.hints.HintsDescriptor.parameters:Lcom/google/common/collect/ImmutableMap;
            invokestatic org.json.simple.JSONValue.toJSONString:(Ljava/lang/Object;)Ljava/lang/String;
            getstatic java.nio.charset.StandardCharsets.UTF_8:Ljava/nio/charset/Charset;
            invokevirtual java.lang.String.getBytes:(Ljava/nio/charset/Charset;)[B
            astore 3 /* paramsBytes */
        start local 3 // byte[] paramsBytes
        10: .line 331
            aload 1 /* out */
            aload 3 /* paramsBytes */
            arraylength
            invokeinterface org.apache.cassandra.io.util.DataOutputPlus.writeInt:(I)V
        11: .line 332
            aload 2 /* crc */
            aload 3 /* paramsBytes */
            arraylength
            invokestatic org.apache.cassandra.utils.FBUtilities.updateChecksumInt:(Ljava/util/zip/Checksum;I)V
        12: .line 333
            aload 1 /* out */
            aload 2 /* crc */
            invokevirtual java.util.zip.CRC32.getValue:()J
            l2i
            invokeinterface org.apache.cassandra.io.util.DataOutputPlus.writeInt:(I)V
        13: .line 335
            aload 1 /* out */
            aload 3 /* paramsBytes */
            invokeinterface org.apache.cassandra.io.util.DataOutputPlus.write:([B)V
        14: .line 336
            aload 2 /* crc */
            aload 3 /* paramsBytes */
            iconst_0
            aload 3 /* paramsBytes */
            arraylength
            invokevirtual java.util.zip.CRC32.update:([BII)V
        15: .line 338
            aload 1 /* out */
            aload 2 /* crc */
            invokevirtual java.util.zip.CRC32.getValue:()J
            l2i
            invokeinterface org.apache.cassandra.io.util.DataOutputPlus.writeInt:(I)V
        16: .line 339
            return
        end local 3 // byte[] paramsBytes
        end local 2 // java.util.zip.CRC32 crc
        end local 1 // org.apache.cassandra.io.util.DataOutputPlus out
        end local 0 // org.apache.cassandra.hints.HintsDescriptor this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   17     0         this  Lorg/apache/cassandra/hints/HintsDescriptor;
            0   17     1          out  Lorg/apache/cassandra/io/util/DataOutputPlus;
            1   17     2          crc  Ljava/util/zip/CRC32;
           10   17     3  paramsBytes  [B
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      out   

  int serializedSize();
    descriptor: ()I
    flags: (0x0000) 
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // org.apache.cassandra.hints.HintsDescriptor this
         0: .line 343
            aload 0 /* this */
            getfield org.apache.cassandra.hints.HintsDescriptor.version:I
            invokestatic org.apache.cassandra.db.TypeSizes.sizeof:(I)I
            istore 1 /* size */
        start local 1 // int size
         1: .line 344
            iload 1 /* size */
            aload 0 /* this */
            getfield org.apache.cassandra.hints.HintsDescriptor.timestamp:J
            invokestatic org.apache.cassandra.db.TypeSizes.sizeof:(J)I
            iadd
            istore 1 /* size */
         2: .line 346
            iload 1 /* size */
            aload 0 /* this */
            getfield org.apache.cassandra.hints.HintsDescriptor.hostId:Ljava/util/UUID;
            invokevirtual java.util.UUID.getMostSignificantBits:()J
            invokestatic org.apache.cassandra.db.TypeSizes.sizeof:(J)I
            iadd
            istore 1 /* size */
         3: .line 347
            iload 1 /* size */
            aload 0 /* this */
            getfield org.apache.cassandra.hints.HintsDescriptor.hostId:Ljava/util/UUID;
            invokevirtual java.util.UUID.getLeastSignificantBits:()J
            invokestatic org.apache.cassandra.db.TypeSizes.sizeof:(J)I
            iadd
            istore 1 /* size */
         4: .line 349
            aload 0 /* this */
            getfield org.apache.cassandra.hints.HintsDescriptor.parameters:Lcom/google/common/collect/ImmutableMap;
            invokestatic org.json.simple.JSONValue.toJSONString:(Ljava/lang/Object;)Ljava/lang/String;
            getstatic java.nio.charset.StandardCharsets.UTF_8:Ljava/nio/charset/Charset;
            invokevirtual java.lang.String.getBytes:(Ljava/nio/charset/Charset;)[B
            astore 2 /* paramsBytes */
        start local 2 // byte[] paramsBytes
         5: .line 350
            iload 1 /* size */
            aload 2 /* paramsBytes */
            arraylength
            invokestatic org.apache.cassandra.db.TypeSizes.sizeof:(I)I
            iadd
            istore 1 /* size */
         6: .line 351
            iinc 1 /* size */ 4
         7: .line 352
            iload 1 /* size */
            aload 2 /* paramsBytes */
            arraylength
            iadd
            istore 1 /* size */
         8: .line 353
            iinc 1 /* size */ 4
         9: .line 355
            iload 1 /* size */
            ireturn
        end local 2 // byte[] paramsBytes
        end local 1 // int size
        end local 0 // org.apache.cassandra.hints.HintsDescriptor this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   10     0         this  Lorg/apache/cassandra/hints/HintsDescriptor;
            1   10     1         size  I
            5   10     2  paramsBytes  [B

  static org.apache.cassandra.hints.HintsDescriptor deserialize(java.io.DataInput);
    descriptor: (Ljava/io/DataInput;)Lorg/apache/cassandra/hints/HintsDescriptor;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=7, locals=12, args_size=1
        start local 0 // java.io.DataInput in
         0: .line 360
            new java.util.zip.CRC32
            dup
            invokespecial java.util.zip.CRC32.<init>:()V
            astore 1 /* crc */
        start local 1 // java.util.zip.CRC32 crc
         1: .line 362
            aload 0 /* in */
            invokeinterface java.io.DataInput.readInt:()I
            istore 2 /* version */
        start local 2 // int version
         2: .line 363
            aload 1 /* crc */
            iload 2 /* version */
            invokestatic org.apache.cassandra.utils.FBUtilities.updateChecksumInt:(Ljava/util/zip/Checksum;I)V
         3: .line 365
            aload 0 /* in */
            invokeinterface java.io.DataInput.readLong:()J
            lstore 3 /* timestamp */
        start local 3 // long timestamp
         4: .line 366
            aload 1 /* crc */
            lload 3 /* timestamp */
            invokestatic org.apache.cassandra.hints.HintsDescriptor.updateChecksumLong:(Ljava/util/zip/CRC32;J)V
         5: .line 368
            aload 0 /* in */
            invokeinterface java.io.DataInput.readLong:()J
            lstore 5 /* msb */
        start local 5 // long msb
         6: .line 369
            aload 1 /* crc */
            lload 5 /* msb */
            invokestatic org.apache.cassandra.hints.HintsDescriptor.updateChecksumLong:(Ljava/util/zip/CRC32;J)V
         7: .line 370
            aload 0 /* in */
            invokeinterface java.io.DataInput.readLong:()J
            lstore 7 /* lsb */
        start local 7 // long lsb
         8: .line 371
            aload 1 /* crc */
            lload 7 /* lsb */
            invokestatic org.apache.cassandra.hints.HintsDescriptor.updateChecksumLong:(Ljava/util/zip/CRC32;J)V
         9: .line 373
            new java.util.UUID
            dup
            lload 5 /* msb */
            lload 7 /* lsb */
            invokespecial java.util.UUID.<init>:(JJ)V
            astore 9 /* hostId */
        start local 9 // java.util.UUID hostId
        10: .line 375
            aload 0 /* in */
            invokeinterface java.io.DataInput.readInt:()I
            istore 10 /* paramsLength */
        start local 10 // int paramsLength
        11: .line 376
            aload 1 /* crc */
            iload 10 /* paramsLength */
            invokestatic org.apache.cassandra.utils.FBUtilities.updateChecksumInt:(Ljava/util/zip/Checksum;I)V
        12: .line 377
            aload 0 /* in */
            invokeinterface java.io.DataInput.readInt:()I
            aload 1 /* crc */
            invokevirtual java.util.zip.CRC32.getValue:()J
            l2i
            invokestatic org.apache.cassandra.hints.HintsDescriptor.validateCRC:(II)V
        13: .line 379
            iload 10 /* paramsLength */
            newarray 8
            astore 11 /* paramsBytes */
        start local 11 // byte[] paramsBytes
        14: .line 380
            aload 0 /* in */
            aload 11 /* paramsBytes */
            iconst_0
            iload 10 /* paramsLength */
            invokeinterface java.io.DataInput.readFully:([BII)V
        15: .line 381
            aload 1 /* crc */
            aload 11 /* paramsBytes */
            iconst_0
            iload 10 /* paramsLength */
            invokevirtual java.util.zip.CRC32.update:([BII)V
        16: .line 382
            aload 0 /* in */
            invokeinterface java.io.DataInput.readInt:()I
            aload 1 /* crc */
            invokevirtual java.util.zip.CRC32.getValue:()J
            l2i
            invokestatic org.apache.cassandra.hints.HintsDescriptor.validateCRC:(II)V
        17: .line 384
            new org.apache.cassandra.hints.HintsDescriptor
            dup
            aload 9 /* hostId */
            iload 2 /* version */
            lload 3 /* timestamp */
            aload 11 /* paramsBytes */
            invokestatic org.apache.cassandra.hints.HintsDescriptor.decodeJSONBytes:([B)Lcom/google/common/collect/ImmutableMap;
            invokespecial org.apache.cassandra.hints.HintsDescriptor.<init>:(Ljava/util/UUID;IJLcom/google/common/collect/ImmutableMap;)V
            areturn
        end local 11 // byte[] paramsBytes
        end local 10 // int paramsLength
        end local 9 // java.util.UUID hostId
        end local 7 // long lsb
        end local 5 // long msb
        end local 3 // long timestamp
        end local 2 // int version
        end local 1 // java.util.zip.CRC32 crc
        end local 0 // java.io.DataInput in
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   18     0            in  Ljava/io/DataInput;
            1   18     1           crc  Ljava/util/zip/CRC32;
            2   18     2       version  I
            4   18     3     timestamp  J
            6   18     5           msb  J
            8   18     7           lsb  J
           10   18     9        hostId  Ljava/util/UUID;
           11   18    10  paramsLength  I
           14   18    11   paramsBytes  [B
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      in    

  private static com.google.common.collect.ImmutableMap<java.lang.String, java.lang.Object> decodeJSONBytes(byte[]);
    descriptor: ([B)Lcom/google/common/collect/ImmutableMap;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // byte[] bytes
         0: .line 390
            new java.lang.String
            dup
            aload 0 /* bytes */
            getstatic java.nio.charset.StandardCharsets.UTF_8:Ljava/nio/charset/Charset;
            invokespecial java.lang.String.<init>:([BLjava/nio/charset/Charset;)V
            invokestatic org.json.simple.JSONValue.parse:(Ljava/lang/String;)Ljava/lang/Object;
            checkcast java.util.Map
            invokestatic com.google.common.collect.ImmutableMap.copyOf:(Ljava/util/Map;)Lcom/google/common/collect/ImmutableMap;
            areturn
        end local 0 // byte[] bytes
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  bytes  [B
    Signature: ([B)Lcom/google/common/collect/ImmutableMap<Ljava/lang/String;Ljava/lang/Object;>;
    MethodParameters:
       Name  Flags
      bytes  

  private static void updateChecksumLong(java.util.zip.CRC32, long);
    descriptor: (Ljava/util/zip/CRC32;J)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // java.util.zip.CRC32 crc
        start local 1 // long value
         0: .line 395
            aload 0 /* crc */
            lload 1 /* value */
            ldc 4294967295
            land
            l2i
            invokestatic org.apache.cassandra.utils.FBUtilities.updateChecksumInt:(Ljava/util/zip/Checksum;I)V
         1: .line 396
            aload 0 /* crc */
            lload 1 /* value */
            bipush 32
            lushr
            l2i
            invokestatic org.apache.cassandra.utils.FBUtilities.updateChecksumInt:(Ljava/util/zip/Checksum;I)V
         2: .line 397
            return
        end local 1 // long value
        end local 0 // java.util.zip.CRC32 crc
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0    crc  Ljava/util/zip/CRC32;
            0    3     1  value  J
    MethodParameters:
       Name  Flags
      crc    
      value  

  private static void validateCRC(int, int);
    descriptor: (II)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // int expected
        start local 1 // int actual
         0: .line 401
            iload 0 /* expected */
            iload 1 /* actual */
            if_icmpeq 2
         1: .line 402
            new org.apache.cassandra.hints.ChecksumMismatchException
            dup
            ldc "Hints Descriptor CRC Mismatch"
            invokespecial org.apache.cassandra.hints.ChecksumMismatchException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 403
      StackMap locals:
      StackMap stack:
            return
        end local 1 // int actual
        end local 0 // int expected
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0  expected  I
            0    3     1    actual  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      expected  
      actual    
}
SourceFile: "HintsDescriptor.java"
NestMembers:
  org.apache.cassandra.hints.HintsDescriptor$EncryptionData
InnerClasses:
  public final ToStringHelper = com.google.common.base.MoreObjects$ToStringHelper of com.google.common.base.MoreObjects
  public Builder = com.google.common.collect.ImmutableMap$Builder of com.google.common.collect.ImmutableMap
  private final EncryptionData = org.apache.cassandra.hints.HintsDescriptor$EncryptionData of org.apache.cassandra.hints.HintsDescriptor