package com.l7tech.server.audit;

import com.l7tech.gateway.common.audit.AuditRecord;
import com.l7tech.gateway.common.audit.AuditRecordHeader;
import com.l7tech.gateway.common.audit.AuditSearchCriteria;
import com.l7tech.gateway.common.audit.MessageSummaryAuditRecord;
import com.l7tech.gateway.common.service.PublishedService;
import com.l7tech.objectmodel.DeleteException;
import com.l7tech.objectmodel.EntityHeader;
import com.l7tech.objectmodel.FindException;
import com.l7tech.objectmodel.Goid;
import com.l7tech.objectmodel.SaveException;
import com.l7tech.objectmodel.UpdateException;
import com.l7tech.objectmodel.EntityManager.UniqueType;
import com.l7tech.server.HibernateEntityManager;
import com.l7tech.server.event.admin.AuditPurgeInitiated;
import com.l7tech.server.service.ServiceCache;
import com.l7tech.util.Config;
import com.l7tech.util.Pair;
import com.l7tech.util.ResourceUtils;
import com.l7tech.util.SqlUtils;
import com.l7tech.util.ValidatedConfig;
import com.l7tech.util.Functions.BinaryThrows;
import com.l7tech.util.Functions.BinaryVoid;
import com.l7tech.util.Functions.QuaternaryVoid;
import jakarta.inject.Inject;
import jakarta.inject.Provider;
import jakarta.persistence.Tuple;
import jakarta.persistence.criteria.CriteriaBuilder;
import jakarta.persistence.criteria.CriteriaQuery;
import jakarta.persistence.criteria.Predicate;
import jakarta.persistence.criteria.Root;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.internal.SessionImpl;
import org.hibernate.query.Query;
import org.jetbrains.annotations.NotNull;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;

@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Throwable.class)
public class AuditRecordManagerImpl extends HibernateEntityManager<AuditRecord, AuditRecordHeader> implements AuditRecordManager, PropertyChangeListener {
   private static final String m;
   private static final String n;
   private static final String o;
   private static final String p;
   private static final String q;
   private static final String r;
   private ValidatedConfig s;
   private AtomicBoolean t = new AtomicBoolean(false);
   private static final Level[] u;
   private static final String v;
   private static final String w;
   private static final String x;
   private static final String y;
   private static final String z;
   private static final String A;
   private static final String B;
   private static final String C;
   private static final String D;
   private static final String E;
   private static final String F;
   private static final String G;
   private static final String H;
   private static final String I;
   private static final String J;
   private static final String K;
   private static final String L;
   private static final String M;
   private static final String N;
   private static final AtomicBoolean O;
   private static final Logger P;
   private Config Q;
   @Inject
   private Provider<ServiceCache> serviceCache;
   private long R;
   private static final String[] T;

   public AuditRecord findByPrimaryKey(Goid var1) throws FindException {
      AuditRecord var2 = (AuditRecord)super.findByPrimaryKey(var1);

      try {
         if (var2 == null || !(var2 instanceof MessageSummaryAuditRecord)) {
            return var2;
         }
      } catch (FindException var6) {
         throw a(var6);
      }

      MessageSummaryAuditRecord var3 = (MessageSummaryAuditRecord)var2;
      PublishedService var4 = ((ServiceCache)this.serviceCache.get()).getCachedService(var3.getServiceGoid());

      try {
         if (var4 != null) {
            var3.setSecurityZone(var4.getSecurityZone());
         }
      } catch (FindException var5) {
         throw a(var5);
      }

      return var2;
   }

   @Override
   public Map<String, Pair<byte[], byte[]>> getDigestForAuditRecords(Collection<String> param1) throws FindException {
      // $VF: Couldn't be decompiled
      // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!)
      // java.lang.RuntimeException: parsing failure!
      //   at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211)
      //   at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:174)
      //
      // Bytecode:
      // 000: aload 1
      // 001: ifnonnull 016
      // 004: new java/lang/NullPointerException
      // 007: dup
      // 008: getstatic com/l7tech/server/audit/AuditRecordManagerImpl.T [Ljava/lang/String;
      // 00b: bipush 50
      // 00d: aaload
      // 00e: invokespecial java/lang/NullPointerException.<init> (Ljava/lang/String;)V
      // 011: athrow
      // 012: invokestatic com/l7tech/server/audit/AuditRecordManagerImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 015: athrow
      // 016: new java/util/HashMap
      // 019: dup
      // 01a: invokespecial java/util/HashMap.<init> ()V
      // 01d: astore 2
      // 01e: aload 1
      // 01f: invokeinterface java/util/Collection.isEmpty ()Z 1
      // 024: ifeq 02d
      // 027: aload 2
      // 028: areturn
      // 029: invokestatic com/l7tech/server/audit/AuditRecordManagerImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 02c: athrow
      // 02d: aconst_null
      // 02e: astore 3
      // 02f: aload 0
      // 030: getfield com/l7tech/server/audit/AuditRecordManagerImpl.s Lcom/l7tech/util/ValidatedConfig;
      // 033: getstatic com/l7tech/server/audit/AuditRecordManagerImpl.T [Ljava/lang/String;
      // 036: astore 13
      // 038: aload 13
      // 03a: bipush 2
      // 03b: aaload
      // 03c: bipush 100
      // 03e: invokevirtual com/l7tech/util/ValidatedConfig.getIntProperty (Ljava/lang/String;I)I
      // 041: istore 4
      // 043: aload 1
      // 044: invokeinterface java/util/Collection.size ()I 1
      // 049: iload 4
      // 04b: if_icmple 0b5
      // 04e: aload 1
      // 04f: invokeinterface java/util/Collection.size ()I 1
      // 054: iload 4
      // 056: isub
      // 057: istore 5
      // 059: aload 1
      // 05a: invokeinterface java/util/Collection.iterator ()Ljava/util/Iterator; 1
      // 05f: astore 6
      // 061: bipush 0
      // 062: istore 7
      // 064: aload 6
      // 066: invokeinterface java/util/Iterator.hasNext ()Z 1
      // 06b: ifeq 08d
      // 06e: iload 7
      // 070: iload 5
      // 072: if_icmpge 08d
      // 075: goto 07c
      // 078: invokestatic com/l7tech/server/audit/AuditRecordManagerImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 07b: athrow
      // 07c: aload 6
      // 07e: invokeinterface java/util/Iterator.remove ()V 1
      // 083: iinc 7 1
      // 086: goto 064
      // 089: invokestatic com/l7tech/server/audit/AuditRecordManagerImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 08c: athrow
      // 08d: getstatic com/l7tech/server/audit/AuditRecordManagerImpl.P Ljava/util/logging/Logger;
      // 090: getstatic java/util/logging/Level.INFO Ljava/util/logging/Level;
      // 093: iload 4
      // 095: aload 1
      // 096: invokeinterface java/util/Collection.size ()I 1
      // 09b: getstatic com/l7tech/server/audit/AuditRecordManagerImpl.T [Ljava/lang/String;
      // 09e: astore 13
      // 0a0: aload 13
      // 0a2: bipush 48
      // 0a4: aaload
      // 0a5: dup_x2
      // 0a6: pop
      // 0a7: aload 13
      // 0a9: bipush 47
      // 0ab: aaload
      // 0ac: swap
      // 0ad: invokedynamic makeConcatWithConstants (Ljava/lang/String;ILjava/lang/String;I)Ljava/lang/String; bsm=java/lang/invoke/StringConcatFactory.makeConcatWithConstants (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; args=[ "\u0001\u0001\u0001\u0001" ]
      // 0b2: invokevirtual java/util/logging/Logger.log (Ljava/util/logging/Level;Ljava/lang/String;)V
      // 0b5: aload 0
      // 0b6: invokevirtual com/l7tech/server/audit/AuditRecordManagerImpl.getSessionFactory ()Lorg/hibernate/SessionFactory;
      // 0b9: invokestatic com/l7tech/server/audit/AuditRecordManagerImpl.useCurrentOrOpenNewSession (Lorg/hibernate/SessionFactory;)Lorg/hibernate/Session;
      // 0bc: astore 3
      // 0bd: aload 3
      // 0be: getstatic com/l7tech/server/audit/AuditRecordManagerImpl.T [Ljava/lang/String;
      // 0c1: astore 13
      // 0c3: aload 13
      // 0c5: bipush 18
      // 0c7: aaload
      // 0c8: invokeinterface org/hibernate/Session.createQuery (Ljava/lang/String;)Lorg/hibernate/query/Query; 2
      // 0cd: astore 5
      // 0cf: new java/util/ArrayList
      // 0d2: dup
      // 0d3: invokespecial java/util/ArrayList.<init> ()V
      // 0d6: astore 6
      // 0d8: aload 1
      // 0d9: invokeinterface java/util/Collection.iterator ()Ljava/util/Iterator; 1
      // 0de: astore 7
      // 0e0: aload 7
      // 0e2: invokeinterface java/util/Iterator.hasNext ()Z 1
      // 0e7: ifeq 10b
      // 0ea: aload 7
      // 0ec: invokeinterface java/util/Iterator.next ()Ljava/lang/Object; 1
      // 0f1: checkcast java/lang/String
      // 0f4: astore 8
      // 0f6: aload 6
      // 0f8: aload 8
      // 0fa: invokestatic com/l7tech/objectmodel/Goid.parseGoid (Ljava/lang/String;)Lcom/l7tech/objectmodel/Goid;
      // 0fd: invokeinterface java/util/Collection.add (Ljava/lang/Object;)Z 2
      // 102: pop
      // 103: goto 108
      // 106: astore 9
      // 108: goto 0e0
      // 10b: aload 5
      // 10d: getstatic com/l7tech/server/audit/AuditRecordManagerImpl.T [Ljava/lang/String;
      // 110: astore 13
      // 112: aload 13
      // 114: bipush 25
      // 116: aaload
      // 117: aload 6
      // 119: invokeinterface org/hibernate/Query.setParameterList (Ljava/lang/String;Ljava/util/Collection;)Lorg/hibernate/Query; 3
      // 11e: pop
      // 11f: aload 0
      // 120: getfield com/l7tech/server/audit/AuditRecordManagerImpl.s Lcom/l7tech/util/ValidatedConfig;
      // 123: aload 13
      // 125: bipush 64
      // 127: aaload
      // 128: ldc 2621440
      // 12a: invokevirtual com/l7tech/util/ValidatedConfig.getIntProperty (Ljava/lang/String;I)I
      // 12d: istore 7
      // 12f: aload 5
      // 131: aload 13
      // 133: bipush 61
      // 135: aaload
      // 136: iload 7
      // 138: invokeinterface org/hibernate/Query.setInteger (Ljava/lang/String;I)Lorg/hibernate/Query; 3
      // 13d: pop
      // 13e: aload 5
      // 140: invokeinterface org/hibernate/Query.scroll ()Lorg/hibernate/ScrollableResults; 1
      // 145: astore 8
      // 147: aload 8
      // 149: invokeinterface org/hibernate/ScrollableResults.next ()Z 1
      // 14e: ifeq 1a8
      // 151: aload 8
      // 153: bipush 0
      // 154: invokeinterface org/hibernate/ScrollableResults.get (I)Ljava/lang/Object; 2
      // 159: checkcast com/l7tech/gateway/common/audit/AuditRecord
      // 15c: astore 9
      // 15e: aload 9
      // 160: invokevirtual com/l7tech/gateway/common/audit/AuditRecord.getSignature ()Ljava/lang/String;
      // 163: astore 10
      // 165: aload 10
      // 167: ifnull 19d
      // 16a: aload 10
      // 16c: invokevirtual java/lang/String.isEmpty ()Z
      // 16f: ifne 19d
      // 172: goto 179
      // 175: invokestatic com/l7tech/server/audit/AuditRecordManagerImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 178: athrow
      // 179: aload 9
      // 17b: invokevirtual com/l7tech/gateway/common/audit/AuditRecord.computeSignatureDigest ()[B
      // 17e: astore 11
      // 180: aload 2
      // 181: aload 9
      // 183: invokevirtual com/l7tech/gateway/common/audit/AuditRecord.getGoid ()Lcom/l7tech/objectmodel/Goid;
      // 186: invokestatic com/l7tech/objectmodel/Goid.toString (Lcom/l7tech/objectmodel/Goid;)Ljava/lang/String;
      // 189: new com/l7tech/util/Pair
      // 18c: dup
      // 18d: aload 11
      // 18f: aload 9
      // 191: invokevirtual com/l7tech/gateway/common/audit/AuditRecord.computeOldIdSignatureDigest ()[B
      // 194: invokespecial com/l7tech/util/Pair.<init> (Ljava/lang/Object;Ljava/lang/Object;)V
      // 197: invokeinterface java/util/Map.put (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; 3
      // 19c: pop
      // 19d: aload 3
      // 19e: aload 9
      // 1a0: invokeinterface org/hibernate/Session.evict (Ljava/lang/Object;)V 2
      // 1a5: goto 147
      // 1a8: aload 3
      // 1a9: invokestatic com/l7tech/server/audit/AuditRecordManagerImpl.closeNewSession (Lorg/hibernate/Session;)V
      // 1ac: goto 1ca
      // 1af: astore 4
      // 1b1: new com/l7tech/objectmodel/FindException
      // 1b4: dup
      // 1b5: getstatic com/l7tech/server/audit/AuditRecordManagerImpl.T [Ljava/lang/String;
      // 1b8: bipush 56
      // 1ba: aaload
      // 1bb: aload 4
      // 1bd: invokespecial com/l7tech/objectmodel/FindException.<init> (Ljava/lang/String;Ljava/lang/Throwable;)V
      // 1c0: athrow
      // 1c1: astore 12
      // 1c3: aload 3
      // 1c4: invokestatic com/l7tech/server/audit/AuditRecordManagerImpl.closeNewSession (Lorg/hibernate/Session;)V
      // 1c7: aload 12
      // 1c9: athrow
      // 1ca: aload 2
      // 1cb: areturn
      // try (51 -> 61): 61 java/lang/NumberFormatException
      // try (48 -> 54): 55 java/lang/NumberFormatException
      // try (15 -> 20): 20 java/lang/NumberFormatException
      // try (0 -> 9): 9 java/lang/NumberFormatException
      // try (107 -> 112): 113 java/lang/NumberFormatException
      // try (153 -> 158): 159 java/lang/NumberFormatException
      // try (24 -> 180): 183 org/hibernate/HibernateException
      // try (24 -> 180): 192 null
      // try (183 -> 193): 192 null
   }

   @Transactional(readOnly = true)
   @Override
   public List<AuditRecordHeader> findHeaders(AuditSearchCriteria var1) throws FindException {
      Class var2 = this.b(var1);

      boolean var10000;
      label17: {
         try {
            if (var2 == MessageSummaryAuditRecord.class) {
               var10000 = true;
               break label17;
            }
         } catch (FindException var7) {
            throw a(var7);
         }

         var10000 = false;
      }

      boolean var3 = var10000;
      ad var4 = new ad(this, var3, var1);
      ae var5 = new ae(this, var3);
      List var6 = this.a(var1, var4, var5);
      return Collections.unmodifiableList(var6);
   }

   public AuditRecord findByHeader(EntityHeader var1) throws FindException {
      return (AuditRecord)super.findByHeader(var1);
   }

   private <T> List<T> a(
      @NotNull AuditSearchCriteria var1,
      @NotNull QuaternaryVoid<CriteriaBuilder, CriteriaQuery, Root, Predicate> var2,
      @NotNull BinaryVoid<List<T>, Tuple> var3
   ) throws FindException {
      try {
         if (var1 == null) {
            b(0);
         }
      } catch (HibernateException var23) {
         throw a(var23);
      }

      try {
         if (var2 == null) {
            b(1);
         }
      } catch (HibernateException var28) {
         throw a(var28);
      }

      try {
         if (var3 == null) {
            b(2);
         }
      } catch (HibernateException var22) {
         throw a(var22);
      }

      try {
         if (var1 == null) {
            throw new IllegalArgumentException(T[21]);
         }
      } catch (HibernateException var27) {
         throw a(var27);
      }

      int var4 = this.a(var1);
      ArrayList var5 = new ArrayList(var4);

      try {
         if (this.c(var1)) {
            return var5;
         }
      } catch (HibernateException var26) {
         throw a(var26);
      }

      Session var6 = null;

      try {
         var6 = useCurrentOrOpenNewSession(this.getSessionFactory());
         CriteriaBuilder var7 = var6.getCriteriaBuilder();
         CriteriaQuery var8 = var7.createTupleQuery();
         Root var9 = var8.from(this.b(var1));
         var2.call(var7, var8, var9, (Predicate)this.d(var1).call(var7, var9));
         Query var10 = var6.createQuery(var8);
         var10.setMaxResults(var4);

         for (Tuple var13 : var10.getResultList()) {
            var3.call(var5, var13);
         }

         return var5;
      } catch (HibernateException var24) {
         throw new FindException(T[10], var24);
      } finally {
         closeNewSession(var6);
      }
   }

   private int a(AuditSearchCriteria var1) {
      int var2 = var1.maxRecords;
      if (var2 <= 0) {
         var2 = 4096;
      }

      return var2;
   }

   Class b(AuditSearchCriteria param1) {
      // $VF: Couldn't be decompiled
      // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!)
      // java.lang.RuntimeException: parsing failure!
      //   at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211)
      //   at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:174)
      //
      // Bytecode:
      // 00: aload 1
      // 01: getfield com/l7tech/gateway/common/audit/AuditSearchCriteria.recordClass Ljava/lang/Class;
      // 04: astore 2
      // 05: aload 2
      // 06: ifnonnull 0e
      // 09: aload 0
      // 0a: invokevirtual com/l7tech/server/audit/AuditRecordManagerImpl.getInterfaceClass ()Ljava/lang/Class;
      // 0d: astore 2
      // 0e: aload 1
      // 0f: getfield com/l7tech/gateway/common/audit/AuditSearchCriteria.entityClassName Ljava/lang/String;
      // 12: invokestatic com/l7tech/server/audit/AuditRecordManagerImpl.a (Ljava/lang/String;)Z
      // 15: ifne 26
      // 18: aload 1
      // 19: getfield com/l7tech/gateway/common/audit/AuditSearchCriteria.entityId Lcom/l7tech/objectmodel/Goid;
      // 1c: ifnull 2e
      // 1f: goto 26
      // 22: invokestatic com/l7tech/server/audit/AuditRecordManagerImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 25: athrow
      // 26: bipush 1
      // 27: goto 2f
      // 2a: invokestatic com/l7tech/server/audit/AuditRecordManagerImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 2d: athrow
      // 2e: bipush 0
      // 2f: istore 3
      // 30: aload 1
      // 31: getfield com/l7tech/gateway/common/audit/AuditSearchCriteria.operation Ljava/lang/String;
      // 34: invokestatic com/l7tech/server/audit/AuditRecordManagerImpl.a (Ljava/lang/String;)Z
      // 37: istore 4
      // 39: aload 1
      // 3a: getfield com/l7tech/gateway/common/audit/AuditSearchCriteria.requestId Ljava/lang/String;
      // 3d: invokestatic com/l7tech/server/audit/AuditRecordManagerImpl.a (Ljava/lang/String;)Z
      // 40: istore 5
      // 42: iload 3
      // 43: ifeq 4c
      // 46: ldc com/l7tech/gateway/common/audit/AdminAuditRecord
      // 48: astore 2
      // 49: goto 60
      // 4c: iload 5
      // 4e: ifne 5d
      // 51: iload 4
      // 53: ifeq 60
      // 56: goto 5d
      // 59: invokestatic com/l7tech/server/audit/AuditRecordManagerImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 5c: athrow
      // 5d: ldc com/l7tech/gateway/common/audit/MessageSummaryAuditRecord
      // 5f: astore 2
      // 60: aload 2
      // 61: areturn
      // try (8 -> 15): 16 java/lang/NullPointerException
      // try (12 -> 20): 20 java/lang/NullPointerException
      // try (37 -> 41): 42 java/lang/NullPointerException
   }

   boolean c(AuditSearchCriteria param1) {
      // $VF: Couldn't be decompiled
      // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!)
      // java.lang.RuntimeException: parsing failure!
      //   at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211)
      //   at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:174)
      //
      // Bytecode:
      // 00: aload 1
      // 01: getfield com/l7tech/gateway/common/audit/AuditSearchCriteria.requestId Ljava/lang/String;
      // 04: invokestatic com/l7tech/server/audit/AuditRecordManagerImpl.a (Ljava/lang/String;)Z
      // 07: istore 2
      // 08: aload 1
      // 09: getfield com/l7tech/gateway/common/audit/AuditSearchCriteria.entityClassName Ljava/lang/String;
      // 0c: invokestatic com/l7tech/server/audit/AuditRecordManagerImpl.a (Ljava/lang/String;)Z
      // 0f: istore 3
      // 10: aload 1
      // 11: getfield com/l7tech/gateway/common/audit/AuditSearchCriteria.entityId Lcom/l7tech/objectmodel/Goid;
      // 14: ifnull 1f
      // 17: bipush 1
      // 18: goto 20
      // 1b: invokestatic com/l7tech/server/audit/AuditRecordManagerImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 1e: athrow
      // 1f: bipush 0
      // 20: istore 4
      // 22: aload 1
      // 23: getfield com/l7tech/gateway/common/audit/AuditSearchCriteria.operation Ljava/lang/String;
      // 26: invokestatic com/l7tech/server/audit/AuditRecordManagerImpl.a (Ljava/lang/String;)Z
      // 29: istore 5
      // 2b: iload 2
      // 2c: ifeq 4e
      // 2f: iload 3
      // 30: ifne 46
      // 33: goto 3a
      // 36: invokestatic com/l7tech/server/audit/AuditRecordManagerImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 39: athrow
      // 3a: iload 4
      // 3c: ifeq 4e
      // 3f: goto 46
      // 42: invokestatic com/l7tech/server/audit/AuditRecordManagerImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 45: athrow
      // 46: bipush 1
      // 47: goto 4f
      // 4a: invokestatic com/l7tech/server/audit/AuditRecordManagerImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 4d: athrow
      // 4e: bipush 0
      // 4f: istore 6
      // 51: iload 5
      // 53: ifeq 75
      // 56: iload 3
      // 57: ifne 6d
      // 5a: goto 61
      // 5d: invokestatic com/l7tech/server/audit/AuditRecordManagerImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 60: athrow
      // 61: iload 4
      // 63: ifeq 75
      // 66: goto 6d
      // 69: invokestatic com/l7tech/server/audit/AuditRecordManagerImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 6c: athrow
      // 6d: bipush 1
      // 6e: goto 76
      // 71: invokestatic com/l7tech/server/audit/AuditRecordManagerImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 74: athrow
      // 75: bipush 0
      // 76: istore 7
      // 78: iload 6
      // 7a: ifne 89
      // 7d: iload 7
      // 7f: ifeq 91
      // 82: goto 89
      // 85: invokestatic com/l7tech/server/audit/AuditRecordManagerImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 88: athrow
      // 89: bipush 1
      // 8a: goto 92
      // 8d: invokestatic com/l7tech/server/audit/AuditRecordManagerImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 90: athrow
      // 91: bipush 0
      // 92: ireturn
      // try (8 -> 13): 13 java/lang/NullPointerException
      // try (21 -> 25): 26 java/lang/NullPointerException
      // try (23 -> 30): 31 java/lang/NullPointerException
      // try (28 -> 35): 35 java/lang/NullPointerException
      // try (39 -> 43): 44 java/lang/NullPointerException
      // try (41 -> 48): 49 java/lang/NullPointerException
      // try (46 -> 53): 53 java/lang/NullPointerException
      // try (57 -> 61): 62 java/lang/NullPointerException
      // try (59 -> 66): 66 java/lang/NullPointerException
   }

   private static boolean a(String param0) {
      // $VF: Couldn't be decompiled
      // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!)
      // java.lang.RuntimeException: parsing failure!
      //   at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211)
      //   at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:174)
      //
      // Bytecode:
      // 00: aload 0
      // 01: ifnull 1d
      // 04: aload 0
      // 05: invokevirtual java/lang/String.trim ()Ljava/lang/String;
      // 08: invokevirtual java/lang/String.isEmpty ()Z
      // 0b: ifne 1d
      // 0e: goto 15
      // 11: invokestatic com/l7tech/server/audit/AuditRecordManagerImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 14: athrow
      // 15: bipush 1
      // 16: goto 1e
      // 19: invokestatic com/l7tech/server/audit/AuditRecordManagerImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 1c: athrow
      // 1d: bipush 0
      // 1e: ireturn
      // try (0 -> 6): 7 java/lang/NullPointerException
      // try (2 -> 11): 11 java/lang/NullPointerException
   }

   protected AuditRecordHeader newHeader(AuditRecord param1) {
      // $VF: Couldn't be decompiled
      // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!)
      // java.lang.RuntimeException: parsing failure!
      //   at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211)
      //   at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:174)
      //
      // Bytecode:
      // 00: new com/l7tech/gateway/common/audit/AuditRecordHeader
      // 03: dup
      // 04: aload 1
      // 05: invokespecial com/l7tech/gateway/common/audit/AuditRecordHeader.<init> (Lcom/l7tech/gateway/common/audit/AuditRecord;)V
      // 08: astore 2
      // 09: aload 1
      // 0a: invokevirtual com/l7tech/gateway/common/audit/AuditRecord.getSignature ()Ljava/lang/String;
      // 0d: astore 3
      // 0e: aload 2
      // 0f: aload 3
      // 10: ifnull 37
      // 13: aload 3
      // 14: invokevirtual java/lang/String.length ()I
      // 17: ifle 37
      // 1a: goto 21
      // 1d: invokestatic com/l7tech/server/audit/AuditRecordManagerImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 20: athrow
      // 21: new com/l7tech/util/Pair
      // 24: dup
      // 25: aload 1
      // 26: invokevirtual com/l7tech/gateway/common/audit/AuditRecord.computeSignatureDigest ()[B
      // 29: aload 1
      // 2a: invokevirtual com/l7tech/gateway/common/audit/AuditRecord.computeOldIdSignatureDigest ()[B
      // 2d: invokespecial com/l7tech/util/Pair.<init> (Ljava/lang/Object;Ljava/lang/Object;)V
      // 30: goto 38
      // 33: invokestatic com/l7tech/server/audit/AuditRecordManagerImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 36: athrow
      // 37: aconst_null
      // 38: invokevirtual com/l7tech/gateway/common/audit/AuditRecordHeader.setSignatureDigest (Lcom/l7tech/util/Pair;)V
      // 3b: aload 2
      // 3c: areturn
      // try (8 -> 14): 15 java/lang/NullPointerException
      // try (11 -> 25): 25 java/lang/NullPointerException
   }

   @Override
   public int findCount(AuditSearchCriteria var1) throws FindException {
      return super.findCount(var1.recordClass, this.d(var1));
   }

   @Override
   public Collection<AuditRecord> findPage(AuditRecordManager.SortProperty var1, boolean var2, int var3, int var4, AuditSearchCriteria var5) throws FindException {
      return super.findPage(var5.recordClass, var1.getPropertyName(), var2, var3, var4, this.d(var5));
   }

   @Override
   public void deleteOldAuditRecords(long var1) throws DeleteException {
      this.applicationContext.publishEvent(new AuditPurgeInitiated(this));
      String[] var8 = T;
      String var3 = this.Q.getProperty(var8[16]);

      label27: {
         try {
            if (var3 != null && var3.length() != 0) {
               break label27;
            }
         } catch (NumberFormatException var10) {
            throw a(var10);
         }

         var8 = T;
         var3 = var8[37];
      }

      int var4 = 168;

      try {
         var4 = Integer.valueOf(var3);
      } catch (NumberFormatException var9) {
         var8 = T;
         P.info(var8[12] + var3 + var8[29] + var4 + var8[31]);
      }

      long var5 = var4 * 60L * 60L * 1000L;
      ah var7 = new ah(this, System.currentTimeMillis() - Math.max(var5, var1));
      new Thread(var7).start();
   }

   @Override
   public long getMinMills(long param1) throws SQLException {
      // $VF: Couldn't be decompiled
      // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!)
      // java.lang.RuntimeException: parsing failure!
      //   at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211)
      //   at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:174)
      //
      // Bytecode:
      // 00: aload 0
      // 01: invokevirtual com/l7tech/server/audit/AuditRecordManagerImpl.getSessionFactory ()Lorg/hibernate/SessionFactory;
      // 04: invokestatic com/l7tech/server/audit/AuditRecordManagerImpl.useCurrentOrOpenNewSession (Lorg/hibernate/SessionFactory;)Lorg/hibernate/Session;
      // 07: astore 3
      // 08: aconst_null
      // 09: astore 4
      // 0b: aconst_null
      // 0c: astore 5
      // 0e: aload 3
      // 0f: checkcast org/hibernate/internal/SessionImpl
      // 12: invokevirtual org/hibernate/internal/SessionImpl.connection ()Ljava/sql/Connection;
      // 15: astore 6
      // 17: aload 6
      // 19: getstatic com/l7tech/server/audit/AuditRecordManagerImpl.T [Ljava/lang/String;
      // 1c: astore 11
      // 1e: aload 11
      // 20: bipush 26
      // 22: aaload
      // 23: invokeinterface java/sql/Connection.prepareStatement (Ljava/lang/String;)Ljava/sql/PreparedStatement; 2
      // 28: astore 4
      // 2a: aload 4
      // 2c: bipush 1
      // 2d: lload 1
      // 2e: invokeinterface java/sql/PreparedStatement.setLong (IJ)V 4
      // 33: aload 4
      // 35: invokeinterface java/sql/PreparedStatement.executeQuery ()Ljava/sql/ResultSet; 1
      // 3a: astore 5
      // 3c: aload 5
      // 3e: invokeinterface java/sql/ResultSet.next ()Z 1
      // 43: ifeq 97
      // 46: aload 5
      // 48: bipush 1
      // 49: invokeinterface java/sql/ResultSet.getString (I)Ljava/lang/String; 2
      // 4e: astore 7
      // 50: aload 7
      // 52: ifnull 69
      // 55: aload 11
      // 57: bipush 63
      // 59: aaload
      // 5a: aload 7
      // 5c: invokevirtual java/lang/String.equalsIgnoreCase (Ljava/lang/String;)Z
      // 5f: ifeq 7f
      // 62: goto 69
      // 65: invokestatic com/l7tech/server/audit/AuditRecordManagerImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 68: athrow
      // 69: getstatic com/l7tech/server/audit/AuditRecordManagerImpl.P Ljava/util/logging/Logger;
      // 6c: getstatic java/util/logging/Level.FINE Ljava/util/logging/Level;
      // 6f: getstatic com/l7tech/server/audit/AuditRecordManagerImpl.T [Ljava/lang/String;
      // 72: bipush 67
      // 74: aaload
      // 75: invokevirtual java/util/logging/Logger.log (Ljava/util/logging/Level;Ljava/lang/String;)V
      // 78: goto 97
      // 7b: invokestatic com/l7tech/server/audit/AuditRecordManagerImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 7e: athrow
      // 7f: aload 7
      // 81: invokestatic java/lang/Long.parseLong (Ljava/lang/String;)J
      // 84: lstore 8
      // 86: aload 5
      // 88: invokestatic com/l7tech/util/ResourceUtils.closeQuietly (Ljava/sql/ResultSet;)V
      // 8b: aload 4
      // 8d: invokestatic com/l7tech/util/ResourceUtils.closeQuietly (Ljava/sql/Statement;)V
      // 90: aload 3
      // 91: invokestatic com/l7tech/server/audit/AuditRecordManagerImpl.closeNewSession (Lorg/hibernate/Session;)V
      // 94: lload 8
      // 96: lreturn
      // 97: aload 5
      // 99: invokestatic com/l7tech/util/ResourceUtils.closeQuietly (Ljava/sql/ResultSet;)V
      // 9c: aload 4
      // 9e: invokestatic com/l7tech/util/ResourceUtils.closeQuietly (Ljava/sql/Statement;)V
      // a1: aload 3
      // a2: invokestatic com/l7tech/server/audit/AuditRecordManagerImpl.closeNewSession (Lorg/hibernate/Session;)V
      // a5: goto bb
      // a8: astore 10
      // aa: aload 5
      // ac: invokestatic com/l7tech/util/ResourceUtils.closeQuietly (Ljava/sql/ResultSet;)V
      // af: aload 4
      // b1: invokestatic com/l7tech/util/ResourceUtils.closeQuietly (Ljava/sql/Statement;)V
      // b4: aload 3
      // b5: invokestatic com/l7tech/server/audit/AuditRecordManagerImpl.closeNewSession (Lorg/hibernate/Session;)V
      // b8: aload 10
      // ba: athrow
      // bb: ldc2_w -1
      // be: lreturn
      // try (36 -> 52): 52 java/sql/SQLException
      // try (34 -> 42): 43 java/sql/SQLException
      // try (8 -> 57): 72 null
      // try (72 -> 73): 72 null
   }

   @Override
   public int deleteRangeByTime(long var1, long var3) throws SQLException {
      Session var5 = useCurrentOrOpenNewSession(this.getSessionFactory());
      PreparedStatement var6 = null;

      try {
         Connection var7 = ((SessionImpl)var5).connection();
         var6 = var7.prepareStatement(T[54]);
         var6.setLong(1, var1);
         var6.setLong(2, var3);
         return var6.executeUpdate();
      } finally {
         ResourceUtils.closeQuietly(var6);
         closeNewSession(var5);
      }
   }

   @Override
   public long getMaxTableSpace() throws FindException {
      Session var1 = useCurrentOrOpenNewSession(this.getSessionFactory());
      PreparedStatement var2 = null;
      ResultSet var3 = null;

      try {
         Connection var4 = ((SessionImpl)var1).connection();
         String[] var18 = T;
         var2 = var4.prepareStatement(var18[1]);
         var3 = var2.executeQuery();

         label54: {
            try {
               if (var3 != null && var3.next()) {
                  break label54;
               }
            } catch (SQLException var14) {
               throw a(var14);
            }

            return -1L;
         }

         var18 = T;
         String var5 = var3.getString(var18[9]);
         return SqlUtils.getMaxTableSize(var5);
      } catch (SQLException var15) {
         String[] var9 = T;
         throw new FindException(var9[46], var15);
      } catch (NumberFormatException var16) {
         throw new FindException(T[14], var16);
      } finally {
         ResourceUtils.closeQuietly(var3);
         ResourceUtils.closeQuietly(var2);
         closeNewSession(var1);
      }
   }

   @Override
   public long getCurrentUsage() throws FindException {
      Session var1 = useCurrentOrOpenNewSession(this.getSessionFactory());
      PreparedStatement var2 = null;
      ResultSet var3 = null;

      try {
         Connection var4 = ((SessionImpl)var1).connection();
         String[] var19 = T;
         var2 = var4.prepareStatement(var19[45]);
         var3 = var2.executeQuery();
         if (var3 != null) {
            long var5 = 0L;
            long var7 = 0L;

            while (var3.next()) {
               var19 = T;
               var5 += var3.getLong(var19[6]);
               var7 += var3.getLong(var19[24]);
            }

            long var9 = var5 + var7;
            var19 = T;
            P.log(Level.FINE, var19[3], var9);
            return var9;
         }
      } catch (SQLException var17) {
         String[] var14 = T;
         throw new FindException(var14[14], var17);
      } finally {
         ResourceUtils.closeQuietly(var3);
         ResourceUtils.closeQuietly(var2);
         closeNewSession(var1);
      }

      throw new FindException(T[60]);
   }

   public Class<AuditRecord> getImpClass() {
      return AuditRecord.class;
   }

   @Override
   public Class<AuditRecord> getInterfaceClass() {
      return AuditRecord.class;
   }

   @Override
   public String getTableName() {
      return T[43];
   }

   public void setServerConfig(Config var1) {
      this.Q = var1;
      this.s = new ValidatedConfig(var1, P);
      String[] var2 = T;
      this.s.setMinimumValue(var2[66], 100);
      this.s.setMaximumValue(var2[2], 1000);
      this.s.setMinimumValue(var2[35], 1024);
      this.s.setMaximumValue(var2[64], 20971520);
      this.s.setMinimumValue(var2[13], 0);
      this.s.setMaximumValue(var2[13], Long.MAX_VALUE);
      this.R = this.s.getLongProperty(var2[13], 10485760L);
   }

   @Override
   public void setDatabaseFull(boolean var1) {
      this.t.set(var1);
   }

   public void update(AuditRecord var1) throws UpdateException {
      try {
         if (!this.t.get()) {
            super.update(var1);
            return;
         }
      } catch (UpdateException var2) {
         throw a(var2);
      }

      P.log(Level.WARNING, T[30]);
   }

   public Goid save(AuditRecord var1) throws SaveException {
      try {
         if (!this.t.get()) {
            return super.save(var1);
         }
      } catch (SaveException var2) {
         throw a(var2);
      }

      P.log(Level.WARNING, T[32]);
      return null;
   }

   @Override
   public Config getAuditValidatedConfig() {
      return this.s;
   }

   @Override
   protected UniqueType getUniqueType() {
      return UniqueType.NONE;
   }

   @Override
   public void propertyChange(PropertyChangeEvent param1) {
      // $VF: Couldn't be decompiled
      // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!)
      // java.lang.RuntimeException: parsing failure!
      //   at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211)
      //   at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:174)
      //
      // Bytecode:
      // 00: aload 1
      // 01: invokevirtual java/beans/PropertyChangeEvent.getPropertyName ()Ljava/lang/String;
      // 04: astore 2
      // 05: aload 2
      // 06: ifnull 38
      // 09: aload 2
      // 0a: getstatic com/l7tech/server/audit/AuditRecordManagerImpl.T [Ljava/lang/String;
      // 0d: bipush 39
      // 0f: aaload
      // 10: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 13: ifeq 38
      // 16: goto 1d
      // 19: invokestatic com/l7tech/server/audit/AuditRecordManagerImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 1c: athrow
      // 1d: aload 0
      // 1e: aload 0
      // 1f: getfield com/l7tech/server/audit/AuditRecordManagerImpl.s Lcom/l7tech/util/ValidatedConfig;
      // 22: getstatic com/l7tech/server/audit/AuditRecordManagerImpl.T [Ljava/lang/String;
      // 25: bipush 13
      // 27: aaload
      // 28: ldc2_w 10485760
      // 2b: invokevirtual com/l7tech/util/ValidatedConfig.getLongProperty (Ljava/lang/String;J)J
      // 2e: putfield com/l7tech/server/audit/AuditRecordManagerImpl.R J
      // 31: goto 38
      // 34: invokestatic com/l7tech/server/audit/AuditRecordManagerImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 37: athrow
      // 38: return
      // try (3 -> 11): 12 java/lang/NullPointerException
      // try (5 -> 23): 24 java/lang/NullPointerException
   }

   private BinaryThrows<Predicate, CriteriaBuilder, Root<AuditRecord>, FindException> d(AuditSearchCriteria var1) throws FindException {
      return new af(this, var1);
   }

   private Predicate a(CriteriaBuilder var1, Root<AuditRecord> var2, Map<String, Long> var3, boolean var4) {
      Predicate var5 = var1.disjunction();

      for (Entry var7 : var3.entrySet()) {
         Predicate var8 = var1.conjunction();
         String[] var9 = T;
         var8 = var1.and(var8, var1.equal(var2.get(var9[57]), var7.getKey()));
         if (var4) {
            var8 = var1.and(var8, var1.gt(var2.get(var9[62]), (Number)var7.getValue()));
         } else {
            var8 = var1.and(var8, var1.lt(var2.get(T[4]), (Number)var7.getValue()));
         }

         var5 = var1.or(var5, var8);
      }

      return var5;
   }

   static {
      String[] var5 = new String[69];
      int var3 = 0;
      String var2 = "\u001c\u0015h D^\u0002\f!\u007f!F^\u0012\u0010\u0003J!YS+&9B\u0019\u0010a7'8L\f|r%U=D\u0005u\u0017Q\u001c\u001fc!TU)\u0011\u0010y/oQ\u001f\u0019\u0014R>QC\u001eR\"\u0014\u0004i'D\u0019\u0000\u0014\u001dd*QC\u0013&\u0018j QC\u0003\u0007\u0014##QO\u0004\u0010\u0012b<TD\u001c6\u0004\u007f<UY\u0002U\u0004~/WRLUV*5\u0000JQRQo7DR\u0005\u0006\u0018\u0018a\"YD\u000f\u0007\u0014~;\\C&\u0007\u001en+CD\u0019\u0007\u000b\u0011\u0010y/o[\u0013\u001b\u0016y&\b\u0016\u0003d:UE\u001f\u0014\u0007\u0018\u0014~=QP\u0013\u0005\u0003\u0010a;U\u001b6\u001ex\"TYQ\u0001Qk'^SV4\u0004i'D\u0017$\u0010\u0012b<TD>4\u0003j;]R\u0018\u0001Qk!B\u00176;\u001ey\u0000E[\u001aU\u0001l<QZ\u0013\u0001\u0014\u007fn\u0017\u0012\u0005RQb(\u0010\u0012\u0005[T~n]B\u0005\u0001Qc!D\u0017\u0014\u0010Qc;\\[\u001c\u0014\u0004i'Dg\u0003\u0007\u0016h\u0003YY\u001f\u0018\u0004`\u000fWRV\u0003\u0010a;U\u0017Q\u0016\u0014\u0004i'D\u0019\u001b\u0010\u0002~/WR%\u001c\u000bh\u0002YZ\u001f\u0001?0\u0003\u007f!B\u0017\u0004\u0010\u0005\u007f'UA\u001f\u001b\u0016-#QOV\u0006\u0001l-U\u0017\u0017\u0019\u001db-QC\u0013\u0011Qk!B\u0017\u0002\u001d\u0014-'^Y\u0019\u0011\u0013-:QU\u001a\u0010\u0002}/SRX\u0006\u001b\u001ei+yS\u0014\u0014\u0004i'Dg\u0003\u0007\u0016h\u0003YY\u001f\u0018\u0004`\u000fWR\u0006\u0000\u0002h<yS\u009b\u0013\u0003b#\u0010v\u0003\u0011\u0018y\u001cUT\u0019\u0007\u0015-9XR\u0004\u0010Qj!YSV\u001c\u001f-f\n^\u0012\u0006X-/^SV]\u0003h?ER\u0005\u0001)`\"\u0010^\u0005U\u001fx\"\\\u0017\u0019\u0007Qa+^P\u0002\u001dY\u007f+AB\u0013\u0006\u0005U#\\\u001eVIQ7#QO%\u001c\u000bhg\u0010V\u0018\u0011Q%<UD\u0006\u001a\u001f~+hZ\u001aU\u0018~n^B\u001a\u0019Qb<\u0010[\u0013\u001b\u0016y&\u0018E\u0013\u0006\u0001b CR.\u0018\u001d$n\f\u0017L\u0018\u0010u\u001dYM\u0013\\+&9B\u0019\u0010a7'8L\f|r%U=D\u0005u\u0017Q\u001c\u001fc!TU)\u0011\u0010y/oQ\u001f\u0019\u0014R>QC\u001eR/&4A\u000bscV88CfD^\u001b\u0010X-\bbx;U\u0010x*YC)\u0018\u0010d \u0010`>0#HnD^\u001b\u0010Q3n\u000f\u00196\u0003d:UE\u001f\u0014Q`;CCV\u001b\u001eynRRV\u001b\u0004a\"¼14A\u000bdrV3#B\u0003\u0010V\u0003\u0011\u0018y\u0011]V\u001f\u001bQz&UE\u0013U\u0016b'T\u0017\u001f\u001bQ%\u001du{36%-)_^\u0012U7_\u0001}\u0017^&4A\u000bscV'>Z\u0011~b;74_f\u0019\u00179#4_f\u0019\u0017\u0017\u0006Q\u007f!GY\u0003\u0018\u0013h<\u001c\u0017\u0011\u001a\u0018inve98Ql;T^\u0002*\u001cl'^\u0017!=4_\u000b\u0010V\u0003\u0011\u0018y\u0011\\R\u0000\u0010\u001d-r\u000e\u0017IUQl T\u0017\u0002\u001c\u001chn\f\u0017I\\QL\u001d\u0010Q\u0019\u001aQZ\u0006ue3U\u0003b9^B\u001b\u0017\u0014\u007fn\f\nVDA=~\u0000\u001e\u0004\u001b\u0010`+\f\u001c\u001fi+Hh\u001a\u0010\u001fj:X\u0003\u001c\u0015~/&4A\u000bscV88CfD^\u001b\u0010X-\bbx;U\u0010x*YC)\u0018\u0010d \u0010`>0#HnD^\u001b\u0010Q3n\u000f\u0007\u0018\u0010u\u001dYM\u0013\t\u0006\u0018j QC\u0003\u0007\u0014\u001fRQd=\u0010Y\u0019\u0001QlnFV\u001a\u001c\u0015- EZ\u0014\u0010\u0003#neD\u001f\u001b\u0016-/ \u001fl,\\RV\u0001\u001e-;@S\u0017\u0001\u0014-\u000fES\u001f\u0001#h-_E\u0012OQI/DV\u0014\u0014\u0002hnYDV\u0013\u0004a\"\u0011\tU\u0018c=DR\u0017\u0011_- \u001fl,\\RV\u0001\u001e-=QA\u0013U0x*YC$\u0010\u0012b<T\rV1\u0010y/RV\u0005\u0010Qd=\u0010Q\u0003\u0019\u001d,\n\u0010\u001fy'DN1\u001a\u0018i\u0011&9B\u0019\u0010c77=Hncc7!$^\u001b\u0014\u0004i'D\u0019\u0005\u0010\u0010\u007f-X\u0019\u001b\u0014\t@+CD\u0017\u0012\u0014^'JR\u0006\u0006\u0005\u007f\u0002F[\u0003DG5\u0010\u0011\u0014a+DR)\u0007\u0010c)Uh\u0013\u001b\u0015\u0016\u0014\u0004i'D\u0019\u001b\u0010\u0002~/WR%\u001c\u000bh\u0002YZ\u001f\u0001\u0004\u0012\u001ed*\u009b\u0013\u0003b#\u0010v\u0003\u0011\u0018y\u001cUT\u0019\u0007\u0015-9XR\u0004\u0010Qj!YSV\u001c\u001f-f\n^\u0012\u0006X-/^SV]\u0003h?ER\u0005\u0001)`\"\u0010^\u0005U\u001fx\"\\\u0017\u0019\u0007Qa+^P\u0002\u001dY\u007f+AB\u0013\u0006\u0005U#\\\u001eVIQ7#QO%\u001c\u000bhg\u0010V\u0018\u0011Q%<UD\u0006\u001a\u001f~+hZ\u001aU\u0018~n^B\u001a\u0019Qb<\u0010[\u0013\u001b\u0016y&\u0018E\u0013\u0006\u0001b CR.\u0018\u001d$n\f\u0017L\u0018\u0010u\u001dYM\u0013\\\u0004\u001b\u0010`+\n\u0014\u0004i'Dh\u001b\u0014\u0018c.\u0016\u001e`a\\\u0000\u0002\u0010\u0012eaCR\u0004\u0003\u0014\u007faQB\u0012\u001c\u0005\"\u000fES\u001f\u0001#h-_E\u00128\u0010c/WR\u0004<\u001c}\"\u0011&9B\u0019\u0010c77=Hncc7!$^?0\u0003\u007f!B\u0017\u0004\u0010\u0005\u007f'UA\u001f\u001b\u0016-#QOV\u0006\u0001l-U\u0017\u0017\u0019\u001db-QC\u0013\u0011Qk!B\u0017\u0002\u001d\u0014-'^Y\u0019\u0011\u0013-:QU\u001a\u0010\u0002}/SRX\u0006U\u0017\u007f!]\u0017/;\u0004`,UEV\u001a\u0017-/ES\u001f\u0001\u0002-:_\u0017\u0012\u001c\u0016h=D\u0017\u0004\u0010\u0015x-USV\u0001\u001e-\"YZ\u001f\u0001Qb(\u0010\u0015\u0005\u0003h*YT\u0017\u0001\u0014N!^Q\u001f\u0012\u0004\u007f/DX\u0004\u0016\u0014\u0004i'De\u0013\u0016\u001e\u007f*yS\u0005U\u0018~n^B\u001a\u0019\u0003\u001c\u0015~\f\u0006\u0005\u007f\u001cUF\u0003\u0010\u0002y\u0007T\u0004\u0013\u0018c*@14A\u000bdrV3#B\u0003\u0010V\u0003\u0011\u0018y\u0011]V\u001f\u001bQZ\u0006ue3U\u0005d#U\u0017HHQ2nqy2U\u0005d#U\u0017JHQ2n|~;<%-\u007f\u0000\u0007FE\u000f\u0010\u001fy'DN5\u0019\u0010~=^V\u001b\u0010\u001b6\u001ex\"TYQ\u0001Qk'^SV4\u0004i'D\u0017$\u0010\u0012b<TD\u0006\u001b\u001ei+yS\b\u0000\u0002h<~V\u001b\u0010F14A\u000bdrV3#B\u0003\u0010V\u0003\u0011\u0018y\u0011]V\u001f\u001bQZ\u0006ue3U\u0010x*YC)\u0019\u0014{+\\\u0017JKQ2nqy2U\u0005d#U\u0017JUN-\u0002yz?!Q<~\u0000\u0007FR0\u0003\u007f!B\u0017\u0004\u0010\u0005\u007f'UA\u001f\u001b\u0016-#QOV\u0006\u0001l-U\u0017\u0017\u0019\u001db-QC\u0013\u0011Qk!B\u0017\u0002\u001d\u0014-'^Y\u0019\u0011\u0013-:QU\u001a\u0010\u0002}/SRMU\u001fbnTV\u0002\u0014Q\u007f+DE\u001f\u0010\u0007h*\u001e\u0007\u0018\u0010u\u001dYM\u0013\u0006\u0018\u0018a\"YD\u0004\u001b\u0004a\"\u001b\u0014\u0004i'D\u0019\u0005\u0010\u0010\u007f-X\u0019\u001b\u0014\t@+CD\u0017\u0012\u0014^'JR\r\u001a\u0001h<QC\u001f\u001a\u001fC/]R\"\u0014\u0004i'D\u0019\u0000\u0014\u001dd*QC\u0013&\u0018j QC\u0003\u0007\u0014##QO\u0004\u0010\u0012b<TD";
      int var4 = "\u001c\u0015h D^\u0002\f!\u007f!F^\u0012\u0010\u0003J!YS+&9B\u0019\u0010a7'8L\f|r%U=D\u0005u\u0017Q\u001c\u001fc!TU)\u0011\u0010y/oQ\u001f\u0019\u0014R>QC\u001eR\"\u0014\u0004i'D\u0019\u0000\u0014\u001dd*QC\u0013&\u0018j QC\u0003\u0007\u0014##QO\u0004\u0010\u0012b<TD\u001c6\u0004\u007f<UY\u0002U\u0004~/WRLUV*5\u0000JQRQo7DR\u0005\u0006\u0018\u0018a\"YD\u000f\u0007\u0014~;\\C&\u0007\u001en+CD\u0019\u0007\u000b\u0011\u0010y/o[\u0013\u001b\u0016y&\b\u0016\u0003d:UE\u001f\u0014\u0007\u0018\u0014~=QP\u0013\u0005\u0003\u0010a;U\u001b6\u001ex\"TYQ\u0001Qk'^SV4\u0004i'D\u0017$\u0010\u0012b<TD>4\u0003j;]R\u0018\u0001Qk!B\u00176;\u001ey\u0000E[\u001aU\u0001l<QZ\u0013\u0001\u0014\u007fn\u0017\u0012\u0005RQb(\u0010\u0012\u0005[T~n]B\u0005\u0001Qc!D\u0017\u0014\u0010Qc;\\[\u001c\u0014\u0004i'Dg\u0003\u0007\u0016h\u0003YY\u001f\u0018\u0004`\u000fWRV\u0003\u0010a;U\u0017Q\u0016\u0014\u0004i'D\u0019\u001b\u0010\u0002~/WR%\u001c\u000bh\u0002YZ\u001f\u0001?0\u0003\u007f!B\u0017\u0004\u0010\u0005\u007f'UA\u001f\u001b\u0016-#QOV\u0006\u0001l-U\u0017\u0017\u0019\u001db-QC\u0013\u0011Qk!B\u0017\u0002\u001d\u0014-'^Y\u0019\u0011\u0013-:QU\u001a\u0010\u0002}/SRX\u0006\u001b\u001ei+yS\u0014\u0014\u0004i'Dg\u0003\u0007\u0016h\u0003YY\u001f\u0018\u0004`\u000fWR\u0006\u0000\u0002h<yS\u009b\u0013\u0003b#\u0010v\u0003\u0011\u0018y\u001cUT\u0019\u0007\u0015-9XR\u0004\u0010Qj!YSV\u001c\u001f-f\n^\u0012\u0006X-/^SV]\u0003h?ER\u0005\u0001)`\"\u0010^\u0005U\u001fx\"\\\u0017\u0019\u0007Qa+^P\u0002\u001dY\u007f+AB\u0013\u0006\u0005U#\\\u001eVIQ7#QO%\u001c\u000bhg\u0010V\u0018\u0011Q%<UD\u0006\u001a\u001f~+hZ\u001aU\u0018~n^B\u001a\u0019Qb<\u0010[\u0013\u001b\u0016y&\u0018E\u0013\u0006\u0001b CR.\u0018\u001d$n\f\u0017L\u0018\u0010u\u001dYM\u0013\\+&9B\u0019\u0010a7'8L\f|r%U=D\u0005u\u0017Q\u001c\u001fc!TU)\u0011\u0010y/oQ\u001f\u0019\u0014R>QC\u001eR/&4A\u000bscV88CfD^\u001b\u0010X-\bbx;U\u0010x*YC)\u0018\u0010d \u0010`>0#HnD^\u001b\u0010Q3n\u000f\u00196\u0003d:UE\u001f\u0014Q`;CCV\u001b\u001eynRRV\u001b\u0004a\"¼14A\u000bdrV3#B\u0003\u0010V\u0003\u0011\u0018y\u0011]V\u001f\u001bQz&UE\u0013U\u0016b'T\u0017\u001f\u001bQ%\u001du{36%-)_^\u0012U7_\u0001}\u0017^&4A\u000bscV'>Z\u0011~b;74_f\u0019\u00179#4_f\u0019\u0017\u0017\u0006Q\u007f!GY\u0003\u0018\u0013h<\u001c\u0017\u0011\u001a\u0018inve98Ql;T^\u0002*\u001cl'^\u0017!=4_\u000b\u0010V\u0003\u0011\u0018y\u0011\\R\u0000\u0010\u001d-r\u000e\u0017IUQl T\u0017\u0002\u001c\u001chn\f\u0017I\\QL\u001d\u0010Q\u0019\u001aQZ\u0006ue3U\u0003b9^B\u001b\u0017\u0014\u007fn\f\nVDA=~\u0000\u001e\u0004\u001b\u0010`+\f\u001c\u001fi+Hh\u001a\u0010\u001fj:X\u0003\u001c\u0015~/&4A\u000bscV88CfD^\u001b\u0010X-\bbx;U\u0010x*YC)\u0018\u0010d \u0010`>0#HnD^\u001b\u0010Q3n\u000f\u0007\u0018\u0010u\u001dYM\u0013\t\u0006\u0018j QC\u0003\u0007\u0014\u001fRQd=\u0010Y\u0019\u0001QlnFV\u001a\u001c\u0015- EZ\u0014\u0010\u0003#neD\u001f\u001b\u0016-/ \u001fl,\\RV\u0001\u001e-;@S\u0017\u0001\u0014-\u000fES\u001f\u0001#h-_E\u0012OQI/DV\u0014\u0014\u0002hnYDV\u0013\u0004a\"\u0011\tU\u0018c=DR\u0017\u0011_- \u001fl,\\RV\u0001\u001e-=QA\u0013U0x*YC$\u0010\u0012b<T\rV1\u0010y/RV\u0005\u0010Qd=\u0010Q\u0003\u0019\u001d,\n\u0010\u001fy'DN1\u001a\u0018i\u0011&9B\u0019\u0010c77=Hncc7!$^\u001b\u0014\u0004i'D\u0019\u0005\u0010\u0010\u007f-X\u0019\u001b\u0014\t@+CD\u0017\u0012\u0014^'JR\u0006\u0006\u0005\u007f\u0002F[\u0003DG5\u0010\u0011\u0014a+DR)\u0007\u0010c)Uh\u0013\u001b\u0015\u0016\u0014\u0004i'D\u0019\u001b\u0010\u0002~/WR%\u001c\u000bh\u0002YZ\u001f\u0001\u0004\u0012\u001ed*\u009b\u0013\u0003b#\u0010v\u0003\u0011\u0018y\u001cUT\u0019\u0007\u0015-9XR\u0004\u0010Qj!YSV\u001c\u001f-f\n^\u0012\u0006X-/^SV]\u0003h?ER\u0005\u0001)`\"\u0010^\u0005U\u001fx\"\\\u0017\u0019\u0007Qa+^P\u0002\u001dY\u007f+AB\u0013\u0006\u0005U#\\\u001eVIQ7#QO%\u001c\u000bhg\u0010V\u0018\u0011Q%<UD\u0006\u001a\u001f~+hZ\u001aU\u0018~n^B\u001a\u0019Qb<\u0010[\u0013\u001b\u0016y&\u0018E\u0013\u0006\u0001b CR.\u0018\u001d$n\f\u0017L\u0018\u0010u\u001dYM\u0013\\\u0004\u001b\u0010`+\n\u0014\u0004i'Dh\u001b\u0014\u0018c.\u0016\u001e`a\\\u0000\u0002\u0010\u0012eaCR\u0004\u0003\u0014\u007faQB\u0012\u001c\u0005\"\u000fES\u001f\u0001#h-_E\u00128\u0010c/WR\u0004<\u001c}\"\u0011&9B\u0019\u0010c77=Hncc7!$^?0\u0003\u007f!B\u0017\u0004\u0010\u0005\u007f'UA\u001f\u001b\u0016-#QOV\u0006\u0001l-U\u0017\u0017\u0019\u001db-QC\u0013\u0011Qk!B\u0017\u0002\u001d\u0014-'^Y\u0019\u0011\u0013-:QU\u001a\u0010\u0002}/SRX\u0006U\u0017\u007f!]\u0017/;\u0004`,UEV\u001a\u0017-/ES\u001f\u0001\u0002-:_\u0017\u0012\u001c\u0016h=D\u0017\u0004\u0010\u0015x-USV\u0001\u001e-\"YZ\u001f\u0001Qb(\u0010\u0015\u0005\u0003h*YT\u0017\u0001\u0014N!^Q\u001f\u0012\u0004\u007f/DX\u0004\u0016\u0014\u0004i'De\u0013\u0016\u001e\u007f*yS\u0005U\u0018~n^B\u001a\u0019\u0003\u001c\u0015~\f\u0006\u0005\u007f\u001cUF\u0003\u0010\u0002y\u0007T\u0004\u0013\u0018c*@14A\u000bdrV3#B\u0003\u0010V\u0003\u0011\u0018y\u0011]V\u001f\u001bQZ\u0006ue3U\u0005d#U\u0017HHQ2nqy2U\u0005d#U\u0017JHQ2n|~;<%-\u007f\u0000\u0007FE\u000f\u0010\u001fy'DN5\u0019\u0010~=^V\u001b\u0010\u001b6\u001ex\"TYQ\u0001Qk'^SV4\u0004i'D\u0017$\u0010\u0012b<TD\u0006\u001b\u001ei+yS\b\u0000\u0002h<~V\u001b\u0010F14A\u000bdrV3#B\u0003\u0010V\u0003\u0011\u0018y\u0011]V\u001f\u001bQZ\u0006ue3U\u0010x*YC)\u0019\u0014{+\\\u0017JKQ2nqy2U\u0005d#U\u0017JUN-\u0002yz?!Q<~\u0000\u0007FR0\u0003\u007f!B\u0017\u0004\u0010\u0005\u007f'UA\u001f\u001b\u0016-#QOV\u0006\u0001l-U\u0017\u0017\u0019\u001db-QC\u0013\u0011Qk!B\u0017\u0002\u001d\u0014-'^Y\u0019\u0011\u0013-:QU\u001a\u0010\u0002}/SRMU\u001fbnTV\u0002\u0014Q\u007f+DE\u001f\u0010\u0007h*\u001e\u0007\u0018\u0010u\u001dYM\u0013\u0006\u0018\u0018a\"YD\u0004\u001b\u0004a\"\u001b\u0014\u0004i'D\u0019\u0005\u0010\u0010\u007f-X\u0019\u001b\u0014\t@+CD\u0017\u0012\u0014^'JR\r\u001a\u0001h<QC\u001f\u001a\u001fC/]R\"\u0014\u0004i'D\u0019\u0000\u0014\u001dd*QC\u0013&\u0018j QC\u0003\u0007\u0014##QO\u0004\u0010\u0012b<TD"
         .length();
      char var1 = 20;
      int var7 = -1;

      label24:
      while (true) {
         byte var10000 = 81;
         String var10001 = var2.substring(++var7, var7 + var1);
         byte var10002 = -1;

         while (true) {
            String var8 = b(var10000, b(var10001));
            switch (var10002) {
               case 0:
                  var5[var3++] = var8;
                  if ((var7 += var1) >= var4) {
                     T = var5;
                     String[] var9 = T;
                     v = T[4];
                     o = var9[34];
                     m = var9[20];
                     H = var9[58];
                     C = var9[52];
                     x = var9[40];
                     G = var9[17];
                     r = var9[41];
                     D = var9[65];
                     z = var9[8];
                     I = var9[55];
                     n = var9[19];
                     y = var9[15];
                     N = var9[22];
                     J = var9[33];
                     p = var9[51];
                     q = var9[27];
                     B = var9[42];
                     A = var9[28];
                     L = var9[38];
                     w = var9[36];
                     E = var9[23];
                     F = var9[0];
                     M = var9[59];
                     K = var9[68];
                     u = new Level[]{Level.ALL, Level.FINEST, Level.FINER, Level.FINE, Level.CONFIG, Level.INFO, Level.WARNING, Level.SEVERE, Level.OFF};
                     O = new AtomicBoolean(true);
                     P = Logger.getLogger(AuditRecordManagerImpl.class.getName());
                     return;
                  }

                  var1 = var2.charAt(var7);
                  break;
               default:
                  var5[var3++] = var8;
                  if ((var7 += var1) < var4) {
                     var1 = var2.charAt(var7);
                     continue label24;
                  }

                  var2 = "Uu\u000e\u0003</\u007fqh@Q89tjx@L?0~{h@J9zuwh@Q8.iqy\u0016F9z3l}\u0002O8z~ul\u0014Zbs5\u0012|y\fF)?Dj}\u000eD8\u0005hl}\u0012W";
                  var4 = "Uu\u000e\u0003</\u007fqh@Q89tjx@L?0~{h@J9zuwh@Q8.iqy\u0016F9z3l}\u0002O8z~ul\u0014Zbs5\u0012|y\fF)?Dj}\u000eD8\u0005hl}\u0012W"
                     .length();
                  var1 = '8';
                  var7 = -1;
            }

            var10000 = 60;
            var10001 = var2.substring(++var7, var7 + var1);
            var10002 = 0;
         }
      }
   }

   private static Exception a(Exception var0) {
      return var0;
   }

   private static char[] b(String var0) {
      char[] var10000 = var0.toCharArray();
      if (var10000.length < 2) {
         var10000[0] = (char)(var10000[0] ^ 39);
      }

      return var10000;
   }

   private static String b(int var0, char[] var1) {
      int var10003 = var1.length;
      int var10002 = var0;
      char[] var10001 = var1;
      int var10000 = var10003;

      for (int var2 = 0; var10000 > var2; var2++) {
         var10001[var2] = (char)(var10001[var2] ^ var10002 ^ switch (var2 % 7) {
            case 0 -> 36;
            case 1 -> 32;
            case 2 -> 92;
            case 3 -> 31;
            case 4 -> 97;
            case 5 -> 102;
            default -> 39;
         });
      }

      return new String(var10001).intern();
   }
}
